A semver parser that uses Go modules dependency semantics with node-semver's api.
Go generally uses semver, with support for pre-releases, special builds, and using untagged revisions from source control repos. For some details, see the Pseudo-Versions section of the go command's documentation.
This also supports additional syntax for defining version ranges, as well as logic for checking whether a version satisfies a range and whether two ranges intersect. The syntax used is based on the style used by Ruby Gems. Example ranges:
>=v0.0.0
>=v0.0.0, <v1.0.0
<=v1.0.0 || >= 3.0.0