1 |
- {"ast":null,"code":"const Range = require('../classes/range.js');\nconst Comparator = require('../classes/comparator.js');\nconst {\n ANY\n} = Comparator;\nconst satisfies = require('../functions/satisfies.js');\nconst compare = require('../functions/compare.js');\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true;\n }\n sub = new Range(sub, options);\n dom = new Range(dom, options);\n let sawNonNull = false;\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options);\n sawNonNull = sawNonNull || isSub !== null;\n if (isSub) {\n continue OUTER;\n }\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) {\n return false;\n }\n }\n return true;\n};\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')];\nconst minimumVersion = [new Comparator('>=0.0.0')];\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true;\n }\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY) {\n return true;\n } else if (options.includePrerelease) {\n sub = minimumVersionWithPreRelease;\n } else {\n sub = minimumVersion;\n }\n }\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true;\n } else {\n dom = minimumVersion;\n }\n }\n const eqSet = new Set();\n let gt, lt;\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=') {\n gt = higherGT(gt, c, options);\n } else if (c.operator === '<' || c.operator === '<=') {\n lt = lowerLT(lt, c, options);\n } else {\n eqSet.add(c.semver);\n }\n }\n if (eqSet.size > 1) {\n return null;\n }\n let gtltComp;\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options);\n if (gtltComp > 0) {\n return null;\n } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n return null;\n }\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options)) {\n return null;\n }\n if (lt && !satisfies(eq, String(lt), options)) {\n return null;\n }\n for (const c of dom) {\n if (!satisfies(eq, String(c), options)) {\n return false;\n }\n }\n return true;\n }\n let higher, lower;\n let hasDomLT, hasDomGT;\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt && !options.includePrerelease && lt.semver.prerelease.length ? lt.semver : false;\n let needDomGTPre = gt && !options.includePrerelease && gt.semver.prerelease.length ? gt.semver : false;\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 && lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false;\n }\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>=';\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<=';\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomGTPre.major && c.semver.minor === needDomGTPre.minor && c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false;\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options);\n if (higher === c && higher !== gt) {\n return false;\n }\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {\n return false;\n }\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomLTPre.major && c.semver.minor === needDomLTPre.minor && c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false;\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options);\n if (lower === c && lower !== lt) {\n return false;\n }\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {\n return false;\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false;\n }\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) {\n return false;\n }\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false;\n }\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) {\n return false;\n }\n return true;\n};\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a) {\n return b;\n }\n const comp = compare(a.semver, b.semver, options);\n return comp > 0 ? a : comp < 0 ? b : b.operator === '>' && a.operator === '>=' ? b : a;\n};\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a) {\n return b;\n }\n const comp = compare(a.semver, b.semver, options);\n return comp < 0 ? a : comp > 0 ? b : b.operator === '<' && a.operator === '<=' ? b : a;\n};\nmodule.exports = subset;","map":{"version":3,"names":["Range","require","Comparator","ANY","satisfies","compare","subset","sub","dom","options","sawNonNull","OUTER","simpleSub","set","simpleDom","isSub","simpleSubset","minimumVersionWithPreRelease","minimumVersion","length","semver","includePrerelease","eqSet","Set","gt","lt","c","operator","higherGT","lowerLT","add","size","gtltComp","eq","String","higher","lower","hasDomLT","hasDomGT","needDomLTPre","prerelease","needDomGTPre","major","minor","patch","a","b","comp","module","exports"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/semver/ranges/subset.js"],"sourcesContent":["const Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n// some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n// - If C is only the ANY comparator, return true\n// - Else if in prerelease mode, return false\n// - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n// - if in prerelease mode, return true\n// - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n// - If GT, and EQ does not satisfy GT, return true (null set)\n// - If LT, and EQ does not satisfy LT, return true (null set)\n// - If EQ satisfies every C, return true\n// - Else return false\n// - If GT\n// - If GT.semver is lower than any > or >= comp in C, return false\n// - If GT is >=, and GT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n// - If LT.semver is greater than any < or <= comp in C, return false\n// - If LT is <=, and LT.semver does not satisfy every C, return false\n// - If GT.semver has a prerelease, and not in prerelease mode\n// - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n if (sub === dom) {\n return true\n }\n\n sub = new Range(sub, options)\n dom = new Range(dom, options)\n let sawNonNull = false\n\n OUTER: for (const simpleSub of sub.set) {\n for (const simpleDom of dom.set) {\n const isSub = simpleSubset(simpleSub, simpleDom, options)\n sawNonNull = sawNonNull || isSub !== null\n if (isSub) {\n continue OUTER\n }\n }\n // the null set is a subset of everything, but null simple ranges in\n // a complex range should be ignored. so if we saw a non-null range,\n // then we know this isn't a subset, but if EVERY simple range was null,\n // then it is a subset.\n if (sawNonNull) {\n return false\n }\n }\n return true\n}\n\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]\nconst minimumVersion = [new Comparator('>=0.0.0')]\n\nconst simpleSubset = (sub, dom, options) => {\n if (sub === dom) {\n return true\n }\n\n if (sub.length === 1 && sub[0].semver === ANY) {\n if (dom.length === 1 && dom[0].semver === ANY) {\n return true\n } else if (options.includePrerelease) {\n sub = minimumVersionWithPreRelease\n } else {\n sub = minimumVersion\n }\n }\n\n if (dom.length === 1 && dom[0].semver === ANY) {\n if (options.includePrerelease) {\n return true\n } else {\n dom = minimumVersion\n }\n }\n\n const eqSet = new Set()\n let gt, lt\n for (const c of sub) {\n if (c.operator === '>' || c.operator === '>=') {\n gt = higherGT(gt, c, options)\n } else if (c.operator === '<' || c.operator === '<=') {\n lt = lowerLT(lt, c, options)\n } else {\n eqSet.add(c.semver)\n }\n }\n\n if (eqSet.size > 1) {\n return null\n }\n\n let gtltComp\n if (gt && lt) {\n gtltComp = compare(gt.semver, lt.semver, options)\n if (gtltComp > 0) {\n return null\n } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n return null\n }\n }\n\n // will iterate one or zero times\n for (const eq of eqSet) {\n if (gt && !satisfies(eq, String(gt), options)) {\n return null\n }\n\n if (lt && !satisfies(eq, String(lt), options)) {\n return null\n }\n\n for (const c of dom) {\n if (!satisfies(eq, String(c), options)) {\n return false\n }\n }\n\n return true\n }\n\n let higher, lower\n let hasDomLT, hasDomGT\n // if the subset has a prerelease, we need a comparator in the superset\n // with the same tuple and a prerelease, or it's not a subset\n let needDomLTPre = lt &&\n !options.includePrerelease &&\n lt.semver.prerelease.length ? lt.semver : false\n let needDomGTPre = gt &&\n !options.includePrerelease &&\n gt.semver.prerelease.length ? gt.semver : false\n // exception: <1.2.3-0 is the same as <1.2.3\n if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n needDomLTPre = false\n }\n\n for (const c of dom) {\n hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n if (gt) {\n if (needDomGTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomGTPre.major &&\n c.semver.minor === needDomGTPre.minor &&\n c.semver.patch === needDomGTPre.patch) {\n needDomGTPre = false\n }\n }\n if (c.operator === '>' || c.operator === '>=') {\n higher = higherGT(gt, c, options)\n if (higher === c && higher !== gt) {\n return false\n }\n } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {\n return false\n }\n }\n if (lt) {\n if (needDomLTPre) {\n if (c.semver.prerelease && c.semver.prerelease.length &&\n c.semver.major === needDomLTPre.major &&\n c.semver.minor === needDomLTPre.minor &&\n c.semver.patch === needDomLTPre.patch) {\n needDomLTPre = false\n }\n }\n if (c.operator === '<' || c.operator === '<=') {\n lower = lowerLT(lt, c, options)\n if (lower === c && lower !== lt) {\n return false\n }\n } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {\n return false\n }\n }\n if (!c.operator && (lt || gt) && gtltComp !== 0) {\n return false\n }\n }\n\n // if there was a < or >, and nothing in the dom, then must be false\n // UNLESS it was limited by another range in the other direction.\n // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n if (gt && hasDomLT && !lt && gtltComp !== 0) {\n return false\n }\n\n if (lt && hasDomGT && !gt && gtltComp !== 0) {\n return false\n }\n\n // we needed a prerelease range in a specific tuple, but didn't get one\n // then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0,\n // because it includes prereleases in the 1.2.3 tuple\n if (needDomGTPre || needDomLTPre) {\n return false\n }\n\n return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp > 0 ? a\n : comp < 0 ? b\n : b.operator === '>' && a.operator === '>=' ? b\n : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n if (!a) {\n return b\n }\n const comp = compare(a.semver, b.semver, options)\n return comp < 0 ? a\n : comp > 0 ? b\n : b.operator === '<' && a.operator === '<=' ? b\n : a\n}\n\nmodule.exports = subset\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"script","externalDependencies":[]}
|