semver 3.0.1 → 4.1.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.
package/semver.js CHANGED
@@ -138,18 +138,18 @@ var XRANGEPLAIN = R++;
138
138
  src[XRANGEPLAIN] = '[v=\\s]*(' + src[XRANGEIDENTIFIER] + ')' +
139
139
  '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' +
140
140
  '(?:\\.(' + src[XRANGEIDENTIFIER] + ')' +
141
- '(?:(' + src[PRERELEASE] + ')' +
142
- ')?)?)?';
141
+ '(?:' + src[PRERELEASE] + ')?' +
142
+ src[BUILD] + '?' +
143
+ ')?)?';
143
144
 
144
145
  var XRANGEPLAINLOOSE = R++;
145
146
  src[XRANGEPLAINLOOSE] = '[v=\\s]*(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
146
147
  '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
147
148
  '(?:\\.(' + src[XRANGEIDENTIFIERLOOSE] + ')' +
148
- '(?:(' + src[PRERELEASELOOSE] + ')' +
149
- ')?)?)?';
149
+ '(?:' + src[PRERELEASELOOSE] + ')?' +
150
+ src[BUILD] + '?' +
151
+ ')?)?';
150
152
 
151
- // >=2.x, for example, means >=2.0.0-0
152
- // <1.x would be the same as "<1.0.0-0", though.
153
153
  var XRANGE = R++;
154
154
  src[XRANGE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAIN] + '$';
155
155
  var XRANGELOOSE = R++;
@@ -246,7 +246,7 @@ function valid(version, loose) {
246
246
 
247
247
  exports.clean = clean;
248
248
  function clean(version, loose) {
249
- var s = parse(version.trim().replace(/^[=v]+/, ""), loose);
249
+ var s = parse(version.trim().replace(/^[=v]+/, ''), loose);
250
250
  return s ? s.version : null;
251
251
  }
252
252
 
@@ -355,36 +355,55 @@ SemVer.prototype.comparePre = function(other) {
355
355
 
356
356
  // preminor will bump the version up to the next minor release, and immediately
357
357
  // down to pre-release. premajor and prepatch work the same way.
358
- SemVer.prototype.inc = function(release) {
358
+ SemVer.prototype.inc = function(release, identifier) {
359
359
  switch (release) {
360
360
  case 'premajor':
361
- this.inc('major');
362
- this.inc('pre');
361
+ this.prerelease.length = 0;
362
+ this.patch = 0;
363
+ this.minor = 0;
364
+ this.major++;
365
+ this.inc('pre', identifier);
363
366
  break;
364
367
  case 'preminor':
365
- this.inc('minor');
366
- this.inc('pre');
368
+ this.prerelease.length = 0;
369
+ this.patch = 0;
370
+ this.minor++;
371
+ this.inc('pre', identifier);
367
372
  break;
368
373
  case 'prepatch':
369
374
  // If this is already a prerelease, it will bump to the next version
370
375
  // drop any prereleases that might already exist, since they are not
371
376
  // relevant at this point.
372
377
  this.prerelease.length = 0;
373
- this.inc('patch');
374
- this.inc('pre');
378
+ this.inc('patch', identifier);
379
+ this.inc('pre', identifier);
375
380
  break;
376
381
  // If the input is a non-prerelease version, this acts the same as
377
382
  // prepatch.
378
383
  case 'prerelease':
379
384
  if (this.prerelease.length === 0)
380
- this.inc('patch');
381
- this.inc('pre');
385
+ this.inc('patch', identifier);
386
+ this.inc('pre', identifier);
382
387
  break;
388
+
383
389
  case 'major':
384
- this.major++;
385
- this.minor = -1;
390
+ // If this is a pre-major version, bump up to the same major version.
391
+ // Otherwise increment major.
392
+ // 1.0.0-5 bumps to 1.0.0
393
+ // 1.1.0 bumps to 2.0.0
394
+ if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0)
395
+ this.major++;
396
+ this.minor = 0;
397
+ this.patch = 0;
398
+ this.prerelease = [];
399
+ break;
386
400
  case 'minor':
387
- this.minor++;
401
+ // If this is a pre-minor version, bump up to the same minor version.
402
+ // Otherwise increment minor.
403
+ // 1.2.0-5 bumps to 1.2.0
404
+ // 1.2.1 bumps to 1.3.0
405
+ if (this.patch !== 0 || this.prerelease.length === 0)
406
+ this.minor++;
388
407
  this.patch = 0;
389
408
  this.prerelease = [];
390
409
  break;
@@ -397,7 +416,7 @@ SemVer.prototype.inc = function(release) {
397
416
  this.patch++;
398
417
  this.prerelease = [];
399
418
  break;
400
- // This probably shouldn't be used publically.
419
+ // This probably shouldn't be used publicly.
401
420
  // 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction.
402
421
  case 'pre':
403
422
  if (this.prerelease.length === 0)
@@ -413,6 +432,15 @@ SemVer.prototype.inc = function(release) {
413
432
  if (i === -1) // didn't increment anything
414
433
  this.prerelease.push(0);
415
434
  }
435
+ if (identifier) {
436
+ // 1.2.0-beta.1 bumps to 1.2.0-beta.2,
437
+ // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0
438
+ if (this.prerelease[0] === identifier) {
439
+ if (isNaN(this.prerelease[1]))
440
+ this.prerelease = [identifier, 0];
441
+ } else
442
+ this.prerelease = [identifier, 0];
443
+ }
416
444
  break;
417
445
 
418
446
  default:
@@ -423,9 +451,14 @@ SemVer.prototype.inc = function(release) {
423
451
  };
424
452
 
425
453
  exports.inc = inc;
426
- function inc(version, release, loose) {
454
+ function inc(version, release, loose, identifier) {
455
+ if (typeof(loose) === 'string') {
456
+ identifier = loose;
457
+ loose = undefined;
458
+ }
459
+
427
460
  try {
428
- return new SemVer(version, loose).inc(release).version;
461
+ return new SemVer(version, loose).inc(release, identifier).version;
429
462
  } catch (er) {
430
463
  return null;
431
464
  }
@@ -518,8 +551,16 @@ exports.cmp = cmp;
518
551
  function cmp(a, op, b, loose) {
519
552
  var ret;
520
553
  switch (op) {
521
- case '===': ret = a === b; break;
522
- case '!==': ret = a !== b; break;
554
+ case '===':
555
+ if (typeof a === 'object') a = a.version;
556
+ if (typeof b === 'object') b = b.version;
557
+ ret = a === b;
558
+ break;
559
+ case '!==':
560
+ if (typeof a === 'object') a = a.version;
561
+ if (typeof b === 'object') b = b.version;
562
+ ret = a !== b;
563
+ break;
523
564
  case '': case '=': case '==': ret = eq(a, b, loose); break;
524
565
  case '!=': ret = neq(a, b, loose); break;
525
566
  case '>': ret = gt(a, b, loose); break;
@@ -551,6 +592,8 @@ function Comparator(comp, loose) {
551
592
  this.value = '';
552
593
  else
553
594
  this.value = this.operator + this.semver.version;
595
+
596
+ debug('comp', this);
554
597
  }
555
598
 
556
599
  var ANY = {};
@@ -568,21 +611,8 @@ Comparator.prototype.parse = function(comp) {
568
611
  // if it literally is just '>' or '' then allow anything.
569
612
  if (!m[2])
570
613
  this.semver = ANY;
571
- else {
614
+ else
572
615
  this.semver = new SemVer(m[2], this.loose);
573
-
574
- // <1.2.3-rc DOES allow 1.2.3-beta (has prerelease)
575
- // >=1.2.3 DOES NOT allow 1.2.3-beta
576
- // <=1.2.3 DOES allow 1.2.3-beta
577
- // However, <1.2.3 does NOT allow 1.2.3-beta,
578
- // even though `1.2.3-beta < 1.2.3`
579
- // The assumption is that the 1.2.3 version has something you
580
- // *don't* want, so we push the prerelease down to the minimum.
581
- if (this.operator === '<' && !this.semver.prerelease.length) {
582
- this.semver.prerelease = ['0'];
583
- this.semver.format();
584
- }
585
- }
586
616
  };
587
617
 
588
618
  Comparator.prototype.inspect = function() {
@@ -595,8 +625,14 @@ Comparator.prototype.toString = function() {
595
625
 
596
626
  Comparator.prototype.test = function(version) {
597
627
  debug('Comparator.test', version, this.loose);
598
- return (this.semver === ANY) ? true :
599
- cmp(version, this.operator, this.semver, this.loose);
628
+
629
+ if (this.semver === ANY)
630
+ return true;
631
+
632
+ if (typeof version === 'string')
633
+ version = new SemVer(version, this.loose);
634
+
635
+ return cmp(version, this.operator, this.semver, this.loose);
600
636
  };
601
637
 
602
638
 
@@ -733,20 +769,20 @@ function replaceTilde(comp, loose) {
733
769
  if (isX(M))
734
770
  ret = '';
735
771
  else if (isX(m))
736
- ret = '>=' + M + '.0.0-0 <' + (+M + 1) + '.0.0-0';
772
+ ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0';
737
773
  else if (isX(p))
738
774
  // ~1.2 == >=1.2.0- <1.3.0-
739
- ret = '>=' + M + '.' + m + '.0-0 <' + M + '.' + (+m + 1) + '.0-0';
775
+ ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0';
740
776
  else if (pr) {
741
777
  debug('replaceTilde pr', pr);
742
778
  if (pr.charAt(0) !== '-')
743
779
  pr = '-' + pr;
744
780
  ret = '>=' + M + '.' + m + '.' + p + pr +
745
- ' <' + M + '.' + (+m + 1) + '.0-0';
781
+ ' <' + M + '.' + (+m + 1) + '.0';
746
782
  } else
747
- // ~1.2.3 == >=1.2.3-0 <1.3.0-0
748
- ret = '>=' + M + '.' + m + '.' + p + '-0' +
749
- ' <' + M + '.' + (+m + 1) + '.0-0';
783
+ // ~1.2.3 == >=1.2.3 <1.3.0
784
+ ret = '>=' + M + '.' + m + '.' + p +
785
+ ' <' + M + '.' + (+m + 1) + '.0';
750
786
 
751
787
  debug('tilde return', ret);
752
788
  return ret;
@@ -766,33 +802,48 @@ function replaceCarets(comp, loose) {
766
802
  }
767
803
 
768
804
  function replaceCaret(comp, loose) {
805
+ debug('caret', comp, loose);
769
806
  var r = loose ? re[CARETLOOSE] : re[CARET];
770
807
  return comp.replace(r, function(_, M, m, p, pr) {
771
808
  debug('caret', comp, _, M, m, p, pr);
772
809
  var ret;
773
- if (pr) {
774
- if (pr.charAt(0) !== '-')
775
- pr = '-' + pr;
776
- } else
777
- pr = '';
778
810
 
779
811
  if (isX(M))
780
812
  ret = '';
781
813
  else if (isX(m))
782
- ret = '>=' + M + '.0.0-0 <' + (+M + 1) + '.0.0-0';
814
+ ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0';
783
815
  else if (isX(p)) {
784
816
  if (M === '0')
785
- ret = '>=' + M + '.' + m + '.0-0 <' + M + '.' + (+m + 1) + '.0-0';
817
+ ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0';
786
818
  else
787
- ret = '>=' + M + '.' + m + '.0-0 <' + (+M + 1) + '.0.0-0';
788
- } else if (M === '0')
789
- ret = '=' + M + '.' + m + '.' + p + pr;
790
- else if (pr)
791
- ret = '>=' + M + '.' + m + '.' + p + pr +
792
- ' <' + (+M + 1) + '.0.0-0';
793
- else
794
- ret = '>=' + M + '.' + m + '.' + p + '-0' +
795
- ' <' + (+M + 1) + '.0.0-0';
819
+ ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0';
820
+ } else if (pr) {
821
+ debug('replaceCaret pr', pr);
822
+ if (pr.charAt(0) !== '-')
823
+ pr = '-' + pr;
824
+ if (M === '0') {
825
+ if (m === '0')
826
+ ret = '>=' + M + '.' + m + '.' + p + pr +
827
+ ' <' + M + '.' + m + '.' + (+p + 1);
828
+ else
829
+ ret = '>=' + M + '.' + m + '.' + p + pr +
830
+ ' <' + M + '.' + (+m + 1) + '.0';
831
+ } else
832
+ ret = '>=' + M + '.' + m + '.' + p + pr +
833
+ ' <' + (+M + 1) + '.0.0';
834
+ } else {
835
+ debug('no pr');
836
+ if (M === '0') {
837
+ if (m === '0')
838
+ ret = '>=' + M + '.' + m + '.' + p +
839
+ ' <' + M + '.' + m + '.' + (+p + 1);
840
+ else
841
+ ret = '>=' + M + '.' + m + '.' + p +
842
+ ' <' + M + '.' + (+m + 1) + '.0';
843
+ } else
844
+ ret = '>=' + M + '.' + m + '.' + p +
845
+ ' <' + (+M + 1) + '.0.0';
846
+ }
796
847
 
797
848
  debug('caret return', ret);
798
849
  return ret;
@@ -819,23 +870,27 @@ function replaceXRange(comp, loose) {
819
870
  if (gtlt === '=' && anyX)
820
871
  gtlt = '';
821
872
 
822
- if (gtlt && anyX) {
823
- // replace X with 0, and then append the -0 min-prerelease
824
- if (xM)
825
- M = 0;
873
+ if (xM) {
874
+ if (gtlt === '>' || gtlt === '<') {
875
+ // nothing is allowed
876
+ ret = '<0.0.0';
877
+ } else {
878
+ // nothing is forbidden
879
+ ret = '*';
880
+ }
881
+ } else if (gtlt && anyX) {
882
+ // replace X with 0
826
883
  if (xm)
827
884
  m = 0;
828
885
  if (xp)
829
886
  p = 0;
830
887
 
831
888
  if (gtlt === '>') {
832
- // >1 => >=2.0.0-0
833
- // >1.2 => >=1.3.0-0
834
- // >1.2.3 => >= 1.2.4-0
889
+ // >1 => >=2.0.0
890
+ // >1.2 => >=1.3.0
891
+ // >1.2.3 => >= 1.2.4
835
892
  gtlt = '>=';
836
- if (xM) {
837
- // no change
838
- } else if (xm) {
893
+ if (xm) {
839
894
  M = +M + 1;
840
895
  m = 0;
841
896
  p = 0;
@@ -843,20 +898,21 @@ function replaceXRange(comp, loose) {
843
898
  m = +m + 1;
844
899
  p = 0;
845
900
  }
901
+ } else if (gtlt === '<=') {
902
+ // <=0.7.x is actually <0.8.0, since any 0.7.x should
903
+ // pass. Similarly, <=7.x is actually <8.0.0, etc.
904
+ gtlt = '<'
905
+ if (xm)
906
+ M = +M + 1
907
+ else
908
+ m = +m + 1
846
909
  }
847
910
 
848
-
849
- ret = gtlt + M + '.' + m + '.' + p + '-0';
850
- } else if (xM) {
851
- // allow any
852
- ret = '*';
911
+ ret = gtlt + M + '.' + m + '.' + p;
853
912
  } else if (xm) {
854
- // append '-0' onto the version, otherwise
855
- // '1.x.x' matches '2.0.0-beta', since the tag
856
- // *lowers* the version value
857
- ret = '>=' + M + '.0.0-0 <' + (+M + 1) + '.0.0-0';
913
+ ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0';
858
914
  } else if (xp) {
859
- ret = '>=' + M + '.' + m + '.0-0 <' + M + '.' + (+m + 1) + '.0-0';
915
+ ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0';
860
916
  }
861
917
 
862
918
  debug('xRange return', ret);
@@ -875,9 +931,9 @@ function replaceStars(comp, loose) {
875
931
 
876
932
  // This function is passed to string.replace(re[HYPHENRANGE])
877
933
  // M, m, patch, prerelease, build
878
- // 1.2 - 3.4.5 => >=1.2.0-0 <=3.4.5
879
- // 1.2.3 - 3.4 => >=1.2.0-0 <3.5.0-0 Any 3.4.x will do
880
- // 1.2 - 3.4 => >=1.2.0-0 <3.5.0-0
934
+ // 1.2 - 3.4.5 => >=1.2.0 <=3.4.5
935
+ // 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do
936
+ // 1.2 - 3.4 => >=1.2.0 <3.5.0
881
937
  function hyphenReplace($0,
882
938
  from, fM, fm, fp, fpr, fb,
883
939
  to, tM, tm, tp, tpr, tb) {
@@ -885,18 +941,18 @@ function hyphenReplace($0,
885
941
  if (isX(fM))
886
942
  from = '';
887
943
  else if (isX(fm))
888
- from = '>=' + fM + '.0.0-0';
944
+ from = '>=' + fM + '.0.0';
889
945
  else if (isX(fp))
890
- from = '>=' + fM + '.' + fm + '.0-0';
946
+ from = '>=' + fM + '.' + fm + '.0';
891
947
  else
892
948
  from = '>=' + from;
893
949
 
894
950
  if (isX(tM))
895
951
  to = '';
896
952
  else if (isX(tm))
897
- to = '<' + (+tM + 1) + '.0.0-0';
953
+ to = '<' + (+tM + 1) + '.0.0';
898
954
  else if (isX(tp))
899
- to = '<' + tM + '.' + (+tm + 1) + '.0-0';
955
+ to = '<' + tM + '.' + (+tm + 1) + '.0';
900
956
  else if (tpr)
901
957
  to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr;
902
958
  else
@@ -910,6 +966,10 @@ function hyphenReplace($0,
910
966
  Range.prototype.test = function(version) {
911
967
  if (!version)
912
968
  return false;
969
+
970
+ if (typeof version === 'string')
971
+ version = new SemVer(version, this.loose);
972
+
913
973
  for (var i = 0; i < this.set.length; i++) {
914
974
  if (testSet(this.set[i], version))
915
975
  return true;
@@ -922,6 +982,31 @@ function testSet(set, version) {
922
982
  if (!set[i].test(version))
923
983
  return false;
924
984
  }
985
+
986
+ if (version.prerelease.length) {
987
+ // Find the set of versions that are allowed to have prereleases
988
+ // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0
989
+ // That should allow `1.2.3-pr.2` to pass.
990
+ // However, `1.2.4-alpha.notready` should NOT be allowed,
991
+ // even though it's within the range set by the comparators.
992
+ for (var i = 0; i < set.length; i++) {
993
+ debug(set[i].semver);
994
+ if (set[i].semver === ANY)
995
+ return true;
996
+
997
+ if (set[i].semver.prerelease.length > 0) {
998
+ var allowed = set[i].semver;
999
+ if (allowed.major === version.major &&
1000
+ allowed.minor === version.minor &&
1001
+ allowed.patch === version.patch)
1002
+ return true;
1003
+ }
1004
+ }
1005
+
1006
+ // Version has a -pre, but it's not one of the ones we like.
1007
+ return false;
1008
+ }
1009
+
925
1010
  return true;
926
1011
  }
927
1012
 
package/semver.min.js CHANGED
@@ -1 +1 @@
1
- (function(e){if(typeof module==="object"&&module.exports===e)e=module.exports=H;e.SEMVER_SPEC_VERSION="2.0.0";var r=e.re=[];var t=e.src=[];var n=0;var i=n++;t[i]="0|[1-9]\\d*";var s=n++;t[s]="[0-9]+";var a=n++;t[a]="\\d*[a-zA-Z-][a-zA-Z0-9-]*";var o=n++;t[o]="("+t[i]+")\\."+"("+t[i]+")\\."+"("+t[i]+")";var f=n++;t[f]="("+t[s]+")\\."+"("+t[s]+")\\."+"("+t[s]+")";var u=n++;t[u]="(?:"+t[i]+"|"+t[a]+")";var c=n++;t[c]="(?:"+t[s]+"|"+t[a]+")";var l=n++;t[l]="(?:-("+t[u]+"(?:\\."+t[u]+")*))";var p=n++;t[p]="(?:-?("+t[c]+"(?:\\."+t[c]+")*))";var h=n++;t[h]="[0-9A-Za-z-]+";var v=n++;t[v]="(?:\\+("+t[h]+"(?:\\."+t[h]+")*))";var m=n++;var g="v?"+t[o]+t[l]+"?"+t[v]+"?";t[m]="^"+g+"$";var w="[v=\\s]*"+t[f]+t[p]+"?"+t[v]+"?";var d=n++;t[d]="^"+w+"$";var y=n++;t[y]="((?:<|>)?=?)";var b=n++;t[b]=t[s]+"|x|X|\\*";var $=n++;t[$]=t[i]+"|x|X|\\*";var j=n++;t[j]="[v=\\s]*("+t[$]+")"+"(?:\\.("+t[$]+")"+"(?:\\.("+t[$]+")"+"(?:("+t[l]+")"+")?)?)?";var k=n++;t[k]="[v=\\s]*("+t[b]+")"+"(?:\\.("+t[b]+")"+"(?:\\.("+t[b]+")"+"(?:("+t[p]+")"+")?)?)?";var E=n++;t[E]="^"+t[y]+"\\s*"+t[j]+"$";var x=n++;t[x]="^"+t[y]+"\\s*"+t[k]+"$";var R=n++;t[R]="(?:~>?)";var S=n++;t[S]="(\\s*)"+t[R]+"\\s+";r[S]=new RegExp(t[S],"g");var V="$1~";var I=n++;t[I]="^"+t[R]+t[j]+"$";var T=n++;t[T]="^"+t[R]+t[k]+"$";var A=n++;t[A]="(?:\\^)";var C=n++;t[C]="(\\s*)"+t[A]+"\\s+";r[C]=new RegExp(t[C],"g");var M="$1^";var z=n++;t[z]="^"+t[A]+t[j]+"$";var P=n++;t[P]="^"+t[A]+t[k]+"$";var Z=n++;t[Z]="^"+t[y]+"\\s*("+w+")$|^$";var q=n++;t[q]="^"+t[y]+"\\s*("+g+")$|^$";var L=n++;t[L]="(\\s*)"+t[y]+"\\s*("+w+"|"+t[j]+")";r[L]=new RegExp(t[L],"g");var X="$1$2$3";var _=n++;t[_]="^\\s*("+t[j]+")"+"\\s+-\\s+"+"("+t[j]+")"+"\\s*$";var N=n++;t[N]="^\\s*("+t[k]+")"+"\\s+-\\s+"+"("+t[k]+")"+"\\s*$";var O=n++;t[O]="(<|>)?=?\\s*\\*";for(var B=0;B<n;B++){if(!r[B])r[B]=new RegExp(t[B])}e.parse=D;function D(e,t){var n=t?r[d]:r[m];return n.test(e)?new H(e,t):null}e.valid=F;function F(e,r){var t=D(e,r);return t?t.version:null}e.clean=G;function G(e,r){var t=D(e.trim().replace(/^[=v]+/,""),r);return t?t.version:null}e.SemVer=H;function H(e,t){if(e instanceof H){if(e.loose===t)return e;else e=e.version}else if(typeof e!=="string"){throw new TypeError("Invalid Version: "+e)}if(!(this instanceof H))return new H(e,t);this.loose=t;var n=e.trim().match(t?r[d]:r[m]);if(!n)throw new TypeError("Invalid Version: "+e);this.raw=e;this.major=+n[1];this.minor=+n[2];this.patch=+n[3];if(!n[4])this.prerelease=[];else this.prerelease=n[4].split(".").map(function(e){return/^[0-9]+$/.test(e)?+e:e});this.build=n[5]?n[5].split("."):[];this.format()}H.prototype.format=function(){this.version=this.major+"."+this.minor+"."+this.patch;if(this.prerelease.length)this.version+="-"+this.prerelease.join(".");return this.version};H.prototype.inspect=function(){return'<SemVer "'+this+'">'};H.prototype.toString=function(){return this.version};H.prototype.compare=function(e){if(!(e instanceof H))e=new H(e,this.loose);return this.compareMain(e)||this.comparePre(e)};H.prototype.compareMain=function(e){if(!(e instanceof H))e=new H(e,this.loose);return Q(this.major,e.major)||Q(this.minor,e.minor)||Q(this.patch,e.patch)};H.prototype.comparePre=function(e){if(!(e instanceof H))e=new H(e,this.loose);if(this.prerelease.length&&!e.prerelease.length)return-1;else if(!this.prerelease.length&&e.prerelease.length)return 1;else if(!this.prerelease.length&&!e.prerelease.length)return 0;var r=0;do{var t=this.prerelease[r];var n=e.prerelease[r];if(t===undefined&&n===undefined)return 0;else if(n===undefined)return 1;else if(t===undefined)return-1;else if(t===n)continue;else return Q(t,n)}while(++r)};H.prototype.inc=function(e){switch(e){case"premajor":this.inc("major");this.inc("pre");break;case"preminor":this.inc("minor");this.inc("pre");break;case"prepatch":this.prerelease.length=0;this.inc("patch");this.inc("pre");break;case"prerelease":if(this.prerelease.length===0)this.inc("patch");this.inc("pre");break;case"major":this.major++;this.minor=-1;case"minor":this.minor++;this.patch=0;this.prerelease=[];break;case"patch":if(this.prerelease.length===0)this.patch++;this.prerelease=[];break;case"pre":if(this.prerelease.length===0)this.prerelease=[0];else{var r=this.prerelease.length;while(--r>=0){if(typeof this.prerelease[r]==="number"){this.prerelease[r]++;r=-2}}if(r===-1)this.prerelease.push(0)}break;default:throw new Error("invalid increment argument: "+e)}this.format();return this};e.inc=J;function J(e,r,t){try{return new H(e,t).inc(r).version}catch(n){return null}}e.compareIdentifiers=Q;var K=/^[0-9]+$/;function Q(e,r){var t=K.test(e);var n=K.test(r);if(t&&n){e=+e;r=+r}return t&&!n?-1:n&&!t?1:e<r?-1:e>r?1:0}e.rcompareIdentifiers=U;function U(e,r){return Q(r,e)}e.compare=W;function W(e,r,t){return new H(e,t).compare(r)}e.compareLoose=Y;function Y(e,r){return W(e,r,true)}e.rcompare=er;function er(e,r,t){return W(r,e,t)}e.sort=rr;function rr(r,t){return r.sort(function(r,n){return e.compare(r,n,t)})}e.rsort=tr;function tr(r,t){return r.sort(function(r,n){return e.rcompare(r,n,t)})}e.gt=nr;function nr(e,r,t){return W(e,r,t)>0}e.lt=ir;function ir(e,r,t){return W(e,r,t)<0}e.eq=sr;function sr(e,r,t){return W(e,r,t)===0}e.neq=ar;function ar(e,r,t){return W(e,r,t)!==0}e.gte=or;function or(e,r,t){return W(e,r,t)>=0}e.lte=fr;function fr(e,r,t){return W(e,r,t)<=0}e.cmp=ur;function ur(e,r,t,n){var i;switch(r){case"===":i=e===t;break;case"!==":i=e!==t;break;case"":case"=":case"==":i=sr(e,t,n);break;case"!=":i=ar(e,t,n);break;case">":i=nr(e,t,n);break;case">=":i=or(e,t,n);break;case"<":i=ir(e,t,n);break;case"<=":i=fr(e,t,n);break;default:throw new TypeError("Invalid operator: "+r)}return i}e.Comparator=cr;function cr(e,r){if(e instanceof cr){if(e.loose===r)return e;else e=e.value}if(!(this instanceof cr))return new cr(e,r);this.loose=r;this.parse(e);if(this.semver===lr)this.value="";else this.value=this.operator+this.semver.version}var lr={};cr.prototype.parse=function(e){var t=this.loose?r[Z]:r[q];var n=e.match(t);if(!n)throw new TypeError("Invalid comparator: "+e);this.operator=n[1];if(this.operator==="=")this.operator="";if(!n[2])this.semver=lr;else{this.semver=new H(n[2],this.loose);if(this.operator==="<"&&!this.semver.prerelease.length){this.semver.prerelease=["0"];this.semver.format()}}};cr.prototype.inspect=function(){return'<SemVer Comparator "'+this+'">'};cr.prototype.toString=function(){return this.value};cr.prototype.test=function(e){return this.semver===lr?true:ur(e,this.operator,this.semver,this.loose)};e.Range=pr;function pr(e,r){if(e instanceof pr&&e.loose===r)return e;if(!(this instanceof pr))return new pr(e,r);this.loose=r;this.raw=e;this.set=e.split(/\s*\|\|\s*/).map(function(e){return this.parseRange(e.trim())},this).filter(function(e){return e.length});if(!this.set.length){throw new TypeError("Invalid SemVer Range: "+e)}this.format()}pr.prototype.inspect=function(){return'<SemVer Range "'+this.range+'">'};pr.prototype.format=function(){this.range=this.set.map(function(e){return e.join(" ").trim()}).join("||").trim();return this.range};pr.prototype.toString=function(){return this.range};pr.prototype.parseRange=function(e){var t=this.loose;e=e.trim();var n=t?r[N]:r[_];e=e.replace(n,kr);e=e.replace(r[L],X);e=e.replace(r[S],V);e=e.replace(r[C],M);e=e.split(/\s+/).join(" ");var i=t?r[Z]:r[q];var s=e.split(" ").map(function(e){return vr(e,t)}).join(" ").split(/\s+/);if(this.loose){s=s.filter(function(e){return!!e.match(i)})}s=s.map(function(e){return new cr(e,t)});return s};e.toComparators=hr;function hr(e,r){return new pr(e,r).set.map(function(e){return e.map(function(e){return e.value}).join(" ").trim().split(" ")})}function vr(e,r){e=dr(e,r);e=gr(e,r);e=br(e,r);e=jr(e,r);return e}function mr(e){return!e||e.toLowerCase()==="x"||e==="*"}function gr(e,r){return e.trim().split(/\s+/).map(function(e){return wr(e,r)}).join(" ")}function wr(e,t){var n=t?r[T]:r[I];return e.replace(n,function(e,r,t,n,i){var s;if(mr(r))s="";else if(mr(t))s=">="+r+".0.0-0 <"+(+r+1)+".0.0-0";else if(mr(n))s=">="+r+"."+t+".0-0 <"+r+"."+(+t+1)+".0-0";else if(i){if(i.charAt(0)!=="-")i="-"+i;s=">="+r+"."+t+"."+n+i+" <"+r+"."+(+t+1)+".0-0"}else s=">="+r+"."+t+"."+n+"-0"+" <"+r+"."+(+t+1)+".0-0";return s})}function dr(e,r){return e.trim().split(/\s+/).map(function(e){return yr(e,r)}).join(" ")}function yr(e,t){var n=t?r[P]:r[z];return e.replace(n,function(e,r,t,n,i){var s;if(i){if(i.charAt(0)!=="-")i="-"+i}else i="";if(mr(r))s="";else if(mr(t))s=">="+r+".0.0-0 <"+(+r+1)+".0.0-0";else if(mr(n)){if(r==="0")s=">="+r+"."+t+".0-0 <"+r+"."+(+t+1)+".0-0";else s=">="+r+"."+t+".0-0 <"+(+r+1)+".0.0-0"}else if(r==="0")s="="+r+"."+t+"."+n+i;else if(i)s=">="+r+"."+t+"."+n+i+" <"+(+r+1)+".0.0-0";else s=">="+r+"."+t+"."+n+"-0"+" <"+(+r+1)+".0.0-0";return s})}function br(e,r){return e.split(/\s+/).map(function(e){return $r(e,r)}).join(" ")}function $r(e,t){e=e.trim();var n=t?r[x]:r[E];return e.replace(n,function(e,r,t,n,i,s){var a=mr(t);var o=a||mr(n);var f=o||mr(i);var u=f;if(r==="="&&u)r="";if(r&&u){if(a)t=0;if(o)n=0;if(f)i=0;if(r===">"){r=">=";if(a){}else if(o){t=+t+1;n=0;i=0}else if(f){n=+n+1;i=0}}e=r+t+"."+n+"."+i+"-0"}else if(a){e="*"}else if(o){e=">="+t+".0.0-0 <"+(+t+1)+".0.0-0"}else if(f){e=">="+t+"."+n+".0-0 <"+t+"."+(+n+1)+".0-0"}return e})}function jr(e,t){return e.trim().replace(r[O],"")}function kr(e,r,t,n,i,s,a,o,f,u,c,l,p){if(mr(t))r="";else if(mr(n))r=">="+t+".0.0-0";else if(mr(i))r=">="+t+"."+n+".0-0";else r=">="+r;if(mr(f))o="";else if(mr(u))o="<"+(+f+1)+".0.0-0";else if(mr(c))o="<"+f+"."+(+u+1)+".0-0";else if(l)o="<="+f+"."+u+"."+c+"-"+l;else o="<="+o;return(r+" "+o).trim()}pr.prototype.test=function(e){if(!e)return false;for(var r=0;r<this.set.length;r++){if(Er(this.set[r],e))return true}return false};function Er(e,r){for(var t=0;t<e.length;t++){if(!e[t].test(r))return false}return true}e.satisfies=xr;function xr(e,r,t){try{r=new pr(r,t)}catch(n){return false}return r.test(e)}e.maxSatisfying=Rr;function Rr(e,r,t){return e.filter(function(e){return xr(e,r,t)}).sort(function(e,r){return er(e,r,t)})[0]||null}e.validRange=Sr;function Sr(e,r){try{return new pr(e,r).range||"*"}catch(t){return null}}e.ltr=Vr;function Vr(e,r,t){return Tr(e,r,"<",t)}e.gtr=Ir;function Ir(e,r,t){return Tr(e,r,">",t)}e.outside=Tr;function Tr(e,r,t,n){e=new H(e,n);r=new pr(r,n);var i,s,a,o,f;switch(t){case">":i=nr;s=fr;a=ir;o=">";f=">=";break;case"<":i=ir;s=or;a=nr;o="<";f="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(xr(e,r,n)){return false}for(var u=0;u<r.set.length;++u){var c=r.set[u];var l=null;var p=null;c.forEach(function(e){l=l||e;p=p||e;if(i(e.semver,l.semver,n)){l=e}else if(a(e.semver,p.semver,n)){p=e}});if(l.operator===o||l.operator===f){return false}if((!p.operator||p.operator===o)&&s(e,p.semver)){return false}else if(p.operator===f&&a(e,p.semver)){return false}}return true}if(typeof define==="function"&&define.amd)define(e)})(typeof exports==="object"?exports:typeof define==="function"&&define.amd?{}:semver={});
1
+ (function(e){if(typeof module==="object"&&module.exports===e)e=module.exports=H;e.SEMVER_SPEC_VERSION="2.0.0";var r=e.re=[];var t=e.src=[];var n=0;var i=n++;t[i]="0|[1-9]\\d*";var s=n++;t[s]="[0-9]+";var a=n++;t[a]="\\d*[a-zA-Z-][a-zA-Z0-9-]*";var o=n++;t[o]="("+t[i]+")\\."+"("+t[i]+")\\."+"("+t[i]+")";var f=n++;t[f]="("+t[s]+")\\."+"("+t[s]+")\\."+"("+t[s]+")";var u=n++;t[u]="(?:"+t[i]+"|"+t[a]+")";var l=n++;t[l]="(?:"+t[s]+"|"+t[a]+")";var p=n++;t[p]="(?:-("+t[u]+"(?:\\."+t[u]+")*))";var c=n++;t[c]="(?:-?("+t[l]+"(?:\\."+t[l]+")*))";var h=n++;t[h]="[0-9A-Za-z-]+";var v=n++;t[v]="(?:\\+("+t[h]+"(?:\\."+t[h]+")*))";var m=n++;var g="v?"+t[o]+t[p]+"?"+t[v]+"?";t[m]="^"+g+"$";var w="[v=\\s]*"+t[f]+t[c]+"?"+t[v]+"?";var d=n++;t[d]="^"+w+"$";var y=n++;t[y]="((?:<|>)?=?)";var b=n++;t[b]=t[s]+"|x|X|\\*";var j=n++;t[j]=t[i]+"|x|X|\\*";var $=n++;t[$]="[v=\\s]*("+t[j]+")"+"(?:\\.("+t[j]+")"+"(?:\\.("+t[j]+")"+"(?:"+t[p]+")?"+t[v]+"?"+")?)?";var k=n++;t[k]="[v=\\s]*("+t[b]+")"+"(?:\\.("+t[b]+")"+"(?:\\.("+t[b]+")"+"(?:"+t[c]+")?"+t[v]+"?"+")?)?";var E=n++;t[E]="^"+t[y]+"\\s*"+t[$]+"$";var x=n++;t[x]="^"+t[y]+"\\s*"+t[k]+"$";var R=n++;t[R]="(?:~>?)";var S=n++;t[S]="(\\s*)"+t[R]+"\\s+";r[S]=new RegExp(t[S],"g");var V="$1~";var I=n++;t[I]="^"+t[R]+t[$]+"$";var T=n++;t[T]="^"+t[R]+t[k]+"$";var A=n++;t[A]="(?:\\^)";var C=n++;t[C]="(\\s*)"+t[A]+"\\s+";r[C]=new RegExp(t[C],"g");var M="$1^";var z=n++;t[z]="^"+t[A]+t[$]+"$";var N=n++;t[N]="^"+t[A]+t[k]+"$";var P=n++;t[P]="^"+t[y]+"\\s*("+w+")$|^$";var Z=n++;t[Z]="^"+t[y]+"\\s*("+g+")$|^$";var q=n++;t[q]="(\\s*)"+t[y]+"\\s*("+w+"|"+t[$]+")";r[q]=new RegExp(t[q],"g");var L="$1$2$3";var X=n++;t[X]="^\\s*("+t[$]+")"+"\\s+-\\s+"+"("+t[$]+")"+"\\s*$";var _=n++;t[_]="^\\s*("+t[k]+")"+"\\s+-\\s+"+"("+t[k]+")"+"\\s*$";var O=n++;t[O]="(<|>)?=?\\s*\\*";for(var B=0;B<n;B++){if(!r[B])r[B]=new RegExp(t[B])}e.parse=D;function D(e,t){var n=t?r[d]:r[m];return n.test(e)?new H(e,t):null}e.valid=F;function F(e,r){var t=D(e,r);return t?t.version:null}e.clean=G;function G(e,r){var t=D(e.trim().replace(/^[=v]+/,""),r);return t?t.version:null}e.SemVer=H;function H(e,t){if(e instanceof H){if(e.loose===t)return e;else e=e.version}else if(typeof e!=="string"){throw new TypeError("Invalid Version: "+e)}if(!(this instanceof H))return new H(e,t);this.loose=t;var n=e.trim().match(t?r[d]:r[m]);if(!n)throw new TypeError("Invalid Version: "+e);this.raw=e;this.major=+n[1];this.minor=+n[2];this.patch=+n[3];if(!n[4])this.prerelease=[];else this.prerelease=n[4].split(".").map(function(e){return/^[0-9]+$/.test(e)?+e:e});this.build=n[5]?n[5].split("."):[];this.format()}H.prototype.format=function(){this.version=this.major+"."+this.minor+"."+this.patch;if(this.prerelease.length)this.version+="-"+this.prerelease.join(".");return this.version};H.prototype.inspect=function(){return'<SemVer "'+this+'">'};H.prototype.toString=function(){return this.version};H.prototype.compare=function(e){if(!(e instanceof H))e=new H(e,this.loose);return this.compareMain(e)||this.comparePre(e)};H.prototype.compareMain=function(e){if(!(e instanceof H))e=new H(e,this.loose);return Q(this.major,e.major)||Q(this.minor,e.minor)||Q(this.patch,e.patch)};H.prototype.comparePre=function(e){if(!(e instanceof H))e=new H(e,this.loose);if(this.prerelease.length&&!e.prerelease.length)return-1;else if(!this.prerelease.length&&e.prerelease.length)return 1;else if(!this.prerelease.length&&!e.prerelease.length)return 0;var r=0;do{var t=this.prerelease[r];var n=e.prerelease[r];if(t===undefined&&n===undefined)return 0;else if(n===undefined)return 1;else if(t===undefined)return-1;else if(t===n)continue;else return Q(t,n)}while(++r)};H.prototype.inc=function(e,r){switch(e){case"premajor":this.prerelease.length=0;this.patch=0;this.minor=0;this.major++;this.inc("pre",r);break;case"preminor":this.prerelease.length=0;this.patch=0;this.minor++;this.inc("pre",r);break;case"prepatch":this.prerelease.length=0;this.inc("patch",r);this.inc("pre",r);break;case"prerelease":if(this.prerelease.length===0)this.inc("patch",r);this.inc("pre",r);break;case"major":if(this.minor!==0||this.patch!==0||this.prerelease.length===0)this.major++;this.minor=0;this.patch=0;this.prerelease=[];break;case"minor":if(this.patch!==0||this.prerelease.length===0)this.minor++;this.patch=0;this.prerelease=[];break;case"patch":if(this.prerelease.length===0)this.patch++;this.prerelease=[];break;case"pre":if(this.prerelease.length===0)this.prerelease=[0];else{var t=this.prerelease.length;while(--t>=0){if(typeof this.prerelease[t]==="number"){this.prerelease[t]++;t=-2}}if(t===-1)this.prerelease.push(0)}if(r){if(this.prerelease[0]===r){if(isNaN(this.prerelease[1]))this.prerelease=[r,0]}else this.prerelease=[r,0]}break;default:throw new Error("invalid increment argument: "+e)}this.format();return this};e.inc=J;function J(e,r,t,n){if(typeof t==="string"){n=t;t=undefined}try{return new H(e,t).inc(r,n).version}catch(i){return null}}e.compareIdentifiers=Q;var K=/^[0-9]+$/;function Q(e,r){var t=K.test(e);var n=K.test(r);if(t&&n){e=+e;r=+r}return t&&!n?-1:n&&!t?1:e<r?-1:e>r?1:0}e.rcompareIdentifiers=U;function U(e,r){return Q(r,e)}e.compare=W;function W(e,r,t){return new H(e,t).compare(r)}e.compareLoose=Y;function Y(e,r){return W(e,r,true)}e.rcompare=er;function er(e,r,t){return W(r,e,t)}e.sort=rr;function rr(r,t){return r.sort(function(r,n){return e.compare(r,n,t)})}e.rsort=tr;function tr(r,t){return r.sort(function(r,n){return e.rcompare(r,n,t)})}e.gt=nr;function nr(e,r,t){return W(e,r,t)>0}e.lt=ir;function ir(e,r,t){return W(e,r,t)<0}e.eq=sr;function sr(e,r,t){return W(e,r,t)===0}e.neq=ar;function ar(e,r,t){return W(e,r,t)!==0}e.gte=or;function or(e,r,t){return W(e,r,t)>=0}e.lte=fr;function fr(e,r,t){return W(e,r,t)<=0}e.cmp=ur;function ur(e,r,t,n){var i;switch(r){case"===":if(typeof e==="object")e=e.version;if(typeof t==="object")t=t.version;i=e===t;break;case"!==":if(typeof e==="object")e=e.version;if(typeof t==="object")t=t.version;i=e!==t;break;case"":case"=":case"==":i=sr(e,t,n);break;case"!=":i=ar(e,t,n);break;case">":i=nr(e,t,n);break;case">=":i=or(e,t,n);break;case"<":i=ir(e,t,n);break;case"<=":i=fr(e,t,n);break;default:throw new TypeError("Invalid operator: "+r)}return i}e.Comparator=lr;function lr(e,r){if(e instanceof lr){if(e.loose===r)return e;else e=e.value}if(!(this instanceof lr))return new lr(e,r);this.loose=r;this.parse(e);if(this.semver===pr)this.value="";else this.value=this.operator+this.semver.version}var pr={};lr.prototype.parse=function(e){var t=this.loose?r[P]:r[Z];var n=e.match(t);if(!n)throw new TypeError("Invalid comparator: "+e);this.operator=n[1];if(this.operator==="=")this.operator="";if(!n[2])this.semver=pr;else this.semver=new H(n[2],this.loose)};lr.prototype.inspect=function(){return'<SemVer Comparator "'+this+'">'};lr.prototype.toString=function(){return this.value};lr.prototype.test=function(e){if(this.semver===pr)return true;if(typeof e==="string")e=new H(e,this.loose);return ur(e,this.operator,this.semver,this.loose)};e.Range=cr;function cr(e,r){if(e instanceof cr&&e.loose===r)return e;if(!(this instanceof cr))return new cr(e,r);this.loose=r;this.raw=e;this.set=e.split(/\s*\|\|\s*/).map(function(e){return this.parseRange(e.trim())},this).filter(function(e){return e.length});if(!this.set.length){throw new TypeError("Invalid SemVer Range: "+e)}this.format()}cr.prototype.inspect=function(){return'<SemVer Range "'+this.range+'">'};cr.prototype.format=function(){this.range=this.set.map(function(e){return e.join(" ").trim()}).join("||").trim();return this.range};cr.prototype.toString=function(){return this.range};cr.prototype.parseRange=function(e){var t=this.loose;e=e.trim();var n=t?r[_]:r[X];e=e.replace(n,kr);e=e.replace(r[q],L);e=e.replace(r[S],V);e=e.replace(r[C],M);e=e.split(/\s+/).join(" ");var i=t?r[P]:r[Z];var s=e.split(" ").map(function(e){return vr(e,t)}).join(" ").split(/\s+/);if(this.loose){s=s.filter(function(e){return!!e.match(i)})}s=s.map(function(e){return new lr(e,t)});return s};e.toComparators=hr;function hr(e,r){return new cr(e,r).set.map(function(e){return e.map(function(e){return e.value}).join(" ").trim().split(" ")})}function vr(e,r){e=dr(e,r);e=gr(e,r);e=br(e,r);e=$r(e,r);return e}function mr(e){return!e||e.toLowerCase()==="x"||e==="*"}function gr(e,r){return e.trim().split(/\s+/).map(function(e){return wr(e,r)}).join(" ")}function wr(e,t){var n=t?r[T]:r[I];return e.replace(n,function(e,r,t,n,i){var s;if(mr(r))s="";else if(mr(t))s=">="+r+".0.0 <"+(+r+1)+".0.0";else if(mr(n))s=">="+r+"."+t+".0 <"+r+"."+(+t+1)+".0";else if(i){if(i.charAt(0)!=="-")i="-"+i;s=">="+r+"."+t+"."+n+i+" <"+r+"."+(+t+1)+".0"}else s=">="+r+"."+t+"."+n+" <"+r+"."+(+t+1)+".0";return s})}function dr(e,r){return e.trim().split(/\s+/).map(function(e){return yr(e,r)}).join(" ")}function yr(e,t){var n=t?r[N]:r[z];return e.replace(n,function(e,r,t,n,i){var s;if(mr(r))s="";else if(mr(t))s=">="+r+".0.0 <"+(+r+1)+".0.0";else if(mr(n)){if(r==="0")s=">="+r+"."+t+".0 <"+r+"."+(+t+1)+".0";else s=">="+r+"."+t+".0 <"+(+r+1)+".0.0"}else if(i){if(i.charAt(0)!=="-")i="-"+i;if(r==="0"){if(t==="0")s=">="+r+"."+t+"."+n+i+" <"+r+"."+t+"."+(+n+1);else s=">="+r+"."+t+"."+n+i+" <"+r+"."+(+t+1)+".0"}else s=">="+r+"."+t+"."+n+i+" <"+(+r+1)+".0.0"}else{if(r==="0"){if(t==="0")s=">="+r+"."+t+"."+n+" <"+r+"."+t+"."+(+n+1);else s=">="+r+"."+t+"."+n+" <"+r+"."+(+t+1)+".0"}else s=">="+r+"."+t+"."+n+" <"+(+r+1)+".0.0"}return s})}function br(e,r){return e.split(/\s+/).map(function(e){return jr(e,r)}).join(" ")}function jr(e,t){e=e.trim();var n=t?r[x]:r[E];return e.replace(n,function(e,r,t,n,i,s){var a=mr(t);var o=a||mr(n);var f=o||mr(i);var u=f;if(r==="="&&u)r="";if(a){if(r===">"||r==="<"){e="<0.0.0"}else{e="*"}}else if(r&&u){if(o)n=0;if(f)i=0;if(r===">"){r=">=";if(o){t=+t+1;n=0;i=0}else if(f){n=+n+1;i=0}}else if(r==="<="){r="<";if(o)t=+t+1;else n=+n+1}e=r+t+"."+n+"."+i}else if(o){e=">="+t+".0.0 <"+(+t+1)+".0.0"}else if(f){e=">="+t+"."+n+".0 <"+t+"."+(+n+1)+".0"}return e})}function $r(e,t){return e.trim().replace(r[O],"")}function kr(e,r,t,n,i,s,a,o,f,u,l,p,c){if(mr(t))r="";else if(mr(n))r=">="+t+".0.0";else if(mr(i))r=">="+t+"."+n+".0";else r=">="+r;if(mr(f))o="";else if(mr(u))o="<"+(+f+1)+".0.0";else if(mr(l))o="<"+f+"."+(+u+1)+".0";else if(p)o="<="+f+"."+u+"."+l+"-"+p;else o="<="+o;return(r+" "+o).trim()}cr.prototype.test=function(e){if(!e)return false;if(typeof e==="string")e=new H(e,this.loose);for(var r=0;r<this.set.length;r++){if(Er(this.set[r],e))return true}return false};function Er(e,r){for(var t=0;t<e.length;t++){if(!e[t].test(r))return false}if(r.prerelease.length){for(var t=0;t<e.length;t++){if(e[t].semver===pr)return true;if(e[t].semver.prerelease.length>0){var n=e[t].semver;if(n.major===r.major&&n.minor===r.minor&&n.patch===r.patch)return true}}return false}return true}e.satisfies=xr;function xr(e,r,t){try{r=new cr(r,t)}catch(n){return false}return r.test(e)}e.maxSatisfying=Rr;function Rr(e,r,t){return e.filter(function(e){return xr(e,r,t)}).sort(function(e,r){return er(e,r,t)})[0]||null}e.validRange=Sr;function Sr(e,r){try{return new cr(e,r).range||"*"}catch(t){return null}}e.ltr=Vr;function Vr(e,r,t){return Tr(e,r,"<",t)}e.gtr=Ir;function Ir(e,r,t){return Tr(e,r,">",t)}e.outside=Tr;function Tr(e,r,t,n){e=new H(e,n);r=new cr(r,n);var i,s,a,o,f;switch(t){case">":i=nr;s=fr;a=ir;o=">";f=">=";break;case"<":i=ir;s=or;a=nr;o="<";f="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(xr(e,r,n)){return false}for(var u=0;u<r.set.length;++u){var l=r.set[u];var p=null;var c=null;l.forEach(function(e){p=p||e;c=c||e;if(i(e.semver,p.semver,n)){p=e}else if(a(e.semver,c.semver,n)){c=e}});if(p.operator===o||p.operator===f){return false}if((!c.operator||c.operator===o)&&s(e,c.semver)){return false}else if(c.operator===f&&a(e,c.semver)){return false}}return true}if(typeof define==="function"&&define.amd)define(e)})(typeof exports==="object"?exports:typeof define==="function"&&define.amd?{}:semver={});
package/semver.min.js.gz CHANGED
Binary file
package/test/clean.js CHANGED
@@ -14,7 +14,11 @@ test('\nclean tests', function(t) {
14
14
  [' =v1.2.3 ', '1.2.3'],
15
15
  ['v1.2.3', '1.2.3'],
16
16
  [' v1.2.3 ', '1.2.3'],
17
- ['\t1.2.3', '1.2.3']
17
+ ['\t1.2.3', '1.2.3'],
18
+ ['>1.2.3', null],
19
+ ['~1.2.3', null],
20
+ ['<=1.2.3', null],
21
+ ['1.2.x', null]
18
22
  ].forEach(function(tuple) {
19
23
  var range = tuple[0];
20
24
  var version = tuple[1];
package/test/gtr.js CHANGED
@@ -39,7 +39,7 @@ test('\ngtr tests', function(t) {
39
39
  ['~v0.5.4-pre', '0.6.1-pre'],
40
40
  ['=0.7.x', '0.8.0'],
41
41
  ['=0.7.x', '0.8.0-asdf'],
42
- ['<=0.7.x', '0.7.0'],
42
+ ['<0.7.x', '0.7.0'],
43
43
  ['~1.2.2', '1.3.0'],
44
44
  ['1.0.0 - 2.0.0', '2.2.3'],
45
45
  ['1.0.0', '1.0.1'],
@@ -66,7 +66,7 @@ test('\ngtr tests', function(t) {
66
66
  ['<1', '1.0.0beta', true],
67
67
  ['< 1', '1.0.0beta', true],
68
68
  ['=0.7.x', '0.8.2'],
69
- ['<=0.7.x', '0.7.2']
69
+ ['<0.7.x', '0.7.2']
70
70
  ].forEach(function(tuple) {
71
71
  var range = tuple[0];
72
72
  var version = tuple[1];