Check version ranges like `>=N` and `X || Y || Z` with support for Node.js, Web Browsers, Deno, and TypeScript.
npm install version-rangeCheck version ranges like >=N and X || Y || Z with support for Node.js, Web Browsers, Deno, and TypeScript.
Range comparison of versions for the most common use cases. Fast with broad ecosystem support.
``typescript
import satisfies from 'version-range'
console.log(satisfies('1.0', '>=1.0')) // true
console.log(satisfies('1.0', '1')) // true
console.log(satisfies('1.0', '1 || 2')) // true
console.log(satisfies('1.1.0', '^1.1')) // true
console.log(satisfies('1.1.0', '~1.1')) // true
console.log(satisfies('1.0.0', '5 || <=2')) // true
console.log(satisfies('1', '<=2')) // true
console.log(satisfies('1.0', '<=2')) // true
console.log(satisfies('1.0.0', '<=2')) // true
console.log(satisfies('2', '>1')) // true
console.log(satisfies('2', '>=1')) // true
console.log(satisfies('1', '>=1')) // true
console.log(satisfies('1.0', '>=1')) // true
console.log(satisfies('1.0.0', '>=1')) // true
console.log(satisfies('1', '>=1.0.0')) // true
console.log(satisfies('1.0', '>=1.0.0')) // true
console.log(satisfies('1.0.0', '>=1.0.0')) // true
console.log(satisfies('1', '^1')) // true
console.log(satisfies('1', '~1')) // false, not all 1.x versions (1.1, 1.2, etc) match 1.0.x
console.log(satisfies('1', '^1.1')) // false, not all 1.x versions (1.0) match >=1.1<2
console.log(satisfies('1', '~1.1')) // false, not all 1.x versions (1.0) match 1.1.x
console.log(satisfies('1.0.0', '^1')) // true
console.log(satisfies('1.0.0', '~1')) // true
`
The above results are expected, but not what the semver package returns. The semver package has two different behaviours based on whether the version is coerced or not, alternating between expected and unexpected results. This package differs to match our actual expectations, as you can see above.
Doesn't do special handling for -releaseTag and 0.x versions.
This package comprises this suite of related packages:
- version-clean
- version-compare
- version-range
And if you are specifically interested in Node.js and ECMAScript versions:
- ecmascript-versions
- nodejs-ecmascript-compatibility
- nodejs-releases
- nodejs-schedule
- nodejs-versions
- Install: npm install --save version-rangeimport pkg from ('version-range')
- Import: const pkg = require('version-range').default
- Require:
` typescript`
import pkg from 'https://unpkg.com/version-range@^4.15.0/edition-deno/index.ts'$3
` html`$3
` html`$3
` html`$3
This package is published with the following editions:
- version-range/source/index.ts is TypeScript source code with Import for modulesversion-range/edition-browsers/index.js
- is TypeScript compiled against ES2024 for web browsers with Import for modulesversion-range
- aliases version-range/edition-es5/index.jsversion-range/edition-es5/index.js
- is TypeScript compiled against ES5 for Node.js 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 22 || 24 with Require for modulesversion-range/edition-es2024-esm/index.js
- is TypeScript compiled against ES2024 for Node.js 12 || 14 || 16 || 18 || 20 || 22 || 24 with Import for modulesversion-range/edition-types/index.d.ts
- is TypeScript compiled Types with Import for modulesversion-range/edition-deno/index.ts
- is TypeScript source code made to be compatible with Deno
Discover the release history by heading on over to the HISTORY.md file.
Discover how to contribute via the CONTRIBUTING.md` file.
#### Authors
- Benjamin Lupton — Accelerating collaborative wisdom.
#### Maintainers
- Benjamin Lupton — Accelerating collaborative wisdom.
#### Contributors
- Benjamin Lupton — view contributions
#### Sponsors
- Andrew Nesbitt — Working on mapping the world of open source software @ecosyste-ms and empowering developers with @octobox
- Divinci ™ — A more comfortable AI conversation experience, with friends! 🤖🖤
- Mr. Henry
- Poonacha Medappa
- Roboflow
- Square
#### Donors
- Andrew Nesbitt
- Ángel González
- Arjun Aditya
- Armen Mkrtchian
- Balsa
- Canonical
- Chad
- Codecov
- Divinci ™
- dr.dimitru
- Elliott Ditman
- entroniq
- Frontend Masters
- GitHub
- Hunter Beast
- Jean-Luc Geering
- Lee Driscoll
- Michael Duane Mooring
- Michael Harry Scepaniak
- Mohammed Shah
- Mr. Henry
- Pleo
- Poonacha Medappa
- Robert de Forest
- Rob Morris
- Roboflow
- Scott Kempson
- Sentry
- ServieJS
- Skunk Team
- Square
- Syntax
- WriterJohnBuck
Unless stated otherwise all works are:
- Copyright © Benjamin Lupton
and licensed under: