{"version":3,"file":"stringExtras.mjs","sourceRoot":"","sources":["../../src/stringExtras.ts"],"names":[],"mappings":"AAEA,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AACpD,MAAM,gBAAgB,GAAG,OAAO,CAAC;AACjC,MAAM,mBAAmB,GAAG,UAAU,CAAC;AACvC,MAAM,YAAY,GAAiB;IAClC,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,OAAO;CACZ,CAAC;AAEF;;;;GAIG;AACH,MAAM,uBAAuB,IAAY;IACxC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;AACjE,CAAC;AAED;;;;;GAKG;AACH,MAAM,oBAAoB,GAAW,EAAE,eAAwB,IAAI;IAClE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACV,MAAM,CAAC,GAAG,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAEtE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,UAAS,SAAiB;QACrD,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { Hash } from './interfaces';\n\nconst escapeRegExpPattern = /[[\\]{}()|\\/\\\\^$.*+?]/g;\nconst escapeXmlPattern = /[&<]/g;\nconst escapeXmlForPattern = /[&<>'\"]/g;\nconst escapeXmlMap: Hash<string> = {\n\t'&': '&amp;',\n\t'<': '&lt;',\n\t'>': '&gt;',\n\t'\"': '&quot;',\n\t\"'\": '&#39;'\n};\n\n/**\n * Escapes a string so that it can safely be passed to the RegExp constructor.\n * @param text The string to be escaped\n * @return The escaped string\n */\nexport function escapeRegExp(text: string): string {\n\treturn !text ? text : text.replace(escapeRegExpPattern, '\\\\$&');\n}\n\n/**\n * Sanitizes a string to protect against tag injection.\n * @param xml The string to be escaped\n * @param forAttribute Whether to also escape ', \", and > in addition to < and &\n * @return The escaped string\n */\nexport function escapeXml(xml: string, forAttribute: boolean = true): string {\n\tif (!xml) {\n\t\treturn xml;\n\t}\n\n\tconst pattern = forAttribute ? escapeXmlForPattern : escapeXmlPattern;\n\n\treturn xml.replace(pattern, function(character: string): string {\n\t\treturn escapeXmlMap[character];\n\t});\n}\n"]}