vercel 28.17.0 → 28.18.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 +1596 -8
  2. package/package.json +14 -14
package/dist/index.js CHANGED
@@ -44138,6 +44138,100 @@ var eos = function(stream, opts, callback) {
44138
44138
 
44139
44139
  module.exports = eos;
44140
44140
 
44141
+ /***/ }),
44142
+
44143
+ /***/ 11235:
44144
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
44145
+
44146
+ var once = __webpack_require__(11924);
44147
+
44148
+ var noop = function() {};
44149
+
44150
+ var isRequest = function(stream) {
44151
+ return stream.setHeader && typeof stream.abort === 'function';
44152
+ };
44153
+
44154
+ var isChildProcess = function(stream) {
44155
+ return stream.stdio && Array.isArray(stream.stdio) && stream.stdio.length === 3
44156
+ };
44157
+
44158
+ var eos = function(stream, opts, callback) {
44159
+ if (typeof opts === 'function') return eos(stream, null, opts);
44160
+ if (!opts) opts = {};
44161
+
44162
+ callback = once(callback || noop);
44163
+
44164
+ var ws = stream._writableState;
44165
+ var rs = stream._readableState;
44166
+ var readable = opts.readable || (opts.readable !== false && stream.readable);
44167
+ var writable = opts.writable || (opts.writable !== false && stream.writable);
44168
+
44169
+ var onlegacyfinish = function() {
44170
+ if (!stream.writable) onfinish();
44171
+ };
44172
+
44173
+ var onfinish = function() {
44174
+ writable = false;
44175
+ if (!readable) callback.call(stream);
44176
+ };
44177
+
44178
+ var onend = function() {
44179
+ readable = false;
44180
+ if (!writable) callback.call(stream);
44181
+ };
44182
+
44183
+ var onexit = function(exitCode) {
44184
+ callback.call(stream, exitCode ? new Error('exited with error code: ' + exitCode) : null);
44185
+ };
44186
+
44187
+ var onerror = function(err) {
44188
+ callback.call(stream, err);
44189
+ };
44190
+
44191
+ var onclose = function() {
44192
+ if (readable && !(rs && rs.ended)) return callback.call(stream, new Error('premature close'));
44193
+ if (writable && !(ws && ws.ended)) return callback.call(stream, new Error('premature close'));
44194
+ };
44195
+
44196
+ var onrequest = function() {
44197
+ stream.req.on('finish', onfinish);
44198
+ };
44199
+
44200
+ if (isRequest(stream)) {
44201
+ stream.on('complete', onfinish);
44202
+ stream.on('abort', onclose);
44203
+ if (stream.req) onrequest();
44204
+ else stream.on('request', onrequest);
44205
+ } else if (writable && !ws) { // legacy streams
44206
+ stream.on('end', onlegacyfinish);
44207
+ stream.on('close', onlegacyfinish);
44208
+ }
44209
+
44210
+ if (isChildProcess(stream)) stream.on('exit', onexit);
44211
+
44212
+ stream.on('end', onend);
44213
+ stream.on('finish', onfinish);
44214
+ if (opts.error !== false) stream.on('error', onerror);
44215
+ stream.on('close', onclose);
44216
+
44217
+ return function() {
44218
+ stream.removeListener('complete', onfinish);
44219
+ stream.removeListener('abort', onclose);
44220
+ stream.removeListener('request', onrequest);
44221
+ if (stream.req) stream.req.removeListener('finish', onfinish);
44222
+ stream.removeListener('end', onlegacyfinish);
44223
+ stream.removeListener('close', onlegacyfinish);
44224
+ stream.removeListener('finish', onfinish);
44225
+ stream.removeListener('exit', onexit);
44226
+ stream.removeListener('end', onend);
44227
+ stream.removeListener('error', onerror);
44228
+ stream.removeListener('close', onclose);
44229
+ };
44230
+ };
44231
+
44232
+ module.exports = eos;
44233
+
44234
+
44141
44235
  /***/ }),
44142
44236
 
44143
44237
  /***/ 68912:
@@ -66518,7 +66612,7 @@ return{name,number,description,supported,action,forced,standard};
66518
66612
  */
66519
66613
 
66520
66614
  var util = __webpack_require__(31669);
66521
- var ms = __webpack_require__(21378);
66615
+ var ms = __webpack_require__(82801);
66522
66616
 
66523
66617
  module.exports = function (t) {
66524
66618
  if (typeof t === 'number') return t;
@@ -115406,7 +115500,7 @@ function fromRegistry (res) {
115406
115500
  // version, not on the argument so this can't compute that.
115407
115501
  res.saveSpec = null
115408
115502
  res.fetchSpec = spec
115409
- if (!semver) semver = __webpack_require__(54373)
115503
+ if (!semver) semver = __webpack_require__(58223)
115410
115504
  const version = semver.valid(spec, true)
115411
115505
  const range = semver.validRange(spec, true)
115412
115506
  if (version) {
@@ -122410,7 +122504,7 @@ module.exports = pump
122410
122504
  /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
122411
122505
 
122412
122506
  var once = __webpack_require__(11924)
122413
- var eos = __webpack_require__(68912)
122507
+ var eos = __webpack_require__(11235)
122414
122508
  var fs = __webpack_require__(35747) // we only need fs to get the ReadStream and WriteStream prototypes
122415
122509
 
122416
122510
  var noop = function () {}
@@ -143480,6 +143574,1496 @@ function coerce(version) {
143480
143574
  }
143481
143575
 
143482
143576
 
143577
+ /***/ }),
143578
+
143579
+ /***/ 58223:
143580
+ /***/ ((module, exports) => {
143581
+
143582
+ exports = module.exports = SemVer
143583
+
143584
+ var debug
143585
+ /* istanbul ignore next */
143586
+ if (typeof process === 'object' &&
143587
+ process.env &&
143588
+ process.env.NODE_DEBUG &&
143589
+ /\bsemver\b/i.test(process.env.NODE_DEBUG)) {
143590
+ debug = function () {
143591
+ var args = Array.prototype.slice.call(arguments, 0)
143592
+ args.unshift('SEMVER')
143593
+ console.log.apply(console, args)
143594
+ }
143595
+ } else {
143596
+ debug = function () {}
143597
+ }
143598
+
143599
+ // Note: this is the semver.org version of the spec that it implements
143600
+ // Not necessarily the package version of this code.
143601
+ exports.SEMVER_SPEC_VERSION = '2.0.0'
143602
+
143603
+ var MAX_LENGTH = 256
143604
+ var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||
143605
+ /* istanbul ignore next */ 9007199254740991
143606
+
143607
+ // Max safe segment length for coercion.
143608
+ var MAX_SAFE_COMPONENT_LENGTH = 16
143609
+
143610
+ // The actual regexps go on exports.re
143611
+ var re = exports.re = []
143612
+ var src = exports.src = []
143613
+ var R = 0
143614
+
143615
+ // The following Regular Expressions can be used for tokenizing,
143616
+ // validating, and parsing SemVer version strings.
143617
+
143618
+ // ## Numeric Identifier
143619
+ // A single `0`, or a non-zero digit followed by zero or more digits.
143620
+
143621
+ var NUMERICIDENTIFIER = R++
143622
+ src[NUMERICIDENTIFIER] = '0|[1-9]\\d*'
143623
+ var NUMERICIDENTIFIERLOOSE = R++
143624
+ src[NUMERICIDENTIFIERLOOSE] = '[0-9]+'
143625
+
143626
+ // ## Non-numeric Identifier
143627
+ // Zero or more digits, followed by a letter or hyphen, and then zero or
143628
+ // more letters, digits, or hyphens.
143629
+
143630
+ var NONNUMERICIDENTIFIER = R++
143631
+ src[NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*'
143632
+
143633
+ // ## Main Version
143634
+ // Three dot-separated numeric identifiers.
143635
+
143636
+ var MAINVERSION = R++
143637
+ src[MAINVERSION] = '(' + src[NUMERICIDENTIFIER] + ')\\.' +
143638
+ '(' + src[NUMERICIDENTIFIER] + ')\\.' +
143639
+ '(' + src[NUMERICIDENTIFIER] + ')'
143640
+
143641
+ var MAINVERSIONLOOSE = R++
143642
+ src[MAINVERSIONLOOSE] = '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' +
143643
+ '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' +
143644
+ '(' + src[NUMERICIDENTIFIERLOOSE] + ')'
143645
+
143646
+ // ## Pre-release Version Identifier
143647
+ // A numeric identifier, or a non-numeric identifier.
143648
+
143649
+ var PRERELEASEIDENTIFIER = R++
143650
+ src[PRERELEASEIDENTIFIER] = '(?:' + src[NUMERICIDENTIFIER] +
143651
+ '|' + src[NONNUMERICIDENTIFIER] + ')'
143652
+
143653
+ var PRERELEASEIDENTIFIERLOOSE = R++
143654
+ src[PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[NUMERICIDENTIFIERLOOSE] +
143655
+ '|' + src[NONNUMERICIDENTIFIER] + ')'
143656
+
143657
+ // ## Pre-release Version
143658
+ // Hyphen, followed by one or more dot-separated pre-release version
143659
+ // identifiers.
143660
+
143661
+ var PRERELEASE = R++
143662
+ src[PRERELEASE] = '(?:-(' + src[PRERELEASEIDENTIFIER] +
143663
+ '(?:\\.' + src[PRERELEASEIDENTIFIER] + ')*))'
143664
+
143665
+ var PRERELEASELOOSE = R++
143666
+ src[PRERELEASELOOSE] = '(?:-?(' + src[PRERELEASEIDENTIFIERLOOSE] +
143667
+ '(?:\\.' + src[PRERELEASEIDENTIFIERLOOSE] + ')*))'
143668
+
143669
+ // ## Build Metadata Identifier
143670
+ // Any combination of digits, letters, or hyphens.
143671
+
143672
+ var BUILDIDENTIFIER = R++
143673
+ src[BUILDIDENTIFIER] = '[0-9A-Za-z-]+'
143674
+
143675
+ // ## Build Metadata
143676
+ // Plus sign, followed by one or more period-separated build metadata
143677
+ // identifiers.
143678
+
143679
+ var BUILD = R++
143680
+ src[BUILD] = '(?:\\+(' + src[BUILDIDENTIFIER] +
143681
+ '(?:\\.' + src[BUILDIDENTIFIER] + ')*))'
143682
+
143683
+ // ## Full Version String
143684
+ // A main version, followed optionally by a pre-release version and
143685
+ // build metadata.
143686
+
143687
+ // Note that the only major, minor, patch, and pre-release sections of
143688
+ // the version string are capturing groups. The build metadata is not a
143689
+ // capturing group, because it should not ever be used in version
143690
+ // comparison.
143691
+
143692
+ var FULL = R++
143693
+ var FULLPLAIN = 'v?' + src[MAINVERSION] +
143694
+ src[PRERELEASE] + '?' +
143695
+ src[BUILD] + '?'
143696
+
143697
+ src[FULL] = '^' + FULLPLAIN + '$'
143698
+
143699
+ // like full, but allows v1.2.3 and =1.2.3, which people do sometimes.
143700
+ // also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty
143701
+ // common in the npm registry.
143702
+ var LOOSEPLAIN = '[v=\\s]*' + src[MAINVERSIONLOOSE] +
143703
+ src[PRERELEASELOOSE] + '?' +
143704
+ src[BUILD] + '?'
143705
+
143706
+ var LOOSE = R++
143707
+ src[LOOSE] = '^' + LOOSEPLAIN + '$'
143708
+
143709
+ var GTLT = R++
143710
+ src[GTLT] = '((?:<|>)?=?)'
143711
+
143712
+ // Something like "2.*" or "1.2.x".
143713
+ // Note that "x.x" is a valid xRange identifer, meaning "any version"
143714
+ // Only the first item is strictly required.
143715
+ var XRANGEIDENTIFIERLOOSE = R++
143716
+ src[XRANGEIDENTIFIERLOOSE] = src[NUMERICIDENTIFIERLOOSE] + '|x|X|\\*'
143717
+ var XRANGEIDENTIFIER = R++
143718
+ src[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + '|x|X|\\*'
143719
+
143720
+ var XRANGEPLAIN = R++
143721
+ src[XRANGEPLAIN] = '[v=\\s]*(' + src[XRANGEIDENTIFIER] + ')' +
143722
+ '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' +
143723
+ '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' +
143724
+ '(?:' + src[PRERELEASE] + ')?' +
143725
+ src[BUILD] + '?' +
143726
+ ')?)?'
143727
+
143728
+ var XRANGEPLAINLOOSE = R++
143729
+ src[XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
143730
+ '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
143731
+ '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
143732
+ '(?:' + src[PRERELEASELOOSE] + ')?' +
143733
+ src[BUILD] + '?' +
143734
+ ')?)?'
143735
+
143736
+ var XRANGE = R++
143737
+ src[XRANGE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAIN] + '$'
143738
+ var XRANGELOOSE = R++
143739
+ src[XRANGELOOSE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAINLOOSE] + '$'
143740
+
143741
+ // Coercion.
143742
+ // Extract anything that could conceivably be a part of a valid semver
143743
+ var COERCE = R++
143744
+ src[COERCE] = '(?:^|[^\\d])' +
143745
+ '(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +
143746
+ '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +
143747
+ '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +
143748
+ '(?:$|[^\\d])'
143749
+
143750
+ // Tilde ranges.
143751
+ // Meaning is "reasonably at or greater than"
143752
+ var LONETILDE = R++
143753
+ src[LONETILDE] = '(?:~>?)'
143754
+
143755
+ var TILDETRIM = R++
143756
+ src[TILDETRIM] = '(\\s*)' + src[LONETILDE] + '\\s+'
143757
+ re[TILDETRIM] = new RegExp(src[TILDETRIM], 'g')
143758
+ var tildeTrimReplace = '$1~'
143759
+
143760
+ var TILDE = R++
143761
+ src[TILDE] = '^' + src[LONETILDE] + src[XRANGEPLAIN] + '$'
143762
+ var TILDELOOSE = R++
143763
+ src[TILDELOOSE] = '^' + src[LONETILDE] + src[XRANGEPLAINLOOSE] + '$'
143764
+
143765
+ // Caret ranges.
143766
+ // Meaning is "at least and backwards compatible with"
143767
+ var LONECARET = R++
143768
+ src[LONECARET] = '(?:\\^)'
143769
+
143770
+ var CARETTRIM = R++
143771
+ src[CARETTRIM] = '(\\s*)' + src[LONECARET] + '\\s+'
143772
+ re[CARETTRIM] = new RegExp(src[CARETTRIM], 'g')
143773
+ var caretTrimReplace = '$1^'
143774
+
143775
+ var CARET = R++
143776
+ src[CARET] = '^' + src[LONECARET] + src[XRANGEPLAIN] + '$'
143777
+ var CARETLOOSE = R++
143778
+ src[CARETLOOSE] = '^' + src[LONECARET] + src[XRANGEPLAINLOOSE] + '$'
143779
+
143780
+ // A simple gt/lt/eq thing, or just "" to indicate "any version"
143781
+ var COMPARATORLOOSE = R++
143782
+ src[COMPARATORLOOSE] = '^' + src[GTLT] + '\\s*(' + LOOSEPLAIN + ')$|^$'
143783
+ var COMPARATOR = R++
143784
+ src[COMPARATOR] = '^' + src[GTLT] + '\\s*(' + FULLPLAIN + ')$|^$'
143785
+
143786
+ // An expression to strip any whitespace between the gtlt and the thing
143787
+ // it modifies, so that `> 1.2.3` ==> `>1.2.3`
143788
+ var COMPARATORTRIM = R++
143789
+ src[COMPARATORTRIM] = '(\\s*)' + src[GTLT] +
143790
+ '\\s*(' + LOOSEPLAIN + '|' + src[XRANGEPLAIN] + ')'
143791
+
143792
+ // this one has to use the /g flag
143793
+ re[COMPARATORTRIM] = new RegExp(src[COMPARATORTRIM], 'g')
143794
+ var comparatorTrimReplace = '$1$2$3'
143795
+
143796
+ // Something like `1.2.3 - 1.2.4`
143797
+ // Note that these all use the loose form, because they'll be
143798
+ // checked against either the strict or loose comparator form
143799
+ // later.
143800
+ var HYPHENRANGE = R++
143801
+ src[HYPHENRANGE] = '^\\s*(' + src[XRANGEPLAIN] + ')' +
143802
+ '\\s+-\\s+' +
143803
+ '(' + src[XRANGEPLAIN] + ')' +
143804
+ '\\s*$'
143805
+
143806
+ var HYPHENRANGELOOSE = R++
143807
+ src[HYPHENRANGELOOSE] = '^\\s*(' + src[XRANGEPLAINLOOSE] + ')' +
143808
+ '\\s+-\\s+' +
143809
+ '(' + src[XRANGEPLAINLOOSE] + ')' +
143810
+ '\\s*$'
143811
+
143812
+ // Star ranges basically just allow anything at all.
143813
+ var STAR = R++
143814
+ src[STAR] = '(<|>)?=?\\s*\\*'
143815
+
143816
+ // Compile to actual regexp objects.
143817
+ // All are flag-free, unless they were created above with a flag.
143818
+ for (var i = 0; i < R; i++) {
143819
+ debug(i, src[i])
143820
+ if (!re[i]) {
143821
+ re[i] = new RegExp(src[i])
143822
+ }
143823
+ }
143824
+
143825
+ exports.parse = parse
143826
+ function parse (version, options) {
143827
+ if (!options || typeof options !== 'object') {
143828
+ options = {
143829
+ loose: !!options,
143830
+ includePrerelease: false
143831
+ }
143832
+ }
143833
+
143834
+ if (version instanceof SemVer) {
143835
+ return version
143836
+ }
143837
+
143838
+ if (typeof version !== 'string') {
143839
+ return null
143840
+ }
143841
+
143842
+ if (version.length > MAX_LENGTH) {
143843
+ return null
143844
+ }
143845
+
143846
+ var r = options.loose ? re[LOOSE] : re[FULL]
143847
+ if (!r.test(version)) {
143848
+ return null
143849
+ }
143850
+
143851
+ try {
143852
+ return new SemVer(version, options)
143853
+ } catch (er) {
143854
+ return null
143855
+ }
143856
+ }
143857
+
143858
+ exports.valid = valid
143859
+ function valid (version, options) {
143860
+ var v = parse(version, options)
143861
+ return v ? v.version : null
143862
+ }
143863
+
143864
+ exports.clean = clean
143865
+ function clean (version, options) {
143866
+ var s = parse(version.trim().replace(/^[=v]+/, ''), options)
143867
+ return s ? s.version : null
143868
+ }
143869
+
143870
+ exports.SemVer = SemVer
143871
+
143872
+ function SemVer (version, options) {
143873
+ if (!options || typeof options !== 'object') {
143874
+ options = {
143875
+ loose: !!options,
143876
+ includePrerelease: false
143877
+ }
143878
+ }
143879
+ if (version instanceof SemVer) {
143880
+ if (version.loose === options.loose) {
143881
+ return version
143882
+ } else {
143883
+ version = version.version
143884
+ }
143885
+ } else if (typeof version !== 'string') {
143886
+ throw new TypeError('Invalid Version: ' + version)
143887
+ }
143888
+
143889
+ if (version.length > MAX_LENGTH) {
143890
+ throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')
143891
+ }
143892
+
143893
+ if (!(this instanceof SemVer)) {
143894
+ return new SemVer(version, options)
143895
+ }
143896
+
143897
+ debug('SemVer', version, options)
143898
+ this.options = options
143899
+ this.loose = !!options.loose
143900
+
143901
+ var m = version.trim().match(options.loose ? re[LOOSE] : re[FULL])
143902
+
143903
+ if (!m) {
143904
+ throw new TypeError('Invalid Version: ' + version)
143905
+ }
143906
+
143907
+ this.raw = version
143908
+
143909
+ // these are actually numbers
143910
+ this.major = +m[1]
143911
+ this.minor = +m[2]
143912
+ this.patch = +m[3]
143913
+
143914
+ if (this.major > MAX_SAFE_INTEGER || this.major < 0) {
143915
+ throw new TypeError('Invalid major version')
143916
+ }
143917
+
143918
+ if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {
143919
+ throw new TypeError('Invalid minor version')
143920
+ }
143921
+
143922
+ if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {
143923
+ throw new TypeError('Invalid patch version')
143924
+ }
143925
+
143926
+ // numberify any prerelease numeric ids
143927
+ if (!m[4]) {
143928
+ this.prerelease = []
143929
+ } else {
143930
+ this.prerelease = m[4].split('.').map(function (id) {
143931
+ if (/^[0-9]+$/.test(id)) {
143932
+ var num = +id
143933
+ if (num >= 0 && num < MAX_SAFE_INTEGER) {
143934
+ return num
143935
+ }
143936
+ }
143937
+ return id
143938
+ })
143939
+ }
143940
+
143941
+ this.build = m[5] ? m[5].split('.') : []
143942
+ this.format()
143943
+ }
143944
+
143945
+ SemVer.prototype.format = function () {
143946
+ this.version = this.major + '.' + this.minor + '.' + this.patch
143947
+ if (this.prerelease.length) {
143948
+ this.version += '-' + this.prerelease.join('.')
143949
+ }
143950
+ return this.version
143951
+ }
143952
+
143953
+ SemVer.prototype.toString = function () {
143954
+ return this.version
143955
+ }
143956
+
143957
+ SemVer.prototype.compare = function (other) {
143958
+ debug('SemVer.compare', this.version, this.options, other)
143959
+ if (!(other instanceof SemVer)) {
143960
+ other = new SemVer(other, this.options)
143961
+ }
143962
+
143963
+ return this.compareMain(other) || this.comparePre(other)
143964
+ }
143965
+
143966
+ SemVer.prototype.compareMain = function (other) {
143967
+ if (!(other instanceof SemVer)) {
143968
+ other = new SemVer(other, this.options)
143969
+ }
143970
+
143971
+ return compareIdentifiers(this.major, other.major) ||
143972
+ compareIdentifiers(this.minor, other.minor) ||
143973
+ compareIdentifiers(this.patch, other.patch)
143974
+ }
143975
+
143976
+ SemVer.prototype.comparePre = function (other) {
143977
+ if (!(other instanceof SemVer)) {
143978
+ other = new SemVer(other, this.options)
143979
+ }
143980
+
143981
+ // NOT having a prerelease is > having one
143982
+ if (this.prerelease.length && !other.prerelease.length) {
143983
+ return -1
143984
+ } else if (!this.prerelease.length && other.prerelease.length) {
143985
+ return 1
143986
+ } else if (!this.prerelease.length && !other.prerelease.length) {
143987
+ return 0
143988
+ }
143989
+
143990
+ var i = 0
143991
+ do {
143992
+ var a = this.prerelease[i]
143993
+ var b = other.prerelease[i]
143994
+ debug('prerelease compare', i, a, b)
143995
+ if (a === undefined && b === undefined) {
143996
+ return 0
143997
+ } else if (b === undefined) {
143998
+ return 1
143999
+ } else if (a === undefined) {
144000
+ return -1
144001
+ } else if (a === b) {
144002
+ continue
144003
+ } else {
144004
+ return compareIdentifiers(a, b)
144005
+ }
144006
+ } while (++i)
144007
+ }
144008
+
144009
+ // preminor will bump the version up to the next minor release, and immediately
144010
+ // down to pre-release. premajor and prepatch work the same way.
144011
+ SemVer.prototype.inc = function (release, identifier) {
144012
+ switch (release) {
144013
+ case 'premajor':
144014
+ this.prerelease.length = 0
144015
+ this.patch = 0
144016
+ this.minor = 0
144017
+ this.major++
144018
+ this.inc('pre', identifier)
144019
+ break
144020
+ case 'preminor':
144021
+ this.prerelease.length = 0
144022
+ this.patch = 0
144023
+ this.minor++
144024
+ this.inc('pre', identifier)
144025
+ break
144026
+ case 'prepatch':
144027
+ // If this is already a prerelease, it will bump to the next version
144028
+ // drop any prereleases that might already exist, since they are not
144029
+ // relevant at this point.
144030
+ this.prerelease.length = 0
144031
+ this.inc('patch', identifier)
144032
+ this.inc('pre', identifier)
144033
+ break
144034
+ // If the input is a non-prerelease version, this acts the same as
144035
+ // prepatch.
144036
+ case 'prerelease':
144037
+ if (this.prerelease.length === 0) {
144038
+ this.inc('patch', identifier)
144039
+ }
144040
+ this.inc('pre', identifier)
144041
+ break
144042
+
144043
+ case 'major':
144044
+ // If this is a pre-major version, bump up to the same major version.
144045
+ // Otherwise increment major.
144046
+ // 1.0.0-5 bumps to 1.0.0
144047
+ // 1.1.0 bumps to 2.0.0
144048
+ if (this.minor !== 0 ||
144049
+ this.patch !== 0 ||
144050
+ this.prerelease.length === 0) {
144051
+ this.major++
144052
+ }
144053
+ this.minor = 0
144054
+ this.patch = 0
144055
+ this.prerelease = []
144056
+ break
144057
+ case 'minor':
144058
+ // If this is a pre-minor version, bump up to the same minor version.
144059
+ // Otherwise increment minor.
144060
+ // 1.2.0-5 bumps to 1.2.0
144061
+ // 1.2.1 bumps to 1.3.0
144062
+ if (this.patch !== 0 || this.prerelease.length === 0) {
144063
+ this.minor++
144064
+ }
144065
+ this.patch = 0
144066
+ this.prerelease = []
144067
+ break
144068
+ case 'patch':
144069
+ // If this is not a pre-release version, it will increment the patch.
144070
+ // If it is a pre-release it will bump up to the same patch version.
144071
+ // 1.2.0-5 patches to 1.2.0
144072
+ // 1.2.0 patches to 1.2.1
144073
+ if (this.prerelease.length === 0) {
144074
+ this.patch++
144075
+ }
144076
+ this.prerelease = []
144077
+ break
144078
+ // This probably shouldn't be used publicly.
144079
+ // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction.
144080
+ case 'pre':
144081
+ if (this.prerelease.length === 0) {
144082
+ this.prerelease = [0]
144083
+ } else {
144084
+ var i = this.prerelease.length
144085
+ while (--i >= 0) {
144086
+ if (typeof this.prerelease[i] === 'number') {
144087
+ this.prerelease[i]++
144088
+ i = -2
144089
+ }
144090
+ }
144091
+ if (i === -1) {
144092
+ // didn't increment anything
144093
+ this.prerelease.push(0)
144094
+ }
144095
+ }
144096
+ if (identifier) {
144097
+ // 1.2.0-beta.1 bumps to 1.2.0-beta.2,
144098
+ // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0
144099
+ if (this.prerelease[0] === identifier) {
144100
+ if (isNaN(this.prerelease[1])) {
144101
+ this.prerelease = [identifier, 0]
144102
+ }
144103
+ } else {
144104
+ this.prerelease = [identifier, 0]
144105
+ }
144106
+ }
144107
+ break
144108
+
144109
+ default:
144110
+ throw new Error('invalid increment argument: ' + release)
144111
+ }
144112
+ this.format()
144113
+ this.raw = this.version
144114
+ return this
144115
+ }
144116
+
144117
+ exports.inc = inc
144118
+ function inc (version, release, loose, identifier) {
144119
+ if (typeof (loose) === 'string') {
144120
+ identifier = loose
144121
+ loose = undefined
144122
+ }
144123
+
144124
+ try {
144125
+ return new SemVer(version, loose).inc(release, identifier).version
144126
+ } catch (er) {
144127
+ return null
144128
+ }
144129
+ }
144130
+
144131
+ exports.diff = diff
144132
+ function diff (version1, version2) {
144133
+ if (eq(version1, version2)) {
144134
+ return null
144135
+ } else {
144136
+ var v1 = parse(version1)
144137
+ var v2 = parse(version2)
144138
+ var prefix = ''
144139
+ if (v1.prerelease.length || v2.prerelease.length) {
144140
+ prefix = 'pre'
144141
+ var defaultResult = 'prerelease'
144142
+ }
144143
+ for (var key in v1) {
144144
+ if (key === 'major' || key === 'minor' || key === 'patch') {
144145
+ if (v1[key] !== v2[key]) {
144146
+ return prefix + key
144147
+ }
144148
+ }
144149
+ }
144150
+ return defaultResult // may be undefined
144151
+ }
144152
+ }
144153
+
144154
+ exports.compareIdentifiers = compareIdentifiers
144155
+
144156
+ var numeric = /^[0-9]+$/
144157
+ function compareIdentifiers (a, b) {
144158
+ var anum = numeric.test(a)
144159
+ var bnum = numeric.test(b)
144160
+
144161
+ if (anum && bnum) {
144162
+ a = +a
144163
+ b = +b
144164
+ }
144165
+
144166
+ return a === b ? 0
144167
+ : (anum && !bnum) ? -1
144168
+ : (bnum && !anum) ? 1
144169
+ : a < b ? -1
144170
+ : 1
144171
+ }
144172
+
144173
+ exports.rcompareIdentifiers = rcompareIdentifiers
144174
+ function rcompareIdentifiers (a, b) {
144175
+ return compareIdentifiers(b, a)
144176
+ }
144177
+
144178
+ exports.major = major
144179
+ function major (a, loose) {
144180
+ return new SemVer(a, loose).major
144181
+ }
144182
+
144183
+ exports.minor = minor
144184
+ function minor (a, loose) {
144185
+ return new SemVer(a, loose).minor
144186
+ }
144187
+
144188
+ exports.patch = patch
144189
+ function patch (a, loose) {
144190
+ return new SemVer(a, loose).patch
144191
+ }
144192
+
144193
+ exports.compare = compare
144194
+ function compare (a, b, loose) {
144195
+ return new SemVer(a, loose).compare(new SemVer(b, loose))
144196
+ }
144197
+
144198
+ exports.compareLoose = compareLoose
144199
+ function compareLoose (a, b) {
144200
+ return compare(a, b, true)
144201
+ }
144202
+
144203
+ exports.rcompare = rcompare
144204
+ function rcompare (a, b, loose) {
144205
+ return compare(b, a, loose)
144206
+ }
144207
+
144208
+ exports.sort = sort
144209
+ function sort (list, loose) {
144210
+ return list.sort(function (a, b) {
144211
+ return exports.compare(a, b, loose)
144212
+ })
144213
+ }
144214
+
144215
+ exports.rsort = rsort
144216
+ function rsort (list, loose) {
144217
+ return list.sort(function (a, b) {
144218
+ return exports.rcompare(a, b, loose)
144219
+ })
144220
+ }
144221
+
144222
+ exports.gt = gt
144223
+ function gt (a, b, loose) {
144224
+ return compare(a, b, loose) > 0
144225
+ }
144226
+
144227
+ exports.lt = lt
144228
+ function lt (a, b, loose) {
144229
+ return compare(a, b, loose) < 0
144230
+ }
144231
+
144232
+ exports.eq = eq
144233
+ function eq (a, b, loose) {
144234
+ return compare(a, b, loose) === 0
144235
+ }
144236
+
144237
+ exports.neq = neq
144238
+ function neq (a, b, loose) {
144239
+ return compare(a, b, loose) !== 0
144240
+ }
144241
+
144242
+ exports.gte = gte
144243
+ function gte (a, b, loose) {
144244
+ return compare(a, b, loose) >= 0
144245
+ }
144246
+
144247
+ exports.lte = lte
144248
+ function lte (a, b, loose) {
144249
+ return compare(a, b, loose) <= 0
144250
+ }
144251
+
144252
+ exports.cmp = cmp
144253
+ function cmp (a, op, b, loose) {
144254
+ switch (op) {
144255
+ case '===':
144256
+ if (typeof a === 'object')
144257
+ a = a.version
144258
+ if (typeof b === 'object')
144259
+ b = b.version
144260
+ return a === b
144261
+
144262
+ case '!==':
144263
+ if (typeof a === 'object')
144264
+ a = a.version
144265
+ if (typeof b === 'object')
144266
+ b = b.version
144267
+ return a !== b
144268
+
144269
+ case '':
144270
+ case '=':
144271
+ case '==':
144272
+ return eq(a, b, loose)
144273
+
144274
+ case '!=':
144275
+ return neq(a, b, loose)
144276
+
144277
+ case '>':
144278
+ return gt(a, b, loose)
144279
+
144280
+ case '>=':
144281
+ return gte(a, b, loose)
144282
+
144283
+ case '<':
144284
+ return lt(a, b, loose)
144285
+
144286
+ case '<=':
144287
+ return lte(a, b, loose)
144288
+
144289
+ default:
144290
+ throw new TypeError('Invalid operator: ' + op)
144291
+ }
144292
+ }
144293
+
144294
+ exports.Comparator = Comparator
144295
+ function Comparator (comp, options) {
144296
+ if (!options || typeof options !== 'object') {
144297
+ options = {
144298
+ loose: !!options,
144299
+ includePrerelease: false
144300
+ }
144301
+ }
144302
+
144303
+ if (comp instanceof Comparator) {
144304
+ if (comp.loose === !!options.loose) {
144305
+ return comp
144306
+ } else {
144307
+ comp = comp.value
144308
+ }
144309
+ }
144310
+
144311
+ if (!(this instanceof Comparator)) {
144312
+ return new Comparator(comp, options)
144313
+ }
144314
+
144315
+ debug('comparator', comp, options)
144316
+ this.options = options
144317
+ this.loose = !!options.loose
144318
+ this.parse(comp)
144319
+
144320
+ if (this.semver === ANY) {
144321
+ this.value = ''
144322
+ } else {
144323
+ this.value = this.operator + this.semver.version
144324
+ }
144325
+
144326
+ debug('comp', this)
144327
+ }
144328
+
144329
+ var ANY = {}
144330
+ Comparator.prototype.parse = function (comp) {
144331
+ var r = this.options.loose ? re[COMPARATORLOOSE] : re[COMPARATOR]
144332
+ var m = comp.match(r)
144333
+
144334
+ if (!m) {
144335
+ throw new TypeError('Invalid comparator: ' + comp)
144336
+ }
144337
+
144338
+ this.operator = m[1]
144339
+ if (this.operator === '=') {
144340
+ this.operator = ''
144341
+ }
144342
+
144343
+ // if it literally is just '>' or '' then allow anything.
144344
+ if (!m[2]) {
144345
+ this.semver = ANY
144346
+ } else {
144347
+ this.semver = new SemVer(m[2], this.options.loose)
144348
+ }
144349
+ }
144350
+
144351
+ Comparator.prototype.toString = function () {
144352
+ return this.value
144353
+ }
144354
+
144355
+ Comparator.prototype.test = function (version) {
144356
+ debug('Comparator.test', version, this.options.loose)
144357
+
144358
+ if (this.semver === ANY) {
144359
+ return true
144360
+ }
144361
+
144362
+ if (typeof version === 'string') {
144363
+ version = new SemVer(version, this.options)
144364
+ }
144365
+
144366
+ return cmp(version, this.operator, this.semver, this.options)
144367
+ }
144368
+
144369
+ Comparator.prototype.intersects = function (comp, options) {
144370
+ if (!(comp instanceof Comparator)) {
144371
+ throw new TypeError('a Comparator is required')
144372
+ }
144373
+
144374
+ if (!options || typeof options !== 'object') {
144375
+ options = {
144376
+ loose: !!options,
144377
+ includePrerelease: false
144378
+ }
144379
+ }
144380
+
144381
+ var rangeTmp
144382
+
144383
+ if (this.operator === '') {
144384
+ rangeTmp = new Range(comp.value, options)
144385
+ return satisfies(this.value, rangeTmp, options)
144386
+ } else if (comp.operator === '') {
144387
+ rangeTmp = new Range(this.value, options)
144388
+ return satisfies(comp.semver, rangeTmp, options)
144389
+ }
144390
+
144391
+ var sameDirectionIncreasing =
144392
+ (this.operator === '>=' || this.operator === '>') &&
144393
+ (comp.operator === '>=' || comp.operator === '>')
144394
+ var sameDirectionDecreasing =
144395
+ (this.operator === '<=' || this.operator === '<') &&
144396
+ (comp.operator === '<=' || comp.operator === '<')
144397
+ var sameSemVer = this.semver.version === comp.semver.version
144398
+ var differentDirectionsInclusive =
144399
+ (this.operator === '>=' || this.operator === '<=') &&
144400
+ (comp.operator === '>=' || comp.operator === '<=')
144401
+ var oppositeDirectionsLessThan =
144402
+ cmp(this.semver, '<', comp.semver, options) &&
144403
+ ((this.operator === '>=' || this.operator === '>') &&
144404
+ (comp.operator === '<=' || comp.operator === '<'))
144405
+ var oppositeDirectionsGreaterThan =
144406
+ cmp(this.semver, '>', comp.semver, options) &&
144407
+ ((this.operator === '<=' || this.operator === '<') &&
144408
+ (comp.operator === '>=' || comp.operator === '>'))
144409
+
144410
+ return sameDirectionIncreasing || sameDirectionDecreasing ||
144411
+ (sameSemVer && differentDirectionsInclusive) ||
144412
+ oppositeDirectionsLessThan || oppositeDirectionsGreaterThan
144413
+ }
144414
+
144415
+ exports.Range = Range
144416
+ function Range (range, options) {
144417
+ if (!options || typeof options !== 'object') {
144418
+ options = {
144419
+ loose: !!options,
144420
+ includePrerelease: false
144421
+ }
144422
+ }
144423
+
144424
+ if (range instanceof Range) {
144425
+ if (range.loose === !!options.loose &&
144426
+ range.includePrerelease === !!options.includePrerelease) {
144427
+ return range
144428
+ } else {
144429
+ return new Range(range.raw, options)
144430
+ }
144431
+ }
144432
+
144433
+ if (range instanceof Comparator) {
144434
+ return new Range(range.value, options)
144435
+ }
144436
+
144437
+ if (!(this instanceof Range)) {
144438
+ return new Range(range, options)
144439
+ }
144440
+
144441
+ this.options = options
144442
+ this.loose = !!options.loose
144443
+ this.includePrerelease = !!options.includePrerelease
144444
+
144445
+ // First, split based on boolean or ||
144446
+ this.raw = range
144447
+ this.set = range.split(/\s*\|\|\s*/).map(function (range) {
144448
+ return this.parseRange(range.trim())
144449
+ }, this).filter(function (c) {
144450
+ // throw out any that are not relevant for whatever reason
144451
+ return c.length
144452
+ })
144453
+
144454
+ if (!this.set.length) {
144455
+ throw new TypeError('Invalid SemVer Range: ' + range)
144456
+ }
144457
+
144458
+ this.format()
144459
+ }
144460
+
144461
+ Range.prototype.format = function () {
144462
+ this.range = this.set.map(function (comps) {
144463
+ return comps.join(' ').trim()
144464
+ }).join('||').trim()
144465
+ return this.range
144466
+ }
144467
+
144468
+ Range.prototype.toString = function () {
144469
+ return this.range
144470
+ }
144471
+
144472
+ Range.prototype.parseRange = function (range) {
144473
+ var loose = this.options.loose
144474
+ range = range.trim()
144475
+ // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`
144476
+ var hr = loose ? re[HYPHENRANGELOOSE] : re[HYPHENRANGE]
144477
+ range = range.replace(hr, hyphenReplace)
144478
+ debug('hyphen replace', range)
144479
+ // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`
144480
+ range = range.replace(re[COMPARATORTRIM], comparatorTrimReplace)
144481
+ debug('comparator trim', range, re[COMPARATORTRIM])
144482
+
144483
+ // `~ 1.2.3` => `~1.2.3`
144484
+ range = range.replace(re[TILDETRIM], tildeTrimReplace)
144485
+
144486
+ // `^ 1.2.3` => `^1.2.3`
144487
+ range = range.replace(re[CARETTRIM], caretTrimReplace)
144488
+
144489
+ // normalize spaces
144490
+ range = range.split(/\s+/).join(' ')
144491
+
144492
+ // At this point, the range is completely trimmed and
144493
+ // ready to be split into comparators.
144494
+
144495
+ var compRe = loose ? re[COMPARATORLOOSE] : re[COMPARATOR]
144496
+ var set = range.split(' ').map(function (comp) {
144497
+ return parseComparator(comp, this.options)
144498
+ }, this).join(' ').split(/\s+/)
144499
+ if (this.options.loose) {
144500
+ // in loose mode, throw out any that are not valid comparators
144501
+ set = set.filter(function (comp) {
144502
+ return !!comp.match(compRe)
144503
+ })
144504
+ }
144505
+ set = set.map(function (comp) {
144506
+ return new Comparator(comp, this.options)
144507
+ }, this)
144508
+
144509
+ return set
144510
+ }
144511
+
144512
+ Range.prototype.intersects = function (range, options) {
144513
+ if (!(range instanceof Range)) {
144514
+ throw new TypeError('a Range is required')
144515
+ }
144516
+
144517
+ return this.set.some(function (thisComparators) {
144518
+ return thisComparators.every(function (thisComparator) {
144519
+ return range.set.some(function (rangeComparators) {
144520
+ return rangeComparators.every(function (rangeComparator) {
144521
+ return thisComparator.intersects(rangeComparator, options)
144522
+ })
144523
+ })
144524
+ })
144525
+ })
144526
+ }
144527
+
144528
+ // Mostly just for testing and legacy API reasons
144529
+ exports.toComparators = toComparators
144530
+ function toComparators (range, options) {
144531
+ return new Range(range, options).set.map(function (comp) {
144532
+ return comp.map(function (c) {
144533
+ return c.value
144534
+ }).join(' ').trim().split(' ')
144535
+ })
144536
+ }
144537
+
144538
+ // comprised of xranges, tildes, stars, and gtlt's at this point.
144539
+ // already replaced the hyphen ranges
144540
+ // turn into a set of JUST comparators.
144541
+ function parseComparator (comp, options) {
144542
+ debug('comp', comp, options)
144543
+ comp = replaceCarets(comp, options)
144544
+ debug('caret', comp)
144545
+ comp = replaceTildes(comp, options)
144546
+ debug('tildes', comp)
144547
+ comp = replaceXRanges(comp, options)
144548
+ debug('xrange', comp)
144549
+ comp = replaceStars(comp, options)
144550
+ debug('stars', comp)
144551
+ return comp
144552
+ }
144553
+
144554
+ function isX (id) {
144555
+ return !id || id.toLowerCase() === 'x' || id === '*'
144556
+ }
144557
+
144558
+ // ~, ~> --> * (any, kinda silly)
144559
+ // ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0
144560
+ // ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0
144561
+ // ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0
144562
+ // ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0
144563
+ // ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0
144564
+ function replaceTildes (comp, options) {
144565
+ return comp.trim().split(/\s+/).map(function (comp) {
144566
+ return replaceTilde(comp, options)
144567
+ }).join(' ')
144568
+ }
144569
+
144570
+ function replaceTilde (comp, options) {
144571
+ var r = options.loose ? re[TILDELOOSE] : re[TILDE]
144572
+ return comp.replace(r, function (_, M, m, p, pr) {
144573
+ debug('tilde', comp, _, M, m, p, pr)
144574
+ var ret
144575
+
144576
+ if (isX(M)) {
144577
+ ret = ''
144578
+ } else if (isX(m)) {
144579
+ ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'
144580
+ } else if (isX(p)) {
144581
+ // ~1.2 == >=1.2.0 <1.3.0
144582
+ ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'
144583
+ } else if (pr) {
144584
+ debug('replaceTilde pr', pr)
144585
+ ret = '>=' + M + '.' + m + '.' + p + '-' + pr +
144586
+ ' <' + M + '.' + (+m + 1) + '.0'
144587
+ } else {
144588
+ // ~1.2.3 == >=1.2.3 <1.3.0
144589
+ ret = '>=' + M + '.' + m + '.' + p +
144590
+ ' <' + M + '.' + (+m + 1) + '.0'
144591
+ }
144592
+
144593
+ debug('tilde return', ret)
144594
+ return ret
144595
+ })
144596
+ }
144597
+
144598
+ // ^ --> * (any, kinda silly)
144599
+ // ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0
144600
+ // ^2.0, ^2.0.x --> >=2.0.0 <3.0.0
144601
+ // ^1.2, ^1.2.x --> >=1.2.0 <2.0.0
144602
+ // ^1.2.3 --> >=1.2.3 <2.0.0
144603
+ // ^1.2.0 --> >=1.2.0 <2.0.0
144604
+ function replaceCarets (comp, options) {
144605
+ return comp.trim().split(/\s+/).map(function (comp) {
144606
+ return replaceCaret(comp, options)
144607
+ }).join(' ')
144608
+ }
144609
+
144610
+ function replaceCaret (comp, options) {
144611
+ debug('caret', comp, options)
144612
+ var r = options.loose ? re[CARETLOOSE] : re[CARET]
144613
+ return comp.replace(r, function (_, M, m, p, pr) {
144614
+ debug('caret', comp, _, M, m, p, pr)
144615
+ var ret
144616
+
144617
+ if (isX(M)) {
144618
+ ret = ''
144619
+ } else if (isX(m)) {
144620
+ ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'
144621
+ } else if (isX(p)) {
144622
+ if (M === '0') {
144623
+ ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'
144624
+ } else {
144625
+ ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'
144626
+ }
144627
+ } else if (pr) {
144628
+ debug('replaceCaret pr', pr)
144629
+ if (M === '0') {
144630
+ if (m === '0') {
144631
+ ret = '>=' + M + '.' + m + '.' + p + '-' + pr +
144632
+ ' <' + M + '.' + m + '.' + (+p + 1)
144633
+ } else {
144634
+ ret = '>=' + M + '.' + m + '.' + p + '-' + pr +
144635
+ ' <' + M + '.' + (+m + 1) + '.0'
144636
+ }
144637
+ } else {
144638
+ ret = '>=' + M + '.' + m + '.' + p + '-' + pr +
144639
+ ' <' + (+M + 1) + '.0.0'
144640
+ }
144641
+ } else {
144642
+ debug('no pr')
144643
+ if (M === '0') {
144644
+ if (m === '0') {
144645
+ ret = '>=' + M + '.' + m + '.' + p +
144646
+ ' <' + M + '.' + m + '.' + (+p + 1)
144647
+ } else {
144648
+ ret = '>=' + M + '.' + m + '.' + p +
144649
+ ' <' + M + '.' + (+m + 1) + '.0'
144650
+ }
144651
+ } else {
144652
+ ret = '>=' + M + '.' + m + '.' + p +
144653
+ ' <' + (+M + 1) + '.0.0'
144654
+ }
144655
+ }
144656
+
144657
+ debug('caret return', ret)
144658
+ return ret
144659
+ })
144660
+ }
144661
+
144662
+ function replaceXRanges (comp, options) {
144663
+ debug('replaceXRanges', comp, options)
144664
+ return comp.split(/\s+/).map(function (comp) {
144665
+ return replaceXRange(comp, options)
144666
+ }).join(' ')
144667
+ }
144668
+
144669
+ function replaceXRange (comp, options) {
144670
+ comp = comp.trim()
144671
+ var r = options.loose ? re[XRANGELOOSE] : re[XRANGE]
144672
+ return comp.replace(r, function (ret, gtlt, M, m, p, pr) {
144673
+ debug('xRange', comp, ret, gtlt, M, m, p, pr)
144674
+ var xM = isX(M)
144675
+ var xm = xM || isX(m)
144676
+ var xp = xm || isX(p)
144677
+ var anyX = xp
144678
+
144679
+ if (gtlt === '=' && anyX) {
144680
+ gtlt = ''
144681
+ }
144682
+
144683
+ if (xM) {
144684
+ if (gtlt === '>' || gtlt === '<') {
144685
+ // nothing is allowed
144686
+ ret = '<0.0.0'
144687
+ } else {
144688
+ // nothing is forbidden
144689
+ ret = '*'
144690
+ }
144691
+ } else if (gtlt && anyX) {
144692
+ // we know patch is an x, because we have any x at all.
144693
+ // replace X with 0
144694
+ if (xm) {
144695
+ m = 0
144696
+ }
144697
+ p = 0
144698
+
144699
+ if (gtlt === '>') {
144700
+ // >1 => >=2.0.0
144701
+ // >1.2 => >=1.3.0
144702
+ // >1.2.3 => >= 1.2.4
144703
+ gtlt = '>='
144704
+ if (xm) {
144705
+ M = +M + 1
144706
+ m = 0
144707
+ p = 0
144708
+ } else {
144709
+ m = +m + 1
144710
+ p = 0
144711
+ }
144712
+ } else if (gtlt === '<=') {
144713
+ // <=0.7.x is actually <0.8.0, since any 0.7.x should
144714
+ // pass. Similarly, <=7.x is actually <8.0.0, etc.
144715
+ gtlt = '<'
144716
+ if (xm) {
144717
+ M = +M + 1
144718
+ } else {
144719
+ m = +m + 1
144720
+ }
144721
+ }
144722
+
144723
+ ret = gtlt + M + '.' + m + '.' + p
144724
+ } else if (xm) {
144725
+ ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'
144726
+ } else if (xp) {
144727
+ ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'
144728
+ }
144729
+
144730
+ debug('xRange return', ret)
144731
+
144732
+ return ret
144733
+ })
144734
+ }
144735
+
144736
+ // Because * is AND-ed with everything else in the comparator,
144737
+ // and '' means "any version", just remove the *s entirely.
144738
+ function replaceStars (comp, options) {
144739
+ debug('replaceStars', comp, options)
144740
+ // Looseness is ignored here. star is always as loose as it gets!
144741
+ return comp.trim().replace(re[STAR], '')
144742
+ }
144743
+
144744
+ // This function is passed to string.replace(re[HYPHENRANGE])
144745
+ // M, m, patch, prerelease, build
144746
+ // 1.2 - 3.4.5 => >=1.2.0 <=3.4.5
144747
+ // 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do
144748
+ // 1.2 - 3.4 => >=1.2.0 <3.5.0
144749
+ function hyphenReplace ($0,
144750
+ from, fM, fm, fp, fpr, fb,
144751
+ to, tM, tm, tp, tpr, tb) {
144752
+ if (isX(fM)) {
144753
+ from = ''
144754
+ } else if (isX(fm)) {
144755
+ from = '>=' + fM + '.0.0'
144756
+ } else if (isX(fp)) {
144757
+ from = '>=' + fM + '.' + fm + '.0'
144758
+ } else {
144759
+ from = '>=' + from
144760
+ }
144761
+
144762
+ if (isX(tM)) {
144763
+ to = ''
144764
+ } else if (isX(tm)) {
144765
+ to = '<' + (+tM + 1) + '.0.0'
144766
+ } else if (isX(tp)) {
144767
+ to = '<' + tM + '.' + (+tm + 1) + '.0'
144768
+ } else if (tpr) {
144769
+ to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr
144770
+ } else {
144771
+ to = '<=' + to
144772
+ }
144773
+
144774
+ return (from + ' ' + to).trim()
144775
+ }
144776
+
144777
+ // if ANY of the sets match ALL of its comparators, then pass
144778
+ Range.prototype.test = function (version) {
144779
+ if (!version) {
144780
+ return false
144781
+ }
144782
+
144783
+ if (typeof version === 'string') {
144784
+ version = new SemVer(version, this.options)
144785
+ }
144786
+
144787
+ for (var i = 0; i < this.set.length; i++) {
144788
+ if (testSet(this.set[i], version, this.options)) {
144789
+ return true
144790
+ }
144791
+ }
144792
+ return false
144793
+ }
144794
+
144795
+ function testSet (set, version, options) {
144796
+ for (var i = 0; i < set.length; i++) {
144797
+ if (!set[i].test(version)) {
144798
+ return false
144799
+ }
144800
+ }
144801
+
144802
+ if (version.prerelease.length && !options.includePrerelease) {
144803
+ // Find the set of versions that are allowed to have prereleases
144804
+ // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0
144805
+ // That should allow `1.2.3-pr.2` to pass.
144806
+ // However, `1.2.4-alpha.notready` should NOT be allowed,
144807
+ // even though it's within the range set by the comparators.
144808
+ for (i = 0; i < set.length; i++) {
144809
+ debug(set[i].semver)
144810
+ if (set[i].semver === ANY) {
144811
+ continue
144812
+ }
144813
+
144814
+ if (set[i].semver.prerelease.length > 0) {
144815
+ var allowed = set[i].semver
144816
+ if (allowed.major === version.major &&
144817
+ allowed.minor === version.minor &&
144818
+ allowed.patch === version.patch) {
144819
+ return true
144820
+ }
144821
+ }
144822
+ }
144823
+
144824
+ // Version has a -pre, but it's not one of the ones we like.
144825
+ return false
144826
+ }
144827
+
144828
+ return true
144829
+ }
144830
+
144831
+ exports.satisfies = satisfies
144832
+ function satisfies (version, range, options) {
144833
+ try {
144834
+ range = new Range(range, options)
144835
+ } catch (er) {
144836
+ return false
144837
+ }
144838
+ return range.test(version)
144839
+ }
144840
+
144841
+ exports.maxSatisfying = maxSatisfying
144842
+ function maxSatisfying (versions, range, options) {
144843
+ var max = null
144844
+ var maxSV = null
144845
+ try {
144846
+ var rangeObj = new Range(range, options)
144847
+ } catch (er) {
144848
+ return null
144849
+ }
144850
+ versions.forEach(function (v) {
144851
+ if (rangeObj.test(v)) {
144852
+ // satisfies(v, range, options)
144853
+ if (!max || maxSV.compare(v) === -1) {
144854
+ // compare(max, v, true)
144855
+ max = v
144856
+ maxSV = new SemVer(max, options)
144857
+ }
144858
+ }
144859
+ })
144860
+ return max
144861
+ }
144862
+
144863
+ exports.minSatisfying = minSatisfying
144864
+ function minSatisfying (versions, range, options) {
144865
+ var min = null
144866
+ var minSV = null
144867
+ try {
144868
+ var rangeObj = new Range(range, options)
144869
+ } catch (er) {
144870
+ return null
144871
+ }
144872
+ versions.forEach(function (v) {
144873
+ if (rangeObj.test(v)) {
144874
+ // satisfies(v, range, options)
144875
+ if (!min || minSV.compare(v) === 1) {
144876
+ // compare(min, v, true)
144877
+ min = v
144878
+ minSV = new SemVer(min, options)
144879
+ }
144880
+ }
144881
+ })
144882
+ return min
144883
+ }
144884
+
144885
+ exports.minVersion = minVersion
144886
+ function minVersion (range, loose) {
144887
+ range = new Range(range, loose)
144888
+
144889
+ var minver = new SemVer('0.0.0')
144890
+ if (range.test(minver)) {
144891
+ return minver
144892
+ }
144893
+
144894
+ minver = new SemVer('0.0.0-0')
144895
+ if (range.test(minver)) {
144896
+ return minver
144897
+ }
144898
+
144899
+ minver = null
144900
+ for (var i = 0; i < range.set.length; ++i) {
144901
+ var comparators = range.set[i]
144902
+
144903
+ comparators.forEach(function (comparator) {
144904
+ // Clone to avoid manipulating the comparator's semver object.
144905
+ var compver = new SemVer(comparator.semver.version)
144906
+ switch (comparator.operator) {
144907
+ case '>':
144908
+ if (compver.prerelease.length === 0) {
144909
+ compver.patch++
144910
+ } else {
144911
+ compver.prerelease.push(0)
144912
+ }
144913
+ compver.raw = compver.format()
144914
+ /* fallthrough */
144915
+ case '':
144916
+ case '>=':
144917
+ if (!minver || gt(minver, compver)) {
144918
+ minver = compver
144919
+ }
144920
+ break
144921
+ case '<':
144922
+ case '<=':
144923
+ /* Ignore maximum versions */
144924
+ break
144925
+ /* istanbul ignore next */
144926
+ default:
144927
+ throw new Error('Unexpected operation: ' + comparator.operator)
144928
+ }
144929
+ })
144930
+ }
144931
+
144932
+ if (minver && range.test(minver)) {
144933
+ return minver
144934
+ }
144935
+
144936
+ return null
144937
+ }
144938
+
144939
+ exports.validRange = validRange
144940
+ function validRange (range, options) {
144941
+ try {
144942
+ // Return '*' instead of '' so that truthiness works.
144943
+ // This will throw if it's invalid anyway
144944
+ return new Range(range, options).range || '*'
144945
+ } catch (er) {
144946
+ return null
144947
+ }
144948
+ }
144949
+
144950
+ // Determine if version is less than all the versions possible in the range
144951
+ exports.ltr = ltr
144952
+ function ltr (version, range, options) {
144953
+ return outside(version, range, '<', options)
144954
+ }
144955
+
144956
+ // Determine if version is greater than all the versions possible in the range.
144957
+ exports.gtr = gtr
144958
+ function gtr (version, range, options) {
144959
+ return outside(version, range, '>', options)
144960
+ }
144961
+
144962
+ exports.outside = outside
144963
+ function outside (version, range, hilo, options) {
144964
+ version = new SemVer(version, options)
144965
+ range = new Range(range, options)
144966
+
144967
+ var gtfn, ltefn, ltfn, comp, ecomp
144968
+ switch (hilo) {
144969
+ case '>':
144970
+ gtfn = gt
144971
+ ltefn = lte
144972
+ ltfn = lt
144973
+ comp = '>'
144974
+ ecomp = '>='
144975
+ break
144976
+ case '<':
144977
+ gtfn = lt
144978
+ ltefn = gte
144979
+ ltfn = gt
144980
+ comp = '<'
144981
+ ecomp = '<='
144982
+ break
144983
+ default:
144984
+ throw new TypeError('Must provide a hilo val of "<" or ">"')
144985
+ }
144986
+
144987
+ // If it satisifes the range it is not outside
144988
+ if (satisfies(version, range, options)) {
144989
+ return false
144990
+ }
144991
+
144992
+ // From now on, variable terms are as if we're in "gtr" mode.
144993
+ // but note that everything is flipped for the "ltr" function.
144994
+
144995
+ for (var i = 0; i < range.set.length; ++i) {
144996
+ var comparators = range.set[i]
144997
+
144998
+ var high = null
144999
+ var low = null
145000
+
145001
+ comparators.forEach(function (comparator) {
145002
+ if (comparator.semver === ANY) {
145003
+ comparator = new Comparator('>=0.0.0')
145004
+ }
145005
+ high = high || comparator
145006
+ low = low || comparator
145007
+ if (gtfn(comparator.semver, high.semver, options)) {
145008
+ high = comparator
145009
+ } else if (ltfn(comparator.semver, low.semver, options)) {
145010
+ low = comparator
145011
+ }
145012
+ })
145013
+
145014
+ // If the edge version comparator has a operator then our version
145015
+ // isn't outside it
145016
+ if (high.operator === comp || high.operator === ecomp) {
145017
+ return false
145018
+ }
145019
+
145020
+ // If the lowest version comparator has an operator and our version
145021
+ // is less than it then it isn't higher than the range
145022
+ if ((!low.operator || low.operator === comp) &&
145023
+ ltefn(version, low.semver)) {
145024
+ return false
145025
+ } else if (low.operator === ecomp && ltfn(version, low.semver)) {
145026
+ return false
145027
+ }
145028
+ }
145029
+ return true
145030
+ }
145031
+
145032
+ exports.prerelease = prerelease
145033
+ function prerelease (version, options) {
145034
+ var parsed = parse(version, options)
145035
+ return (parsed && parsed.prerelease.length) ? parsed.prerelease : null
145036
+ }
145037
+
145038
+ exports.intersects = intersects
145039
+ function intersects (r1, r2, options) {
145040
+ r1 = new Range(r1, options)
145041
+ r2 = new Range(r2, options)
145042
+ return r1.intersects(r2)
145043
+ }
145044
+
145045
+ exports.coerce = coerce
145046
+ function coerce (version) {
145047
+ if (version instanceof SemVer) {
145048
+ return version
145049
+ }
145050
+
145051
+ if (typeof version !== 'string') {
145052
+ return null
145053
+ }
145054
+
145055
+ var match = version.match(re[COERCE])
145056
+
145057
+ if (match == null) {
145058
+ return null
145059
+ }
145060
+
145061
+ return parse(match[1] +
145062
+ '.' + (match[2] || '0') +
145063
+ '.' + (match[3] || '0'))
145064
+ }
145065
+
145066
+
143483
145067
  /***/ }),
143484
145068
 
143485
145069
  /***/ 41039:
@@ -196059,7 +197643,10 @@ const main = async () => {
196059
197643
  const targetPathExists = (0, fs_1.existsSync)(targetPath);
196060
197644
  const subcommandExists = GLOBAL_COMMANDS.has(targetOrSubcommand) ||
196061
197645
  commands_1.default.has(targetOrSubcommand);
196062
- if (targetPathExists && subcommandExists && !argv['--cwd']) {
197646
+ if (targetPathExists &&
197647
+ subcommandExists &&
197648
+ !argv['--cwd'] &&
197649
+ !process.env.NOW_BUILDER) {
196063
197650
  output.warn(`Did you mean to deploy the subdirectory "${targetOrSubcommand}"? ` +
196064
197651
  `Use \`vc --cwd ${targetOrSubcommand}\` instead.`);
196065
197652
  }
@@ -206432,13 +208019,14 @@ class Now extends events_1.default {
206432
208019
  });
206433
208020
  }
206434
208021
  if (error.errorCode === 'BUILD_FAILED' ||
206435
- error.errorCode === 'UNEXPECTED_ERROR') {
208022
+ error.errorCode === 'UNEXPECTED_ERROR' ||
208023
+ error.errorCode.includes('BUILD_UTILS_SPAWN_')) {
206436
208024
  return new errors_ts_1.BuildError({
206437
208025
  message: error.errorMessage,
206438
208026
  meta: {},
206439
208027
  });
206440
208028
  }
206441
- return new Error(error.message);
208029
+ return new Error(error.message || error.errorMessage);
206442
208030
  }
206443
208031
  async listSecrets(next, testWarningFlag) {
206444
208032
  const payload = await this.retry(async (bail) => {
@@ -211689,7 +213277,7 @@ module.exports = JSON.parse("[[[0,44],\"disallowed_STD3_valid\"],[[45,46],\"vali
211689
213277
  /***/ ((module) => {
211690
213278
 
211691
213279
  "use strict";
211692
- module.exports = JSON.parse("{\"name\":\"vercel\",\"version\":\"28.17.0\",\"preferGlobal\":true,\"license\":\"Apache-2.0\",\"description\":\"The command-line interface for Vercel\",\"homepage\":\"https://vercel.com\",\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/vercel/vercel.git\",\"directory\":\"packages/cli\"},\"scripts\":{\"preinstall\":\"node ./scripts/preinstall.js\",\"test\":\"jest --env node --verbose --bail\",\"test-unit\":\"pnpm test test/unit/\",\"test-cli\":\"rimraf test/fixtures/integration && pnpm test test/integration.test.ts\",\"test-dev\":\"pnpm test test/dev/\",\"coverage\":\"codecov\",\"build\":\"ts-node ./scripts/build.ts\",\"dev\":\"ts-node ./src/index.ts\"},\"bin\":{\"vc\":\"./dist/index.js\",\"vercel\":\"./dist/index.js\"},\"files\":[\"dist\",\"scripts/preinstall.js\"],\"engines\":{\"node\":\">= 14\"},\"dependencies\":{\"@vercel/build-utils\":\"6.4.0\",\"@vercel/go\":\"2.4.0\",\"@vercel/hydrogen\":\"0.0.58\",\"@vercel/next\":\"3.6.7\",\"@vercel/node\":\"2.9.13\",\"@vercel/python\":\"3.1.54\",\"@vercel/redwood\":\"1.1.10\",\"@vercel/remix-builder\":\"1.7.0\",\"@vercel/ruby\":\"1.3.71\",\"@vercel/static-build\":\"1.3.17\"},\"devDependencies\":{\"@alex_neo/jest-expect-message\":\"1.0.5\",\"@next/env\":\"11.1.2\",\"@sentry/node\":\"5.5.0\",\"@sindresorhus/slugify\":\"0.11.0\",\"@swc/core\":\"1.2.218\",\"@tootallnate/once\":\"1.1.2\",\"@types/async-retry\":\"1.2.1\",\"@types/bytes\":\"3.0.0\",\"@types/chance\":\"1.1.3\",\"@types/debug\":\"0.0.31\",\"@types/dotenv\":\"6.1.1\",\"@types/escape-html\":\"0.0.20\",\"@types/express\":\"4.17.13\",\"@types/fs-extra\":\"9.0.13\",\"@types/glob\":\"7.1.1\",\"@types/http-proxy\":\"1.16.2\",\"@types/ini\":\"1.3.31\",\"@types/inquirer\":\"7.3.1\",\"@types/jest\":\"27.4.1\",\"@types/jest-expect-message\":\"1.0.3\",\"@types/load-json-file\":\"2.0.7\",\"@types/mime-types\":\"2.1.0\",\"@types/minimatch\":\"3.0.3\",\"@types/mri\":\"1.1.0\",\"@types/ms\":\"0.7.30\",\"@types/node\":\"14.18.33\",\"@types/node-fetch\":\"2.5.10\",\"@types/npm-package-arg\":\"6.1.0\",\"@types/pluralize\":\"0.0.29\",\"@types/psl\":\"1.1.0\",\"@types/qs\":\"6.9.7\",\"@types/semver\":\"6.0.1\",\"@types/tar-fs\":\"1.16.1\",\"@types/text-table\":\"0.2.0\",\"@types/title\":\"3.4.1\",\"@types/universal-analytics\":\"0.4.2\",\"@types/update-notifier\":\"5.1.0\",\"@types/which\":\"1.3.2\",\"@types/write-json-file\":\"2.2.1\",\"@types/yauzl-promise\":\"2.1.0\",\"@vercel-internals/types\":\"*\",\"@vercel/client\":\"12.4.5\",\"@vercel/error-utils\":\"1.0.8\",\"@vercel/frameworks\":\"1.3.3\",\"@vercel/fs-detectors\":\"3.8.5\",\"@vercel/fun\":\"1.0.4\",\"@vercel/ncc\":\"0.24.0\",\"@vercel/routing-utils\":\"2.1.11\",\"@zeit/source-map-support\":\"0.6.2\",\"ajv\":\"6.12.2\",\"alpha-sort\":\"2.0.1\",\"ansi-escapes\":\"4.3.2\",\"ansi-regex\":\"5.0.1\",\"arg\":\"5.0.0\",\"async-listen\":\"1.2.0\",\"async-retry\":\"1.1.3\",\"async-sema\":\"2.1.4\",\"bytes\":\"3.0.0\",\"chalk\":\"4.1.0\",\"chance\":\"1.1.7\",\"chokidar\":\"3.3.1\",\"codecov\":\"3.8.2\",\"cpy\":\"7.2.0\",\"date-fns\":\"1.29.0\",\"debug\":\"3.1.0\",\"dot\":\"1.1.3\",\"dotenv\":\"4.0.0\",\"email-validator\":\"1.1.1\",\"epipebomb\":\"1.0.0\",\"escape-html\":\"1.0.3\",\"esm\":\"3.1.4\",\"execa\":\"3.2.0\",\"express\":\"4.17.1\",\"fast-deep-equal\":\"3.1.3\",\"find-up\":\"4.1.0\",\"fs-extra\":\"10.0.0\",\"get-port\":\"5.1.1\",\"git-last-commit\":\"1.0.1\",\"glob\":\"7.1.2\",\"http-proxy\":\"1.18.1\",\"ini\":\"3.0.0\",\"inquirer\":\"7.0.4\",\"is-docker\":\"2.2.1\",\"is-port-reachable\":\"3.1.0\",\"is-url\":\"1.2.2\",\"jaro-winkler\":\"0.2.8\",\"jest-matcher-utils\":\"29.3.1\",\"jsonlines\":\"0.1.1\",\"line-async-iterator\":\"3.0.0\",\"load-json-file\":\"3.0.0\",\"mime-types\":\"2.1.24\",\"minimatch\":\"3.0.4\",\"mri\":\"1.1.5\",\"ms\":\"2.1.2\",\"node-fetch\":\"2.6.7\",\"npm-package-arg\":\"6.1.0\",\"open\":\"8.4.0\",\"ora\":\"3.4.0\",\"pcre-to-regexp\":\"1.0.0\",\"pluralize\":\"7.0.0\",\"promisepipe\":\"3.0.0\",\"psl\":\"1.1.31\",\"qr-image\":\"3.2.0\",\"raw-body\":\"2.4.1\",\"rimraf\":\"3.0.2\",\"semver\":\"5.5.0\",\"serve-handler\":\"6.1.1\",\"strip-ansi\":\"6.0.1\",\"stripe\":\"5.1.0\",\"supports-hyperlinks\":\"2.2.0\",\"tar-fs\":\"1.16.3\",\"test-listen\":\"1.1.0\",\"text-table\":\"0.2.0\",\"title\":\"3.4.1\",\"tmp-promise\":\"1.0.3\",\"tree-kill\":\"1.2.2\",\"ts-node\":\"10.9.1\",\"typescript\":\"4.9.4\",\"universal-analytics\":\"0.4.20\",\"utility-types\":\"2.1.0\",\"write-json-file\":\"2.2.0\",\"xdg-app-paths\":\"5.1.0\",\"yauzl-promise\":\"2.1.3\"},\"jest\":{\"preset\":\"ts-jest\",\"globals\":{\"ts-jest\":{\"diagnostics\":false,\"isolatedModules\":true}},\"setupFilesAfterEnv\":[\"@alex_neo/jest-expect-message\"],\"verbose\":false,\"testEnvironment\":\"node\",\"testMatch\":[\"<rootDir>/test/**/*.test.ts\"]}}");
213280
+ module.exports = JSON.parse("{\"name\":\"vercel\",\"version\":\"28.18.1\",\"preferGlobal\":true,\"license\":\"Apache-2.0\",\"description\":\"The command-line interface for Vercel\",\"homepage\":\"https://vercel.com\",\"repository\":{\"type\":\"git\",\"url\":\"https://github.com/vercel/vercel.git\",\"directory\":\"packages/cli\"},\"scripts\":{\"preinstall\":\"node ./scripts/preinstall.js\",\"test\":\"jest --env node --verbose --bail\",\"test-unit\":\"pnpm test test/unit/\",\"test-cli\":\"rimraf test/fixtures/integration && pnpm test test/integration.test.ts\",\"test-dev\":\"pnpm test test/dev/\",\"coverage\":\"codecov\",\"build\":\"ts-node ./scripts/build.ts\",\"dev\":\"ts-node ./src/index.ts\"},\"bin\":{\"vc\":\"./dist/index.js\",\"vercel\":\"./dist/index.js\"},\"files\":[\"dist\",\"scripts/preinstall.js\"],\"engines\":{\"node\":\">= 14\"},\"dependencies\":{\"@vercel/build-utils\":\"6.5.0\",\"@vercel/go\":\"2.4.1\",\"@vercel/hydrogen\":\"0.0.59\",\"@vercel/next\":\"3.7.1\",\"@vercel/node\":\"2.10.0\",\"@vercel/python\":\"3.1.55\",\"@vercel/redwood\":\"1.1.11\",\"@vercel/remix-builder\":\"1.8.1\",\"@vercel/ruby\":\"1.3.72\",\"@vercel/static-build\":\"1.3.19\"},\"devDependencies\":{\"@alex_neo/jest-expect-message\":\"1.0.5\",\"@next/env\":\"11.1.2\",\"@sentry/node\":\"5.5.0\",\"@sindresorhus/slugify\":\"0.11.0\",\"@swc/core\":\"1.2.218\",\"@tootallnate/once\":\"1.1.2\",\"@types/async-retry\":\"1.2.1\",\"@types/bytes\":\"3.0.0\",\"@types/chance\":\"1.1.3\",\"@types/debug\":\"0.0.31\",\"@types/dotenv\":\"6.1.1\",\"@types/escape-html\":\"0.0.20\",\"@types/express\":\"4.17.13\",\"@types/fs-extra\":\"9.0.13\",\"@types/glob\":\"7.1.1\",\"@types/http-proxy\":\"1.16.2\",\"@types/ini\":\"1.3.31\",\"@types/inquirer\":\"7.3.1\",\"@types/jest\":\"27.4.1\",\"@types/jest-expect-message\":\"1.0.3\",\"@types/load-json-file\":\"2.0.7\",\"@types/mime-types\":\"2.1.0\",\"@types/minimatch\":\"3.0.3\",\"@types/mri\":\"1.1.0\",\"@types/ms\":\"0.7.30\",\"@types/node\":\"14.18.33\",\"@types/node-fetch\":\"2.5.10\",\"@types/npm-package-arg\":\"6.1.0\",\"@types/pluralize\":\"0.0.29\",\"@types/psl\":\"1.1.0\",\"@types/qs\":\"6.9.7\",\"@types/semver\":\"6.0.1\",\"@types/tar-fs\":\"1.16.1\",\"@types/text-table\":\"0.2.0\",\"@types/title\":\"3.4.1\",\"@types/universal-analytics\":\"0.4.2\",\"@types/update-notifier\":\"5.1.0\",\"@types/which\":\"1.3.2\",\"@types/write-json-file\":\"2.2.1\",\"@types/yauzl-promise\":\"2.1.0\",\"@vercel-internals/types\":\"*\",\"@vercel/client\":\"12.4.6\",\"@vercel/error-utils\":\"1.0.8\",\"@vercel/frameworks\":\"1.3.3\",\"@vercel/fs-detectors\":\"3.8.6\",\"@vercel/fun\":\"1.0.4\",\"@vercel/ncc\":\"0.24.0\",\"@vercel/routing-utils\":\"2.1.11\",\"@zeit/source-map-support\":\"0.6.2\",\"ajv\":\"6.12.2\",\"alpha-sort\":\"2.0.1\",\"ansi-escapes\":\"4.3.2\",\"ansi-regex\":\"5.0.1\",\"arg\":\"5.0.0\",\"async-listen\":\"1.2.0\",\"async-retry\":\"1.1.3\",\"async-sema\":\"2.1.4\",\"bytes\":\"3.0.0\",\"chalk\":\"4.1.0\",\"chance\":\"1.1.7\",\"chokidar\":\"3.3.1\",\"codecov\":\"3.8.2\",\"cpy\":\"7.2.0\",\"date-fns\":\"1.29.0\",\"debug\":\"3.1.0\",\"dot\":\"1.1.3\",\"dotenv\":\"4.0.0\",\"email-validator\":\"1.1.1\",\"epipebomb\":\"1.0.0\",\"escape-html\":\"1.0.3\",\"esm\":\"3.1.4\",\"execa\":\"3.2.0\",\"express\":\"4.17.1\",\"fast-deep-equal\":\"3.1.3\",\"find-up\":\"4.1.0\",\"fs-extra\":\"10.0.0\",\"get-port\":\"5.1.1\",\"git-last-commit\":\"1.0.1\",\"glob\":\"7.1.2\",\"http-proxy\":\"1.18.1\",\"ini\":\"3.0.0\",\"inquirer\":\"7.0.4\",\"is-docker\":\"2.2.1\",\"is-port-reachable\":\"3.1.0\",\"is-url\":\"1.2.2\",\"jaro-winkler\":\"0.2.8\",\"jest-matcher-utils\":\"29.3.1\",\"jsonlines\":\"0.1.1\",\"line-async-iterator\":\"3.0.0\",\"load-json-file\":\"3.0.0\",\"mime-types\":\"2.1.24\",\"minimatch\":\"3.0.4\",\"mri\":\"1.1.5\",\"ms\":\"2.1.2\",\"node-fetch\":\"2.6.7\",\"npm-package-arg\":\"6.1.0\",\"open\":\"8.4.0\",\"ora\":\"3.4.0\",\"pcre-to-regexp\":\"1.0.0\",\"pluralize\":\"7.0.0\",\"promisepipe\":\"3.0.0\",\"psl\":\"1.1.31\",\"qr-image\":\"3.2.0\",\"raw-body\":\"2.4.1\",\"rimraf\":\"3.0.2\",\"semver\":\"5.5.0\",\"serve-handler\":\"6.1.1\",\"strip-ansi\":\"6.0.1\",\"stripe\":\"5.1.0\",\"supports-hyperlinks\":\"2.2.0\",\"tar-fs\":\"1.16.3\",\"test-listen\":\"1.1.0\",\"text-table\":\"0.2.0\",\"title\":\"3.4.1\",\"tmp-promise\":\"1.0.3\",\"tree-kill\":\"1.2.2\",\"ts-node\":\"10.9.1\",\"typescript\":\"4.9.4\",\"universal-analytics\":\"0.4.20\",\"utility-types\":\"2.1.0\",\"write-json-file\":\"2.2.0\",\"xdg-app-paths\":\"5.1.0\",\"yauzl-promise\":\"2.1.3\"},\"jest\":{\"preset\":\"ts-jest\",\"globals\":{\"ts-jest\":{\"diagnostics\":false,\"isolatedModules\":true}},\"setupFilesAfterEnv\":[\"@alex_neo/jest-expect-message\"],\"verbose\":false,\"testEnvironment\":\"node\",\"testMatch\":[\"<rootDir>/test/**/*.test.ts\"]}}");
211693
213281
 
211694
213282
  /***/ }),
211695
213283
 
@@ -211697,7 +213285,7 @@ module.exports = JSON.parse("{\"name\":\"vercel\",\"version\":\"28.17.0\",\"pref
211697
213285
  /***/ ((module) => {
211698
213286
 
211699
213287
  "use strict";
211700
- module.exports = JSON.parse("{\"name\":\"@vercel/client\",\"version\":\"12.4.5\",\"main\":\"dist/index.js\",\"typings\":\"dist/index.d.ts\",\"homepage\":\"https://vercel.com\",\"license\":\"MIT\",\"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.3.4\"},\"jest\":{\"preset\":\"ts-jest\",\"testEnvironment\":\"node\",\"verbose\":false,\"setupFilesAfterEnv\":[\"<rootDir>/tests/setup/index.ts\"]},\"dependencies\":{\"@vercel/build-utils\":\"6.4.0\",\"@vercel/routing-utils\":\"2.1.11\",\"@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\"}}");
213288
+ module.exports = JSON.parse("{\"name\":\"@vercel/client\",\"version\":\"12.4.6\",\"main\":\"dist/index.js\",\"typings\":\"dist/index.d.ts\",\"homepage\":\"https://vercel.com\",\"license\":\"MIT\",\"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.3.4\"},\"jest\":{\"preset\":\"ts-jest\",\"testEnvironment\":\"node\",\"verbose\":false,\"setupFilesAfterEnv\":[\"<rootDir>/tests/setup/index.ts\"]},\"dependencies\":{\"@vercel/build-utils\":\"6.5.0\",\"@vercel/routing-utils\":\"2.1.11\",\"@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\"}}");
211701
213289
 
211702
213290
  /***/ }),
211703
213291