08b187a61e1b63f17b64da53e292db45aa482046e3107d2e1c8e14ca571e06b8.json 27 KB

1
  1. {"ast":null,"code":"const debug = require('../internal/debug');\nconst {\n MAX_LENGTH,\n MAX_SAFE_INTEGER\n} = require('../internal/constants');\nconst {\n safeRe: re,\n t\n} = require('../internal/re');\nconst parseOptions = require('../internal/parse-options');\nconst {\n compareIdentifiers\n} = require('../internal/identifiers');\nclass SemVer {\n constructor(version, options) {\n options = parseOptions(options);\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) {\n return version;\n } else {\n version = version.version;\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`);\n }\n if (version.length > MAX_LENGTH) {\n throw new TypeError(`version is longer than ${MAX_LENGTH} characters`);\n }\n debug('SemVer', version, options);\n this.options = options;\n this.loose = !!options.loose;\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease;\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]);\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`);\n }\n this.raw = version;\n\n // these are actually numbers\n this.major = +m[1];\n this.minor = +m[2];\n this.patch = +m[3];\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version');\n }\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version');\n }\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version');\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = [];\n } else {\n this.prerelease = m[4].split('.').map(id => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id;\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num;\n }\n }\n return id;\n });\n }\n this.build = m[5] ? m[5].split('.') : [];\n this.format();\n }\n format() {\n this.version = `${this.major}.${this.minor}.${this.patch}`;\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`;\n }\n return this.version;\n }\n toString() {\n return this.version;\n }\n compare(other) {\n debug('SemVer.compare', this.version, this.options, other);\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0;\n }\n other = new SemVer(other, this.options);\n }\n if (other.version === this.version) {\n return 0;\n }\n return this.compareMain(other) || this.comparePre(other);\n }\n compareMain(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);\n }\n comparePre(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1;\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1;\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0;\n }\n let i = 0;\n do {\n const a = this.prerelease[i];\n const b = other.prerelease[i];\n debug('prerelease compare', i, a, b);\n if (a === undefined && b === undefined) {\n return 0;\n } else if (b === undefined) {\n return 1;\n } else if (a === undefined) {\n return -1;\n } else if (a === b) {\n continue;\n } else {\n return compareIdentifiers(a, b);\n }\n } while (++i);\n }\n compareBuild(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n let i = 0;\n do {\n const a = this.build[i];\n const b = other.build[i];\n debug('build compare', i, a, b);\n if (a === undefined && b === undefined) {\n return 0;\n } else if (b === undefined) {\n return 1;\n } else if (a === undefined) {\n return -1;\n } else if (a === b) {\n continue;\n } else {\n return compareIdentifiers(a, b);\n }\n } while (++i);\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc(release, identifier, identifierBase) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc('pre', identifier, identifierBase);\n break;\n case 'preminor':\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc('pre', identifier, identifierBase);\n break;\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0;\n this.inc('patch', identifier, identifierBase);\n this.inc('pre', identifier, identifierBase);\n break;\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase);\n }\n this.inc('pre', identifier, identifierBase);\n break;\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) {\n this.major++;\n }\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++;\n }\n this.patch = 0;\n this.prerelease = [];\n break;\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++;\n }\n this.prerelease = [];\n break;\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n {\n const base = Number(identifierBase) ? 1 : 0;\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty');\n }\n if (this.prerelease.length === 0) {\n this.prerelease = [base];\n } else {\n let i = this.prerelease.length;\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++;\n i = -2;\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists');\n }\n this.prerelease.push(base);\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base];\n if (identifierBase === false) {\n prerelease = [identifier];\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease;\n }\n } else {\n this.prerelease = prerelease;\n }\n }\n break;\n }\n default:\n throw new Error(`invalid increment argument: ${release}`);\n }\n this.raw = this.format();\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`;\n }\n return this;\n }\n}\nmodule.exports = SemVer;","map":{"version":3,"names":["debug","require","MAX_LENGTH","MAX_SAFE_INTEGER","safeRe","re","t","parseOptions","compareIdentifiers","SemVer","constructor","version","options","loose","includePrerelease","TypeError","length","m","trim","match","LOOSE","FULL","raw","major","minor","patch","prerelease","split","map","id","test","num","build","format","join","toString","compare","other","compareMain","comparePre","i","a","b","undefined","compareBuild","inc","release","identifier","identifierBase","base","Number","Error","push","isNaN","module","exports"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/semver/classes/semver.js"],"sourcesContent":["const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return (\n compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n )\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('build compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"script","externalDependencies":[]}