1
|
{"version":3,"sources":["../../../src/php/strings/convert_uuencode.js"],"names":["module","exports","convert_uuencode","str","isScalar","require","chr","c","String","fromCharCode","u","i","a","encoded","tmp1","tmp2","bytes","chunk","substr","split","charCodeAt","length","toString","parseInt"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,gBAAT,CAA2BC,GAA3B,EAAgC;AAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,WAAWC,QAAQ,kBAAR,CAAf;;AAEA,MAAIC,MAAM,SAANA,GAAM,CAAUC,CAAV,EAAa;AACrB,WAAOC,OAAOC,YAAP,CAAoBF,CAApB,CAAP;AACD,GAFD;;AAIA,MAAI,CAACJ,GAAD,IAAQA,QAAQ,EAApB,EAAwB;AACtB,WAAOG,IAAI,CAAJ,CAAP;AACD,GAFD,MAEO,IAAI,CAACF,SAASD,GAAT,CAAL,EAAoB;AACzB,WAAO,KAAP;AACD;;AAED,MAAII,IAAI,CAAR;AACA,MAAIG,IAAI,CAAR;AACA,MAAIC,IAAI,CAAR;AACA,MAAIC,IAAI,CAAR;AACA,MAAIC,UAAU,EAAd;AACA,MAAIC,OAAO,EAAX;AACA,MAAIC,OAAO,EAAX;AACA,MAAIC,QAAQ,EAAZ;;AAEA;AACA,MAAIC,QAAQ,SAARA,KAAQ,GAAY;AACtBD,YAAQb,IAAIe,MAAJ,CAAWR,CAAX,EAAc,EAAd,EAAkBS,KAAlB,CAAwB,EAAxB,CAAR;AACA,SAAKR,CAAL,IAAUK,KAAV,EAAiB;AACfA,YAAML,CAAN,IAAWK,MAAML,CAAN,EAASS,UAAT,CAAoB,CAApB,CAAX;AACD;AACD,WAAOJ,MAAMK,MAAN,IAAgB,CAAvB;AACD,GAND;;AAQA,SAAO,CAACd,IAAIU,OAAL,MAAkB,CAAzB,EAA4B;AAC1BP,SAAK,EAAL;;AAEA;AACAG,eAAWP,IAAIC,IAAI,EAAR,CAAX;;AAEA;AACA,SAAKI,CAAL,IAAUK,KAAV,EAAiB;AACfF,aAAOE,MAAML,CAAN,EAASW,QAAT,CAAkB,CAAlB,CAAP;AACA,aAAOR,KAAKO,MAAL,GAAc,CAArB,EAAwB;AACtBP,eAAO,MAAMA,IAAb;AACD;AACDC,cAAQD,IAAR;AACD;;AAED,WAAOC,KAAKM,MAAL,GAAc,CAArB,EAAwB;AACtBN,aAAOA,OAAO,GAAd;AACD;;AAED,SAAKJ,IAAI,CAAT,EAAYA,KAAMI,KAAKM,MAAL,GAAc,CAAf,GAAoB,CAArC,EAAwCV,GAAxC,EAA6C;AAC3CG,aAAOC,KAAKG,MAAL,CAAYN,CAAZ,EAAe,CAAf,CAAP;AACA,UAAIE,SAAS,QAAb,EAAuB;AACrBD,mBAAWP,IAAI,EAAJ,CAAX;AACD,OAFD,MAEO;AACLO,mBAAWP,IAAIiB,SAAST,IAAT,EAAe,CAAf,IAAoB,EAAxB,CAAX;AACD;AACDF,WAAK,CAAL;AACD;AACDA,QAAI,CAAJ;AACAG,WAAO,EAAP;AACAF,eAAW,IAAX;AACD;;AAED;AACAA,aAAWP,IAAI,EAAJ,IAAU,IAArB;;AAEA,SAAOO,OAAP;AACD,CA5ED","file":"convert_uuencode.js","sourcesContent":["module.exports = function convert_uuencode (str) { // eslint-disable-line camelcase\n // discuss at: http://locutus.io/php/convert_uuencode/\n // original by: Ole Vrijenhoek\n // bugfixed by: Kevin van Zonneveld (http://kvz.io)\n // bugfixed by: Brett Zamir (http://brett-zamir.me)\n // reimplemented by: Ole Vrijenhoek\n // example 1: convert_uuencode(\"test\\ntext text\\r\\n\")\n // returns 1: \"0=&5S=`IT97AT('1E>'0-\\\"@\\n`\\n\"\n\n var isScalar = require('../var/is_scalar')\n\n var chr = function (c) {\n return String.fromCharCode(c)\n }\n\n if (!str || str === '') {\n return chr(0)\n } else if (!isScalar(str)) {\n return false\n }\n\n var c = 0\n var u = 0\n var i = 0\n var a = 0\n var encoded = ''\n var tmp1 = ''\n var tmp2 = ''\n var bytes = {}\n\n // divide string into chunks of 45 characters\n var chunk = function () {\n bytes = str.substr(u, 45).split('')\n for (i in bytes) {\n bytes[i] = bytes[i].charCodeAt(0)\n }\n return bytes.length || 0\n }\n\n while ((c = chunk()) !== 0) {\n u += 45\n\n // New line encoded data starts with number of bytes encoded.\n encoded += chr(c + 32)\n\n // Convert each char in bytes[] to a byte\n for (i in bytes) {\n tmp1 = bytes[i].toString(2)\n while (tmp1.length < 8) {\n tmp1 = '0' + tmp1\n }\n tmp2 += tmp1\n }\n\n while (tmp2.length % 6) {\n tmp2 = tmp2 + '0'\n }\n\n for (i = 0; i <= (tmp2.length / 6) - 1; i++) {\n tmp1 = tmp2.substr(a, 6)\n if (tmp1 === '000000') {\n encoded += chr(96)\n } else {\n encoded += chr(parseInt(tmp1, 2) + 32)\n }\n a += 6\n }\n a = 0\n tmp2 = ''\n encoded += '\\n'\n }\n\n // Add termination characters\n encoded += chr(96) + '\\n'\n\n return encoded\n}\n"]}
|