- Add
subset(r1, r2)
method to determine ifr1
range is entirely contained byr2
range.
- Fix handling of
includePrelease
mode where version ranges like1.0.0 - 2.0.0
would include3.0.0-pre
and not1.0.0-pre
.
- Fix bug where
2.0.0-pre
would be included in^1.0.0
ifincludePrerelease
was set to true.
- Add
simplifyRange
method to attempt to generate a more human-readable range expression that is equivalent to a supplied range, for a given set of versions.
- Remove fancy lazy-loading logic, as it was causing problems for webpack users.
- Add
require('semver/preload')
to load the entire module without using lazy getter methods.
- Refactor module into separate files for better tree-shaking
- Drop support for very old node versions, use const/let,
=>
functions, and classes.
- Expose the token enum on the exports
- Coerce numbers to strings when passed to semver.coerce()
- Add
rtl
option to coerce from right to left
- Handle X-ranges properly in includePrerelease mode
- Do not throw when testing invalid version strings
- Add options support for semver.coerce()
- Handle undefined version passed to Range.test
- Add semver.compareBuild function
- Support
*
in semver.intersects
-
Fix
intersects
logic.This is technically a bug fix, but since it is also a change to behavior that may require users updating their code, it is marked as a major version increment.
- Add
minVersion
method
- Move boolean
loose
param to an options object, with backwards-compatibility protection. - Add ability to opt out of special prerelease version handling with
the
includePrerelease
option flag.
- Add version coercion capabilities
- Add intersection checking
- Add
minSatisfying
method
- Add
prerelease(v)
that returns prerelease components
- Add Backus-Naur for ranges
- Remove excessively cute inspection methods
- Remove AMD/Browserified build artifacts
- Fix ltr and gtr when using the
*
range - Fix for range
*
with a prerelease identifier