HEX
Server: Apache
System: Linux webd004.cluster130.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User: frenchy (106757)
PHP: 7.4.33
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/f/r/e/frenchy/www/french-american.org/current/node_modules/@snyk/ruby-semver/lib/functions.js
const GemVersion = require('./ruby/gem-version');

module.exports = {
  valid,
  prerelease,
  major,
  minor,
  patch,
  inc: () => { throw new Error('Not implemented'); },
}

function valid(v) {
  if (!v) { return null; }

  try {
    return GemVersion.create(v).toString();
  } catch (err) {
    return null;
  }
}

function prerelease(v) {
  try {
    const version = GemVersion.create(v);
    if (version.isPrerelease()) {
      const segments = version.getSegments();
      const preStartIndex = segments.findIndex(s => /[a-zA-Z]/.test(s));
      return segments.slice(preStartIndex);
    } else {
      return null;
    }
  } catch (err) {
    return null;
  }
}

function _segmentAt(v, index) {
  try {
    const segment = GemVersion.create(v).getSegments()[index];
    return segment === undefined ? null : segment;
  } catch(err) {
    return null;
  }
}

function major(v) {
  return _segmentAt(v, 0);
}

function minor(v) {
  return _segmentAt(v, 1);
}

function patch(v) {
  return _segmentAt(v, 2);
}