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":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,WAAT,CAAsBC,IAAtB,EAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,UAAW,OAAOC,MAAP,KAAkB,WAAlB,GAAgCA,MAAhC,GAAyCC,MAAxD;;AAEA,MAAIC,eAAe,SAAfA,YAAe,CAAUC,GAAV,EAAe;AAChC,QAAIC,IAAID,IAAIE,MAAZ;AACA,SAAK,IAAIC,IAAIH,IAAIE,MAAJ,GAAa,CAA1B,EAA6BC,KAAK,CAAlC,EAAqCA,GAArC,EAA0C;AACxC,UAAIC,OAAOJ,IAAIK,UAAJ,CAAeF,CAAf,CAAX;AACA,UAAIC,OAAO,IAAP,IAAeA,QAAQ,KAA3B,EAAkC;AAChCH;AACD,OAFD,MAEO,IAAIG,OAAO,KAAP,IAAgBA,QAAQ,MAA5B,EAAoC;AACzCH,aAAK,CAAL;AACD;AACD;AACA,UAAIG,QAAQ,MAAR,IAAkBA,QAAQ,MAA9B,EAAsC;AACpCD;AACD;AACF;AACD,WAAOF,IAAI,CAAX;AACD,GAfD;AAgBA,MAAIK,QAAQ,SAARA,KAAQ,CAAUC,IAAV,EACVC,GADU,EACLC,QADK,EACKC,IADL,EACW;AACrB,UAAM,IAAId,QAAQW,IAAR,CAAJ,CAAkBC,GAAlB,EAAuBC,QAAvB,EAAiCC,IAAjC,CAAN;AACD,GAHD;AAIA,MAAIC,YAAY,SAAZA,SAAY,CAAUhB,IAAV,EAAgBiB,MAAhB,EAAwBC,OAAxB,EAAiC;AAC/C,QAAIV,IAAI,CAAR;AACA,QAAIW,MAAM,EAAV;AACA,QAAIC,MAAMpB,KAAKqB,KAAL,CAAWJ,MAAX,EAAmBA,SAAS,CAA5B,CAAV;;AAEA,WAAOG,QAAQF,OAAf,EAAwB;AACtB,UAAKV,IAAIS,MAAL,GAAejB,KAAKO,MAAxB,EAAgC;AAC9BI,cAAM,OAAN,EAAe,SAAf;AACD;AACDQ,UAAIG,IAAJ,CAASF,GAAT;AACAA,YAAMpB,KAAKqB,KAAL,CAAWJ,UAAUT,IAAI,CAAd,CAAX,EAA6BS,SAAST,CAAtC,CAAN;AACAA,WAAK,CAAL;AACD;AACD,WAAO,CAACW,IAAIZ,MAAL,EAAaY,IAAII,IAAJ,CAAS,EAAT,CAAb,CAAP;AACD,GAdD;AAeA,MAAIC,WAAW,SAAXA,QAAW,CAAUxB,IAAV,EAAgBiB,MAAhB,EAAwBV,MAAxB,EAAgC;AAC7C,QAAIC,CAAJ,EAAOY,GAAP,EAAYD,GAAZ;;AAEAA,UAAM,EAAN;AACA,SAAKX,IAAI,CAAT,EAAYA,IAAID,MAAhB,EAAwBC,GAAxB,EAA6B;AAC3BY,YAAMpB,KAAKqB,KAAL,CAAWJ,UAAUT,IAAI,CAAd,CAAX,EAA6BS,SAAST,CAAtC,CAAN;AACAW,UAAIG,IAAJ,CAASF,GAAT;AACAb,gBAAUH,aAAagB,GAAb,CAAV;AACD;AACD,WAAO,CAACD,IAAIZ,MAAL,EAAaY,IAAII,IAAJ,CAAS,EAAT,CAAb,CAAP;AACD,GAVD;AAWA,WAASE,YAAT,CAAuBzB,IAAvB,EAA6BiB,MAA7B,EAAqC;AACnC,QAAIS,KAAJ;AACA,QAAIC,UAAJ;AACA,QAAIC,UAAJ;AACA,QAAIC,IAAJ;AACA,QAAIC,MAAJ;AACA,QAAIvB,MAAJ;AACA,QAAIwB,KAAJ;AACA,QAAIC,QAAJ;AACA,QAAIC,QAAJ;AACA,QAAIC,MAAJ;AACA,QAAIC,YAAJ;AACA,QAAI3B,CAAJ;AACA,QAAI4B,GAAJ;AACA,QAAIC,MAAJ;AACA,QAAIC,KAAJ;AACA,QAAIC,MAAJ;AACA,QAAIC,KAAJ;AACA,QAAIC,KAAJ;AACA,QAAIC,OAAO,CAAX;AACA,QAAIC,cAAc,qBAAUC,CAAV,EAAa;AAC7B,aAAOA,CAAP;AACD,KAFD;;AAIA,QAAI,CAAC3B,MAAL,EAAa;AACXA,eAAS,CAAT;AACD;AACDS,YAAS1B,KAAKqB,KAAL,CAAWJ,MAAX,EAAmBA,SAAS,CAA5B,CAAD,CAAiC4B,WAAjC,EAAR;;AAEAlB,iBAAaV,SAAS,CAAtB;;AAEA,YAAQS,KAAR;AACE,WAAK,GAAL;AACEiB,sBAAc,qBAAUC,CAAV,EAAa;AACzB,iBAAOE,SAASF,CAAT,EAAY,EAAZ,CAAP;AACD,SAFD;AAGAX,mBAAWjB,UAAUhB,IAAV,EAAgB2B,UAAhB,EAA4B,GAA5B,CAAX;AACAe,eAAOT,SAAS,CAAT,CAAP;AACAD,mBAAWC,SAAS,CAAT,CAAX;AACAN,sBAAce,OAAO,CAArB;AACA;AACF,WAAK,GAAL;AACEC,sBAAc,qBAAUC,CAAV,EAAa;AACzB,iBAAOE,SAASF,CAAT,EAAY,EAAZ,MAAoB,CAA3B;AACD,SAFD;AAGAX,mBAAWjB,UAAUhB,IAAV,EAAgB2B,UAAhB,EAA4B,GAA5B,CAAX;AACAe,eAAOT,SAAS,CAAT,CAAP;AACAD,mBAAWC,SAAS,CAAT,CAAX;AACAN,sBAAce,OAAO,CAArB;AACA;AACF,WAAK,GAAL;AACEC,sBAAc,qBAAUC,CAAV,EAAa;AACzB,iBAAOG,WAAWH,CAAX,CAAP;AACD,SAFD;AAGAX,mBAAWjB,UAAUhB,IAAV,EAAgB2B,UAAhB,EAA4B,GAA5B,CAAX;AACAe,eAAOT,SAAS,CAAT,CAAP;AACAD,mBAAWC,SAAS,CAAT,CAAX;AACAN,sBAAce,OAAO,CAArB;AACA;AACF,WAAK,GAAL;AACEV,mBAAW,IAAX;AACA;AACF,WAAK,GAAL;AACEE,iBAASlB,UAAUhB,IAAV,EAAgB2B,UAAhB,EAA4B,GAA5B,CAAT;AACAe,eAAOR,OAAO,CAAP,CAAP;AACAC,uBAAeD,OAAO,CAAP,CAAf;AACAP,sBAAce,OAAO,CAArB;;AAEAT,mBAAWT,SAASxB,IAAT,EAAe2B,aAAa,CAA5B,EAA+BmB,SAASX,YAAT,EAAuB,EAAvB,CAA/B,CAAX;AACAO,eAAOT,SAAS,CAAT,CAAP;AACAD,mBAAWC,SAAS,CAAT,CAAX;AACAN,sBAAce,OAAO,CAArB;AACA,YAAIA,SAASI,SAASX,YAAT,EAAuB,EAAvB,CAAT,IAAuCO,SAASV,SAASzB,MAA7D,EAAqE;AACnEI,gBAAM,aAAN,EAAqB,wBAArB;AACD;AACD;AACF,WAAK,GAAL;AACEqB,mBAAW,EAAX;;AAEAJ,qBAAaZ,UAAUhB,IAAV,EAAgB2B,UAAhB,EAA4B,GAA5B,CAAb;AACAe,eAAOd,WAAW,CAAX,CAAP;AACAC,eAAOD,WAAW,CAAX,CAAP;AACAD,sBAAce,OAAO,CAArB;;AAEAnC,iBAASuC,SAASjB,IAAT,EAAe,EAAf,CAAT;AACAC,iBAAS,IAAT;;AAEA,aAAKtB,IAAI,CAAT,EAAYA,IAAID,MAAhB,EAAwBC,GAAxB,EAA6B;AAC3B6B,mBAASZ,aAAazB,IAAb,EAAmB2B,UAAnB,CAAT;AACAW,kBAAQD,OAAO,CAAP,CAAR;AACAD,gBAAMC,OAAO,CAAP,CAAN;AACAV,wBAAcW,KAAd;;AAEAC,mBAASd,aAAazB,IAAb,EAAmB2B,UAAnB,CAAT;AACAa,kBAAQD,OAAO,CAAP,CAAR;AACAE,kBAAQF,OAAO,CAAP,CAAR;AACAZ,wBAAca,KAAd;;AAEA,cAAIJ,QAAQ5B,CAAZ,EAAe;AACbsB,qBAAS,KAAT;AACD;;AAEDE,mBAASI,GAAT,IAAgBK,KAAhB;AACD;;AAED,YAAIX,MAAJ,EAAY;AACVC,kBAAQ,IAAIiB,KAAJ,CAAUzC,MAAV,CAAR;AACA,eAAKC,IAAI,CAAT,EAAYA,IAAID,MAAhB,EAAwBC,GAAxB,EAA6B;AAC3BuB,kBAAMvB,CAAN,IAAWwB,SAASxB,CAAT,CAAX;AACD;AACDwB,qBAAWD,KAAX;AACD;;AAEDJ,sBAAc,CAAd;AACA;AACF;AACEhB,cAAM,aAAN,EAAqB,uCAAuCe,KAA5D;AACA;AAtFJ;AAwFA,WAAO,CAACA,KAAD,EAAQC,aAAaV,MAArB,EAA6B0B,YAAYX,QAAZ,CAA7B,CAAP;AACD;;AAED,SAAOP,aAAczB,OAAO,EAArB,EAA0B,CAA1B,EAA6B,CAA7B,CAAP;AACD,CAzMD","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"]}
|