summaryrefslogtreecommitdiff
path: root/node_modules/locutus/php/strings/htmlspecialchars_decode.js.map
blob: d2f38dea1393e7f4094fb57ea0f65d862edc990c (plain) (blame)
1
{"version":3,"sources":["../../../src/php/strings/htmlspecialchars_decode.js"],"names":["module","exports","htmlspecialchars_decode","string","quoteStyle","optTemp","i","noquotes","toString","replace","OPTS","concat","length","ENT_HTML_QUOTE_SINGLE"],"mappings":";;AAAAA,OAAOC,OAAP,GAAiB,SAASC,uBAAT,CAAkCC,MAAlC,EAA0CC,UAA1C,EAAsD;AAAE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAIC,UAAU,CAAd;AACA,MAAIC,IAAI,CAAR;AACA,MAAIC,WAAW,KAAf;;AAEA,MAAI,OAAOH,UAAP,KAAsB,WAA1B,EAAuC;AACrCA,iBAAa,CAAb;AACD;AACDD,WAASA,OAAOK,QAAP,GACNC,OADM,CACE,OADF,EACW,GADX,EAENA,OAFM,CAEE,OAFF,EAEW,GAFX,CAAT;AAGA,MAAIC,OAAO;AACT,oBAAgB,CADP;AAET,6BAAyB,CAFhB;AAGT,6BAAyB,CAHhB;AAIT,kBAAc,CAJL;AAKT,kBAAc,CALL;AAMT,kBAAc;AANL,GAAX;AAQA,MAAIN,eAAe,CAAnB,EAAsB;AACpBG,eAAW,IAAX;AACD;AACD,MAAI,OAAOH,UAAP,KAAsB,QAA1B,EAAoC;AAClC;AACAA,iBAAa,GAAGO,MAAH,CAAUP,UAAV,CAAb;AACA,SAAKE,IAAI,CAAT,EAAYA,IAAIF,WAAWQ,MAA3B,EAAmCN,GAAnC,EAAwC;AACtC;AACA,UAAII,KAAKN,WAAWE,CAAX,CAAL,MAAwB,CAA5B,EAA+B;AAC7BC,mBAAW,IAAX;AACD,OAFD,MAEO,IAAIG,KAAKN,WAAWE,CAAX,CAAL,CAAJ,EAAyB;AAC9BD,kBAAUA,UAAUK,KAAKN,WAAWE,CAAX,CAAL,CAApB;AACD;AACF;AACDF,iBAAaC,OAAb;AACD;AACD,MAAID,aAAaM,KAAKG,qBAAtB,EAA6C;AAC3C;AACAV,aAASA,OAAOM,OAAP,CAAe,UAAf,EAA2B,GAA3B,CAAT;AACA;AACA;AACD;AACD,MAAI,CAACF,QAAL,EAAe;AACbJ,aAASA,OAAOM,OAAP,CAAe,SAAf,EAA0B,GAA1B,CAAT;AACD;AACD;AACAN,WAASA,OAAOM,OAAP,CAAe,QAAf,EAAyB,GAAzB,CAAT;;AAEA,SAAON,MAAP;AACD,CApED","file":"htmlspecialchars_decode.js","sourcesContent":["module.exports = function htmlspecialchars_decode (string, quoteStyle) { // eslint-disable-line camelcase\n  //       discuss at: http://locutus.io/php/htmlspecialchars_decode/\n  //      original by: Mirek Slugen\n  //      improved by: Kevin van Zonneveld (http://kvz.io)\n  //      bugfixed by: Mateusz \"loonquawl\" Zalega\n  //      bugfixed by: Onno Marsman (https://twitter.com/onnomarsman)\n  //      bugfixed by: Brett Zamir (http://brett-zamir.me)\n  //      bugfixed by: Brett Zamir (http://brett-zamir.me)\n  //         input by: ReverseSyntax\n  //         input by: Slawomir Kaniecki\n  //         input by: Scott Cariss\n  //         input by: Francois\n  //         input by: Ratheous\n  //         input by: Mailfaker (http://www.weedem.fr/)\n  //       revised by: Kevin van Zonneveld (http://kvz.io)\n  // reimplemented by: Brett Zamir (http://brett-zamir.me)\n  //        example 1: htmlspecialchars_decode(\"<p>this -&gt; &quot;</p>\", 'ENT_NOQUOTES')\n  //        returns 1: '<p>this -> &quot;</p>'\n  //        example 2: htmlspecialchars_decode(\"&amp;quot;\")\n  //        returns 2: '&quot;'\n\n  var optTemp = 0\n  var i = 0\n  var noquotes = false\n\n  if (typeof quoteStyle === 'undefined') {\n    quoteStyle = 2\n  }\n  string = string.toString()\n    .replace(/&lt;/g, '<')\n    .replace(/&gt;/g, '>')\n  var OPTS = {\n    'ENT_NOQUOTES': 0,\n    'ENT_HTML_QUOTE_SINGLE': 1,\n    'ENT_HTML_QUOTE_DOUBLE': 2,\n    'ENT_COMPAT': 2,\n    'ENT_QUOTES': 3,\n    'ENT_IGNORE': 4\n  }\n  if (quoteStyle === 0) {\n    noquotes = true\n  }\n  if (typeof quoteStyle !== 'number') {\n    // Allow for a single string or an array of string flags\n    quoteStyle = [].concat(quoteStyle)\n    for (i = 0; i < quoteStyle.length; i++) {\n      // Resolve string input to bitwise e.g. 'PATHINFO_EXTENSION' becomes 4\n      if (OPTS[quoteStyle[i]] === 0) {\n        noquotes = true\n      } else if (OPTS[quoteStyle[i]]) {\n        optTemp = optTemp | OPTS[quoteStyle[i]]\n      }\n    }\n    quoteStyle = optTemp\n  }\n  if (quoteStyle & OPTS.ENT_HTML_QUOTE_SINGLE) {\n    // PHP doesn't currently escape if more than one 0, but it should:\n    string = string.replace(/&#0*39;/g, \"'\")\n    // This would also be useful here, but not a part of PHP:\n    // string = string.replace(/&apos;|&#x0*27;/g, \"'\");\n  }\n  if (!noquotes) {\n    string = string.replace(/&quot;/g, '\"')\n  }\n  // Put this in last place to avoid escape being double-decoded\n  string = string.replace(/&amp;/g, '&')\n\n  return string\n}\n"]}