diff --git a/dist/browser/bootlint.js b/dist/browser/bootlint.js index b40608be..6f44870f 100644 --- a/dist/browser/bootlint.js +++ b/dist/browser/bootlint.js @@ -9227,6 +9227,9 @@ if (typeof module === 'object' && module.exports === exports) // Not necessarily the package version of this code. exports.SEMVER_SPEC_VERSION = '2.0.0'; +var MAX_LENGTH = 256; +var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991; + // The actual regexps go on exports.re var re = exports.re = []; var src = exports.src = []; @@ -9440,8 +9443,24 @@ for (var i = 0; i < R; i++) { exports.parse = parse; function parse(version, loose) { + if (version instanceof SemVer) + return version; + + if (typeof version !== 'string') + return null; + + if (version.length > MAX_LENGTH) + return null; + var r = loose ? re[LOOSE] : re[FULL]; - return (r.test(version)) ? new SemVer(version, loose) : null; + if (!r.test(version)) + return null; + + try { + return new SemVer(version, loose); + } catch (er) { + return null; + } } exports.valid = valid; @@ -9469,6 +9488,9 @@ function SemVer(version, loose) { 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, loose); @@ -9486,12 +9508,26 @@ function SemVer(version, loose) { 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) { - return (/^[0-9]+$/.test(id)) ? +id : 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('.') : []; @@ -11311,6 +11347,35 @@ var LocationIndex = _location.LocationIndex; reporter('`.carousel-inner` must have exactly one `.item.active` child.', innersWithWrongActiveItems); } }); + addLinter("E042", function lintFormControlOnWrongControl($, reporter) { + var formControlsOnWrongTags = $('.form-control:not(input,textarea,select)'); + if (formControlsOnWrongTags.length) { + reporter('`.form-control` should only be used on ``s, `