// just pre-load all the stuff that index.js lazily exports
const internalRe = require('semver/internal/re')
module.exports = {
  re: internalRe.re,
  src: internalRe.src,
  tokens: internalRe.t,
  SEMVER_SPEC_VERSION: require('semver/internal/constants').SEMVER_SPEC_VERSION,
  SemVer: require('semver/classes/semver'),
  compareIdentifiers: require('semver/internal/identifiers').compareIdentifiers,
  rcompareIdentifiers: require('semver/internal/identifiers').rcompareIdentifiers,
  parse: require('semver/functions/parse'),
  valid: require('semver/functions/valid'),
  clean: require('semver/functions/clean'),
  inc: require('semver/functions/inc'),
  diff: require('semver/functions/diff'),
  major: require('semver/functions/major'),
  minor: require('semver/functions/minor'),
  patch: require('semver/functions/patch'),
  prerelease: require('semver/functions/prerelease'),
  compare: require('semver/functions/compare'),
  rcompare: require('semver/functions/rcompare'),
  compareLoose: require('semver/functions/compare-loose'),
  compareBuild: require('semver/functions/compare-build'),
  sort: require('semver/functions/sort'),
  rsort: require('semver/functions/rsort'),
  gt: require('semver/functions/gt'),
  lt: require('semver/functions/lt'),
  eq: require('semver/functions/eq'),
  neq: require('semver/functions/neq'),
  gte: require('semver/functions/gte'),
  lte: require('semver/functions/lte'),
  cmp: require('semver/functions/cmp'),
  coerce: require('semver/functions/coerce'),
  Comparator: require('semver/classes/comparator'),
  Range: require('semver/classes/range'),
  satisfies: require('semver/functions/satisfies'),
  toComparators: require('semver/ranges/to-comparators'),
  maxSatisfying: require('semver/ranges/max-satisfying'),
  minSatisfying: require('semver/ranges/min-satisfying'),
  minVersion: require('semver/ranges/min-version'),
  validRange: require('semver/ranges/valid'),
  outside: require('semver/ranges/outside'),
  gtr: require('semver/ranges/gtr'),
  ltr: require('semver/ranges/ltr'),
  intersects: require('semver/ranges/intersects'),
  simplifyRange: require('semver/ranges/simplify'),
  subset: require('semver/ranges/subset'),
}
