summaryrefslogtreecommitdiff
path: root/node_modules/locutus/php/info/version_compare.js.map
blob: 7399852206ed0cc08dcac86228b7e2682f2e24c3 (plain) (blame)
1
{"version":3,"sources":["../../../src/php/info/version_compare.js"],"names":["module","exports","version_compare","v1","v2","operator","i","x","compare","vm","_prepVersion","v","replace","length","split","_numVersion","isNaN","parseInt","Math","max"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,eAAT,CAA0BC,EAA1B,EAA8BC,EAA9B,EAAkCC,QAAlC,EAA4C;AAAE;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAIC,CAAJ;AACA,MAAIC,CAAJ;AACA,MAAIC,UAAU,CAAd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAIC,KAAK;AACP,WAAO,CAAC,CADD;AAEP,aAAS,CAAC,CAFH;AAGP,SAAK,CAAC,CAHC;AAIP,YAAQ,CAAC,CAJF;AAKP,SAAK,CAAC,CALC;AAMP,UAAM,CAAC,CANA;AAOP,UAAM,CAAC,CAPA;AAQP,SAAK,CAAC,CARC;AASP,SAAK,CATE;AAUP,UAAM;AAVC,GAAT;;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAIC,eAAe,SAAfA,YAAe,CAAUC,CAAV,EAAa;AAC9BA,QAAI,CAAC,KAAKA,CAAN,EAASC,OAAT,CAAiB,SAAjB,EAA4B,GAA5B,CAAJ;AACAD,QAAIA,EAAEC,OAAF,CAAU,YAAV,EAAwB,MAAxB,EAAgCA,OAAhC,CAAwC,SAAxC,EAAmD,GAAnD,CAAJ;AACA,WAAQ,CAACD,EAAEE,MAAH,GAAY,CAAC,CAAC,CAAF,CAAZ,GAAmBF,EAAEG,KAAF,CAAQ,GAAR,CAA3B;AACD,GAJD;AAKA;AACA;AACA;AACA;AACA,MAAIC,cAAc,SAAdA,WAAc,CAAUJ,CAAV,EAAa;AAC7B,WAAO,CAACA,CAAD,GAAK,CAAL,GAAUK,MAAML,CAAN,IAAWF,GAAGE,CAAH,KAAS,CAAC,CAArB,GAAyBM,SAASN,CAAT,EAAY,EAAZ,CAA1C;AACD,GAFD;;AAIAR,OAAKO,aAAaP,EAAb,CAAL;AACAC,OAAKM,aAAaN,EAAb,CAAL;AACAG,MAAIW,KAAKC,GAAL,CAAShB,GAAGU,MAAZ,EAAoBT,GAAGS,MAAvB,CAAJ;AACA,OAAKP,IAAI,CAAT,EAAYA,IAAIC,CAAhB,EAAmBD,GAAnB,EAAwB;AACtB,QAAIH,GAAGG,CAAH,MAAUF,GAAGE,CAAH,CAAd,EAAqB;AACnB;AACD;AACDH,OAAGG,CAAH,IAAQS,YAAYZ,GAAGG,CAAH,CAAZ,CAAR;AACAF,OAAGE,CAAH,IAAQS,YAAYX,GAAGE,CAAH,CAAZ,CAAR;AACA,QAAIH,GAAGG,CAAH,IAAQF,GAAGE,CAAH,CAAZ,EAAmB;AACjBE,gBAAU,CAAC,CAAX;AACA;AACD,KAHD,MAGO,IAAIL,GAAGG,CAAH,IAAQF,GAAGE,CAAH,CAAZ,EAAmB;AACxBE,gBAAU,CAAV;AACA;AACD;AACF;AACD,MAAI,CAACH,QAAL,EAAe;AACb,WAAOG,OAAP;AACD;;AAED;AACA;AACA;AACA,UAAQH,QAAR;AACE,SAAK,GAAL;AACA,SAAK,IAAL;AACE,aAAQG,UAAU,CAAlB;AACF,SAAK,IAAL;AACA,SAAK,IAAL;AACE,aAAQA,WAAW,CAAnB;AACF,SAAK,IAAL;AACA,SAAK,IAAL;AACE,aAAQA,WAAW,CAAnB;AACF,SAAK,KAAL;AACA,SAAK,GAAL;AACA,SAAK,IAAL;AACE,aAAQA,YAAY,CAApB;AACF,SAAK,IAAL;AACA,SAAK,KAAL;AACA,SAAK,IAAL;AACE,aAAQA,YAAY,CAApB;AACF,SAAK,EAAL;AACA,SAAK,GAAL;AACA,SAAK,IAAL;AACE,aAAQA,UAAU,CAAlB;AACF;AACE,aAAO,IAAP;AAvBJ;AAyBD,CAjHD","file":"version_compare.js","sourcesContent":["module.exports = function version_compare (v1, v2, operator) { // eslint-disable-line camelcase\n  //       discuss at: http://locutus.io/php/version_compare/\n  //      original by: Philippe Jausions (http://pear.php.net/user/jausions)\n  //      original by: Aidan Lister (http://aidanlister.com/)\n  // reimplemented by: Kankrelune (http://www.webfaktory.info/)\n  //      improved by: Brett Zamir (http://brett-zamir.me)\n  //      improved by: Scott Baker\n  //      improved by: Theriault (https://github.com/Theriault)\n  //        example 1: version_compare('8.2.5rc', '8.2.5a')\n  //        returns 1: 1\n  //        example 2: version_compare('8.2.50', '8.2.52', '<')\n  //        returns 2: true\n  //        example 3: version_compare('5.3.0-dev', '5.3.0')\n  //        returns 3: -1\n  //        example 4: version_compare('4.1.0.52','4.01.0.51')\n  //        returns 4: 1\n\n  // Important: compare must be initialized at 0.\n  var i\n  var x\n  var compare = 0\n\n  // vm maps textual PHP versions to negatives so they're less than 0.\n  // PHP currently defines these as CASE-SENSITIVE. It is important to\n  // leave these as negatives so that they can come before numerical versions\n  // and as if no letters were there to begin with.\n  // (1alpha is < 1 and < 1.1 but > 1dev1)\n  // If a non-numerical value can't be mapped to this table, it receives\n  // -7 as its value.\n  var vm = {\n    'dev': -6,\n    'alpha': -5,\n    'a': -5,\n    'beta': -4,\n    'b': -4,\n    'RC': -3,\n    'rc': -3,\n    '#': -2,\n    'p': 1,\n    'pl': 1\n  }\n\n  // This function will be called to prepare each version argument.\n  // It replaces every _, -, and + with a dot.\n  // It surrounds any nonsequence of numbers/dots with dots.\n  // It replaces sequences of dots with a single dot.\n  //    version_compare('4..0', '4.0') === 0\n  // Important: A string of 0 length needs to be converted into a value\n  // even less than an unexisting value in vm (-7), hence [-8].\n  // It's also important to not strip spaces because of this.\n  //   version_compare('', ' ') === 1\n  var _prepVersion = function (v) {\n    v = ('' + v).replace(/[_\\-+]/g, '.')\n    v = v.replace(/([^.\\d]+)/g, '.$1.').replace(/\\.{2,}/g, '.')\n    return (!v.length ? [-8] : v.split('.'))\n  }\n  // This converts a version component to a number.\n  // Empty component becomes 0.\n  // Non-numerical component becomes a negative number.\n  // Numerical component becomes itself as an integer.\n  var _numVersion = function (v) {\n    return !v ? 0 : (isNaN(v) ? vm[v] || -7 : parseInt(v, 10))\n  }\n\n  v1 = _prepVersion(v1)\n  v2 = _prepVersion(v2)\n  x = Math.max(v1.length, v2.length)\n  for (i = 0; i < x; i++) {\n    if (v1[i] === v2[i]) {\n      continue\n    }\n    v1[i] = _numVersion(v1[i])\n    v2[i] = _numVersion(v2[i])\n    if (v1[i] < v2[i]) {\n      compare = -1\n      break\n    } else if (v1[i] > v2[i]) {\n      compare = 1\n      break\n    }\n  }\n  if (!operator) {\n    return compare\n  }\n\n  // Important: operator is CASE-SENSITIVE.\n  // \"No operator\" seems to be treated as \"<.\"\n  // Any other values seem to make the function return null.\n  switch (operator) {\n    case '>':\n    case 'gt':\n      return (compare > 0)\n    case '>=':\n    case 'ge':\n      return (compare >= 0)\n    case '<=':\n    case 'le':\n      return (compare <= 0)\n    case '===':\n    case '=':\n    case 'eq':\n      return (compare === 0)\n    case '<>':\n    case '!==':\n    case 'ne':\n      return (compare !== 0)\n    case '':\n    case '<':\n    case 'lt':\n      return (compare < 0)\n    default:\n      return null\n  }\n}\n"]}