@aws-cdk/cloud-assembly-schema
Advanced tools
Comparing version 1.94.1 to 1.95.0
@@ -191,3 +191,3 @@ "use strict"; | ||
_a = JSII_RTTI_SYMBOL_1; | ||
Manifest[_a] = { fqn: "@aws-cdk/cloud-assembly-schema.Manifest", version: "1.94.1" }; | ||
Manifest[_a] = { fqn: "@aws-cdk/cloud-assembly-schema.Manifest", version: "1.95.0" }; | ||
function mapValues(xs, fn) { | ||
@@ -194,0 +194,0 @@ if (!xs) { |
{ | ||
"name": "semver", | ||
"version": "7.3.4", | ||
"version": "7.3.5", | ||
"description": "The semantic version parser used by npm.", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
const Range = require('../classes/range.js') | ||
const { ANY } = require('../classes/comparator.js') | ||
const Comparator = require('../classes/comparator.js') | ||
const { ANY } = Comparator | ||
const satisfies = require('../functions/satisfies.js') | ||
@@ -7,3 +8,5 @@ const compare = require('../functions/compare.js') | ||
// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff: | ||
// - Every simple range `r1, r2, ...` is a subset of some `R1, R2, ...` | ||
// - Every simple range `r1, r2, ...` is a null set, OR | ||
// - Every simple range `r1, r2, ...` which is not a null set is a subset of | ||
// some `R1, R2, ...` | ||
// | ||
@@ -13,3 +16,7 @@ // Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff: | ||
// - If C is only the ANY comparator, return true | ||
// - Else return false | ||
// - Else if in prerelease mode, return false | ||
// - else replace c with `[>=0.0.0]` | ||
// - If C is only the ANY comparator | ||
// - if in prerelease mode, return true | ||
// - else replace C with `[>=0.0.0]` | ||
// - Let EQ be the set of = comparators in c | ||
@@ -20,2 +27,3 @@ // - If EQ is more than one, return true (null set) | ||
// - If GT and LT, and GT.semver > LT.semver, return true (null set) | ||
// - If any C is a = range, and GT or LT are set, return false | ||
// - If EQ | ||
@@ -29,9 +37,12 @@ // - If GT, and EQ does not satisfy GT, return true (null set) | ||
// - If GT is >=, and GT.semver does not satisfy every C, return false | ||
// - If GT.semver has a prerelease, and not in prerelease mode | ||
// - If no C has a prerelease and the GT.semver tuple, return false | ||
// - If LT | ||
// - 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 | ||
// - If GT.semver has a prerelease, and not in prerelease mode | ||
// - If no C has a prerelease and the LT.semver tuple, return false | ||
// - Else return true | ||
const subset = (sub, dom, options) => { | ||
const subset = (sub, dom, options = {}) => { | ||
if (sub === dom) | ||
@@ -65,5 +76,18 @@ return true | ||
if (sub.length === 1 && sub[0].semver === ANY) | ||
return dom.length === 1 && dom[0].semver === ANY | ||
if (sub.length === 1 && sub[0].semver === ANY) { | ||
if (dom.length === 1 && dom[0].semver === ANY) | ||
return true | ||
else if (options.includePrerelease) | ||
sub = [ new Comparator('>=0.0.0-0') ] | ||
else | ||
sub = [ new Comparator('>=0.0.0') ] | ||
} | ||
if (dom.length === 1 && dom[0].semver === ANY) { | ||
if (options.includePrerelease) | ||
return true | ||
else | ||
dom = [ new Comparator('>=0.0.0') ] | ||
} | ||
const eqSet = new Set() | ||
@@ -110,2 +134,16 @@ let gt, lt | ||
let hasDomLT, hasDomGT | ||
// if the subset has a prerelease, we need a comparator in the superset | ||
// with the same tuple and a prerelease, or it's not a subset | ||
let needDomLTPre = lt && | ||
!options.includePrerelease && | ||
lt.semver.prerelease.length ? lt.semver : false | ||
let needDomGTPre = gt && | ||
!options.includePrerelease && | ||
gt.semver.prerelease.length ? gt.semver : false | ||
// exception: <1.2.3-0 is the same as <1.2.3 | ||
if (needDomLTPre && needDomLTPre.prerelease.length === 1 && | ||
lt.operator === '<' && needDomLTPre.prerelease[0] === 0) { | ||
needDomLTPre = false | ||
} | ||
for (const c of dom) { | ||
@@ -115,2 +153,10 @@ hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>=' | ||
if (gt) { | ||
if (needDomGTPre) { | ||
if (c.semver.prerelease && c.semver.prerelease.length && | ||
c.semver.major === needDomGTPre.major && | ||
c.semver.minor === needDomGTPre.minor && | ||
c.semver.patch === needDomGTPre.patch) { | ||
needDomGTPre = false | ||
} | ||
} | ||
if (c.operator === '>' || c.operator === '>=') { | ||
@@ -124,2 +170,10 @@ higher = higherGT(gt, c, options) | ||
if (lt) { | ||
if (needDomLTPre) { | ||
if (c.semver.prerelease && c.semver.prerelease.length && | ||
c.semver.major === needDomLTPre.major && | ||
c.semver.minor === needDomLTPre.minor && | ||
c.semver.patch === needDomLTPre.patch) { | ||
needDomLTPre = false | ||
} | ||
} | ||
if (c.operator === '<' || c.operator === '<=') { | ||
@@ -145,2 +199,8 @@ lower = lowerLT(lt, c, options) | ||
// we needed a prerelease range in a specific tuple, but didn't get one | ||
// then this isn't a subset. eg >=1.2.3-pre is not a subset of >=1.0.0, | ||
// because it includes prereleases in the 1.2.3 tuple | ||
if (needDomGTPre || needDomLTPre) | ||
return false | ||
return true | ||
@@ -147,0 +207,0 @@ } |
{ | ||
"name": "@aws-cdk/cloud-assembly-schema", | ||
"version": "1.94.1", | ||
"version": "1.95.0", | ||
"description": "Cloud Assembly Schema", | ||
@@ -61,9 +61,9 @@ "main": "lib/index.js", | ||
"devDependencies": { | ||
"@types/jest": "^26.0.20", | ||
"@types/jest": "^26.0.21", | ||
"@types/mock-fs": "^4.13.0", | ||
"cdk-build-tools": "1.94.1", | ||
"cdk-build-tools": "1.95.0", | ||
"jest": "^26.6.3", | ||
"mock-fs": "^4.13.0", | ||
"pkglint": "1.94.1", | ||
"typescript-json-schema": "^0.49.0" | ||
"pkglint": "1.95.0", | ||
"typescript-json-schema": "^0.50.0" | ||
}, | ||
@@ -93,3 +93,3 @@ "repository": { | ||
"jsonschema": "^1.4.0", | ||
"semver": "^7.3.4" | ||
"semver": "^7.3.5" | ||
}, | ||
@@ -96,0 +96,0 @@ "awscdkio": { |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
466745
7023
Updatedsemver@^7.3.5