// - If EQ satisfies every C, return true
// - Else return false
// - If GT
-// - If GT is lower than any > or >= comp in C, return false
+// - If GT.semver is lower than any > or >= comp in C, return false
// - If GT is >=, and GT.semver does not satisfy every C, return false
// - If LT
-// - If LT.semver is greater than that of any > comp in C, return false
+// - If LT.semver is greater than any < or <= comp in C, return false
// - If LT is <=, and LT.semver does not satisfy every C, return false
// - If any C is a = range, and GT or LT are set, return false
// - Else return true
const subset = (sub, dom, options) => {
+ if (sub === dom)
+ return true
+
sub = new Range(sub, options)
dom = new Range(dom, options)
let sawNonNull = false
}
const simpleSubset = (sub, dom, options) => {
+ if (sub === dom)
+ return true
+
if (sub.length === 1 && sub[0].semver === ANY)
return dom.length === 1 && dom[0].semver === ANY
if (!satisfies(eq, String(c), options))
return false
}
+
return true
}
if (gt) {
if (c.operator === '>' || c.operator === '>=') {
higher = higherGT(gt, c, options)
- if (higher === c)
+ if (higher === c && higher !== gt)
return false
} else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options))
return false
if (lt) {
if (c.operator === '<' || c.operator === '<=') {
lower = lowerLT(lt, c, options)
- if (lower === c)
+ if (lower === c && lower !== lt)
return false
} else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options))
return false