summaryrefslogtreecommitdiff
path: root/node_modules/locutus/php/strings/addcslashes.js.map
blob: a750b8896ff9a467c79c72b978d161dc056e882c (plain) (blame)
1
{"version":3,"sources":["../../../src/php/strings/addcslashes.js"],"names":["module","exports","addcslashes","str","charlist","target","chrs","i","j","c","next","rangeBegin","rangeEnd","chr","begin","end","octalLength","postOctalPos","cca","escHexGrp","encoded","percentHex","_pad","n","length","Array","join","charAt","test","slice","match","charCodeAt","Error","push","String","fromCharCode","parseInt","indexOf","encodeURIComponent","exec","toString"],"mappings":"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","file":"addcslashes.js","sourcesContent":["module.exports = function addcslashes (str, charlist) {\n  //  discuss at: http://locutus.io/php/addcslashes/\n  // original by: Brett Zamir (http://brett-zamir.me)\n  //      note 1: We show double backslashes in the return value example\n  //      note 1: code below because a JavaScript string will not\n  //      note 1: render them as backslashes otherwise\n  //   example 1: addcslashes('foo[ ]', 'A..z'); // Escape all ASCII within capital A to lower z range, including square brackets\n  //   returns 1: \"\\\\f\\\\o\\\\o\\\\[ \\\\]\"\n  //   example 2: addcslashes(\"zoo['.']\", 'z..A'); // Only escape z, period, and A here since not a lower-to-higher range\n  //   returns 2: \"\\\\zoo['\\\\.']\"\n  //   _example 3: addcslashes(\"@a\\u0000\\u0010\\u00A9\", \"\\0..\\37!@\\177..\\377\"); // Escape as octals those specified and less than 32 (0x20) or greater than 126 (0x7E), but not otherwise\n  //   _returns 3: '\\\\@a\\\\000\\\\020\\\\302\\\\251'\n  //   _example 4: addcslashes(\"\\u0020\\u007E\", \"\\40..\\175\"); // Those between 32 (0x20 or 040) and 126 (0x7E or 0176) decimal value will be backslashed if specified (not octalized)\n  //   _returns 4: '\\\\ ~'\n  //   _example 5: addcslashes(\"\\r\\u0007\\n\", '\\0..\\37'); // Recognize C escape sequences if specified\n  //   _returns 5: \"\\\\r\\\\a\\\\n\"\n  //   _example 6: addcslashes(\"\\r\\u0007\\n\", '\\0'); // Do not recognize C escape sequences if not specified\n  //   _returns 6: \"\\r\\u0007\\n\"\n\n  var target = ''\n  var chrs = []\n  var i = 0\n  var j = 0\n  var c = ''\n  var next = ''\n  var rangeBegin = ''\n  var rangeEnd = ''\n  var chr = ''\n  var begin = 0\n  var end = 0\n  var octalLength = 0\n  var postOctalPos = 0\n  var cca = 0\n  var escHexGrp = []\n  var encoded = ''\n  var percentHex = /%([\\dA-Fa-f]+)/g\n\n  var _pad = function (n, c) {\n    if ((n = n + '').length < c) {\n      return new Array(++c - n.length).join('0') + n\n    }\n    return n\n  }\n\n  for (i = 0; i < charlist.length; i++) {\n    c = charlist.charAt(i)\n    next = charlist.charAt(i + 1)\n    if (c === '\\\\' && next && (/\\d/).test(next)) {\n      // Octal\n      rangeBegin = charlist.slice(i + 1).match(/^\\d+/)[0]\n      octalLength = rangeBegin.length\n      postOctalPos = i + octalLength + 1\n      if (charlist.charAt(postOctalPos) + charlist.charAt(postOctalPos + 1) === '..') {\n        // Octal begins range\n        begin = rangeBegin.charCodeAt(0)\n        if ((/\\\\\\d/).test(charlist.charAt(postOctalPos + 2) + charlist.charAt(postOctalPos + 3))) {\n          // Range ends with octal\n          rangeEnd = charlist.slice(postOctalPos + 3).match(/^\\d+/)[0]\n          // Skip range end backslash\n          i += 1\n        } else if (charlist.charAt(postOctalPos + 2)) {\n          // Range ends with character\n          rangeEnd = charlist.charAt(postOctalPos + 2)\n        } else {\n          throw new Error('Range with no end point')\n        }\n        end = rangeEnd.charCodeAt(0)\n        if (end > begin) {\n          // Treat as a range\n          for (j = begin; j <= end; j++) {\n            chrs.push(String.fromCharCode(j))\n          }\n        } else {\n          // Supposed to treat period, begin and end as individual characters only, not a range\n          chrs.push('.', rangeBegin, rangeEnd)\n        }\n        // Skip dots and range end (already skipped range end backslash if present)\n        i += rangeEnd.length + 2\n      } else {\n        // Octal is by itself\n        chr = String.fromCharCode(parseInt(rangeBegin, 8))\n        chrs.push(chr)\n      }\n      // Skip range begin\n      i += octalLength\n    } else if (next + charlist.charAt(i + 2) === '..') {\n      // Character begins range\n      rangeBegin = c\n      begin = rangeBegin.charCodeAt(0)\n      if ((/\\\\\\d/).test(charlist.charAt(i + 3) + charlist.charAt(i + 4))) {\n        // Range ends with octal\n        rangeEnd = charlist.slice(i + 4).match(/^\\d+/)[0]\n        // Skip range end backslash\n        i += 1\n      } else if (charlist.charAt(i + 3)) {\n        // Range ends with character\n        rangeEnd = charlist.charAt(i + 3)\n      } else {\n        throw new Error('Range with no end point')\n      }\n      end = rangeEnd.charCodeAt(0)\n      if (end > begin) {\n        // Treat as a range\n        for (j = begin; j <= end; j++) {\n          chrs.push(String.fromCharCode(j))\n        }\n      } else {\n        // Supposed to treat period, begin and end as individual characters only, not a range\n        chrs.push('.', rangeBegin, rangeEnd)\n      }\n      // Skip dots and range end (already skipped range end backslash if present)\n      i += rangeEnd.length + 2\n    } else {\n      // Character is by itself\n      chrs.push(c)\n    }\n  }\n\n  for (i = 0; i < str.length; i++) {\n    c = str.charAt(i)\n    if (chrs.indexOf(c) !== -1) {\n      target += '\\\\'\n      cca = c.charCodeAt(0)\n      if (cca < 32 || cca > 126) {\n        // Needs special escaping\n        switch (c) {\n          case '\\n':\n            target += 'n'\n            break\n          case '\\t':\n            target += 't'\n            break\n          case '\\u000D':\n            target += 'r'\n            break\n          case '\\u0007':\n            target += 'a'\n            break\n          case '\\v':\n            target += 'v'\n            break\n          case '\\b':\n            target += 'b'\n            break\n          case '\\f':\n            target += 'f'\n            break\n          default:\n            // target += _pad(cca.toString(8), 3);break; // Sufficient for UTF-16\n            encoded = encodeURIComponent(c)\n\n            // 3-length-padded UTF-8 octets\n            if ((escHexGrp = percentHex.exec(encoded)) !== null) {\n              // already added a slash above:\n              target += _pad(parseInt(escHexGrp[1], 16).toString(8), 3)\n            }\n            while ((escHexGrp = percentHex.exec(encoded)) !== null) {\n              target += '\\\\' + _pad(parseInt(escHexGrp[1], 16).toString(8), 3)\n            }\n            break\n        }\n      } else {\n        // Perform regular backslashed escaping\n        target += c\n      }\n    } else {\n      // Just add the character unescaped\n      target += c\n    }\n  }\n\n  return target\n}\n"]}