Changeset 6c7cfa6 for node_modules/semver
- Timestamp:
- 09/21/26 00:41:03 (9 days ago)
- Branches:
- main
- Children:
- 2d1ec46
- Parents:
- 6149556
- git-author:
- Klimentina Efremova <klimentina08642@…> (09/21/26 00:24:09)
- git-committer:
- Klimentina Efremova <klimentina08642@…> (09/21/26 00:41:03)
- Location:
- node_modules/semver
- Files:
-
- 1 added
- 8 edited
-
README.md (modified) (4 diffs)
-
classes/range.js (modified) (8 diffs)
-
classes/semver.js (modified) (2 diffs)
-
functions/truncate.js (added)
-
index.js (modified) (2 diffs)
-
internal/re.js (modified) (1 diff)
-
package.json (modified) (3 diffs)
-
range.bnf (modified) (1 diff)
-
ranges/subset.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
node_modules/semver/README.md
r6149556 r6c7cfa6 57 57 const semverSort = require('semver/functions/sort') 58 58 const semverRsort = require('semver/functions/rsort') 59 const semverTruncate = require('semver/functions/truncate') 59 60 60 61 // low-level comparators between versions … … 400 401 caret ::= '^' partial 401 402 qualifier ::= ( '-' pre )? ( '+' build )? 402 pre ::= parts 403 build ::= parts 404 parts ::= part ( '.' part ) * 405 part ::= nr | [-0-9A-Za-z]+ 406 ``` 403 pre ::= prepart ( '.' prepart ) * 404 prepart ::= nr | alphanumid 405 build ::= buildid ( '.' buildid ) * 406 alphanumid ::= ( ['0'-'9'] ) * [-A-Za-z] [-0-9A-Za-z] * 407 buildid ::= [-0-9A-Za-z]+ 408 ``` 409 410 Note: Prerelease identifiers (`pre`) use `nr` for numeric parts, which 411 disallows leading zeros (e.g., `1.2.3-00` is invalid). Build metadata 412 identifiers (`build`) allow any alphanumeric string including leading 413 zeros (e.g., `1.2.3+00` is valid). This matches the 414 [SemVer 2.0.0 specification](https://semver.org/#spec-item-9). 407 415 408 416 ## Functions … … 450 458 * `parse(v)`: Attempt to parse a string as a semantic version, returning either 451 459 a `SemVer` object or `null`. 460 * `truncate(v, releaseType)`: Return the version with components _lower_ 461 than `releaseType` dropped off, e.g.: 462 * `major` removes build & prerelease info and sets minor & patch to 0. 463 * `minor` removes build & prerelease info, and sets patch to 0 464 * `patch` removes build & prerelease info 465 * All prerelease types remove build info only 452 466 453 467 ### Comparison … … 651 665 * `require('semver/functions/satisfies')` 652 666 * `require('semver/functions/sort')` 667 * `require('semver/functions/truncate')` 653 668 * `require('semver/functions/valid')` 654 669 * `require('semver/ranges/gtr')` -
node_modules/semver/classes/range.js
r6149556 r6c7cfa6 99 99 100 100 parseRange (range) { 101 // strip build metadata so it can't bleed into the version 102 range = range.replace(BUILDSTRIPRE, '') 103 101 104 // memoize range parsing for performance. 102 105 // this is a very hot path, and fully deterministic. … … 224 227 const { 225 228 safeRe: re, 229 src, 226 230 t, 227 231 comparatorTrimReplace, … … 230 234 } = require('../internal/re') 231 235 const { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants') 236 237 // unbounded global build-metadata stripper used by parseRange 238 const BUILDSTRIPRE = new RegExp(src[t.BUILD], 'g') 232 239 233 240 const isNullSet = c => c.value === '<0.0.0-0' … … 271 278 const isX = id => !id || id.toLowerCase() === 'x' || id === '*' 272 279 280 const invalidXRangeOrder = (M, m, p) => ( 281 (isX(M) && !isX(m)) || 282 (isX(m) && p && !isX(p)) 283 ) 284 273 285 // ~, ~> --> * (any, kinda silly) 274 286 // ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0 … … 288 300 const replaceTilde = (comp, options) => { 289 301 const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE] 302 // if we're including prereleases in the match, then the lower bound is 303 // -0, the lowest possible prerelease value, just like x-ranges and carets. 304 // this keeps `~1.2` equivalent to the `1.2.x` x-range it's documented as. 305 const z = options.includePrerelease ? '-0' : '' 290 306 return comp.replace(r, (_, M, m, p, pr) => { 291 307 debug('tilde', comp, _, M, m, p, pr) … … 295 311 ret = '' 296 312 } else if (isX(m)) { 297 ret = `>=${M}.0.0 <${+M + 1}.0.0-0`313 ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0` 298 314 } else if (isX(p)) { 299 315 // ~1.2 == >=1.2.0 <1.3.0-0 300 ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`316 ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0` 301 317 } else if (pr) { 302 318 debug('replaceTilde pr', pr) … … 367 383 if (m === '0') { 368 384 ret = `>=${M}.${m}.${p 369 } ${z}<${M}.${m}.${+p + 1}-0`385 } <${M}.${m}.${+p + 1}-0` 370 386 } else { 371 387 ret = `>=${M}.${m}.${p 372 } ${z}<${M}.${+m + 1}.0-0`388 } <${M}.${+m + 1}.0-0` 373 389 } 374 390 } else { … … 396 412 return comp.replace(r, (ret, gtlt, M, m, p, pr) => { 397 413 debug('xRange', comp, ret, gtlt, M, m, p, pr) 414 if (invalidXRangeOrder(M, m, p)) { 415 return comp 416 } 417 398 418 const xM = isX(M) 399 419 const xm = xM || isX(m) -
node_modules/semver/classes/semver.js
r6149556 r6c7cfa6 7 7 const parseOptions = require('../internal/parse-options') 8 8 const { compareIdentifiers } = require('../internal/identifiers') 9 10 const isPrereleaseIdentifier = (prerelease, identifier) => { 11 const identifiers = identifier.split('.') 12 if (identifiers.length > prerelease.length) { 13 return false 14 } 15 16 for (let i = 0; i < identifiers.length; i++) { 17 if (compareIdentifiers(prerelease[i], identifiers[i]) !== 0) { 18 return false 19 } 20 } 21 22 return true 23 } 24 9 25 class SemVer { 10 26 constructor (version, options) { … … 310 326 prerelease = [identifier] 311 327 } 312 if (compareIdentifiers(this.prerelease[0], identifier) === 0) { 313 if (isNaN(this.prerelease[1])) { 328 if (isPrereleaseIdentifier(this.prerelease, identifier)) { 329 const prereleaseBase = this.prerelease[identifier.split('.').length] 330 if (isNaN(prereleaseBase)) { 314 331 this.prerelease = prerelease 315 332 } -
node_modules/semver/index.js
r6149556 r6c7cfa6 29 29 const cmp = require('./functions/cmp') 30 30 const coerce = require('./functions/coerce') 31 const truncate = require('./functions/truncate') 31 32 const Comparator = require('./classes/comparator') 32 33 const Range = require('./classes/range') … … 67 68 cmp, 68 69 coerce, 70 truncate, 69 71 Comparator, 70 72 Range, -
node_modules/semver/internal/re.js
r6149556 r6c7cfa6 137 137 138 138 // Something like "2.*" or "1.2.x". 139 // Note that "x.x" is a valid xRange identif er, meaning "any version"139 // Note that "x.x" is a valid xRange identifier, meaning "any version" 140 140 // Only the first item is strictly required. 141 141 createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`) -
node_modules/semver/package.json
r6149556 r6c7cfa6 1 1 { 2 2 "name": "semver", 3 "version": "7. 7.4",3 "version": "7.8.5", 4 4 "description": "The semantic version parser used by npm.", 5 5 "main": "index.js", … … 15 15 }, 16 16 "devDependencies": { 17 "@npmcli/eslint-config": "^ 6.0.0",18 "@npmcli/template-oss": " 4.29.0",17 "@npmcli/eslint-config": "^7.0.0", 18 "@npmcli/template-oss": "5.0.0", 19 19 "benchmark": "^2.1.4", 20 20 "tap": "^16.0.0" … … 53 53 "templateOSS": { 54 54 "//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.", 55 "version": " 4.29.0",55 "version": "5.0.0", 56 56 "engines": ">=10", 57 57 "distPaths": [ -
node_modules/semver/range.bnf
r6149556 r6c7cfa6 11 11 caret ::= '^' partial 12 12 qualifier ::= ( '-' pre )? ( '+' build )? 13 pre ::= parts 14 build ::= parts 15 parts ::= part ( '.' part ) * 16 part ::= nr | [-0-9A-Za-z]+ 13 pre ::= prepart ( '.' prepart ) * 14 prepart ::= nr | alphanumid 15 build ::= buildid ( '.' buildid ) * 16 alphanumid ::= ( [0-9] ) * [A-Za-z-] [-0-9A-Za-z] * 17 buildid ::= [-0-9A-Za-z]+ -
node_modules/semver/ranges/subset.js
r6149556 r6c7cfa6 175 175 return false 176 176 } 177 } else if (gt.operator === '>=' && ! satisfies(gt.semver, String(c), options)) {177 } else if (gt.operator === '>=' && !c.test(gt.semver)) { 178 178 return false 179 179 } … … 193 193 return false 194 194 } 195 } else if (lt.operator === '<=' && ! satisfies(lt.semver, String(c), options)) {195 } else if (lt.operator === '<=' && !c.test(lt.semver)) { 196 196 return false 197 197 }
Note:
See TracChangeset
for help on using the changeset viewer.
