vercel 28.17.0 → 28.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +1501 -7
  2. package/package.json +14 -14
package/dist/index.js CHANGED
@@ -66518,7 +66518,7 @@ return{name,number,description,supported,action,forced,standard};
66518
66518
  */
66519
66519
 
66520
66520
  var util = __webpack_require__(31669);
66521
- var ms = __webpack_require__(21378);
66521
+ var ms = __webpack_require__(82801);
66522
66522
 
66523
66523
  module.exports = function (t) {
66524
66524
  if (typeof t === 'number') return t;
@@ -115406,7 +115406,7 @@ function fromRegistry (res) {
115406
115406
  // version, not on the argument so this can't compute that.
115407
115407
  res.saveSpec = null
115408
115408
  res.fetchSpec = spec
115409
- if (!semver) semver = __webpack_require__(54373)
115409
+ if (!semver) semver = __webpack_require__(58223)
115410
115410
  const version = semver.valid(spec, true)
115411
115411
  const range = semver.validRange(spec, true)
115412
115412
  if (version) {
@@ -143480,6 +143480,1496 @@ function coerce(version) {
143480
143480
  }
143481
143481
 
143482
143482
 
143483
+ /***/ }),
143484
+
143485
+ /***/ 58223:
143486
+ /***/ ((module, exports) => {
143487
+
143488
+ exports = module.exports = SemVer
143489
+
143490
+ var debug
143491
+ /* istanbul ignore next */
143492
+ if (typeof process === 'object' &&
143493
+ process.env &&
143494
+ process.env.NODE_DEBUG &&
143495
+ /\bsemver\b/i.test(process.env.NODE_DEBUG)) {
143496
+ debug = function () {
143497
+ var args = Array.prototype.slice.call(arguments, 0)
143498
+ args.unshift('SEMVER')
143499
+ console.log.apply(console, args)
143500
+ }
143501
+ } else {
143502
+ debug = function () {}
143503
+ }
143504
+
143505
+ // Note: this is the semver.org version of the spec that it implements
143506
+ // Not necessarily the package version of this code.
143507
+ exports.SEMVER_SPEC_VERSION = '2.0.0'
143508
+
143509
+ var MAX_LENGTH = 256
143510
+ var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||
143511
+ /* istanbul ignore next */ 9007199254740991
143512
+
143513
+ // Max safe segment length for coercion.
143514
+ var MAX_SAFE_COMPONENT_LENGTH = 16
143515
+
143516
+ // The actual regexps go on exports.re
143517
+ var re = exports.re = []
143518
+ var src = exports.src = []
143519
+ var R = 0
143520
+
143521
+ // The following Regular Expressions can be used for tokenizing,
143522
+ // validating, and parsing SemVer version strings.
143523
+
143524
+ // ## Numeric Identifier
143525
+ // A single `0`, or a non-zero digit followed by zero or more digits.
143526
+
143527
+ var NUMERICIDENTIFIER = R++
143528
+ src[NUMERICIDENTIFIER] = '0|[1-9]\\d*'
143529
+ var NUMERICIDENTIFIERLOOSE = R++
143530
+ src[NUMERICIDENTIFIERLOOSE] = '[0-9]+'
143531
+
143532
+ // ## Non-numeric Identifier
143533
+ // Zero or more digits, followed by a letter or hyphen, and then zero or
143534
+ // more letters, digits, or hyphens.
143535
+
143536
+ var NONNUMERICIDENTIFIER = R++
143537
+ src[NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*'
143538
+
143539
+ // ## Main Version
143540
+ // Three dot-separated numeric identifiers.
143541
+
143542
+ var MAINVERSION = R++
143543
+ src[MAINVERSION] = '(' + src[NUMERICIDENTIFIER] + ')\\.' +
143544
+ '(' + src[NUMERICIDENTIFIER] + ')\\.' +
143545
+ '(' + src[NUMERICIDENTIFIER] + ')'
143546
+
143547
+ var MAINVERSIONLOOSE = R++
143548
+ src[MAINVERSIONLOOSE] = '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' +
143549
+ '(' + src[NUMERICIDENTIFIERLOOSE] + ')\\.' +
143550
+ '(' + src[NUMERICIDENTIFIERLOOSE] + ')'
143551
+
143552
+ // ## Pre-release Version Identifier
143553
+ // A numeric identifier, or a non-numeric identifier.
143554
+
143555
+ var PRERELEASEIDENTIFIER = R++
143556
+ src[PRERELEASEIDENTIFIER] = '(?:' + src[NUMERICIDENTIFIER] +
143557
+ '|' + src[NONNUMERICIDENTIFIER] + ')'
143558
+
143559
+ var PRERELEASEIDENTIFIERLOOSE = R++
143560
+ src[PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[NUMERICIDENTIFIERLOOSE] +
143561
+ '|' + src[NONNUMERICIDENTIFIER] + ')'
143562
+
143563
+ // ## Pre-release Version
143564
+ // Hyphen, followed by one or more dot-separated pre-release version
143565
+ // identifiers.
143566
+
143567
+ var PRERELEASE = R++
143568
+ src[PRERELEASE] = '(?:-(' + src[PRERELEASEIDENTIFIER] +
143569
+ '(?:\\.' + src[PRERELEASEIDENTIFIER] + ')*))'
143570
+
143571
+ var PRERELEASELOOSE = R++
143572
+ src[PRERELEASELOOSE] = '(?:-?(' + src[PRERELEASEIDENTIFIERLOOSE] +
143573
+ '(?:\\.' + src[PRERELEASEIDENTIFIERLOOSE] + ')*))'
143574
+
143575
+ // ## Build Metadata Identifier
143576
+ // Any combination of digits, letters, or hyphens.
143577
+
143578
+ var BUILDIDENTIFIER = R++
143579
+ src[BUILDIDENTIFIER] = '[0-9A-Za-z-]+'
143580
+
143581
+ // ## Build Metadata
143582
+ // Plus sign, followed by one or more period-separated build metadata
143583
+ // identifiers.
143584
+
143585
+ var BUILD = R++
143586
+ src[BUILD] = '(?:\\+(' + src[BUILDIDENTIFIER] +
143587
+ '(?:\\.' + src[BUILDIDENTIFIER] + ')*))'
143588
+
143589
+ // ## Full Version String
143590
+ // A main version, followed optionally by a pre-release version and
143591
+ // build metadata.
143592
+
143593
+ // Note that the only major, minor, patch, and pre-release sections of
143594
+ // the version string are capturing groups. The build metadata is not a
143595
+ // capturing group, because it should not ever be used in version
143596
+ // comparison.
143597
+
143598
+ var FULL = R++
143599
+ var FULLPLAIN = 'v?' + src[MAINVERSION] +
143600
+ src[PRERELEASE] + '?' +
143601
+ src[BUILD] + '?'
143602
+
143603
+ src[FULL] = '^' + FULLPLAIN + '$'
143604
+
143605
+ // like full, but allows v1.2.3 and =1.2.3, which people do sometimes.
143606
+ // also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty
143607
+ // common in the npm registry.
143608
+ var LOOSEPLAIN = '[v=\\s]*' + src[MAINVERSIONLOOSE] +
143609
+ src[PRERELEASELOOSE] + '?' +
143610
+ src[BUILD] + '?'
143611
+
143612
+ var LOOSE = R++
143613
+ src[LOOSE] = '^' + LOOSEPLAIN + '$'
143614
+
143615
+ var GTLT = R++
143616
+ src[GTLT] = '((?:<|>)?=?)'
143617
+
143618
+ // Something like "2.*" or "1.2.x".
143619
+ // Note that "x.x" is a valid xRange identifer, meaning "any version"
143620
+ // Only the first item is strictly required.
143621
+ var XRANGEIDENTIFIERLOOSE = R++
143622
+ src[XRANGEIDENTIFIERLOOSE] = src[NUMERICIDENTIFIERLOOSE] + '|x|X|\\*'
143623
+ var XRANGEIDENTIFIER = R++
143624
+ src[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + '|x|X|\\*'
143625
+
143626
+ var XRANGEPLAIN = R++
143627
+ src[XRANGEPLAIN] = '[v=\\s]*(' + src[XRANGEIDENTIFIER] + ')' +
143628
+ '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' +
143629
+ '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' +
143630
+ '(?:' + src[PRERELEASE] + ')?' +
143631
+ src[BUILD] + '?' +
143632
+ ')?)?'
143633
+
143634
+ var XRANGEPLAINLOOSE = R++
143635
+ src[XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
143636
+ '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
143637
+ '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
143638
+ '(?:' + src[PRERELEASELOOSE] + ')?' +
143639
+ src[BUILD] + '?' +
143640
+ ')?)?'
143641
+
143642
+ var XRANGE = R++
143643
+ src[XRANGE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAIN] + '$'
143644
+ var XRANGELOOSE = R++
143645
+ src[XRANGELOOSE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAINLOOSE] + '$'
143646
+
143647
+ // Coercion.
143648
+ // Extract anything that could conceivably be a part of a valid semver
143649
+ var COERCE = R++
143650
+ src[COERCE] = '(?:^|[^\\d])' +
143651
+ '(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +
143652
+ '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +
143653
+ '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +
143654
+ '(?:$|[^\\d])'
143655
+
143656
+ // Tilde ranges.
143657
+ // Meaning is "reasonably at or greater than"
143658
+ var LONETILDE = R++
143659
+ src[LONETILDE] = '(?:~>?)'
143660
+
143661
+ var TILDETRIM = R++
143662
+ src[TILDETRIM] = '(\\s*)' + src[LONETILDE] + '\\s+'
143663
+ re[TILDETRIM] = new RegExp(src[TILDETRIM], 'g')
143664
+ var tildeTrimReplace = '$1~'
143665
+
143666
+ var TILDE = R++
143667
+ src[TILDE] = '^' + src[LONETILDE] + src[XRANGEPLAIN] + '$'
143668
+ var TILDELOOSE = R++
143669
+ src[TILDELOOSE] = '^' + src[LONETILDE] + src[XRANGEPLAINLOOSE] + '$'
143670
+
143671
+ // Caret ranges.
143672
+ // Meaning is "at least and backwards compatible with"
143673
+ var LONECARET = R++
143674
+ src[LONECARET] = '(?:\\^)'
143675
+
143676
+ var CARETTRIM = R++
143677
+ src[CARETTRIM] = '(\\s*)' + src[LONECARET] + '\\s+'
143678
+ re[CARETTRIM] = new RegExp(src[CARETTRIM], 'g')
143679
+ var caretTrimReplace = '$1^'
143680
+
143681
+ var CARET = R++
143682
+ src[CARET] = '^' + src[LONECARET] + src[XRANGEPLAIN] + '$'
143683
+ var CARETLOOSE = R++
143684
+ src[CARETLOOSE] = '^' + src[LONECARET] + src[XRANGEPLAINLOOSE] + '$'
143685
+
143686
+ // A simple gt/lt/eq thing, or just "" to indicate "any version"
143687
+ var COMPARATORLOOSE = R++
143688
+ src[COMPARATORLOOSE] = '^' + src[GTLT] + '\\s*(' + LOOSEPLAIN + ')$|^$'
143689
+ var COMPARATOR = R++
143690
+ src[COMPARATOR] = '^' + src[GTLT] + '\\s*(' + FULLPLAIN + ')$|^$'
143691
+
143692
+ // An expression to strip any whitespace between the gtlt and the thing
143693
+ // it modifies, so that `> 1.2.3` ==> `>1.2.3`
143694
+ var COMPARATORTRIM = R++
143695
+ src[COMPARATORTRIM] = '(\\s*)' + src[GTLT] +
143696
+ '\\s*(' + LOOSEPLAIN + '|' + src[XRANGEPLAIN] + ')'
143697
+
143698
+ // this one has to use the /g flag
143699
+ re[COMPARATORTRIM] = new RegExp(src[COMPARATORTRIM], 'g')
143700
+ var comparatorTrimReplace = '$1$2$3'
143701
+
143702
+ // Something like `1.2.3 - 1.2.4`
143703
+ // Note that these all use the loose form, because they'll be
143704
+ // checked against either the strict or loose comparator form
143705
+ // later.
143706
+ var HYPHENRANGE = R++
143707
+ src[HYPHENRANGE] = '^\\s*(' + src[XRANGEPLAIN] + ')' +
143708
+ '\\s+-\\s+' +
143709
+ '(' + src[XRANGEPLAIN] + ')' +
143710
+ '\\s*$'
143711
+
143712
+ var HYPHENRANGELOOSE = R++
143713
+ src[HYPHENRANGELOOSE] = '^\\s*(' + src[XRANGEPLAINLOOSE] + ')' +
143714
+ '\\s+-\\s+' +
143715
+ '(' + src[XRANGEPLAINLOOSE] + ')' +
143716
+ '\\s*$'
143717
+
143718
+ // Star ranges basically just allow anything at all.
143719
+ var STAR = R++
143720
+ src[STAR] = '(<|>)?=?\\s*\\*'
143721
+
143722
+ // Compile to actual regexp objects.
143723
+ // All are flag-free, unless they were created above with a flag.
143724
+ for (var i = 0; i < R; i++) {
143725
+ debug(i, src[i])
143726
+ if (!re[i]) {
143727
+ re[i] = new RegExp(src[i])
143728
+ }
143729
+ }
143730
+
143731
+ exports.parse = parse
143732
+ function parse (version, options) {
143733
+ if (!options || typeof options !== 'object') {
143734
+ options = {
143735
+ loose: !!options,
143736
+ includePrerelease: false
143737
+ }
143738
+ }
143739
+
143740
+ if (version instanceof SemVer) {
143741
+ return version
143742
+ }
143743
+
143744
+ if (typeof version !== 'string') {
143745
+ return null
143746
+ }
143747
+
143748
+ if (version.length > MAX_LENGTH) {
143749
+ return null
143750
+ }
143751
+
143752
+ var r = options.loose ? re[LOOSE] : re[FULL]
143753
+ if (!r.test(version)) {
143754
+ return null
143755
+ }
143756
+
143757
+ try {
143758
+ return new SemVer(version, options)
143759
+ } catch (er) {
143760
+ return null
143761
+ }
143762
+ }
143763
+
143764
+ exports.valid = valid
143765
+ function valid (version, options) {
143766
+ var v = parse(version, options)
143767
+ return v ? v.version : null
143768
+ }
143769
+
143770
+ exports.clean = clean
143771
+ function clean (version, options) {
143772
+ var s = parse(version.trim().replace(/^[=v]+/, ''), options)
143773
+ return s ? s.version : null
143774
+ }
143775
+
143776
+ exports.SemVer = SemVer
143777
+
143778
+ function SemVer (version, options) {
143779
+ if (!options || typeof options !== 'object') {
143780
+ options = {
143781
+ loose: !!options,
143782
+ includePrerelease: false
143783
+ }
143784
+ }
143785
+ if (version instanceof SemVer) {
143786
+ if (version.loose === options.loose) {
143787
+ return version
143788
+ } else {
143789
+ version = version.version
143790
+ }
143791
+ } else if (typeof version !== 'string') {
143792
+ throw new TypeError('Invalid Version: ' + version)
143793
+ }
143794
+
143795
+ if (version.length > MAX_LENGTH) {
143796
+ throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')
143797
+ }
143798
+
143799
+ if (!(this instanceof SemVer)) {
143800
+ return new SemVer(version, options)
143801
+ }
143802
+
143803
+ debug('SemVer', version, options)
143804
+ this.options = options
143805
+ this.loose = !!options.loose
143806
+
143807
+ var m = version.trim().match(options.loose ? re[LOOSE] : re[FULL])
143808
+
143809
+ if (!m) {
143810
+ throw new TypeError('Invalid Version: ' + version)
143811
+ }
143812
+
143813
+ this.raw = version
143814
+
143815
+ // these are actually numbers
143816
+ this.major = +m[1]
143817
+ this.minor = +m[2]
143818
+ this.patch = +m[3]
143819
+
143820
+ if (this.major > MAX_SAFE_INTEGER || this.major < 0) {
143821
+ throw new TypeError('Invalid major version')
143822
+ }
143823
+
143824
+ if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {
143825
+ throw new TypeError('Invalid minor version')
143826
+ }
143827
+
143828
+ if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {
143829
+ throw new TypeError('Invalid patch version')
143830
+ }
143831
+
143832
+ // numberify any prerelease numeric ids
143833
+ if (!m[4]) {
143834
+ this.prerelease = []
143835
+ } else {
143836
+ this.prerelease = m[4].split('.').map(function (id) {
143837
+ if (/^[0-9]+$/.test(id)) {
143838
+ var num = +id
143839
+ if (num >= 0 && num < MAX_SAFE_INTEGER) {
143840
+ return num
143841
+ }
143842
+ }
143843
+ return id
143844
+ })
143845
+ }
143846
+
143847
+ this.build = m[5] ? m[5].split('.') : []
143848
+ this.format()
143849
+ }
143850
+
143851
+ SemVer.prototype.format = function () {
143852
+ this.version = this.major + '.' + this.minor + '.' + this.patch
143853
+ if (this.prerelease.length) {
143854
+ this.version += '-' + this.prerelease.join('.')
143855
+ }
143856
+ return this.version
143857
+ }
143858
+
143859
+ SemVer.prototype.toString = function () {
143860
+ return this.version
143861
+ }
143862
+
143863
+ SemVer.prototype.compare = function (other) {
143864
+ debug('SemVer.compare', this.version, this.options, other)
143865
+ if (!(other instanceof SemVer)) {
143866
+ other = new SemVer(other, this.options)
143867
+ }
143868
+
143869
+ return this.compareMain(other) || this.comparePre(other)
143870
+ }
143871
+
143872
+ SemVer.prototype.compareMain = function (other) {
143873
+ if (!(other instanceof SemVer)) {
143874
+ other = new SemVer(other, this.options)
143875
+ }
143876
+
143877
+ return compareIdentifiers(this.major, other.major) ||
143878
+ compareIdentifiers(this.minor, other.minor) ||
143879
+ compareIdentifiers(this.patch, other.patch)
143880
+ }
143881
+
143882
+ SemVer.prototype.comparePre = function (other) {
143883
+ if (!(other instanceof SemVer)) {
143884
+ other = new SemVer(other, this.options)
143885
+ }
143886
+
143887
+ // NOT having a prerelease is > having one
143888
+ if (this.prerelease.length && !other.prerelease.length) {
143889
+ return -1
143890
+ } else if (!this.prerelease.length && other.prerelease.length) {
143891
+ return 1
143892
+ } else if (!this.prerelease.length && !other.prerelease.length) {
143893
+ return 0
143894
+ }
143895
+
143896
+ var i = 0
143897
+ do {
143898
+ var a = this.prerelease[i]
143899
+ var b = other.prerelease[i]
143900
+ debug('prerelease compare', i, a, b)
143901
+ if (a === undefined && b === undefined) {
143902
+ return 0
143903
+ } else if (b === undefined) {
143904
+ return 1
143905
+ } else if (a === undefined) {
143906
+ return -1
143907
+ } else if (a === b) {
143908
+ continue
143909
+ } else {
143910
+ return compareIdentifiers(a, b)
143911
+ }
143912
+ } while (++i)
143913
+ }
143914
+
143915
+ // preminor will bump the version up to the next minor release, and immediately
143916
+ // down to pre-release. premajor and prepatch work the same way.
143917
+ SemVer.prototype.inc = function (release, identifier) {
143918
+ switch (release) {
143919
+ case 'premajor':
143920
+ this.prerelease.length = 0
143921
+ this.patch = 0
143922
+ this.minor = 0
143923
+ this.major++
143924
+ this.inc('pre', identifier)
143925
+ break
143926
+ case 'preminor':
143927
+ this.prerelease.length = 0
143928
+ this.patch = 0
143929
+ this.minor++
143930
+ this.inc('pre', identifier)
143931
+ break
143932
+ case 'prepatch':
143933
+ // If this is already a prerelease, it will bump to the next version
143934
+ // drop any prereleases that might already exist, since they are not
143935
+ // relevant at this point.
143936
+ this.prerelease.length = 0
143937
+ this.inc('patch', identifier)
143938
+ this.inc('pre', identifier)
143939
+ break
143940
+ // If the input is a non-prerelease version, this acts the same as
143941
+ // prepatch.
143942
+ case 'prerelease':
143943
+ if (this.prerelease.length === 0) {
143944
+ this.inc('patch', identifier)
143945
+ }
143946
+ this.inc('pre', identifier)
143947
+ break
143948
+
143949
+ case 'major':
143950
+ // If this is a pre-major version, bump up to the same major version.
143951
+ // Otherwise increment major.
143952
+ // 1.0.0-5 bumps to 1.0.0
143953
+ // 1.1.0 bumps to 2.0.0
143954
+ if (this.minor !== 0 ||
143955
+ this.patch !== 0 ||
143956
+ this.prerelease.length === 0) {
143957
+ this.major++
143958
+ }
143959
+ this.minor = 0
143960
+ this.patch = 0
143961
+ this.prerelease = []
143962
+ break
143963
+ case 'minor':
143964
+ // If this is a pre-minor version, bump up to the same minor version.
143965
+ // Otherwise increment minor.
143966
+ // 1.2.0-5 bumps to 1.2.0
143967
+ // 1.2.1 bumps to 1.3.0
143968
+ if (this.patch !== 0 || this.prerelease.length === 0) {
143969
+ this.minor++
143970
+ }
143971
+ this.patch = 0
143972
+ this.prerelease = []
143973
+ break
143974
+ case 'patch':
143975
+ // If this is not a pre-release version, it will increment the patch.
143976
+ // If it is a pre-release it will bump up to the same patch version.
143977
+ // 1.2.0-5 patches to 1.2.0
143978
+ // 1.2.0 patches to 1.2.1
143979
+ if (this.prerelease.length === 0) {
143980
+ this.patch++
143981
+ }
143982
+ this.prerelease = []
143983
+ break
143984
+ // This probably shouldn't be used publicly.
143985
+ // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction.
143986
+ case 'pre':
143987
+ if (this.prerelease.length === 0) {
143988
+ this.prerelease = [0]
143989
+ } else {
143990
+ var i = this.prerelease.length
143991
+ while (--i >= 0) {
143992
+ if (typeof this.prerelease[i] === 'number') {
143993
+ this.prerelease[i]++
143994
+ i = -2
143995
+ }
143996
+ }
143997
+ if (i === -1) {
143998
+ // didn't increment anything
143999
+ this.prerelease.push(0)
144000
+ }
144001
+ }
144002
+ if (identifier) {
144003
+ // 1.2.0-beta.1 bumps to 1.2.0-beta.2,
144004
+ // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0
144005
+ if (this.prerelease[0] === identifier) {
144006
+ if (isNaN(this.prerelease[1])) {
144007
+ this.prerelease = [identifier, 0]
144008
+ }
144009
+ } else {
144010
+ this.prerelease = [identifier, 0]
144011
+ }
144012
+ }
144013
+ break
144014
+
144015
+ default:
144016
+ throw new Error('invalid increment argument: ' + release)
144017
+ }
144018
+ this.format()
144019
+ this.raw = this.version
144020
+ return this
144021
+ }
144022
+
144023
+ exports.inc = inc
144024
+ function inc (version, release, loose, identifier) {
144025
+ if (typeof (loose) === 'string') {
144026
+ identifier = loose
144027
+ loose = undefined
144028
+ }
144029
+
144030
+ try {
144031
+ return new SemVer(version, loose).inc(release, identifier).version
144032
+ } catch (er) {
144033
+ return null
144034
+ }
144035
+ }
144036
+
144037
+ exports.diff = diff
144038
+ function diff (version1, version2) {
144039
+ if (eq(version1, version2)) {
144040
+ return null
144041
+ } else {
144042
+ var v1 = parse(version1)
144043
+ var v2 = parse(version2)
144044
+ var prefix = ''
144045
+ if (v1.prerelease.length || v2.prerelease.length) {
144046
+ prefix = 'pre'
144047
+ var defaultResult = 'prerelease'
144048
+ }
144049
+ for (var key in v1) {
144050
+ if (key === 'major' || key === 'minor' || key === 'patch') {
144051
+ if (v1[key] !== v2[key]) {
144052
+ return prefix + key
144053
+ }
144054
+ }
144055
+ }
144056
+ return defaultResult // may be undefined
144057
+ }
144058
+ }
144059
+
144060
+ exports.compareIdentifiers = compareIdentifiers
144061
+
144062
+ var numeric = /^[0-9]+$/
144063
+ function compareIdentifiers (a, b) {
144064
+ var anum = numeric.test(a)
144065
+ var bnum = numeric.test(b)
144066
+
144067
+ if (anum && bnum) {
144068
+ a = +a
144069
+ b = +b
144070
+ }
144071
+
144072
+ return a === b ? 0
144073
+ : (anum && !bnum) ? -1
144074
+ : (bnum && !anum) ? 1
144075
+ : a < b ? -1
144076
+ : 1
144077
+ }
144078
+
144079
+ exports.rcompareIdentifiers = rcompareIdentifiers
144080
+ function rcompareIdentifiers (a, b) {
144081
+ return compareIdentifiers(b, a)
144082
+ }
144083
+
144084
+ exports.major = major
144085
+ function major (a, loose) {
144086
+ return new SemVer(a, loose).major
144087
+ }
144088
+
144089
+ exports.minor = minor
144090
+ function minor (a, loose) {
144091
+ return new SemVer(a, loose).minor
144092
+ }
144093
+
144094
+ exports.patch = patch
144095
+ function patch (a, loose) {
144096
+ return new SemVer(a, loose).patch
144097
+ }
144098
+
144099
+ exports.compare = compare
144100
+ function compare (a, b, loose) {
144101
+ return new SemVer(a, loose).compare(new SemVer(b, loose))
144102
+ }
144103
+
144104
+ exports.compareLoose = compareLoose
144105
+ function compareLoose (a, b) {
144106
+ return compare(a, b, true)
144107
+ }
144108
+
144109
+ exports.rcompare = rcompare
144110
+ function rcompare (a, b, loose) {
144111
+ return compare(b, a, loose)
144112
+ }
144113
+
144114
+ exports.sort = sort
144115
+ function sort (list, loose) {
144116
+ return list.sort(function (a, b) {
144117
+ return exports.compare(a, b, loose)
144118
+ })
144119
+ }
144120
+
144121
+ exports.rsort = rsort
144122
+ function rsort (list, loose) {
144123
+ return list.sort(function (a, b) {
144124
+ return exports.rcompare(a, b, loose)
144125
+ })
144126
+ }
144127
+
144128
+ exports.gt = gt
144129
+ function gt (a, b, loose) {
144130
+ return compare(a, b, loose) > 0
144131
+ }
144132
+
144133
+ exports.lt = lt
144134
+ function lt (a, b, loose) {
144135
+ return compare(a, b, loose) < 0
144136
+ }
144137
+
144138
+ exports.eq = eq
144139
+ function eq (a, b, loose) {
144140
+ return compare(a, b, loose) === 0
144141
+ }
144142
+
144143
+ exports.neq = neq
144144
+ function neq (a, b, loose) {
144145
+ return compare(a, b, loose) !== 0
144146
+ }
144147
+
144148
+ exports.gte = gte
144149
+ function gte (a, b, loose) {
144150
+ return compare(a, b, loose) >= 0
144151
+ }
144152
+
144153
+ exports.lte = lte
144154
+ function lte (a, b, loose) {
144155
+ return compare(a, b, loose) <= 0
144156
+ }
144157
+
144158
+ exports.cmp = cmp
144159
+ function cmp (a, op, b, loose) {
144160
+ switch (op) {
144161
+ case '===':
144162
+ if (typeof a === 'object')
144163
+ a = a.version
144164
+ if (typeof b === 'object')
144165
+ b = b.version
144166
+ return a === b
144167
+
144168
+ case '!==':
144169
+ if (typeof a === 'object')
144170
+ a = a.version
144171
+ if (typeof b === 'object')
144172
+ b = b.version
144173
+ return a !== b
144174
+
144175
+ case '':
144176
+ case '=':
144177
+ case '==':
144178
+ return eq(a, b, loose)
144179
+
144180
+ case '!=':
144181
+ return neq(a, b, loose)
144182
+
144183
+ case '>':
144184
+ return gt(a, b, loose)
144185
+
144186
+ case '>=':
144187
+ return gte(a, b, loose)
144188
+
144189
+ case '<':
144190
+ return lt(a, b, loose)
144191
+
144192
+ case '<=':
144193
+ return lte(a, b, loose)
144194
+
144195
+ default:
144196
+ throw new TypeError('Invalid operator: ' + op)
144197
+ }
144198
+ }
144199
+
144200
+ exports.Comparator = Comparator
144201
+ function Comparator (comp, options) {
144202
+ if (!options || typeof options !== 'object') {
144203
+ options = {
144204
+ loose: !!options,
144205
+ includePrerelease: false
144206
+ }
144207
+ }
144208
+
144209
+ if (comp instanceof Comparator) {
144210
+ if (comp.loose === !!options.loose) {
144211
+ return comp
144212
+ } else {
144213
+ comp = comp.value
144214
+ }
144215
+ }
144216
+
144217
+ if (!(this instanceof Comparator)) {
144218
+ return new Comparator(comp, options)
144219
+ }
144220
+
144221
+ debug('comparator', comp, options)
144222
+ this.options = options
144223
+ this.loose = !!options.loose
144224
+ this.parse(comp)
144225
+
144226
+ if (this.semver === ANY) {
144227
+ this.value = ''
144228
+ } else {
144229
+ this.value = this.operator + this.semver.version
144230
+ }
144231
+
144232
+ debug('comp', this)
144233
+ }
144234
+
144235
+ var ANY = {}
144236
+ Comparator.prototype.parse = function (comp) {
144237
+ var r = this.options.loose ? re[COMPARATORLOOSE] : re[COMPARATOR]
144238
+ var m = comp.match(r)
144239
+
144240
+ if (!m) {
144241
+ throw new TypeError('Invalid comparator: ' + comp)
144242
+ }
144243
+
144244
+ this.operator = m[1]
144245
+ if (this.operator === '=') {
144246
+ this.operator = ''
144247
+ }
144248
+
144249
+ // if it literally is just '>' or '' then allow anything.
144250
+ if (!m[2]) {
144251
+ this.semver = ANY
144252
+ } else {
144253
+ this.semver = new SemVer(m[2], this.options.loose)
144254
+ }
144255
+ }
144256
+
144257
+ Comparator.prototype.toString = function () {
144258
+ return this.value
144259
+ }
144260
+
144261
+ Comparator.prototype.test = function (version) {
144262
+ debug('Comparator.test', version, this.options.loose)
144263
+
144264
+ if (this.semver === ANY) {
144265
+ return true
144266
+ }
144267
+
144268
+ if (typeof version === 'string') {
144269
+ version = new SemVer(version, this.options)
144270
+ }
144271
+
144272
+ return cmp(version, this.operator, this.semver, this.options)
144273
+ }
144274
+
144275
+ Comparator.prototype.intersects = function (comp, options) {
144276
+ if (!(comp instanceof Comparator)) {
144277
+ throw new TypeError('a Comparator is required')
144278
+ }
144279
+
144280
+ if (!options || typeof options !== 'object') {
144281
+ options = {
144282
+ loose: !!options,
144283
+ includePrerelease: false
144284
+ }
144285
+ }
144286
+
144287
+ var rangeTmp
144288
+
144289
+ if (this.operator === '') {
144290
+ rangeTmp = new Range(comp.value, options)
144291
+ return satisfies(this.value, rangeTmp, options)
144292
+ } else if (comp.operator === '') {
144293
+ rangeTmp = new Range(this.value, options)
144294
+ return satisfies(comp.semver, rangeTmp, options)
144295
+ }
144296
+
144297
+ var sameDirectionIncreasing =
144298
+ (this.operator === '>=' || this.operator === '>') &&
144299
+ (comp.operator === '>=' || comp.operator === '>')
144300
+ var sameDirectionDecreasing =
144301
+ (this.operator === '<=' || this.operator === '<') &&
144302
+ (comp.operator === '<=' || comp.operator === '<')
144303
+ var sameSemVer = this.semver.version === comp.semver.version
144304
+ var differentDirectionsInclusive =
144305
+ (this.operator === '>=' || this.operator === '<=') &&
144306
+ (comp.operator === '>=' || comp.operator === '<=')
144307
+ var oppositeDirectionsLessThan =
144308
+ cmp(this.semver, '<', comp.semver, options) &&
144309
+ ((this.operator === '>=' || this.operator === '>') &&
144310
+ (comp.operator === '<=' || comp.operator === '<'))
144311
+ var oppositeDirectionsGreaterThan =
144312
+ cmp(this.semver, '>', comp.semver, options) &&
144313
+ ((this.operator === '<=' || this.operator === '<') &&
144314
+ (comp.operator === '>=' || comp.operator === '>'))
144315
+
144316
+ return sameDirectionIncreasing || sameDirectionDecreasing ||
144317
+ (sameSemVer && differentDirectionsInclusive) ||
144318
+ oppositeDirectionsLessThan || oppositeDirectionsGreaterThan
144319
+ }
144320
+
144321
+ exports.Range = Range
144322
+ function Range (range, options) {
144323
+ if (!options || typeof options !== 'object') {
144324
+ options = {
144325
+ loose: !!options,
144326
+ includePrerelease: false
144327
+ }
144328
+ }
144329
+
144330
+ if (range instanceof Range) {
144331
+ if (range.loose === !!options.loose &&
144332
+ range.includePrerelease === !!options.includePrerelease) {
144333
+ return range
144334
+ } else {
144335
+ return new Range(range.raw, options)
144336
+ }
144337
+ }
144338
+
144339
+ if (range instanceof Comparator) {
144340
+ return new Range(range.value, options)
144341
+ }
144342
+
144343
+ if (!(this instanceof Range)) {
144344
+ return new Range(range, options)
144345
+ }
144346
+
144347
+ this.options = options
144348
+ this.loose = !!options.loose
144349
+ this.includePrerelease = !!options.includePrerelease
144350
+
144351
+ // First, split based on boolean or ||
144352
+ this.raw = range
144353
+ this.set = range.split(/\s*\|\|\s*/).map(function (range) {
144354
+ return this.parseRange(range.trim())
144355
+ }, this).filter(function (c) {
144356
+ // throw out any that are not relevant for whatever reason
144357
+ return c.length
144358
+ })
144359
+
144360
+ if (!this.set.length) {
144361
+ throw new TypeError('Invalid SemVer Range: ' + range)
144362
+ }
144363
+
144364
+ this.format()
144365
+ }
144366
+
144367
+ Range.prototype.format = function () {
144368
+ this.range = this.set.map(function (comps) {
144369
+ return comps.join(' ').trim()
144370
+ }).join('||').trim()
144371
+ return this.range
144372
+ }
144373
+
144374
+ Range.prototype.toString = function () {
144375
+ return this.range
144376
+ }
144377
+
144378
+ Range.prototype.parseRange = function (range) {
144379
+ var loose = this.options.loose
144380
+ range = range.trim()
144381
+ // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`
144382
+ var hr = loose ? re[HYPHENRANGELOOSE] : re[HYPHENRANGE]
144383
+ range = range.replace(hr, hyphenReplace)
144384
+ debug('hyphen replace', range)
144385
+ // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`
144386
+ range = range.replace(re[COMPARATORTRIM], comparatorTrimReplace)
144387
+ debug('comparator trim', range, re[COMPARATORTRIM])
144388
+
144389
+ // `~ 1.2.3` => `~1.2.3`
144390
+ range = range.replace(re[TILDETRIM], tildeTrimReplace)
144391
+
144392
+ // `^ 1.2.3` => `^1.2.3`
144393
+ range = range.replace(re[CARETTRIM], caretTrimReplace)
144394
+
144395
+ // normalize spaces
144396
+ range = range.split(/\s+/).join(' ')
144397
+
144398
+ // At this point, the range is completely trimmed and
144399
+ // ready to be split into comparators.
144400
+
144401
+ var compRe = loose ? re[COMPARATORLOOSE] : re[COMPARATOR]
144402
+ var set = range.split(' ').map(function (comp) {
144403
+ return parseComparator(comp, this.options)
144404
+ }, this).join(' ').split(/\s+/)
144405
+ if (this.options.loose) {
144406
+ // in loose mode, throw out any that are not valid comparators
144407
+ set = set.filter(function (comp) {
144408
+ return !!comp.match(compRe)
144409
+ })
144410
+ }
144411
+ set = set.map(function (comp) {
144412
+ return new Comparator(comp, this.options)
144413
+ }, this)
144414
+
144415
+ return set
144416
+ }
144417
+
144418
+ Range.prototype.intersects = function (range, options) {
144419
+ if (!(range instanceof Range)) {
144420
+ throw new TypeError('a Range is required')
144421
+ }
144422
+
144423
+ return this.set.some(function (thisComparators) {
144424
+ return thisComparators.every(function (thisComparator) {
144425
+ return range.set.some(function (rangeComparators) {
144426
+ return rangeComparators.every(function (rangeComparator) {
144427
+ return thisComparator.intersects(rangeComparator, options)
144428
+ })
144429
+ })
144430
+ })
144431
+ })
144432
+ }
144433
+
144434
+ // Mostly just for testing and legacy API reasons
144435
+ exports.toComparators = toComparators
144436
+ function toComparators (range, options) {
144437
+ return new Range(range, options).set.map(function (comp) {
144438
+ return comp.map(function (c) {
144439
+ return c.value
144440
+ }).join(' ').trim().split(' ')
144441
+ })
144442
+ }
144443
+
144444
+ // comprised of xranges, tildes, stars, and gtlt's at this point.
144445
+ // already replaced the hyphen ranges
144446
+ // turn into a set of JUST comparators.
144447
+ function parseComparator (comp, options) {
144448
+ debug('comp', comp, options)
144449
+ comp = replaceCarets(comp, options)
144450
+ debug('caret', comp)
144451
+ comp = replaceTildes(comp, options)
144452
+ debug('tildes', comp)
144453
+ comp = replaceXRanges(comp, options)
144454
+ debug('xrange', comp)
144455
+ comp = replaceStars(comp, options)
144456
+ debug('stars', comp)
144457
+ return comp
144458
+ }
144459
+
144460
+ function isX (id) {
144461
+ return !id || id.toLowerCase() === 'x' || id === '*'
144462
+ }
144463
+
144464
+ // ~, ~> --> * (any, kinda silly)
144465
+ // ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0
144466
+ // ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0
144467
+ // ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0
144468
+ // ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0
144469
+ // ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0
144470
+ function replaceTildes (comp, options) {
144471
+ return comp.trim().split(/\s+/).map(function (comp) {
144472
+ return replaceTilde(comp, options)
144473
+ }).join(' ')
144474
+ }
144475
+
144476
+ function replaceTilde (comp, options) {
144477
+ var r = options.loose ? re[TILDELOOSE] : re[TILDE]
144478
+ return comp.replace(r, function (_, M, m, p, pr) {
144479
+ debug('tilde', comp, _, M, m, p, pr)
144480
+ var ret
144481
+
144482
+ if (isX(M)) {
144483
+ ret = ''
144484
+ } else if (isX(m)) {
144485
+ ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'
144486
+ } else if (isX(p)) {
144487
+ // ~1.2 == >=1.2.0 <1.3.0
144488
+ ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'
144489
+ } else if (pr) {
144490
+ debug('replaceTilde pr', pr)
144491
+ ret = '>=' + M + '.' + m + '.' + p + '-' + pr +
144492
+ ' <' + M + '.' + (+m + 1) + '.0'
144493
+ } else {
144494
+ // ~1.2.3 == >=1.2.3 <1.3.0
144495
+ ret = '>=' + M + '.' + m + '.' + p +
144496
+ ' <' + M + '.' + (+m + 1) + '.0'
144497
+ }
144498
+
144499
+ debug('tilde return', ret)
144500
+ return ret
144501
+ })
144502
+ }
144503
+
144504
+ // ^ --> * (any, kinda silly)
144505
+ // ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0
144506
+ // ^2.0, ^2.0.x --> >=2.0.0 <3.0.0
144507
+ // ^1.2, ^1.2.x --> >=1.2.0 <2.0.0
144508
+ // ^1.2.3 --> >=1.2.3 <2.0.0
144509
+ // ^1.2.0 --> >=1.2.0 <2.0.0
144510
+ function replaceCarets (comp, options) {
144511
+ return comp.trim().split(/\s+/).map(function (comp) {
144512
+ return replaceCaret(comp, options)
144513
+ }).join(' ')
144514
+ }
144515
+
144516
+ function replaceCaret (comp, options) {
144517
+ debug('caret', comp, options)
144518
+ var r = options.loose ? re[CARETLOOSE] : re[CARET]
144519
+ return comp.replace(r, function (_, M, m, p, pr) {
144520
+ debug('caret', comp, _, M, m, p, pr)
144521
+ var ret
144522
+
144523
+ if (isX(M)) {
144524
+ ret = ''
144525
+ } else if (isX(m)) {
144526
+ ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'
144527
+ } else if (isX(p)) {
144528
+ if (M === '0') {
144529
+ ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'
144530
+ } else {
144531
+ ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'
144532
+ }
144533
+ } else if (pr) {
144534
+ debug('replaceCaret pr', pr)
144535
+ if (M === '0') {
144536
+ if (m === '0') {
144537
+ ret = '>=' + M + '.' + m + '.' + p + '-' + pr +
144538
+ ' <' + M + '.' + m + '.' + (+p + 1)
144539
+ } else {
144540
+ ret = '>=' + M + '.' + m + '.' + p + '-' + pr +
144541
+ ' <' + M + '.' + (+m + 1) + '.0'
144542
+ }
144543
+ } else {
144544
+ ret = '>=' + M + '.' + m + '.' + p + '-' + pr +
144545
+ ' <' + (+M + 1) + '.0.0'
144546
+ }
144547
+ } else {
144548
+ debug('no pr')
144549
+ if (M === '0') {
144550
+ if (m === '0') {
144551
+ ret = '>=' + M + '.' + m + '.' + p +
144552
+ ' <' + M + '.' + m + '.' + (+p + 1)
144553
+ } else {
144554
+ ret = '>=' + M + '.' + m + '.' + p +
144555
+ ' <' + M + '.' + (+m + 1) + '.0'
144556
+ }
144557
+ } else {
144558
+ ret = '>=' + M + '.' + m + '.' + p +
144559
+ ' <' + (+M + 1) + '.0.0'
144560
+ }
144561
+ }
144562
+
144563
+ debug('caret return', ret)
144564
+ return ret
144565
+ })
144566
+ }
144567
+
144568
+ function replaceXRanges (comp, options) {
144569
+ debug('replaceXRanges', comp, options)
144570
+ return comp.split(/\s+/).map(function (comp) {
144571
+ return replaceXRange(comp, options)
144572
+ }).join(' ')
144573
+ }
144574
+
144575
+ function replaceXRange (comp, options) {
144576
+ comp = comp.trim()
144577
+ var r = options.loose ? re[XRANGELOOSE] : re[XRANGE]
144578
+ return comp.replace(r, function (ret, gtlt, M, m, p, pr) {
144579
+ debug('xRange', comp, ret, gtlt, M, m, p, pr)
144580
+ var xM = isX(M)
144581
+ var xm = xM || isX(m)
144582
+ var xp = xm || isX(p)
144583
+ var anyX = xp
144584
+
144585
+ if (gtlt === '=' && anyX) {
144586
+ gtlt = ''
144587
+ }
144588
+
144589
+ if (xM) {
144590
+ if (gtlt === '>' || gtlt === '<') {
144591
+ // nothing is allowed
144592
+ ret = '<0.0.0'
144593
+ } else {
144594
+ // nothing is forbidden
144595
+ ret = '*'
144596
+ }
144597
+ } else if (gtlt && anyX) {
144598
+ // we know patch is an x, because we have any x at all.
144599
+ // replace X with 0
144600
+ if (xm) {
144601
+ m = 0
144602
+ }
144603
+ p = 0
144604
+
144605
+ if (gtlt === '>') {
144606
+ // >1 => >=2.0.0
144607
+ // >1.2 => >=1.3.0
144608
+ // >1.2.3 => >= 1.2.4
144609
+ gtlt = '>='
144610
+ if (xm) {
144611
+ M = +M + 1
144612
+ m = 0
144613
+ p = 0
144614
+ } else {
144615
+ m = +m + 1
144616
+ p = 0
144617
+ }
144618
+ } else if (gtlt === '<=') {
144619
+ // <=0.7.x is actually <0.8.0, since any 0.7.x should
144620
+ // pass. Similarly, <=7.x is actually <8.0.0, etc.
144621
+ gtlt = '<'
144622
+ if (xm) {
144623
+ M = +M + 1
144624
+ } else {
144625
+ m = +m + 1
144626
+ }
144627
+ }
144628
+
144629
+ ret = gtlt + M + '.' + m + '.' + p
144630
+ } else if (xm) {
144631
+ ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'
144632
+ } else if (xp) {
144633
+ ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'
144634
+ }
144635
+
144636
+ debug('xRange return', ret)
144637
+
144638
+ return ret
144639
+ })
144640
+ }
144641
+
144642
+ // Because * is AND-ed with everything else in the comparator,
144643
+ // and '' means "any version", just remove the *s entirely.
144644
+ function replaceStars (comp, options) {
144645
+ debug('replaceStars', comp, options)
144646
+ // Looseness is ignored here. star is always as loose as it gets!
144647
+ return comp.trim().replace(re[STAR], '')
144648
+ }
144649
+
144650
+ // This function is passed to string.replace(re[HYPHENRANGE])
144651
+ // M, m, patch, prerelease, build
144652
+ // 1.2 - 3.4.5 => >=1.2.0 <=3.4.5
144653
+ // 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do
144654
+ // 1.2 - 3.4 => >=1.2.0 <3.5.0
144655
+ function hyphenReplace ($0,
144656
+ from, fM, fm, fp, fpr, fb,
144657
+ to, tM, tm, tp, tpr, tb) {
144658
+ if (isX(fM)) {
144659
+ from = ''
144660
+ } else if (isX(fm)) {
144661
+ from = '>=' + fM + '.0.0'
144662
+ } else if (isX(fp)) {
144663
+ from = '>=' + fM + '.' + fm + '.0'
144664
+ } else {
144665
+ from = '>=' + from
144666
+ }
144667
+
144668
+ if (isX(tM)) {
144669
+ to = ''
144670
+ } else if (isX(tm)) {
144671
+ to = '<' + (+tM + 1) + '.0.0'
144672
+ } else if (isX(tp)) {
144673
+ to = '<' + tM + '.' + (+tm + 1) + '.0'
144674
+ } else if (tpr) {
144675
+ to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr
144676
+ } else {
144677
+ to = '<=' + to
144678
+ }
144679
+
144680
+ return (from + ' ' + to).trim()
144681
+ }
144682
+
144683
+ // if ANY of the sets match ALL of its comparators, then pass
144684
+ Range.prototype.test = function (version) {
144685
+ if (!version) {
144686
+ return false
144687
+ }
144688
+
144689
+ if (typeof version === 'string') {
144690
+ version = new SemVer(version, this.options)
144691
+ }
144692
+
144693
+ for (var i = 0; i < this.set.length; i++) {
144694
+ if (testSet(this.set[i], version, this.options)) {
144695
+ return true
144696
+ }
144697
+ }
144698
+ return false
144699
+ }
144700
+
144701
+ function testSet (set, version, options) {
144702
+ for (var i = 0; i < set.length; i++) {
144703
+ if (!set[i].test(version)) {
144704
+ return false
144705
+ }
144706
+ }
144707
+
144708
+ if (version.prerelease.length && !options.includePrerelease) {
144709
+ // Find the set of versions that are allowed to have prereleases
144710
+ // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0
144711
+ // That should allow `1.2.3-pr.2` to pass.
144712
+ // However, `1.2.4-alpha.notready` should NOT be allowed,
144713
+ // even though it's within the range set by the comparators.
144714
+ for (i = 0; i < set.length; i++) {
144715
+ debug(set[i].semver)
144716
+ if (set[i].semver === ANY) {
144717
+ continue
144718
+ }
144719
+
144720
+ if (set[i].semver.prerelease.length > 0) {
144721
+ var allowed = set[i].semver
144722
+ if (allowed.major === version.major &&
144723
+ allowed.minor === version.minor &&
144724
+ allowed.patch === version.patch) {
144725
+ return true
144726
+ }
144727
+ }
144728
+ }
144729
+
144730
+ // Version has a -pre, but it's not one of the ones we like.
144731
+ return false
144732
+ }
144733
+
144734
+ return true
144735
+ }
144736
+
144737
+ exports.satisfies = satisfies
144738
+ function satisfies (version, range, options) {
144739
+ try {
144740
+ range = new Range(range, options)
144741
+ } catch (er) {
144742
+ return false
144743
+ }
144744
+ return range.test(version)
144745
+ }
144746
+
144747
+ exports.maxSatisfying = maxSatisfying
144748
+ function maxSatisfying (versions, range, options) {
144749
+ var max = null
144750
+ var maxSV = null
144751
+ try {
144752
+ var rangeObj = new Range(range, options)
144753
+ } catch (er) {
144754
+ return null
144755
+ }
144756
+ versions.forEach(function (v) {
144757
+ if (rangeObj.test(v)) {
144758
+ // satisfies(v, range, options)
144759
+ if (!max || maxSV.compare(v) === -1) {
144760
+ // compare(max, v, true)
144761
+ max = v
144762
+ maxSV = new SemVer(max, options)
144763
+ }
144764
+ }
144765
+ })
144766
+ return max
144767
+ }
144768
+
144769
+ exports.minSatisfying = minSatisfying
144770
+ function minSatisfying (versions, range, options) {
144771
+ var min = null
144772
+ var minSV = null
144773
+ try {
144774
+ var rangeObj = new Range(range, options)
144775
+ } catch (er) {
144776
+ return null
144777
+ }
144778
+ versions.forEach(function (v) {
144779
+ if (rangeObj.test(v)) {
144780
+ // satisfies(v, range, options)
144781
+ if (!min || minSV.compare(v) === 1) {
144782
+ // compare(min, v, true)
144783
+ min = v
144784
+ minSV = new SemVer(min, options)
144785
+ }
144786
+ }
144787
+ })
144788
+ return min
144789
+ }
144790
+
144791
+ exports.minVersion = minVersion
144792
+ function minVersion (range, loose) {
144793
+ range = new Range(range, loose)
144794
+
144795
+ var minver = new SemVer('0.0.0')
144796
+ if (range.test(minver)) {
144797
+ return minver
144798
+ }
144799
+
144800
+ minver = new SemVer('0.0.0-0')
144801
+ if (range.test(minver)) {
144802
+ return minver
144803
+ }
144804
+
144805
+ minver = null
144806
+ for (var i = 0; i < range.set.length; ++i) {
144807
+ var comparators = range.set[i]
144808
+
144809
+ comparators.forEach(function (comparator) {
144810
+ // Clone to avoid manipulating the comparator's semver object.
144811
+ var compver = new SemVer(comparator.semver.version)
144812
+ switch (comparator.operator) {
144813
+ case '>':
144814
+ if (compver.prerelease.length === 0) {
144815
+ compver.patch++
144816
+ } else {
144817
+ compver.prerelease.push(0)
144818
+ }
144819
+ compver.raw = compver.format()
144820
+ /* fallthrough */
144821
+ case '':
144822
+ case '>=':
144823
+ if (!minver || gt(minver, compver)) {
144824
+ minver = compver
144825
+ }
144826
+ break
144827
+ case '<':
144828
+ case '<=':
144829
+ /* Ignore maximum versions */
144830
+ break
144831
+ /* istanbul ignore next */
144832
+ default:
144833
+ throw new Error('Unexpected operation: ' + comparator.operator)
144834
+ }
144835
+ })
144836
+ }
144837
+
144838
+ if (minver && range.test(minver)) {
144839
+ return minver
144840
+ }
144841
+
144842
+ return null
144843
+ }
144844
+
144845
+ exports.validRange = validRange
144846
+ function validRange (range, options) {
144847
+ try {
144848
+ // Return '*' instead of '' so that truthiness works.
144849
+ // This will throw if it's invalid anyway
144850
+ return new Range(range, options).range || '*'
144851
+ } catch (er) {
144852
+ return null
144853
+ }
144854
+ }
144855
+
144856
+ // Determine if version is less than all the versions possible in the range
144857
+ exports.ltr = ltr
144858
+ function ltr (version, range, options) {
144859
+ return outside(version, range, '<', options)
144860
+ }
144861
+
144862
+ // Determine if version is greater than all the versions possible in the range.
144863
+ exports.gtr = gtr
144864
+ function gtr (version, range, options) {
144865
+ return outside(version, range, '>', options)
144866
+ }
144867
+
144868
+ exports.outside = outside
144869
+ function outside (version, range, hilo, options) {
144870
+ version = new SemVer(version, options)
144871
+ range = new Range(range, options)
144872
+
144873
+ var gtfn, ltefn, ltfn, comp, ecomp
144874
+ switch (hilo) {
144875
+ case '>':
144876
+ gtfn = gt
144877
+ ltefn = lte
144878
+ ltfn = lt
144879
+ comp = '>'
144880
+ ecomp = '>='
144881
+ break
144882
+ case '<':
144883
+ gtfn = lt
144884
+ ltefn = gte
144885
+ ltfn = gt
144886
+ comp = '<'
144887
+ ecomp = '<='
144888
+ break
144889
+ default:
144890
+ throw new TypeError('Must provide a hilo val of "<" or ">"')
144891
+ }
144892
+
144893
+ // If it satisifes the range it is not outside
144894
+ if (satisfies(version, range, options)) {
144895
+ return false
144896
+ }
144897
+
144898
+ // From now on, variable terms are as if we're in "gtr" mode.
144899
+ // but note that everything is flipped for the "ltr" function.
144900
+
144901
+ for (var i = 0; i < range.set.length; ++i) {
144902
+ var comparators = range.set[i]
144903
+
144904
+ var high = null
144905
+ var low = null
144906
+
144907
+ comparators.forEach(function (comparator) {
144908
+ if (comparator.semver === ANY) {
144909
+ comparator = new Comparator('>=0.0.0')
144910
+ }
144911
+ high = high || comparator
144912
+ low = low || comparator
144913
+ if (gtfn(comparator.semver, high.semver, options)) {
144914
+ high = comparator
144915
+ } else if (ltfn(comparator.semver, low.semver, options)) {
144916
+ low = comparator
144917
+ }
144918
+ })
144919
+
144920
+ // If the edge version comparator has a operator then our version
144921
+ // isn't outside it
144922
+ if (high.operator === comp || high.operator === ecomp) {
144923
+ return false
144924
+ }
144925
+
144926
+ // If the lowest version comparator has an operator and our version
144927
+ // is less than it then it isn't higher than the range
144928
+ if ((!low.operator || low.operator === comp) &&
144929
+ ltefn(version, low.semver)) {
144930
+ return false
144931
+ } else if (low.operator === ecomp && ltfn(version, low.semver)) {
144932
+ return false
144933
+ }
144934
+ }
144935
+ return true
144936
+ }
144937
+
144938
+ exports.prerelease = prerelease
144939
+ function prerelease (version, options) {
144940
+ var parsed = parse(version, options)
144941
+ return (parsed && parsed.prerelease.length) ? parsed.prerelease : null
144942
+ }
144943
+
144944
+ exports.intersects = intersects
144945
+ function intersects (r1, r2, options) {
144946
+ r1 = new Range(r1, options)
144947
+ r2 = new Range(r2, options)
144948
+ return r1.intersects(r2)
144949
+ }
144950
+
144951
+ exports.coerce = coerce
144952
+ function coerce (version) {
144953
+ if (version instanceof SemVer) {
144954
+ return version
144955
+ }
144956
+
144957
+ if (typeof version !== 'string') {
144958
+ return null
144959
+ }
144960
+
144961
+ var match = version.match(re[COERCE])
144962
+
144963
+ if (match == null) {
144964
+ return null
144965
+ }
144966
+
144967
+ return parse(match[1] +
144968
+ '.' + (match[2] || '0') +
144969
+ '.' + (match[3] || '0'))
144970
+ }
144971
+
144972
+
143483
144973
  /***/ }),
143484
144974
 
143485
144975
  /***/ 41039:
@@ -196059,7 +197549,10 @@ const main = async () => {
196059
197549
  const targetPathExists = (0, fs_1.existsSync)(targetPath);
196060
197550
  const subcommandExists = GLOBAL_COMMANDS.has(targetOrSubcommand) ||
196061
197551
  commands_1.default.has(targetOrSubcommand);
196062
- if (targetPathExists && subcommandExists && !argv['--cwd']) {
197552
+ if (targetPathExists &&
197553
+ subcommandExists &&
197554
+ !argv['--cwd'] &&
197555
+ !process.env.NOW_BUILDER) {
196063
197556
  output.warn(`Did you mean to deploy the subdirectory "${targetOrSubcommand}"? ` +
196064
197557
  `Use \`vc --cwd ${targetOrSubcommand}\` instead.`);
196065
197558
  }
@@ -206432,13 +207925,14 @@ class Now extends events_1.default {
206432
207925
  });
206433
207926
  }
206434
207927
  if (error.errorCode === 'BUILD_FAILED' ||
206435
- error.errorCode === 'UNEXPECTED_ERROR') {
207928
+ error.errorCode === 'UNEXPECTED_ERROR' ||
207929
+ error.errorCode.includes('BUILD_UTILS_SPAWN_')) {
206436
207930
  return new errors_ts_1.BuildError({
206437
207931
  message: error.errorMessage,
206438
207932
  meta: {},
206439
207933
  });
206440
207934
  }
206441
- return new Error(error.message);
207935
+ return new Error(error.message || error.errorMessage);
206442
207936
  }
206443
207937
  async listSecrets(next, testWarningFlag) {
206444
207938
  const payload = await this.retry(async (bail) => {
@@ -211689,7 +213183,7 @@ module.exports = JSON.parse("[[[0,44],\"disallowed_STD3_valid\"],[[45,46],\"vali
211689
213183
  /***/ ((module) => {
211690
213184
 
211691
213185
  "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\"]}}");
213186
+ module.exports = JSON.parse("{\"name\":\"vercel\",\"version\":\"28.18.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.5.0\",\"@vercel/go\":\"2.4.1\",\"@vercel/hydrogen\":\"0.0.59\",\"@vercel/next\":\"3.7.0\",\"@vercel/node\":\"2.9.14\",\"@vercel/python\":\"3.1.55\",\"@vercel/redwood\":\"1.1.11\",\"@vercel/remix-builder\":\"1.8.0\",\"@vercel/ruby\":\"1.3.72\",\"@vercel/static-build\":\"1.3.18\"},\"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
213187
 
211694
213188
  /***/ }),
211695
213189
 
@@ -211697,7 +213191,7 @@ module.exports = JSON.parse("{\"name\":\"vercel\",\"version\":\"28.17.0\",\"pref
211697
213191
  /***/ ((module) => {
211698
213192
 
211699
213193
  "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\"}}");
213194
+ 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
213195
 
211702
213196
  /***/ }),
211703
213197