Initalize

This commit is contained in:
Your Name
2026-05-03 12:12:57 -04:00
commit 38652eb9b5
10603 changed files with 1762136 additions and 0 deletions

559
node_modules/es-semver/src/Range.js generated vendored Normal file
View File

@@ -0,0 +1,559 @@
import { cmp } from './cmp'
import { ANY } from './constants'
import { debug } from './debug'
import {
HYPHENRANGELOOSE,
HYPHENRANGE,
COMPARATORTRIM,
comparatorTrimReplace,
TILDETRIM,
tildeTrimReplace,
CARETTRIM,
caretTrimReplace,
COMPARATORLOOSE,
COMPARATOR,
TILDELOOSE,
TILDE,
CARETLOOSE,
CARET,
XRANGELOOSE,
XRANGE,
STAR,
re
} from './src'
import { SemVer } from './semver'
export function Range (range, options) {
if (!options || typeof options !== 'object') {
options = { loose: !!options, includePrerelease: false }
}
if (range instanceof Range) {
if (
range.loose === !!options.loose &&
range.includePrerelease === !!options.includePrerelease
) {
return range
} else {
return new Range(range.raw, options)
}
}
if (range instanceof Comparator) {
return new Range(range.value, options)
}
if (!(this instanceof Range)) {
return new Range(range, options)
}
this.options = options
this.loose = !!options.loose
this.includePrerelease = !!options.includePrerelease
// First, split based on boolean or ||
this.raw = range
this.set = range
.split(/\s*\|\|\s*/)
.map(function (range) {
return this.parseRange(range.trim())
}, this)
.filter(function (c) {
// throw out any that are not relevant for whatever reason
return c.length
})
if (!this.set.length) {
throw new TypeError('Invalid SemVer Range: ' + range)
}
this.format()
}
Range.prototype.format = function () {
this.range = this.set
.map(function (comps) {
return comps.join(' ').trim()
})
.join('||')
.trim()
return this.range
}
Range.prototype.toString = function () {
return this.range
}
Range.prototype.parseRange = function (range) {
var loose = this.options.loose
range = range.trim()
// `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`
var hr = loose ? re[HYPHENRANGELOOSE] : re[HYPHENRANGE]
range = range.replace(hr, hyphenReplace)
debug('hyphen replace', range)
// `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`
range = range.replace(re[COMPARATORTRIM], comparatorTrimReplace)
debug('comparator trim', range, re[COMPARATORTRIM])
// `~ 1.2.3` => `~1.2.3`
range = range.replace(re[TILDETRIM], tildeTrimReplace)
// `^ 1.2.3` => `^1.2.3`
range = range.replace(re[CARETTRIM], caretTrimReplace)
// normalize spaces
range = range.split(/\s+/).join(' ')
// At this point, the range is completely trimmed and
// ready to be split into comparators.
var compRe = loose ? re[COMPARATORLOOSE] : re[COMPARATOR]
var set = range
.split(' ')
.map(function (comp) {
return parseComparator(comp, this.options)
}, this)
.join(' ')
.split(/\s+/)
if (this.options.loose) {
// in loose mode, throw out any that are not valid comparators
set = set.filter(function (comp) {
return !!comp.match(compRe)
})
}
set = set.map(function (comp) {
return new Comparator(comp, this.options)
}, this)
return set
}
Range.prototype.intersects = function (range, options) {
if (!(range instanceof Range)) {
throw new TypeError('a Range is required')
}
return this.set.some(function (thisComparators) {
return thisComparators.every(function (thisComparator) {
return range.set.some(function (rangeComparators) {
return rangeComparators.every(function (rangeComparator) {
return thisComparator.intersects(rangeComparator, options)
})
})
})
})
}
// Mostly just for testing and legacy API reasons
export function toComparators (range, options) {
return new Range(range, options).set.map(function (comp) {
return comp
.map(function (c) {
return c.value
})
.join(' ')
.trim()
.split(' ')
})
}
// comprised of xranges, tildes, stars, and gtlt's at this point.
// already replaced the hyphen ranges
// turn into a set of JUST comparators.
function parseComparator (comp, options) {
debug('comp', comp, options)
comp = replaceCarets(comp, options)
debug('caret', comp)
comp = replaceTildes(comp, options)
debug('tildes', comp)
comp = replaceXRanges(comp, options)
debug('xrange', comp)
comp = replaceStars(comp, options)
debug('stars', comp)
return comp
}
function isX (id) {
return !id || id.toLowerCase() === 'x' || id === '*'
}
// ~, ~> --> * (any, kinda silly)
// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0
// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0
// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0
// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0
// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0
function replaceTildes (comp, options) {
return comp
.trim()
.split(/\s+/)
.map(function (comp) {
return replaceTilde(comp, options)
})
.join(' ')
}
function replaceTilde (comp, options) {
if (!options || typeof options !== 'object') {
options = { loose: !!options, includePrerelease: false }
}
var r = options.loose ? re[TILDELOOSE] : re[TILDE]
return comp.replace(r, function (_, M, m, p, pr) {
debug('tilde', comp, _, M, m, p, pr)
var ret
if (isX(M)) {
ret = ''
} else if (isX(m)) {
ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'
} else if (isX(p)) {
// ~1.2 == >=1.2.0 <1.3.0
ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'
} else if (pr) {
debug('replaceTilde pr', pr)
if (pr.charAt(0) !== '-') {
pr = '-' + pr
}
ret =
'>=' + M + '.' + m + '.' + p + pr + ' <' + M + '.' + (+m + 1) + '.0'
} else {
// ~1.2.3 == >=1.2.3 <1.3.0
ret = '>=' + M + '.' + m + '.' + p + ' <' + M + '.' + (+m + 1) + '.0'
}
debug('tilde return', ret)
return ret
})
}
// ^ --> * (any, kinda silly)
// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0
// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0
// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0
// ^1.2.3 --> >=1.2.3 <2.0.0
// ^1.2.0 --> >=1.2.0 <2.0.0
function replaceCarets (comp, options) {
return comp
.trim()
.split(/\s+/)
.map(function (comp) {
return replaceCaret(comp, options)
})
.join(' ')
}
function replaceCaret (comp, options) {
debug('caret', comp, options)
if (!options || typeof options !== 'object') {
options = { loose: !!options, includePrerelease: false }
}
var r = options.loose ? re[CARETLOOSE] : re[CARET]
return comp.replace(r, function (_, M, m, p, pr) {
debug('caret', comp, _, M, m, p, pr)
var ret
if (isX(M)) {
ret = ''
} else if (isX(m)) {
ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'
} else if (isX(p)) {
if (M === '0') {
ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'
} else {
ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'
}
} else if (pr) {
debug('replaceCaret pr', pr)
if (pr.charAt(0) !== '-') {
pr = '-' + pr
}
if (M === '0') {
if (m === '0') {
ret =
'>=' +
M +
'.' +
m +
'.' +
p +
pr +
' <' +
M +
'.' +
m +
'.' +
(+p + 1)
} else {
ret =
'>=' +
M +
'.' +
m +
'.' +
p +
pr +
' <' +
M +
'.' +
(+m + 1) +
'.0'
}
} else {
ret = '>=' + M + '.' + m + '.' + p + pr + ' <' + (+M + 1) + '.0.0'
}
} else {
debug('no pr')
if (M === '0') {
if (m === '0') {
ret =
'>=' + M + '.' + m + '.' + p + ' <' + M + '.' + m + '.' + (+p + 1)
} else {
ret = '>=' + M + '.' + m + '.' + p + ' <' + M + '.' + (+m + 1) + '.0'
}
} else {
ret = '>=' + M + '.' + m + '.' + p + ' <' + (+M + 1) + '.0.0'
}
}
debug('caret return', ret)
return ret
})
}
function replaceXRanges (comp, options) {
debug('replaceXRanges', comp, options)
return comp
.split(/\s+/)
.map(function (comp) {
return replaceXRange(comp, options)
})
.join(' ')
}
function replaceXRange (comp, options) {
comp = comp.trim()
if (!options || typeof options !== 'object') {
options = { loose: !!options, includePrerelease: false }
}
var r = options.loose ? re[XRANGELOOSE] : re[XRANGE]
return comp.replace(r, function (ret, gtlt, M, m, p, pr) {
debug('xRange', comp, ret, gtlt, M, m, p, pr)
var xM = isX(M)
var xm = xM || isX(m)
var xp = xm || isX(p)
var anyX = xp
if (gtlt === '=' && anyX) {
gtlt = ''
}
if (xM) {
if (gtlt === '>' || gtlt === '<') {
// nothing is allowed
ret = '<0.0.0'
} else {
// nothing is forbidden
ret = '*'
}
} else if (gtlt && anyX) {
// replace X with 0
if (xm) {
m = 0
}
if (xp) {
p = 0
}
if (gtlt === '>') {
// >1 => >=2.0.0
// >1.2 => >=1.3.0
// >1.2.3 => >= 1.2.4
gtlt = '>='
if (xm) {
M = +M + 1
m = 0
p = 0
} else if (xp) {
m = +m + 1
p = 0
}
} else if (gtlt === '<=') {
// <=0.7.x is actually <0.8.0, since any 0.7.x should
// pass. Similarly, <=7.x is actually <8.0.0, etc.
gtlt = '<'
if (xm) {
M = +M + 1
} else {
m = +m + 1
}
}
ret = gtlt + M + '.' + m + '.' + p
} else if (xm) {
ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'
} else if (xp) {
ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'
}
debug('xRange return', ret)
return ret
})
}
// Because * is AND-ed with everything else in the comparator,
// and '' means "any version", just remove the *s entirely.
function replaceStars (comp, options) {
debug('replaceStars', comp, options)
// Looseness is ignored here. star is always as loose as it gets!
return comp.trim().replace(re[STAR], '')
}
// This function is passed to string.replace(re[HYPHENRANGE])
// M, m, patch, prerelease, build
// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5
// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do
// 1.2 - 3.4 => >=1.2.0 <3.5.0
function hyphenReplace ($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) {
if (isX(fM)) {
from = ''
} else if (isX(fm)) {
from = '>=' + fM + '.0.0'
} else if (isX(fp)) {
from = '>=' + fM + '.' + fm + '.0'
} else {
from = '>=' + from
}
if (isX(tM)) {
to = ''
} else if (isX(tm)) {
to = '<' + (+tM + 1) + '.0.0'
} else if (isX(tp)) {
to = '<' + tM + '.' + (+tm + 1) + '.0'
} else if (tpr) {
to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr
} else {
to = '<=' + to
}
return (from + ' ' + to).trim()
}
// if ANY of the sets match ALL of its comparators, then pass
Range.prototype.test = function (version) {
if (!version) {
return false
}
if (typeof version === 'string') {
version = new SemVer(version, this.options)
}
for (var i = 0; i < this.set.length; i++) {
if (testSet(this.set[i], version, this.options)) {
return true
}
}
return false
}
function testSet (set, version, options) {
for (var i = 0; i < set.length; i++) {
if (!set[i].test(version)) {
return false
}
}
if (!options) {
options = {}
}
if (version.prerelease.length && !options.includePrerelease) {
// Find the set of versions that are allowed to have prereleases
// For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0
// That should allow `1.2.3-pr.2` to pass.
// However, `1.2.4-alpha.notready` should NOT be allowed,
// even though it's within the range set by the comparators.
for (i = 0; i < set.length; i++) {
debug(set[i].semver)
if (set[i].semver === ANY) {
continue
}
if (set[i].semver.prerelease.length > 0) {
var allowed = set[i].semver
if (
allowed.major === version.major &&
allowed.minor === version.minor &&
allowed.patch === version.patch
) {
return true
}
}
}
// Version has a -pre, but it's not one of the ones we like.
return false
}
return true
}
export function Comparator (comp, options) {
if (!options || typeof options !== 'object') {
options = { loose: !!options, includePrerelease: false }
}
if (comp instanceof Comparator) {
if (comp.loose === !!options.loose) {
return comp
} else {
comp = comp.value
}
}
if (!(this instanceof Comparator)) {
return new Comparator(comp, options)
}
debug('comparator', comp, options)
this.options = options
this.loose = !!options.loose
this.parse(comp)
if (this.semver === ANY) {
this.value = ''
} else {
this.value = this.operator + this.semver.version
}
debug('comp', this)
}
Comparator.prototype.parse = function (comp) {
var r = this.options.loose ? re[COMPARATORLOOSE] : re[COMPARATOR]
var m = comp.match(r)
if (!m) {
throw new TypeError('Invalid comparator: ' + comp)
}
this.operator = m[1]
if (this.operator === '=') {
this.operator = ''
}
// if it literally is just '>' or '' then allow anything.
if (!m[2]) {
this.semver = ANY
} else {
this.semver = new SemVer(m[2], this.options.loose)
}
}
Comparator.prototype.toString = function () {
return this.value
}
Comparator.prototype.test = function (version) {
debug('Comparator.test', version, this.options.loose)
if (this.semver === ANY) {
return true
}
if (typeof version === 'string') {
version = new SemVer(version, this.options)
}
return cmp(version, this.operator, this.semver, this.options)
}
Comparator.prototype.intersects = function (comp, options) {
if (!(comp instanceof Comparator)) {
throw new TypeError('a Comparator is required')
}
if (!options || typeof options !== 'object') {
options = { loose: !!options, includePrerelease: false }
}
var rangeTmp
if (this.operator === '') {
rangeTmp = new Range(comp.value, options)
return satisfies(this.value, rangeTmp, options)
} else if (comp.operator === '') {
rangeTmp = new Range(this.value, options)
return satisfies(comp.semver, rangeTmp, options)
}
var sameDirectionIncreasing =
(this.operator === '>=' || this.operator === '>') &&
(comp.operator === '>=' || comp.operator === '>')
var sameDirectionDecreasing =
(this.operator === '<=' || this.operator === '<') &&
(comp.operator === '<=' || comp.operator === '<')
var sameSemVer = this.semver.version === comp.semver.version
var differentDirectionsInclusive =
(this.operator === '>=' || this.operator === '<=') &&
(comp.operator === '>=' || comp.operator === '<=')
var oppositeDirectionsLessThan =
cmp(this.semver, '<', comp.semver, options) &&
((this.operator === '>=' || this.operator === '>') &&
(comp.operator === '<=' || comp.operator === '<'))
var oppositeDirectionsGreaterThan =
cmp(this.semver, '>', comp.semver, options) &&
((this.operator === '<=' || this.operator === '<') &&
(comp.operator === '>=' || comp.operator === '>'))
return (
sameDirectionIncreasing ||
sameDirectionDecreasing ||
(sameSemVer && differentDirectionsInclusive) ||
oppositeDirectionsLessThan ||
oppositeDirectionsGreaterThan
)
}
export function satisfies (version, range, options) {
try {
range = new Range(range, options)
} catch (er) {
return false
}
return range.test(version)
}

6
node_modules/es-semver/src/clean.js generated vendored Normal file
View File

@@ -0,0 +1,6 @@
import { parse } from './parse'
export function clean (version, options) {
var s = parse(version.trim().replace(/^[=v]+/, ''), options)
return s ? s.version : null
}

44
node_modules/es-semver/src/cmp.js generated vendored Normal file
View File

@@ -0,0 +1,44 @@
import { gt } from './gt'
import { lt } from './lt'
import { eq } from './eq'
import { neq } from './neq'
import { gte } from './gte'
import { lte } from './lte'
export function cmp (a, op, b, loose) {
var ret
switch (op) {
case '===':
if (typeof a === 'object') { a = a.version }
if (typeof b === 'object') { b = b.version }
ret = a === b
break
case '!==':
if (typeof a === 'object') { a = a.version }
if (typeof b === 'object') { b = b.version }
ret = a !== b
break
case '':
case '=':
case '==':
ret = eq(a, b, loose)
break
case '!=':
ret = neq(a, b, loose)
break
case '>':
ret = gt(a, b, loose)
break
case '>=':
ret = gte(a, b, loose)
break
case '<':
ret = lt(a, b, loose)
break
case '<=':
ret = lte(a, b, loose)
break
default: throw new TypeError('Invalid operator: ' + op)
}
return ret
}

19
node_modules/es-semver/src/coerce.js generated vendored Normal file
View File

@@ -0,0 +1,19 @@
import { COERCE, re } from './src'
import { parse } from './parse'
import { SemVer } from './semver'
export function coerce (version) {
if (version instanceof SemVer) {
return version
}
if (typeof version !== 'string') {
return null
}
var match = version.match(re[COERCE])
if (match == null) {
return null
}
return parse(
(match[1] || '0') + '.' + (match[2] || '0') + '.' + (match[3] || '0')
)
}

5
node_modules/es-semver/src/compare.js generated vendored Normal file
View File

@@ -0,0 +1,5 @@
import { SemVer } from './semver'
export function compare (a, b, loose) {
return new SemVer(a, loose).compare(new SemVer(b, loose))
}

16
node_modules/es-semver/src/compareIdentifiers.js generated vendored Normal file
View File

@@ -0,0 +1,16 @@
var numeric = /^[0-9]+$/
// TODO: Fix module name
export function compareIdentifiers (a, b) {
var anum = numeric.test(a)
var bnum = numeric.test(b)
if (anum && bnum) {
a = +a
b = +b
}
return (anum && !bnum) ? -1
: (bnum && !anum) ? 1
: a < b ? -1
: a > b ? 1
: 0
}

5
node_modules/es-semver/src/compareLoose.js generated vendored Normal file
View File

@@ -0,0 +1,5 @@
import { compare } from './compare'
export function compareLoose (a, b) {
return compare(a, b, true)
}

2
node_modules/es-semver/src/constants.js generated vendored Normal file
View File

@@ -0,0 +1,2 @@
export var MAX_LENGTH = 256
export var ANY = {}

16
node_modules/es-semver/src/debug.js generated vendored Normal file
View File

@@ -0,0 +1,16 @@
export let debug
if (
typeof process === 'object' &&
process.env &&
process.env.NODE_DEBUG &&
/\bsemver\b/i.test(process.env.NODE_DEBUG)
) {
debug = function () {
var args = Array.prototype.slice.call(arguments, 0)
args.unshift('SEMVER')
console.log.apply(console, args)
}
} else {
debug = function () {}
}

24
node_modules/es-semver/src/diff.js generated vendored Normal file
View File

@@ -0,0 +1,24 @@
import { eq } from './eq'
import { parse } from './parse'
export function diff (version1, version2) {
if (eq(version1, version2)) {
return null
} else {
var v1 = parse(version1)
var v2 = parse(version2)
var prefix = ''
if (v1.prerelease.length || v2.prerelease.length) {
prefix = 'pre'
var defaultResult = 'prerelease'
}
for (var key in v1) {
if (key === 'major' || key === 'minor' || key === 'patch') {
if (v1[key] !== v2[key]) {
return prefix + key
}
}
}
return defaultResult // may be undefined
}
}

5
node_modules/es-semver/src/eq.js generated vendored Normal file
View File

@@ -0,0 +1,5 @@
import { compare } from './compare'
export function eq (a, b, loose) {
return compare(a, b, loose) === 0
}

5
node_modules/es-semver/src/gt.js generated vendored Normal file
View File

@@ -0,0 +1,5 @@
import { compare } from './compare'
export function gt (a, b, loose) {
return compare(a, b, loose) > 0
}

5
node_modules/es-semver/src/gte.js generated vendored Normal file
View File

@@ -0,0 +1,5 @@
import { compare } from './compare'
export function gte (a, b, loose) {
return compare(a, b, loose) >= 0
}

6
node_modules/es-semver/src/gtr.js generated vendored Normal file
View File

@@ -0,0 +1,6 @@
import { outside } from './outside'
// Determine if version is greater than all the versions possible in the range.
export function gtr (version, range, options) {
return outside(version, range, '>', options)
}

13
node_modules/es-semver/src/inc.js generated vendored Normal file
View File

@@ -0,0 +1,13 @@
import { SemVer } from './semver'
export function inc (version, release, loose, identifier) {
if (typeof (loose) === 'string') {
identifier = loose
loose = undefined
}
try {
return new SemVer(version, loose).inc(release, identifier).version
} catch (er) {
return null
}
}

41
node_modules/es-semver/src/index.js generated vendored Normal file
View File

@@ -0,0 +1,41 @@
import { SemVer } from './semver'
export { coerce } from './coerce'
export { intersects } from './intersects'
export { prerelease } from './prerelease'
export { outside } from './outside'
export { gtr } from './gtr'
export { ltr } from './ltr'
export { validRange } from './validRange'
export { minSatisfying } from './minSatisfying'
export { maxSatisfying } from './maxSatisfying'
export { Comparator, Range, satisfies, toComparators } from './Range'
export { cmp } from './cmp'
export { lte } from './lte'
export { gte } from './gte'
export { neq } from './neq'
export { eq } from './eq'
export { lt } from './lt'
export { gt } from './gt'
export { rsort } from './rsort'
export { sort } from './sort'
export { rcompare } from './rcompare'
export { compareLoose } from './compareLoose'
export { compare } from './compare'
export { patch } from './patch'
export { minor } from './minor'
export { major } from './major'
export { rcompareIdentifiers } from './rcompareIdentifiers'
export { compareIdentifiers } from './compareIdentifiers'
export { diff } from './diff'
export { inc } from './inc'
export { clean } from './clean'
export { valid } from './valid'
export { parse } from './parse'
export { src, re } from './src'
const _SemVer = SemVer
export { _SemVer as SemVer }
export default SemVer
export const SEMVER_SPEC_VERSION = '2.0.0'

7
node_modules/es-semver/src/intersects.js generated vendored Normal file
View File

@@ -0,0 +1,7 @@
import { Range } from './Range'
export function intersects (r1, r2, options) {
r1 = new Range(r1, options)
r2 = new Range(r2, options)
return r1.intersects(r2)
}

5
node_modules/es-semver/src/lt.js generated vendored Normal file
View File

@@ -0,0 +1,5 @@
import { compare } from './compare'
export function lt (a, b, loose) {
return compare(a, b, loose) < 0
}

5
node_modules/es-semver/src/lte.js generated vendored Normal file
View File

@@ -0,0 +1,5 @@
import { compare } from './compare'
export function lte (a, b, loose) {
return compare(a, b, loose) <= 0
}

6
node_modules/es-semver/src/ltr.js generated vendored Normal file
View File

@@ -0,0 +1,6 @@
import { outside } from './outside'
// Determine if version is less than all the versions possible in the range
export function ltr (version, range, options) {
return outside(version, range, '<', options)
}

5
node_modules/es-semver/src/major.js generated vendored Normal file
View File

@@ -0,0 +1,5 @@
import { SemVer } from './semver'
export function major (a, loose) {
return new SemVer(a, loose).major
}

21
node_modules/es-semver/src/maxSatisfying.js generated vendored Normal file
View File

@@ -0,0 +1,21 @@
import { SemVer } from './semver'
import { Range } from './Range'
export function maxSatisfying (versions, range, options) {
var max = null
var maxSV = null
try {
var rangeObj = new Range(range, options)
} catch (er) {
return null
}
versions.forEach(function (v) {
if (rangeObj.test(v)) { // satisfies(v, range, options)
if (!max || maxSV.compare(v) === -1) { // compare(max, v, true)
max = v
maxSV = new SemVer(max, options)
}
}
})
return max
}

21
node_modules/es-semver/src/minSatisfying.js generated vendored Normal file
View File

@@ -0,0 +1,21 @@
import { SemVer } from './semver'
import { Range } from './Range'
export function minSatisfying (versions, range, options) {
var min = null
var minSV = null
try {
var rangeObj = new Range(range, options)
} catch (er) {
return null
}
versions.forEach(function (v) {
if (rangeObj.test(v)) { // satisfies(v, range, options)
if (!min || minSV.compare(v) === 1) { // compare(min, v, true)
min = v
minSV = new SemVer(min, options)
}
}
})
return min
}

5
node_modules/es-semver/src/minor.js generated vendored Normal file
View File

@@ -0,0 +1,5 @@
import { SemVer } from './semver'
export function minor (a, loose) {
return new SemVer(a, loose).minor
}

5
node_modules/es-semver/src/neq.js generated vendored Normal file
View File

@@ -0,0 +1,5 @@
import { compare } from './compare'
export function neq (a, b, loose) {
return compare(a, b, loose) !== 0
}

68
node_modules/es-semver/src/outside.js generated vendored Normal file
View File

@@ -0,0 +1,68 @@
import { SemVer } from './semver'
import { gt } from './gt'
import { lt } from './lt'
import { gte } from './gte'
import { lte } from './lte'
import { Range, Comparator, satisfies } from './Range'
import { ANY } from './constants'
export function outside (version, range, hilo, options) {
version = new SemVer(version, options)
range = new Range(range, options)
var gtfn, ltefn, ltfn, comp, ecomp
switch (hilo) {
case '>':
gtfn = gt
ltefn = lte
ltfn = lt
comp = '>'
ecomp = '>='
break
case '<':
gtfn = lt
ltefn = gte
ltfn = gt
comp = '<'
ecomp = '<='
break
default:
throw new TypeError('Must provide a hilo val of "<" or ">"')
}
// If it satisifes the range it is not outside
if (satisfies(version, range, options)) {
return false
}
// From now on, variable terms are as if we're in "gtr" mode.
// but note that everything is flipped for the "ltr" function.
for (var i = 0; i < range.set.length; ++i) {
var comparators = range.set[i]
var high = null
var low = null
comparators.forEach(function (comparator) {
if (comparator.semver === ANY) {
comparator = new Comparator('>=0.0.0')
}
high = high || comparator
low = low || comparator
if (gtfn(comparator.semver, high.semver, options)) {
high = comparator
} else if (ltfn(comparator.semver, low.semver, options)) {
low = comparator
}
})
// If the edge version comparator has a operator then our version
// isn't outside it
if (high.operator === comp || high.operator === ecomp) {
return false
}
// If the lowest version comparator has an operator and our version
// is less than it then it isn't higher than the range
if ((!low.operator || low.operator === comp) &&
ltefn(version, low.semver)) {
return false
} else if (low.operator === ecomp && ltfn(version, low.semver)) {
return false
}
}
return true
}

27
node_modules/es-semver/src/parse.js generated vendored Normal file
View File

@@ -0,0 +1,27 @@
import { SemVer } from './semver'
import { LOOSE, FULL, re } from './src'
import { MAX_LENGTH } from './constants'
export function parse (version, options) {
if (!options || typeof options !== 'object') {
options = { loose: !!options, includePrerelease: false }
}
if (version instanceof SemVer) {
return version
}
if (typeof version !== 'string') {
return null
}
if (version.length > MAX_LENGTH) {
return null
}
var r = options.loose ? re[LOOSE] : re[FULL]
if (!r.test(version)) {
return null
}
try {
return new SemVer(version, options)
} catch (er) {
return null
}
}

5
node_modules/es-semver/src/patch.js generated vendored Normal file
View File

@@ -0,0 +1,5 @@
import { SemVer } from './semver'
export function patch (a, loose) {
return new SemVer(a, loose).patch
}

6
node_modules/es-semver/src/prerelease.js generated vendored Normal file
View File

@@ -0,0 +1,6 @@
import { parse } from './parse'
export function prerelease (version, options) {
var parsed = parse(version, options)
return (parsed && parsed.prerelease.length) ? parsed.prerelease : null
}

5
node_modules/es-semver/src/rcompare.js generated vendored Normal file
View File

@@ -0,0 +1,5 @@
import { compare } from './compare'
export function rcompare (a, b, loose) {
return compare(b, a, loose)
}

5
node_modules/es-semver/src/rcompareIdentifiers.js generated vendored Normal file
View File

@@ -0,0 +1,5 @@
import { compareIdentifiers } from './compareIdentifiers'
export function rcompareIdentifiers (a, b) {
return compareIdentifiers(b, a)
}

7
node_modules/es-semver/src/rsort.js generated vendored Normal file
View File

@@ -0,0 +1,7 @@
import { rcompare } from './rcompare'
export function rsort (list, loose) {
return list.sort(function (a, b) {
return rcompare(a, b, loose)
})
}

228
node_modules/es-semver/src/semver.js generated vendored Normal file
View File

@@ -0,0 +1,228 @@
import { compareIdentifiers } from './compareIdentifiers'
import { debug } from './debug'
import { LOOSE, FULL, re } from './src'
import { MAX_LENGTH } from './constants'
var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991
export function SemVer (version, options) {
if (!options || typeof options !== 'object') {
options = { loose: !!options, includePrerelease: false }
}
if (version instanceof SemVer) {
if (version.loose === options.loose) {
return version
} else {
version = version.version
}
} else if (typeof version !== 'string') {
throw new TypeError('Invalid Version: ' + version)
}
if (version.length > MAX_LENGTH) {
throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')
}
if (!(this instanceof SemVer)) {
return new SemVer(version, options)
}
debug('SemVer', version, options)
this.options = options
this.loose = !!options.loose
var m = version.trim().match(options.loose ? re[LOOSE] : re[FULL])
if (!m) {
throw new TypeError('Invalid Version: ' + version)
}
this.raw = version
// these are actually numbers
this.major = +m[1]
this.minor = +m[2]
this.patch = +m[3]
if (this.major > MAX_SAFE_INTEGER || this.major < 0) {
throw new TypeError('Invalid major version')
}
if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {
throw new TypeError('Invalid minor version')
}
if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {
throw new TypeError('Invalid patch version')
}
// numberify any prerelease numeric ids
if (!m[4]) {
this.prerelease = []
} else {
this.prerelease = m[4].split('.').map(function (id) {
if (/^[0-9]+$/.test(id)) {
var num = +id
if (num >= 0 && num < MAX_SAFE_INTEGER) {
return num
}
}
return id
})
}
this.build = m[5] ? m[5].split('.') : []
this.format()
}
SemVer.prototype.format = function () {
this.version = this.major + '.' + this.minor + '.' + this.patch
if (this.prerelease.length) {
this.version += '-' + this.prerelease.join('.')
}
return this.version
}
SemVer.prototype.toString = function () {
return this.version
}
SemVer.prototype.compare = function (other) {
debug('SemVer.compare', this.version, this.options, other)
if (!(other instanceof SemVer)) {
other = new SemVer(other, this.options)
}
return this.compareMain(other) || this.comparePre(other)
}
SemVer.prototype.compareMain = function (other) {
if (!(other instanceof SemVer)) {
other = new SemVer(other, this.options)
}
return (
compareIdentifiers(this.major, other.major) ||
compareIdentifiers(this.minor, other.minor) ||
compareIdentifiers(this.patch, other.patch)
)
}
SemVer.prototype.comparePre = function (other) {
if (!(other instanceof SemVer)) {
other = new SemVer(other, this.options)
}
// NOT having a prerelease is > having one
if (this.prerelease.length && !other.prerelease.length) {
return -1
} else if (!this.prerelease.length && other.prerelease.length) {
return 1
} else if (!this.prerelease.length && !other.prerelease.length) {
return 0
}
var i = 0
do {
var a = this.prerelease[i]
var b = other.prerelease[i]
debug('prerelease compare', i, a, b)
if (a === undefined && b === undefined) {
return 0
} else if (b === undefined) {
return 1
} else if (a === undefined) {
return -1
} else if (a === b) {
continue
} else {
return compareIdentifiers(a, b)
}
} while (++i)
}
// preminor will bump the version up to the next minor release, and immediately
// down to pre-release. premajor and prepatch work the same way.
SemVer.prototype.inc = function (release, identifier) {
switch (release) {
case 'premajor':
this.prerelease.length = 0
this.patch = 0
this.minor = 0
this.major++
this.inc('pre', identifier)
break
case 'preminor':
this.prerelease.length = 0
this.patch = 0
this.minor++
this.inc('pre', identifier)
break
case 'prepatch':
// If this is already a prerelease, it will bump to the next version
// drop any prereleases that might already exist, since they are not
// relevant at this point.
this.prerelease.length = 0
this.inc('patch', identifier)
this.inc('pre', identifier)
break
// If the input is a non-prerelease version, this acts the same as
// prepatch.
case 'prerelease':
if (this.prerelease.length === 0) {
this.inc('patch', identifier)
}
this.inc('pre', identifier)
break
case 'major':
// If this is a pre-major version, bump up to the same major version.
// Otherwise increment major.
// 1.0.0-5 bumps to 1.0.0
// 1.1.0 bumps to 2.0.0
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 is a pre-minor version, bump up to the same minor version.
// Otherwise increment minor.
// 1.2.0-5 bumps to 1.2.0
// 1.2.1 bumps to 1.3.0
if (this.patch !== 0 || this.prerelease.length === 0) {
this.minor++
}
this.patch = 0
this.prerelease = []
break
case 'patch':
// If this is not a pre-release version, it will increment the patch.
// If it is a pre-release it will bump up to the same patch version.
// 1.2.0-5 patches to 1.2.0
// 1.2.0 patches to 1.2.1
if (this.prerelease.length === 0) {
this.patch++
}
this.prerelease = []
break
// This probably shouldn't be used publicly.
// 1.0.0 "pre" would become 1.0.0-0 which is the wrong direction.
case 'pre':
if (this.prerelease.length === 0) {
this.prerelease = [0]
} else {
var i = this.prerelease.length
while (--i >= 0) {
if (typeof this.prerelease[i] === 'number') {
this.prerelease[i]++
i = -2
}
}
if (i === -1) {
// didn't increment anything
this.prerelease.push(0)
}
}
if (identifier) {
// 1.2.0-beta.1 bumps to 1.2.0-beta.2,
// 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0
if (this.prerelease[0] === identifier) {
if (isNaN(this.prerelease[1])) {
this.prerelease = [identifier, 0]
}
} else {
this.prerelease = [identifier, 0]
}
}
break
default:
throw new Error('invalid increment argument: ' + release)
}
this.format()
this.raw = this.version
return this
}

7
node_modules/es-semver/src/sort.js generated vendored Normal file
View File

@@ -0,0 +1,7 @@
import { compare } from './compare'
export function sort (list, loose) {
return list.sort(function (a, b) {
return compare(a, b, loose)
})
}

241
node_modules/es-semver/src/src.js generated vendored Normal file
View File

@@ -0,0 +1,241 @@
import { debug } from './debug'
// Max safe segment length for coercion.
var MAX_SAFE_COMPONENT_LENGTH = 16
export var src = []
var R = 0
// The actual regexps go on re
export var re = []
// The following Regular Expressions can be used for tokenizing,
// validating, and parsing SemVer version strings.
// ## Numeric Identifier
// A single `0`, or a non-zero digit followed by zero or more digits.
var NUMERICIDENTIFIER = R++
src[NUMERICIDENTIFIER] = '0|[1-9]\\d*'
var NUMERICIDENTIFIERLOOSE = R++
src[NUMERICIDENTIFIERLOOSE] = '[0-9]+'
// ## Non-numeric Identifier
// Zero or more digits, followed by a letter or hyphen, and then zero or
// more letters, digits, or hyphens.
var NONNUMERICIDENTIFIER = R++
src[NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*'
// ## Main Version
// Three dot-separated numeric identifiers.
var MAINVERSION = R++
src[MAINVERSION] =
'(' +
src[NUMERICIDENTIFIER] +
')\\.' +
'(' +
src[NUMERICIDENTIFIER] +
')\\.' +
'(' +
src[NUMERICIDENTIFIER] +
')'
var MAINVERSIONLOOSE = R++
src[MAINVERSIONLOOSE] =
'(' +
src[NUMERICIDENTIFIERLOOSE] +
')\\.' +
'(' +
src[NUMERICIDENTIFIERLOOSE] +
')\\.' +
'(' +
src[NUMERICIDENTIFIERLOOSE] +
')'
// ## Pre-release Version Identifier
// A numeric identifier, or a non-numeric identifier.
var PRERELEASEIDENTIFIER = R++
src[PRERELEASEIDENTIFIER] =
'(?:' + src[NUMERICIDENTIFIER] + '|' + src[NONNUMERICIDENTIFIER] + ')'
var PRERELEASEIDENTIFIERLOOSE = R++
src[PRERELEASEIDENTIFIERLOOSE] =
'(?:' + src[NUMERICIDENTIFIERLOOSE] + '|' + src[NONNUMERICIDENTIFIER] + ')'
// ## Pre-release Version
// Hyphen, followed by one or more dot-separated pre-release version
// identifiers.
var PRERELEASE = R++
src[PRERELEASE] =
'(?:-(' +
src[PRERELEASEIDENTIFIER] +
'(?:\\.' +
src[PRERELEASEIDENTIFIER] +
')*))'
var PRERELEASELOOSE = R++
src[PRERELEASELOOSE] =
'(?:-?(' +
src[PRERELEASEIDENTIFIERLOOSE] +
'(?:\\.' +
src[PRERELEASEIDENTIFIERLOOSE] +
')*))'
// ## Build Metadata Identifier
// Any combination of digits, letters, or hyphens.
var BUILDIDENTIFIER = R++
src[BUILDIDENTIFIER] = '[0-9A-Za-z-]+'
// ## Build Metadata
// Plus sign, followed by one or more period-separated build metadata
// identifiers.
var BUILD = R++
src[BUILD] =
'(?:\\+(' + src[BUILDIDENTIFIER] + '(?:\\.' + src[BUILDIDENTIFIER] + ')*))'
// ## Full Version String
// A main version, followed optionally by a pre-release version and
// build metadata.
// Note that the only major, minor, patch, and pre-release sections of
// the version string are capturing groups. The build metadata is not a
// capturing group, because it should not ever be used in version
// comparison.
export var FULL = R++
var FULLPLAIN =
'v?' + src[MAINVERSION] + src[PRERELEASE] + '?' + src[BUILD] + '?'
src[FULL] = '^' + FULLPLAIN + '$'
// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.
// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty
// common in the npm registry.
var LOOSEPLAIN =
'[v=\\s]*' +
src[MAINVERSIONLOOSE] +
src[PRERELEASELOOSE] +
'?' +
src[BUILD] +
'?'
export var LOOSE = R++
src[LOOSE] = '^' + LOOSEPLAIN + '$'
var GTLT = R++
src[GTLT] = '((?:<|>)?=?)'
// Something like "2.*" or "1.2.x".
// Note that "x.x" is a valid xRange identifer, meaning "any version"
// Only the first item is strictly required.
var XRANGEIDENTIFIERLOOSE = R++
src[XRANGEIDENTIFIERLOOSE] = src[NUMERICIDENTIFIERLOOSE] + '|x|X|\\*'
var XRANGEIDENTIFIER = R++
src[XRANGEIDENTIFIER] = src[NUMERICIDENTIFIER] + '|x|X|\\*'
var XRANGEPLAIN = R++
src[XRANGEPLAIN] =
'[v=\\s]*(' +
src[XRANGEIDENTIFIER] +
')' +
'(?:\\.(' +
src[XRANGEIDENTIFIER] +
')' +
'(?:\\.(' +
src[XRANGEIDENTIFIER] +
')' +
'(?:' +
src[PRERELEASE] +
')?' +
src[BUILD] +
'?' +
')?)?'
var XRANGEPLAINLOOSE = R++
src[XRANGEPLAINLOOSE] =
'[v=\\s]*(' +
src[XRANGEIDENTIFIERLOOSE] +
')' +
'(?:\\.(' +
src[XRANGEIDENTIFIERLOOSE] +
')' +
'(?:\\.(' +
src[XRANGEIDENTIFIERLOOSE] +
')' +
'(?:' +
src[PRERELEASELOOSE] +
')?' +
src[BUILD] +
'?' +
')?)?'
export var XRANGE = R++
src[XRANGE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAIN] + '$'
export var XRANGELOOSE = R++
src[XRANGELOOSE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAINLOOSE] + '$'
// Coercion.
// Extract anything that could conceivably be a part of a valid semver
export var COERCE = R++
src[COERCE] =
'(?:^|[^\\d])' +
'(\\d{1,' +
MAX_SAFE_COMPONENT_LENGTH +
'})' +
'(?:\\.(\\d{1,' +
MAX_SAFE_COMPONENT_LENGTH +
'}))?' +
'(?:\\.(\\d{1,' +
MAX_SAFE_COMPONENT_LENGTH +
'}))?' +
'(?:$|[^\\d])'
// Tilde ranges.
// Meaning is "reasonably at or greater than"
var LONETILDE = R++
src[LONETILDE] = '(?:~>?)'
export var TILDETRIM = R++
src[TILDETRIM] = '(\\s*)' + src[LONETILDE] + '\\s+'
re[TILDETRIM] = new RegExp(src[TILDETRIM], 'g')
export var tildeTrimReplace = '$1~'
export var TILDE = R++
src[TILDE] = '^' + src[LONETILDE] + src[XRANGEPLAIN] + '$'
export var TILDELOOSE = R++
src[TILDELOOSE] = '^' + src[LONETILDE] + src[XRANGEPLAINLOOSE] + '$'
// Caret ranges.
// Meaning is "at least and backwards compatible with"
var LONECARET = R++
src[LONECARET] = '(?:\\^)'
export var CARETTRIM = R++
src[CARETTRIM] = '(\\s*)' + src[LONECARET] + '\\s+'
re[CARETTRIM] = new RegExp(src[CARETTRIM], 'g')
export var caretTrimReplace = '$1^'
export var CARET = R++
src[CARET] = '^' + src[LONECARET] + src[XRANGEPLAIN] + '$'
export var CARETLOOSE = R++
src[CARETLOOSE] = '^' + src[LONECARET] + src[XRANGEPLAINLOOSE] + '$'
// A simple gt/lt/eq thing, or just "" to indicate "any version"
export var COMPARATORLOOSE = R++
src[COMPARATORLOOSE] = '^' + src[GTLT] + '\\s*(' + LOOSEPLAIN + ')$|^$'
export var COMPARATOR = R++
src[COMPARATOR] = '^' + src[GTLT] + '\\s*(' + FULLPLAIN + ')$|^$'
// An expression to strip any whitespace between the gtlt and the thing
// it modifies, so that `> 1.2.3` ==> `>1.2.3`
export var COMPARATORTRIM = R++
src[COMPARATORTRIM] =
'(\\s*)' + src[GTLT] + '\\s*(' + LOOSEPLAIN + '|' + src[XRANGEPLAIN] + ')'
// this one has to use the /g flag
re[COMPARATORTRIM] = new RegExp(src[COMPARATORTRIM], 'g')
export var comparatorTrimReplace = '$1$2$3'
// Something like `1.2.3 - 1.2.4`
// Note that these all use the loose form, because they'll be
// checked against either the strict or loose comparator form
// later.
export var HYPHENRANGE = R++
src[HYPHENRANGE] =
'^\\s*(' +
src[XRANGEPLAIN] +
')' +
'\\s+-\\s+' +
'(' +
src[XRANGEPLAIN] +
')' +
'\\s*$'
export var HYPHENRANGELOOSE = R++
src[HYPHENRANGELOOSE] =
'^\\s*(' +
src[XRANGEPLAINLOOSE] +
')' +
'\\s+-\\s+' +
'(' +
src[XRANGEPLAINLOOSE] +
')' +
'\\s*$'
// Star ranges basically just allow anything at all.
export var STAR = R++
src[STAR] = '(<|>)?=?\\s*\\*'
// Compile to actual regexp objects.
// All are flag-free, unless they were created above with a flag.
for (var i = 0; i < R; i++) {
debug(i, src[i])
if (!re[i]) {
re[i] = new RegExp(src[i])
}
}

6
node_modules/es-semver/src/valid.js generated vendored Normal file
View File

@@ -0,0 +1,6 @@
import { parse } from './parse'
export function valid (version, options) {
var v = parse(version, options)
return v ? v.version : null
}

11
node_modules/es-semver/src/validRange.js generated vendored Normal file
View File

@@ -0,0 +1,11 @@
import { Range } from './Range'
export function validRange (range, options) {
try {
// Return '*' instead of '' so that truthiness works.
// This will throw if it's invalid anyway
return new Range(range, options).range || '*'
} catch (er) {
return null
}
}