summaryrefslogtreecommitdiff
path: root/node_modules/locutus/php/var/unserialize.js.map
blob: dbf9160a0f455bc3865f51c525ba871736e9ac40 (plain) (blame)
1
{"version":3,"sources":["../../../src/php/var/unserialize.js"],"names":["module","exports","unserialize","data","$global","window","global","utf8Overhead","str","s","length","i","code","charCodeAt","error","type","msg","filename","line","readUntil","offset","stopchr","buf","chr","slice","push","join","readChrs","_unserialize","dtype","dataoffset","keyandchrs","keys","contig","array","readdata","readData","ccount","stringlength","key","kprops","kchrs","vprops","vchrs","value","chrs","typeconvert","x","toLowerCase","parseInt","parseFloat","Array"],"mappings":"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","file":"unserialize.js","sourcesContent":["module.exports = function unserialize (data) {\n  //  discuss at: http://locutus.io/php/unserialize/\n  // original by: Arpad Ray (mailto:arpad@php.net)\n  // improved by: Pedro Tainha (http://www.pedrotainha.com)\n  // improved by: Kevin van Zonneveld (http://kvz.io)\n  // improved by: Kevin van Zonneveld (http://kvz.io)\n  // improved by: Chris\n  // improved by: James\n  // improved by: Le Torbi\n  // improved by: Eli Skeggs\n  // bugfixed by: dptr1988\n  // bugfixed by: Kevin van Zonneveld (http://kvz.io)\n  // bugfixed by: Brett Zamir (http://brett-zamir.me)\n  // bugfixed by: philippsimon (https://github.com/philippsimon/)\n  //  revised by: d3x\n  //    input by: Brett Zamir (http://brett-zamir.me)\n  //    input by: Martin (http://www.erlenwiese.de/)\n  //    input by: kilops\n  //    input by: Jaroslaw Czarniak\n  //    input by: lovasoa (https://github.com/lovasoa/)\n  //      note 1: We feel the main purpose of this function should be\n  //      note 1: to ease the transport of data between php & js\n  //      note 1: Aiming for PHP-compatibility, we have to translate objects to arrays\n  //   example 1: unserialize('a:3:{i:0;s:5:\"Kevin\";i:1;s:3:\"van\";i:2;s:9:\"Zonneveld\";}')\n  //   returns 1: ['Kevin', 'van', 'Zonneveld']\n  //   example 2: unserialize('a:2:{s:9:\"firstName\";s:5:\"Kevin\";s:7:\"midName\";s:3:\"van\";}')\n  //   returns 2: {firstName: 'Kevin', midName: 'van'}\n  //   example 3: unserialize('a:3:{s:2:\"ü\";s:2:\"ü\";s:3:\"四\";s:3:\"四\";s:4:\"𠜎\";s:4:\"𠜎\";}')\n  //   returns 3: {'ü': 'ü', '四': '四', '𠜎': '𠜎'}\n\n  var $global = (typeof window !== 'undefined' ? window : global)\n\n  var utf8Overhead = function (str) {\n    var s = str.length\n    for (var i = str.length - 1; i >= 0; i--) {\n      var code = str.charCodeAt(i)\n      if (code > 0x7f && code <= 0x7ff) {\n        s++\n      } else if (code > 0x7ff && code <= 0xffff) {\n        s += 2\n      }\n      // trail surrogate\n      if (code >= 0xDC00 && code <= 0xDFFF) {\n        i--\n      }\n    }\n    return s - 1\n  }\n  var error = function (type,\n    msg, filename, line) {\n    throw new $global[type](msg, filename, line)\n  }\n  var readUntil = function (data, offset, stopchr) {\n    var i = 2\n    var buf = []\n    var chr = data.slice(offset, offset + 1)\n\n    while (chr !== stopchr) {\n      if ((i + offset) > data.length) {\n        error('Error', 'Invalid')\n      }\n      buf.push(chr)\n      chr = data.slice(offset + (i - 1), offset + i)\n      i += 1\n    }\n    return [buf.length, buf.join('')]\n  }\n  var readChrs = function (data, offset, length) {\n    var i, chr, buf\n\n    buf = []\n    for (i = 0; i < length; i++) {\n      chr = data.slice(offset + (i - 1), offset + i)\n      buf.push(chr)\n      length -= utf8Overhead(chr)\n    }\n    return [buf.length, buf.join('')]\n  }\n  function _unserialize (data, offset) {\n    var dtype\n    var dataoffset\n    var keyandchrs\n    var keys\n    var contig\n    var length\n    var array\n    var readdata\n    var readData\n    var ccount\n    var stringlength\n    var i\n    var key\n    var kprops\n    var kchrs\n    var vprops\n    var vchrs\n    var value\n    var chrs = 0\n    var typeconvert = function (x) {\n      return x\n    }\n\n    if (!offset) {\n      offset = 0\n    }\n    dtype = (data.slice(offset, offset + 1)).toLowerCase()\n\n    dataoffset = offset + 2\n\n    switch (dtype) {\n      case 'i':\n        typeconvert = function (x) {\n          return parseInt(x, 10)\n        }\n        readData = readUntil(data, dataoffset, ';')\n        chrs = readData[0]\n        readdata = readData[1]\n        dataoffset += chrs + 1\n        break\n      case 'b':\n        typeconvert = function (x) {\n          return parseInt(x, 10) !== 0\n        }\n        readData = readUntil(data, dataoffset, ';')\n        chrs = readData[0]\n        readdata = readData[1]\n        dataoffset += chrs + 1\n        break\n      case 'd':\n        typeconvert = function (x) {\n          return parseFloat(x)\n        }\n        readData = readUntil(data, dataoffset, ';')\n        chrs = readData[0]\n        readdata = readData[1]\n        dataoffset += chrs + 1\n        break\n      case 'n':\n        readdata = null\n        break\n      case 's':\n        ccount = readUntil(data, dataoffset, ':')\n        chrs = ccount[0]\n        stringlength = ccount[1]\n        dataoffset += chrs + 2\n\n        readData = readChrs(data, dataoffset + 1, parseInt(stringlength, 10))\n        chrs = readData[0]\n        readdata = readData[1]\n        dataoffset += chrs + 2\n        if (chrs !== parseInt(stringlength, 10) && chrs !== readdata.length) {\n          error('SyntaxError', 'String length mismatch')\n        }\n        break\n      case 'a':\n        readdata = {}\n\n        keyandchrs = readUntil(data, dataoffset, ':')\n        chrs = keyandchrs[0]\n        keys = keyandchrs[1]\n        dataoffset += chrs + 2\n\n        length = parseInt(keys, 10)\n        contig = true\n\n        for (i = 0; i < length; i++) {\n          kprops = _unserialize(data, dataoffset)\n          kchrs = kprops[1]\n          key = kprops[2]\n          dataoffset += kchrs\n\n          vprops = _unserialize(data, dataoffset)\n          vchrs = vprops[1]\n          value = vprops[2]\n          dataoffset += vchrs\n\n          if (key !== i) {\n            contig = false\n          }\n\n          readdata[key] = value\n        }\n\n        if (contig) {\n          array = new Array(length)\n          for (i = 0; i < length; i++) {\n            array[i] = readdata[i]\n          }\n          readdata = array\n        }\n\n        dataoffset += 1\n        break\n      default:\n        error('SyntaxError', 'Unknown / Unhandled data type(s): ' + dtype)\n        break\n    }\n    return [dtype, dataoffset - offset, typeconvert(readdata)]\n  }\n\n  return _unserialize((data + ''), 0)[2]\n}\n"]}