@kallookoo/semver-lite 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +91 -0
- package/dist/index.d.ts +44 -0
- package/dist/index.esm.js +238 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.esm.min.js +2 -0
- package/dist/index.esm.min.js.map +1 -0
- package/dist/index.js +248 -0
- package/dist/index.js.map +1 -0
- package/dist/index.min.js +2 -0
- package/dist/index.min.js.map +1 -0
- package/dist/index.umd.js +249 -0
- package/dist/index.umd.js.map +1 -0
- package/dist/index.umd.min.js +2 -0
- package/dist/index.umd.min.js.map +1 -0
- package/package.json +45 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Sergio
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# semver-lite
|
|
2
|
+
|
|
3
|
+
A lightweight library for comparing semantic versions.
|
|
4
|
+
|
|
5
|
+
## Installation & Usage
|
|
6
|
+
|
|
7
|
+
### npm
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install semver-lite
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
import { compare, compareStrict } from 'semver-lite';
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### Browser via CDN (Coming soon)
|
|
18
|
+
|
|
19
|
+
#### ESM (ES Modules)
|
|
20
|
+
|
|
21
|
+
```html
|
|
22
|
+
<script type="module">
|
|
23
|
+
import { compare, compareStrict } from "https://cdn.jsdelivr.net/npm/semver-lite/dist/index.min.mjs";
|
|
24
|
+
</script>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
#### UMD (Universal Module Definition)
|
|
28
|
+
|
|
29
|
+
```html
|
|
30
|
+
<script src="https://cdn.jsdelivr.net/npm/semver-lite/dist/index.umd.min.js"></script>
|
|
31
|
+
<script>
|
|
32
|
+
const { compare, compareStrict } = semverLite;
|
|
33
|
+
</script>
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
#### IIFE (Immediately Invoked Function Execution)
|
|
37
|
+
|
|
38
|
+
```html
|
|
39
|
+
<script src="https://cdn.jsdelivr.net/npm/semver-lite/dist/index.min.js"></script>
|
|
40
|
+
<script>
|
|
41
|
+
const { compare, compareStrict } = semverLite;
|
|
42
|
+
</script>
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Examples
|
|
46
|
+
|
|
47
|
+
```typescript
|
|
48
|
+
compare('2.0.0', '1.0.0'); // true
|
|
49
|
+
|
|
50
|
+
compare('1.0.0-alpha', '1.0.0', '<'); // true - pre-release is lower than release
|
|
51
|
+
|
|
52
|
+
compare('v1.0.0+build.1', '1.0.0+build.2', '='); // true
|
|
53
|
+
|
|
54
|
+
compareStrict('1.0.0+build.1', '1.0.0+build.2', '<'); // true
|
|
55
|
+
|
|
56
|
+
compareStrict('1.0.0+build.1', '1.0.0+build.1', '==='); // true
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Features
|
|
60
|
+
|
|
61
|
+
- Supports semantic versioning standard
|
|
62
|
+
- Multiple comparison operators
|
|
63
|
+
- Proper handling of pre-release identifiers
|
|
64
|
+
- Optional metadata comparison (strict mode)
|
|
65
|
+
- TypeScript types included
|
|
66
|
+
|
|
67
|
+
## API
|
|
68
|
+
|
|
69
|
+
### Functions
|
|
70
|
+
|
|
71
|
+
- `compare(v1, v2, operator = '>')` - Compares two versions. Default operator is `>`.
|
|
72
|
+
- `compareStrict(v1, v2, operator = '>')` - Compares two versions including metadata. Default operator is `>`.
|
|
73
|
+
|
|
74
|
+
### Supported operators
|
|
75
|
+
|
|
76
|
+
| Function | Operation | Operators | Strict Mode |
|
|
77
|
+
| :------------ | :-------------------- | :---------------------- | :---------: |
|
|
78
|
+
| compare | Greater than | `>`, `gt` | No |
|
|
79
|
+
| compare | Greater than or equal | `>=`, `ge` | No |
|
|
80
|
+
| compare | Less than | `<`, `lt` | No |
|
|
81
|
+
| compare | Less than or equal | `<=`, `le` | No |
|
|
82
|
+
| compare | Equal | `=`, `==`, `eq` | No |
|
|
83
|
+
| compare | Strictly equal | `===` | Yes |
|
|
84
|
+
| compare | Not equal | `!=`, `<>`, `ne` | No |
|
|
85
|
+
| compare | Strictly not equal | `!==` | Yes |
|
|
86
|
+
| compareStrict | Greater than | `>`, `gt` | Yes |
|
|
87
|
+
| compareStrict | Greater than or equal | `>=`, `ge` | Yes |
|
|
88
|
+
| compareStrict | Less than | `<`, `lt` | Yes |
|
|
89
|
+
| compareStrict | Less than or equal | `<=`, `le` | Yes |
|
|
90
|
+
| compareStrict | Equal | `=`, `==`, `===`, `eq` | Yes |
|
|
91
|
+
| compareStrict | Not equal | `!=`, `<>`, `!==`, `ne` | Yes |
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* List of supported comparison operators.
|
|
3
|
+
* These operators are used to compare semantic versions.
|
|
4
|
+
*/
|
|
5
|
+
declare const OPERATORS: readonly [">", "gt", ">=", "ge", "<", "lt", "<=", "le", "=", "==", "eq", "!=", "<>", "ne", "===", "!=="];
|
|
6
|
+
/**
|
|
7
|
+
* Represents a version string or number.
|
|
8
|
+
*/
|
|
9
|
+
export type Version = string | number;
|
|
10
|
+
/**
|
|
11
|
+
* Supported comparison operators for version comparison.
|
|
12
|
+
*/
|
|
13
|
+
export type ComparisonOperator = (typeof OPERATORS)[number];
|
|
14
|
+
/**
|
|
15
|
+
* Structured representation of a parsed version.
|
|
16
|
+
* Includes version numbers, optional pre-release identifiers, and metadata.
|
|
17
|
+
*/
|
|
18
|
+
export interface NormalizedVersion {
|
|
19
|
+
numbers: number[];
|
|
20
|
+
release: string | null;
|
|
21
|
+
metadata: string | null;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Results of version comparison containing separate evaluations
|
|
25
|
+
* for version numbers, pre-release identifiers, and metadata.
|
|
26
|
+
*/
|
|
27
|
+
export interface ComparisonResult {
|
|
28
|
+
version: number;
|
|
29
|
+
release: number;
|
|
30
|
+
metadata: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Compares two version strings or numbers using the specified operator.
|
|
34
|
+
* Supports various comparison operators like ">", "<=", "==", "!==", etc.
|
|
35
|
+
*
|
|
36
|
+
* @param {Version} v1 - First version to compare (e.g., "1.0.0").
|
|
37
|
+
* @param {Version} v2 - Second version to compare (e.g., "2.0.0").
|
|
38
|
+
* @param {ComparisonOperator} [operator='>'] - Comparison operator (defaults to '>').
|
|
39
|
+
* @returns {boolean} Result of the comparison.
|
|
40
|
+
* @throws {Error} For unsupported operators or invalid version formats.
|
|
41
|
+
*/
|
|
42
|
+
export declare const compare: (v1: Version, v2: Version, operator?: ComparisonOperator) => boolean;
|
|
43
|
+
export declare const compareStrict: (v1: Version, v2: Version, operator?: ComparisonOperator) => boolean;
|
|
44
|
+
export {};
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* List of supported comparison operators.
|
|
3
|
+
* These operators are used to compare semantic versions.
|
|
4
|
+
*/
|
|
5
|
+
const OPERATORS = [
|
|
6
|
+
'>',
|
|
7
|
+
'gt',
|
|
8
|
+
'>=',
|
|
9
|
+
'ge',
|
|
10
|
+
'<',
|
|
11
|
+
'lt',
|
|
12
|
+
'<=',
|
|
13
|
+
'le',
|
|
14
|
+
'=',
|
|
15
|
+
'==',
|
|
16
|
+
'eq',
|
|
17
|
+
'!=',
|
|
18
|
+
'<>',
|
|
19
|
+
'ne',
|
|
20
|
+
'===',
|
|
21
|
+
'!==',
|
|
22
|
+
];
|
|
23
|
+
const REGEX = {
|
|
24
|
+
version: /^\d+(\.\d+)*$/,
|
|
25
|
+
numeric: /^\d+$/,
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Normalizes a version string or number into a structured format.
|
|
29
|
+
* Converts the version into its components: numbers, pre-release, and metadata.
|
|
30
|
+
*
|
|
31
|
+
* @param {Version} version - Version to normalize (e.g., "1.0.0-alpha+001").
|
|
32
|
+
* @returns {NormalizedVersion} Structured version object with numbers, release, and metadata.
|
|
33
|
+
* @throws {Error} If the version format is invalid.
|
|
34
|
+
*/
|
|
35
|
+
const normalize = (version) => {
|
|
36
|
+
if (version === undefined || version === null) {
|
|
37
|
+
throw new Error('Invalid version format: version cannot be undefined or null');
|
|
38
|
+
}
|
|
39
|
+
if (typeof version !== 'string') {
|
|
40
|
+
version = String(version);
|
|
41
|
+
}
|
|
42
|
+
const [vers, metadata] = version.trim().replace(/^v/, '').split('+');
|
|
43
|
+
const [ver, release] = vers.split('-');
|
|
44
|
+
if (!REGEX.version.test(ver)) {
|
|
45
|
+
throw new Error('Invalid version format');
|
|
46
|
+
}
|
|
47
|
+
const result = {
|
|
48
|
+
numbers: ver.split('.').map(Number),
|
|
49
|
+
release: release || null,
|
|
50
|
+
metadata: metadata || null,
|
|
51
|
+
};
|
|
52
|
+
return result;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Compares pre-release identifiers according to SemVer rules.
|
|
56
|
+
* Pre-release identifiers are compared lexicographically and numerically.
|
|
57
|
+
*
|
|
58
|
+
* @param {string | null} a - First pre-release string (e.g., "alpha").
|
|
59
|
+
* @param {string | null} b - Second pre-release string (e.g., "beta").
|
|
60
|
+
* @returns {number} 1 if a > b, -1 if a < b, 0 if equal.
|
|
61
|
+
*/
|
|
62
|
+
const evaluateRelease = (a, b) => {
|
|
63
|
+
if (a === null) {
|
|
64
|
+
if (b === null) {
|
|
65
|
+
return 0;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
return 1;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (b === null) {
|
|
72
|
+
return -1;
|
|
73
|
+
}
|
|
74
|
+
const segmentA = a.split('.');
|
|
75
|
+
const segmentB = b.split('.');
|
|
76
|
+
const minLength = Math.min(segmentA.length, segmentB.length);
|
|
77
|
+
for (let i = 0; i < minLength; i++) {
|
|
78
|
+
const aIsNumeric = REGEX.numeric.test(segmentA[i]);
|
|
79
|
+
const bIsNumeric = REGEX.numeric.test(segmentB[i]);
|
|
80
|
+
if (aIsNumeric && !bIsNumeric) {
|
|
81
|
+
return -1;
|
|
82
|
+
}
|
|
83
|
+
if (!aIsNumeric && bIsNumeric) {
|
|
84
|
+
return 1;
|
|
85
|
+
}
|
|
86
|
+
if (aIsNumeric && bIsNumeric) {
|
|
87
|
+
const diff = parseInt(segmentA[i], 10) - parseInt(segmentB[i], 10);
|
|
88
|
+
if (diff !== 0) {
|
|
89
|
+
return diff > 0 ? 1 : -1;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
if (segmentA[i] < segmentB[i]) {
|
|
94
|
+
return -1;
|
|
95
|
+
}
|
|
96
|
+
if (segmentA[i] > segmentB[i]) {
|
|
97
|
+
return 1;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return segmentA.length - segmentB.length;
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* Compares build metadata.
|
|
105
|
+
* Metadata is compared lexicographically if both are present.
|
|
106
|
+
*
|
|
107
|
+
* @param {string | null} a - First metadata string (e.g., "001").
|
|
108
|
+
* @param {string | null} b - Second metadata string (e.g., "002").
|
|
109
|
+
* @returns {number} 1 if a > b, -1 if a < b, 0 if equal.
|
|
110
|
+
*/
|
|
111
|
+
const evaluateMeta = (a, b) => {
|
|
112
|
+
if (a === b) {
|
|
113
|
+
return 0;
|
|
114
|
+
}
|
|
115
|
+
if (a === null) {
|
|
116
|
+
return -1;
|
|
117
|
+
}
|
|
118
|
+
if (b === null) {
|
|
119
|
+
return 1;
|
|
120
|
+
}
|
|
121
|
+
return a > b ? 1 : -1;
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* Compares two normalized version objects.
|
|
125
|
+
* Evaluates version numbers, pre-release identifiers, and optionally metadata.
|
|
126
|
+
*
|
|
127
|
+
* @param {NormalizedVersion} a - First normalized version.
|
|
128
|
+
* @param {NormalizedVersion} b - Second normalized version.
|
|
129
|
+
* @param {ComparisonOperator} operador - Comparison operator used to determine if metadata should be compared.
|
|
130
|
+
* @returns {ComparisonResult} Object with version, release, and metadata comparison results.
|
|
131
|
+
*/
|
|
132
|
+
const evaluateVersions = (a, b, operador) => {
|
|
133
|
+
const maxLength = Math.max(a.numbers.length, b.numbers.length);
|
|
134
|
+
const comparison = {
|
|
135
|
+
version: 0,
|
|
136
|
+
release: 0,
|
|
137
|
+
metadata: 0,
|
|
138
|
+
};
|
|
139
|
+
for (let i = 0; i < maxLength; i++) {
|
|
140
|
+
const segmentA = a.numbers[i] || 0;
|
|
141
|
+
const segmentB = b.numbers[i] || 0;
|
|
142
|
+
if (segmentA !== segmentB) {
|
|
143
|
+
comparison.version = segmentA > segmentB ? 1 : -1;
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
comparison.release = evaluateRelease(a.release, b.release);
|
|
148
|
+
if (operador === '===' || operador === '!==') {
|
|
149
|
+
comparison.metadata = evaluateMeta(a.metadata, b.metadata);
|
|
150
|
+
}
|
|
151
|
+
return comparison;
|
|
152
|
+
};
|
|
153
|
+
/**
|
|
154
|
+
* Compares two version strings or numbers using the specified operator.
|
|
155
|
+
* Supports various comparison operators like ">", "<=", "==", "!==", etc.
|
|
156
|
+
*
|
|
157
|
+
* @param {Version} v1 - First version to compare (e.g., "1.0.0").
|
|
158
|
+
* @param {Version} v2 - Second version to compare (e.g., "2.0.0").
|
|
159
|
+
* @param {ComparisonOperator} [operator='>'] - Comparison operator (defaults to '>').
|
|
160
|
+
* @returns {boolean} Result of the comparison.
|
|
161
|
+
* @throws {Error} For unsupported operators or invalid version formats.
|
|
162
|
+
*/
|
|
163
|
+
const compare = (v1, v2, operator = '>') => {
|
|
164
|
+
if (!OPERATORS.includes(operator)) {
|
|
165
|
+
throw new Error(`Unsupported operator for comparison: ${operator}`);
|
|
166
|
+
}
|
|
167
|
+
if (operator === '===' || operator === '!==') {
|
|
168
|
+
return compareStrict(v1, v2, operator);
|
|
169
|
+
}
|
|
170
|
+
const { version, release } = evaluateVersions(normalize(v1), normalize(v2), operator);
|
|
171
|
+
switch (operator) {
|
|
172
|
+
case '>':
|
|
173
|
+
case 'gt':
|
|
174
|
+
return version > 0 || (version === 0 && release > 0);
|
|
175
|
+
case '>=':
|
|
176
|
+
case 'ge':
|
|
177
|
+
return version > 0 || (version === 0 && (release === 0 || release > 0));
|
|
178
|
+
case '<':
|
|
179
|
+
case 'lt':
|
|
180
|
+
return version < 0 || (version === 0 && release < 0);
|
|
181
|
+
case '<=':
|
|
182
|
+
case 'le':
|
|
183
|
+
return version < 0 || (version === 0 && release <= 0);
|
|
184
|
+
case '=':
|
|
185
|
+
case '==':
|
|
186
|
+
case 'eq':
|
|
187
|
+
return version === 0 && release === 0;
|
|
188
|
+
case '!=':
|
|
189
|
+
case '<>':
|
|
190
|
+
case 'ne':
|
|
191
|
+
return version !== 0 || release !== 0;
|
|
192
|
+
default:
|
|
193
|
+
return false;
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
const compareStrict = (v1, v2, operator = '>') => {
|
|
197
|
+
if (!OPERATORS.includes(operator)) {
|
|
198
|
+
throw new Error(`Unsupported operator for comparison: ${operator}`);
|
|
199
|
+
}
|
|
200
|
+
const { version, release, metadata } = evaluateVersions(normalize(v1), normalize(v2), '===');
|
|
201
|
+
switch (operator) {
|
|
202
|
+
case '>':
|
|
203
|
+
case 'gt':
|
|
204
|
+
return (version > 0 ||
|
|
205
|
+
(version === 0 && release > 0) ||
|
|
206
|
+
(version === 0 && release === 0 && metadata > 0));
|
|
207
|
+
case '>=':
|
|
208
|
+
case 'ge':
|
|
209
|
+
return (version > 0 ||
|
|
210
|
+
(version === 0 && release > 0) ||
|
|
211
|
+
(version === 0 && release === 0 && metadata >= 0));
|
|
212
|
+
case '<':
|
|
213
|
+
case 'lt':
|
|
214
|
+
return (version < 0 ||
|
|
215
|
+
(version === 0 && release < 0) ||
|
|
216
|
+
(version === 0 && release === 0 && metadata < 0));
|
|
217
|
+
case '<=':
|
|
218
|
+
case 'le':
|
|
219
|
+
return (version < 0 ||
|
|
220
|
+
(version === 0 && release < 0) ||
|
|
221
|
+
(version === 0 && release === 0 && metadata <= 0));
|
|
222
|
+
case '=':
|
|
223
|
+
case '==':
|
|
224
|
+
case '===':
|
|
225
|
+
case 'eq':
|
|
226
|
+
return version === 0 && release === 0 && metadata === 0;
|
|
227
|
+
case '!=':
|
|
228
|
+
case '!==':
|
|
229
|
+
case '<>':
|
|
230
|
+
case 'ne':
|
|
231
|
+
return version !== 0 || release !== 0 || metadata !== 0;
|
|
232
|
+
default:
|
|
233
|
+
return false;
|
|
234
|
+
}
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
export { compare, compareStrict };
|
|
238
|
+
//# sourceMappingURL=index.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=[">","gt",">=","ge","<","lt","<=","le","=","==","eq","!=","<>","ne","===","!=="],r={version:/^\d+(\.\d+)*$/,numeric:/^\d+$/},t=e=>{if(null==e)throw new Error("Invalid version format: version cannot be undefined or null");"string"!=typeof e&&(e=String(e));const[t,n]=e.trim().replace(/^v/,"").split("+"),[s,a]=t.split("-");if(!r.version.test(s))throw new Error("Invalid version format");return{numbers:s.split(".").map(Number),release:a||null,metadata:n||null}},n=(e,t,n)=>{const s=Math.max(e.numbers.length,t.numbers.length),a={version:0,release:0,metadata:0};for(let r=0;r<s;r++){const n=e.numbers[r]||0,s=t.numbers[r]||0;if(n!==s){a.version=n>s?1:-1;break}}return a.release=((e,t)=>{if(null===e)return null===t?0:1;if(null===t)return-1;const n=e.split("."),s=t.split("."),a=Math.min(n.length,s.length);for(let e=0;e<a;e++){const t=r.numeric.test(n[e]),a=r.numeric.test(s[e]);if(t&&!a)return-1;if(!t&&a)return 1;if(t&&a){const r=parseInt(n[e],10)-parseInt(s[e],10);if(0!==r)return r>0?1:-1}else{if(n[e]<s[e])return-1;if(n[e]>s[e])return 1}}return n.length-s.length})(e.release,t.release),"==="!==n&&"!=="!==n||(a.metadata=((e,r)=>e===r?0:null===e?-1:null===r||e>r?1:-1)(e.metadata,t.metadata)),a},s=(r,s,l=">")=>{if(!e.includes(l))throw new Error(`Unsupported operator for comparison: ${l}`);if("==="===l||"!=="===l)return a(r,s,l);const{version:c,release:u}=n(t(r),t(s),l);switch(l){case">":case"gt":return c>0||0===c&&u>0;case">=":case"ge":return c>0||0===c&&(0===u||u>0);case"<":case"lt":return c<0||0===c&&u<0;case"<=":case"le":return c<0||0===c&&u<=0;case"=":case"==":case"eq":return 0===c&&0===u;case"!=":case"<>":case"ne":return 0!==c||0!==u;default:return!1}},a=(r,s,a=">")=>{if(!e.includes(a))throw new Error(`Unsupported operator for comparison: ${a}`);const{version:l,release:c,metadata:u}=n(t(r),t(s),"===");switch(a){case">":case"gt":return l>0||0===l&&c>0||0===l&&0===c&&u>0;case">=":case"ge":return l>0||0===l&&c>0||0===l&&0===c&&u>=0;case"<":case"lt":return l<0||0===l&&c<0||0===l&&0===c&&u<0;case"<=":case"le":return l<0||0===l&&c<0||0===l&&0===c&&u<=0;case"=":case"==":case"===":case"eq":return 0===l&&0===c&&0===u;case"!=":case"!==":case"<>":case"ne":return 0!==l||0!==c||0!==u;default:return!1}};export{s as compare,a as compareStrict};
|
|
2
|
+
//# sourceMappingURL=index.esm.min.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.min.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":["OPERATORS","REGEX","version","numeric","normalize","Error","String","vers","metadata","trim","replace","split","ver","release","test","numbers","map","Number","evaluateVersions","a","b","operador","maxLength","Math","max","length","comparison","i","segmentA","segmentB","minLength","min","aIsNumeric","bIsNumeric","diff","parseInt","evaluateRelease","evaluateMeta","compare","v1","v2","operator","includes","compareStrict"],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
var semverLite = (function (exports) {
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* List of supported comparison operators.
|
|
6
|
+
* These operators are used to compare semantic versions.
|
|
7
|
+
*/
|
|
8
|
+
const OPERATORS = [
|
|
9
|
+
'>',
|
|
10
|
+
'gt',
|
|
11
|
+
'>=',
|
|
12
|
+
'ge',
|
|
13
|
+
'<',
|
|
14
|
+
'lt',
|
|
15
|
+
'<=',
|
|
16
|
+
'le',
|
|
17
|
+
'=',
|
|
18
|
+
'==',
|
|
19
|
+
'eq',
|
|
20
|
+
'!=',
|
|
21
|
+
'<>',
|
|
22
|
+
'ne',
|
|
23
|
+
'===',
|
|
24
|
+
'!==',
|
|
25
|
+
];
|
|
26
|
+
const REGEX = {
|
|
27
|
+
version: /^\d+(\.\d+)*$/,
|
|
28
|
+
numeric: /^\d+$/,
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Normalizes a version string or number into a structured format.
|
|
32
|
+
* Converts the version into its components: numbers, pre-release, and metadata.
|
|
33
|
+
*
|
|
34
|
+
* @param {Version} version - Version to normalize (e.g., "1.0.0-alpha+001").
|
|
35
|
+
* @returns {NormalizedVersion} Structured version object with numbers, release, and metadata.
|
|
36
|
+
* @throws {Error} If the version format is invalid.
|
|
37
|
+
*/
|
|
38
|
+
const normalize = (version) => {
|
|
39
|
+
if (version === undefined || version === null) {
|
|
40
|
+
throw new Error('Invalid version format: version cannot be undefined or null');
|
|
41
|
+
}
|
|
42
|
+
if (typeof version !== 'string') {
|
|
43
|
+
version = String(version);
|
|
44
|
+
}
|
|
45
|
+
const [vers, metadata] = version.trim().replace(/^v/, '').split('+');
|
|
46
|
+
const [ver, release] = vers.split('-');
|
|
47
|
+
if (!REGEX.version.test(ver)) {
|
|
48
|
+
throw new Error('Invalid version format');
|
|
49
|
+
}
|
|
50
|
+
const result = {
|
|
51
|
+
numbers: ver.split('.').map(Number),
|
|
52
|
+
release: release || null,
|
|
53
|
+
metadata: metadata || null,
|
|
54
|
+
};
|
|
55
|
+
return result;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Compares pre-release identifiers according to SemVer rules.
|
|
59
|
+
* Pre-release identifiers are compared lexicographically and numerically.
|
|
60
|
+
*
|
|
61
|
+
* @param {string | null} a - First pre-release string (e.g., "alpha").
|
|
62
|
+
* @param {string | null} b - Second pre-release string (e.g., "beta").
|
|
63
|
+
* @returns {number} 1 if a > b, -1 if a < b, 0 if equal.
|
|
64
|
+
*/
|
|
65
|
+
const evaluateRelease = (a, b) => {
|
|
66
|
+
if (a === null) {
|
|
67
|
+
if (b === null) {
|
|
68
|
+
return 0;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
return 1;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (b === null) {
|
|
75
|
+
return -1;
|
|
76
|
+
}
|
|
77
|
+
const segmentA = a.split('.');
|
|
78
|
+
const segmentB = b.split('.');
|
|
79
|
+
const minLength = Math.min(segmentA.length, segmentB.length);
|
|
80
|
+
for (let i = 0; i < minLength; i++) {
|
|
81
|
+
const aIsNumeric = REGEX.numeric.test(segmentA[i]);
|
|
82
|
+
const bIsNumeric = REGEX.numeric.test(segmentB[i]);
|
|
83
|
+
if (aIsNumeric && !bIsNumeric) {
|
|
84
|
+
return -1;
|
|
85
|
+
}
|
|
86
|
+
if (!aIsNumeric && bIsNumeric) {
|
|
87
|
+
return 1;
|
|
88
|
+
}
|
|
89
|
+
if (aIsNumeric && bIsNumeric) {
|
|
90
|
+
const diff = parseInt(segmentA[i], 10) - parseInt(segmentB[i], 10);
|
|
91
|
+
if (diff !== 0) {
|
|
92
|
+
return diff > 0 ? 1 : -1;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
if (segmentA[i] < segmentB[i]) {
|
|
97
|
+
return -1;
|
|
98
|
+
}
|
|
99
|
+
if (segmentA[i] > segmentB[i]) {
|
|
100
|
+
return 1;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return segmentA.length - segmentB.length;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Compares build metadata.
|
|
108
|
+
* Metadata is compared lexicographically if both are present.
|
|
109
|
+
*
|
|
110
|
+
* @param {string | null} a - First metadata string (e.g., "001").
|
|
111
|
+
* @param {string | null} b - Second metadata string (e.g., "002").
|
|
112
|
+
* @returns {number} 1 if a > b, -1 if a < b, 0 if equal.
|
|
113
|
+
*/
|
|
114
|
+
const evaluateMeta = (a, b) => {
|
|
115
|
+
if (a === b) {
|
|
116
|
+
return 0;
|
|
117
|
+
}
|
|
118
|
+
if (a === null) {
|
|
119
|
+
return -1;
|
|
120
|
+
}
|
|
121
|
+
if (b === null) {
|
|
122
|
+
return 1;
|
|
123
|
+
}
|
|
124
|
+
return a > b ? 1 : -1;
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* Compares two normalized version objects.
|
|
128
|
+
* Evaluates version numbers, pre-release identifiers, and optionally metadata.
|
|
129
|
+
*
|
|
130
|
+
* @param {NormalizedVersion} a - First normalized version.
|
|
131
|
+
* @param {NormalizedVersion} b - Second normalized version.
|
|
132
|
+
* @param {ComparisonOperator} operador - Comparison operator used to determine if metadata should be compared.
|
|
133
|
+
* @returns {ComparisonResult} Object with version, release, and metadata comparison results.
|
|
134
|
+
*/
|
|
135
|
+
const evaluateVersions = (a, b, operador) => {
|
|
136
|
+
const maxLength = Math.max(a.numbers.length, b.numbers.length);
|
|
137
|
+
const comparison = {
|
|
138
|
+
version: 0,
|
|
139
|
+
release: 0,
|
|
140
|
+
metadata: 0,
|
|
141
|
+
};
|
|
142
|
+
for (let i = 0; i < maxLength; i++) {
|
|
143
|
+
const segmentA = a.numbers[i] || 0;
|
|
144
|
+
const segmentB = b.numbers[i] || 0;
|
|
145
|
+
if (segmentA !== segmentB) {
|
|
146
|
+
comparison.version = segmentA > segmentB ? 1 : -1;
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
comparison.release = evaluateRelease(a.release, b.release);
|
|
151
|
+
if (operador === '===' || operador === '!==') {
|
|
152
|
+
comparison.metadata = evaluateMeta(a.metadata, b.metadata);
|
|
153
|
+
}
|
|
154
|
+
return comparison;
|
|
155
|
+
};
|
|
156
|
+
/**
|
|
157
|
+
* Compares two version strings or numbers using the specified operator.
|
|
158
|
+
* Supports various comparison operators like ">", "<=", "==", "!==", etc.
|
|
159
|
+
*
|
|
160
|
+
* @param {Version} v1 - First version to compare (e.g., "1.0.0").
|
|
161
|
+
* @param {Version} v2 - Second version to compare (e.g., "2.0.0").
|
|
162
|
+
* @param {ComparisonOperator} [operator='>'] - Comparison operator (defaults to '>').
|
|
163
|
+
* @returns {boolean} Result of the comparison.
|
|
164
|
+
* @throws {Error} For unsupported operators or invalid version formats.
|
|
165
|
+
*/
|
|
166
|
+
const compare = (v1, v2, operator = '>') => {
|
|
167
|
+
if (!OPERATORS.includes(operator)) {
|
|
168
|
+
throw new Error(`Unsupported operator for comparison: ${operator}`);
|
|
169
|
+
}
|
|
170
|
+
if (operator === '===' || operator === '!==') {
|
|
171
|
+
return compareStrict(v1, v2, operator);
|
|
172
|
+
}
|
|
173
|
+
const { version, release } = evaluateVersions(normalize(v1), normalize(v2), operator);
|
|
174
|
+
switch (operator) {
|
|
175
|
+
case '>':
|
|
176
|
+
case 'gt':
|
|
177
|
+
return version > 0 || (version === 0 && release > 0);
|
|
178
|
+
case '>=':
|
|
179
|
+
case 'ge':
|
|
180
|
+
return version > 0 || (version === 0 && (release === 0 || release > 0));
|
|
181
|
+
case '<':
|
|
182
|
+
case 'lt':
|
|
183
|
+
return version < 0 || (version === 0 && release < 0);
|
|
184
|
+
case '<=':
|
|
185
|
+
case 'le':
|
|
186
|
+
return version < 0 || (version === 0 && release <= 0);
|
|
187
|
+
case '=':
|
|
188
|
+
case '==':
|
|
189
|
+
case 'eq':
|
|
190
|
+
return version === 0 && release === 0;
|
|
191
|
+
case '!=':
|
|
192
|
+
case '<>':
|
|
193
|
+
case 'ne':
|
|
194
|
+
return version !== 0 || release !== 0;
|
|
195
|
+
default:
|
|
196
|
+
return false;
|
|
197
|
+
}
|
|
198
|
+
};
|
|
199
|
+
const compareStrict = (v1, v2, operator = '>') => {
|
|
200
|
+
if (!OPERATORS.includes(operator)) {
|
|
201
|
+
throw new Error(`Unsupported operator for comparison: ${operator}`);
|
|
202
|
+
}
|
|
203
|
+
const { version, release, metadata } = evaluateVersions(normalize(v1), normalize(v2), '===');
|
|
204
|
+
switch (operator) {
|
|
205
|
+
case '>':
|
|
206
|
+
case 'gt':
|
|
207
|
+
return (version > 0 ||
|
|
208
|
+
(version === 0 && release > 0) ||
|
|
209
|
+
(version === 0 && release === 0 && metadata > 0));
|
|
210
|
+
case '>=':
|
|
211
|
+
case 'ge':
|
|
212
|
+
return (version > 0 ||
|
|
213
|
+
(version === 0 && release > 0) ||
|
|
214
|
+
(version === 0 && release === 0 && metadata >= 0));
|
|
215
|
+
case '<':
|
|
216
|
+
case 'lt':
|
|
217
|
+
return (version < 0 ||
|
|
218
|
+
(version === 0 && release < 0) ||
|
|
219
|
+
(version === 0 && release === 0 && metadata < 0));
|
|
220
|
+
case '<=':
|
|
221
|
+
case 'le':
|
|
222
|
+
return (version < 0 ||
|
|
223
|
+
(version === 0 && release < 0) ||
|
|
224
|
+
(version === 0 && release === 0 && metadata <= 0));
|
|
225
|
+
case '=':
|
|
226
|
+
case '==':
|
|
227
|
+
case '===':
|
|
228
|
+
case 'eq':
|
|
229
|
+
return version === 0 && release === 0 && metadata === 0;
|
|
230
|
+
case '!=':
|
|
231
|
+
case '!==':
|
|
232
|
+
case '<>':
|
|
233
|
+
case 'ne':
|
|
234
|
+
return version !== 0 || release !== 0 || metadata !== 0;
|
|
235
|
+
default:
|
|
236
|
+
return false;
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
|
|
240
|
+
exports.compare = compare;
|
|
241
|
+
exports.compareStrict = compareStrict;
|
|
242
|
+
|
|
243
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
244
|
+
|
|
245
|
+
return exports;
|
|
246
|
+
|
|
247
|
+
})({});
|
|
248
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var semverLite=function(e){"use strict";const r=[">","gt",">=","ge","<","lt","<=","le","=","==","eq","!=","<>","ne","===","!=="],t={version:/^\d+(\.\d+)*$/,numeric:/^\d+$/},n=e=>{if(null==e)throw new Error("Invalid version format: version cannot be undefined or null");"string"!=typeof e&&(e=String(e));const[r,n]=e.trim().replace(/^v/,"").split("+"),[s,a]=r.split("-");if(!t.version.test(s))throw new Error("Invalid version format");return{numbers:s.split(".").map(Number),release:a||null,metadata:n||null}},s=(e,r,n)=>{const s=Math.max(e.numbers.length,r.numbers.length),a={version:0,release:0,metadata:0};for(let t=0;t<s;t++){const n=e.numbers[t]||0,s=r.numbers[t]||0;if(n!==s){a.version=n>s?1:-1;break}}return a.release=((e,r)=>{if(null===e)return null===r?0:1;if(null===r)return-1;const n=e.split("."),s=r.split("."),a=Math.min(n.length,s.length);for(let e=0;e<a;e++){const r=t.numeric.test(n[e]),a=t.numeric.test(s[e]);if(r&&!a)return-1;if(!r&&a)return 1;if(r&&a){const r=parseInt(n[e],10)-parseInt(s[e],10);if(0!==r)return r>0?1:-1}else{if(n[e]<s[e])return-1;if(n[e]>s[e])return 1}}return n.length-s.length})(e.release,r.release),"==="!==n&&"!=="!==n||(a.metadata=((e,r)=>e===r?0:null===e?-1:null===r||e>r?1:-1)(e.metadata,r.metadata)),a},a=(e,t,a=">")=>{if(!r.includes(a))throw new Error(`Unsupported operator for comparison: ${a}`);const{version:c,release:u,metadata:l}=s(n(e),n(t),"===");switch(a){case">":case"gt":return c>0||0===c&&u>0||0===c&&0===u&&l>0;case">=":case"ge":return c>0||0===c&&u>0||0===c&&0===u&&l>=0;case"<":case"lt":return c<0||0===c&&u<0||0===c&&0===u&&l<0;case"<=":case"le":return c<0||0===c&&u<0||0===c&&0===u&&l<=0;case"=":case"==":case"===":case"eq":return 0===c&&0===u&&0===l;case"!=":case"!==":case"<>":case"ne":return 0!==c||0!==u||0!==l;default:return!1}};return e.compare=(e,t,c=">")=>{if(!r.includes(c))throw new Error(`Unsupported operator for comparison: ${c}`);if("==="===c||"!=="===c)return a(e,t,c);const{version:u,release:l}=s(n(e),n(t),c);switch(c){case">":case"gt":return u>0||0===u&&l>0;case">=":case"ge":return u>0||0===u&&(0===l||l>0);case"<":case"lt":return u<0||0===u&&l<0;case"<=":case"le":return u<0||0===u&&l<=0;case"=":case"==":case"eq":return 0===u&&0===l;case"!=":case"<>":case"ne":return 0!==u||0!==l;default:return!1}},e.compareStrict=a,Object.defineProperty(e,"__esModule",{value:!0}),e}({});
|
|
2
|
+
//# sourceMappingURL=index.min.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.min.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":["OPERATORS","REGEX","version","numeric","normalize","Error","String","vers","metadata","trim","replace","split","ver","release","test","numbers","map","Number","evaluateVersions","a","b","operador","maxLength","Math","max","length","comparison","i","segmentA","segmentB","minLength","min","aIsNumeric","bIsNumeric","diff","parseInt","evaluateRelease","evaluateMeta","compareStrict","v1","v2","operator","includes"],"mappings":"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"}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
(function (global, factory) {
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.semverLite = {}));
|
|
5
|
+
})(this, (function (exports) { 'use strict';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* List of supported comparison operators.
|
|
9
|
+
* These operators are used to compare semantic versions.
|
|
10
|
+
*/
|
|
11
|
+
const OPERATORS = [
|
|
12
|
+
'>',
|
|
13
|
+
'gt',
|
|
14
|
+
'>=',
|
|
15
|
+
'ge',
|
|
16
|
+
'<',
|
|
17
|
+
'lt',
|
|
18
|
+
'<=',
|
|
19
|
+
'le',
|
|
20
|
+
'=',
|
|
21
|
+
'==',
|
|
22
|
+
'eq',
|
|
23
|
+
'!=',
|
|
24
|
+
'<>',
|
|
25
|
+
'ne',
|
|
26
|
+
'===',
|
|
27
|
+
'!==',
|
|
28
|
+
];
|
|
29
|
+
const REGEX = {
|
|
30
|
+
version: /^\d+(\.\d+)*$/,
|
|
31
|
+
numeric: /^\d+$/,
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Normalizes a version string or number into a structured format.
|
|
35
|
+
* Converts the version into its components: numbers, pre-release, and metadata.
|
|
36
|
+
*
|
|
37
|
+
* @param {Version} version - Version to normalize (e.g., "1.0.0-alpha+001").
|
|
38
|
+
* @returns {NormalizedVersion} Structured version object with numbers, release, and metadata.
|
|
39
|
+
* @throws {Error} If the version format is invalid.
|
|
40
|
+
*/
|
|
41
|
+
const normalize = (version) => {
|
|
42
|
+
if (version === undefined || version === null) {
|
|
43
|
+
throw new Error('Invalid version format: version cannot be undefined or null');
|
|
44
|
+
}
|
|
45
|
+
if (typeof version !== 'string') {
|
|
46
|
+
version = String(version);
|
|
47
|
+
}
|
|
48
|
+
const [vers, metadata] = version.trim().replace(/^v/, '').split('+');
|
|
49
|
+
const [ver, release] = vers.split('-');
|
|
50
|
+
if (!REGEX.version.test(ver)) {
|
|
51
|
+
throw new Error('Invalid version format');
|
|
52
|
+
}
|
|
53
|
+
const result = {
|
|
54
|
+
numbers: ver.split('.').map(Number),
|
|
55
|
+
release: release || null,
|
|
56
|
+
metadata: metadata || null,
|
|
57
|
+
};
|
|
58
|
+
return result;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Compares pre-release identifiers according to SemVer rules.
|
|
62
|
+
* Pre-release identifiers are compared lexicographically and numerically.
|
|
63
|
+
*
|
|
64
|
+
* @param {string | null} a - First pre-release string (e.g., "alpha").
|
|
65
|
+
* @param {string | null} b - Second pre-release string (e.g., "beta").
|
|
66
|
+
* @returns {number} 1 if a > b, -1 if a < b, 0 if equal.
|
|
67
|
+
*/
|
|
68
|
+
const evaluateRelease = (a, b) => {
|
|
69
|
+
if (a === null) {
|
|
70
|
+
if (b === null) {
|
|
71
|
+
return 0;
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
return 1;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (b === null) {
|
|
78
|
+
return -1;
|
|
79
|
+
}
|
|
80
|
+
const segmentA = a.split('.');
|
|
81
|
+
const segmentB = b.split('.');
|
|
82
|
+
const minLength = Math.min(segmentA.length, segmentB.length);
|
|
83
|
+
for (let i = 0; i < minLength; i++) {
|
|
84
|
+
const aIsNumeric = REGEX.numeric.test(segmentA[i]);
|
|
85
|
+
const bIsNumeric = REGEX.numeric.test(segmentB[i]);
|
|
86
|
+
if (aIsNumeric && !bIsNumeric) {
|
|
87
|
+
return -1;
|
|
88
|
+
}
|
|
89
|
+
if (!aIsNumeric && bIsNumeric) {
|
|
90
|
+
return 1;
|
|
91
|
+
}
|
|
92
|
+
if (aIsNumeric && bIsNumeric) {
|
|
93
|
+
const diff = parseInt(segmentA[i], 10) - parseInt(segmentB[i], 10);
|
|
94
|
+
if (diff !== 0) {
|
|
95
|
+
return diff > 0 ? 1 : -1;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
if (segmentA[i] < segmentB[i]) {
|
|
100
|
+
return -1;
|
|
101
|
+
}
|
|
102
|
+
if (segmentA[i] > segmentB[i]) {
|
|
103
|
+
return 1;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return segmentA.length - segmentB.length;
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* Compares build metadata.
|
|
111
|
+
* Metadata is compared lexicographically if both are present.
|
|
112
|
+
*
|
|
113
|
+
* @param {string | null} a - First metadata string (e.g., "001").
|
|
114
|
+
* @param {string | null} b - Second metadata string (e.g., "002").
|
|
115
|
+
* @returns {number} 1 if a > b, -1 if a < b, 0 if equal.
|
|
116
|
+
*/
|
|
117
|
+
const evaluateMeta = (a, b) => {
|
|
118
|
+
if (a === b) {
|
|
119
|
+
return 0;
|
|
120
|
+
}
|
|
121
|
+
if (a === null) {
|
|
122
|
+
return -1;
|
|
123
|
+
}
|
|
124
|
+
if (b === null) {
|
|
125
|
+
return 1;
|
|
126
|
+
}
|
|
127
|
+
return a > b ? 1 : -1;
|
|
128
|
+
};
|
|
129
|
+
/**
|
|
130
|
+
* Compares two normalized version objects.
|
|
131
|
+
* Evaluates version numbers, pre-release identifiers, and optionally metadata.
|
|
132
|
+
*
|
|
133
|
+
* @param {NormalizedVersion} a - First normalized version.
|
|
134
|
+
* @param {NormalizedVersion} b - Second normalized version.
|
|
135
|
+
* @param {ComparisonOperator} operador - Comparison operator used to determine if metadata should be compared.
|
|
136
|
+
* @returns {ComparisonResult} Object with version, release, and metadata comparison results.
|
|
137
|
+
*/
|
|
138
|
+
const evaluateVersions = (a, b, operador) => {
|
|
139
|
+
const maxLength = Math.max(a.numbers.length, b.numbers.length);
|
|
140
|
+
const comparison = {
|
|
141
|
+
version: 0,
|
|
142
|
+
release: 0,
|
|
143
|
+
metadata: 0,
|
|
144
|
+
};
|
|
145
|
+
for (let i = 0; i < maxLength; i++) {
|
|
146
|
+
const segmentA = a.numbers[i] || 0;
|
|
147
|
+
const segmentB = b.numbers[i] || 0;
|
|
148
|
+
if (segmentA !== segmentB) {
|
|
149
|
+
comparison.version = segmentA > segmentB ? 1 : -1;
|
|
150
|
+
break;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
comparison.release = evaluateRelease(a.release, b.release);
|
|
154
|
+
if (operador === '===' || operador === '!==') {
|
|
155
|
+
comparison.metadata = evaluateMeta(a.metadata, b.metadata);
|
|
156
|
+
}
|
|
157
|
+
return comparison;
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* Compares two version strings or numbers using the specified operator.
|
|
161
|
+
* Supports various comparison operators like ">", "<=", "==", "!==", etc.
|
|
162
|
+
*
|
|
163
|
+
* @param {Version} v1 - First version to compare (e.g., "1.0.0").
|
|
164
|
+
* @param {Version} v2 - Second version to compare (e.g., "2.0.0").
|
|
165
|
+
* @param {ComparisonOperator} [operator='>'] - Comparison operator (defaults to '>').
|
|
166
|
+
* @returns {boolean} Result of the comparison.
|
|
167
|
+
* @throws {Error} For unsupported operators or invalid version formats.
|
|
168
|
+
*/
|
|
169
|
+
const compare = (v1, v2, operator = '>') => {
|
|
170
|
+
if (!OPERATORS.includes(operator)) {
|
|
171
|
+
throw new Error(`Unsupported operator for comparison: ${operator}`);
|
|
172
|
+
}
|
|
173
|
+
if (operator === '===' || operator === '!==') {
|
|
174
|
+
return compareStrict(v1, v2, operator);
|
|
175
|
+
}
|
|
176
|
+
const { version, release } = evaluateVersions(normalize(v1), normalize(v2), operator);
|
|
177
|
+
switch (operator) {
|
|
178
|
+
case '>':
|
|
179
|
+
case 'gt':
|
|
180
|
+
return version > 0 || (version === 0 && release > 0);
|
|
181
|
+
case '>=':
|
|
182
|
+
case 'ge':
|
|
183
|
+
return version > 0 || (version === 0 && (release === 0 || release > 0));
|
|
184
|
+
case '<':
|
|
185
|
+
case 'lt':
|
|
186
|
+
return version < 0 || (version === 0 && release < 0);
|
|
187
|
+
case '<=':
|
|
188
|
+
case 'le':
|
|
189
|
+
return version < 0 || (version === 0 && release <= 0);
|
|
190
|
+
case '=':
|
|
191
|
+
case '==':
|
|
192
|
+
case 'eq':
|
|
193
|
+
return version === 0 && release === 0;
|
|
194
|
+
case '!=':
|
|
195
|
+
case '<>':
|
|
196
|
+
case 'ne':
|
|
197
|
+
return version !== 0 || release !== 0;
|
|
198
|
+
default:
|
|
199
|
+
return false;
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
const compareStrict = (v1, v2, operator = '>') => {
|
|
203
|
+
if (!OPERATORS.includes(operator)) {
|
|
204
|
+
throw new Error(`Unsupported operator for comparison: ${operator}`);
|
|
205
|
+
}
|
|
206
|
+
const { version, release, metadata } = evaluateVersions(normalize(v1), normalize(v2), '===');
|
|
207
|
+
switch (operator) {
|
|
208
|
+
case '>':
|
|
209
|
+
case 'gt':
|
|
210
|
+
return (version > 0 ||
|
|
211
|
+
(version === 0 && release > 0) ||
|
|
212
|
+
(version === 0 && release === 0 && metadata > 0));
|
|
213
|
+
case '>=':
|
|
214
|
+
case 'ge':
|
|
215
|
+
return (version > 0 ||
|
|
216
|
+
(version === 0 && release > 0) ||
|
|
217
|
+
(version === 0 && release === 0 && metadata >= 0));
|
|
218
|
+
case '<':
|
|
219
|
+
case 'lt':
|
|
220
|
+
return (version < 0 ||
|
|
221
|
+
(version === 0 && release < 0) ||
|
|
222
|
+
(version === 0 && release === 0 && metadata < 0));
|
|
223
|
+
case '<=':
|
|
224
|
+
case 'le':
|
|
225
|
+
return (version < 0 ||
|
|
226
|
+
(version === 0 && release < 0) ||
|
|
227
|
+
(version === 0 && release === 0 && metadata <= 0));
|
|
228
|
+
case '=':
|
|
229
|
+
case '==':
|
|
230
|
+
case '===':
|
|
231
|
+
case 'eq':
|
|
232
|
+
return version === 0 && release === 0 && metadata === 0;
|
|
233
|
+
case '!=':
|
|
234
|
+
case '!==':
|
|
235
|
+
case '<>':
|
|
236
|
+
case 'ne':
|
|
237
|
+
return version !== 0 || release !== 0 || metadata !== 0;
|
|
238
|
+
default:
|
|
239
|
+
return false;
|
|
240
|
+
}
|
|
241
|
+
};
|
|
242
|
+
|
|
243
|
+
exports.compare = compare;
|
|
244
|
+
exports.compareStrict = compareStrict;
|
|
245
|
+
|
|
246
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
247
|
+
|
|
248
|
+
}));
|
|
249
|
+
//# sourceMappingURL=index.umd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.umd.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((e="undefined"!=typeof globalThis?globalThis:e||self).semverLite={})}(this,function(e){"use strict";const r=[">","gt",">=","ge","<","lt","<=","le","=","==","eq","!=","<>","ne","===","!=="],t={version:/^\d+(\.\d+)*$/,numeric:/^\d+$/},n=e=>{if(null==e)throw new Error("Invalid version format: version cannot be undefined or null");"string"!=typeof e&&(e=String(e));const[r,n]=e.trim().replace(/^v/,"").split("+"),[s,a]=r.split("-");if(!t.version.test(s))throw new Error("Invalid version format");return{numbers:s.split(".").map(Number),release:a||null,metadata:n||null}},s=(e,r,n)=>{const s=Math.max(e.numbers.length,r.numbers.length),a={version:0,release:0,metadata:0};for(let t=0;t<s;t++){const n=e.numbers[t]||0,s=r.numbers[t]||0;if(n!==s){a.version=n>s?1:-1;break}}return a.release=((e,r)=>{if(null===e)return null===r?0:1;if(null===r)return-1;const n=e.split("."),s=r.split("."),a=Math.min(n.length,s.length);for(let e=0;e<a;e++){const r=t.numeric.test(n[e]),a=t.numeric.test(s[e]);if(r&&!a)return-1;if(!r&&a)return 1;if(r&&a){const r=parseInt(n[e],10)-parseInt(s[e],10);if(0!==r)return r>0?1:-1}else{if(n[e]<s[e])return-1;if(n[e]>s[e])return 1}}return n.length-s.length})(e.release,r.release),"==="!==n&&"!=="!==n||(a.metadata=((e,r)=>e===r?0:null===e?-1:null===r||e>r?1:-1)(e.metadata,r.metadata)),a},a=(e,t,a=">")=>{if(!r.includes(a))throw new Error(`Unsupported operator for comparison: ${a}`);const{version:o,release:l,metadata:c}=s(n(e),n(t),"===");switch(a){case">":case"gt":return o>0||0===o&&l>0||0===o&&0===l&&c>0;case">=":case"ge":return o>0||0===o&&l>0||0===o&&0===l&&c>=0;case"<":case"lt":return o<0||0===o&&l<0||0===o&&0===l&&c<0;case"<=":case"le":return o<0||0===o&&l<0||0===o&&0===l&&c<=0;case"=":case"==":case"===":case"eq":return 0===o&&0===l&&0===c;case"!=":case"!==":case"<>":case"ne":return 0!==o||0!==l||0!==c;default:return!1}};e.compare=(e,t,o=">")=>{if(!r.includes(o))throw new Error(`Unsupported operator for comparison: ${o}`);if("==="===o||"!=="===o)return a(e,t,o);const{version:l,release:c}=s(n(e),n(t),o);switch(o){case">":case"gt":return l>0||0===l&&c>0;case">=":case"ge":return l>0||0===l&&(0===c||c>0);case"<":case"lt":return l<0||0===l&&c<0;case"<=":case"le":return l<0||0===l&&c<=0;case"=":case"==":case"eq":return 0===l&&0===c;case"!=":case"<>":case"ne":return 0!==l||0!==c;default:return!1}},e.compareStrict=a,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
2
|
+
//# sourceMappingURL=index.umd.min.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.umd.min.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":["OPERATORS","REGEX","version","numeric","normalize","Error","String","vers","metadata","trim","replace","split","ver","release","test","numbers","map","Number","evaluateVersions","a","b","operador","maxLength","Math","max","length","comparison","i","segmentA","segmentB","minLength","min","aIsNumeric","bIsNumeric","diff","parseInt","evaluateRelease","evaluateMeta","compareStrict","v1","v2","operator","includes"],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@kallookoo/semver-lite",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "A lightweight library for comparing semantic versions.",
|
|
5
|
+
"homepage": "https://github.com/kallookoo/semver-lite#readme",
|
|
6
|
+
"bugs": {
|
|
7
|
+
"url": "https://github.com/kallookoo/semver-lite/issues"
|
|
8
|
+
},
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/kallookoo/semver-lite.git"
|
|
12
|
+
},
|
|
13
|
+
"license": "MIT",
|
|
14
|
+
"author": "Sergio (kallookoo)",
|
|
15
|
+
"main": "dist/index.js",
|
|
16
|
+
"module": "dist/index.esm.js",
|
|
17
|
+
"browser": "dist/index.min.js",
|
|
18
|
+
"unpkg": "dist/index.min.js",
|
|
19
|
+
"jsdelivr": "dist/index.min.js",
|
|
20
|
+
"types": "dist/index.d.ts",
|
|
21
|
+
"files": [
|
|
22
|
+
"dist"
|
|
23
|
+
],
|
|
24
|
+
"sideEffects": false,
|
|
25
|
+
"scripts": {
|
|
26
|
+
"test": "vitest run",
|
|
27
|
+
"test:watch": "vitest",
|
|
28
|
+
"build": "rollup -c"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@eslint/js": "^9.23.0",
|
|
32
|
+
"@rollup/plugin-commonjs": "^28.0.3",
|
|
33
|
+
"@rollup/plugin-node-resolve": "^16.0.1",
|
|
34
|
+
"@rollup/plugin-terser": "^0.4.4",
|
|
35
|
+
"@rollup/plugin-typescript": "^12.1.2",
|
|
36
|
+
"eslint": "^9.23.0",
|
|
37
|
+
"eslint-config-prettier": "^10.1.1",
|
|
38
|
+
"prettier": "^3.5.3",
|
|
39
|
+
"rollup": "^2.79.2",
|
|
40
|
+
"tslib": "^2.8.1",
|
|
41
|
+
"typescript": "^5.8.2",
|
|
42
|
+
"typescript-eslint": "^8.28.0",
|
|
43
|
+
"vitest": "^3.2.4"
|
|
44
|
+
}
|
|
45
|
+
}
|