Socket
Socket
Sign inDemoInstall

compare-versions

Package Overview
Dependencies
Maintainers
1
Versions
37
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

compare-versions - npm Package Compare versions

Comparing version 5.0.1 to 5.0.2

4

lib/esm/index.d.ts

@@ -8,3 +8,3 @@ /**

*/
export declare const compareVersions: (v1: string, v2: string) => 1 | -1 | 0;
export declare const compareVersions: (v1: string, v2: string) => 0 | 1 | -1;
/**

@@ -27,3 +27,3 @@ * Validate [semver](https://semver.org/) version strings.

*/
export declare type CompareOperator = '>' | '>=' | '=' | '<' | '<=';
export type CompareOperator = '>' | '>=' | '=' | '<' | '<=';
/**

@@ -30,0 +30,0 @@ * Compare [semver](https://semver.org/) version strings using the specified operator.

@@ -163,5 +163,3 @@ (function (global, factory) {

Object.defineProperty(exports, '__esModule', { value: true });
}));
//# sourceMappingURL=index.js.map
{
"name": "compare-versions",
"version": "5.0.1",
"version": "5.0.2",
"description": "Compare semver version strings to find greater, equal or lesser.",

@@ -37,6 +37,6 @@ "repository": {

"devDependencies": {
"@types/mocha": "^9.1.0",
"@types/mocha": "^10.0.1",
"c8": "^7.10.0",
"mocha": "^10.0.0",
"rollup": "^2.78.1",
"rollup": "^3.7.4",
"ts-node": "^10.7.0",

@@ -43,0 +43,0 @@ "typescript": "^4.6.3"

@@ -103,10 +103,27 @@ /**

// else range of either "~" or "^" is assumed
const [v1, v2, v3] = validateAndParse(version);
const [r1, r2, r3] = validateAndParse(range);
if (compareStrings(v1, r1) !== 0) return false;
if (op === '^') {
return compareSegments([v2, v3], [r2, r3]) >= 0;
const [v1, v2, v3, , vp] = validateAndParse(version);
const [r1, r2, r3, , rp] = validateAndParse(range);
const v = [v1, v2, v3];
const r = [r1, r2 ?? 'x', r3 ?? 'x'];
// validate pre-release
if (rp) {
if (!vp) return false;
if (compareSegments(v, r) !== 0) return false;
if (compareSegments(vp.split('.'), rp.split('.')) === -1) return false;
}
if (compareStrings(v2, r2) !== 0) return false;
return compareStrings(v3, r3) >= 0;
// first non-zero number
const nonZero = r.findIndex((v) => v !== '0') + 1;
// pointer to where segments can be >=
const i = op === '~' ? 2 : nonZero > 1 ? nonZero : 1;
// before pointer must be equal
if (compareSegments(v.slice(0, i), r.slice(0, i)) !== 0) return false;
// after pointer must be >=
if (compareSegments(v.slice(i), r.slice(i)) === -1) return false;
return true;
};

@@ -150,4 +167,4 @@

const compareSegments = (
a: string | RegExpMatchArray,
b: string | RegExpMatchArray
a: string | string[] | RegExpMatchArray,
b: string | string[] | RegExpMatchArray
) => {

@@ -154,0 +171,0 @@ for (let i = 0; i < Math.max(a.length, b.length); i++) {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc