Ignore:
Timestamp:
09/21/26 00:41:03 (9 days ago)
Author:
Klimentina Efremova <klimentina08642@…>
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)
Message:

Implemented Advaced database reports

Location:
node_modules/semver
Files:
1 added
8 edited

Legend:

Unmodified
Added
Removed
  • node_modules/semver/README.md

    r6149556 r6c7cfa6  
    5757const semverSort = require('semver/functions/sort')
    5858const semverRsort = require('semver/functions/rsort')
     59const semverTruncate = require('semver/functions/truncate')
    5960
    6061// low-level comparators between versions
    … …  
    400401caret      ::= '^' partial
    401402qualifier  ::= ( '-' pre )? ( '+' build )?
    402 pre        ::= parts
    403 build      ::= parts
    404 parts      ::= part ( '.' part ) *
    405 part       ::= nr | [-0-9A-Za-z]+
    406 ```
     403pre        ::= prepart ( '.' prepart ) *
     404prepart    ::= nr | alphanumid
     405build      ::= buildid ( '.' buildid ) *
     406alphanumid ::= ( ['0'-'9'] ) * [-A-Za-z] [-0-9A-Za-z] *
     407buildid    ::= [-0-9A-Za-z]+
     408```
     409
     410Note: Prerelease identifiers (`pre`) use `nr` for numeric parts, which
     411disallows leading zeros (e.g., `1.2.3-00` is invalid). Build metadata
     412identifiers (`build`) allow any alphanumeric string including leading
     413zeros (e.g., `1.2.3+00` is valid). This matches the
     414[SemVer 2.0.0 specification](https://semver.org/#spec-item-9).
    407415
    408416## Functions
    … …  
    450458* `parse(v)`: Attempt to parse a string as a semantic version, returning either
    451459  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
    452466
    453467### Comparison
    … …  
    651665* `require('semver/functions/satisfies')`
    652666* `require('semver/functions/sort')`
     667* `require('semver/functions/truncate')`
    653668* `require('semver/functions/valid')`
    654669* `require('semver/ranges/gtr')`
  • node_modules/semver/classes/range.js

    r6149556 r6c7cfa6  
    9999
    100100  parseRange (range) {
     101    // strip build metadata so it can't bleed into the version
     102    range = range.replace(BUILDSTRIPRE, '')
     103
    101104    // memoize range parsing for performance.
    102105    // this is a very hot path, and fully deterministic.
    … …  
    224227const {
    225228  safeRe: re,
     229  src,
    226230  t,
    227231  comparatorTrimReplace,
    … …  
    230234} = require('../internal/re')
    231235const { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants')
     236
     237// unbounded global build-metadata stripper used by parseRange
     238const BUILDSTRIPRE = new RegExp(src[t.BUILD], 'g')
    232239
    233240const isNullSet = c => c.value === '<0.0.0-0'
    … …  
    271278const isX = id => !id || id.toLowerCase() === 'x' || id === '*'
    272279
     280const invalidXRangeOrder = (M, m, p) => (
     281  (isX(M) && !isX(m)) ||
     282  (isX(m) && p && !isX(p))
     283)
     284
    273285// ~, ~> --> * (any, kinda silly)
    274286// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0
    … …  
    288300const replaceTilde = (comp, options) => {
    289301  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' : ''
    290306  return comp.replace(r, (_, M, m, p, pr) => {
    291307    debug('tilde', comp, _, M, m, p, pr)
    … …  
    295311      ret = ''
    296312    } 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`
    298314    } else if (isX(p)) {
    299315      // ~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`
    301317    } else if (pr) {
    302318      debug('replaceTilde pr', pr)
    … …  
    367383        if (m === '0') {
    368384          ret = `>=${M}.${m}.${p
    369           }${z} <${M}.${m}.${+p + 1}-0`
     385          } <${M}.${m}.${+p + 1}-0`
    370386        } else {
    371387          ret = `>=${M}.${m}.${p
    372           }${z} <${M}.${+m + 1}.0-0`
     388          } <${M}.${+m + 1}.0-0`
    373389        }
    374390      } else {
    … …  
    396412  return comp.replace(r, (ret, gtlt, M, m, p, pr) => {
    397413    debug('xRange', comp, ret, gtlt, M, m, p, pr)
     414    if (invalidXRangeOrder(M, m, p)) {
     415      return comp
     416    }
     417
    398418    const xM = isX(M)
    399419    const xm = xM || isX(m)
  • node_modules/semver/classes/semver.js

    r6149556 r6c7cfa6  
    77const parseOptions = require('../internal/parse-options')
    88const { compareIdentifiers } = require('../internal/identifiers')
     9
     10const 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
    925class SemVer {
    1026  constructor (version, options) {
    … …  
    310326            prerelease = [identifier]
    311327          }
    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)) {
    314331              this.prerelease = prerelease
    315332            }
  • node_modules/semver/index.js

    r6149556 r6c7cfa6  
    2929const cmp = require('./functions/cmp')
    3030const coerce = require('./functions/coerce')
     31const truncate = require('./functions/truncate')
    3132const Comparator = require('./classes/comparator')
    3233const Range = require('./classes/range')
    … …  
    6768  cmp,
    6869  coerce,
     70  truncate,
    6971  Comparator,
    7072  Range,
  • node_modules/semver/internal/re.js

    r6149556 r6c7cfa6  
    137137
    138138// Something like "2.*" or "1.2.x".
    139 // Note that "x.x" is a valid xRange identifer, meaning "any version"
     139// Note that "x.x" is a valid xRange identifier, meaning "any version"
    140140// Only the first item is strictly required.
    141141createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`)
  • node_modules/semver/package.json

    r6149556 r6c7cfa6  
    11{
    22  "name": "semver",
    3   "version": "7.7.4",
     3  "version": "7.8.5",
    44  "description": "The semantic version parser used by npm.",
    55  "main": "index.js",
    … …  
    1515  },
    1616  "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",
    1919    "benchmark": "^2.1.4",
    2020    "tap": "^16.0.0"
    … …  
    5353  "templateOSS": {
    5454    "//@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",
    5656    "engines": ">=10",
    5757    "distPaths": [
  • node_modules/semver/range.bnf

    r6149556 r6c7cfa6  
    1111caret      ::= '^' partial
    1212qualifier  ::= ( '-' pre )? ( '+' build )?
    13 pre        ::= parts
    14 build      ::= parts
    15 parts      ::= part ( '.' part ) *
    16 part       ::= nr | [-0-9A-Za-z]+
     13pre        ::= prepart ( '.' prepart ) *
     14prepart    ::= nr | alphanumid
     15build      ::= buildid ( '.' buildid ) *
     16alphanumid ::= ( [0-9] ) * [A-Za-z-] [-0-9A-Za-z] *
     17buildid    ::= [-0-9A-Za-z]+
  • node_modules/semver/ranges/subset.js

    r6149556 r6c7cfa6  
    175175          return false
    176176        }
    177       } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {
     177      } else if (gt.operator === '>=' && !c.test(gt.semver)) {
    178178        return false
    179179      }
    … …  
    193193          return false
    194194        }
    195       } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {
     195      } else if (lt.operator === '<=' && !c.test(lt.semver)) {
    196196        return false
    197197      }
Note: See TracChangeset for help on using the changeset viewer.