UNPKG

61.6 kBJavaScriptView Raw
1'use strict';
2
3function _typeof(obj) {
4 "@babel/helpers - typeof";
5
6 if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
7 _typeof = function (obj) {
8 return typeof obj;
9 };
10 } else {
11 _typeof = function (obj) {
12 return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
13 };
14 }
15
16 return _typeof(obj);
17}
18
19function _classCallCheck(instance, Constructor) {
20 if (!(instance instanceof Constructor)) {
21 throw new TypeError("Cannot call a class as a function");
22 }
23}
24
25function _defineProperties(target, props) {
26 for (var i = 0; i < props.length; i++) {
27 var descriptor = props[i];
28 descriptor.enumerable = descriptor.enumerable || false;
29 descriptor.configurable = true;
30 if ("value" in descriptor) descriptor.writable = true;
31 Object.defineProperty(target, descriptor.key, descriptor);
32 }
33}
34
35function _createClass(Constructor, protoProps, staticProps) {
36 if (protoProps) _defineProperties(Constructor.prototype, protoProps);
37 if (staticProps) _defineProperties(Constructor, staticProps);
38 return Constructor;
39}
40
41function _slicedToArray(arr, i) {
42 return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
43}
44
45function _arrayWithHoles(arr) {
46 if (Array.isArray(arr)) return arr;
47}
48
49function _iterableToArrayLimit(arr, i) {
50 if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return;
51 var _arr = [];
52 var _n = true;
53 var _d = false;
54 var _e = undefined;
55
56 try {
57 for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
58 _arr.push(_s.value);
59
60 if (i && _arr.length === i) break;
61 }
62 } catch (err) {
63 _d = true;
64 _e = err;
65 } finally {
66 try {
67 if (!_n && _i["return"] != null) _i["return"]();
68 } finally {
69 if (_d) throw _e;
70 }
71 }
72
73 return _arr;
74}
75
76function _unsupportedIterableToArray(o, minLen) {
77 if (!o) return;
78 if (typeof o === "string") return _arrayLikeToArray(o, minLen);
79 var n = Object.prototype.toString.call(o).slice(8, -1);
80 if (n === "Object" && o.constructor) n = o.constructor.name;
81 if (n === "Map" || n === "Set") return Array.from(o);
82 if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
83}
84
85function _arrayLikeToArray(arr, len) {
86 if (len == null || len > arr.length) len = arr.length;
87
88 for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
89
90 return arr2;
91}
92
93function _nonIterableRest() {
94 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
95}
96
97function _createForOfIteratorHelper(o, allowArrayLike) {
98 var it;
99
100 if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) {
101 if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
102 if (it) o = it;
103 var i = 0;
104
105 var F = function () {};
106
107 return {
108 s: F,
109 n: function () {
110 if (i >= o.length) return {
111 done: true
112 };
113 return {
114 done: false,
115 value: o[i++]
116 };
117 },
118 e: function (e) {
119 throw e;
120 },
121 f: F
122 };
123 }
124
125 throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
126 }
127
128 var normalCompletion = true,
129 didErr = false,
130 err;
131 return {
132 s: function () {
133 it = o[Symbol.iterator]();
134 },
135 n: function () {
136 var step = it.next();
137 normalCompletion = step.done;
138 return step;
139 },
140 e: function (e) {
141 didErr = true;
142 err = e;
143 },
144 f: function () {
145 try {
146 if (!normalCompletion && it.return != null) it.return();
147 } finally {
148 if (didErr) throw err;
149 }
150 }
151 };
152}
153
154function createCommonjsModule(fn, basedir, module) {
155 return module = {
156 path: basedir,
157 exports: {},
158 require: function (path, base) {
159 return commonjsRequire(path, (base === undefined || base === null) ? module.path : base);
160 }
161 }, fn(module, module.exports), module.exports;
162}
163
164function commonjsRequire () {
165 throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');
166}
167
168// Note: this is the semver.org version of the spec that it implements
169// Not necessarily the package version of this code.
170var SEMVER_SPEC_VERSION = '2.0.0';
171var MAX_LENGTH = 256;
172var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||
173/* istanbul ignore next */
1749007199254740991; // Max safe segment length for coercion.
175
176var MAX_SAFE_COMPONENT_LENGTH = 16;
177var constants = {
178 SEMVER_SPEC_VERSION: SEMVER_SPEC_VERSION,
179 MAX_LENGTH: MAX_LENGTH,
180 MAX_SAFE_INTEGER: MAX_SAFE_INTEGER,
181 MAX_SAFE_COMPONENT_LENGTH: MAX_SAFE_COMPONENT_LENGTH
182};
183
184var debug = (typeof process === "undefined" ? "undefined" : _typeof(process)) === 'object' && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? function () {
185 var _console;
186
187 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
188 args[_key] = arguments[_key];
189 }
190
191 return (_console = console).error.apply(_console, ['SEMVER'].concat(args));
192} : function () {};
193var debug_1 = debug;
194
195var re_1 = createCommonjsModule(function (module, exports) {
196 var MAX_SAFE_COMPONENT_LENGTH = constants.MAX_SAFE_COMPONENT_LENGTH;
197 exports = module.exports = {}; // The actual regexps go on exports.re
198
199 var re = exports.re = [];
200 var src = exports.src = [];
201 var t = exports.t = {};
202 var R = 0;
203
204 var createToken = function createToken(name, value, isGlobal) {
205 var index = R++;
206 debug_1(index, value);
207 t[name] = index;
208 src[index] = value;
209 re[index] = new RegExp(value, isGlobal ? 'g' : undefined);
210 }; // The following Regular Expressions can be used for tokenizing,
211 // validating, and parsing SemVer version strings.
212 // ## Numeric Identifier
213 // A single `0`, or a non-zero digit followed by zero or more digits.
214
215
216 createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*');
217 createToken('NUMERICIDENTIFIERLOOSE', '[0-9]+'); // ## Non-numeric Identifier
218 // Zero or more digits, followed by a letter or hyphen, and then zero or
219 // more letters, digits, or hyphens.
220
221 createToken('NONNUMERICIDENTIFIER', '\\d*[a-zA-Z-][a-zA-Z0-9-]*'); // ## Main Version
222 // Three dot-separated numeric identifiers.
223
224 createToken('MAINVERSION', "(".concat(src[t.NUMERICIDENTIFIER], ")\\.") + "(".concat(src[t.NUMERICIDENTIFIER], ")\\.") + "(".concat(src[t.NUMERICIDENTIFIER], ")"));
225 createToken('MAINVERSIONLOOSE', "(".concat(src[t.NUMERICIDENTIFIERLOOSE], ")\\.") + "(".concat(src[t.NUMERICIDENTIFIERLOOSE], ")\\.") + "(".concat(src[t.NUMERICIDENTIFIERLOOSE], ")")); // ## Pre-release Version Identifier
226 // A numeric identifier, or a non-numeric identifier.
227
228 createToken('PRERELEASEIDENTIFIER', "(?:".concat(src[t.NUMERICIDENTIFIER], "|").concat(src[t.NONNUMERICIDENTIFIER], ")"));
229 createToken('PRERELEASEIDENTIFIERLOOSE', "(?:".concat(src[t.NUMERICIDENTIFIERLOOSE], "|").concat(src[t.NONNUMERICIDENTIFIER], ")")); // ## Pre-release Version
230 // Hyphen, followed by one or more dot-separated pre-release version
231 // identifiers.
232
233 createToken('PRERELEASE', "(?:-(".concat(src[t.PRERELEASEIDENTIFIER], "(?:\\.").concat(src[t.PRERELEASEIDENTIFIER], ")*))"));
234 createToken('PRERELEASELOOSE', "(?:-?(".concat(src[t.PRERELEASEIDENTIFIERLOOSE], "(?:\\.").concat(src[t.PRERELEASEIDENTIFIERLOOSE], ")*))")); // ## Build Metadata Identifier
235 // Any combination of digits, letters, or hyphens.
236
237 createToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+'); // ## Build Metadata
238 // Plus sign, followed by one or more period-separated build metadata
239 // identifiers.
240
241 createToken('BUILD', "(?:\\+(".concat(src[t.BUILDIDENTIFIER], "(?:\\.").concat(src[t.BUILDIDENTIFIER], ")*))")); // ## Full Version String
242 // A main version, followed optionally by a pre-release version and
243 // build metadata.
244 // Note that the only major, minor, patch, and pre-release sections of
245 // the version string are capturing groups. The build metadata is not a
246 // capturing group, because it should not ever be used in version
247 // comparison.
248
249 createToken('FULLPLAIN', "v?".concat(src[t.MAINVERSION]).concat(src[t.PRERELEASE], "?").concat(src[t.BUILD], "?"));
250 createToken('FULL', "^".concat(src[t.FULLPLAIN], "$")); // like full, but allows v1.2.3 and =1.2.3, which people do sometimes.
251 // also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty
252 // common in the npm registry.
253
254 createToken('LOOSEPLAIN', "[v=\\s]*".concat(src[t.MAINVERSIONLOOSE]).concat(src[t.PRERELEASELOOSE], "?").concat(src[t.BUILD], "?"));
255 createToken('LOOSE', "^".concat(src[t.LOOSEPLAIN], "$"));
256 createToken('GTLT', '((?:<|>)?=?)'); // Something like "2.*" or "1.2.x".
257 // Note that "x.x" is a valid xRange identifer, meaning "any version"
258 // Only the first item is strictly required.
259
260 createToken('XRANGEIDENTIFIERLOOSE', "".concat(src[t.NUMERICIDENTIFIERLOOSE], "|x|X|\\*"));
261 createToken('XRANGEIDENTIFIER', "".concat(src[t.NUMERICIDENTIFIER], "|x|X|\\*"));
262 createToken('XRANGEPLAIN', "[v=\\s]*(".concat(src[t.XRANGEIDENTIFIER], ")") + "(?:\\.(".concat(src[t.XRANGEIDENTIFIER], ")") + "(?:\\.(".concat(src[t.XRANGEIDENTIFIER], ")") + "(?:".concat(src[t.PRERELEASE], ")?").concat(src[t.BUILD], "?") + ")?)?");
263 createToken('XRANGEPLAINLOOSE', "[v=\\s]*(".concat(src[t.XRANGEIDENTIFIERLOOSE], ")") + "(?:\\.(".concat(src[t.XRANGEIDENTIFIERLOOSE], ")") + "(?:\\.(".concat(src[t.XRANGEIDENTIFIERLOOSE], ")") + "(?:".concat(src[t.PRERELEASELOOSE], ")?").concat(src[t.BUILD], "?") + ")?)?");
264 createToken('XRANGE', "^".concat(src[t.GTLT], "\\s*").concat(src[t.XRANGEPLAIN], "$"));
265 createToken('XRANGELOOSE', "^".concat(src[t.GTLT], "\\s*").concat(src[t.XRANGEPLAINLOOSE], "$")); // Coercion.
266 // Extract anything that could conceivably be a part of a valid semver
267
268 createToken('COERCE', "".concat('(^|[^\\d])' + '(\\d{1,').concat(MAX_SAFE_COMPONENT_LENGTH, "})") + "(?:\\.(\\d{1,".concat(MAX_SAFE_COMPONENT_LENGTH, "}))?") + "(?:\\.(\\d{1,".concat(MAX_SAFE_COMPONENT_LENGTH, "}))?") + "(?:$|[^\\d])");
269 createToken('COERCERTL', src[t.COERCE], true); // Tilde ranges.
270 // Meaning is "reasonably at or greater than"
271
272 createToken('LONETILDE', '(?:~>?)');
273 createToken('TILDETRIM', "(\\s*)".concat(src[t.LONETILDE], "\\s+"), true);
274 exports.tildeTrimReplace = '$1~';
275 createToken('TILDE', "^".concat(src[t.LONETILDE]).concat(src[t.XRANGEPLAIN], "$"));
276 createToken('TILDELOOSE', "^".concat(src[t.LONETILDE]).concat(src[t.XRANGEPLAINLOOSE], "$")); // Caret ranges.
277 // Meaning is "at least and backwards compatible with"
278
279 createToken('LONECARET', '(?:\\^)');
280 createToken('CARETTRIM', "(\\s*)".concat(src[t.LONECARET], "\\s+"), true);
281 exports.caretTrimReplace = '$1^';
282 createToken('CARET', "^".concat(src[t.LONECARET]).concat(src[t.XRANGEPLAIN], "$"));
283 createToken('CARETLOOSE', "^".concat(src[t.LONECARET]).concat(src[t.XRANGEPLAINLOOSE], "$")); // A simple gt/lt/eq thing, or just "" to indicate "any version"
284
285 createToken('COMPARATORLOOSE', "^".concat(src[t.GTLT], "\\s*(").concat(src[t.LOOSEPLAIN], ")$|^$"));
286 createToken('COMPARATOR', "^".concat(src[t.GTLT], "\\s*(").concat(src[t.FULLPLAIN], ")$|^$")); // An expression to strip any whitespace between the gtlt and the thing
287 // it modifies, so that `> 1.2.3` ==> `>1.2.3`
288
289 createToken('COMPARATORTRIM', "(\\s*)".concat(src[t.GTLT], "\\s*(").concat(src[t.LOOSEPLAIN], "|").concat(src[t.XRANGEPLAIN], ")"), true);
290 exports.comparatorTrimReplace = '$1$2$3'; // Something like `1.2.3 - 1.2.4`
291 // Note that these all use the loose form, because they'll be
292 // checked against either the strict or loose comparator form
293 // later.
294
295 createToken('HYPHENRANGE', "^\\s*(".concat(src[t.XRANGEPLAIN], ")") + "\\s+-\\s+" + "(".concat(src[t.XRANGEPLAIN], ")") + "\\s*$");
296 createToken('HYPHENRANGELOOSE', "^\\s*(".concat(src[t.XRANGEPLAINLOOSE], ")") + "\\s+-\\s+" + "(".concat(src[t.XRANGEPLAINLOOSE], ")") + "\\s*$"); // Star ranges basically just allow anything at all.
297
298 createToken('STAR', '(<|>)?=?\\s*\\*'); // >=0.0.0 is like a star
299
300 createToken('GTE0', '^\\s*>=\\s*0\.0\.0\\s*$');
301 createToken('GTE0PRE', '^\\s*>=\\s*0\.0\.0-0\\s*$');
302});
303
304var numeric = /^[0-9]+$/;
305
306var compareIdentifiers = function compareIdentifiers(a, b) {
307 var anum = numeric.test(a);
308 var bnum = numeric.test(b);
309
310 if (anum && bnum) {
311 a = +a;
312 b = +b;
313 }
314
315 return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1;
316};
317
318var rcompareIdentifiers = function rcompareIdentifiers(a, b) {
319 return compareIdentifiers(b, a);
320};
321
322var identifiers = {
323 compareIdentifiers: compareIdentifiers,
324 rcompareIdentifiers: rcompareIdentifiers
325};
326
327var MAX_LENGTH$1 = constants.MAX_LENGTH,
328 MAX_SAFE_INTEGER$1 = constants.MAX_SAFE_INTEGER;
329var re = re_1.re,
330 t = re_1.t;
331var compareIdentifiers$1 = identifiers.compareIdentifiers;
332
333var SemVer = /*#__PURE__*/function () {
334 function SemVer(version, options) {
335 _classCallCheck(this, SemVer);
336
337 if (!options || _typeof(options) !== 'object') {
338 options = {
339 loose: !!options,
340 includePrerelease: false
341 };
342 }
343
344 if (version instanceof SemVer) {
345 if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) {
346 return version;
347 } else {
348 version = version.version;
349 }
350 } else if (typeof version !== 'string') {
351 throw new TypeError("Invalid Version: ".concat(version));
352 }
353
354 if (version.length > MAX_LENGTH$1) {
355 throw new TypeError("version is longer than ".concat(MAX_LENGTH$1, " characters"));
356 }
357
358 debug_1('SemVer', version, options);
359 this.options = options;
360 this.loose = !!options.loose; // this isn't actually relevant for versions, but keep it so that we
361 // don't run into trouble passing this.options around.
362
363 this.includePrerelease = !!options.includePrerelease;
364 var m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]);
365
366 if (!m) {
367 throw new TypeError("Invalid Version: ".concat(version));
368 }
369
370 this.raw = version; // these are actually numbers
371
372 this.major = +m[1];
373 this.minor = +m[2];
374 this.patch = +m[3];
375
376 if (this.major > MAX_SAFE_INTEGER$1 || this.major < 0) {
377 throw new TypeError('Invalid major version');
378 }
379
380 if (this.minor > MAX_SAFE_INTEGER$1 || this.minor < 0) {
381 throw new TypeError('Invalid minor version');
382 }
383
384 if (this.patch > MAX_SAFE_INTEGER$1 || this.patch < 0) {
385 throw new TypeError('Invalid patch version');
386 } // numberify any prerelease numeric ids
387
388
389 if (!m[4]) {
390 this.prerelease = [];
391 } else {
392 this.prerelease = m[4].split('.').map(function (id) {
393 if (/^[0-9]+$/.test(id)) {
394 var num = +id;
395
396 if (num >= 0 && num < MAX_SAFE_INTEGER$1) {
397 return num;
398 }
399 }
400
401 return id;
402 });
403 }
404
405 this.build = m[5] ? m[5].split('.') : [];
406 this.format();
407 }
408
409 _createClass(SemVer, [{
410 key: "format",
411 value: function format() {
412 this.version = "".concat(this.major, ".").concat(this.minor, ".").concat(this.patch);
413
414 if (this.prerelease.length) {
415 this.version += "-".concat(this.prerelease.join('.'));
416 }
417
418 return this.version;
419 }
420 }, {
421 key: "toString",
422 value: function toString() {
423 return this.version;
424 }
425 }, {
426 key: "compare",
427 value: function compare(other) {
428 debug_1('SemVer.compare', this.version, this.options, other);
429
430 if (!(other instanceof SemVer)) {
431 if (typeof other === 'string' && other === this.version) {
432 return 0;
433 }
434
435 other = new SemVer(other, this.options);
436 }
437
438 if (other.version === this.version) {
439 return 0;
440 }
441
442 return this.compareMain(other) || this.comparePre(other);
443 }
444 }, {
445 key: "compareMain",
446 value: function compareMain(other) {
447 if (!(other instanceof SemVer)) {
448 other = new SemVer(other, this.options);
449 }
450
451 return compareIdentifiers$1(this.major, other.major) || compareIdentifiers$1(this.minor, other.minor) || compareIdentifiers$1(this.patch, other.patch);
452 }
453 }, {
454 key: "comparePre",
455 value: function comparePre(other) {
456 if (!(other instanceof SemVer)) {
457 other = new SemVer(other, this.options);
458 } // NOT having a prerelease is > having one
459
460
461 if (this.prerelease.length && !other.prerelease.length) {
462 return -1;
463 } else if (!this.prerelease.length && other.prerelease.length) {
464 return 1;
465 } else if (!this.prerelease.length && !other.prerelease.length) {
466 return 0;
467 }
468
469 var i = 0;
470
471 do {
472 var a = this.prerelease[i];
473 var b = other.prerelease[i];
474 debug_1('prerelease compare', i, a, b);
475
476 if (a === undefined && b === undefined) {
477 return 0;
478 } else if (b === undefined) {
479 return 1;
480 } else if (a === undefined) {
481 return -1;
482 } else if (a === b) {
483 continue;
484 } else {
485 return compareIdentifiers$1(a, b);
486 }
487 } while (++i);
488 }
489 }, {
490 key: "compareBuild",
491 value: function compareBuild(other) {
492 if (!(other instanceof SemVer)) {
493 other = new SemVer(other, this.options);
494 }
495
496 var i = 0;
497
498 do {
499 var a = this.build[i];
500 var b = other.build[i];
501 debug_1('prerelease compare', i, a, b);
502
503 if (a === undefined && b === undefined) {
504 return 0;
505 } else if (b === undefined) {
506 return 1;
507 } else if (a === undefined) {
508 return -1;
509 } else if (a === b) {
510 continue;
511 } else {
512 return compareIdentifiers$1(a, b);
513 }
514 } while (++i);
515 } // preminor will bump the version up to the next minor release, and immediately
516 // down to pre-release. premajor and prepatch work the same way.
517
518 }, {
519 key: "inc",
520 value: function inc(release, identifier) {
521 switch (release) {
522 case 'premajor':
523 this.prerelease.length = 0;
524 this.patch = 0;
525 this.minor = 0;
526 this.major++;
527 this.inc('pre', identifier);
528 break;
529
530 case 'preminor':
531 this.prerelease.length = 0;
532 this.patch = 0;
533 this.minor++;
534 this.inc('pre', identifier);
535 break;
536
537 case 'prepatch':
538 // If this is already a prerelease, it will bump to the next version
539 // drop any prereleases that might already exist, since they are not
540 // relevant at this point.
541 this.prerelease.length = 0;
542 this.inc('patch', identifier);
543 this.inc('pre', identifier);
544 break;
545 // If the input is a non-prerelease version, this acts the same as
546 // prepatch.
547
548 case 'prerelease':
549 if (this.prerelease.length === 0) {
550 this.inc('patch', identifier);
551 }
552
553 this.inc('pre', identifier);
554 break;
555
556 case 'major':
557 // If this is a pre-major version, bump up to the same major version.
558 // Otherwise increment major.
559 // 1.0.0-5 bumps to 1.0.0
560 // 1.1.0 bumps to 2.0.0
561 if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) {
562 this.major++;
563 }
564
565 this.minor = 0;
566 this.patch = 0;
567 this.prerelease = [];
568 break;
569
570 case 'minor':
571 // If this is a pre-minor version, bump up to the same minor version.
572 // Otherwise increment minor.
573 // 1.2.0-5 bumps to 1.2.0
574 // 1.2.1 bumps to 1.3.0
575 if (this.patch !== 0 || this.prerelease.length === 0) {
576 this.minor++;
577 }
578
579 this.patch = 0;
580 this.prerelease = [];
581 break;
582
583 case 'patch':
584 // If this is not a pre-release version, it will increment the patch.
585 // If it is a pre-release it will bump up to the same patch version.
586 // 1.2.0-5 patches to 1.2.0
587 // 1.2.0 patches to 1.2.1
588 if (this.prerelease.length === 0) {
589 this.patch++;
590 }
591
592 this.prerelease = [];
593 break;
594 // This probably shouldn't be used publicly.
595 // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.
596
597 case 'pre':
598 if (this.prerelease.length === 0) {
599 this.prerelease = [0];
600 } else {
601 var i = this.prerelease.length;
602
603 while (--i >= 0) {
604 if (typeof this.prerelease[i] === 'number') {
605 this.prerelease[i]++;
606 i = -2;
607 }
608 }
609
610 if (i === -1) {
611 // didn't increment anything
612 this.prerelease.push(0);
613 }
614 }
615
616 if (identifier) {
617 // 1.2.0-beta.1 bumps to 1.2.0-beta.2,
618 // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0
619 if (this.prerelease[0] === identifier) {
620 if (isNaN(this.prerelease[1])) {
621 this.prerelease = [identifier, 0];
622 }
623 } else {
624 this.prerelease = [identifier, 0];
625 }
626 }
627
628 break;
629
630 default:
631 throw new Error("invalid increment argument: ".concat(release));
632 }
633
634 this.format();
635 this.raw = this.version;
636 return this;
637 }
638 }]);
639
640 return SemVer;
641}();
642
643var semver = SemVer;
644
645var MAX_LENGTH$2 = constants.MAX_LENGTH;
646var re$1 = re_1.re,
647 t$1 = re_1.t;
648
649var parse = function parse(version, options) {
650 if (!options || _typeof(options) !== 'object') {
651 options = {
652 loose: !!options,
653 includePrerelease: false
654 };
655 }
656
657 if (version instanceof semver) {
658 return version;
659 }
660
661 if (typeof version !== 'string') {
662 return null;
663 }
664
665 if (version.length > MAX_LENGTH$2) {
666 return null;
667 }
668
669 var r = options.loose ? re$1[t$1.LOOSE] : re$1[t$1.FULL];
670
671 if (!r.test(version)) {
672 return null;
673 }
674
675 try {
676 return new semver(version, options);
677 } catch (er) {
678 return null;
679 }
680};
681
682var parse_1 = parse;
683
684var valid = function valid(version, options) {
685 var v = parse_1(version, options);
686 return v ? v.version : null;
687};
688
689var valid_1 = valid;
690
691var clean = function clean(version, options) {
692 var s = parse_1(version.trim().replace(/^[=v]+/, ''), options);
693 return s ? s.version : null;
694};
695
696var clean_1 = clean;
697
698var inc = function inc(version, release, options, identifier) {
699 if (typeof options === 'string') {
700 identifier = options;
701 options = undefined;
702 }
703
704 try {
705 return new semver(version, options).inc(release, identifier).version;
706 } catch (er) {
707 return null;
708 }
709};
710
711var inc_1 = inc;
712
713var compare = function compare(a, b, loose) {
714 return new semver(a, loose).compare(new semver(b, loose));
715};
716
717var compare_1 = compare;
718
719var eq = function eq(a, b, loose) {
720 return compare_1(a, b, loose) === 0;
721};
722
723var eq_1 = eq;
724
725var diff = function diff(version1, version2) {
726 if (eq_1(version1, version2)) {
727 return null;
728 } else {
729 var v1 = parse_1(version1);
730 var v2 = parse_1(version2);
731 var hasPre = v1.prerelease.length || v2.prerelease.length;
732 var prefix = hasPre ? 'pre' : '';
733 var defaultResult = hasPre ? 'prerelease' : '';
734
735 for (var key in v1) {
736 if (key === 'major' || key === 'minor' || key === 'patch') {
737 if (v1[key] !== v2[key]) {
738 return prefix + key;
739 }
740 }
741 }
742
743 return defaultResult; // may be undefined
744 }
745};
746
747var diff_1 = diff;
748
749var major = function major(a, loose) {
750 return new semver(a, loose).major;
751};
752
753var major_1 = major;
754
755var minor = function minor(a, loose) {
756 return new semver(a, loose).minor;
757};
758
759var minor_1 = minor;
760
761var patch = function patch(a, loose) {
762 return new semver(a, loose).patch;
763};
764
765var patch_1 = patch;
766
767var prerelease = function prerelease(version, options) {
768 var parsed = parse_1(version, options);
769 return parsed && parsed.prerelease.length ? parsed.prerelease : null;
770};
771
772var prerelease_1 = prerelease;
773
774var rcompare = function rcompare(a, b, loose) {
775 return compare_1(b, a, loose);
776};
777
778var rcompare_1 = rcompare;
779
780var compareLoose = function compareLoose(a, b) {
781 return compare_1(a, b, true);
782};
783
784var compareLoose_1 = compareLoose;
785
786var compareBuild = function compareBuild(a, b, loose) {
787 var versionA = new semver(a, loose);
788 var versionB = new semver(b, loose);
789 return versionA.compare(versionB) || versionA.compareBuild(versionB);
790};
791
792var compareBuild_1 = compareBuild;
793
794var sort = function sort(list, loose) {
795 return list.sort(function (a, b) {
796 return compareBuild_1(a, b, loose);
797 });
798};
799
800var sort_1 = sort;
801
802var rsort = function rsort(list, loose) {
803 return list.sort(function (a, b) {
804 return compareBuild_1(b, a, loose);
805 });
806};
807
808var rsort_1 = rsort;
809
810var gt = function gt(a, b, loose) {
811 return compare_1(a, b, loose) > 0;
812};
813
814var gt_1 = gt;
815
816var lt = function lt(a, b, loose) {
817 return compare_1(a, b, loose) < 0;
818};
819
820var lt_1 = lt;
821
822var neq = function neq(a, b, loose) {
823 return compare_1(a, b, loose) !== 0;
824};
825
826var neq_1 = neq;
827
828var gte = function gte(a, b, loose) {
829 return compare_1(a, b, loose) >= 0;
830};
831
832var gte_1 = gte;
833
834var lte = function lte(a, b, loose) {
835 return compare_1(a, b, loose) <= 0;
836};
837
838var lte_1 = lte;
839
840var cmp = function cmp(a, op, b, loose) {
841 switch (op) {
842 case '===':
843 if (_typeof(a) === 'object') a = a.version;
844 if (_typeof(b) === 'object') b = b.version;
845 return a === b;
846
847 case '!==':
848 if (_typeof(a) === 'object') a = a.version;
849 if (_typeof(b) === 'object') b = b.version;
850 return a !== b;
851
852 case '':
853 case '=':
854 case '==':
855 return eq_1(a, b, loose);
856
857 case '!=':
858 return neq_1(a, b, loose);
859
860 case '>':
861 return gt_1(a, b, loose);
862
863 case '>=':
864 return gte_1(a, b, loose);
865
866 case '<':
867 return lt_1(a, b, loose);
868
869 case '<=':
870 return lte_1(a, b, loose);
871
872 default:
873 throw new TypeError("Invalid operator: ".concat(op));
874 }
875};
876
877var cmp_1 = cmp;
878
879var re$2 = re_1.re,
880 t$2 = re_1.t;
881
882var coerce = function coerce(version, options) {
883 if (version instanceof semver) {
884 return version;
885 }
886
887 if (typeof version === 'number') {
888 version = String(version);
889 }
890
891 if (typeof version !== 'string') {
892 return null;
893 }
894
895 options = options || {};
896 var match = null;
897
898 if (!options.rtl) {
899 match = version.match(re$2[t$2.COERCE]);
900 } else {
901 // Find the right-most coercible string that does not share
902 // a terminus with a more left-ward coercible string.
903 // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'
904 //
905 // Walk through the string checking with a /g regexp
906 // Manually set the index so as to pick up overlapping matches.
907 // Stop when we get a match that ends at the string end, since no
908 // coercible string can be more right-ward without the same terminus.
909 var next;
910
911 while ((next = re$2[t$2.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length)) {
912 if (!match || next.index + next[0].length !== match.index + match[0].length) {
913 match = next;
914 }
915
916 re$2[t$2.COERCERTL].lastIndex = next.index + next[1].length + next[2].length;
917 } // leave it in a clean state
918
919
920 re$2[t$2.COERCERTL].lastIndex = -1;
921 }
922
923 if (match === null) return null;
924 return parse_1("".concat(match[2], ".").concat(match[3] || '0', ".").concat(match[4] || '0'), options);
925};
926
927var coerce_1 = coerce;
928
929var Range = /*#__PURE__*/function () {
930 function Range(range, options) {
931 var _this = this;
932
933 _classCallCheck(this, Range);
934
935 if (!options || _typeof(options) !== 'object') {
936 options = {
937 loose: !!options,
938 includePrerelease: false
939 };
940 }
941
942 if (range instanceof Range) {
943 if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) {
944 return range;
945 } else {
946 return new Range(range.raw, options);
947 }
948 }
949
950 if (range instanceof comparator) {
951 // just put it in the set and return
952 this.raw = range.value;
953 this.set = [[range]];
954 this.format();
955 return this;
956 }
957
958 this.options = options;
959 this.loose = !!options.loose;
960 this.includePrerelease = !!options.includePrerelease; // First, split based on boolean or ||
961
962 this.raw = range;
963 this.set = range.split(/\s*\|\|\s*/) // map the range to a 2d array of comparators
964 .map(function (range) {
965 return _this.parseRange(range.trim());
966 }) // throw out any comparator lists that are empty
967 // this generally means that it was not a valid range, which is allowed
968 // in loose mode, but will still throw if the WHOLE range is invalid.
969 .filter(function (c) {
970 return c.length;
971 });
972
973 if (!this.set.length) {
974 throw new TypeError("Invalid SemVer Range: ".concat(range));
975 }
976
977 this.format();
978 }
979
980 _createClass(Range, [{
981 key: "format",
982 value: function format() {
983 this.range = this.set.map(function (comps) {
984 return comps.join(' ').trim();
985 }).join('||').trim();
986 return this.range;
987 }
988 }, {
989 key: "toString",
990 value: function toString() {
991 return this.range;
992 }
993 }, {
994 key: "parseRange",
995 value: function parseRange(range) {
996 var _this2 = this;
997
998 var loose = this.options.loose;
999 range = range.trim(); // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`
1000
1001 var hr = loose ? re$3[t$3.HYPHENRANGELOOSE] : re$3[t$3.HYPHENRANGE];
1002 range = range.replace(hr, hyphenReplace(this.options.includePrerelease));
1003 debug_1('hyphen replace', range); // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`
1004
1005 range = range.replace(re$3[t$3.COMPARATORTRIM], comparatorTrimReplace);
1006 debug_1('comparator trim', range, re$3[t$3.COMPARATORTRIM]); // `~ 1.2.3` => `~1.2.3`
1007
1008 range = range.replace(re$3[t$3.TILDETRIM], tildeTrimReplace); // `^ 1.2.3` => `^1.2.3`
1009
1010 range = range.replace(re$3[t$3.CARETTRIM], caretTrimReplace); // normalize spaces
1011
1012 range = range.split(/\s+/).join(' '); // At this point, the range is completely trimmed and
1013 // ready to be split into comparators.
1014
1015 var compRe = loose ? re$3[t$3.COMPARATORLOOSE] : re$3[t$3.COMPARATOR];
1016 return range.split(' ').map(function (comp) {
1017 return parseComparator(comp, _this2.options);
1018 }).join(' ').split(/\s+/).map(function (comp) {
1019 return replaceGTE0(comp, _this2.options);
1020 }) // in loose mode, throw out any that are not valid comparators
1021 .filter(this.options.loose ? function (comp) {
1022 return !!comp.match(compRe);
1023 } : function () {
1024 return true;
1025 }).map(function (comp) {
1026 return new comparator(comp, _this2.options);
1027 });
1028 }
1029 }, {
1030 key: "intersects",
1031 value: function intersects(range, options) {
1032 if (!(range instanceof Range)) {
1033 throw new TypeError('a Range is required');
1034 }
1035
1036 return this.set.some(function (thisComparators) {
1037 return isSatisfiable(thisComparators, options) && range.set.some(function (rangeComparators) {
1038 return isSatisfiable(rangeComparators, options) && thisComparators.every(function (thisComparator) {
1039 return rangeComparators.every(function (rangeComparator) {
1040 return thisComparator.intersects(rangeComparator, options);
1041 });
1042 });
1043 });
1044 });
1045 } // if ANY of the sets match ALL of its comparators, then pass
1046
1047 }, {
1048 key: "test",
1049 value: function test(version) {
1050 if (!version) {
1051 return false;
1052 }
1053
1054 if (typeof version === 'string') {
1055 try {
1056 version = new semver(version, this.options);
1057 } catch (er) {
1058 return false;
1059 }
1060 }
1061
1062 for (var i = 0; i < this.set.length; i++) {
1063 if (testSet(this.set[i], version, this.options)) {
1064 return true;
1065 }
1066 }
1067
1068 return false;
1069 }
1070 }]);
1071
1072 return Range;
1073}();
1074
1075var range = Range;
1076var re$3 = re_1.re,
1077 t$3 = re_1.t,
1078 comparatorTrimReplace = re_1.comparatorTrimReplace,
1079 tildeTrimReplace = re_1.tildeTrimReplace,
1080 caretTrimReplace = re_1.caretTrimReplace; // take a set of comparators and determine whether there
1081// exists a version which can satisfy it
1082
1083var isSatisfiable = function isSatisfiable(comparators, options) {
1084 var result = true;
1085 var remainingComparators = comparators.slice();
1086 var testComparator = remainingComparators.pop();
1087
1088 while (result && remainingComparators.length) {
1089 result = remainingComparators.every(function (otherComparator) {
1090 return testComparator.intersects(otherComparator, options);
1091 });
1092 testComparator = remainingComparators.pop();
1093 }
1094
1095 return result;
1096}; // comprised of xranges, tildes, stars, and gtlt's at this point.
1097// already replaced the hyphen ranges
1098// turn into a set of JUST comparators.
1099
1100
1101var parseComparator = function parseComparator(comp, options) {
1102 debug_1('comp', comp, options);
1103 comp = replaceCarets(comp, options);
1104 debug_1('caret', comp);
1105 comp = replaceTildes(comp, options);
1106 debug_1('tildes', comp);
1107 comp = replaceXRanges(comp, options);
1108 debug_1('xrange', comp);
1109 comp = replaceStars(comp, options);
1110 debug_1('stars', comp);
1111 return comp;
1112};
1113
1114var isX = function isX(id) {
1115 return !id || id.toLowerCase() === 'x' || id === '*';
1116}; // ~, ~> --> * (any, kinda silly)
1117// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0
1118// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0
1119// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0
1120// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0
1121// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0
1122
1123
1124var replaceTildes = function replaceTildes(comp, options) {
1125 return comp.trim().split(/\s+/).map(function (comp) {
1126 return replaceTilde(comp, options);
1127 }).join(' ');
1128};
1129
1130var replaceTilde = function replaceTilde(comp, options) {
1131 var r = options.loose ? re$3[t$3.TILDELOOSE] : re$3[t$3.TILDE];
1132 return comp.replace(r, function (_, M, m, p, pr) {
1133 debug_1('tilde', comp, _, M, m, p, pr);
1134 var ret;
1135
1136 if (isX(M)) {
1137 ret = '';
1138 } else if (isX(m)) {
1139 ret = ">=".concat(M, ".0.0 <").concat(+M + 1, ".0.0-0");
1140 } else if (isX(p)) {
1141 // ~1.2 == >=1.2.0 <1.3.0-0
1142 ret = ">=".concat(M, ".").concat(m, ".0 <").concat(M, ".").concat(+m + 1, ".0-0");
1143 } else if (pr) {
1144 debug_1('replaceTilde pr', pr);
1145 ret = ">=".concat(M, ".").concat(m, ".").concat(p, "-").concat(pr, " <").concat(M, ".").concat(+m + 1, ".0-0");
1146 } else {
1147 // ~1.2.3 == >=1.2.3 <1.3.0-0
1148 ret = ">=".concat(M, ".").concat(m, ".").concat(p, " <").concat(M, ".").concat(+m + 1, ".0-0");
1149 }
1150
1151 debug_1('tilde return', ret);
1152 return ret;
1153 });
1154}; // ^ --> * (any, kinda silly)
1155// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0
1156// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0
1157// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0
1158// ^1.2.3 --> >=1.2.3 <2.0.0-0
1159// ^1.2.0 --> >=1.2.0 <2.0.0-0
1160
1161
1162var replaceCarets = function replaceCarets(comp, options) {
1163 return comp.trim().split(/\s+/).map(function (comp) {
1164 return replaceCaret(comp, options);
1165 }).join(' ');
1166};
1167
1168var replaceCaret = function replaceCaret(comp, options) {
1169 debug_1('caret', comp, options);
1170 var r = options.loose ? re$3[t$3.CARETLOOSE] : re$3[t$3.CARET];
1171 var z = options.includePrerelease ? '-0' : '';
1172 return comp.replace(r, function (_, M, m, p, pr) {
1173 debug_1('caret', comp, _, M, m, p, pr);
1174 var ret;
1175
1176 if (isX(M)) {
1177 ret = '';
1178 } else if (isX(m)) {
1179 ret = ">=".concat(M, ".0.0").concat(z, " <").concat(+M + 1, ".0.0-0");
1180 } else if (isX(p)) {
1181 if (M === '0') {
1182 ret = ">=".concat(M, ".").concat(m, ".0").concat(z, " <").concat(M, ".").concat(+m + 1, ".0-0");
1183 } else {
1184 ret = ">=".concat(M, ".").concat(m, ".0").concat(z, " <").concat(+M + 1, ".0.0-0");
1185 }
1186 } else if (pr) {
1187 debug_1('replaceCaret pr', pr);
1188
1189 if (M === '0') {
1190 if (m === '0') {
1191 ret = ">=".concat(M, ".").concat(m, ".").concat(p, "-").concat(pr, " <").concat(M, ".").concat(m, ".").concat(+p + 1, "-0");
1192 } else {
1193 ret = ">=".concat(M, ".").concat(m, ".").concat(p, "-").concat(pr, " <").concat(M, ".").concat(+m + 1, ".0-0");
1194 }
1195 } else {
1196 ret = ">=".concat(M, ".").concat(m, ".").concat(p, "-").concat(pr, " <").concat(+M + 1, ".0.0-0");
1197 }
1198 } else {
1199 debug_1('no pr');
1200
1201 if (M === '0') {
1202 if (m === '0') {
1203 ret = ">=".concat(M, ".").concat(m, ".").concat(p).concat(z, " <").concat(M, ".").concat(m, ".").concat(+p + 1, "-0");
1204 } else {
1205 ret = ">=".concat(M, ".").concat(m, ".").concat(p).concat(z, " <").concat(M, ".").concat(+m + 1, ".0-0");
1206 }
1207 } else {
1208 ret = ">=".concat(M, ".").concat(m, ".").concat(p, " <").concat(+M + 1, ".0.0-0");
1209 }
1210 }
1211
1212 debug_1('caret return', ret);
1213 return ret;
1214 });
1215};
1216
1217var replaceXRanges = function replaceXRanges(comp, options) {
1218 debug_1('replaceXRanges', comp, options);
1219 return comp.split(/\s+/).map(function (comp) {
1220 return replaceXRange(comp, options);
1221 }).join(' ');
1222};
1223
1224var replaceXRange = function replaceXRange(comp, options) {
1225 comp = comp.trim();
1226 var r = options.loose ? re$3[t$3.XRANGELOOSE] : re$3[t$3.XRANGE];
1227 return comp.replace(r, function (ret, gtlt, M, m, p, pr) {
1228 debug_1('xRange', comp, ret, gtlt, M, m, p, pr);
1229 var xM = isX(M);
1230 var xm = xM || isX(m);
1231 var xp = xm || isX(p);
1232 var anyX = xp;
1233
1234 if (gtlt === '=' && anyX) {
1235 gtlt = '';
1236 } // if we're including prereleases in the match, then we need
1237 // to fix this to -0, the lowest possible prerelease value
1238
1239
1240 pr = options.includePrerelease ? '-0' : '';
1241
1242 if (xM) {
1243 if (gtlt === '>' || gtlt === '<') {
1244 // nothing is allowed
1245 ret = '<0.0.0-0';
1246 } else {
1247 // nothing is forbidden
1248 ret = '*';
1249 }
1250 } else if (gtlt && anyX) {
1251 // we know patch is an x, because we have any x at all.
1252 // replace X with 0
1253 if (xm) {
1254 m = 0;
1255 }
1256
1257 p = 0;
1258
1259 if (gtlt === '>') {
1260 // >1 => >=2.0.0
1261 // >1.2 => >=1.3.0
1262 gtlt = '>=';
1263
1264 if (xm) {
1265 M = +M + 1;
1266 m = 0;
1267 p = 0;
1268 } else {
1269 m = +m + 1;
1270 p = 0;
1271 }
1272 } else if (gtlt === '<=') {
1273 // <=0.7.x is actually <0.8.0, since any 0.7.x should
1274 // pass. Similarly, <=7.x is actually <8.0.0, etc.
1275 gtlt = '<';
1276
1277 if (xm) {
1278 M = +M + 1;
1279 } else {
1280 m = +m + 1;
1281 }
1282 }
1283
1284 if (gtlt === '<') pr = '-0';
1285 ret = "".concat(gtlt + M, ".").concat(m, ".").concat(p).concat(pr);
1286 } else if (xm) {
1287 ret = ">=".concat(M, ".0.0").concat(pr, " <").concat(+M + 1, ".0.0-0");
1288 } else if (xp) {
1289 ret = ">=".concat(M, ".").concat(m, ".0").concat(pr, " <").concat(M, ".").concat(+m + 1, ".0-0");
1290 }
1291
1292 debug_1('xRange return', ret);
1293 return ret;
1294 });
1295}; // Because * is AND-ed with everything else in the comparator,
1296// and '' means "any version", just remove the *s entirely.
1297
1298
1299var replaceStars = function replaceStars(comp, options) {
1300 debug_1('replaceStars', comp, options); // Looseness is ignored here. star is always as loose as it gets!
1301
1302 return comp.trim().replace(re$3[t$3.STAR], '');
1303};
1304
1305var replaceGTE0 = function replaceGTE0(comp, options) {
1306 debug_1('replaceGTE0', comp, options);
1307 return comp.trim().replace(re$3[options.includePrerelease ? t$3.GTE0PRE : t$3.GTE0], '');
1308}; // This function is passed to string.replace(re[t.HYPHENRANGE])
1309// M, m, patch, prerelease, build
1310// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5
1311// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do
1312// 1.2 - 3.4 => >=1.2.0 <3.5.0-0
1313
1314
1315var hyphenReplace = function hyphenReplace(incPr) {
1316 return function ($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) {
1317 if (isX(fM)) {
1318 from = '';
1319 } else if (isX(fm)) {
1320 from = ">=".concat(fM, ".0.0").concat(incPr ? '-0' : '');
1321 } else if (isX(fp)) {
1322 from = ">=".concat(fM, ".").concat(fm, ".0").concat(incPr ? '-0' : '');
1323 } else if (fpr) {
1324 from = ">=".concat(from);
1325 } else {
1326 from = ">=".concat(from).concat(incPr ? '-0' : '');
1327 }
1328
1329 if (isX(tM)) {
1330 to = '';
1331 } else if (isX(tm)) {
1332 to = "<".concat(+tM + 1, ".0.0-0");
1333 } else if (isX(tp)) {
1334 to = "<".concat(tM, ".").concat(+tm + 1, ".0-0");
1335 } else if (tpr) {
1336 to = "<=".concat(tM, ".").concat(tm, ".").concat(tp, "-").concat(tpr);
1337 } else if (incPr) {
1338 to = "<".concat(tM, ".").concat(tm, ".").concat(+tp + 1, "-0");
1339 } else {
1340 to = "<=".concat(to);
1341 }
1342
1343 return "".concat(from, " ").concat(to).trim();
1344 };
1345};
1346
1347var testSet = function testSet(set, version, options) {
1348 for (var i = 0; i < set.length; i++) {
1349 if (!set[i].test(version)) {
1350 return false;
1351 }
1352 }
1353
1354 if (version.prerelease.length && !options.includePrerelease) {
1355 // Find the set of versions that are allowed to have prereleases
1356 // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0
1357 // That should allow `1.2.3-pr.2` to pass.
1358 // However, `1.2.4-alpha.notready` should NOT be allowed,
1359 // even though it's within the range set by the comparators.
1360 for (var _i = 0; _i < set.length; _i++) {
1361 debug_1(set[_i].semver);
1362
1363 if (set[_i].semver === comparator.ANY) {
1364 continue;
1365 }
1366
1367 if (set[_i].semver.prerelease.length > 0) {
1368 var allowed = set[_i].semver;
1369
1370 if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) {
1371 return true;
1372 }
1373 }
1374 } // Version has a -pre, but it's not one of the ones we like.
1375
1376
1377 return false;
1378 }
1379
1380 return true;
1381};
1382
1383var ANY = Symbol('SemVer ANY'); // hoisted class for cyclic dependency
1384
1385var Comparator = /*#__PURE__*/function () {
1386 _createClass(Comparator, null, [{
1387 key: "ANY",
1388 get: function get() {
1389 return ANY;
1390 }
1391 }]);
1392
1393 function Comparator(comp, options) {
1394 _classCallCheck(this, Comparator);
1395
1396 if (!options || _typeof(options) !== 'object') {
1397 options = {
1398 loose: !!options,
1399 includePrerelease: false
1400 };
1401 }
1402
1403 if (comp instanceof Comparator) {
1404 if (comp.loose === !!options.loose) {
1405 return comp;
1406 } else {
1407 comp = comp.value;
1408 }
1409 }
1410
1411 debug_1('comparator', comp, options);
1412 this.options = options;
1413 this.loose = !!options.loose;
1414 this.parse(comp);
1415
1416 if (this.semver === ANY) {
1417 this.value = '';
1418 } else {
1419 this.value = this.operator + this.semver.version;
1420 }
1421
1422 debug_1('comp', this);
1423 }
1424
1425 _createClass(Comparator, [{
1426 key: "parse",
1427 value: function parse(comp) {
1428 var r = this.options.loose ? re$4[t$4.COMPARATORLOOSE] : re$4[t$4.COMPARATOR];
1429 var m = comp.match(r);
1430
1431 if (!m) {
1432 throw new TypeError("Invalid comparator: ".concat(comp));
1433 }
1434
1435 this.operator = m[1] !== undefined ? m[1] : '';
1436
1437 if (this.operator === '=') {
1438 this.operator = '';
1439 } // if it literally is just '>' or '' then allow anything.
1440
1441
1442 if (!m[2]) {
1443 this.semver = ANY;
1444 } else {
1445 this.semver = new semver(m[2], this.options.loose);
1446 }
1447 }
1448 }, {
1449 key: "toString",
1450 value: function toString() {
1451 return this.value;
1452 }
1453 }, {
1454 key: "test",
1455 value: function test(version) {
1456 debug_1('Comparator.test', version, this.options.loose);
1457
1458 if (this.semver === ANY || version === ANY) {
1459 return true;
1460 }
1461
1462 if (typeof version === 'string') {
1463 try {
1464 version = new semver(version, this.options);
1465 } catch (er) {
1466 return false;
1467 }
1468 }
1469
1470 return cmp_1(version, this.operator, this.semver, this.options);
1471 }
1472 }, {
1473 key: "intersects",
1474 value: function intersects(comp, options) {
1475 if (!(comp instanceof Comparator)) {
1476 throw new TypeError('a Comparator is required');
1477 }
1478
1479 if (!options || _typeof(options) !== 'object') {
1480 options = {
1481 loose: !!options,
1482 includePrerelease: false
1483 };
1484 }
1485
1486 if (this.operator === '') {
1487 if (this.value === '') {
1488 return true;
1489 }
1490
1491 return new range(comp.value, options).test(this.value);
1492 } else if (comp.operator === '') {
1493 if (comp.value === '') {
1494 return true;
1495 }
1496
1497 return new range(this.value, options).test(comp.semver);
1498 }
1499
1500 var sameDirectionIncreasing = (this.operator === '>=' || this.operator === '>') && (comp.operator === '>=' || comp.operator === '>');
1501 var sameDirectionDecreasing = (this.operator === '<=' || this.operator === '<') && (comp.operator === '<=' || comp.operator === '<');
1502 var sameSemVer = this.semver.version === comp.semver.version;
1503 var differentDirectionsInclusive = (this.operator === '>=' || this.operator === '<=') && (comp.operator === '>=' || comp.operator === '<=');
1504 var oppositeDirectionsLessThan = cmp_1(this.semver, '<', comp.semver, options) && (this.operator === '>=' || this.operator === '>') && (comp.operator === '<=' || comp.operator === '<');
1505 var oppositeDirectionsGreaterThan = cmp_1(this.semver, '>', comp.semver, options) && (this.operator === '<=' || this.operator === '<') && (comp.operator === '>=' || comp.operator === '>');
1506 return sameDirectionIncreasing || sameDirectionDecreasing || sameSemVer && differentDirectionsInclusive || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan;
1507 }
1508 }]);
1509
1510 return Comparator;
1511}();
1512
1513var comparator = Comparator;
1514var re$4 = re_1.re,
1515 t$4 = re_1.t;
1516
1517var satisfies = function satisfies(version, range$1, options) {
1518 try {
1519 range$1 = new range(range$1, options);
1520 } catch (er) {
1521 return false;
1522 }
1523
1524 return range$1.test(version);
1525};
1526
1527var satisfies_1 = satisfies;
1528
1529var toComparators = function toComparators(range$1, options) {
1530 return new range(range$1, options).set.map(function (comp) {
1531 return comp.map(function (c) {
1532 return c.value;
1533 }).join(' ').trim().split(' ');
1534 });
1535};
1536
1537var toComparators_1 = toComparators;
1538
1539var maxSatisfying = function maxSatisfying(versions, range$1, options) {
1540 var max = null;
1541 var maxSV = null;
1542 var rangeObj = null;
1543
1544 try {
1545 rangeObj = new range(range$1, options);
1546 } catch (er) {
1547 return null;
1548 }
1549
1550 versions.forEach(function (v) {
1551 if (rangeObj.test(v)) {
1552 // satisfies(v, range, options)
1553 if (!max || maxSV.compare(v) === -1) {
1554 // compare(max, v, true)
1555 max = v;
1556 maxSV = new semver(max, options);
1557 }
1558 }
1559 });
1560 return max;
1561};
1562
1563var maxSatisfying_1 = maxSatisfying;
1564
1565var minSatisfying = function minSatisfying(versions, range$1, options) {
1566 var min = null;
1567 var minSV = null;
1568 var rangeObj = null;
1569
1570 try {
1571 rangeObj = new range(range$1, options);
1572 } catch (er) {
1573 return null;
1574 }
1575
1576 versions.forEach(function (v) {
1577 if (rangeObj.test(v)) {
1578 // satisfies(v, range, options)
1579 if (!min || minSV.compare(v) === 1) {
1580 // compare(min, v, true)
1581 min = v;
1582 minSV = new semver(min, options);
1583 }
1584 }
1585 });
1586 return min;
1587};
1588
1589var minSatisfying_1 = minSatisfying;
1590
1591var minVersion = function minVersion(range$1, loose) {
1592 range$1 = new range(range$1, loose);
1593 var minver = new semver('0.0.0');
1594
1595 if (range$1.test(minver)) {
1596 return minver;
1597 }
1598
1599 minver = new semver('0.0.0-0');
1600
1601 if (range$1.test(minver)) {
1602 return minver;
1603 }
1604
1605 minver = null;
1606
1607 for (var i = 0; i < range$1.set.length; ++i) {
1608 var comparators = range$1.set[i];
1609 comparators.forEach(function (comparator) {
1610 // Clone to avoid manipulating the comparator's semver object.
1611 var compver = new semver(comparator.semver.version);
1612
1613 switch (comparator.operator) {
1614 case '>':
1615 if (compver.prerelease.length === 0) {
1616 compver.patch++;
1617 } else {
1618 compver.prerelease.push(0);
1619 }
1620
1621 compver.raw = compver.format();
1622
1623 /* fallthrough */
1624
1625 case '':
1626 case '>=':
1627 if (!minver || gt_1(minver, compver)) {
1628 minver = compver;
1629 }
1630
1631 break;
1632
1633 case '<':
1634 case '<=':
1635 /* Ignore maximum versions */
1636 break;
1637
1638 /* istanbul ignore next */
1639
1640 default:
1641 throw new Error("Unexpected operation: ".concat(comparator.operator));
1642 }
1643 });
1644 }
1645
1646 if (minver && range$1.test(minver)) {
1647 return minver;
1648 }
1649
1650 return null;
1651};
1652
1653var minVersion_1 = minVersion;
1654
1655var validRange = function validRange(range$1, options) {
1656 try {
1657 // Return '*' instead of '' so that truthiness works.
1658 // This will throw if it's invalid anyway
1659 return new range(range$1, options).range || '*';
1660 } catch (er) {
1661 return null;
1662 }
1663};
1664
1665var valid$1 = validRange;
1666
1667var ANY$1 = comparator.ANY;
1668
1669var outside = function outside(version, range$1, hilo, options) {
1670 version = new semver(version, options);
1671 range$1 = new range(range$1, options);
1672 var gtfn, ltefn, ltfn, comp, ecomp;
1673
1674 switch (hilo) {
1675 case '>':
1676 gtfn = gt_1;
1677 ltefn = lte_1;
1678 ltfn = lt_1;
1679 comp = '>';
1680 ecomp = '>=';
1681 break;
1682
1683 case '<':
1684 gtfn = lt_1;
1685 ltefn = gte_1;
1686 ltfn = gt_1;
1687 comp = '<';
1688 ecomp = '<=';
1689 break;
1690
1691 default:
1692 throw new TypeError('Must provide a hilo val of "<" or ">"');
1693 } // If it satisifes the range it is not outside
1694
1695
1696 if (satisfies_1(version, range$1, options)) {
1697 return false;
1698 } // From now on, variable terms are as if we're in "gtr" mode.
1699 // but note that everything is flipped for the "ltr" function.
1700
1701
1702 var _loop = function _loop(i) {
1703 var comparators = range$1.set[i];
1704 var high = null;
1705 var low = null;
1706 comparators.forEach(function (comparator$1) {
1707 if (comparator$1.semver === ANY$1) {
1708 comparator$1 = new comparator('>=0.0.0');
1709 }
1710
1711 high = high || comparator$1;
1712 low = low || comparator$1;
1713
1714 if (gtfn(comparator$1.semver, high.semver, options)) {
1715 high = comparator$1;
1716 } else if (ltfn(comparator$1.semver, low.semver, options)) {
1717 low = comparator$1;
1718 }
1719 }); // If the edge version comparator has a operator then our version
1720 // isn't outside it
1721
1722 if (high.operator === comp || high.operator === ecomp) {
1723 return {
1724 v: false
1725 };
1726 } // If the lowest version comparator has an operator and our version
1727 // is less than it then it isn't higher than the range
1728
1729
1730 if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) {
1731 return {
1732 v: false
1733 };
1734 } else if (low.operator === ecomp && ltfn(version, low.semver)) {
1735 return {
1736 v: false
1737 };
1738 }
1739 };
1740
1741 for (var i = 0; i < range$1.set.length; ++i) {
1742 var _ret = _loop(i);
1743
1744 if (_typeof(_ret) === "object") return _ret.v;
1745 }
1746
1747 return true;
1748};
1749
1750var outside_1 = outside;
1751
1752var gtr = function gtr(version, range, options) {
1753 return outside_1(version, range, '>', options);
1754};
1755
1756var gtr_1 = gtr;
1757
1758var ltr = function ltr(version, range, options) {
1759 return outside_1(version, range, '<', options);
1760};
1761
1762var ltr_1 = ltr;
1763
1764var intersects = function intersects(r1, r2, options) {
1765 r1 = new range(r1, options);
1766 r2 = new range(r2, options);
1767 return r1.intersects(r2);
1768};
1769
1770var intersects_1 = intersects;
1771
1772// that includes the same versions that the original range does
1773// If the original range is shorter than the simplified one, return that.
1774
1775var simplify = function simplify(versions, range, options) {
1776 var set = [];
1777 var min = null;
1778 var prev = null;
1779 var v = versions.sort(function (a, b) {
1780 return compare_1(a, b, options);
1781 });
1782
1783 var _iterator = _createForOfIteratorHelper(v),
1784 _step;
1785
1786 try {
1787 for (_iterator.s(); !(_step = _iterator.n()).done;) {
1788 var version = _step.value;
1789 var included = satisfies_1(version, range, options);
1790
1791 if (included) {
1792 prev = version;
1793 if (!min) min = version;
1794 } else {
1795 if (prev) {
1796 set.push([min, prev]);
1797 }
1798
1799 prev = null;
1800 min = null;
1801 }
1802 }
1803 } catch (err) {
1804 _iterator.e(err);
1805 } finally {
1806 _iterator.f();
1807 }
1808
1809 if (min) set.push([min, null]);
1810 var ranges = [];
1811
1812 for (var _i = 0, _set = set; _i < _set.length; _i++) {
1813 var _set$_i = _slicedToArray(_set[_i], 2),
1814 _min = _set$_i[0],
1815 max = _set$_i[1];
1816
1817 if (_min === max) ranges.push(_min);else if (!max && _min === v[0]) ranges.push('*');else if (!max) ranges.push(">=".concat(_min));else if (_min === v[0]) ranges.push("<=".concat(max));else ranges.push("".concat(_min, " - ").concat(max));
1818 }
1819
1820 var simplified = ranges.join(' || ');
1821 var original = typeof range.raw === 'string' ? range.raw : String(range);
1822 return simplified.length < original.length ? simplified : range;
1823};
1824
1825var ANY$2 = comparator.ANY; // Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:
1826// - Every simple range `r1, r2, ...` is a subset of some `R1, R2, ...`
1827//
1828// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:
1829// - If c is only the ANY comparator
1830// - If C is only the ANY comparator, return true
1831// - Else return false
1832// - Let EQ be the set of = comparators in c
1833// - If EQ is more than one, return true (null set)
1834// - Let GT be the highest > or >= comparator in c
1835// - Let LT be the lowest < or <= comparator in c
1836// - If GT and LT, and GT.semver > LT.semver, return true (null set)
1837// - If EQ
1838// - If GT, and EQ does not satisfy GT, return true (null set)
1839// - If LT, and EQ does not satisfy LT, return true (null set)
1840// - If EQ satisfies every C, return true
1841// - Else return false
1842// - If GT
1843// - If GT is lower than any > or >= comp in C, return false
1844// - If GT is >=, and GT.semver does not satisfy every C, return false
1845// - If LT
1846// - If LT.semver is greater than that of any > comp in C, return false
1847// - If LT is <=, and LT.semver does not satisfy every C, return false
1848// - If any C is a = range, and GT or LT are set, return false
1849// - Else return true
1850
1851var subset = function subset(sub, dom, options) {
1852 sub = new range(sub, options);
1853 dom = new range(dom, options);
1854 var sawNonNull = false;
1855
1856 var _iterator = _createForOfIteratorHelper(sub.set),
1857 _step;
1858
1859 try {
1860 OUTER: for (_iterator.s(); !(_step = _iterator.n()).done;) {
1861 var simpleSub = _step.value;
1862
1863 var _iterator2 = _createForOfIteratorHelper(dom.set),
1864 _step2;
1865
1866 try {
1867 for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
1868 var simpleDom = _step2.value;
1869 var isSub = simpleSubset(simpleSub, simpleDom, options);
1870 sawNonNull = sawNonNull || isSub !== null;
1871 if (isSub) continue OUTER;
1872 } // the null set is a subset of everything, but null simple ranges in
1873 // a complex range should be ignored. so if we saw a non-null range,
1874 // then we know this isn't a subset, but if EVERY simple range was null,
1875 // then it is a subset.
1876
1877 } catch (err) {
1878 _iterator2.e(err);
1879 } finally {
1880 _iterator2.f();
1881 }
1882
1883 if (sawNonNull) return false;
1884 }
1885 } catch (err) {
1886 _iterator.e(err);
1887 } finally {
1888 _iterator.f();
1889 }
1890
1891 return true;
1892};
1893
1894var simpleSubset = function simpleSubset(sub, dom, options) {
1895 if (sub.length === 1 && sub[0].semver === ANY$2) return dom.length === 1 && dom[0].semver === ANY$2;
1896 var eqSet = new Set();
1897 var gt, lt;
1898
1899 var _iterator3 = _createForOfIteratorHelper(sub),
1900 _step3;
1901
1902 try {
1903 for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
1904 var c = _step3.value;
1905 if (c.operator === '>' || c.operator === '>=') gt = higherGT(gt, c, options);else if (c.operator === '<' || c.operator === '<=') lt = lowerLT(lt, c, options);else eqSet.add(c.semver);
1906 }
1907 } catch (err) {
1908 _iterator3.e(err);
1909 } finally {
1910 _iterator3.f();
1911 }
1912
1913 if (eqSet.size > 1) return null;
1914 var gtltComp;
1915
1916 if (gt && lt) {
1917 gtltComp = compare_1(gt.semver, lt.semver, options);
1918 if (gtltComp > 0) return null;else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) return null;
1919 } // will iterate one or zero times
1920
1921
1922 var _iterator4 = _createForOfIteratorHelper(eqSet),
1923 _step4;
1924
1925 try {
1926 for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
1927 var eq = _step4.value;
1928 if (gt && !satisfies_1(eq, String(gt), options)) return null;
1929 if (lt && !satisfies_1(eq, String(lt), options)) return null;
1930
1931 var _iterator6 = _createForOfIteratorHelper(dom),
1932 _step6;
1933
1934 try {
1935 for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
1936 var _c = _step6.value;
1937 if (!satisfies_1(eq, String(_c), options)) return false;
1938 }
1939 } catch (err) {
1940 _iterator6.e(err);
1941 } finally {
1942 _iterator6.f();
1943 }
1944
1945 return true;
1946 }
1947 } catch (err) {
1948 _iterator4.e(err);
1949 } finally {
1950 _iterator4.f();
1951 }
1952
1953 var higher, lower;
1954 var hasDomLT, hasDomGT;
1955
1956 var _iterator5 = _createForOfIteratorHelper(dom),
1957 _step5;
1958
1959 try {
1960 for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
1961 var _c2 = _step5.value;
1962 hasDomGT = hasDomGT || _c2.operator === '>' || _c2.operator === '>=';
1963 hasDomLT = hasDomLT || _c2.operator === '<' || _c2.operator === '<=';
1964
1965 if (gt) {
1966 if (_c2.operator === '>' || _c2.operator === '>=') {
1967 higher = higherGT(gt, _c2, options);
1968 if (higher === _c2) return false;
1969 } else if (gt.operator === '>=' && !satisfies_1(gt.semver, String(_c2), options)) return false;
1970 }
1971
1972 if (lt) {
1973 if (_c2.operator === '<' || _c2.operator === '<=') {
1974 lower = lowerLT(lt, _c2, options);
1975 if (lower === _c2) return false;
1976 } else if (lt.operator === '<=' && !satisfies_1(lt.semver, String(_c2), options)) return false;
1977 }
1978
1979 if (!_c2.operator && (lt || gt) && gtltComp !== 0) return false;
1980 } // if there was a < or >, and nothing in the dom, then must be false
1981 // UNLESS it was limited by another range in the other direction.
1982 // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0
1983
1984 } catch (err) {
1985 _iterator5.e(err);
1986 } finally {
1987 _iterator5.f();
1988 }
1989
1990 if (gt && hasDomLT && !lt && gtltComp !== 0) return false;
1991 if (lt && hasDomGT && !gt && gtltComp !== 0) return false;
1992 return true;
1993}; // >=1.2.3 is lower than >1.2.3
1994
1995
1996var higherGT = function higherGT(a, b, options) {
1997 if (!a) return b;
1998 var comp = compare_1(a.semver, b.semver, options);
1999 return comp > 0 ? a : comp < 0 ? b : b.operator === '>' && a.operator === '>=' ? b : a;
2000}; // <=1.2.3 is higher than <1.2.3
2001
2002
2003var lowerLT = function lowerLT(a, b, options) {
2004 if (!a) return b;
2005 var comp = compare_1(a.semver, b.semver, options);
2006 return comp < 0 ? a : comp > 0 ? b : b.operator === '<' && a.operator === '<=' ? b : a;
2007};
2008
2009var subset_1 = subset;
2010
2011var semver$1 = {
2012 re: re_1.re,
2013 src: re_1.src,
2014 tokens: re_1.t,
2015 SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,
2016 SemVer: semver,
2017 compareIdentifiers: identifiers.compareIdentifiers,
2018 rcompareIdentifiers: identifiers.rcompareIdentifiers,
2019 parse: parse_1,
2020 valid: valid_1,
2021 clean: clean_1,
2022 inc: inc_1,
2023 diff: diff_1,
2024 major: major_1,
2025 minor: minor_1,
2026 patch: patch_1,
2027 prerelease: prerelease_1,
2028 compare: compare_1,
2029 rcompare: rcompare_1,
2030 compareLoose: compareLoose_1,
2031 compareBuild: compareBuild_1,
2032 sort: sort_1,
2033 rsort: rsort_1,
2034 gt: gt_1,
2035 lt: lt_1,
2036 eq: eq_1,
2037 neq: neq_1,
2038 gte: gte_1,
2039 lte: lte_1,
2040 cmp: cmp_1,
2041 coerce: coerce_1,
2042 Comparator: comparator,
2043 Range: range,
2044 satisfies: satisfies_1,
2045 toComparators: toComparators_1,
2046 maxSatisfying: maxSatisfying_1,
2047 minSatisfying: minSatisfying_1,
2048 minVersion: minVersion_1,
2049 validRange: valid$1,
2050 outside: outside_1,
2051 gtr: gtr_1,
2052 ltr: ltr_1,
2053 intersects: intersects_1,
2054 simplifyRange: simplify,
2055 subset: subset_1
2056};
2057
2058(function () {
2059 /**
2060 * Install plugin
2061 * @param app
2062 * @param axios
2063 */
2064 function plugin(app, axios) {
2065 if (plugin.installed) {
2066 return;
2067 }
2068
2069 if (!axios) {
2070 console.error('You have to install axios');
2071 return;
2072 }
2073
2074 if (semver$1.valid(app.version) == null) {
2075 console.error('Unkown vue version');
2076 return;
2077 }
2078
2079 plugin.installed = true;
2080
2081 if (semver$1.lt(app.version, '3.0.0')) {
2082 Object.defineProperties(app.prototype, {
2083 axios: {
2084 get: function get() {
2085 return axios;
2086 }
2087 },
2088 $http: {
2089 get: function get() {
2090 return axios;
2091 }
2092 }
2093 });
2094 } else {
2095 app.config.globalProperties.axios = axios;
2096 app.config.globalProperties.$http = axios;
2097 }
2098
2099 app.axios = axios;
2100 app.$http = axios;
2101 }
2102
2103 if ((typeof exports === "undefined" ? "undefined" : _typeof(exports)) == "object") {
2104 module.exports = plugin;
2105 } else if (typeof define == "function" && define.amd) {
2106 define([], function () {
2107 return plugin;
2108 });
2109 } else if (window.Vue && window.axios) {
2110 Vue.use(plugin, window.axios);
2111 }
2112})();
2113
2114//# sourceMappingURL=vue-axios.es5.js.map