| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 | | const SemVer = require('../classes/semver') |  | const Range = require('../classes/range') |  |   |  | const maxSatisfying = (versions, range, options) => { |  |   let max = null |  |   let maxSV = null |  |   let rangeObj = null |  |   try { |  |     rangeObj = new Range(range, options) |  |   } catch (er) { |  |     return null |  |   } |  |   versions.forEach((v) => { |  |     if (rangeObj.test(v)) { |  |       // satisfies(v, range, options) |  |       if (!max || maxSV.compare(v) === -1) { |  |         // compare(max, v, true) |  |         max = v |  |         maxSV = new SemVer(max, options) |  |       } |  |     } |  |   }) |  |   return max |  | } |  | module.exports = maxSatisfying | 
 |