| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | 
							- const SemVer = require('../classes/semver')
 
- const Range = require('../classes/range')
 
- const gt = require('../functions/gt')
 
- const minVersion = (range, loose) => {
 
-   range = new Range(range, loose)
 
-   let minver = new SemVer('0.0.0')
 
-   if (range.test(minver)) {
 
-     return minver
 
-   }
 
-   minver = new SemVer('0.0.0-0')
 
-   if (range.test(minver)) {
 
-     return minver
 
-   }
 
-   minver = null
 
-   for (let i = 0; i < range.set.length; ++i) {
 
-     const comparators = range.set[i]
 
-     let setMin = null
 
-     comparators.forEach((comparator) => {
 
-       // Clone to avoid manipulating the comparator's semver object.
 
-       const compver = new SemVer(comparator.semver.version)
 
-       switch (comparator.operator) {
 
-         case '>':
 
-           if (compver.prerelease.length === 0) {
 
-             compver.patch++
 
-           } else {
 
-             compver.prerelease.push(0)
 
-           }
 
-           compver.raw = compver.format()
 
-           /* fallthrough */
 
-         case '':
 
-         case '>=':
 
-           if (!setMin || gt(compver, setMin)) {
 
-             setMin = compver
 
-           }
 
-           break
 
-         case '<':
 
-         case '<=':
 
-           /* Ignore maximum versions */
 
-           break
 
-         /* istanbul ignore next */
 
-         default:
 
-           throw new Error(`Unexpected operation: ${comparator.operator}`)
 
-       }
 
-     })
 
-     if (setMin && (!minver || gt(minver, setMin))) {
 
-       minver = setMin
 
-     }
 
-   }
 
-   if (minver && range.test(minver)) {
 
-     return minver
 
-   }
 
-   return null
 
- }
 
- module.exports = minVersion
 
 
  |