"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "dist/purify.js.map" between
DOMPurify-3.0.1.tar.gz and DOMPurify-3.0.2.tar.gz

About: DOMPurify is a DOM-only XSS sanitizer for HTML, MathML and SVG (written in JavaScript).

purify.js.map  (DOMPurify-3.0.1):purify.js.map  (DOMPurify-3.0.2)
{"version":3,"file":"purify.js","sources":["../src/utils.js","../src/tags.js",". ./src/attrs.js","../src/regexp.js","../src/purify.js"],"sourcesContent":["const {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnProper tyDescriptor,\n} = Object;\n\nlet { freeze, seal, create } = Object; // eslint-d isable-line import/no-mutable-exports\nlet { apply, construct } = typeof Reflect !== 'undefined' && Reflect;\n\nif (!apply) {\n apply = function (fun, thisValu e, args) {\n return fun.apply(thisValue, args);\n };\n}\n\nif (!freeze) {\n freeze = function (x) {\n return x;\n };\n}\n\nif (!seal) {\n seal = funct ion (x) {\n return x;\n };\n}\n\nif (!construct) {\n construct = function ( Func, args) {\n return new Func(...args);\n };\n}\n\nconst arrayForEach = un apply(Array.prototype.forEach);\nconst arrayIndexOf = unapply(Array.prototype.in dexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapp ly(Array.prototype.push);\nconst arraySlice = unapply(Array.prototype.slice);\n\ nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringT oString = unapply(String.prototype.toString);\nconst stringMatch = unapply(Strin g.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nc onst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unap ply(String.prototype.trim);\n\nconst regExpTest = unapply(RegExp.prototype.test) ;\n\nconst typeErrorCreate = unconstruct(TypeError);\n\nexport function unapply( func) {\n return (thisArg, ...args) => apply(func, thisArg, args);\n}\n\nexport function unconstruct(func) {\n return (...args) => construct(func, args);\n}\n \n/* Add properties to a lookup table */\nexport function addToSet(set, array, t ransformCaseFunc) {\n transformCaseFunc = transformCaseFunc ? transformCaseFunc : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy chec ks like Boolean(set.constructor)\n // independent of any properties defined o n Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n}\n\n/* Shallow clone an object */\nexport function clone(object) {\n const newObject = create(null);\n\n for (const [property, value] of entri es(object)) {\n newObject[property] = value;\n }\n\n return newObject;\n}\n \n/* This method automatically checks if the prop is function\n * or getter and behaves accordingly. */\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (d esc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\ n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function fallb ackValue(element) {\n console.warn('fallback value for', element);\n retur n null;\n }\n\n return fallbackValue;\n}\n\nexport {\n // Array\n arrayForEa ch,\n arrayIndexOf,\n arrayPop,\n arrayPush,\n arraySlice,\n // Object\n e ntries,\n freeze,\n getPrototypeOf,\n getOwnPropertyDescriptor,\n isFrozen,\ n setPrototypeOf,\n seal,\n // RegExp\n regExpTest,\n // String\n stringIn dexOf,\n stringMatch,\n stringReplace,\n stringToLowerCase,\n stringToString ,\n stringTrim,\n // Errors\n typeErrorCreate,\n // Other\n lookupGetter,\n };\n","import { freeze } from './utils.js';\n\nexport const html = freeze([\n ' a',\n 'abbr',\n 'acronym',\n 'address',\n 'area',\n 'article',\n 'aside',\ n 'audio',\n 'b',\n 'bdi',\n 'bdo',\n 'big',\n 'blink',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'center',\n 'cite ',\n 'code',\n 'col',\n 'colgroup',\n 'content',\n 'data',\n 'datalist',\n 'dd',\n 'decorator',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'dir', \n 'div',\n 'dl',\n 'dt',\n 'element',\n 'em',\n 'fieldset',\n 'figcaptio n',\n 'figure',\n 'font',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hgroup',\n 'hr',\n 'html ',\n 'i',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'map',\n 'mark',\n 'marquee',\n 'menu',\n 'menuitem',\n 'meter',\n 'nav',\n 'nobr',\n 'ol',\n 'optgroup',\n 'option',\n 'output' ,\n 'p',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'r uby',\n 's',\n 'samp',\n 'section',\n 'select',\n 'shadow',\n 'small',\n 'source',\n 'spacer',\n 'span',\n 'strike',\n 'strong',\n 'style',\n 'sub' ,\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'te xtarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'track',\n 'tt ',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n]);\n\n// SVG\nexport const svg = freeze([\n 'svg',\n 'a',\n 'altglyph',\n 'altglyphdef',\n 'altglyphi tem',\n 'animatecolor',\n 'animatemotion',\n 'animatetransform',\n 'circle', \n 'clippath',\n 'defs',\n 'desc',\n 'ellipse',\n 'filter',\n 'font',\n ' g',\n 'glyph',\n 'glyphref',\n 'hkern',\n 'image',\n 'line',\n 'lineargrad ient',\n 'marker',\n 'mask',\n 'metadata',\n 'mpath',\n 'path',\n 'pattern ',\n 'polygon',\n 'polyline',\n 'radialgradient',\n 'rect',\n 'stop',\n 's tyle',\n 'switch',\n 'symbol',\n 'text',\n 'textpath',\n 'title',\n 'tref' ,\n 'tspan',\n 'view',\n 'vkern',\n]);\n\nexport const svgFilters = freeze([\ n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDista ntLight',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\ n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphol ogy',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight ',\n 'feTile',\n 'feTurbulence',\n]);\n\n// List of SVG elements that are disa llowed by default.\n// We still need to know them so that we can do namespace\n/ / checks properly in case one wants to add them to\n// allow-list.\nexport const svgDisallowed = freeze([\n 'animate',\n 'color-profile',\n 'cursor',\n 'dis card',\n 'fedropshadow',\n 'font-face',\n 'font-face-format',\n 'font-face-n ame',\n 'font-face-src',\n 'font-face-uri',\n 'foreignobject',\n 'hatch',\n 'hatchpath',\n 'mesh',\n 'meshgradient',\n 'meshpatch',\n 'meshrow',\n 'mi ssing-glyph',\n 'script',\n 'set',\n 'solidcolor',\n 'unknown',\n 'use',\n] );\n\nexport const mathMl = freeze([\n 'math',\n 'menclose',\n 'merror',\n ' mfenced',\n 'mfrac',\n 'mglyph',\n 'mi',\n 'mlabeledtr',\n 'mmultiscripts', \n 'mn',\n 'mo',\n 'mover',\n 'mpadded',\n 'mphantom',\n 'mroot',\n 'mrow ',\n 'ms',\n 'mspace',\n 'msqrt',\n 'mstyle',\n 'msub',\n 'msup',\n 'msub sup',\n 'mtable',\n 'mtd',\n 'mtext',\n 'mtr',\n 'munder',\n 'munderover', \n]);\n\n// Similarly to SVG, we want to know all MathML elements,\n// even thos e that we disallow by default.\nexport const mathMlDisallowed = freeze([\n 'mac tion',\n 'maligngroup',\n 'malignmark',\n 'mlongdiv',\n 'mscarries',\n 'msc arry',\n 'msgroup',\n 'mstack',\n 'msline',\n 'msrow',\n 'semantics',\n 'a nnotation',\n 'annotation-xml',\n 'mprescripts',\n 'none',\n]);\n\nexport con st text = freeze(['#text']);\n","import { freeze } from './utils.js';\n\nexport const html = freeze([\n 'accept',\n 'action',\n 'align',\n 'alt',\n 'autoca pitalize',\n 'autocomplete',\n 'autopictureinpicture',\n 'autoplay',\n 'back ground',\n 'bgcolor',\n 'border',\n 'capture',\n 'cellpadding',\n 'cellspac ing',\n 'checked',\n 'cite',\n 'class',\n 'clear',\n 'color',\n 'cols',\n 'colspan',\n 'controls',\n 'controlslist',\n 'coords',\n 'crossorigin',\n 'datetime',\n 'decoding',\n 'default',\n 'dir',\n 'disabled',\n 'disablepic tureinpicture',\n 'disableremoteplayback',\n 'download',\n 'draggable',\n 'e nctype',\n 'enterkeyhint',\n 'face',\n 'for',\n 'headers',\n 'height',\n ' hidden',\n 'high',\n 'href',\n 'hreflang',\n 'id',\n 'inputmode',\n 'integ rity',\n 'ismap',\n 'kind',\n 'label',\n 'lang',\n 'list',\n 'loading',\n 'loop',\n 'low',\n 'max',\n 'maxlength',\n 'media',\n 'method',\n 'min',\ n 'minlength',\n 'multiple',\n 'muted',\n 'name',\n 'nonce',\n 'noshade',\ n 'novalidate',\n 'nowrap',\n 'open',\n 'optimum',\n 'pattern',\n 'placeho lder',\n 'playsinline',\n 'poster',\n 'preload',\n 'pubdate',\n 'radiogroup ',\n 'readonly',\n 'rel',\n 'required',\n 'rev',\n 'reversed',\n 'role',\n 'rows',\n 'rowspan',\n 'spellcheck',\n 'scope',\n 'selected',\n 'shape',\ n 'size',\n 'sizes',\n 'span',\n 'srclang',\n 'start',\n 'src',\n 'srcset ',\n 'step',\n 'style',\n 'summary',\n 'tabindex',\n 'title',\n 'translate ',\n 'type',\n 'usemap',\n 'valign',\n 'value',\n 'width',\n 'xmlns',\n ' slot',\n]);\n\nexport const svg = freeze([\n 'accent-height',\n 'accumulate',\ n 'additive',\n 'alignment-baseline',\n 'ascent',\n 'attributename',\n 'att ributetype',\n 'azimuth',\n 'basefrequency',\n 'baseline-shift',\n 'begin',\ n 'bias',\n 'by',\n 'class',\n 'clip',\n 'clippathunits',\n 'clip-path',\n 'clip-rule',\n 'color',\n 'color-interpolation',\n 'color-interpolation-fil ters',\n 'color-profile',\n 'color-rendering',\n 'cx',\n 'cy',\n 'd',\n 'd x',\n 'dy',\n 'diffuseconstant',\n 'direction',\n 'display',\n 'divisor',\n 'dur',\n 'edgemode',\n 'elevation',\n 'end',\n 'fill',\n 'fill-opacity',\ n 'fill-rule',\n 'filter',\n 'filterunits',\n 'flood-color',\n 'flood-opaci ty',\n 'font-family',\n 'font-size',\n 'font-size-adjust',\n 'font-stretch', \n 'font-style',\n 'font-variant',\n 'font-weight',\n 'fx',\n 'fy',\n 'g1' ,\n 'g2',\n 'glyph-name',\n 'glyphref',\n 'gradientunits',\n 'gradienttrans form',\n 'height',\n 'href',\n 'id',\n 'image-rendering',\n 'in',\n 'in2', \n 'k',\n 'k1',\n 'k2',\n 'k3',\n 'k4',\n 'kerning',\n 'keypoints',\n 'k eysplines',\n 'keytimes',\n 'lang',\n 'lengthadjust',\n 'letter-spacing',\n 'kernelmatrix',\n 'kernelunitlength',\n 'lighting-color',\n 'local',\n 'mar ker-end',\n 'marker-mid',\n 'marker-start',\n 'markerheight',\n 'markerunits ',\n 'markerwidth',\n 'maskcontentunits',\n 'maskunits',\n 'max',\n 'mask', \n 'media',\n 'method',\n 'mode',\n 'min',\n 'name',\n 'numoctaves',\n 'o ffset',\n 'operator',\n 'opacity',\n 'order',\n 'orient',\n 'orientation',\ n 'origin',\n 'overflow',\n 'paint-order',\n 'path',\n 'pathlength',\n 'pa tterncontentunits',\n 'patterntransform',\n 'patternunits',\n 'points',\n 'p reservealpha',\n 'preserveaspectratio',\n 'primitiveunits',\n 'r',\n 'rx',\n 'ry',\n 'radius',\n 'refx',\n 'refy',\n 'repeatcount',\n 'repeatdur',\n 'restart',\n 'result',\n 'rotate',\n 'scale',\n 'seed',\n 'shape-rendering' ,\n 'specularconstant',\n 'specularexponent',\n 'spreadmethod',\n 'startoffs et',\n 'stddeviation',\n 'stitchtiles',\n 'stop-color',\n 'stop-opacity',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-linecap',\n 'stroke-lin ejoin',\n 'stroke-miterlimit',\n 'stroke-opacity',\n 'stroke',\n 'stroke-wid th',\n 'style',\n 'surfacescale',\n 'systemlanguage',\n 'tabindex',\n 'targ etx',\n 'targety',\n 'transform',\n 'transform-origin',\n 'text-anchor',\n 'text-decoration',\n 'text-rendering',\n 'textlength',\n 'type',\n 'u1',\n 'u2',\n 'unicode',\n 'values',\n 'viewbox',\n 'visibility',\n 'version',\n 'vert-adv-y',\n 'vert-origin-x',\n 'vert-origin-y',\n 'width',\n 'word-spac ing',\n 'wrap',\n 'writing-mode',\n 'xchannelselector',\n 'ychannelselector' ,\n 'x',\n 'x1',\n 'x2',\n 'xmlns',\n 'y',\n 'y1',\n 'y2',\n 'z',\n 'zo omandpan',\n]);\n\nexport const mathMl = freeze([\n 'accent',\n 'accentunder', \n 'align',\n 'bevelled',\n 'close',\n 'columnsalign',\n 'columnlines',\n 'columnspan',\n 'denomalign',\n 'depth',\n 'dir',\n 'display',\n 'displayst yle',\n 'encoding',\n 'fence',\n 'frame',\n 'height',\n 'href',\n 'id',\n 'largeop',\n 'length',\n 'linethickness',\n 'lspace',\n 'lquote',\n 'mathb ackground',\n 'mathcolor',\n 'mathsize',\n 'mathvariant',\n 'maxsize',\n 'm insize',\n 'movablelimits',\n 'notation',\n 'numalign',\n 'open',\n 'rowali gn',\n 'rowlines',\n 'rowspacing',\n 'rowspan',\n 'rspace',\n 'rquote',\n 'scriptlevel',\n 'scriptminsize',\n 'scriptsizemultiplier',\n 'selection',\n 'separator',\n 'separators',\n 'stretchy',\n 'subscriptshift',\n 'supscript shift',\n 'symmetric',\n 'voffset',\n 'width',\n 'xmlns',\n]);\n\nexport con st xml = freeze([\n 'xlink:href',\n 'xml:id',\n 'xlink:title',\n 'xml:space' ,\n 'xmlns:xlink',\n]);\n","import { seal } from './utils.js';\n\n// eslint-dis able-next-line unicorn/better-regex\nexport const MUSTACHE_EXPR = seal(/\\{\\{[\ \w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TE MPLATES mode\nexport const ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\nexport const TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\nexport const DATA_ATTR = seal(/^ data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\nexpor t const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless- escape\nexport const IS_ALLOWED_URI = seal(\n /^(?:(?:(?:f|ht)tps?|mailto|tel|c allto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nexport const IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|dat a):/i);\nexport const ATTR_WHITESPACE = seal(\n /[\\u0000-\\u0020\\u00A0\\u1680 \\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\ n);\nexport const DOCTYPE_NAME = seal(/^html$/i);\n","import * as TAGS from './t ags.js';\nimport * as ATTRS from './attrs.js';\nimport * as EXPRESSIONS from './ regexp.js';\nimport {\n addToSet,\n clone,\n entries,\n freeze,\n arrayForE ach,\n arrayPop,\n arrayPush,\n stringMatch,\n stringReplace,\n stringToLow erCase,\n stringToString,\n stringIndexOf,\n stringTrim,\n regExpTest,\n ty peErrorCreate,\n lookupGetter,\n} from './utils.js';\n\nconst getGlobal = () => (typeof window === 'undefined' ? null : window);\n\n/**\n * Creates a no-op pol icy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @para m {Document} document The document object (to determine policy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * a re not supported).\n */\nconst _createTrustedTypesPolicy = function (trustedType s, document) {\n if (\n typeof trustedTypes !== 'object' ||\n typeof trus tedTypes.createPolicy !== 'function'\n ) {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy- suffix to the script element with the DOMPurify.\n // Policy creation with dupl icate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (\n document.currentScript &&\n document.cu rrentScript.hasAttribute(ATTR_NAME)\n ) {\n suffix = document.currentScript. getAttribute(ATTR_NAME);\n }\n\n const policyName = 'dompurify' + (suffix ? '# ' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, { \n createHTML(html) {\n return html;\n },\n createScriptUR L(scriptUrl) {\n return scriptUrl;\n },\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // a lready run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn(\n 'TrustedTypes policy ' + policyName + ' could not be created.'\n );\n return null;\n }\n};\n\nfunction create DOMPurify(window = getGlobal()) {\n const DOMPurify = (root) => createDOMPurify (root);\n\n /**\n * Version label, exposed for easier checks\n * if DOMPuri fy is up to date or not\n */\n DOMPurify.version = VERSION;\n\n /**\n * Ar ray of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n\n if (!window || !window.docu ment || window.document.nodeType !== 9) {\n // Not running in a browser, prov ide a factory function\n // so that you can pass your own Window\n DOMPuri fy.isSupported = false;\n\n return DOMPurify;\n }\n\n const originalDocumen t = window.document;\n\n let { document } = window;\n const {\n DocumentFra gment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormEleme nt,\n DOMParser,\n trustedTypes,\n } = window;\n\n const ElementPrototyp e = Element.prototype;\n\n const cloneNode = lookupGetter(ElementPrototype, 'cl oneNode');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling ');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n co nst getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n // As per issue #47, the web-components registry is inherited by a\n // new document cre ated via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomp onents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that a s our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTe mplateElement === 'function') {\n const template = document.createElement('te mplate');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n const trustedTypesPo licy = _createTrustedTypesPolicy(\n trustedTypes,\n originalDocument\n ); \n const emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML('') : ' ';\n\n const {\n implementation,\n createNodeIterator,\n createDocumen tFragment,\n getElementsByTagName,\n } = document;\n const { importNode } = originalDocument;\n\n let hooks = {};\n\n /**\n * Expose whether this brows er supports running the full DOMPurify.\n */\n DOMPurify.isSupported =\n t ypeof entries === 'function' &&\n typeof getParentNode === 'function' &&\n implementation &&\n typeof implementation.createHTMLDocument !== 'undefined' ;\n\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_AT TR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n } = EXPRESS IONS;\n\n let { IS_ALLOWED_URI } = EXPRESSIONS;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones b ut feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [\n .. .TAGS.html,\n ...TAGS.svg,\n ...TAGS.svgFilters,\n ...TAGS.mathMl,\n ...TAGS.text,\n ]);\n\n /* Allowed attribute names */\n let ALLOWED_ATTR = n ull;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [\n ...ATTRS.html,\n ... ATTRS.svg,\n ...ATTRS.mathMl,\n ...ATTRS.xml,\n ]);\n\n /*\n * Configu re how DOMPUrify should handle custom elements and their attributes as well as c ustomized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom el ements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the al low list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameChec k. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(\n O bject.create(null, {\n tagNameCheck: {\n writable: true,\n co nfigurable: false,\n enumerable: true,\n value: null,\n },\n attributeNameCheck: {\n writable: true,\n configurable: false ,\n enumerable: true,\n value: null,\n },\n allowCustomi zedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false,\n },\n })\n );\n\n /* E xplicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATT R) */\n let FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay * /\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n\n /* Output should be safe for co mmon template engines.\n * This means, DOMPurify removes data attributes, must aches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n\n /* Decide if docume nt with <html>... should be returned */\n let WHOLE_DOCUMENT = false;\n\n /* T rack whether config is already set on this instance of DOMPurify. */\n let SET_ CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be chil dren of\n * document.body. By default, browsers might move them to document.he ad */\n let FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` shoul d be returned, instead of a html\n * string (or a TrustedHTML object if Truste d Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMEN T = false;\n\n /* Try to return a Trusted Type object instead of a string, retu rn a string in\n * case Trusted Types are not supported */\n let RETURN_TRUS TED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigati ng attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules t hat enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - D OM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10. 3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollect ion (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n * /\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'u ser-content-';\n\n /* Keep element content when removing element? */\n let KEE P_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs san itization in-place instead\n * of importing it into a new Document and returni ng a sanitized copy */\n let IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n\n /* Tags to ignore co ntent of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DE FAULT_FORBID_CONTENTS = addToSet({}, [\n 'annotation-xml',\n 'audio',\n 'colgroup',\n 'desc',\n 'foreignobject',\n 'head',\n 'iframe',\n 'math',\n 'mi',\n 'mn',\n 'mo',\n 'ms',\n 'mtext',\n 'noembed ',\n 'noframes',\n 'noscript',\n 'plaintext',\n 'script',\n 'styl e',\n 'svg',\n 'template',\n 'thead',\n 'title',\n 'video',\n 'xmp',\n ]);\n\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, [\n 'audio',\n 'vide o',\n 'img',\n 'source',\n 'image',\n 'track',\n ]);\n\n /* Attrib utes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\ n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, [\n 'alt',\n 'class',\ n 'for',\n 'id',\n 'label',\n 'name',\n 'pattern',\n 'placehol der',\n 'role',\n 'summary',\n 'title',\n 'value',\n 'style',\n 'xmlns',\n ]);\n\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/Mat hML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMES PACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESP ACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n\n /* Allowed XHTML+XML n amespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPAC ES = addToSet(\n {},\n [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE],\ n stringToString\n );\n\n /* Parsing of strict XHTML documents */\n let PA RSER_MEDIA_TYPE;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml ', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transf ormCaseFunc;\n\n /* Keep a reference to config to pass to hooks */\n let CONFI G = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______ ________________________________________ */\n\n const formElement = document.cr eateElement('form');\n\n const isRegexOrFunction = function (testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\ n */\n // eslint-disable-next-line complexity\n const _parseConfig = functio n (cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* S hield configuration object from tampering */\n if (!cfg || typeof cfg !== 'ob ject') {\n cfg = {};\n }\n\n /* Shield configuration object from prot otype pollution */\n cfg = clone(cfg);\n\n PARSER_MEDIA_TYPE =\n // e slint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TY PES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1\n ? (PARSER_MEDIA_TYPE = DEFAUL T_PARSER_MEDIA_TYPE)\n : (PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE);\n\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc =\n PARSER_MEDIA_TYPE === 'app lication/xhtml+xml'\n ? stringToString\n : stringToLowerCase;\n\n /* Set configuration parameters */\n ALLOWED_TAGS =\n 'ALLOWED_TAGS' in cfg\n ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc)\n : D EFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR =\n 'ALLOWED_ATTR' in cfg\n ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc)\n : DEFAULT_ALLOWED_AT TR;\n ALLOWED_NAMESPACES =\n 'ALLOWED_NAMESPACES' in cfg\n ? addT oSet({}, cfg.ALLOWED_NAMESPACES, stringToString)\n : DEFAULT_ALLOWED_NAME SPACES;\n URI_SAFE_ATTRIBUTES =\n 'ADD_URI_SAFE_ATTR' in cfg\n ? addToSet(\n clone(DEFAULT_URI_SAFE_ATTRIBUTES), // eslint-disable-lin e indent\n cfg.ADD_URI_SAFE_ATTR, // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-d isable-line indent\n : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS =\ n 'ADD_DATA_URI_TAGS' in cfg\n ? addToSet(\n clone(DEFAUL T_DATA_URI_TAGS), // eslint-disable-line indent\n cfg.ADD_DATA_URI_TA GS, // eslint-disable-line indent\n transformCaseFunc // eslint-disab le-line indent\n ) // eslint-disable-line indent\n : DEFAULT_DAT A_URI_TAGS;\n FORBID_CONTENTS =\n 'FORBID_CONTENTS' in cfg\n ? ad dToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc)\n : DEFAULT_FORBID_CON TENTS;\n FORBID_TAGS =\n 'FORBID_TAGS' in cfg\n ? addToSet({}, cf g.FORBID_TAGS, transformCaseFunc)\n : {};\n FORBID_ATTR =\n 'FORB ID_ATTR' in cfg\n ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc)\n : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false; \n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLO W_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_ PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SE LF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n WHOL E_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg .RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM _FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUST ED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = c fg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI = cfg.ALLOWED_URI_REG EXP || IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n CU STOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (\n cfg. CUSTOM_ELEMENT_HANDLING &&\n isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING. tagNameCheck)\n ) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck =\n cf g.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n\n if (\n cfg.CUSTOM_ELE MENT_HANDLING &&\n isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeN ameCheck)\n ) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck =\n cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n\n if (\n cfg.CU STOM_ELEMENT_HANDLING &&\n typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomiz edBuiltInElements ===\n 'boolean'\n ) {\n CUSTOM_ELEMENT_HANDLING .allowCustomizedBuiltInElements =\n cfg.CUSTOM_ELEMENT_HANDLING.allowCust omizedBuiltInElements;\n }\n\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA _ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true ;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED _TAGS = addToSet({}, [...TAGS.text]);\n ALLOWED_ATTR = [];\n if (USE_P ROFILES.html === true) {\n addToSet(ALLOWED_TAGS, TAGS.html);\n ad dToSet(ALLOWED_ATTR, ATTRS.html);\n }\n\n if (USE_PROFILES.svg === tru e) {\n addToSet(ALLOWED_TAGS, TAGS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n\n if (US E_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, TAGS.svgFilter s);\n addToSet(ALLOWED_ATTR, ATTRS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addTo Set(ALLOWED_TAGS, TAGS.mathMl);\n addToSet(ALLOWED_ATTR, ATTRS.mathMl);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n }\n\n /* Merge confi guration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFA ULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n\n if (cf g.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOW ED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ ATTR, transformCaseFunc);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addT oSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONT ENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n\n add ToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLO WED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n add ToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALL OWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS. table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbo dy;\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n \n CONFIG = cfg;\n };\n\n const MATHML_TEXT_INTEGRATION_POINTS = addToSet({ }, [\n 'mi',\n 'mo',\n 'mn',\n 'ms',\n 'mtext',\n ]);\n\n const HTML_INTEGRATION_POINTS = addToSet({}, [\n 'foreignobject',\n 'desc',\n 'title',\n 'annotation-xml',\n ]);\n\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMM ON_SVG_AND_HTML_ELEMENTS = addToSet({}, [\n 'title',\n 'style',\n 'font ',\n 'a',\n 'script',\n ]);\n\n /* Keep track of all possible SVG and Ma thML tags\n * so that we can perform the namespace checks\n * correctly. */\ n const ALL_SVG_TAGS = addToSet({}, TAGS.svg);\n addToSet(ALL_SVG_TAGS, TAGS.s vgFilters);\n addToSet(ALL_SVG_TAGS, TAGS.svgDisallowed);\n\n const ALL_MATHML _TAGS = addToSet({}, TAGS.mathMl);\n addToSet(ALL_MATHML_TAGS, TAGS.mathMlDisal lowed);\n\n /**\n *\n *\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function (element) {\n let parent = getParentNode(element);\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in thi s case.\n if (!parent || !parent.tagName) {\n parent = {\n namesp aceURI: NAMESPACE,\n tagName: 'template',\n };\n }\n\n const t agName = stringToLowerCase(element.tagName);\n const parentTagName = stringTo LowerCase(parent.tagName);\n\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n\n if (element.namespaceURI === SVG_NAMESPACE ) {\n // The only way to switch from HTML namespace to SVG\n // is via <svg>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 's vg';\n }\n\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either <annotation-xml> or MathML\n // text integrat ion points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n retu rn (\n tagName === 'svg' &&\n (parentTagName === 'annotation-x ml' ||\n MATHML_TEXT_INTEGRATION_POINTS[parentTagName])\n );\n }\n\n // We only allow elements that are defined in SVG\n // spe c. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAG S[tagName]);\n }\n\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via <mat h>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math' ;\n }\n\n // The only way to switch from SVG to MathML is via\n / / <math> and HTML integration points\n if (parent.namespaceURI === SVG_NAME SPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTag Name];\n }\n\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boole an(ALL_MATHML_TAGS[tagName]);\n }\n\n if (element.namespaceURI === HTML_NA MESPACE) {\n // The only way to switch from SVG to HTML is via\n // HT ML integration points, and from MathML to HTML\n // is via MathML text inte gration points\n if (\n parent.namespaceURI === SVG_NAMESPACE &&\n !HTML_INTEGRATION_POINTS[parentTagName]\n ) {\n return false;\ n }\n\n if (\n parent.namespaceURI === MATHML_NAMESPACE &&\n !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]\n ) {\n return f alse;\n }\n\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return (\n !AL L_MATHML_TAGS[tagName] &&\n (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !AL L_SVG_TAGS[tagName])\n );\n }\n\n // For XHTML and XML documents that support custom namespaces\n if (\n PARSER_MEDIA_TYPE === 'application/x html+xml' &&\n ALLOWED_NAMESPACES[element.namespaceURI]\n ) {\n ret urn true;\n }\n\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, Math ML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n r eturn false;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n const _forceRemove = function (node) {\n arrayPush(DOMPur ify.removed, { element: node });\n try {\n // eslint-disable-next-line u nicorn/prefer-dom-node-remove\n node.parentNode.removeChild(node);\n } c atch (_) {\n node.remove();\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DO M node\n */\n const _removeAttribute = function (name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(nam e),\n from: node,\n });\n } catch (_) {\n arrayPush(DOMPurif y.removed, {\n attribute: null,\n from: node,\n });\n }\n\ n node.removeAttribute(name);\n\n // We void attribute values for unremova ble \"is\"\" attributes\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove( node);\n } catch (_) {}\n } else {\n try {\n node.se tAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n const _initD ocument = function (dirty) {\n /* Create a HTML document */\n let doc;\n let leadingWhitespace;\n\n if (FORCE_BODY) {\n dirty = '<remove></remo ve>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespa ce needs to be preserved manually */\n const matches = stringMatch(dirty, / ^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n if (\n PARSER_MEDIA_TYPE === 'application/xhtml+xml' &&\n NAMESPACE === HTML_NAMESPACE\n ) {\n // Root of XHTML doc must contain xmlns decla ration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty =\n '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' +\n dirty +\n '</body></html>';\n }\n\n const dirtyPayload = trus tedTypesPolicy\n ? trustedTypesPolicy.createHTML(dirty)\n : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (N AMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parse FromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc | | !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPT Y_INPUT\n ? emptyHTML\n : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n\n co nst body = doc.body || doc.documentElement;\n\n if (dirty && leadingWhitespac e) {\n body.insertBefore(\n document.createTextNode(leadingWhitespac e),\n body.childNodes[0] || null\n );\n }\n\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n re turn getElementsByTagName.call(\n doc,\n WHOLE_DOCUMENT ? 'html' : 'body'\n )[0];\n }\n\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n\n /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator insta nce\n */\n const _createIterator = function (root) {\n return createNodeIt erator.call(\n root.ownerDocument || root,\n root,\n // eslint-di sable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMM ENT | NodeFilter.SHOW_TEXT,\n null,\n false\n );\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering a ttacks\n * @return {Boolean} true if clobbered, false if safe\n */\n const _isClobbered = function (elm) {\n return (\n elm instanceof HTMLFormElem ent &&\n (typeof elm.nodeName !== 'string' ||\n typeof elm.textConte nt !== 'string' ||\n typeof elm.removeChild !== 'function' ||\n !( elm.attributes instanceof NamedNodeMap) ||\n typeof elm.removeAttribute ! == 'function' ||\n typeof elm.setAttribute !== 'function' ||\n typ eof elm.namespaceURI !== 'string' ||\n typeof elm.insertBefore !== 'funct ion' ||\n typeof elm.hasChildNodes !== 'function')\n );\n };\n\n /** \n * _isNode\n *\n * @param {Node} obj object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n const _isNo de = function (object) {\n return typeof Node === 'object'\n ? object in stanceof Node\n : object &&\n typeof object === 'object' &&\n typeof object.nodeType === 'number' &&\n typeof object.nodeName == = 'string';\n };\n\n /**\n * _executeHook\n * Execute user configurable ho oks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object } data additional hook parameters\n */\n const _executeHook = function (entry Point, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n } \n\n arrayForEach(hooks[entryPoint], (hook) => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\ n *\n * @param {Node} currentNode to check for permission to exist\n * @ return {Boolean} true if node was killed, false if left alive\n */\n const _ sanitizeElements = function (currentNode) {\n let content;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, nu ll);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobb ered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n\n /* Execute a hook if present */\ n _executeHook('uponSanitizeElement', currentNode, {\n tagName,\n a llowedTags: ALLOWED_TAGS,\n });\n\n /* Detect mXSS attempts abusing namesp ace confusion */\n if (\n currentNode.hasChildNodes() &&\n !_isNode (currentNode.firstElementChild) &&\n (!_isNode(currentNode.content) ||\n !_isNode(currentNode.content.firstElementChild)) &&\n regExpTest(/<[/\ \w]/g, currentNode.innerHTML) &&\n regExpTest(/<[/\\w]/g, currentNode.textC ontent)\n ) {\n _forceRemove(currentNode);\n return true;\n }\n\ n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAG S[tagName] || FORBID_TAGS[tagName]) {\n /* Check if we have a custom elemen t to handle */\n if (!FORBID_TAGS[tagName] && _basicCustomElementTest(tagNa me)) {\n if (\n CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)\n )\n return false;\n if (\n CUSTOM_ELEMENT_HANDL ING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.tagNa meCheck(tagName)\n )\n return false;\n }\n\n /* Keep c ontent except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONT ENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || curre ntNode.parentNode;\n const childNodes = getChildNodes(currentNode) || cur rentNode.childNodes;\n\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n\n for (let i = childCount - 1; i >= 0; --i) {\n parentNode.insertBefore(\n cloneNode(childNo des[i], true),\n getNextSibling(currentNode)\n );\n }\n }\n }\n\n _forceRemove(currentNode);\n return tru e;\n }\n\n /* Check whether element has a valid namespace */\n if (curr entNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forc eRemove(currentNode);\n return true;\n }\n\n /* Make sure that older browsers don't get noscript mXSS */\n if (\n (tagName === 'noscript' || tagName === 'noembed') &&\n regExpTest(/<\\/no(script|embed)/i, currentNode .innerHTML)\n ) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TE MPLATES && currentNode.nodeType === 3) {\n /* Get the element's text conten t */\n content = currentNode.textContent;\n content = stringReplace(co ntent, MUSTACHE_EXPR, ' ');\n content = stringReplace(content, ERB_EXPR, ' ');\n content = stringReplace(content, TMPLIT_EXPR, ' ');\n if (curren tNode.textContent !== content) {\n arrayPush(DOMPurify.removed, { element : currentNode.cloneNode() });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitiz eElements', currentNode, null);\n\n return false;\n };\n\n /**\n * _isVal idAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param { string} value Attribute value.\n * @return {Boolean} Returns true if `value` i s valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n co nst _isValidAttribute = function (lcTag, lcName, value) {\n /* Make sure attr ibute cannot clobber */\n if (\n SANITIZE_DOM &&\n (lcName === 'id' || lcName === 'name') &&\n (value in document || value in formElement)\n ) {\n return false;\n }\n\n /* Allow valid data-* attributes: At le ast one character after \"-\"\n (https://html.spec.whatwg.org/multipage/d om.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n X ML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-co mpatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check t he value; it's always URI safe. */\n if (\n ALLOW_DATA_ATTR &&\n !F ORBID_ATTR[lcName] &&\n regExpTest(DATA_ATTR, lcName)\n ) {\n // Th is attribute is safe\n } else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lc Name)) {\n // This attribute is safe\n /* Otherwise, check the name is permitted */\n } else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basical ly a valid custom element tagname AND\n // b) if the tagName passes whate ver the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM _ELEMENT_HANDLING.attributeNameCheck\n (_basicCustomElementTest(lcTag) && \n ((CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag)) ||\n (C USTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM _ELEMENT_HANDLING.tagNameCheck(lcTag))) &&\n ((CUSTOM_ELEMENT_HANDLING. attributeNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_H ANDLING.attributeNameCheck, lcName)) ||\n (CUSTOM_ELEMENT_HANDLING.at tributeNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.a ttributeNameCheck(lcName)))) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user h as configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n (lcName === 'is' &&\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements &&\n ((CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n reg ExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value)) ||\n (CUSTOM_EL EMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT _HANDLING.tagNameCheck(value))))\n ) {\n // If user has supplied a r egexp or function in CUSTOM_ELEMENT_HANDLING.tagNameCheck, we need to also allow derived custom elements using the same tagName test.\n // Additionally, we need to allow attributes passing the CUSTOM_ELEMENT_HANDLING.attributeNameChe ck user has configured, as custom elements can define these at their own discret ion.\n } else {\n return false;\n }\n /* Check value is sa fe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[ lcName]) {\n // This attribute is safe\n /* Check no script, data or u nknown possibly unsafe URI\n unless we know URI values are safe for that attribute */\n } else if (\n regExpTest(IS_ALLOWED_URI, stringReplace(va lue, ATTR_WHITESPACE, ''))\n ) {\n // This attribute is safe\n /* K eep image data URIs alive if src/xlink:href is allowed */\n /* Further prev ent gadget XSS for dynamically built script tags */\n } else if (\n (lcN ame === 'src' || lcName === 'xlink:href' || lcName === 'href') &&\n lcTag ! == 'script' &&\n stringIndexOf(value, 'data:') === 0 &&\n DATA_URI_TAG S[lcTag]\n ) {\n // This attribute is safe\n /* Allow unknown proto cols: This provides support for links that\n are handled by protocol hand lers which may be unknown ahead of\n time, e.g. fb:, spotify: */\n } e lse if (\n ALLOW_UNKNOWN_PROTOCOLS &&\n !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))\n ) {\n // This attribute is safe\n /* Check for binary attributes */\n // eslint-disable-next-lin e no-negated-condition\n } else if (!value) {\n // Binary attributes are safe at this point\n /* Anything else, presume unsafe, do not add it back */\n } else {\n return false;\n }\n\n return true;\n };\n\n /**\ n * _basicCustomElementCheck\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see h ttps://github.com/sindresorhus/validate-element-name\n * @param {string} tagNa me name of the tag of the node to sanitize\n */\n const _basicCustomElementTe st = function (tagName) {\n return tagName.indexOf('-') > 0;\n };\n\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName \n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n const _sanitizeAttributes = function (c urrentNode) {\n let attr;\n let value;\n let lcName;\n let l;\n / * Execute a hook if present */\n _executeHook('beforeSanitizeAttributes', cur rentNode, null);\n\n const { attributes } = currentNode;\n\n /* Check if w e have attributes; if not we might have a text node */\n if (!attributes) {\n return;\n }\n\n const hookEvent = {\n attrName: '',\n attr Value: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n } ;\n l = attributes.length;\n\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n attr = attributes[l];\n const { name, namespaceURI } = attr;\n value = name === 'value' ? attr.value : s tringTrim(attr.value);\n lcName = transformCaseFunc(name);\n\n /* Exec ute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.at trValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAtt r = undefined; // Allows developers to see this is a property they can set\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n\n /* Remove a ttribute */\n _removeAttribute(name, currentNode);\n\n /* Did the hook s approve of the attribute? */\n if (!hookEvent.keepAttr) {\n contin ue;\n }\n\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAtt ribute(name, currentNode);\n continue;\n }\n\n /* Sanitize attr ibute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n v alue = stringReplace(value, MUSTACHE_EXPR, ' ');\n value = stringReplace( value, ERB_EXPR, ' ');\n value = stringReplace(value, TMPLIT_EXPR, ' ');\ n }\n\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n\n /* Full DOM Clobbering pr otection via namespace isolation,\n * Prefix id and name attributes with ` user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n\n // Prefix the value and later r e-create the attribute with the sanitized value\n value = SANITIZE_NAMED_ PROPS_PREFIX + value;\n }\n\n /* Handle attributes that require Truste d Types */\n if (\n trustedTypesPolicy &&\n typeof trustedTyp es === 'object' &&\n typeof trustedTypes.getAttributeType === 'function'\ n ) {\n if (namespaceURI) {\n /* Namespaces are not yet sup ported, see https://bugs.chromium.org/p/chromium/issues/detail?id=1305293 */\n } else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n value = trustedTypesPolicy.cre ateHTML(value);\n break;\n case 'TrustedScriptURL':\n value = trustedTypesPolicy.createScriptURL(value);\n bre ak;\n default:\n break;\n }\n }\n } \n\n /* Handle invalid data-* attribute set by try-catching it */\n tr y {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespace URI, name, value);\n } else {\n /* Fallback to setAttribute() fo r browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.s etAttribute(name, value);\n }\n\n arrayPop(DOMPurify.removed);\n } catch (_) {}\n }\n\n /* Execute a hook if present */\n _executeHo ok('afterSanitizeAttributes', currentNode, null);\n };\n\n /**\n * _sanitize ShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recurs ively\n */\n const _sanitizeShadowDOM = function (fragment) {\n let shadow Node;\n const shadowIterator = _createIterator(fragment);\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeShadowDOM', fragment, null) ;\n\n while ((shadowNode = shadowIterator.nextNode())) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, nul l);\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(shado wNode)) {\n continue;\n }\n\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeSha dowDOM(shadowNode.content);\n }\n\n /* Check attributes, sanitize if n ecessary */\n _sanitizeAttributes(shadowNode);\n }\n\n /* Execute a h ook if present */\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n\n /**\n * Sanitize\n * Public method providing core sanitation funct ionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} configuration object\n */\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty, cfg = {}) {\n let body;\n let impo rtedNode;\n let currentNode;\n let returnNode;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong t ype if\n the user has requested a DOM object rather than a string */\n I S_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '<!-->';\n }\n\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== ' string' && !_isNode(dirty)) {\n // eslint-disable-next-line no-negated-cond ition\n if (typeof dirty.toString !== 'function') {\n throw typeErro rCreate('toString is not a function');\n } else {\n dirty = dirty.to String();\n if (typeof dirty !== 'string') {\n throw typeErrorCr eate('dirty is not a string, aborting');\n }\n }\n }\n\n /* Re turn dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n D OMPurify.removed = [];\n\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root no des */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(d irty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate(\n 'root node is forbidden and cannot be sanitized in-place'\n );\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty docum ent to avoid\n elements being stripped by the parser */\n body = _i nitDocument('<!---->');\n importedNode = body.ownerDocument.importNode(dirt y, true);\n if (importedNode.nodeType === 1 && importedNode.nodeName === 'B ODY') {\n /* Node is already a body, use as is */\n body = importe dNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = imp ortedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-d om-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (\n !RETURN_ DOM &&\n !SAFE_FOR_TEMPLATES &&\n !WHOLE_DOCUMENT &&\n // e slint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1\n ) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE\n ? trustedTypesPolicy.createHTML(dirty)\n : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n } \n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (bod y && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get no de iterator */\n const nodeIterator = _createIterator(IN_PLACE ? dirty : body );\n\n /* Now start iterating over the created document */\n while ((curre ntNode = nodeIterator.nextNode())) {\n /* Sanitize tags and elements */\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n\n / * Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n \n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes (currentNode);\n }\n\n /* If we sanitized `dirty` in-place, return it. */\ n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized stri ng or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n r eturnNode = createDocumentFragment.call(body.ownerDocument);\n\n while (b ody.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node -append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmod) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HT MLFormElement), this is safe\n in theory but we would rather not risk a nother attack vector.\n The state that is cloned by importNode() is exp licitly defined\n by the specs.\n */\n returnNode = impor tNode.call(originalDocument, returnNode, true);\n }\n\n return returnN ode;\n }\n\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.i nnerHTML;\n\n /* Serialize doctype if allowed */\n if (\n WHOLE_DOCUM ENT &&\n ALLOWED_TAGS['!doctype'] &&\n body.ownerDocument &&\n bo dy.ownerDocument.doctype &&\n body.ownerDocument.doctype.name &&\n reg ExpTest(EXPRESSIONS.DOCTYPE_NAME, body.ownerDocument.doctype.name)\n ) {\n serializedHTML =\n '<!DOCTYPE ' + body.ownerDocument.doctype.name + '> \\n' + serializedHTML;\n }\n\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n serializedHTML = stringReplace(serializedHT ML, MUSTACHE_EXPR, ' ');\n serializedHTML = stringReplace(serializedHTML, E RB_EXPR, ' ');\n serializedHTML = stringReplace(serializedHTML, TMPLIT_EXPR , ' ');\n }\n\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE\n ? trustedTypesPolicy.createHTML(serializedHTML)\n : serializedHTML;\n };\n\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n DOMPurify.setConfig = fun ction (cfg) {\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n D OMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false ;\n };\n\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValid Attribute\n *\n * @param {string} tag Tag name of containing element.\n * @param {string} attr Attribute name.\n * @param {string} value Attribute va lue.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, return s false.\n */\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n /**\n * AddHook\n * Public method to add DOMPurify hooks\ n *\n * @param {String} entryPoint entry point for the hook to add\n * @pa ram {Function} hookFunction function to execute\n */\n DOMPurify.addHook = fu nction (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops i t from the stack of hooks if more are present)\n *\n * @param {String} entry Point entry point for the hook to remove\n * @return {Function} removed(popped ) hook\n */\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[e ntryPoint]) {\n return arrayPop(hooks[entryPoint]);\n }\n };\n\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given en tryPoint\n *\n * @param {String} entryPoint entry point for the hooks to re move\n */\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[en tryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * RemoveAl lHooks\n * Public method to remove all DOMPurify hooks\n *\n */\n DOMPuri fy.removeAllHooks = function () {\n hooks = {};\n };\n\n return DOMPurify;\ n}\n\nexport default createDOMPurify();\n"],"names":["entries","Object","setProt otypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","seal", "create","Reflect","apply","construct","fun","thisValue","args","x","Func","arra yForEach","unapply","Array","prototype","forEach","arrayPop","pop","arrayPush"," push","stringToLowerCase","String","toLowerCase","stringToString","toString","st ringMatch","match","stringReplace","replace","stringIndexOf","indexOf","stringTr im","trim","regExpTest","RegExp","test","typeErrorCreate","unconstruct","TypeErr or","func","thisArg","addToSet","set","array","transformCaseFunc","l","length"," element","lcElement","clone","object","newObject","property","value","lookupGett er","prop","desc","get","fallbackValue","console","warn","html","svg","svgFilter s","svgDisallowed","mathMl","mathMlDisallowed","text","xml","MUSTACHE_EXPR","ERB _EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA ","ATTR_WHITESPACE","DOCTYPE_NAME","getGlobal","window","_createTrustedTypesPoli cy","trustedTypes","document","createPolicy","suffix","ATTR_NAME","currentScript ","hasAttribute","getAttribute","policyName","createHTML","createScriptURL","scr iptUrl","_","createDOMPurify","DOMPurify","root","version","VERSION","removed"," nodeType","isSupported","originalDocument","DocumentFragment","HTMLTemplateEleme nt","Node","Element","NodeFilter","NamedNodeMap","MozNamedAttrMap","HTMLFormElem ent","DOMParser","ElementPrototype","cloneNode","getNextSibling","getChildNodes" ,"getParentNode","template","createElement","content","ownerDocument","trustedTy pesPolicy","emptyHTML","implementation","createNodeIterator","createDocumentFrag ment","getElementsByTagName","importNode","hooks","createHTMLDocument","EXPRESSI ONS","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","TAGS","ALLOWED_ATTR","DEFAULT_ALLOWE D_ATTR","ATTRS","CUSTOM_ELEMENT_HANDLING","tagNameCheck","writable","configurabl e","enumerable","attributeNameCheck","allowCustomizedBuiltInElements","FORBID_TA GS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS", "ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","WHOLE_DOCUMENT","SET_CONFIG","F ORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DO M","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE ","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DE FAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML _NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOW ED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","PARSER_MEDIA_TYPE","SUPPORTED_PARSE R_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","CONFIG","formElement","isRegexOrFunc tion","testValue","Function","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ADD_DATA_ URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","table","tbody","MATHML_TEX T_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS"," ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","parent","tagName","names paceURI","parentTagName","Boolean","_forceRemove","node","parentNode","removeChi ld","remove","_removeAttribute","name","attribute","getAttributeNode","from","re moveAttribute","setAttribute","_initDocument","dirty","doc","leadingWhitespace", "matches","dirtyPayload","parseFromString","documentElement","createDocument","i nnerHTML","body","insertBefore","createTextNode","childNodes","call","_createIte rator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","_isClobbered","elm","nodeName" ,"textContent","attributes","hasChildNodes","_isNode","_executeHook","entryPoint ","currentNode","data","hook","_sanitizeElements","allowedTags","firstElementChi ld","_basicCustomElementTest","childCount","i","_isValidAttribute","lcTag","lcNa me","_sanitizeAttributes","attr","hookEvent","attrName","attrValue","keepAttr"," allowedAttributes","forceKeepAttr","undefined","getAttributeType","setAttributeN S","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","nextNode","san itize","importedNode","returnNode","appendChild","firstChild","nodeIterator","sh adowroot","shadowrootmod","serializedHTML","outerHTML","doctype","setConfig","cl earConfig","isValidAttribute","tag","addHook","hookFunction","removeHook","remov eHooks","removeAllHooks"],"mappings":"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 AAe,EAA9B;;;;;;;;"} {"version":3,"file":"purify.js","sources":["../src/utils.js","../src/tags.js",". ./src/attrs.js","../src/regexp.js","../src/purify.js"],"sourcesContent":["const {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnProper tyDescriptor,\n} = Object;\n\nlet { freeze, seal, create } = Object; // eslint-d isable-line import/no-mutable-exports\nlet { apply, construct } = typeof Reflect !== 'undefined' && Reflect;\n\nif (!apply) {\n apply = function (fun, thisValu e, args) {\n return fun.apply(thisValue, args);\n };\n}\n\nif (!freeze) {\n freeze = function (x) {\n return x;\n };\n}\n\nif (!seal) {\n seal = funct ion (x) {\n return x;\n };\n}\n\nif (!construct) {\n construct = function ( Func, args) {\n return new Func(...args);\n };\n}\n\nconst arrayForEach = un apply(Array.prototype.forEach);\nconst arrayIndexOf = unapply(Array.prototype.in dexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapp ly(Array.prototype.push);\nconst arraySlice = unapply(Array.prototype.slice);\n\ nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringT oString = unapply(String.prototype.toString);\nconst stringMatch = unapply(Strin g.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nc onst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unap ply(String.prototype.trim);\n\nconst regExpTest = unapply(RegExp.prototype.test) ;\n\nconst typeErrorCreate = unconstruct(TypeError);\n\nexport function unapply( func) {\n return (thisArg, ...args) => apply(func, thisArg, args);\n}\n\nexport function unconstruct(func) {\n return (...args) => construct(func, args);\n}\n \n/* Add properties to a lookup table */\nexport function addToSet(set, array, t ransformCaseFunc) {\n transformCaseFunc = transformCaseFunc ? transformCaseFunc : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy chec ks like Boolean(set.constructor)\n // independent of any properties defined o n Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n}\n\n/* Shallow clone an object */\nexport function clone(object) {\n const newObject = create(null);\n\n for (const [property, value] of entri es(object)) {\n newObject[property] = value;\n }\n\n return newObject;\n}\n \n/* This method automatically checks if the prop is function\n * or getter and behaves accordingly. */\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (d esc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\ n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function fallb ackValue(element) {\n console.warn('fallback value for', element);\n retur n null;\n }\n\n return fallbackValue;\n}\n\nexport {\n // Array\n arrayForEa ch,\n arrayIndexOf,\n arrayPop,\n arrayPush,\n arraySlice,\n // Object\n e ntries,\n freeze,\n getPrototypeOf,\n getOwnPropertyDescriptor,\n isFrozen,\ n setPrototypeOf,\n seal,\n // RegExp\n regExpTest,\n // String\n stringIn dexOf,\n stringMatch,\n stringReplace,\n stringToLowerCase,\n stringToString ,\n stringTrim,\n // Errors\n typeErrorCreate,\n // Other\n lookupGetter,\n };\n","import { freeze } from './utils.js';\n\nexport const html = freeze([\n ' a',\n 'abbr',\n 'acronym',\n 'address',\n 'area',\n 'article',\n 'aside',\ n 'audio',\n 'b',\n 'bdi',\n 'bdo',\n 'big',\n 'blink',\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n 'center',\n 'cite ',\n 'code',\n 'col',\n 'colgroup',\n 'content',\n 'data',\n 'datalist',\n 'dd',\n 'decorator',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n 'dir', \n 'div',\n 'dl',\n 'dt',\n 'element',\n 'em',\n 'fieldset',\n 'figcaptio n',\n 'figure',\n 'font',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hgroup',\n 'hr',\n 'html ',\n 'i',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'map',\n 'mark',\n 'marquee',\n 'menu',\n 'menuitem',\n 'meter',\n 'nav',\n 'nobr',\n 'ol',\n 'optgroup',\n 'option',\n 'output' ,\n 'p',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'r uby',\n 's',\n 'samp',\n 'section',\n 'select',\n 'shadow',\n 'small',\n 'source',\n 'spacer',\n 'span',\n 'strike',\n 'strong',\n 'style',\n 'sub' ,\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'te xtarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'track',\n 'tt ',\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n]);\n\n// SVG\nexport const svg = freeze([\n 'svg',\n 'a',\n 'altglyph',\n 'altglyphdef',\n 'altglyphi tem',\n 'animatecolor',\n 'animatemotion',\n 'animatetransform',\n 'circle', \n 'clippath',\n 'defs',\n 'desc',\n 'ellipse',\n 'filter',\n 'font',\n ' g',\n 'glyph',\n 'glyphref',\n 'hkern',\n 'image',\n 'line',\n 'lineargrad ient',\n 'marker',\n 'mask',\n 'metadata',\n 'mpath',\n 'path',\n 'pattern ',\n 'polygon',\n 'polyline',\n 'radialgradient',\n 'rect',\n 'stop',\n 's tyle',\n 'switch',\n 'symbol',\n 'text',\n 'textpath',\n 'title',\n 'tref' ,\n 'tspan',\n 'view',\n 'vkern',\n]);\n\nexport const svgFilters = freeze([\ n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDista ntLight',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFuncR',\ n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMorphol ogy',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotLight ',\n 'feTile',\n 'feTurbulence',\n]);\n\n// List of SVG elements that are disa llowed by default.\n// We still need to know them so that we can do namespace\n/ / checks properly in case one wants to add them to\n// allow-list.\nexport const svgDisallowed = freeze([\n 'animate',\n 'color-profile',\n 'cursor',\n 'dis card',\n 'fedropshadow',\n 'font-face',\n 'font-face-format',\n 'font-face-n ame',\n 'font-face-src',\n 'font-face-uri',\n 'foreignobject',\n 'hatch',\n 'hatchpath',\n 'mesh',\n 'meshgradient',\n 'meshpatch',\n 'meshrow',\n 'mi ssing-glyph',\n 'script',\n 'set',\n 'solidcolor',\n 'unknown',\n 'use',\n] );\n\nexport const mathMl = freeze([\n 'math',\n 'menclose',\n 'merror',\n ' mfenced',\n 'mfrac',\n 'mglyph',\n 'mi',\n 'mlabeledtr',\n 'mmultiscripts', \n 'mn',\n 'mo',\n 'mover',\n 'mpadded',\n 'mphantom',\n 'mroot',\n 'mrow ',\n 'ms',\n 'mspace',\n 'msqrt',\n 'mstyle',\n 'msub',\n 'msup',\n 'msub sup',\n 'mtable',\n 'mtd',\n 'mtext',\n 'mtr',\n 'munder',\n 'munderover', \n 'mprescripts',\n]);\n\n// Similarly to SVG, we want to know all MathML eleme nts,\n// even those that we disallow by default.\nexport const mathMlDisallowed = freeze([\n 'maction',\n 'maligngroup',\n 'malignmark',\n 'mlongdiv',\n 'm scarries',\n 'mscarry',\n 'msgroup',\n 'mstack',\n 'msline',\n 'msrow',\n 'semantics',\n 'annotation',\n 'annotation-xml',\n 'mprescripts',\n 'none',\ n]);\n\nexport const text = freeze(['#text']);\n","import { freeze } from './uti ls.js';\n\nexport const html = freeze([\n 'accept',\n 'action',\n 'align',\n 'alt',\n 'autocapitalize',\n 'autocomplete',\n 'autopictureinpicture',\n 'a utoplay',\n 'background',\n 'bgcolor',\n 'border',\n 'capture',\n 'cellpadd ing',\n 'cellspacing',\n 'checked',\n 'cite',\n 'class',\n 'clear',\n 'col or',\n 'cols',\n 'colspan',\n 'controls',\n 'controlslist',\n 'coords',\n 'crossorigin',\n 'datetime',\n 'decoding',\n 'default',\n 'dir',\n 'disable d',\n 'disablepictureinpicture',\n 'disableremoteplayback',\n 'download',\n 'draggable',\n 'enctype',\n 'enterkeyhint',\n 'face',\n 'for',\n 'headers', \n 'height',\n 'hidden',\n 'high',\n 'href',\n 'hreflang',\n 'id',\n 'inp utmode',\n 'integrity',\n 'ismap',\n 'kind',\n 'label',\n 'lang',\n 'list' ,\n 'loading',\n 'loop',\n 'low',\n 'max',\n 'maxlength',\n 'media',\n 'm ethod',\n 'min',\n 'minlength',\n 'multiple',\n 'muted',\n 'name',\n 'nonc e',\n 'noshade',\n 'novalidate',\n 'nowrap',\n 'open',\n 'optimum',\n 'pat tern',\n 'placeholder',\n 'playsinline',\n 'poster',\n 'preload',\n 'pubdat e',\n 'radiogroup',\n 'readonly',\n 'rel',\n 'required',\n 'rev',\n 'rever sed',\n 'role',\n 'rows',\n 'rowspan',\n 'spellcheck',\n 'scope',\n 'selec ted',\n 'shape',\n 'size',\n 'sizes',\n 'span',\n 'srclang',\n 'start',\n 'src',\n 'srcset',\n 'step',\n 'style',\n 'summary',\n 'tabindex',\n 'tit le',\n 'translate',\n 'type',\n 'usemap',\n 'valign',\n 'value',\n 'width' ,\n 'xmlns',\n 'slot',\n]);\n\nexport const svg = freeze([\n 'accent-height', \n 'accumulate',\n 'additive',\n 'alignment-baseline',\n 'ascent',\n 'attri butename',\n 'attributetype',\n 'azimuth',\n 'basefrequency',\n 'baseline-sh ift',\n 'begin',\n 'bias',\n 'by',\n 'class',\n 'clip',\n 'clippathunits', \n 'clip-path',\n 'clip-rule',\n 'color',\n 'color-interpolation',\n 'color -interpolation-filters',\n 'color-profile',\n 'color-rendering',\n 'cx',\n ' cy',\n 'd',\n 'dx',\n 'dy',\n 'diffuseconstant',\n 'direction',\n 'display ',\n 'divisor',\n 'dur',\n 'edgemode',\n 'elevation',\n 'end',\n 'fill',\n 'fill-opacity',\n 'fill-rule',\n 'filter',\n 'filterunits',\n 'flood-color ',\n 'flood-opacity',\n 'font-family',\n 'font-size',\n 'font-size-adjust',\ n 'font-stretch',\n 'font-style',\n 'font-variant',\n 'font-weight',\n 'fx' ,\n 'fy',\n 'g1',\n 'g2',\n 'glyph-name',\n 'glyphref',\n 'gradientunits', \n 'gradienttransform',\n 'height',\n 'href',\n 'id',\n 'image-rendering',\ n 'in',\n 'in2',\n 'k',\n 'k1',\n 'k2',\n 'k3',\n 'k4',\n 'kerning',\n 'keypoints',\n 'keysplines',\n 'keytimes',\n 'lang',\n 'lengthadjust',\n 'l etter-spacing',\n 'kernelmatrix',\n 'kernelunitlength',\n 'lighting-color',\n 'local',\n 'marker-end',\n 'marker-mid',\n 'marker-start',\n 'markerheight ',\n 'markerunits',\n 'markerwidth',\n 'maskcontentunits',\n 'maskunits',\n 'max',\n 'mask',\n 'media',\n 'method',\n 'mode',\n 'min',\n 'name',\n ' numoctaves',\n 'offset',\n 'operator',\n 'opacity',\n 'order',\n 'orient',\ n 'orientation',\n 'origin',\n 'overflow',\n 'paint-order',\n 'path',\n 'p athlength',\n 'patterncontentunits',\n 'patterntransform',\n 'patternunits',\ n 'points',\n 'preservealpha',\n 'preserveaspectratio',\n 'primitiveunits',\ n 'r',\n 'rx',\n 'ry',\n 'radius',\n 'refx',\n 'refy',\n 'repeatcount',\n 'repeatdur',\n 'restart',\n 'result',\n 'rotate',\n 'scale',\n 'seed',\n 'shape-rendering',\n 'specularconstant',\n 'specularexponent',\n 'spreadmeth od',\n 'startoffset',\n 'stddeviation',\n 'stitchtiles',\n 'stop-color',\n 'stop-opacity',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-lineca p',\n 'stroke-linejoin',\n 'stroke-miterlimit',\n 'stroke-opacity',\n 'strok e',\n 'stroke-width',\n 'style',\n 'surfacescale',\n 'systemlanguage',\n 't abindex',\n 'targetx',\n 'targety',\n 'transform',\n 'transform-origin',\n 'text-anchor',\n 'text-decoration',\n 'text-rendering',\n 'textlength',\n 't ype',\n 'u1',\n 'u2',\n 'unicode',\n 'values',\n 'viewbox',\n 'visibility' ,\n 'version',\n 'vert-adv-y',\n 'vert-origin-x',\n 'vert-origin-y',\n 'wid th',\n 'word-spacing',\n 'wrap',\n 'writing-mode',\n 'xchannelselector',\n 'ychannelselector',\n 'x',\n 'x1',\n 'x2',\n 'xmlns',\n 'y',\n 'y1',\n 'y 2',\n 'z',\n 'zoomandpan',\n]);\n\nexport const mathMl = freeze([\n 'accent', \n 'accentunder',\n 'align',\n 'bevelled',\n 'close',\n 'columnsalign',\n 'columnlines',\n 'columnspan',\n 'denomalign',\n 'depth',\n 'dir',\n 'displ ay',\n 'displaystyle',\n 'encoding',\n 'fence',\n 'frame',\n 'height',\n ' href',\n 'id',\n 'largeop',\n 'length',\n 'linethickness',\n 'lspace',\n ' lquote',\n 'mathbackground',\n 'mathcolor',\n 'mathsize',\n 'mathvariant',\n 'maxsize',\n 'minsize',\n 'movablelimits',\n 'notation',\n 'numalign',\n 'open',\n 'rowalign',\n 'rowlines',\n 'rowspacing',\n 'rowspan',\n 'rspace' ,\n 'rquote',\n 'scriptlevel',\n 'scriptminsize',\n 'scriptsizemultiplier',\ n 'selection',\n 'separator',\n 'separators',\n 'stretchy',\n 'subscriptshi ft',\n 'supscriptshift',\n 'symmetric',\n 'voffset',\n 'width',\n 'xmlns',\ n]);\n\nexport const xml = freeze([\n 'xlink:href',\n 'xml:id',\n 'xlink:titl e',\n 'xml:space',\n 'xmlns:xlink',\n]);\n","import { seal } from './utils.js' ;\n\n// eslint-disable-next-line unicorn/better-regex\nexport const MUSTACHE_EXP R = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection reg ex for SAFE_FOR_TEMPLATES mode\nexport const ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\ W]*%>/gm);\nexport const TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\nexport const D ATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-use less-escape\nexport const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disabl e-line no-useless-escape\nexport const IS_ALLOWED_URI = seal(\n /^(?:(?:(?:f|ht )tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i / / eslint-disable-line no-useless-escape\n);\nexport const IS_SCRIPT_OR_DATA = se al(/^(?:\\w+script|data):/i);\nexport const ATTR_WHITESPACE = seal(\n /[\\u0000 -\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable- line no-control-regex\n);\nexport const DOCTYPE_NAME = seal(/^html$/i);\n","impo rt * as TAGS from './tags.js';\nimport * as ATTRS from './attrs.js';\nimport * a s EXPRESSIONS from './regexp.js';\nimport {\n addToSet,\n clone,\n entries,\n freeze,\n arrayForEach,\n arrayPop,\n arrayPush,\n stringMatch,\n stringR eplace,\n stringToLowerCase,\n stringToString,\n stringIndexOf,\n stringTrim ,\n regExpTest,\n typeErrorCreate,\n lookupGetter,\n} from './utils.js';\n\nc onst getGlobal = () => (typeof window === 'undefined' ? null : window);\n\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The pol icy factory.\n * @param {Document} document The document object (to determine po licy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported).\n */\nconst _createTrustedTypesPolicy = function (trustedTypes, document) {\n if (\n typeof trustedTypes !== 'objec t' ||\n typeof trustedTypes.createPolicy !== 'function'\n ) {\n return nu ll;\n }\n\n // Allow the callers to control the unique policy name\n // by ad ding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Pol icy creation with duplicate names throws in Trusted Types.\n let suffix = null; \n const ATTR_NAME = 'data-tt-policy-suffix';\n if (\n document.currentScri pt &&\n document.currentScript.hasAttribute(ATTR_NAME)\n ) {\n suffix = d ocument.currentScript.getAttribute(ATTR_NAME);\n }\n\n const policyName = 'dom purify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.crea tePolicy(policyName, {\n createHTML(html) {\n return html;\n }, \n createScriptURL(scriptUrl) {\n return scriptUrl;\n },\n } );\n } catch (_) {\n // Policy creation failed (most likely another DOMPurif y script has\n // already run). Skip creating the policy, as this will only c ause errors\n // if TT are enforced.\n console.warn(\n 'TrustedTypes policy ' + policyName + ' could not be created.'\n );\n return null;\n }\ n};\n\nfunction createDOMPurify(window = getGlobal()) {\n const DOMPurify = (ro ot) => createDOMPurify(root);\n\n /**\n * Version label, exposed for easier c hecks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = VERS ION;\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\ n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n\n if (! window || !window.document || window.document.nodeType !== 9) {\n // Not runn ing in a browser, provide a factory function\n // so that you can pass your o wn Window\n DOMPurify.isSupported = false;\n\n return DOMPurify;\n }\n\n const originalDocument = window.document;\n\n let { document } = window;\n co nst {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\ n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrM ap,\n HTMLFormElement,\n DOMParser,\n trustedTypes,\n } = window;\n\n const ElementPrototype = Element.prototype;\n\n const cloneNode = lookupGetter (ElementPrototype, 'cloneNode');\n const getNextSibling = lookupGetter(ElementP rototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype , 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parent Node');\n\n // As per issue #47, the web-components registry is inherited by a\ n // new document created via createHTMLDocument. As per the spec\n // (http:/ /w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // docu ment, so we use that as our parent document to ensure nothing\n // is inherited .\n if (typeof HTMLTemplateElement === 'function') {\n const template = docu ment.createElement('template');\n if (template.content && template.content.ow nerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n const trustedTypesPolicy = _createTrustedTypesPolicy(\n trustedTypes,\n originalDocument\n );\n const emptyHTML = trustedTypesPolicy ? trustedTypesPol icy.createHTML('') : '';\n\n const {\n implementation,\n createNodeIterat or,\n createDocumentFragment,\n getElementsByTagName,\n } = document;\n const { importNode } = originalDocument;\n\n let hooks = {};\n\n /**\n * Exp ose whether this browser supports running the full DOMPurify.\n */\n DOMPurif y.isSupported =\n typeof entries === 'function' &&\n typeof getParentNode === 'function' &&\n implementation &&\n typeof implementation.createHTMLDo cument !== 'undefined';\n\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMP LIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHIT ESPACE,\n } = EXPRESSIONS;\n\n let { IS_ALLOWED_URI } = EXPRESSIONS;\n\n /**\ n * We consider the elements and attributes below to be safe. Ideally\n * do n't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allow ed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [\n ...TAGS.html,\n ...TAGS.svg,\n ...TAGS.svgFilters,\n ...TAGS.mathMl,\n ...TAGS.text,\n ]);\n\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [\n . ..ATTRS.html,\n ...ATTRS.svg,\n ...ATTRS.mathMl,\n ...ATTRS.xml,\n ]); \n\n /*\n * Configure how DOMPUrify should handle custom elements and their a ttributes as well as customized built-in elements.\n * @property {RegExp|Funct ion|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` ( disallow any custom elements)\n * @property {RegExp|Function|null} attributeNa meCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any at tributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltIn Elements allow custom elements derived from built-ins if they pass CUSTOM_ELEMEN T_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(\n Object.create(null, {\n tagNameCheck: {\n writa ble: true,\n configurable: false,\n enumerable: true,\n val ue: null,\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null,\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n co nfigurable: false,\n enumerable: true,\n value: false,\n },\n })\n );\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (override s ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n\n /* Decide if ARIA at tributes are okay */\n let ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom dat a attributes are okay */\n let ALLOW_DATA_ATTR = true;\n\n /* Decide if unknow n protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Decide i f self-closing tags in attributes are allowed.\n * Usually removed due to a mX SS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n\ n /* Decide if document with <html>... should be returned */\n let WHOLE_DOCUM ENT = false;\n\n /* Track whether config is already set on this instance of DOM Purify. */\n let SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style , script) must be children of\n * document.body. By default, browsers might mo ve them to document.head */\n let FORCE_BODY = false;\n\n /* Decide if a DOM ` HTMLBodyElement` should be returned, instead of a html\n * string (or a Truste dHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabl ed a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false ;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a ht ml\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n\n /* Try to return a Trusted Type object ins tead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM c lobbering attacks?\n * This sanitizes markups named with colliding, clobberabl e built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Windo w (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-C hild Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5) \n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is impleme nted by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_N AMED_PROPS_PREFIX = 'user-content-';\n\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitiz e(), then performs sanitization in-place instead\n * of importing it into a ne w Document and returning a sanitized copy */\n let IN_PLACE = false;\n\n /* Al low usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTEN TS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, [\n 'annotation-xm l',\n 'audio',\n 'colgroup',\n 'desc',\n 'foreignobject',\n 'head ',\n 'iframe',\n 'math',\n 'mi',\n 'mn',\n 'mo',\n 'ms',\n 'mtext',\n 'noembed',\n 'noframes',\n 'noscript',\n 'plaintext',\n 'script',\n 'style',\n 'svg',\n 'template',\n 'thead',\n 'title ',\n 'video',\n 'xmp',\n ]);\n\n /* Tags that are safe for data: URIs */ \n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, [\n 'audio',\n 'video',\n 'img',\n 'source',\n 'image',\n 'track', \n ]);\n\n /* Attributes safe for values like \"javascript:\" */\n let URI_SA FE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, [\n 'alt',\n 'class',\n 'for',\n 'id',\n 'label',\n 'name',\n 'pa ttern',\n 'placeholder',\n 'role',\n 'summary',\n 'title',\n 'val ue',\n 'style',\n 'xmlns',\n ]);\n\n const MATHML_NAMESPACE = 'http://ww w.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg ';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document name space */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DE FAULT_ALLOWED_NAMESPACES = addToSet(\n {},\n [MATHML_NAMESPACE, SVG_NAMESP ACE, HTML_NAMESPACE],\n stringToString\n );\n\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE;\n const SUPPORTED_PARSER_MEDIA_TYPES = [ 'application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'tex t/html';\n let transformCaseFunc;\n\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n\n /* Ideally, do not touch anything below thi s line */\n /* ______________________________________________ */\n\n const for mElement = document.createElement('form');\n\n const isRegexOrFunction = functi on (testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg op tional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function (cfg) {\n if (CONFIG && CONFIG === cfg) {\n retu rn;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n\n /* Shield configur ation object from prototype pollution */\n cfg = clone(cfg);\n\n PARSER_ME DIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUP PORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1\n ? (PARS ER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE)\n : (PARSER_MEDIA_TYPE = cfg.P ARSER_MEDIA_TYPE);\n\n // HTML tags and attributes are not case-sensitive, co nverting to lowercase. Keeping XHTML as is.\n transformCaseFunc =\n PARS ER_MEDIA_TYPE === 'application/xhtml+xml'\n ? stringToString\n : s tringToLowerCase;\n\n /* Set configuration parameters */\n ALLOWED_TAGS =\ n 'ALLOWED_TAGS' in cfg\n ? addToSet({}, cfg.ALLOWED_TAGS, transform CaseFunc)\n : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR =\n 'ALLOWED_A TTR' in cfg\n ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc)\n : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES =\n 'ALLOWED_NAMESPACES' in cfg\n ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString)\n : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES =\n 'ADD_URI_SAFE_AT TR' in cfg\n ? addToSet(\n clone(DEFAULT_URI_SAFE_ATTRIBUTES), // eslint-disable-line indent\n cfg.ADD_URI_SAFE_ATTR, // eslint-dis able-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\n : DEFAULT_URI_SAFE_ATTRIBUTES; \n DATA_URI_TAGS =\n 'ADD_DATA_URI_TAGS' in cfg\n ? addToSet(\n clone(DEFAULT_DATA_URI_TAGS), // eslint-disable-line indent\n cfg.ADD_DATA_URI_TAGS, // eslint-disable-line indent\n transformCa seFunc // eslint-disable-line indent\n ) // eslint-disable-line indent\ n : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS =\n 'FORBID_CONTENTS ' in cfg\n ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc)\n : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS =\n 'FORBID_TAGS' in cfg\n ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc)\n : {};\n FORB ID_ATTR =\n 'FORBID_ATTR' in cfg\n ? addToSet({}, cfg.FORBID_ATTR, t ransformCaseFunc)\n : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg .USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default tr ue\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Defau lt false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // D efault false\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false \n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRA GMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_T YPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.F ORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== fa lse; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || fal se; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI = cfg.ALLOWED_URI_REGEXP || EXPRESSIONS.IS_ALLOWED_URI;\n NAMESPACE = cfg.NA MESPACE || HTML_NAMESPACE;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HAN DLING || {};\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n isRegexOrFun ction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)\n ) {\n CUSTOM_ELEMENT_H ANDLING.tagNameCheck =\n cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n } \n\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n isRegexOrFunction(cfg. CUSTOM_ELEMENT_HANDLING.attributeNameCheck)\n ) {\n CUSTOM_ELEMENT_HANDL ING.attributeNameCheck =\n cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck ;\n }\n\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n typeof cfg.CUS TOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements ===\n 'boolean'\n ) {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements =\n cfg .CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n\n if (SAFE_ FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FR AGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, [...TAGS.text]);\n A LLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALL OWED_TAGS, TAGS.html);\n addToSet(ALLOWED_ATTR, ATTRS.html);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, TAGS.svg) ;\n addToSet(ALLOWED_ATTR, ATTRS.svg);\n addToSet(ALLOWED_ATTR, AT TRS.xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n add ToSet(ALLOWED_TAGS, TAGS.svgFilters);\n addToSet(ALLOWED_ATTR, ATTRS.svg) ;\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n\n if (USE_PROFILES .mathMl === true) {\n addToSet(ALLOWED_TAGS, TAGS.mathMl);\n addTo Set(ALLOWED_ATTR, ATTRS.mathMl);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = cl one(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transf ormCaseFunc);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFA ULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n\n if (cf g.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATT R, transformCaseFunc);\n }\n\n if (cfg.FORBID_CONTENTS) {\n if (FORBI D_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBI D_CONTENTS);\n }\n\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, tr ansformCaseFunc);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']); \n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #2 86, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody ']);\n delete FORBID_TAGS.tbody;\n }\n\n // Prevent further manipulat ion of configuration.\n // Not available in IE8, Safari 5, etc.\n if (free ze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n const MATHML_TE XT_INTEGRATION_POINTS = addToSet({}, [\n 'mi',\n 'mo',\n 'mn',\n 'ms ',\n 'mtext',\n ]);\n\n const HTML_INTEGRATION_POINTS = addToSet({}, [\n 'foreignobject',\n 'desc',\n 'title',\n 'annotation-xml',\n ]);\n\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, [\n 'title',\n 'style',\n 'font',\n 'a',\n 'script',\n ]);\n\n /* Kee p track of all possible SVG and MathML tags\n * so that we can perform the nam espace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, TAGS.svg) ;\n addToSet(ALL_SVG_TAGS, TAGS.svgFilters);\n addToSet(ALL_SVG_TAGS, TAGS.svg Disallowed);\n\n const ALL_MATHML_TAGS = addToSet({}, TAGS.mathMl);\n addToSet (ALL_MATHML_TAGS, TAGS.mathMlDisallowed);\n\n /**\n *\n *\n * @param {El ement} element a DOM element whose namespace is being checked\n * @returns {bo olean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkV alidNamespace = function (element) {\n let parent = getParentNode(element);\n \n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be nu ll. We just simulate parent in this case.\n if (!parent || !parent.tagName) { \n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template ',\n };\n }\n\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n\n if (!ALLOWED _NAMESPACES[element.namespaceURI]) {\n return false;\n }\n\n if (elem ent.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via <svg>. If it happens via any other tag, then\ n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE ) {\n return tagName === 'svg';\n }\n\n // The only way to swit ch from MathML to SVG is via`\n // svg if parent is either <annotation-xml> or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return (\n tagName === 'svg' &&\n (parentTagName === 'annotation-xml' ||\n MATHML_TEXT_INTEGRATION_PO INTS[parentTagName])\n );\n }\n\n // We only allow elements tha t are defined in SVG\n // spec. All others are disallowed in SVG namespace. \n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n\n if (element.namespa ceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespa ce to MathML\n // is via <math>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\ n return tagName === 'math';\n }\n\n // The only way to switch from SVG to MathML is via\n // <math> and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n\n // We only allow elem ents that are defined in MathML\n // spec. All others are disallowed in Mat hML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch fr om SVG to HTML is via\n // HTML integration points, and from MathML to HTML \n // is via MathML text integration points\n if (\n parent.nam espaceURI === SVG_NAMESPACE &&\n !HTML_INTEGRATION_POINTS[parentTagName]\ n ) {\n return false;\n }\n\n if (\n parent.namespa ceURI === MATHML_NAMESPACE &&\n !MATHML_TEXT_INTEGRATION_POINTS[parentTag Name]\n ) {\n return false;\n }\n\n // We disallow tags th at are specific for MathML\n // or SVG and should never appear in HTML name space\n return (\n !ALL_MATHML_TAGS[tagName] &&\n (COMMON_SVG _AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName])\n );\n }\n\n / / For XHTML and XML documents that support custom namespaces\n if (\n PA RSER_MEDIA_TYPE === 'application/xhtml+xml' &&\n ALLOWED_NAMESPACES[element .namespaceURI]\n ) {\n return true;\n }\n\n // The code should nev er reach this place (this means\n // that the element somehow got namespace t hat is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n\n /**\n * _forceRemove \n *\n * @param {Node} node a DOM node\n */\n const _forceRemove = funct ion (node) {\n arrayPush(DOMPurify.removed, { element: node });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n node.pare ntNode.removeChild(node);\n } catch (_) {\n node.remove();\n }\n };\ n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute n ame\n * @param {Node} node a DOM node\n */\n const _removeAttribute = func tion (name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n at tribute: node.getAttributeNode(name),\n from: node,\n });\n } cat ch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node,\n });\n }\n\n node.removeAttribute(name);\n\n // We void attribute values for unremovable \"is\"\" attributes\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else { \n try {\n node.setAttribute(name, '');\n } catch (_) {}\ n }\n }\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the d irty markup\n */\n const _initDocument = function (dirty) {\n /* Create a HTML document */\n let doc;\n let leadingWhitespace;\n\n if (FORCE_BODY ) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE _BODY isn't used, leading whitespace needs to be preserved manually */\n co nst matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = m atches && matches[0];\n }\n\n if (\n PARSER_MEDIA_TYPE === 'applicati on/xhtml+xml' &&\n NAMESPACE === HTML_NAMESPACE\n ) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/norma tive.html#strict)\n dirty =\n '<html xmlns=\"http://www.w3.org/1999/ xhtml\"><head></head><body>' +\n dirty +\n '</body></html>';\n }\n\n const dirtyPayload = trustedTypesPolicy\n ? trustedTypesPolicy.cre ateHTML(dirty)\n : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n\n /* Use createHTMLDocument in case DOMParser i s not available */\n if (!doc || !doc.documentElement) {\n doc = impleme ntation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.d ocumentElement.innerHTML = IS_EMPTY_INPUT\n ? emptyHTML\n : di rtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is inv alid xml\n }\n }\n\n const body = doc.body || doc.documentElement;\n\ n if (dirty && leadingWhitespace) {\n body.insertBefore(\n docume nt.createTextNode(leadingWhitespace),\n body.childNodes[0] || null\n );\n }\n\n /* Work on whole document or just its body */\n if (NAMESPA CE === HTML_NAMESPACE) {\n return getElementsByTagName.call(\n doc,\ n WHOLE_DOCUMENT ? 'html' : 'body'\n )[0];\n }\n\n return WHOL E_DOCUMENT ? doc.documentElement : body;\n };\n\n /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n const _createIterator = function (root) {\n return createNodeIterator.call(\n root.ownerDocument || root ,\n root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.S HOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT,\n null,\n false\n );\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobber ed, false if safe\n */\n const _isClobbered = function (elm) {\n return (\ n elm instanceof HTMLFormElement &&\n (typeof elm.nodeName !== 'string ' ||\n typeof elm.textContent !== 'string' ||\n typeof elm.removeC hild !== 'function' ||\n !(elm.attributes instanceof NamedNodeMap) ||\n typeof elm.removeAttribute !== 'function' ||\n typeof elm.setAttrib ute !== 'function' ||\n typeof elm.namespaceURI !== 'string' ||\n typeof elm.insertBefore !== 'function' ||\n typeof elm.hasChildNodes !== 'function')\n );\n };\n\n /**\n * _isNode\n *\n * @param {Node} obj object to check whether it's a DOM node\n * @return {Boolean} true is object i s a DOM node\n */\n const _isNode = function (object) {\n return typeof No de === 'object'\n ? object instanceof Node\n : object &&\n ty peof object === 'object' &&\n typeof object.nodeType === 'number' &&\n typeof object.nodeName === 'string';\n };\n\n /**\n * _executeHook\ n * Execute user configurable hooks\n *\n * @param {String} entryPoint N ame of the hook's entry point\n * @param {Node} currentNode node to work on w ith the hook\n * @param {Object} data additional hook parameters\n */\n co nst _executeHook = function (entryPoint, currentNode, data) {\n if (!hooks[en tryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], (hook) => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textC ontent\n * @protect removeChild\n *\n * @param {Node} currentNode to che ck for permission to exist\n * @return {Boolean} true if node was killed, fal se if left alive\n */\n const _sanitizeElements = function (currentNode) {\n let content;\n\n /* Execute a hook if present */\n _executeHook('before SanitizeElements', currentNode, null);\n\n /* Check if element is clobbered o r can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(curre ntNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', curre ntNode, {\n tagName,\n allowedTags: ALLOWED_TAGS,\n });\n\n /* D etect mXSS attempts abusing namespace confusion */\n if (\n currentNode. hasChildNodes() &&\n !_isNode(currentNode.firstElementChild) &&\n (!_i sNode(currentNode.content) ||\n !_isNode(currentNode.content.firstElement Child)) &&\n regExpTest(/<[/\\w]/g, currentNode.innerHTML) &&\n regExp Test(/<[/\\w]/g, currentNode.textContent)\n ) {\n _forceRemove(currentNo de);\n return true;\n }\n\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n / * Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName ] && _basicCustomElementTest(tagName)) {\n if (\n CUSTOM_ELEMENT _HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT _HANDLING.tagNameCheck, tagName)\n )\n return false;\n if (\n CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)\n )\n return false;\n }\n\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = g etParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n\n for (let i = childCount - 1; i >= 0; --i) {\n parentNode.insertBefore (\n cloneNode(childNodes[i], true),\n getNextSibling(c urrentNode)\n );\n }\n }\n }\n\n _forceRemo ve(currentNode);\n return true;\n }\n\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidName space(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Make sure that older browsers don't get noscript mXSS */\n if (\ n (tagName === 'noscript' || tagName === 'noembed') &&\n regExpTest(/< \\/no(script|embed)/i, currentNode.innerHTML)\n ) {\n _forceRemove(curre ntNode);\n return true;\n }\n\n /* Sanitize element content to be tem plate-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n /* Get the element's text content */\n content = currentNode.textContent; \n content = stringReplace(content, MUSTACHE_EXPR, ' ');\n content = s tringReplace(content, ERB_EXPR, ' ');\n content = stringReplace(content, TM PLIT_EXPR, ' ');\n if (currentNode.textContent !== content) {\n arra yPush(DOMPurify.removed, { element: currentNode.cloneNode() });\n current Node.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeElements', currentNode, null);\n\n return false;\n };\n\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowerca se attribute name.\n * @param {string} value Attribute value.\n * @return { Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint- disable-next-line complexity\n const _isValidAttribute = function (lcTag, lcNam e, value) {\n /* Make sure attribute cannot clobber */\n if (\n SANIT IZE_DOM &&\n (lcName === 'id' || lcName === 'name') &&\n (value in doc ument || value in formElement)\n ) {\n return false;\n }\n\n /* Al low valid data-* attributes: At least one character after \"-\"\n (https: //html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with -the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/mu ltipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804) \n We don't need to check the value; it's always URI safe. */\n if (\n ALLOW_DATA_ATTR &&\n !FORBID_ATTR[lcName] &&\n regExpTest(DATA_A TTR, lcName)\n ) {\n // This attribute is safe\n } else if (ALLOW_ARI A_ATTR && regExpTest(ARIA_ATTR, lcName)) {\n // This attribute is safe\n /* Otherwise, check the name is permitted */\n } else if (!ALLOWED_ATTR[lc Name] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a v ery basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT _HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n (_basicCustomElementTest(lcTag) &&\n ((CUSTOM_ELEMENT_HANDLING.tagNameC heck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNam eCheck, lcTag)) ||\n (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag))) &&\n ((CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName)) ||\n (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)))) ||\n // Al ternative, second condition checks if it's an `is`-attribute, AND\n // th e value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagN ameCheck\n (lcName === 'is' &&\n CUSTOM_ELEMENT_HANDLING.allowCu stomizedBuiltInElements &&\n ((CUSTOM_ELEMENT_HANDLING.tagNameCheck ins tanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value)) ||\n (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Functio n &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))))\n ) {\n // If user has supplied a regexp or function in CUSTOM_ELEMENT_HANDLING.t agNameCheck, we need to also allow derived custom elements using the same tagNam e test.\n // Additionally, we need to allow attributes passing the CUSTOM _ELEMENT_HANDLING.attributeNameCheck user has configured, as custom elements can define these at their own discretion.\n } else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) {\n // This attribute is safe\n /* Check no script, data or unknown possibly unsafe URI\n unless we know URI values are safe for that attribute */\n } else if (\n regExpTes t(IS_ALLOWED_URI, stringReplace(value, ATTR_WHITESPACE, ''))\n ) {\n // This attribute is safe\n /* Keep image data URIs alive if src/xlink:href is allowed */\n /* Further prevent gadget XSS for dynamically built script ta gs */\n } else if (\n (lcName === 'src' || lcName === 'xlink:href' || lc Name === 'href') &&\n lcTag !== 'script' &&\n stringIndexOf(value, 'da ta:') === 0 &&\n DATA_URI_TAGS[lcTag]\n ) {\n // This attribute is safe\n /* Allow unknown protocols: This provides support for links that\n are handled by protocol handlers which may be unknown ahead of\n ti me, e.g. fb:, spotify: */\n } else if (\n ALLOW_UNKNOWN_PROTOCOLS &&\n !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))\n ) {\n // This attribute is safe\n /* Check for binary attributes */ \n // eslint-disable-next-line no-negated-condition\n } else if (!value) {\n // Binary attributes are safe at this point\n /* Anything else, p resume unsafe, do not add it back */\n } else {\n return false;\n }\n \n return true;\n };\n\n /**\n * _basicCustomElementCheck\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-elemen t-name\n * @param {string} tagName name of the tag of the node to sanitize\n */\n const _basicCustomElementTest = function (tagName) {\n return tagName. indexOf('-') > 0;\n };\n\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n const _sanitizeAttributes = function (currentNode) {\n let attr;\n let value;\n let lcName;\n let l;\n /* Execute a hook if present */\n _executeHo ok('beforeSanitizeAttributes', currentNode, null);\n\n const { attributes } = currentNode;\n\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes) {\n return;\n }\n\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allow edAttributes: ALLOWED_ATTR,\n };\n l = attributes.length;\n\n /* Go bac kwards over all attributes; safely remove bad ones */\n while (l--) {\n attr = attributes[l];\n const { name, namespaceURI } = attr;\n value = name === 'value' ? attr.value : stringTrim(attr.value);\n lcName = transfo rmCaseFunc(name);\n\n /* Execute a hook if present */\n hookEvent.attr Name = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = t rue;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see thi s is a property they can set\n _executeHook('uponSanitizeAttribute', curren tNode, hookEvent);\n value = hookEvent.attrValue;\n /* Did the hooks a pprove of the attribute? */\n if (hookEvent.forceKeepAttr) {\n conti nue;\n }\n\n /* Remove attribute */\n _removeAttribute(name, curr entNode);\n\n /* Did the hooks approve of the attribute? */\n if (!hoo kEvent.keepAttr) {\n continue;\n }\n\n /* Work around a securit y issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/ >/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\ n }\n\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n value = stringReplace(value, MUSTACHE_EXPR, ' ' );\n value = stringReplace(value, ERB_EXPR, ' ');\n value = string Replace(value, TMPLIT_EXPR, ' ');\n }\n\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\ n\n /* Full DOM Clobbering protection via namespace isolation,\n * Pr efix id and name attributes with `user-content-`\n */\n if (SANITIZE_ NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n\n // Prefix the value and later re-create the attribute with the sanitized valu e\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n\n /* Han dle attributes that require Trusted Types */\n if (\n trustedTypesPo licy &&\n typeof trustedTypes === 'object' &&\n typeof trustedType s.getAttributeType === 'function'\n ) {\n if (namespaceURI) {\n /* Namespaces are not yet supported, see https://bugs.chromium.org/p/chromi um/issues/detail?id=1305293 */\n } else {\n switch (trustedTypes .getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n value = trustedTypesPolicy.createHTML(value);\n break;\n case 'TrustedScriptURL':\n value = trustedTypesPolicy.createSc riptURL(value);\n break;\n default:\n break ;\n }\n }\n }\n\n /* Handle invalid data-* attribute s et by try-catching it */\n try {\n if (namespaceURI) {\n cu rrentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-sch ema\". */\n currentNode.setAttribute(name, value);\n }\n\n arrayPop(DOMPurify.removed);\n } catch (_) {}\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeAttributes', currentNode, nul l);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragmen t} fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = fun ction (fragment) {\n let shadowNode;\n const shadowIterator = _createItera tor(fragment);\n\n /* Execute a hook if present */\n _executeHook('beforeS anitizeShadowDOM', fragment, null);\n\n while ((shadowNode = shadowIterator.n extNode())) {\n /* Execute a hook if present */\n _executeHook('uponSa nitizeShadowNode', shadowNode, null);\n\n /* Sanitize tags and elements */\ n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof Documen tFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(shadowN ode);\n }\n\n /* Execute a hook if present */\n _executeHook('afterSani tizeShadowDOM', fragment, null);\n };\n\n /**\n * Sanitize\n * Public meth od providing core sanitation functionality\n *\n * @param {String|Node} dirt y string or DOM node\n * @param {Object} configuration object\n */\n // esl int-disable-next-line complexity\n DOMPurify.sanitize = function (dirty, cfg = {}) {\n let body;\n let importedNode;\n let currentNode;\n let retur nNode;\n /* Make sure we have a string to sanitize.\n DO NOT return earl y, as this will return the wrong type if\n the user has requested a DOM obj ect rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPU T) {\n dirty = '<!-->';\n }\n\n /* Stringify, in case dirty is an obj ect */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n // eslint -disable-next-line no-negated-condition\n if (typeof dirty.toString !== 'fu nction') {\n throw typeErrorCreate('toString is not a function');\n } else {\n dirty = dirty.toString();\n if (typeof dirty !== 'strin g') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n }\n }\n\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n\n /* Assign con fig vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* C lean up removed elements */\n DOMPurify.removed = [];\n\n /* Check if dirt y is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n\n if (IN_PLACE) {\n /* Do some early pre-sa nitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n c onst tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tag Name] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate(\n 'root node is forbidden and cannot be sanitized in-place'\n );\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!---->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n /* Node is already a body, us e as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint- disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(impor tedNode);\n }\n } else {\n /* Exit directly if we have nothing to d o */\n if (\n !RETURN_DOM &&\n !SAFE_FOR_TEMPLATES &&\n !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-include s\n dirty.indexOf('<') === -1\n ) {\n return trustedTypesPoli cy && RETURN_TRUSTED_TYPE\n ? trustedTypesPolicy.createHTML(dirty)\n : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the dat a */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.fi rstChild);\n }\n\n /* Get node iterator */\n const nodeIterator = _crea teIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the crea ted document */\n while ((currentNode = nodeIterator.nextNode())) {\n /* Sanitize tags and elements */\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n\n /* Shadow DOM detected, sanitize it */\n i f (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDO M(currentNode.content);\n }\n\n /* Check attributes, sanitize if neces sary */\n _sanitizeAttributes(currentNode);\n }\n\n /* If we sanitize d `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.o wnerDocument);\n\n while (body.firstChild) {\n // eslint-disable -next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body .firstChild);\n }\n } else {\n returnNode = body;\n }\n\ n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmod) {\n /*\ n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in the ory but we would rather not risk another attack vector.\n The state tha t is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true) ;\n }\n\n return returnNode;\n }\n\n let serializedHTML = WHOLE_ DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Serialize doctype if allow ed */\n if (\n WHOLE_DOCUMENT &&\n ALLOWED_TAGS['!doctype'] &&\n body.ownerDocument &&\n body.ownerDocument.doctype &&\n body.ownerD ocument.doctype.name &&\n regExpTest(EXPRESSIONS.DOCTYPE_NAME, body.ownerDo cument.doctype.name)\n ) {\n serializedHTML =\n '<!DOCTYPE ' + bo dy.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n }\n\n /* Saniti ze final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n serialize dHTML = stringReplace(serializedHTML, MUSTACHE_EXPR, ' ');\n serializedHTML = stringReplace(serializedHTML, ERB_EXPR, ' ');\n serializedHTML = stringR eplace(serializedHTML, TMPLIT_EXPR, ' ');\n }\n\n return trustedTypesPolic y && RETURN_TRUSTED_TYPE\n ? trustedTypesPolicy.createHTML(serializedHTML)\ n : serializedHTML;\n };\n\n /**\n * Public method to set the configura tion once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n DOMPurify.setConfig = function (cfg) {\n _parseConfig(cfg);\n SET _CONFIG = true;\n };\n\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n DOMPurify.clearConfig = function () {\n CONF IG = null;\n SET_CONFIG = false;\n };\n\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, u ses config defaults.\n * isValidAttribute\n *\n * @param {string} tag Tag name of containing element.\n * @param {string} attr Attribute name.\n * @ param {string} value Attribute value.\n * @return {Boolean} Returns true if ` value` is valid. Otherwise, returns false.\n */\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessa ry. */\n if (!CONFIG) {\n _parseConfig({});\n }\n\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n /**\n * AddHook\n * Pub lic method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry p oint for the hook to add\n * @param {Function} hookFunction function to execut e\n */\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (t ypeof hookFunction !== 'function') {\n return;\n }\n\n hooks[entryPoi nt] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\ n };\n\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook a t a given entryPoint\n * (pops it from the stack of hooks if more are present) \n *\n * @param {String} entryPoint entry point for the hook to remove\n * @return {Function} removed(popped) hook\n */\n DOMPurify.removeHook = functi on (entryPoint) {\n if (hooks[entryPoint]) {\n return arrayPop(hooks[ent ryPoint]);\n }\n };\n\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoi nt entry point for the hooks to remove\n */\n DOMPurify.removeHooks = functio n (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPu rify hooks\n *\n */\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n\n return DOMPurify;\n}\n\nexport default createDOMPurify();\n"],"n ames":["entries","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDes criptor","Object","freeze","seal","create","apply","construct","Reflect","fun"," thisValue","args","x","Func","arrayForEach","unapply","Array","prototype","forEa ch","arrayPop","pop","arrayPush","push","stringToLowerCase","String","toLowerCas e","stringToString","toString","stringMatch","match","stringReplace","replace"," stringIndexOf","indexOf","stringTrim","trim","regExpTest","RegExp","test","typeE rrorCreate","unconstruct","TypeError","func","thisArg","addToSet","set","array", "transformCaseFunc","l","length","element","lcElement","clone","object","newObje ct","property","value","lookupGetter","prop","desc","get","fallbackValue","conso le","warn","html","svg","svgFilters","svgDisallowed","mathMl","mathMlDisallowed" ,"text","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR"," IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","getGlobal" ,"window","_createTrustedTypesPolicy","trustedTypes","document","createPolicy"," suffix","ATTR_NAME","currentScript","hasAttribute","getAttribute","policyName"," createHTML","createScriptURL","scriptUrl","_","createDOMPurify","DOMPurify","roo t","version","VERSION","removed","nodeType","isSupported","originalDocument","Do cumentFragment","HTMLTemplateElement","Node","Element","NodeFilter","NamedNodeMa p","MozNamedAttrMap","HTMLFormElement","DOMParser","ElementPrototype","cloneNode ","getNextSibling","getChildNodes","getParentNode","template","createElement","c ontent","ownerDocument","trustedTypesPolicy","emptyHTML","implementation","creat eNodeIterator","createDocumentFragment","getElementsByTagName","importNode","hoo ks","createHTMLDocument","EXPRESSIONS","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","TA GS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","ATTRS","CUSTOM_ELEMENT_HANDLING","tag NameCheck","writable","configurable","enumerable","attributeNameCheck","allowCus tomizedBuiltInElements","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DAT A_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES ","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT", "RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROP S_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FO RBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DE FAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE"," NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","P ARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","CO NFIG","formElement","isRegexOrFunction","testValue","Function","_parseConfig","c fg","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS","ADD _ATTR","table","tbody","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS ","COMMON_SVG_AND_HTML_ELEMENTS","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNa mespace","parent","tagName","namespaceURI","parentTagName","Boolean","_forceRemo ve","node","parentNode","removeChild","remove","_removeAttribute","name","attrib ute","getAttributeNode","from","removeAttribute","setAttribute","_initDocument", "dirty","doc","leadingWhitespace","matches","dirtyPayload","parseFromString","do cumentElement","createDocument","innerHTML","body","insertBefore","createTextNod e","childNodes","call","_createIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEX T","_isClobbered","elm","nodeName","textContent","attributes","hasChildNodes","_ isNode","_executeHook","entryPoint","currentNode","data","hook","_sanitizeElemen ts","allowedTags","firstElementChild","_basicCustomElementTest","childCount","i" ,"_isValidAttribute","lcTag","lcName","_sanitizeAttributes","attr","hookEvent"," attrName","attrValue","keepAttr","allowedAttributes","forceKeepAttr","undefined" ,"getAttributeType","setAttributeNS","_sanitizeShadowDOM","fragment","shadowNode ","shadowIterator","nextNode","sanitize","importedNode","returnNode","appendChil d","firstChild","nodeIterator","shadowroot","shadowrootmod","serializedHTML","ou terHTML","doctype","setConfig","clearConfig","isValidAttribute","tag","addHook", "hookFunction","removeHook","removeHooks","removeAllHooks"],"mappings":";;;;;;;; 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 MA1FwB,EA2FxB,OA3FwB,EA4FxB,QA5FwB,EA6FxB,MA7FwB,EA8FxB,KA9FwB,EA+FxB,MA/FwB,EAg GxB,YAhGwB,EAiGxB,QAjGwB,EAkGxB,UAlGwB,EAmGxB,SAnGwB,EAoGxB,OApGwB,EAqGxB,QArGwB ,EAsGxB,aAtGwB,EAuGxB,QAvGwB,EAwGxB,UAxGwB,EAyGxB,aAzGwB,EA0GxB,MA1GwB,EA2GxB,YA 3GwB,EA4GxB,qBA5GwB,EA6GxB,kBA7GwB,EA8GxB,cA9GwB,EA+GxB,QA/GwB,EAgHxB,eAhHwB,EAi HxB,qBAjHwB,EAkHxB,gBAlHwB,EAmHxB,GAnHwB,EAoHxB,IApHwB,EAqHxB,IArHwB,EAsHxB,QAtH wB,EAuHxB,MAvHwB,EAwHxB,MAxHwB,EAyHxB,aAzHwB,EA0HxB,WA1HwB,EA2HxB,SA3HwB,EA4HxB, QA5HwB,EA6HxB,QA7HwB,EA8HxB,OA9HwB,EA+HxB,MA/HwB,EAgIxB,iBAhIwB,EAiIxB,kBAjIwB,E AkIxB,kBAlIwB,EAmIxB,cAnIwB,EAoIxB,aApIwB,EAqIxB,cArIwB,EAsIxB,aAtIwB,EAuIxB,YAv IwB,EAwIxB,cAxIwB,EAyIxB,kBAzIwB,EA0IxB,mBA1IwB,EA2IxB,gBA3IwB,EA4IxB,iBA5IwB,EA 6IxB,mBA7IwB,EA8IxB,gBA9IwB,EA+IxB,QA/IwB,EAgJxB,cAhJwB,EAiJxB,OAjJwB,EAkJxB,cAl JwB,EAmJxB,gBAnJwB,EAoJxB,UApJwB,EAqJxB,SArJwB,EAsJxB,SAtJwB,EAuJxB,WAvJwB,EAwJx B,kBAxJwB,EAyJxB,aAzJwB,EA0JxB,iBA1JwB,EA2JxB,gBA3JwB,EA4JxB,YA5JwB,EA6JxB,MA7Jw B,EA8JxB,IA9JwB,EA+JxB,IA/JwB,EAgKxB,SAhKwB,EAiKxB,QAjKwB,EAkKxB,SAlKwB,EAmKxB,Y AnKwB,EAoKxB,SApKwB,EAqKxB,YArKwB,EAsKxB,eAtKwB,EAuKxB,eAvKwB,EAwKxB,OAxKwB,EAyK xB,cAzKwB,EA0KxB,MA1KwB,EA2KxB,cA3KwB,EA4KxB,kBA5KwB,EA6KxB,kBA7KwB,EA8KxB,GA9Kw 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"}
 End of changes. 1 change blocks. 
lines changed or deleted lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)