vercel 31.4.0 → 32.0.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 +379 -417
  2. package/package.json +20 -19
package/dist/index.js CHANGED
@@ -14481,7 +14481,7 @@ function setup(fetch) {
14481
14481
  /***/ 31460:
14482
14482
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
14483
14483
 
14484
- const retry = __webpack_require__(69420);
14484
+ const retry = __webpack_require__(78100);
14485
14485
  const debug = __webpack_require__(94219)('fetch-retry');
14486
14486
 
14487
14487
  // retry settings
@@ -34008,23 +34008,22 @@ module.exports = retry;
34008
34008
 
34009
34009
  /***/ }),
34010
34010
 
34011
- /***/ 69420:
34011
+ /***/ 78100:
34012
34012
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
34013
34013
 
34014
34014
  // Packages
34015
- var retrier = __webpack_require__(47671);
34015
+ var retrier = __webpack_require__(10684);
34016
34016
 
34017
34017
  function retry(fn, opts) {
34018
34018
  function run(resolve, reject) {
34019
34019
  var options = opts || {};
34020
- var op;
34021
34020
 
34022
34021
  // Default `randomize` to true
34023
34022
  if (!('randomize' in options)) {
34024
34023
  options.randomize = true;
34025
34024
  }
34026
34025
 
34027
- op = retrier.operation(options);
34026
+ var op = retrier.operation(options);
34028
34027
 
34029
34028
  // We allow the user to abort retrying
34030
34029
  // this makes sense in the cases where
@@ -157229,289 +157228,6 @@ RetryOperation.prototype.mainError = function() {
157229
157228
  };
157230
157229
 
157231
157230
 
157232
- /***/ }),
157233
-
157234
- /***/ 47671:
157235
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
157236
-
157237
- module.exports = __webpack_require__(98762);
157238
-
157239
- /***/ }),
157240
-
157241
- /***/ 98762:
157242
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
157243
-
157244
- var RetryOperation = __webpack_require__(17526);
157245
-
157246
- exports.operation = function(options) {
157247
- var timeouts = exports.timeouts(options);
157248
- return new RetryOperation(timeouts, {
157249
- forever: options && (options.forever || options.retries === Infinity),
157250
- unref: options && options.unref,
157251
- maxRetryTime: options && options.maxRetryTime
157252
- });
157253
- };
157254
-
157255
- exports.timeouts = function(options) {
157256
- if (options instanceof Array) {
157257
- return [].concat(options);
157258
- }
157259
-
157260
- var opts = {
157261
- retries: 10,
157262
- factor: 2,
157263
- minTimeout: 1 * 1000,
157264
- maxTimeout: Infinity,
157265
- randomize: false
157266
- };
157267
- for (var key in options) {
157268
- opts[key] = options[key];
157269
- }
157270
-
157271
- if (opts.minTimeout > opts.maxTimeout) {
157272
- throw new Error('minTimeout is greater than maxTimeout');
157273
- }
157274
-
157275
- var timeouts = [];
157276
- for (var i = 0; i < opts.retries; i++) {
157277
- timeouts.push(this.createTimeout(i, opts));
157278
- }
157279
-
157280
- if (options && options.forever && !timeouts.length) {
157281
- timeouts.push(this.createTimeout(i, opts));
157282
- }
157283
-
157284
- // sort the array numerically ascending
157285
- timeouts.sort(function(a,b) {
157286
- return a - b;
157287
- });
157288
-
157289
- return timeouts;
157290
- };
157291
-
157292
- exports.createTimeout = function(attempt, opts) {
157293
- var random = (opts.randomize)
157294
- ? (Math.random() + 1)
157295
- : 1;
157296
-
157297
- var timeout = Math.round(random * Math.max(opts.minTimeout, 1) * Math.pow(opts.factor, attempt));
157298
- timeout = Math.min(timeout, opts.maxTimeout);
157299
-
157300
- return timeout;
157301
- };
157302
-
157303
- exports.wrap = function(obj, options, methods) {
157304
- if (options instanceof Array) {
157305
- methods = options;
157306
- options = null;
157307
- }
157308
-
157309
- if (!methods) {
157310
- methods = [];
157311
- for (var key in obj) {
157312
- if (typeof obj[key] === 'function') {
157313
- methods.push(key);
157314
- }
157315
- }
157316
- }
157317
-
157318
- for (var i = 0; i < methods.length; i++) {
157319
- var method = methods[i];
157320
- var original = obj[method];
157321
-
157322
- obj[method] = function retryWrapper(original) {
157323
- var op = exports.operation(options);
157324
- var args = Array.prototype.slice.call(arguments, 1);
157325
- var callback = args.pop();
157326
-
157327
- args.push(function(err) {
157328
- if (op.retry(err)) {
157329
- return;
157330
- }
157331
- if (err) {
157332
- arguments[0] = op.mainError();
157333
- }
157334
- callback.apply(this, arguments);
157335
- });
157336
-
157337
- op.attempt(function() {
157338
- original.apply(obj, args);
157339
- });
157340
- }.bind(obj, original);
157341
- obj[method].options = options;
157342
- }
157343
- };
157344
-
157345
-
157346
- /***/ }),
157347
-
157348
- /***/ 17526:
157349
- /***/ ((module) => {
157350
-
157351
- function RetryOperation(timeouts, options) {
157352
- // Compatibility for the old (timeouts, retryForever) signature
157353
- if (typeof options === 'boolean') {
157354
- options = { forever: options };
157355
- }
157356
-
157357
- this._originalTimeouts = JSON.parse(JSON.stringify(timeouts));
157358
- this._timeouts = timeouts;
157359
- this._options = options || {};
157360
- this._maxRetryTime = options && options.maxRetryTime || Infinity;
157361
- this._fn = null;
157362
- this._errors = [];
157363
- this._attempts = 1;
157364
- this._operationTimeout = null;
157365
- this._operationTimeoutCb = null;
157366
- this._timeout = null;
157367
- this._operationStart = null;
157368
- this._timer = null;
157369
-
157370
- if (this._options.forever) {
157371
- this._cachedTimeouts = this._timeouts.slice(0);
157372
- }
157373
- }
157374
- module.exports = RetryOperation;
157375
-
157376
- RetryOperation.prototype.reset = function() {
157377
- this._attempts = 1;
157378
- this._timeouts = this._originalTimeouts.slice(0);
157379
- }
157380
-
157381
- RetryOperation.prototype.stop = function() {
157382
- if (this._timeout) {
157383
- clearTimeout(this._timeout);
157384
- }
157385
- if (this._timer) {
157386
- clearTimeout(this._timer);
157387
- }
157388
-
157389
- this._timeouts = [];
157390
- this._cachedTimeouts = null;
157391
- };
157392
-
157393
- RetryOperation.prototype.retry = function(err) {
157394
- if (this._timeout) {
157395
- clearTimeout(this._timeout);
157396
- }
157397
-
157398
- if (!err) {
157399
- return false;
157400
- }
157401
- var currentTime = new Date().getTime();
157402
- if (err && currentTime - this._operationStart >= this._maxRetryTime) {
157403
- this._errors.push(err);
157404
- this._errors.unshift(new Error('RetryOperation timeout occurred'));
157405
- return false;
157406
- }
157407
-
157408
- this._errors.push(err);
157409
-
157410
- var timeout = this._timeouts.shift();
157411
- if (timeout === undefined) {
157412
- if (this._cachedTimeouts) {
157413
- // retry forever, only keep last error
157414
- this._errors.splice(0, this._errors.length - 1);
157415
- timeout = this._cachedTimeouts.slice(-1);
157416
- } else {
157417
- return false;
157418
- }
157419
- }
157420
-
157421
- var self = this;
157422
- this._timer = setTimeout(function() {
157423
- self._attempts++;
157424
-
157425
- if (self._operationTimeoutCb) {
157426
- self._timeout = setTimeout(function() {
157427
- self._operationTimeoutCb(self._attempts);
157428
- }, self._operationTimeout);
157429
-
157430
- if (self._options.unref) {
157431
- self._timeout.unref();
157432
- }
157433
- }
157434
-
157435
- self._fn(self._attempts);
157436
- }, timeout);
157437
-
157438
- if (this._options.unref) {
157439
- this._timer.unref();
157440
- }
157441
-
157442
- return true;
157443
- };
157444
-
157445
- RetryOperation.prototype.attempt = function(fn, timeoutOps) {
157446
- this._fn = fn;
157447
-
157448
- if (timeoutOps) {
157449
- if (timeoutOps.timeout) {
157450
- this._operationTimeout = timeoutOps.timeout;
157451
- }
157452
- if (timeoutOps.cb) {
157453
- this._operationTimeoutCb = timeoutOps.cb;
157454
- }
157455
- }
157456
-
157457
- var self = this;
157458
- if (this._operationTimeoutCb) {
157459
- this._timeout = setTimeout(function() {
157460
- self._operationTimeoutCb();
157461
- }, self._operationTimeout);
157462
- }
157463
-
157464
- this._operationStart = new Date().getTime();
157465
-
157466
- this._fn(this._attempts);
157467
- };
157468
-
157469
- RetryOperation.prototype.try = function(fn) {
157470
- console.log('Using RetryOperation.try() is deprecated');
157471
- this.attempt(fn);
157472
- };
157473
-
157474
- RetryOperation.prototype.start = function(fn) {
157475
- console.log('Using RetryOperation.start() is deprecated');
157476
- this.attempt(fn);
157477
- };
157478
-
157479
- RetryOperation.prototype.start = RetryOperation.prototype.try;
157480
-
157481
- RetryOperation.prototype.errors = function() {
157482
- return this._errors;
157483
- };
157484
-
157485
- RetryOperation.prototype.attempts = function() {
157486
- return this._attempts;
157487
- };
157488
-
157489
- RetryOperation.prototype.mainError = function() {
157490
- if (this._errors.length === 0) {
157491
- return null;
157492
- }
157493
-
157494
- var counts = {};
157495
- var mainError = null;
157496
- var mainErrorCount = 0;
157497
-
157498
- for (var i = 0; i < this._errors.length; i++) {
157499
- var error = this._errors[i];
157500
- var message = error.message;
157501
- var count = (counts[message] || 0) + 1;
157502
-
157503
- counts[message] = count;
157504
-
157505
- if (count >= mainErrorCount) {
157506
- mainError = error;
157507
- mainErrorCount = count;
157508
- }
157509
- }
157510
-
157511
- return mainError;
157512
- };
157513
-
157514
-
157515
157231
  /***/ }),
157516
157232
 
157517
157233
  /***/ 20115:
@@ -214745,6 +214461,7 @@ exports.frameworks = [
214745
214461
  description: 'A new Remix app — the result of running `npx create-remix`.',
214746
214462
  website: 'https://remix.run',
214747
214463
  sort: 6,
214464
+ supersedes: 'hydrogen',
214748
214465
  useRuntime: { src: 'package.json', use: '@vercel/remix-builder' },
214749
214466
  ignoreRuntimes: ['@vercel/node'],
214750
214467
  detectors: {
@@ -216203,6 +215920,7 @@ exports.frameworks = [
216203
215920
  tagline: 'React framework for headless commerce',
216204
215921
  description: 'React framework for headless commerce',
216205
215922
  website: 'https://hydrogen.shopify.dev',
215923
+ supersedes: 'vite',
216206
215924
  useRuntime: { src: 'package.json', use: '@vercel/hydrogen' },
216207
215925
  envPrefix: 'PUBLIC_',
216208
215926
  detectors: {
@@ -217277,6 +216995,7 @@ function getRouteResult(apiRoutes, dynamicRoutes, outputDirectory, apiBuilders,
217277
216995
  const rewriteRoutes = [];
217278
216996
  const errorRoutes = [];
217279
216997
  const framework = frontendBuilder?.config?.framework || '';
216998
+ const isGatsby = framework === 'gatsby';
217280
216999
  const isNextjs = framework === 'nextjs' || (0, is_official_runtime_1.isOfficialRuntime)('next', frontendBuilder?.use);
217281
217000
  const ignoreRuntimes = slugToFramework.get(framework)?.ignoreRuntimes;
217282
217001
  if (apiRoutes && apiRoutes.length > 0) {
@@ -217347,8 +217066,8 @@ function getRouteResult(apiRoutes, dynamicRoutes, outputDirectory, apiBuilders,
217347
217066
  dest: `/${outputDirectory}/$1`,
217348
217067
  });
217349
217068
  }
217350
- if (options.featHandleMiss && !isNextjs) {
217351
- // Exclude Next.js to avoid overriding custom error page
217069
+ if (options.featHandleMiss && !isNextjs && !isGatsby) {
217070
+ // Exclude Next.js (and Gatsby) to avoid overriding custom error page
217352
217071
  // https://nextjs.org/docs/advanced-features/custom-error-page
217353
217072
  errorRoutes.push({
217354
217073
  status: 404,
@@ -217572,7 +217291,7 @@ exports.detectFileSystemAPI = detectFileSystemAPI;
217572
217291
  "use strict";
217573
217292
 
217574
217293
  Object.defineProperty(exports, "__esModule", ({ value: true }));
217575
- exports.detectFrameworkVersion = exports.detectFrameworkRecord = exports.detectFrameworks = exports.detectFramework = void 0;
217294
+ exports.detectFrameworkVersion = exports.detectFrameworkRecord = exports.detectFrameworks = exports.detectFramework = exports.removeSupersededFrameworks = void 0;
217576
217295
  const child_process_1 = __webpack_require__(63129);
217577
217296
  async function matches(fs, framework) {
217578
217297
  const { detectors } = framework;
@@ -217651,15 +217370,34 @@ async function matches(fs, framework) {
217651
217370
  detectedVersion,
217652
217371
  };
217653
217372
  }
217373
+ function removeSupersededFramework(matches, slug) {
217374
+ const index = matches.findIndex(f => f?.slug === slug);
217375
+ const framework = matches[index];
217376
+ if (framework) {
217377
+ if (framework.supersedes) {
217378
+ removeSupersededFramework(matches, framework.supersedes);
217379
+ }
217380
+ matches.splice(index, 1);
217381
+ }
217382
+ }
217383
+ function removeSupersededFrameworks(matches) {
217384
+ for (const match of matches.slice()) {
217385
+ if (match?.supersedes) {
217386
+ removeSupersededFramework(matches, match.supersedes);
217387
+ }
217388
+ }
217389
+ }
217390
+ exports.removeSupersededFrameworks = removeSupersededFrameworks;
217654
217391
  // TODO: Deprecate and replace with `detectFrameworkRecord`
217655
217392
  async function detectFramework({ fs, frameworkList, }) {
217656
217393
  const result = await Promise.all(frameworkList.map(async (frameworkMatch) => {
217657
217394
  if (await matches(fs, frameworkMatch)) {
217658
- return frameworkMatch.slug;
217395
+ return frameworkMatch;
217659
217396
  }
217660
217397
  return null;
217661
217398
  }));
217662
- return result.find(res => res !== null) ?? null;
217399
+ removeSupersededFrameworks(result);
217400
+ return result.find(res => res !== null)?.slug ?? null;
217663
217401
  }
217664
217402
  exports.detectFramework = detectFramework;
217665
217403
  /**
@@ -217672,6 +217410,7 @@ async function detectFrameworks({ fs, frameworkList, }) {
217672
217410
  }
217673
217411
  return null;
217674
217412
  }));
217413
+ removeSupersededFrameworks(result);
217675
217414
  return result.filter(res => res !== null);
217676
217415
  }
217677
217416
  exports.detectFrameworks = detectFrameworks;
@@ -217687,8 +217426,8 @@ async function detectFrameworkRecord({ fs, frameworkList, }) {
217687
217426
  }
217688
217427
  return null;
217689
217428
  }));
217690
- const frameworkRecord = result.find(res => res !== null) ?? null;
217691
- return frameworkRecord;
217429
+ removeSupersededFrameworks(result);
217430
+ return result.find(res => res !== null) ?? null;
217692
217431
  }
217693
217432
  exports.detectFrameworkRecord = detectFrameworkRecord;
217694
217433
  function detectFrameworkVersion(frameworkRecord) {
@@ -219949,6 +219688,107 @@ const help = () => `
219949
219688
  exports.help = help;
219950
219689
 
219951
219690
 
219691
+ /***/ }),
219692
+
219693
+ /***/ 92455:
219694
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
219695
+
219696
+ "use strict";
219697
+
219698
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
219699
+ exports.aliasCommand = void 0;
219700
+ const pkg_name_1 = __webpack_require__(79000);
219701
+ exports.aliasCommand = {
219702
+ name: 'alias',
219703
+ description: 'Interact with deployment aliases.',
219704
+ arguments: [
219705
+ {
219706
+ name: 'command',
219707
+ required: false,
219708
+ },
219709
+ ],
219710
+ subcommands: [
219711
+ {
219712
+ name: 'ls',
219713
+ description: 'Show all aliases.',
219714
+ arguments: [],
219715
+ options: [],
219716
+ examples: [],
219717
+ },
219718
+ {
219719
+ name: 'set',
219720
+ description: 'Create a new alias',
219721
+ arguments: [
219722
+ {
219723
+ name: 'deployment',
219724
+ required: true,
219725
+ },
219726
+ {
219727
+ name: 'alias',
219728
+ required: true,
219729
+ },
219730
+ ],
219731
+ options: [],
219732
+ examples: [],
219733
+ },
219734
+ {
219735
+ name: 'rm',
219736
+ description: 'Remove an alias using its hostname.',
219737
+ arguments: [
219738
+ {
219739
+ name: 'alias',
219740
+ required: true,
219741
+ },
219742
+ ],
219743
+ options: [],
219744
+ examples: [],
219745
+ },
219746
+ ],
219747
+ options: [
219748
+ {
219749
+ name: 'next',
219750
+ description: 'Show next page of results',
219751
+ argument: 'MS',
219752
+ shorthand: 'n',
219753
+ type: 'string',
219754
+ deprecated: false,
219755
+ multi: false,
219756
+ },
219757
+ {
219758
+ name: 'yes',
219759
+ description: 'Skip the confirmation prompt when removing an alias',
219760
+ shorthand: 'y',
219761
+ type: 'boolean',
219762
+ deprecated: false,
219763
+ multi: false,
219764
+ },
219765
+ {
219766
+ name: 'limit',
219767
+ shorthand: 'n',
219768
+ description: 'Number of results to return per page (default: 20, max: 100)',
219769
+ argument: 'NUMBER',
219770
+ type: 'string',
219771
+ deprecated: false,
219772
+ multi: false,
219773
+ },
219774
+ ],
219775
+ examples: [
219776
+ {
219777
+ name: 'Add a new alias to `my-api.vercel.app`',
219778
+ value: `${pkg_name_1.packageName} alias set api-ownv3nc9f8.vercel.app my-api.vercel.app`,
219779
+ },
219780
+ {
219781
+ name: 'Custom domains work as alias targets',
219782
+ value: `${pkg_name_1.packageName} alias set api-ownv3nc9f8.vercel.app my-api.com`,
219783
+ },
219784
+ {
219785
+ name: 'The subcommand `set` is the default and can be skipped. Protocols in the URLs are unneeded and ignored',
219786
+ value: `${pkg_name_1.packageName} alias api-ownv3nc9f8.vercel.app my-api.com`,
219787
+ },
219788
+ ],
219789
+ };
219790
+
219791
+
219952
219792
  /***/ }),
219953
219793
 
219954
219794
  /***/ 57725:
@@ -219960,58 +219800,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
219960
219800
  return (mod && mod.__esModule) ? mod : { "default": mod };
219961
219801
  };
219962
219802
  Object.defineProperty(exports, "__esModule", ({ value: true }));
219963
- const chalk_1 = __importDefault(__webpack_require__(90877));
219964
219803
  const error_1 = __webpack_require__(4400);
219965
219804
  const get_args_1 = __importDefault(__webpack_require__(2505));
219966
219805
  const get_subcommand_1 = __importDefault(__webpack_require__(66167));
219967
- const pkg_name_1 = __webpack_require__(79000);
219806
+ const help_1 = __webpack_require__(58219);
219968
219807
  const ls_1 = __importDefault(__webpack_require__(74021));
219969
219808
  const rm_1 = __importDefault(__webpack_require__(48863));
219970
219809
  const set_1 = __importDefault(__webpack_require__(80734));
219971
- const help = () => {
219972
- console.log(`
219973
- ${chalk_1.default.bold(`${pkg_name_1.logo} ${pkg_name_1.packageName} alias`)} [options] <command>
219974
-
219975
- ${chalk_1.default.dim('Commands:')}
219976
-
219977
- ls Show all aliases
219978
- set <deployment> <alias> Create a new alias
219979
- rm <alias> Remove an alias using its hostname
219980
-
219981
- ${chalk_1.default.dim('Options:')}
219982
-
219983
- -h, --help Output usage information
219984
- -A ${chalk_1.default.bold.underline('FILE')}, --local-config=${chalk_1.default.bold.underline('FILE')} Path to the local ${'`vercel.json`'} file
219985
- -Q ${chalk_1.default.bold.underline('DIR')}, --global-config=${chalk_1.default.bold.underline('DIR')} Path to the global ${'`.vercel`'} directory
219986
- -d, --debug Debug mode [off]
219987
- --no-color No color mode [off]
219988
- -t ${chalk_1.default.bold.underline('TOKEN')}, --token=${chalk_1.default.bold.underline('TOKEN')} Login token
219989
- -S, --scope Set a custom scope
219990
- -N, --next Show next page of results
219991
- -y, --yes Skip the confirmation prompt when removing an alias
219992
- --limit=${chalk_1.default.bold.underline('VALUE')} Number of results to return per page (default: 20, max: 100)
219993
-
219994
- ${chalk_1.default.dim('Examples:')}
219995
-
219996
- ${chalk_1.default.gray('–')} Add a new alias to ${chalk_1.default.underline('my-api.vercel.app')}
219997
-
219998
- ${chalk_1.default.cyan(`$ ${pkg_name_1.packageName} alias set ${chalk_1.default.underline('api-ownv3nc9f8.vercel.app')} ${chalk_1.default.underline('my-api.vercel.app')}`)}
219999
-
220000
- Custom domains work as alias targets
220001
-
220002
- ${chalk_1.default.cyan(`$ ${pkg_name_1.packageName} alias set ${chalk_1.default.underline('api-ownv3nc9f8.vercel.app')} ${chalk_1.default.underline('my-api.com')}`)}
220003
-
220004
- ${chalk_1.default.dim('–')} The subcommand ${chalk_1.default.dim('`set`')} is the default and can be skipped.
220005
- ${chalk_1.default.dim('–')} ${chalk_1.default.dim('Protocols')} in the URLs are unneeded and ignored.
220006
- `);
220007
- };
219810
+ const command_1 = __webpack_require__(92455);
220008
219811
  const COMMAND_CONFIG = {
220009
219812
  default: ['set'],
220010
219813
  ls: ['ls', 'list'],
220011
219814
  rm: ['rm', 'remove'],
220012
219815
  set: ['set'],
220013
219816
  };
220014
- async function main(client) {
219817
+ async function alias(client) {
220015
219818
  let argv;
220016
219819
  try {
220017
219820
  argv = (0, get_args_1.default)(client.argv.slice(2), {
@@ -220028,7 +219831,7 @@ async function main(client) {
220028
219831
  return 1;
220029
219832
  }
220030
219833
  if (argv['--help']) {
220031
- help();
219834
+ client.output.print((0, help_1.help)(command_1.aliasCommand, { columns: client.stderr.columns }));
220032
219835
  return 2;
220033
219836
  }
220034
219837
  const { subcommand, args } = (0, get_subcommand_1.default)(argv._.slice(1), COMMAND_CONFIG);
@@ -220041,7 +219844,7 @@ async function main(client) {
220041
219844
  return (0, set_1.default)(client, argv, args);
220042
219845
  }
220043
219846
  }
220044
- exports.default = main;
219847
+ exports.default = alias;
220045
219848
 
220046
219849
 
220047
219850
  /***/ }),
@@ -221487,6 +221290,129 @@ async function add(client, opts, args) {
221487
221290
  exports.default = add;
221488
221291
 
221489
221292
 
221293
+ /***/ }),
221294
+
221295
+ /***/ 19219:
221296
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
221297
+
221298
+ "use strict";
221299
+
221300
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
221301
+ exports.certsCommand = void 0;
221302
+ const pkg_name_1 = __webpack_require__(79000);
221303
+ exports.certsCommand = {
221304
+ name: 'certs',
221305
+ description: 'Interact with SSL certificates. This command is intended for advanced use only. By default, Vercel manages your certificates automatically.',
221306
+ arguments: [
221307
+ {
221308
+ name: 'command',
221309
+ required: false,
221310
+ },
221311
+ ],
221312
+ subcommands: [
221313
+ {
221314
+ name: 'ls',
221315
+ description: 'Show all available certificates',
221316
+ arguments: [],
221317
+ options: [],
221318
+ examples: [],
221319
+ },
221320
+ {
221321
+ name: 'issue',
221322
+ description: ' Issue a new certificate for a domain',
221323
+ arguments: [
221324
+ {
221325
+ name: 'cn',
221326
+ required: true,
221327
+ },
221328
+ ],
221329
+ options: [],
221330
+ examples: [],
221331
+ },
221332
+ {
221333
+ name: 'rm',
221334
+ description: 'Remove a certificate by id',
221335
+ arguments: [
221336
+ {
221337
+ name: 'id',
221338
+ required: true,
221339
+ },
221340
+ ],
221341
+ options: [],
221342
+ examples: [],
221343
+ },
221344
+ ],
221345
+ options: [
221346
+ {
221347
+ name: 'challenge-only',
221348
+ description: 'Only show challenges needed to issue a cert',
221349
+ shorthand: null,
221350
+ type: 'string',
221351
+ deprecated: false,
221352
+ multi: false,
221353
+ },
221354
+ {
221355
+ name: 'crt',
221356
+ description: 'Certificate file',
221357
+ argument: 'FILE',
221358
+ shorthand: null,
221359
+ type: 'string',
221360
+ deprecated: false,
221361
+ multi: false,
221362
+ },
221363
+ {
221364
+ name: 'key',
221365
+ description: 'Certificate key file',
221366
+ argument: 'FILE',
221367
+ shorthand: null,
221368
+ type: 'string',
221369
+ deprecated: false,
221370
+ multi: false,
221371
+ },
221372
+ {
221373
+ name: 'ca',
221374
+ description: 'CA certificate chain file',
221375
+ argument: 'FILE',
221376
+ shorthand: null,
221377
+ type: 'string',
221378
+ deprecated: false,
221379
+ multi: false,
221380
+ },
221381
+ {
221382
+ name: 'limit',
221383
+ description: 'Number of results to return per page (default: 20, max: 100)',
221384
+ argument: 'VALUE',
221385
+ shorthand: null,
221386
+ type: 'string',
221387
+ deprecated: false,
221388
+ multi: false,
221389
+ },
221390
+ {
221391
+ name: 'next',
221392
+ description: 'Show next page of results',
221393
+ shorthand: 'n',
221394
+ type: 'string',
221395
+ deprecated: false,
221396
+ multi: false,
221397
+ },
221398
+ ],
221399
+ examples: [
221400
+ {
221401
+ name: 'Generate a certificate with the cnames "acme.com" and "www.acme.com"`',
221402
+ value: `${pkg_name_1.packageName} certs issue acme.com www.acme.com`,
221403
+ },
221404
+ {
221405
+ name: 'Remove a certificate',
221406
+ value: `${pkg_name_1.packageName} certs rm id`,
221407
+ },
221408
+ {
221409
+ name: 'Paginate results, where `1584722256178` is the time in milliseconds since the UNIX epoch.',
221410
+ value: `${pkg_name_1.packageName} certs ls --next 1584722256178`,
221411
+ },
221412
+ ],
221413
+ };
221414
+
221415
+
221490
221416
  /***/ }),
221491
221417
 
221492
221418
  /***/ 1165:
@@ -221498,7 +221424,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
221498
221424
  return (mod && mod.__esModule) ? mod : { "default": mod };
221499
221425
  };
221500
221426
  Object.defineProperty(exports, "__esModule", ({ value: true }));
221501
- const chalk_1 = __importDefault(__webpack_require__(90877));
221502
221427
  // @ts-ignore
221503
221428
  const error_1 = __webpack_require__(4400);
221504
221429
  const get_args_1 = __importDefault(__webpack_require__(2505));
@@ -221507,51 +221432,8 @@ const add_1 = __importDefault(__webpack_require__(30033));
221507
221432
  const issue_1 = __importDefault(__webpack_require__(14008));
221508
221433
  const ls_1 = __importDefault(__webpack_require__(15922));
221509
221434
  const rm_1 = __importDefault(__webpack_require__(55667));
221510
- const pkg_name_1 = __webpack_require__(79000);
221511
- const help = () => {
221512
- console.log(`
221513
- ${chalk_1.default.bold(`${pkg_name_1.logo} ${pkg_name_1.packageName} certs`)} [options] <command>
221514
-
221515
- ${chalk_1.default.yellow('NOTE:')} This command is intended for advanced use only.
221516
- By default, Vercel manages your certificates automatically.
221517
-
221518
- ${chalk_1.default.dim('Commands:')}
221519
-
221520
- ls Show all available certificates
221521
- issue <cn> [<cn>] Issue a new certificate for a domain
221522
- rm <id> Remove a certificate by id
221523
-
221524
- ${chalk_1.default.dim('Options:')}
221525
-
221526
- -h, --help Output usage information
221527
- -A ${chalk_1.default.bold.underline('FILE')}, --local-config=${chalk_1.default.bold.underline('FILE')} Path to the local ${'`vercel.json`'} file
221528
- -Q ${chalk_1.default.bold.underline('DIR')}, --global-config=${chalk_1.default.bold.underline('DIR')} Path to the global ${'`.vercel`'} directory
221529
- -d, --debug Debug mode [off]
221530
- --no-color No color mode [off]
221531
- -t ${chalk_1.default.bold.underline('TOKEN')}, --token=${chalk_1.default.bold.underline('TOKEN')} Login token
221532
- -S, --scope Set a custom scope
221533
- --challenge-only Only show challenges needed to issue a cert
221534
- --crt ${chalk_1.default.bold.underline('FILE')} Certificate file
221535
- --key ${chalk_1.default.bold.underline('FILE')} Certificate key file
221536
- --ca ${chalk_1.default.bold.underline('FILE')} CA certificate chain file
221537
- -N, --next Show next page of results
221538
- --limit=${chalk_1.default.bold.underline('VALUE')} Number of results to return per page (default: 20, max: 100)
221539
-
221540
- ${chalk_1.default.dim('Examples:')}
221541
-
221542
- ${chalk_1.default.gray('–')} Generate a certificate with the cnames "acme.com" and "www.acme.com"
221543
-
221544
- ${chalk_1.default.cyan(`$ ${pkg_name_1.packageName} certs issue acme.com www.acme.com`)}
221545
-
221546
- ${chalk_1.default.gray('–')} Remove a certificate
221547
-
221548
- ${chalk_1.default.cyan(`$ ${pkg_name_1.packageName} certs rm id`)}
221549
-
221550
- ${chalk_1.default.gray('–')} Paginate results, where ${chalk_1.default.dim('`1584722256178`')} is the time in milliseconds since the UNIX epoch.
221551
-
221552
- ${chalk_1.default.cyan(`$ ${pkg_name_1.packageName} certs ls --next 1584722256178`)}
221553
- `);
221554
- };
221435
+ const command_1 = __webpack_require__(19219);
221436
+ const help_1 = __webpack_require__(58219);
221555
221437
  const COMMAND_CONFIG = {
221556
221438
  add: ['add'],
221557
221439
  issue: ['issue'],
@@ -221579,7 +221461,7 @@ async function main(client) {
221579
221461
  return 1;
221580
221462
  }
221581
221463
  if (argv['--help']) {
221582
- help();
221464
+ client.output.print((0, help_1.help)(command_1.certsCommand, { columns: client.stderr.columns }));
221583
221465
  return 2;
221584
221466
  }
221585
221467
  const { output } = client;
@@ -221598,7 +221480,7 @@ async function main(client) {
221598
221480
  return 1;
221599
221481
  default:
221600
221482
  output.error('Please specify a valid subcommand: ls | issue | rm');
221601
- help();
221483
+ client.output.print((0, help_1.help)(command_1.certsCommand, { columns: client.stderr.columns }));
221602
221484
  return 2;
221603
221485
  }
221604
221486
  }
@@ -225329,12 +225211,35 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
225329
225211
  return (mod && mod.__esModule) ? mod : { "default": mod };
225330
225212
  };
225331
225213
  Object.defineProperty(exports, "__esModule", ({ value: true }));
225332
- exports.help = exports.buildHelpOutput = exports.buildCommandExampleLines = exports.buildCommandOptionLines = exports.buildCommandSynopsisLine = exports.outputArrayToString = exports.lineToString = void 0;
225214
+ exports.help = exports.buildHelpOutput = exports.buildCommandExampleLines = exports.buildSubcommandLines = exports.buildCommandOptionLines = exports.buildCommandSynopsisLine = exports.outputArrayToString = exports.lineToString = void 0;
225333
225215
  const chalk_1 = __importDefault(__webpack_require__(90877));
225334
225216
  const constants_1 = __webpack_require__(98551);
225335
225217
  const cli_table3_1 = __importDefault(__webpack_require__(47579));
225336
225218
  const INDENT = ' '.repeat(2);
225337
225219
  const NEWLINE = '\n';
225220
+ const tableOptions = {
225221
+ chars: {
225222
+ top: '',
225223
+ 'top-mid': '',
225224
+ 'top-left': '',
225225
+ 'top-right': '',
225226
+ bottom: '',
225227
+ 'bottom-mid': '',
225228
+ 'bottom-left': '',
225229
+ 'bottom-right': '',
225230
+ left: '',
225231
+ 'left-mid': '',
225232
+ mid: '',
225233
+ 'mid-mid': '',
225234
+ right: '',
225235
+ 'right-mid': '',
225236
+ middle: '',
225237
+ },
225238
+ style: {
225239
+ 'padding-left': 0,
225240
+ 'padding-right': 0,
225241
+ },
225242
+ };
225338
225243
  const globalCommandOptions = [
225339
225244
  {
225340
225245
  name: 'help',
@@ -225413,6 +225318,26 @@ const globalCommandOptions = [
225413
225318
  multi: false,
225414
225319
  },
225415
225320
  ];
225321
+ // Use the word wrapping ability of cli-table3
225322
+ // by creating a one row, one cell, one column table.
225323
+ // This allows us to avoid pulling in the word-wrap
225324
+ // package which ironically seems to do a worse job.
225325
+ function wordWrap(text, maxWidth) {
225326
+ const _tableOptions = Object.assign({}, tableOptions, {
225327
+ colWidths: [maxWidth],
225328
+ style: {
225329
+ 'padding-left': INDENT.length,
225330
+ },
225331
+ });
225332
+ const table = new cli_table3_1.default(_tableOptions);
225333
+ table.push([
225334
+ {
225335
+ content: text,
225336
+ wordWrap: true,
225337
+ },
225338
+ ]);
225339
+ return table.toString();
225340
+ }
225416
225341
  // Insert spaces in between non-whitespace items only
225417
225342
  function lineToString(line) {
225418
225343
  let string = '';
@@ -225494,30 +225419,9 @@ function buildCommandOptionLines(commandOptions, options, sectionTitle) {
225494
225419
  ]);
225495
225420
  }
225496
225421
  const finalColumnWidth = options.columns - maxWidthOfUnwrappedColumns;
225497
- const table = new cli_table3_1.default({
225498
- chars: {
225499
- top: '',
225500
- 'top-mid': '',
225501
- 'top-left': '',
225502
- 'top-right': '',
225503
- bottom: '',
225504
- 'bottom-mid': '',
225505
- 'bottom-left': '',
225506
- 'bottom-right': '',
225507
- left: '',
225508
- 'left-mid': '',
225509
- mid: '',
225510
- 'mid-mid': '',
225511
- right: '',
225512
- 'right-mid': '',
225513
- middle: '',
225514
- },
225515
- style: {
225516
- 'padding-left': 0,
225517
- 'padding-right': 0,
225518
- },
225422
+ const table = new cli_table3_1.default(Object.assign({}, tableOptions, {
225519
225423
  colWidths: [null, null, finalColumnWidth],
225520
- });
225424
+ }));
225521
225425
  table.push(...rows);
225522
225426
  return [
225523
225427
  `${INDENT}${chalk_1.default.dim(sectionTitle)}:`,
@@ -225529,6 +225433,50 @@ function buildCommandOptionLines(commandOptions, options, sectionTitle) {
225529
225433
  ].join('');
225530
225434
  }
225531
225435
  exports.buildCommandOptionLines = buildCommandOptionLines;
225436
+ function buildSubcommandLines(subcommands, options) {
225437
+ if (!subcommands) {
225438
+ return null;
225439
+ }
225440
+ // word wrapping requires the wrapped cell to have a fixed width.
225441
+ // We need to track cell sizes to ensure the final column of cells is
225442
+ // equal to the remainder of unused horizontal space.
225443
+ let maxWidthOfUnwrappedColumns = 0;
225444
+ const rows = [];
225445
+ for (const command of subcommands) {
225446
+ const nameCell = `${INDENT}${command.name}`;
225447
+ let argsCell = INDENT;
225448
+ argsCell += command.arguments
225449
+ .map(arg => {
225450
+ return arg.required ? arg.name : `[${arg.name}]`;
225451
+ })
225452
+ .join(' ');
225453
+ argsCell += INDENT;
225454
+ const widthOfUnwrappedColumns = nameCell.length + argsCell.length;
225455
+ maxWidthOfUnwrappedColumns = Math.max(widthOfUnwrappedColumns, maxWidthOfUnwrappedColumns);
225456
+ rows.push([
225457
+ nameCell,
225458
+ argsCell,
225459
+ {
225460
+ content: command.description,
225461
+ wordWrap: true,
225462
+ },
225463
+ ]);
225464
+ }
225465
+ const finalColumnWidth = options.columns - maxWidthOfUnwrappedColumns;
225466
+ const table = new cli_table3_1.default(Object.assign({}, tableOptions, {
225467
+ colWidths: [null, null, finalColumnWidth],
225468
+ }));
225469
+ table.push(...rows);
225470
+ return [
225471
+ `${INDENT}${chalk_1.default.dim('Commands')}:`,
225472
+ NEWLINE,
225473
+ NEWLINE,
225474
+ table.toString(),
225475
+ NEWLINE,
225476
+ NEWLINE,
225477
+ ].join('');
225478
+ }
225479
+ exports.buildSubcommandLines = buildSubcommandLines;
225532
225480
  function buildCommandExampleLines(command) {
225533
225481
  const outputArray = [`${INDENT}${chalk_1.default.dim('Examples:')}`, ''];
225534
225482
  for (const example of command.examples) {
@@ -225553,15 +225501,16 @@ function buildCommandExampleLines(command) {
225553
225501
  return outputArrayToString(outputArray);
225554
225502
  }
225555
225503
  exports.buildCommandExampleLines = buildCommandExampleLines;
225556
- function buildDescriptionLine(command) {
225557
- const line = [INDENT, command.description, NEWLINE];
225558
- return lineToString(line);
225504
+ function buildDescriptionLine(command, options) {
225505
+ let wrapingText = wordWrap(command.description, options.columns);
225506
+ return `${wrapingText}${NEWLINE}`;
225559
225507
  }
225560
225508
  function buildHelpOutput(command, options) {
225561
225509
  const outputArray = [
225562
225510
  '',
225563
225511
  buildCommandSynopsisLine(command),
225564
- buildDescriptionLine(command),
225512
+ buildDescriptionLine(command, options),
225513
+ buildSubcommandLines(command.subcommands, options),
225565
225514
  buildCommandOptionLines(command.options, options, 'Options'),
225566
225515
  buildCommandOptionLines(globalCommandOptions, options, 'Global Options'),
225567
225516
  buildCommandExampleLines(command),
@@ -227808,6 +227757,15 @@ exports.pullCommand = {
227808
227757
  deprecated: false,
227809
227758
  multi: false,
227810
227759
  },
227760
+ {
227761
+ name: 'git-branch',
227762
+ description: 'Specify the Git branch to pull specific Environment Variables for',
227763
+ argument: 'branch',
227764
+ shorthand: null,
227765
+ type: 'string',
227766
+ deprecated: false,
227767
+ multi: false,
227768
+ },
227811
227769
  {
227812
227770
  name: 'yes',
227813
227771
  description: 'Skip questions when setting up new project using default scope and settings',
@@ -227830,6 +227788,10 @@ exports.pullCommand = {
227830
227788
  name: 'Pull for a specific environment',
227831
227789
  value: `${pkg_name_1.packageName} pull --environment=${(0, env_target_1.getEnvTargetPlaceholder)()}`,
227832
227790
  },
227791
+ {
227792
+ name: 'Pull for a preview feature branch',
227793
+ value: `${pkg_name_1.packageName} pull --environment=preview --git-branch=feature-branch`,
227794
+ },
227833
227795
  {
227834
227796
  name: 'If you want to download environment variables to a specific file, use `vercel env pull` instead',
227835
227797
  value: `${pkg_name_1.packageName} env pull`,
@@ -234267,7 +234229,7 @@ exports.getRoutesTypes = getRoutesTypes;
234267
234229
  async function devRouter(reqUrl = '/', reqMethod, routes, devServer, vercelConfig, previousHeaders, missRoutes, phase) {
234268
234230
  let result;
234269
234231
  let { pathname: reqPathname, search: reqSearch } = url_1.default.parse(reqUrl);
234270
- reqPathname ?? (reqPathname = '/');
234232
+ reqPathname = reqPathname || '/';
234271
234233
  const reqQuery = (0, parse_query_string_1.parseQueryString)(reqSearch);
234272
234234
  const combinedHeaders = { ...previousHeaders };
234273
234235
  let status;
@@ -234326,7 +234288,7 @@ async function devRouter(reqUrl = '/', reqMethod, routes, devServer, vercelConfi
234326
234288
  phase !== 'hit' &&
234327
234289
  !isDestUrl) {
234328
234290
  let { pathname } = url_1.default.parse(destPath);
234329
- pathname ?? (pathname = '/');
234291
+ pathname = pathname || '/';
234330
234292
  const hasDestFile = await devServer.hasFilesystem(pathname, vercelConfig);
234331
234293
  if (!hasDestFile) {
234332
234294
  if (routeConfig.status && phase !== 'miss') {
@@ -234373,7 +234335,7 @@ async function devRouter(reqUrl = '/', reqMethod, routes, devServer, vercelConfi
234373
234335
  destPath = `/${destPath}`;
234374
234336
  }
234375
234337
  let { pathname: destPathname, search: destSearch } = url_1.default.parse(destPath);
234376
- destPathname ?? (destPathname = '/');
234338
+ destPathname = destPathname || '/';
234377
234339
  const destQuery = (0, parse_query_string_1.parseQueryString)(destSearch);
234378
234340
  Object.assign(destQuery, reqQuery);
234379
234341
  result = {
@@ -245913,7 +245875,7 @@ module.exports = JSON.parse("[[[0,44],\"disallowed_STD3_valid\"],[[45,46],\"vali
245913
245875
  /***/ ((module) => {
245914
245876
 
245915
245877
  "use strict";
245916
- module.exports = JSON.parse("{\"name\":\"@vercel/client\",\"version\":\"12.6.6\",\"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\":\"tsc\",\"test-e2e\":\"pnpm test tests/create-deployment.test.ts tests/create-legacy-deployment.test.ts tests/paths.test.ts\",\"test\":\"jest --env node --verbose --runInBand --bail\",\"test-unit\":\"pnpm test tests/unit.*test.*\"},\"engines\":{\"node\":\">= 14\"},\"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\",\"typescript\":\"4.9.5\"},\"dependencies\":{\"@vercel/build-utils\":\"6.8.3\",\"@vercel/routing-utils\":\"2.2.1\",\"@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\"}}");
245878
+ module.exports = JSON.parse("{\"name\":\"@vercel/client\",\"version\":\"13.0.0\",\"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\":\"tsc\",\"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.0.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\"}}");
245917
245879
 
245918
245880
  /***/ }),
245919
245881
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vercel",
3
- "version": "31.4.0",
3
+ "version": "32.0.1",
4
4
  "preferGlobal": true,
5
5
  "license": "Apache-2.0",
6
6
  "description": "The command-line interface for Vercel",
@@ -19,19 +19,19 @@
19
19
  "scripts/preinstall.js"
20
20
  ],
21
21
  "engines": {
22
- "node": ">= 14"
22
+ "node": ">= 16"
23
23
  },
24
24
  "dependencies": {
25
- "@vercel/build-utils": "6.8.3",
26
- "@vercel/go": "2.5.1",
27
- "@vercel/hydrogen": "0.0.64",
28
- "@vercel/next": "3.9.4",
29
- "@vercel/node": "2.15.10",
30
- "@vercel/python": "3.1.60",
31
- "@vercel/redwood": "1.1.15",
32
- "@vercel/remix-builder": "1.10.1",
33
- "@vercel/ruby": "1.3.76",
34
- "@vercel/static-build": "1.4.0"
25
+ "@vercel/build-utils": "7.0.0",
26
+ "@vercel/go": "3.0.0",
27
+ "@vercel/hydrogen": "1.0.0",
28
+ "@vercel/next": "4.0.0",
29
+ "@vercel/node": "3.0.1",
30
+ "@vercel/python": "4.0.0",
31
+ "@vercel/redwood": "2.0.0",
32
+ "@vercel/remix-builder": "2.0.0",
33
+ "@vercel/ruby": "2.0.0",
34
+ "@vercel/static-build": "2.0.1"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@alex_neo/jest-expect-message": "1.0.5",
@@ -77,14 +77,14 @@
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.6",
81
- "@vercel/client": "12.6.6",
82
- "@vercel/error-utils": "1.0.10",
83
- "@vercel/frameworks": "1.6.0",
84
- "@vercel/fs-detectors": "4.1.3",
80
+ "@vercel-internals/types": "1.0.7",
81
+ "@vercel/client": "13.0.0",
82
+ "@vercel/error-utils": "2.0.1",
83
+ "@vercel/frameworks": "2.0.1",
84
+ "@vercel/fs-detectors": "5.0.1",
85
85
  "@vercel/fun": "1.0.4",
86
86
  "@vercel/ncc": "0.24.0",
87
- "@vercel/routing-utils": "2.2.1",
87
+ "@vercel/routing-utils": "3.0.0",
88
88
  "@zeit/source-map-support": "0.6.2",
89
89
  "ajv": "6.12.2",
90
90
  "alpha-sort": "2.0.1",
@@ -125,6 +125,7 @@
125
125
  "is-port-reachable": "3.1.0",
126
126
  "is-url": "1.2.2",
127
127
  "jaro-winkler": "0.2.8",
128
+ "jest-junit": "16.0.0",
128
129
  "jest-matcher-utils": "29.3.1",
129
130
  "jsonlines": "0.1.1",
130
131
  "line-async-iterator": "3.0.0",
@@ -165,7 +166,7 @@
165
166
  "yauzl-promise": "2.1.3"
166
167
  },
167
168
  "scripts": {
168
- "test": "jest --env node --verbose --bail",
169
+ "test": "jest --reporters=default --reporters=jest-junit --env node --verbose --bail",
169
170
  "test-unit": "pnpm test test/unit/",
170
171
  "test-e2e": "rimraf test/fixtures/integration && pnpm test test/integration-1.test.ts test/integration-2.test.ts test/integration-3.test.ts",
171
172
  "test-dev": "pnpm test test/dev/",