{"version":3,"file":"lib-default.cjs","sources":["../../../../../../node_modules/xss/lib/default.js"],"sourcesContent":["/**\n * default settings\n *\n * @author Zongmin Lei<leizongmin@gmail.com>\n */\n\nvar FilterCSS = require(\"cssfilter\").FilterCSS;\nvar getDefaultCSSWhiteList = require(\"cssfilter\").getDefaultWhiteList;\nvar _ = require(\"./util\");\n\nfunction getDefaultWhiteList() {\n  return {\n    a: [\"target\", \"href\", \"title\"],\n    abbr: [\"title\"],\n    address: [],\n    area: [\"shape\", \"coords\", \"href\", \"alt\"],\n    article: [],\n    aside: [],\n    audio: [\n      \"autoplay\",\n      \"controls\",\n      \"crossorigin\",\n      \"loop\",\n      \"muted\",\n      \"preload\",\n      \"src\",\n    ],\n    b: [],\n    bdi: [\"dir\"],\n    bdo: [\"dir\"],\n    big: [],\n    blockquote: [\"cite\"],\n    br: [],\n    caption: [],\n    center: [],\n    cite: [],\n    code: [],\n    col: [\"align\", \"valign\", \"span\", \"width\"],\n    colgroup: [\"align\", \"valign\", \"span\", \"width\"],\n    dd: [],\n    del: [\"datetime\"],\n    details: [\"open\"],\n    div: [],\n    dl: [],\n    dt: [],\n    em: [],\n    figcaption: [],\n    figure: [],\n    font: [\"color\", \"size\", \"face\"],\n    footer: [],\n    h1: [],\n    h2: [],\n    h3: [],\n    h4: [],\n    h5: [],\n    h6: [],\n    header: [],\n    hr: [],\n    i: [],\n    img: [\"src\", \"alt\", \"title\", \"width\", \"height\", \"loading\"],\n    ins: [\"datetime\"],\n    kbd: [],\n    li: [],\n    mark: [],\n    nav: [],\n    ol: [],\n    p: [],\n    pre: [],\n    s: [],\n    section: [],\n    small: [],\n    span: [],\n    sub: [],\n    summary: [],\n    sup: [],\n    strong: [],\n    strike: [],\n    table: [\"width\", \"border\", \"align\", \"valign\"],\n    tbody: [\"align\", \"valign\"],\n    td: [\"width\", \"rowspan\", \"colspan\", \"align\", \"valign\"],\n    tfoot: [\"align\", \"valign\"],\n    th: [\"width\", \"rowspan\", \"colspan\", \"align\", \"valign\"],\n    thead: [\"align\", \"valign\"],\n    tr: [\"rowspan\", \"align\", \"valign\"],\n    tt: [],\n    u: [],\n    ul: [],\n    video: [\n      \"autoplay\",\n      \"controls\",\n      \"crossorigin\",\n      \"loop\",\n      \"muted\",\n      \"playsinline\",\n      \"poster\",\n      \"preload\",\n      \"src\",\n      \"height\",\n      \"width\",\n    ],\n  };\n}\n\nvar defaultCSSFilter = new FilterCSS();\n\n/**\n * default onTag function\n *\n * @param {String} tag\n * @param {String} html\n * @param {Object} options\n * @return {String}\n */\nfunction onTag(tag, html, options) {\n  // do nothing\n}\n\n/**\n * default onIgnoreTag function\n *\n * @param {String} tag\n * @param {String} html\n * @param {Object} options\n * @return {String}\n */\nfunction onIgnoreTag(tag, html, options) {\n  // do nothing\n}\n\n/**\n * default onTagAttr function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction onTagAttr(tag, name, value) {\n  // do nothing\n}\n\n/**\n * default onIgnoreTagAttr function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @return {String}\n */\nfunction onIgnoreTagAttr(tag, name, value) {\n  // do nothing\n}\n\n/**\n * default escapeHtml function\n *\n * @param {String} html\n */\nfunction escapeHtml(html) {\n  return html.replace(REGEXP_LT, \"&lt;\").replace(REGEXP_GT, \"&gt;\");\n}\n\n/**\n * default safeAttrValue function\n *\n * @param {String} tag\n * @param {String} name\n * @param {String} value\n * @param {Object} cssFilter\n * @return {String}\n */\nfunction safeAttrValue(tag, name, value, cssFilter) {\n  // unescape attribute value firstly\n  value = friendlyAttrValue(value);\n\n  if (name === \"href\" || name === \"src\") {\n    // filter `href` and `src` attribute\n    // only allow the value that starts with `http://` | `https://` | `mailto:` | `/` | `#`\n    value = _.trim(value);\n    if (value === \"#\") return \"#\";\n    if (\n      !(\n        value.substr(0, 7) === \"http://\" ||\n        value.substr(0, 8) === \"https://\" ||\n        value.substr(0, 7) === \"mailto:\" ||\n        value.substr(0, 4) === \"tel:\" ||\n        value.substr(0, 11) === \"data:image/\" ||\n        value.substr(0, 6) === \"ftp://\" ||\n        value.substr(0, 2) === \"./\" ||\n        value.substr(0, 3) === \"../\" ||\n        value[0] === \"#\" ||\n        value[0] === \"/\"\n      )\n    ) {\n      return \"\";\n    }\n  } else if (name === \"background\") {\n    // filter `background` attribute (maybe no use)\n    // `javascript:`\n    REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;\n    if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {\n      return \"\";\n    }\n  } else if (name === \"style\") {\n    // `expression()`\n    REGEXP_DEFAULT_ON_TAG_ATTR_7.lastIndex = 0;\n    if (REGEXP_DEFAULT_ON_TAG_ATTR_7.test(value)) {\n      return \"\";\n    }\n    // `url()`\n    REGEXP_DEFAULT_ON_TAG_ATTR_8.lastIndex = 0;\n    if (REGEXP_DEFAULT_ON_TAG_ATTR_8.test(value)) {\n      REGEXP_DEFAULT_ON_TAG_ATTR_4.lastIndex = 0;\n      if (REGEXP_DEFAULT_ON_TAG_ATTR_4.test(value)) {\n        return \"\";\n      }\n    }\n    if (cssFilter !== false) {\n      cssFilter = cssFilter || defaultCSSFilter;\n      value = cssFilter.process(value);\n    }\n  }\n\n  // escape `<>\"` before returns\n  value = escapeAttrValue(value);\n  return value;\n}\n\n// RegExp list\nvar REGEXP_LT = /</g;\nvar REGEXP_GT = />/g;\nvar REGEXP_QUOTE = /\"/g;\nvar REGEXP_QUOTE_2 = /&quot;/g;\nvar REGEXP_ATTR_VALUE_1 = /&#([a-zA-Z0-9]*);?/gim;\nvar REGEXP_ATTR_VALUE_COLON = /&colon;?/gim;\nvar REGEXP_ATTR_VALUE_NEWLINE = /&newline;?/gim;\n// var REGEXP_DEFAULT_ON_TAG_ATTR_3 = /\\/\\*|\\*\\//gm;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_4 =\n  /((j\\s*a\\s*v\\s*a|v\\s*b|l\\s*i\\s*v\\s*e)\\s*s\\s*c\\s*r\\s*i\\s*p\\s*t\\s*|m\\s*o\\s*c\\s*h\\s*a):/gi;\n// var REGEXP_DEFAULT_ON_TAG_ATTR_5 = /^[\\s\"'`]*(d\\s*a\\s*t\\s*a\\s*)\\:/gi;\n// var REGEXP_DEFAULT_ON_TAG_ATTR_6 = /^[\\s\"'`]*(d\\s*a\\s*t\\s*a\\s*)\\:\\s*image\\//gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_7 =\n  /e\\s*x\\s*p\\s*r\\s*e\\s*s\\s*s\\s*i\\s*o\\s*n\\s*\\(.*/gi;\nvar REGEXP_DEFAULT_ON_TAG_ATTR_8 = /u\\s*r\\s*l\\s*\\(.*/gi;\n\n/**\n * escape double quote\n *\n * @param {String} str\n * @return {String} str\n */\nfunction escapeQuote(str) {\n  return str.replace(REGEXP_QUOTE, \"&quot;\");\n}\n\n/**\n * unescape double quote\n *\n * @param {String} str\n * @return {String} str\n */\nfunction unescapeQuote(str) {\n  return str.replace(REGEXP_QUOTE_2, '\"');\n}\n\n/**\n * escape html entities\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeHtmlEntities(str) {\n  return str.replace(REGEXP_ATTR_VALUE_1, function replaceUnicode(str, code) {\n    return code[0] === \"x\" || code[0] === \"X\"\n      ? String.fromCharCode(parseInt(code.substr(1), 16))\n      : String.fromCharCode(parseInt(code, 10));\n  });\n}\n\n/**\n * escape html5 new danger entities\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeDangerHtml5Entities(str) {\n  return str\n    .replace(REGEXP_ATTR_VALUE_COLON, \":\")\n    .replace(REGEXP_ATTR_VALUE_NEWLINE, \" \");\n}\n\n/**\n * clear nonprintable characters\n *\n * @param {String} str\n * @return {String}\n */\nfunction clearNonPrintableCharacter(str) {\n  var str2 = \"\";\n  for (var i = 0, len = str.length; i < len; i++) {\n    str2 += str.charCodeAt(i) < 32 ? \" \" : str.charAt(i);\n  }\n  return _.trim(str2);\n}\n\n/**\n * get friendly attribute value\n *\n * @param {String} str\n * @return {String}\n */\nfunction friendlyAttrValue(str) {\n  str = unescapeQuote(str);\n  str = escapeHtmlEntities(str);\n  str = escapeDangerHtml5Entities(str);\n  str = clearNonPrintableCharacter(str);\n  return str;\n}\n\n/**\n * unescape attribute value\n *\n * @param {String} str\n * @return {String}\n */\nfunction escapeAttrValue(str) {\n  str = escapeQuote(str);\n  str = escapeHtml(str);\n  return str;\n}\n\n/**\n * `onIgnoreTag` function for removing all the tags that are not in whitelist\n */\nfunction onIgnoreTagStripAll() {\n  return \"\";\n}\n\n/**\n * remove tag body\n * specify a `tags` list, if the tag is not in the `tags` list then process by the specify function (optional)\n *\n * @param {array} tags\n * @param {function} next\n */\nfunction StripTagBody(tags, next) {\n  if (typeof next !== \"function\") {\n    next = function () {};\n  }\n\n  var isRemoveAllTag = !Array.isArray(tags);\n  function isRemoveTag(tag) {\n    if (isRemoveAllTag) return true;\n    return _.indexOf(tags, tag) !== -1;\n  }\n\n  var removeList = [];\n  var posStart = false;\n\n  return {\n    onIgnoreTag: function (tag, html, options) {\n      if (isRemoveTag(tag)) {\n        if (options.isClosing) {\n          var ret = \"[/removed]\";\n          var end = options.position + ret.length;\n          removeList.push([\n            posStart !== false ? posStart : options.position,\n            end,\n          ]);\n          posStart = false;\n          return ret;\n        } else {\n          if (!posStart) {\n            posStart = options.position;\n          }\n          return \"[removed]\";\n        }\n      } else {\n        return next(tag, html, options);\n      }\n    },\n    remove: function (html) {\n      var rethtml = \"\";\n      var lastPos = 0;\n      _.forEach(removeList, function (pos) {\n        rethtml += html.slice(lastPos, pos[0]);\n        lastPos = pos[1];\n      });\n      rethtml += html.slice(lastPos);\n      return rethtml;\n    },\n  };\n}\n\n/**\n * remove html comments\n *\n * @param {String} html\n * @return {String}\n */\nfunction stripCommentTag(html) {\n  var retHtml = \"\";\n  var lastPos = 0;\n  while (lastPos < html.length) {\n    var i = html.indexOf(\"<!--\", lastPos);\n    if (i === -1) {\n      retHtml += html.slice(lastPos);\n      break;\n    }\n    retHtml += html.slice(lastPos, i);\n    var j = html.indexOf(\"-->\", i);\n    if (j === -1) {\n      break;\n    }\n    lastPos = j + 3;\n  }\n  return retHtml;\n}\n\n/**\n * remove invisible characters\n *\n * @param {String} html\n * @return {String}\n */\nfunction stripBlankChar(html) {\n  var chars = html.split(\"\");\n  chars = chars.filter(function (char) {\n    var c = char.charCodeAt(0);\n    if (c === 127) return false;\n    if (c <= 31) {\n      if (c === 10 || c === 13) return true;\n      return false;\n    }\n    return true;\n  });\n  return chars.join(\"\");\n}\n\nexports.whiteList = getDefaultWhiteList();\nexports.getDefaultWhiteList = getDefaultWhiteList;\nexports.onTag = onTag;\nexports.onIgnoreTag = onIgnoreTag;\nexports.onTagAttr = onTagAttr;\nexports.onIgnoreTagAttr = onIgnoreTagAttr;\nexports.safeAttrValue = safeAttrValue;\nexports.escapeHtml = escapeHtml;\nexports.escapeQuote = escapeQuote;\nexports.unescapeQuote = unescapeQuote;\nexports.escapeHtmlEntities = escapeHtmlEntities;\nexports.escapeDangerHtml5Entities = escapeDangerHtml5Entities;\nexports.clearNonPrintableCharacter = clearNonPrintableCharacter;\nexports.friendlyAttrValue = friendlyAttrValue;\nexports.escapeAttrValue = escapeAttrValue;\nexports.onIgnoreTagStripAll = onIgnoreTagStripAll;\nexports.StripTagBody = StripTagBody;\nexports.stripCommentTag = stripCommentTag;\nexports.stripBlankChar = stripBlankChar;\nexports.attributeWrapSign = '\"';\nexports.cssFilter = defaultCSSFilter;\nexports.getDefaultCSSWhiteList = getDefaultCSSWhiteList;\n"],"names":["require$$0","require$$1","str","_default"],"mappings":"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","x_google_ignoreList":[0]}