|
|
@ -7276,8 +7276,11 @@ var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||
|
|
|
|
// Max safe segment length for coercion.
|
|
|
|
// Max safe segment length for coercion.
|
|
|
|
var MAX_SAFE_COMPONENT_LENGTH = 16
|
|
|
|
var MAX_SAFE_COMPONENT_LENGTH = 16
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6
|
|
|
|
|
|
|
|
|
|
|
|
// The actual regexps go on exports.re
|
|
|
|
// The actual regexps go on exports.re
|
|
|
|
var re = exports.re = []
|
|
|
|
var re = exports.re = []
|
|
|
|
|
|
|
|
var safeRe = exports.safeRe = []
|
|
|
|
var src = exports.src = []
|
|
|
|
var src = exports.src = []
|
|
|
|
var t = exports.tokens = {}
|
|
|
|
var t = exports.tokens = {}
|
|
|
|
var R = 0
|
|
|
|
var R = 0
|
|
|
@ -7286,6 +7289,31 @@ function tok (n) {
|
|
|
|
t[n] = R++
|
|
|
|
t[n] = R++
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var LETTERDASHNUMBER = '[a-zA-Z0-9-]'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Replace some greedy regex tokens to prevent regex dos issues. These regex are
|
|
|
|
|
|
|
|
// used internally via the safeRe object since all inputs in this library get
|
|
|
|
|
|
|
|
// normalized first to trim and collapse all extra whitespace. The original
|
|
|
|
|
|
|
|
// regexes are exported for userland consumption and lower level usage. A
|
|
|
|
|
|
|
|
// future breaking change could export the safer regex only with a note that
|
|
|
|
|
|
|
|
// all input should have extra whitespace removed.
|
|
|
|
|
|
|
|
var safeRegexReplacements = [
|
|
|
|
|
|
|
|
['\\s', 1],
|
|
|
|
|
|
|
|
['\\d', MAX_LENGTH],
|
|
|
|
|
|
|
|
[LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],
|
|
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function makeSafeRe (value) {
|
|
|
|
|
|
|
|
for (var i = 0; i < safeRegexReplacements.length; i++) {
|
|
|
|
|
|
|
|
var token = safeRegexReplacements[i][0]
|
|
|
|
|
|
|
|
var max = safeRegexReplacements[i][1]
|
|
|
|
|
|
|
|
value = value
|
|
|
|
|
|
|
|
.split(token + '*').join(token + '{0,' + max + '}')
|
|
|
|
|
|
|
|
.split(token + '+').join(token + '{1,' + max + '}')
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return value
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// The following Regular Expressions can be used for tokenizing,
|
|
|
|
// The following Regular Expressions can be used for tokenizing,
|
|
|
|
// validating, and parsing SemVer version strings.
|
|
|
|
// validating, and parsing SemVer version strings.
|
|
|
|
|
|
|
|
|
|
|
@ -7295,14 +7323,14 @@ function tok (n) {
|
|
|
|
tok('NUMERICIDENTIFIER')
|
|
|
|
tok('NUMERICIDENTIFIER')
|
|
|
|
src[t.NUMERICIDENTIFIER] = '0|[1-9]\\d*'
|
|
|
|
src[t.NUMERICIDENTIFIER] = '0|[1-9]\\d*'
|
|
|
|
tok('NUMERICIDENTIFIERLOOSE')
|
|
|
|
tok('NUMERICIDENTIFIERLOOSE')
|
|
|
|
src[t.NUMERICIDENTIFIERLOOSE] = '[0-9]+'
|
|
|
|
src[t.NUMERICIDENTIFIERLOOSE] = '\\d+'
|
|
|
|
|
|
|
|
|
|
|
|
// ## Non-numeric Identifier
|
|
|
|
// ## Non-numeric Identifier
|
|
|
|
// Zero or more digits, followed by a letter or hyphen, and then zero or
|
|
|
|
// Zero or more digits, followed by a letter or hyphen, and then zero or
|
|
|
|
// more letters, digits, or hyphens.
|
|
|
|
// more letters, digits, or hyphens.
|
|
|
|
|
|
|
|
|
|
|
|
tok('NONNUMERICIDENTIFIER')
|
|
|
|
tok('NONNUMERICIDENTIFIER')
|
|
|
|
src[t.NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-][a-zA-Z0-9-]*'
|
|
|
|
src[t.NONNUMERICIDENTIFIER] = '\\d*[a-zA-Z-]' + LETTERDASHNUMBER + '*'
|
|
|
|
|
|
|
|
|
|
|
|
// ## Main Version
|
|
|
|
// ## Main Version
|
|
|
|
// Three dot-separated numeric identifiers.
|
|
|
|
// Three dot-separated numeric identifiers.
|
|
|
@ -7344,7 +7372,7 @@ src[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +
|
|
|
|
// Any combination of digits, letters, or hyphens.
|
|
|
|
// Any combination of digits, letters, or hyphens.
|
|
|
|
|
|
|
|
|
|
|
|
tok('BUILDIDENTIFIER')
|
|
|
|
tok('BUILDIDENTIFIER')
|
|
|
|
src[t.BUILDIDENTIFIER] = '[0-9A-Za-z-]+'
|
|
|
|
src[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + '+'
|
|
|
|
|
|
|
|
|
|
|
|
// ## Build Metadata
|
|
|
|
// ## Build Metadata
|
|
|
|
// Plus sign, followed by one or more period-separated build metadata
|
|
|
|
// Plus sign, followed by one or more period-separated build metadata
|
|
|
@ -7424,6 +7452,7 @@ src[t.COERCE] = '(^|[^\\d])' +
|
|
|
|
'(?:$|[^\\d])'
|
|
|
|
'(?:$|[^\\d])'
|
|
|
|
tok('COERCERTL')
|
|
|
|
tok('COERCERTL')
|
|
|
|
re[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')
|
|
|
|
re[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')
|
|
|
|
|
|
|
|
safeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), 'g')
|
|
|
|
|
|
|
|
|
|
|
|
// Tilde ranges.
|
|
|
|
// Tilde ranges.
|
|
|
|
// Meaning is "reasonably at or greater than"
|
|
|
|
// Meaning is "reasonably at or greater than"
|
|
|
@ -7433,6 +7462,7 @@ src[t.LONETILDE] = '(?:~>?)'
|
|
|
|
tok('TILDETRIM')
|
|
|
|
tok('TILDETRIM')
|
|
|
|
src[t.TILDETRIM] = '(\\s*)' + src[t.LONETILDE] + '\\s+'
|
|
|
|
src[t.TILDETRIM] = '(\\s*)' + src[t.LONETILDE] + '\\s+'
|
|
|
|
re[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')
|
|
|
|
re[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')
|
|
|
|
|
|
|
|
safeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), 'g')
|
|
|
|
var tildeTrimReplace = '$1~'
|
|
|
|
var tildeTrimReplace = '$1~'
|
|
|
|
|
|
|
|
|
|
|
|
tok('TILDE')
|
|
|
|
tok('TILDE')
|
|
|
@ -7448,6 +7478,7 @@ src[t.LONECARET] = '(?:\\^)'
|
|
|
|
tok('CARETTRIM')
|
|
|
|
tok('CARETTRIM')
|
|
|
|
src[t.CARETTRIM] = '(\\s*)' + src[t.LONECARET] + '\\s+'
|
|
|
|
src[t.CARETTRIM] = '(\\s*)' + src[t.LONECARET] + '\\s+'
|
|
|
|
re[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')
|
|
|
|
re[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')
|
|
|
|
|
|
|
|
safeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), 'g')
|
|
|
|
var caretTrimReplace = '$1^'
|
|
|
|
var caretTrimReplace = '$1^'
|
|
|
|
|
|
|
|
|
|
|
|
tok('CARET')
|
|
|
|
tok('CARET')
|
|
|
@ -7469,6 +7500,7 @@ src[t.COMPARATORTRIM] = '(\\s*)' + src[t.GTLT] +
|
|
|
|
|
|
|
|
|
|
|
|
// this one has to use the /g flag
|
|
|
|
// this one has to use the /g flag
|
|
|
|
re[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')
|
|
|
|
re[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')
|
|
|
|
|
|
|
|
safeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), 'g')
|
|
|
|
var comparatorTrimReplace = '$1$2$3'
|
|
|
|
var comparatorTrimReplace = '$1$2$3'
|
|
|
|
|
|
|
|
|
|
|
|
// Something like `1.2.3 - 1.2.4`
|
|
|
|
// Something like `1.2.3 - 1.2.4`
|
|
|
@ -7497,6 +7529,14 @@ for (var i = 0; i < R; i++) {
|
|
|
|
debug(i, src[i])
|
|
|
|
debug(i, src[i])
|
|
|
|
if (!re[i]) {
|
|
|
|
if (!re[i]) {
|
|
|
|
re[i] = new RegExp(src[i])
|
|
|
|
re[i] = new RegExp(src[i])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Replace all greedy whitespace to prevent regex dos issues. These regex are
|
|
|
|
|
|
|
|
// used internally via the safeRe object since all inputs in this library get
|
|
|
|
|
|
|
|
// normalized first to trim and collapse all extra whitespace. The original
|
|
|
|
|
|
|
|
// regexes are exported for userland consumption and lower level usage. A
|
|
|
|
|
|
|
|
// future breaking change could export the safer regex only with a note that
|
|
|
|
|
|
|
|
// all input should have extra whitespace removed.
|
|
|
|
|
|
|
|
safeRe[i] = new RegExp(makeSafeRe(src[i]))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -7521,7 +7561,7 @@ function parse (version, options) {
|
|
|
|
return null
|
|
|
|
return null
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
var r = options.loose ? re[t.LOOSE] : re[t.FULL]
|
|
|
|
var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]
|
|
|
|
if (!r.test(version)) {
|
|
|
|
if (!r.test(version)) {
|
|
|
|
return null
|
|
|
|
return null
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -7576,7 +7616,7 @@ function SemVer (version, options) {
|
|
|
|
this.options = options
|
|
|
|
this.options = options
|
|
|
|
this.loose = !!options.loose
|
|
|
|
this.loose = !!options.loose
|
|
|
|
|
|
|
|
|
|
|
|
var m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])
|
|
|
|
var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL])
|
|
|
|
|
|
|
|
|
|
|
|
if (!m) {
|
|
|
|
if (!m) {
|
|
|
|
throw new TypeError('Invalid Version: ' + version)
|
|
|
|
throw new TypeError('Invalid Version: ' + version)
|
|
|
@ -8021,6 +8061,7 @@ function Comparator (comp, options) {
|
|
|
|
return new Comparator(comp, options)
|
|
|
|
return new Comparator(comp, options)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
comp = comp.trim().split(/\s+/).join(' ')
|
|
|
|
debug('comparator', comp, options)
|
|
|
|
debug('comparator', comp, options)
|
|
|
|
this.options = options
|
|
|
|
this.options = options
|
|
|
|
this.loose = !!options.loose
|
|
|
|
this.loose = !!options.loose
|
|
|
@ -8037,7 +8078,7 @@ function Comparator (comp, options) {
|
|
|
|
|
|
|
|
|
|
|
|
var ANY = {}
|
|
|
|
var ANY = {}
|
|
|
|
Comparator.prototype.parse = function (comp) {
|
|
|
|
Comparator.prototype.parse = function (comp) {
|
|
|
|
var r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]
|
|
|
|
var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]
|
|
|
|
var m = comp.match(r)
|
|
|
|
var m = comp.match(r)
|
|
|
|
|
|
|
|
|
|
|
|
if (!m) {
|
|
|
|
if (!m) {
|
|
|
@ -8161,9 +8202,16 @@ function Range (range, options) {
|
|
|
|
this.loose = !!options.loose
|
|
|
|
this.loose = !!options.loose
|
|
|
|
this.includePrerelease = !!options.includePrerelease
|
|
|
|
this.includePrerelease = !!options.includePrerelease
|
|
|
|
|
|
|
|
|
|
|
|
// First, split based on boolean or ||
|
|
|
|
// First reduce all whitespace as much as possible so we do not have to rely
|
|
|
|
|
|
|
|
// on potentially slow regexes like \s*. This is then stored and used for
|
|
|
|
|
|
|
|
// future error messages as well.
|
|
|
|
this.raw = range
|
|
|
|
this.raw = range
|
|
|
|
this.set = range.split(/\s*\|\|\s*/).map(function (range) {
|
|
|
|
.trim()
|
|
|
|
|
|
|
|
.split(/\s+/)
|
|
|
|
|
|
|
|
.join(' ')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// First, split based on boolean or ||
|
|
|
|
|
|
|
|
this.set = this.raw.split('||').map(function (range) {
|
|
|
|
return this.parseRange(range.trim())
|
|
|
|
return this.parseRange(range.trim())
|
|
|
|
}, this).filter(function (c) {
|
|
|
|
}, this).filter(function (c) {
|
|
|
|
// throw out any that are not relevant for whatever reason
|
|
|
|
// throw out any that are not relevant for whatever reason
|
|
|
@ -8171,7 +8219,7 @@ function Range (range, options) {
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
if (!this.set.length) {
|
|
|
|
if (!this.set.length) {
|
|
|
|
throw new TypeError('Invalid SemVer Range: ' + range)
|
|
|
|
throw new TypeError('Invalid SemVer Range: ' + this.raw)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
this.format()
|
|
|
|
this.format()
|
|
|
@ -8190,20 +8238,19 @@ Range.prototype.toString = function () {
|
|
|
|
|
|
|
|
|
|
|
|
Range.prototype.parseRange = function (range) {
|
|
|
|
Range.prototype.parseRange = function (range) {
|
|
|
|
var loose = this.options.loose
|
|
|
|
var loose = this.options.loose
|
|
|
|
range = range.trim()
|
|
|
|
|
|
|
|
// `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`
|
|
|
|
// `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`
|
|
|
|
var hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]
|
|
|
|
var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE]
|
|
|
|
range = range.replace(hr, hyphenReplace)
|
|
|
|
range = range.replace(hr, hyphenReplace)
|
|
|
|
debug('hyphen replace', range)
|
|
|
|
debug('hyphen replace', range)
|
|
|
|
// `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`
|
|
|
|
// `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`
|
|
|
|
range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)
|
|
|
|
range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace)
|
|
|
|
debug('comparator trim', range, re[t.COMPARATORTRIM])
|
|
|
|
debug('comparator trim', range, safeRe[t.COMPARATORTRIM])
|
|
|
|
|
|
|
|
|
|
|
|
// `~ 1.2.3` => `~1.2.3`
|
|
|
|
// `~ 1.2.3` => `~1.2.3`
|
|
|
|
range = range.replace(re[t.TILDETRIM], tildeTrimReplace)
|
|
|
|
range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace)
|
|
|
|
|
|
|
|
|
|
|
|
// `^ 1.2.3` => `^1.2.3`
|
|
|
|
// `^ 1.2.3` => `^1.2.3`
|
|
|
|
range = range.replace(re[t.CARETTRIM], caretTrimReplace)
|
|
|
|
range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace)
|
|
|
|
|
|
|
|
|
|
|
|
// normalize spaces
|
|
|
|
// normalize spaces
|
|
|
|
range = range.split(/\s+/).join(' ')
|
|
|
|
range = range.split(/\s+/).join(' ')
|
|
|
@ -8211,7 +8258,7 @@ Range.prototype.parseRange = function (range) {
|
|
|
|
// At this point, the range is completely trimmed and
|
|
|
|
// At this point, the range is completely trimmed and
|
|
|
|
// ready to be split into comparators.
|
|
|
|
// ready to be split into comparators.
|
|
|
|
|
|
|
|
|
|
|
|
var compRe = loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]
|
|
|
|
var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]
|
|
|
|
var set = range.split(' ').map(function (comp) {
|
|
|
|
var set = range.split(' ').map(function (comp) {
|
|
|
|
return parseComparator(comp, this.options)
|
|
|
|
return parseComparator(comp, this.options)
|
|
|
|
}, this).join(' ').split(/\s+/)
|
|
|
|
}, this).join(' ').split(/\s+/)
|
|
|
@ -8311,7 +8358,7 @@ function replaceTildes (comp, options) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function replaceTilde (comp, options) {
|
|
|
|
function replaceTilde (comp, options) {
|
|
|
|
var r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]
|
|
|
|
var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE]
|
|
|
|
return comp.replace(r, function (_, M, m, p, pr) {
|
|
|
|
return comp.replace(r, function (_, M, m, p, pr) {
|
|
|
|
debug('tilde', comp, _, M, m, p, pr)
|
|
|
|
debug('tilde', comp, _, M, m, p, pr)
|
|
|
|
var ret
|
|
|
|
var ret
|
|
|
@ -8352,7 +8399,7 @@ function replaceCarets (comp, options) {
|
|
|
|
|
|
|
|
|
|
|
|
function replaceCaret (comp, options) {
|
|
|
|
function replaceCaret (comp, options) {
|
|
|
|
debug('caret', comp, options)
|
|
|
|
debug('caret', comp, options)
|
|
|
|
var r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]
|
|
|
|
var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET]
|
|
|
|
return comp.replace(r, function (_, M, m, p, pr) {
|
|
|
|
return comp.replace(r, function (_, M, m, p, pr) {
|
|
|
|
debug('caret', comp, _, M, m, p, pr)
|
|
|
|
debug('caret', comp, _, M, m, p, pr)
|
|
|
|
var ret
|
|
|
|
var ret
|
|
|
@ -8411,7 +8458,7 @@ function replaceXRanges (comp, options) {
|
|
|
|
|
|
|
|
|
|
|
|
function replaceXRange (comp, options) {
|
|
|
|
function replaceXRange (comp, options) {
|
|
|
|
comp = comp.trim()
|
|
|
|
comp = comp.trim()
|
|
|
|
var r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]
|
|
|
|
var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE]
|
|
|
|
return comp.replace(r, function (ret, gtlt, M, m, p, pr) {
|
|
|
|
return comp.replace(r, function (ret, gtlt, M, m, p, pr) {
|
|
|
|
debug('xRange', comp, ret, gtlt, M, m, p, pr)
|
|
|
|
debug('xRange', comp, ret, gtlt, M, m, p, pr)
|
|
|
|
var xM = isX(M)
|
|
|
|
var xM = isX(M)
|
|
|
@ -8486,7 +8533,7 @@ function replaceXRange (comp, options) {
|
|
|
|
function replaceStars (comp, options) {
|
|
|
|
function replaceStars (comp, options) {
|
|
|
|
debug('replaceStars', comp, options)
|
|
|
|
debug('replaceStars', comp, options)
|
|
|
|
// Looseness is ignored here. star is always as loose as it gets!
|
|
|
|
// Looseness is ignored here. star is always as loose as it gets!
|
|
|
|
return comp.trim().replace(re[t.STAR], '')
|
|
|
|
return comp.trim().replace(safeRe[t.STAR], '')
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// This function is passed to string.replace(re[t.HYPHENRANGE])
|
|
|
|
// This function is passed to string.replace(re[t.HYPHENRANGE])
|
|
|
@ -8812,7 +8859,7 @@ function coerce (version, options) {
|
|
|
|
|
|
|
|
|
|
|
|
var match = null
|
|
|
|
var match = null
|
|
|
|
if (!options.rtl) {
|
|
|
|
if (!options.rtl) {
|
|
|
|
match = version.match(re[t.COERCE])
|
|
|
|
match = version.match(safeRe[t.COERCE])
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
// Find the right-most coercible string that does not share
|
|
|
|
// Find the right-most coercible string that does not share
|
|
|
|
// a terminus with a more left-ward coercible string.
|
|
|
|
// a terminus with a more left-ward coercible string.
|
|
|
@ -8823,17 +8870,17 @@ function coerce (version, options) {
|
|
|
|
// Stop when we get a match that ends at the string end, since no
|
|
|
|
// Stop when we get a match that ends at the string end, since no
|
|
|
|
// coercible string can be more right-ward without the same terminus.
|
|
|
|
// coercible string can be more right-ward without the same terminus.
|
|
|
|
var next
|
|
|
|
var next
|
|
|
|
while ((next = re[t.COERCERTL].exec(version)) &&
|
|
|
|
while ((next = safeRe[t.COERCERTL].exec(version)) &&
|
|
|
|
(!match || match.index + match[0].length !== version.length)
|
|
|
|
(!match || match.index + match[0].length !== version.length)
|
|
|
|
) {
|
|
|
|
) {
|
|
|
|
if (!match ||
|
|
|
|
if (!match ||
|
|
|
|
next.index + next[0].length !== match.index + match[0].length) {
|
|
|
|
next.index + next[0].length !== match.index + match[0].length) {
|
|
|
|
match = next
|
|
|
|
match = next
|
|
|
|
}
|
|
|
|
}
|
|
|
|
re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length
|
|
|
|
safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// leave it in a clean state
|
|
|
|
// leave it in a clean state
|
|
|
|
re[t.COERCERTL].lastIndex = -1
|
|
|
|
safeRe[t.COERCERTL].lastIndex = -1
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (match === null) {
|
|
|
|
if (match === null) {
|
|
|
@ -50262,14 +50309,14 @@ exports.propagation = propagation_1.PropagationAPI.getInstance();
|
|
|
|
this.saxParser.onopentag = (function(_this) {
|
|
|
|
this.saxParser.onopentag = (function(_this) {
|
|
|
|
return function(node) {
|
|
|
|
return function(node) {
|
|
|
|
var key, newValue, obj, processedKey, ref;
|
|
|
|
var key, newValue, obj, processedKey, ref;
|
|
|
|
obj = {};
|
|
|
|
obj = Object.create(null);
|
|
|
|
obj[charkey] = "";
|
|
|
|
obj[charkey] = "";
|
|
|
|
if (!_this.options.ignoreAttrs) {
|
|
|
|
if (!_this.options.ignoreAttrs) {
|
|
|
|
ref = node.attributes;
|
|
|
|
ref = node.attributes;
|
|
|
|
for (key in ref) {
|
|
|
|
for (key in ref) {
|
|
|
|
if (!hasProp.call(ref, key)) continue;
|
|
|
|
if (!hasProp.call(ref, key)) continue;
|
|
|
|
if (!(attrkey in obj) && !_this.options.mergeAttrs) {
|
|
|
|
if (!(attrkey in obj) && !_this.options.mergeAttrs) {
|
|
|
|
obj[attrkey] = {};
|
|
|
|
obj[attrkey] = Object.create(null);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
newValue = _this.options.attrValueProcessors ? processItem(_this.options.attrValueProcessors, node.attributes[key], key) : node.attributes[key];
|
|
|
|
newValue = _this.options.attrValueProcessors ? processItem(_this.options.attrValueProcessors, node.attributes[key], key) : node.attributes[key];
|
|
|
|
processedKey = _this.options.attrNameProcessors ? processItem(_this.options.attrNameProcessors, key) : key;
|
|
|
|
processedKey = _this.options.attrNameProcessors ? processItem(_this.options.attrNameProcessors, key) : key;
|
|
|
@ -50319,8 +50366,12 @@ exports.propagation = propagation_1.PropagationAPI.getInstance();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (isEmpty(obj)) {
|
|
|
|
if (isEmpty(obj)) {
|
|
|
|
|
|
|
|
if (typeof _this.options.emptyTag === 'function') {
|
|
|
|
|
|
|
|
obj = _this.options.emptyTag();
|
|
|
|
|
|
|
|
} else {
|
|
|
|
obj = _this.options.emptyTag !== '' ? _this.options.emptyTag : emptyStr;
|
|
|
|
obj = _this.options.emptyTag !== '' ? _this.options.emptyTag : emptyStr;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
if (_this.options.validator != null) {
|
|
|
|
if (_this.options.validator != null) {
|
|
|
|
xpath = "/" + ((function() {
|
|
|
|
xpath = "/" + ((function() {
|
|
|
|
var i, len, results;
|
|
|
|
var i, len, results;
|
|
|
@ -50343,7 +50394,7 @@ exports.propagation = propagation_1.PropagationAPI.getInstance();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (_this.options.explicitChildren && !_this.options.mergeAttrs && typeof obj === 'object') {
|
|
|
|
if (_this.options.explicitChildren && !_this.options.mergeAttrs && typeof obj === 'object') {
|
|
|
|
if (!_this.options.preserveChildrenOrder) {
|
|
|
|
if (!_this.options.preserveChildrenOrder) {
|
|
|
|
node = {};
|
|
|
|
node = Object.create(null);
|
|
|
|
if (_this.options.attrkey in obj) {
|
|
|
|
if (_this.options.attrkey in obj) {
|
|
|
|
node[_this.options.attrkey] = obj[_this.options.attrkey];
|
|
|
|
node[_this.options.attrkey] = obj[_this.options.attrkey];
|
|
|
|
delete obj[_this.options.attrkey];
|
|
|
|
delete obj[_this.options.attrkey];
|
|
|
@ -50358,7 +50409,7 @@ exports.propagation = propagation_1.PropagationAPI.getInstance();
|
|
|
|
obj = node;
|
|
|
|
obj = node;
|
|
|
|
} else if (s) {
|
|
|
|
} else if (s) {
|
|
|
|
s[_this.options.childkey] = s[_this.options.childkey] || [];
|
|
|
|
s[_this.options.childkey] = s[_this.options.childkey] || [];
|
|
|
|
objClone = {};
|
|
|
|
objClone = Object.create(null);
|
|
|
|
for (key in obj) {
|
|
|
|
for (key in obj) {
|
|
|
|
if (!hasProp.call(obj, key)) continue;
|
|
|
|
if (!hasProp.call(obj, key)) continue;
|
|
|
|
objClone[key] = obj[key];
|
|
|
|
objClone[key] = obj[key];
|
|
|
@ -50375,7 +50426,7 @@ exports.propagation = propagation_1.PropagationAPI.getInstance();
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
if (_this.options.explicitRoot) {
|
|
|
|
if (_this.options.explicitRoot) {
|
|
|
|
old = obj;
|
|
|
|
old = obj;
|
|
|
|
obj = {};
|
|
|
|
obj = Object.create(null);
|
|
|
|
obj[nodeName] = old;
|
|
|
|
obj[nodeName] = old;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
_this.resultObject = obj;
|
|
|
|
_this.resultObject = obj;
|
|
|
@ -54988,7 +55039,7 @@ class HttpHeaders {
|
|
|
|
set(headerName, headerValue) {
|
|
|
|
set(headerName, headerValue) {
|
|
|
|
this._headersMap[getHeaderKey(headerName)] = {
|
|
|
|
this._headersMap[getHeaderKey(headerName)] = {
|
|
|
|
name: headerName,
|
|
|
|
name: headerName,
|
|
|
|
value: headerValue.toString(),
|
|
|
|
value: headerValue.toString().trim(),
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -55128,7 +55179,7 @@ const Constants = {
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* The core-http version
|
|
|
|
* The core-http version
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
coreHttpVersion: "3.0.0",
|
|
|
|
coreHttpVersion: "3.0.4",
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Specifies HTTP.
|
|
|
|
* Specifies HTTP.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
@ -55206,13 +55257,6 @@ const XML_CHARKEY = "_";
|
|
|
|
|
|
|
|
|
|
|
|
// Copyright (c) Microsoft Corporation.
|
|
|
|
// Copyright (c) Microsoft Corporation.
|
|
|
|
const validUuidRegex = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/i;
|
|
|
|
const validUuidRegex = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/i;
|
|
|
|
/**
|
|
|
|
|
|
|
|
* A constant that indicates whether the environment is node.js or browser based.
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
const isNode = typeof process !== "undefined" &&
|
|
|
|
|
|
|
|
!!process.version &&
|
|
|
|
|
|
|
|
!!process.versions &&
|
|
|
|
|
|
|
|
!!process.versions.node;
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Encodes an URI.
|
|
|
|
* Encodes an URI.
|
|
|
|
*
|
|
|
|
*
|
|
|
@ -59893,7 +59937,7 @@ function createDefaultRequestPolicyFactories(authPolicyFactory, options) {
|
|
|
|
factories.push(throttlingRetryPolicy());
|
|
|
|
factories.push(throttlingRetryPolicy());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
factories.push(deserializationPolicy(options.deserializationContentTypes));
|
|
|
|
factories.push(deserializationPolicy(options.deserializationContentTypes));
|
|
|
|
if (isNode) {
|
|
|
|
if (coreUtil.isNode) {
|
|
|
|
factories.push(proxyPolicy(options.proxySettings));
|
|
|
|
factories.push(proxyPolicy(options.proxySettings));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
factories.push(logPolicy({ logger: logger.info }));
|
|
|
|
factories.push(logPolicy({ logger: logger.info }));
|
|
|
@ -59925,7 +59969,7 @@ function createPipelineFromOptions(pipelineOptions, authPolicyFactory) {
|
|
|
|
const keepAliveOptions = Object.assign(Object.assign({}, DefaultKeepAliveOptions), pipelineOptions.keepAliveOptions);
|
|
|
|
const keepAliveOptions = Object.assign(Object.assign({}, DefaultKeepAliveOptions), pipelineOptions.keepAliveOptions);
|
|
|
|
const retryOptions = Object.assign(Object.assign({}, DefaultRetryOptions), pipelineOptions.retryOptions);
|
|
|
|
const retryOptions = Object.assign(Object.assign({}, DefaultRetryOptions), pipelineOptions.retryOptions);
|
|
|
|
const redirectOptions = Object.assign(Object.assign({}, DefaultRedirectOptions), pipelineOptions.redirectOptions);
|
|
|
|
const redirectOptions = Object.assign(Object.assign({}, DefaultRedirectOptions), pipelineOptions.redirectOptions);
|
|
|
|
if (isNode) {
|
|
|
|
if (coreUtil.isNode) {
|
|
|
|
requestPolicyFactories.push(proxyPolicy(pipelineOptions.proxyOptions));
|
|
|
|
requestPolicyFactories.push(proxyPolicy(pipelineOptions.proxyOptions));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
const deserializationOptions = Object.assign(Object.assign({}, DefaultDeserializationOptions), pipelineOptions.deserializationOptions);
|
|
|
|
const deserializationOptions = Object.assign(Object.assign({}, DefaultDeserializationOptions), pipelineOptions.deserializationOptions);
|
|
|
@ -59938,7 +59982,7 @@ function createPipelineFromOptions(pipelineOptions, authPolicyFactory) {
|
|
|
|
requestPolicyFactories.push(authPolicyFactory);
|
|
|
|
requestPolicyFactories.push(authPolicyFactory);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
requestPolicyFactories.push(logPolicy(loggingOptions));
|
|
|
|
requestPolicyFactories.push(logPolicy(loggingOptions));
|
|
|
|
if (isNode && pipelineOptions.decompressResponse === false) {
|
|
|
|
if (coreUtil.isNode && pipelineOptions.decompressResponse === false) {
|
|
|
|
requestPolicyFactories.push(disableResponseDecompressionPolicy());
|
|
|
|
requestPolicyFactories.push(disableResponseDecompressionPolicy());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return {
|
|
|
|
return {
|
|
|
@ -60069,10 +60113,7 @@ function flattenResponse(_response, responseSpec) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
function getCredentialScopes(options, baseUri) {
|
|
|
|
function getCredentialScopes(options, baseUri) {
|
|
|
|
if (options === null || options === void 0 ? void 0 : options.credentialScopes) {
|
|
|
|
if (options === null || options === void 0 ? void 0 : options.credentialScopes) {
|
|
|
|
const scopes = options.credentialScopes;
|
|
|
|
return options.credentialScopes;
|
|
|
|
return Array.isArray(scopes)
|
|
|
|
|
|
|
|
? scopes.map((scope) => new URL(scope).toString())
|
|
|
|
|
|
|
|
: new URL(scopes).toString();
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (baseUri) {
|
|
|
|
if (baseUri) {
|
|
|
|
return `${baseUri}/.default`;
|
|
|
|
return `${baseUri}/.default`;
|
|
|
@ -60305,6 +60346,10 @@ Object.defineProperty(exports, 'delay', {
|
|
|
|
enumerable: true,
|
|
|
|
enumerable: true,
|
|
|
|
get: function () { return coreUtil.delay; }
|
|
|
|
get: function () { return coreUtil.delay; }
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
Object.defineProperty(exports, 'isNode', {
|
|
|
|
|
|
|
|
enumerable: true,
|
|
|
|
|
|
|
|
get: function () { return coreUtil.isNode; }
|
|
|
|
|
|
|
|
});
|
|
|
|
Object.defineProperty(exports, 'isTokenCredential', {
|
|
|
|
Object.defineProperty(exports, 'isTokenCredential', {
|
|
|
|
enumerable: true,
|
|
|
|
enumerable: true,
|
|
|
|
get: function () { return coreAuth.isTokenCredential; }
|
|
|
|
get: function () { return coreAuth.isTokenCredential; }
|
|
|
@ -60344,7 +60389,6 @@ exports.generateUuid = generateUuid;
|
|
|
|
exports.getDefaultProxySettings = getDefaultProxySettings;
|
|
|
|
exports.getDefaultProxySettings = getDefaultProxySettings;
|
|
|
|
exports.getDefaultUserAgentValue = getDefaultUserAgentValue;
|
|
|
|
exports.getDefaultUserAgentValue = getDefaultUserAgentValue;
|
|
|
|
exports.isDuration = isDuration;
|
|
|
|
exports.isDuration = isDuration;
|
|
|
|
exports.isNode = isNode;
|
|
|
|
|
|
|
|
exports.isValidUuid = isValidUuid;
|
|
|
|
exports.isValidUuid = isValidUuid;
|
|
|
|
exports.keepAlivePolicy = keepAlivePolicy;
|
|
|
|
exports.keepAlivePolicy = keepAlivePolicy;
|
|
|
|
exports.logPolicy = logPolicy;
|
|
|
|
exports.logPolicy = logPolicy;
|
|
|
|