"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "dist/purify.cjs.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.cjs.js.map  (DOMPurify-3.0.1):purify.cjs.js.map  (DOMPurify-3.0.2)
{"version":3,"file":"purify.cjs.js","sources":["../src/utils.js","../src/tags.js ","../src/attrs.js","../src/regexp.js","../src/purify.js"],"sourcesContent":["co nst {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPr opertyDescriptor,\n} = Object;\n\nlet { freeze, seal, create } = Object; // esli nt-disable-line import/no-mutable-exports\nlet { apply, construct } = typeof Ref lect !== 'undefined' && Reflect;\n\nif (!apply) {\n apply = function (fun, this Value, 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 = f unction (x) {\n return x;\n };\n}\n\nif (!construct) {\n construct = functi on (Func, args) {\n return new Func(...args);\n };\n}\n\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayIndexOf = unapply(Array.prototyp e.indexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = u napply(Array.prototype.push);\nconst arraySlice = unapply(Array.prototype.slice) ;\n\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst str ingToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(S tring.prototype.match);\nconst stringReplace = unapply(String.prototype.replace) ;\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\n\nconst regExpTest = unapply(RegExp.prototype.t est);\n\nconst typeErrorCreate = unconstruct(TypeError);\n\nexport function unap ply(func) {\n return (thisArg, ...args) => apply(func, thisArg, args);\n}\n\nex port function unconstruct(func) {\n return (...args) => construct(func, args);\ n}\n\n/* Add properties to a lookup table */\nexport function addToSet(set, arra y, transformCaseFunc) {\n transformCaseFunc = transformCaseFunc ? transformCase Func : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defin ed on 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 === 'stri ng') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutabl e.\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(obj ect) {\n const newObject = create(null);\n\n for (const [property, value] of e ntries(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 (obj ect !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n i f (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\ n if (typeof desc.value === 'function') {\n return unapply(desc.valu e);\n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function f allbackValue(element) {\n console.warn('fallback value for', element);\n r eturn null;\n }\n\n return fallbackValue;\n}\n\nexport {\n // Array\n arrayF orEach,\n arrayIndexOf,\n arrayPop,\n arrayPush,\n arraySlice,\n // Object\ n entries,\n freeze,\n getPrototypeOf,\n getOwnPropertyDescriptor,\n isFroz en,\n setPrototypeOf,\n seal,\n // RegExp\n regExpTest,\n // String\n stri ngIndexOf,\n stringMatch,\n stringReplace,\n stringToLowerCase,\n stringToSt ring,\n stringTrim,\n // Errors\n typeErrorCreate,\n // Other\n lookupGette r,\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 'asid e',\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 'd ir',\n 'div',\n 'dl',\n 'dt',\n 'element',\n 'em',\n 'fieldset',\n 'figca ption',\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 'out put',\n 'p',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\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 'textarea',\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 c onst svg = freeze([\n 'svg',\n 'a',\n 'altglyph',\n 'altglyphdef',\n 'altgl yphitem',\n 'animatecolor',\n 'animatemotion',\n 'animatetransform',\n 'circ le',\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 'linear gradient',\n 'marker',\n 'mask',\n 'metadata',\n 'mpath',\n 'path',\n 'pat tern',\n 'polygon',\n 'polyline',\n 'radialgradient',\n 'rect',\n 'stop',\n 'style',\n 'switch',\n 'symbol',\n 'text',\n 'textpath',\n 'title',\n 't ref',\n 'tspan',\n 'view',\n 'vkern',\n]);\n\nexport const svgFilters = freez e([\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite' ,\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feD istantLight',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFunc R',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMor phology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotL ight',\n 'feTile',\n 'feTurbulence',\n]);\n\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespac e\n// checks properly in case one wants to add them to\n// allow-list.\nexport c onst svgDisallowed = freeze([\n 'animate',\n 'color-profile',\n 'cursor',\n 'discard',\n 'fedropshadow',\n 'font-face',\n 'font-face-format',\n 'font-fa ce-name',\n 'font-face-src',\n 'font-face-uri',\n 'foreignobject',\n 'hatch' ,\n 'hatchpath',\n 'mesh',\n 'meshgradient',\n 'meshpatch',\n 'meshrow',\n 'missing-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 'mmultiscrip ts',\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 ' msubsup',\n 'mtable',\n 'mtd',\n 'mtext',\n 'mtr',\n 'munder',\n 'munderov er',\n]);\n\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nexport const mathMlDisallowed = freeze([\n 'maction',\n 'maligngroup',\n 'malignmark',\n 'mlongdiv',\n 'mscarries',\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 './utils.js';\n\nexp ort const html = freeze([\n 'accept',\n 'action',\n 'align',\n 'alt',\n 'au tocapitalize',\n 'autocomplete',\n 'autopictureinpicture',\n 'autoplay',\n ' background',\n 'bgcolor',\n 'border',\n 'capture',\n 'cellpadding',\n 'cell spacing',\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 'disabl epictureinpicture',\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 'inputmode',\n 'i ntegrity',\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 'mi n',\n 'minlength',\n 'multiple',\n 'muted',\n 'name',\n 'nonce',\n 'noshad e',\n 'novalidate',\n 'nowrap',\n 'open',\n 'optimum',\n 'pattern',\n 'pla ceholder',\n 'playsinline',\n 'poster',\n 'preload',\n 'pubdate',\n 'radiog roup',\n 'readonly',\n 'rel',\n 'required',\n 'rev',\n 'reversed',\n 'role ',\n 'rows',\n 'rowspan',\n 'spellcheck',\n 'scope',\n 'selected',\n 'shap e',\n 'size',\n 'sizes',\n 'span',\n 'srclang',\n 'start',\n 'src',\n 'sr cset',\n 'step',\n 'style',\n 'summary',\n 'tabindex',\n 'title',\n 'trans late',\n 'type',\n 'usemap',\n 'valign',\n 'value',\n 'width',\n 'xmlns',\ n 'slot',\n]);\n\nexport const svg = freeze([\n 'accent-height',\n 'accumulat e',\n 'additive',\n 'alignment-baseline',\n 'ascent',\n 'attributename',\n 'attributetype',\n 'azimuth',\n 'basefrequency',\n 'baseline-shift',\n 'begi n',\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-opacit y',\n 'fill-rule',\n 'filter',\n 'filterunits',\n 'flood-color',\n 'flood-o pacity',\n 'font-family',\n 'font-size',\n 'font-size-adjust',\n 'font-stret ch',\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 'gradientt ransform',\n 'height',\n 'href',\n 'id',\n 'image-rendering',\n 'in',\n 'i n2',\n 'k',\n 'k1',\n 'k2',\n 'k3',\n 'k4',\n 'kerning',\n 'keypoints',\n 'keysplines',\n 'keytimes',\n 'lang',\n 'lengthadjust',\n 'letter-spacing' ,\n 'kernelmatrix',\n 'kernelunitlength',\n 'lighting-color',\n 'local',\n 'marker-end',\n 'marker-mid',\n 'marker-start',\n 'markerheight',\n 'markeru nits',\n 'markerwidth',\n 'maskcontentunits',\n 'maskunits',\n 'max',\n 'ma sk',\n 'media',\n 'method',\n 'mode',\n 'min',\n 'name',\n 'numoctaves',\n 'offset',\n 'operator',\n 'opacity',\n 'order',\n 'orient',\n 'orientatio n',\n 'origin',\n 'overflow',\n 'paint-order',\n 'path',\n 'pathlength',\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-render ing',\n 'specularconstant',\n 'specularexponent',\n 'spreadmethod',\n 'start offset',\n 'stddeviation',\n 'stitchtiles',\n 'stop-color',\n 'stop-opacity' ,\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-linecap',\n 'stroke -linejoin',\n 'stroke-miterlimit',\n 'stroke-opacity',\n 'stroke',\n 'stroke -width',\n 'style',\n 'surfacescale',\n 'systemlanguage',\n 'tabindex',\n ' targetx',\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- spacing',\n 'wrap',\n 'writing-mode',\n 'xchannelselector',\n 'ychannelselec tor',\n 'x',\n 'x1',\n 'x2',\n 'xmlns',\n 'y',\n 'y1',\n 'y2',\n 'z',\n 'zoomandpan',\n]);\n\nexport const mathMl = freeze([\n 'accent',\n 'accentund er',\n 'align',\n 'bevelled',\n 'close',\n 'columnsalign',\n 'columnlines', \n 'columnspan',\n 'denomalign',\n 'depth',\n 'dir',\n 'display',\n 'displ aystyle',\n 'encoding',\n 'fence',\n 'frame',\n 'height',\n 'href',\n 'id' ,\n 'largeop',\n 'length',\n 'linethickness',\n 'lspace',\n 'lquote',\n 'm athbackground',\n 'mathcolor',\n 'mathsize',\n 'mathvariant',\n 'maxsize',\n 'minsize',\n 'movablelimits',\n 'notation',\n 'numalign',\n 'open',\n 'ro walign',\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 'supsc riptshift',\n 'symmetric',\n 'voffset',\n 'width',\n 'xmlns',\n]);\n\nexport const xml = freeze([\n 'xlink:href',\n 'xml:id',\n 'xlink:title',\n 'xml:sp ace',\n 'xmlns:xlink',\n]);\n","import { seal } from './utils.js';\n\n// eslint -disable-next-line unicorn/better-regex\nexport const MUSTACHE_EXPR = seal(/\\{\ \{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FO R_TEMPLATES mode\nexport const ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\nex port const TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\nexport const DATA_ATTR = sea l(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\ne xport const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-usel ess-escape\nexport const IS_ALLOWED_URI = seal(\n /^(?:(?:(?:f|ht)tps?|mailto|t el|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-l ine no-useless-escape\n);\nexport const IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script |data):/i);\nexport const ATTR_WHITESPACE = seal(\n /[\\u0000-\\u0020\\u00A0\\u 1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-re gex\n);\nexport const DOCTYPE_NAME = seal(/^html$/i);\n","import * as TAGS from './tags.js';\nimport * as ATTRS from './attrs.js';\nimport * as EXPRESSIONS from './regexp.js';\nimport {\n addToSet,\n clone,\n entries,\n freeze,\n array ForEach,\n arrayPop,\n arrayPush,\n stringMatch,\n stringReplace,\n stringT oLowerCase,\n stringToString,\n stringIndexOf,\n stringTrim,\n regExpTest,\n typeErrorCreate,\n lookupGetter,\n} from './utils.js';\n\nconst 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 modul e!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @ param {Document} document The document object (to determine policy name suffix)\ n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported).\n */\nconst _createTrustedTypesPolicy = function (trusted Types, document) {\n if (\n typeof trustedTypes !== 'object' ||\n typeof trustedTypes.createPolicy !== 'function'\n ) {\n return null;\n }\n\n // A llow the callers to control the unique policy name\n // by adding a data-tt-pol icy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAM E = 'data-tt-policy-suffix';\n if (\n document.currentScript &&\n documen t.currentScript.hasAttribute(ATTR_NAME)\n ) {\n suffix = document.currentScr ipt.getAttribute(ATTR_NAME);\n }\n\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyNam e, {\n createHTML(html) {\n return html;\n },\n createScri ptURL(scriptUrl) {\n return scriptUrl;\n },\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n / / if TT are enforced.\n console.warn(\n 'TrustedTypes policy ' + policyN ame + ' could not be created.'\n );\n return null;\n }\n};\n\nfunction cr eateDOMPurify(window = getGlobal()) {\n const DOMPurify = (root) => createDOMPu rify(root);\n\n /**\n * Version label, exposed for easier checks\n * if DOM Purify is up to date or not\n */\n DOMPurify.version = VERSION;\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if not hing was removed.\n */\n DOMPurify.removed = [];\n\n if (!window || !window. document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOM Purify.isSupported = false;\n\n return DOMPurify;\n }\n\n const originalDoc ument = window.document;\n\n let { document } = window;\n const {\n Documen tFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormE lement,\n DOMParser,\n trustedTypes,\n } = window;\n\n const ElementProt otype = Element.prototype;\n\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSib ling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\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/web components/spec/custom/#creating-and-passing-registries)\n // a new empty regis try is used when creating a template contents owner\n // document, so we use th at as our parent document to ensure nothing\n // is inherited.\n if (typeof HT MLTemplateElement === 'function') {\n const template = document.createElement ('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n const trustedTyp esPolicy = _createTrustedTypesPolicy(\n trustedTypes,\n originalDocument\n );\n const emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML('') : '';\n\n const {\n implementation,\n createNodeIterator,\n createDoc umentFragment,\n getElementsByTagName,\n } = document;\n const { importNode } = originalDocument;\n\n let hooks = {};\n\n /**\n * Expose whether this b rowser supports running the full DOMPurify.\n */\n DOMPurify.isSupported =\n typeof entries === 'function' &&\n typeof getParentNode === 'function' &&\ n implementation &&\n typeof implementation.createHTMLDocument !== 'undefi ned';\n\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DAT A_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n } = EXP RESSIONS;\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 on es but 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 = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [\n ...ATTRS.html,\n ...ATTRS.svg,\n ...ATTRS.mathMl,\n ...ATTRS.xml,\n ]);\n\n /*\n * Con figure how DOMPUrify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameC heck one of [null, regexPattern, predicate]. Default: `null` (disallow any custo m elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [nu ll, regexPattern, predicate]. Default: `null` (disallow any attributes not on th e allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow cus tom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagName Check. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(\n Object.create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null,\n } ,\n attributeNameCheck: {\n writable: true,\n configurable: f alse,\n enumerable: true,\n value: null,\n },\n allowCus tomizedBuiltInElements: {\n writable: true,\n configurable: 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 (overrides ALLOWED_ATTR/ADD _ATTR) */\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 o kay */\n let ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are ok ay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Decide if self-closing tag s 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 fo r common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n\n /* Decide if do cument with <html>... should be returned */\n let WHOLE_DOCUMENT = false;\n\n /* Track 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 children of\n * document.body. By default, browsers might move them to documen t.head */\n let FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` s hould be returned, instead of a html\n * string (or a TrustedHTML object if Tr usted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElem ent` will be returned instead\n */\n let RETURN_DOM = false;\n\n /* Decide i f 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_FRA GMENT = false;\n\n /* Try to return a Trusted Type object instead 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 clobbering attacks? \n * This sanitizes markups named with colliding, clobberable built-in DOM API s.\n */\n let SANITIZE_DOM = true;\n\n /* Achieve full DOM Clobbering protec tion by isolating the namespace of named\n * properties and JS variables, miti gating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rul es that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4 .10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCol lection (§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 = 'user-content-';\n\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and ret urning a sanitized copy */\n let IN_PLACE = false;\n\n /* Allow usage of profi les like html, svg and mathMl */\n let USE_PROFILES = {};\n\n /* Tags to ignor e content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n cons t DEFAULT_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 'noe mbed',\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_T AGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, [\n 'audio',\n ' video',\n 'img',\n 'source',\n 'image',\n 'track',\n ]);\n\n /* At tributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = nu ll;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, [\n 'alt',\n 'clas s',\n 'for',\n 'id',\n 'label',\n 'name',\n 'pattern',\n 'plac eholder',\n 'role',\n 'summary',\n 'title',\n 'value',\n 'style', \n 'xmlns',\n ]);\n\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math /MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_N AMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NA MESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n\n /* Allowed XHTML+X ML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAME SPACES = addToSet(\n {},\n [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPAC E],\n stringToString\n );\n\n /* Parsing of strict XHTML documents */\n le t PARSER_MEDIA_TYPE;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml +xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let tr ansformCaseFunc;\n\n /* Keep a reference to config to pass to hooks */\n let C ONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* __ ____________________________________________ */\n\n const formElement = documen t.createElement('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 lite ral\n */\n // eslint-disable-next-line complexity\n const _parseConfig = fun ction (cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDI A_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1\n ? (PARSER_MEDIA_TYPE = DE FAULT_PARSER_MEDIA_TYPE)\n : (PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE); \n\n // HTML tags and attributes are not case-sensitive, converting to lowerc ase. Keeping XHTML as is.\n transformCaseFunc =\n PARSER_MEDIA_TYPE === 'application/xhtml+xml'\n ? stringToString\n : stringToLowerCase;\ n\n /* Set configuration parameters */\n ALLOWED_TAGS =\n 'ALLOWED_TA GS' in cfg\n ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc)\n : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR =\n 'ALLOWED_ATTR' in cfg\n ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc)\n : DEFAULT_ALLOWE D_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_ATTR' in cfg\n ? addToSet(\n clone(DEFAULT_URI_SAFE_ATTRIBUTES), // eslint-disable -line indent\n cfg.ADD_URI_SAFE_ATTR, // eslint-disable-line indent\n transformCaseFunc // eslint-disable-line indent\n ) // esli nt-disable-line indent\n : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAG S =\n 'ADD_DATA_URI_TAGS' in cfg\n ? addToSet(\n clone(DE FAULT_DATA_URI_TAGS), // eslint-disable-line indent\n cfg.ADD_DATA_UR I_TAGS, // eslint-disable-line indent\n transformCaseFunc // eslint-d isable-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 FORBID_ATTR =\n ' FORBID_ATTR' in cfg\n ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc)\ n : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : fa lse;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKN OWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLO W_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n WHOLE_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_T RUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false ; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default tr ue\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default fal se\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 || IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDL ING.tagNameCheck)\n ) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck =\n cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n\n if (\n cfg.CUSTOM _ELEMENT_HANDLING &&\n isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attrib uteNameCheck)\n ) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck =\n cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n\n if (\n cf g.CUSTOM_ELEMENT_HANDLING &&\n typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCust omizedBuiltInElements ===\n 'boolean'\n ) {\n CUSTOM_ELEMENT_HAND LING.allowCustomizedBuiltInElements =\n cfg.CUSTOM_ELEMENT_HANDLING.allow CustomizedBuiltInElements;\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 ALL OWED_TAGS = addToSet({}, [...TAGS.text]);\n ALLOWED_ATTR = [];\n if (U SE_PROFILES.html === true) {\n addToSet(ALLOWED_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_AT TR, ATTRS.svg);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, TAGS.svgFi lters);\n addToSet(ALLOWED_ATTR, ATTRS.svg);\n addToSet(ALLOWED_AT TR, ATTRS.xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n a ddToSet(ALLOWED_TAGS, TAGS.mathMl);\n addToSet(ALLOWED_ATTR, ATTRS.mathMl );\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n }\n\n /* Merge c onfiguration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\ n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n A LLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg. ADD_ATTR, transformCaseFunc);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\ n\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_ CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n\n addToSet(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 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 #286, #365 */\n if (ALLOWED_T AGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS .tbody;\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 = addToS et({}, [\n 'mi',\n 'mo',\n 'mn',\n 'ms',\n 'mtext',\n ]);\n\n c onst HTML_INTEGRATION_POINTS = addToSet({}, [\n 'foreignobject',\n 'desc', \n 'title',\n 'annotation-xml',\n ]);\n\n // Certain elements are allowe d 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 /* Keep track of all possible SVG an d MathML 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, TA GS.svgFilters);\n addToSet(ALL_SVG_TAGS, TAGS.svgDisallowed);\n\n const ALL_MA THML_TAGS = addToSet({}, TAGS.mathMl);\n addToSet(ALL_MATHML_TAGS, TAGS.mathMlD isallowed);\n\n /**\n *\n *\n * @param {Element} element a DOM element w hose namespace is being checked\n * @returns {boolean} Return false if the ele ment has a\n * namespace that a spec-compliant parser would never\n * retu rn. Return true otherwise.\n */\n const _checkValidNamespace = function (elem ent) {\n let parent = getParentNode(element);\n\n // In JSDOM, if we're in side shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n na mespaceURI: NAMESPACE,\n tagName: 'template',\n };\n }\n\n con st tagName = stringToLowerCase(element.tagName);\n const parentTagName = stri ngToLowerCase(parent.tagName);\n\n if (!ALLOWED_NAMESPACES[element.namespaceU RI]) {\n return false;\n }\n\n if (element.namespaceURI === SVG_NAMES PACE) {\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 switch from MathML to SVG is via`\ n // svg if parent is either <annotation-xml> or MathML\n // text inte gration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return (\n tagName === 'svg' &&\n (parentTagName === 'annotati on-xml' ||\n MATHML_TEXT_INTEGRATION_POINTS[parentTagName])\n );\n }\n\n // We only allow elements that 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.namespaceURI === MATHML_NAMESPACE) {\ n // The only way to switch from HTML namespace 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 === 'm ath';\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[paren tTagName];\n }\n\n // We only allow elements that are defined in MathM L\n // spec. All others are disallowed in MathML namespace.\n return B oolean(ALL_MATHML_TAGS[tagName]);\n }\n\n if (element.namespaceURI === HTM L_NAMESPACE) {\n // The only way to switch from 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.namespaceURI === SVG_NAMESPACE && \n !HTML_INTEGRATION_POINTS[parentTagName]\n ) {\n return fal se;\n }\n\n if (\n parent.namespaceURI === MATHML_NAMESPACE &&\ n !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]\n ) {\n retu rn false;\n }\n\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\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 PARSER_MEDIA_TYPE === 'applicati on/xhtml+xml' &&\n ALLOWED_NAMESPACES[element.namespaceURI]\n ) {\n return true;\n }\n\n // The code should never reach this place (this mean s\n // that the element somehow got namespace that 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} no de a DOM node\n */\n const _forceRemove = function (node) {\n arrayPush(DO MPurify.removed, { element: node });\n try {\n // eslint-disable-next-li ne unicorn/prefer-dom-node-remove\n node.parentNode.removeChild(node);\n } catch (_) {\n node.remove();\n }\n };\n\n /**\n * _removeAttribut e\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n const _removeAttribute = function (name, node) {\n try { \n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode (name),\n from: node,\n });\n } catch (_) {\n arrayPush(DOMP urify.removed, {\n attribute: null,\n from: node,\n });\n }\n\n node.removeAttribute(name);\n\n // We void attribute values for unre movable \"is\"\" attributes\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRem ove(node);\n } catch (_) {}\n } else {\n try {\n nod e.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 dirty markup\n */\n const _i nitDocument = 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 whit espace needs to be preserved manually */\n const matches = stringMatch(dirt y, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n \n if (\n PARSER_MEDIA_TYPE === 'application/xhtml+xml' &&\n NAMESP ACE === HTML_NAMESPACE\n ) {\n // Root of XHTML doc must contain xmlns d eclaration (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 = trustedTypesPolicy\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 i f (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().p arseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n\ n /* Use createHTMLDocument in case DOMParser is not available */\n if (!d oc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPA CE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_ EMPTY_INPUT\n ? emptyHTML\n : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n\n const body = doc.body || doc.documentElement;\n\n if (dirty && leadingWhite space) {\n body.insertBefore(\n document.createTextNode(leadingWhite space),\n body.childNodes[0] || null\n );\n }\n\n /* Work on w hole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(\n doc,\n WHOLE_DOCUMENT ? 'htm l' : 'body'\n )[0];\n }\n\n return WHOLE_DOCUMENT ? doc.documentEleme nt : body;\n };\n\n /**\n * _createIterator\n *\n * @param {Document} r oot document/fragment to create iterator for\n * @return {Iterator} iterator i nstance\n */\n const _createIterator = function (root) {\n return createNo deIterator.call(\n root.ownerDocument || root,\n root,\n // eslin t-disable-next-line no-bitwise\n NodeFilter.SHOW_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 clobberi ng attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n co nst _isClobbered = function (elm) {\n return (\n elm instanceof HTMLForm Element &&\n (typeof elm.nodeName !== 'string' ||\n typeof elm.textC ontent !== 'string' ||\n typeof elm.removeChild !== 'function' ||\n !(elm.attributes instanceof NamedNodeMap) ||\n typeof elm.removeAttribu te !== 'function' ||\n typeof elm.setAttribute !== 'function' ||\n typeof elm.namespaceURI !== 'string' ||\n typeof elm.insertBefore !== 'f unction' ||\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 _ isNode = function (object) {\n return typeof Node === 'object'\n ? objec t instanceof Node\n : object &&\n typeof object === 'object' &&\n typeof object.nodeType === 'number' &&\n typeof object.nodeNam e === 'string';\n };\n\n /**\n * _executeHook\n * Execute user configurabl e hooks\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 {Ob ject} data additional hook parameters\n */\n const _executeHook = function (e ntryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], (hook) => {\n hook.call(DOMPuri fy, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\ n *\n * @protect nodeName\n * @protect textContent\n * @protect removeCh ild\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 con st _sanitizeElements = function (currentNode) {\n let content;\n\n /* Exec ute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode , null);\n\n /* Check if element is clobbered or can clobber */\n if (_isC lobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n const tagNam e = transformCaseFunc(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS,\n });\n\n /* Detect mXSS attempts abusing na mespace confusion */\n if (\n currentNode.hasChildNodes() &&\n !_is Node(currentNode.firstElementChild) &&\n (!_isNode(currentNode.content) ||\ n !_isNode(currentNode.content.firstElementChild)) &&\n regExpTest(/ <[/\\w]/g, currentNode.innerHTML) &&\n regExpTest(/<[/\\w]/g, currentNode.t extContent)\n ) {\n _forceRemove(currentNode);\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 el ement to handle */\n if (!FORBID_TAGS[tagName] && _basicCustomElementTest(t agName)) {\n if (\n CUSTOM_ELEMENT_HANDLING.tagNameCheck instanc eof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagNam e)\n )\n return false;\n if (\n CUSTOM_ELEMENT_H ANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.t agNameCheck(tagName)\n )\n return false;\n }\n\n /* Ke ep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_ CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || c urrentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n\n if (childNodes && parentNode) {\n c onst childCount = childNodes.length;\n\n for (let i = childCount - 1; i >= 0; --i) {\n parentNode.insertBefore(\n cloneNode(chi ldNodes[i], true),\n getNextSibling(currentNode)\n );\n }\n }\n }\n\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check whether element has a valid namespace */\n if ( currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _ forceRemove(currentNode);\n return true;\n }\n\n /* Make sure that ol der browsers don't get noscript mXSS */\n if (\n (tagName === 'noscript' || tagName === 'noembed') &&\n regExpTest(/<\\/no(script|embed)/i, current Node.innerHTML)\n ) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FO R_TEMPLATES && currentNode.nodeType === 3) {\n /* Get the element's text co ntent */\n content = currentNode.textContent;\n content = stringReplac e(content, MUSTACHE_EXPR, ' ');\n content = stringReplace(content, ERB_EXPR , ' ');\n content = stringReplace(content, TMPLIT_EXPR, ' ');\n if (cu rrentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, { ele ment: currentNode.cloneNode() });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSan itizeElements', currentNode, null);\n\n return false;\n };\n\n /**\n * _i sValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of contain ing element.\n * @param {string} lcName Lowercase attribute name.\n * @para m {string} value Attribute value.\n * @return {Boolean} Returns true if `valu e` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function (lcTag, lcName, value) {\n /* Make sure attribute 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: A t least one character after \"-\"\n (https://html.spec.whatwg.org/multipa ge/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xm l-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to che ck the value; it's always URI safe. */\n if (\n ALLOW_DATA_ATTR &&\n !FORBID_ATTR[lcName] &&\n regExpTest(DATA_ATTR, lcName)\n ) {\n / / This attribute is safe\n } else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR , lcName)) {\n // This attribute is safe\n /* Otherwise, check the nam e 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 bas ically a valid custom element tagname AND\n // b) if the tagName passes w hatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CU STOM_ELEMENT_HANDLING.attributeNameCheck\n (_basicCustomElementTest(lcTag ) &&\n ((CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag)) ||\n (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CU STOM_ELEMENT_HANDLING.tagNameCheck(lcTag))) &&\n ((CUSTOM_ELEMENT_HANDL ING.attributeNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEME NT_HANDLING.attributeNameCheck, lcName)) ||\n (CUSTOM_ELEMENT_HANDLIN G.attributeNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLI NG.attributeNameCheck(lcName)))) ||\n // Alternative, second condition ch ecks if it's an `is`-attribute, AND\n // the value passes whatever the us er has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n (lcName === 'is' &&\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements &&\n ((CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value)) ||\n (CUSTO M_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELE MENT_HANDLING.tagNameCheck(value))))\n ) {\n // If user has supplied a regexp or function in CUSTOM_ELEMENT_HANDLING.tagNameCheck, we need to also a llow derived custom elements using the same tagName test.\n // Additional ly, we need to allow attributes passing the CUSTOM_ELEMENT_HANDLING.attributeNam eCheck user has configured, as custom elements can define these at their own dis cretion.\n } else {\n return false;\n }\n /* Check value i s safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBU TES[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 t hat attribute */\n } else if (\n regExpTest(IS_ALLOWED_URI, stringReplac e(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 tags */\n } else if (\n (lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') &&\n lcT ag !== 'script' &&\n stringIndexOf(value, 'data:') === 0 &&\n DATA_URI _TAGS[lcTag]\n ) {\n // This attribute is safe\n /* Allow unknown p rotocols: This provides support for links that\n are handled by protocol handlers which may be unknown ahead of\n time, e.g. fb:, spotify: */\n } else if (\n ALLOW_UNKNOWN_PROTOCOLS &&\n !regExpTest(IS_SCRIPT_OR_D ATA, stringReplace(value, ATTR_WHITESPACE, ''))\n ) {\n // This attribut e 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, presume unsafe, do not add it b ack */\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 s ee https://github.com/sindresorhus/validate-element-name\n * @param {string} t agName name of the tag of the node to sanitize\n */\n const _basicCustomEleme ntTest = function (tagName) {\n return tagName.indexOf('-') > 0;\n };\n\n / **\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect node Name\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @par am {Node} currentNode to sanitize\n */\n const _sanitizeAttributes = functio n (currentNode) {\n let attr;\n let value;\n let lcName;\n let l;\n /* Execute a hook if present */\n _executeHook('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 allowedAttributes: ALLOWED_ATTR,\n };\n l = attributes.length;\n\n /* Go backwards over all attributes; sa fely remove bad ones */\n while (l--) {\n attr = attributes[l];\n c onst { name, namespaceURI } = attr;\n value = name === 'value' ? attr.value : stringTrim(attr.value);\n lcName = transformCaseFunc(name);\n\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEven t.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKee pAttr = undefined; // Allows developers to see this is a property they can set\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n valu e = hookEvent.attrValue;\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n\n /* Remo ve attribute */\n _removeAttribute(name, currentNode);\n\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n co ntinue;\n }\n\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _remov eAttribute(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 = stringRepl ace(value, ERB_EXPR, ' ');\n value = stringReplace(value, TMPLIT_EXPR, ' ');\n }\n\n /* Is `value` valid for this attribute? */\n const lc Tag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcT ag, lcName, value)) {\n continue;\n }\n\n /* Full DOM Clobberin g protection via namespace isolation,\n * Prefix id and name attributes wi th `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 lat er re-create the attribute with the sanitized value\n value = SANITIZE_NA MED_PROPS_PREFIX + value;\n }\n\n /* Handle attributes that require Tr usted Types */\n if (\n trustedTypesPolicy &&\n typeof truste dTypes === 'object' &&\n typeof trustedTypes.getAttributeType === 'functi on'\n ) {\n if (namespaceURI) {\n /* Namespaces are not yet supported, see https://bugs.chromium.org/p/chromium/issues/detail?id=1305293 */ \n } else {\n switch (trustedTypes.getAttributeType(lcTag, lcNam e)) {\n case 'TrustedHTML':\n value = trustedTypesPolicy .createHTML(value);\n break;\n case 'TrustedScriptURL':\ n value = trustedTypesPolicy.createScriptURL(value);\n break;\n default:\n break;\n }\n }\n }\n\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(names paceURI, name, value);\n } else {\n /* Fallback to setAttribute( ) for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNo de.setAttribute(name, value);\n }\n\n arrayPop(DOMPurify.removed); \n } catch (_) {}\n }\n\n /* Execute a hook if present */\n _execu teHook('afterSanitizeAttributes', currentNode, null);\n };\n\n /**\n * _sani tizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over re cursively\n */\n const _sanitizeShadowDOM = function (fragment) {\n let sh adowNode;\n const shadowIterator = _createIterator(fragment);\n\n /* Execu te a hook if present */\n _executeHook('beforeSanitizeShadowDOM', fragment, n ull);\n\n while ((shadowNode = shadowIterator.nextNode())) {\n /* Execut e a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(s hadowNode)) {\n continue;\n }\n\n /* Deep shadow DOM detected * /\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitiz eShadowDOM(shadowNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(shadowNode);\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeShadowDOM', fragment, null );\n };\n\n /**\n * Sanitize\n * Public method providing core sanitation f unctionality\n *\n * @param {String|Node} dirty string or DOM node\n * @pa ram {Object} configuration object\n */\n // eslint-disable-next-line complexi ty\n DOMPurify.sanitize = function (dirty, cfg = {}) {\n let body;\n let importedNode;\n let currentNode;\n let returnNode;\n /* Make sure we ha ve a string to sanitize.\n DO NOT return early, as this will return the wro ng type if\n the user has requested a DOM object rather than a string */\n IS_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- condition\n if (typeof dirty.toString !== 'function') {\n throw type ErrorCreate('toString is not a function');\n } else {\n dirty = dirt y.toString();\n if (typeof dirty !== 'string') {\n throw typeErr orCreate('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 config vars */\n if (!SET_CONF IG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n /* Check if dirty is correctly typed for IN_PL ACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe roo t nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFu nc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate(\n 'root node is forbidden and ca nnot be sanitized in-place'\n );\n }\n }\n } else if (di rty instanceof Node) {\n /* If dirty is a DOM element, append to an empty d ocument 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, use as is */\n body = imp ortedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/pref er-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (\n !RET URN_DOM &&\n !SAFE_FOR_TEMPLATES &&\n !WHOLE_DOCUMENT &&\n // eslint-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 (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Ge t node iterator */\n const nodeIterator = _createIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\n while ((c urrentNode = 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 instanc eof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttrib utes(currentNode);\n }\n\n /* If we sanitized `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.ownerDocument);\n\n whil e (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.shadow root || 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 theory but we would rather not ri sk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = i mportNode.call(originalDocument, returnNode, true);\n }\n\n return ret urnNode;\n }\n\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : bo dy.innerHTML;\n\n /* Serialize doctype if allowed */\n if (\n WHOLE_D OCUMENT &&\n ALLOWED_TAGS['!doctype'] &&\n body.ownerDocument &&\n body.ownerDocument.doctype &&\n body.ownerDocument.doctype.name &&\n regExpTest(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(serializ edHTML, MUSTACHE_EXPR, ' ');\n serializedHTML = stringReplace(serializedHTM L, ERB_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 = 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 CONFIG = null;\n SET_CONFIG = f alse;\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 * isV alidAttribute\n *\n * @param {string} tag Tag name of containing element.\n * @param {string} attr Attribute name.\n * @param {string} value Attribut e value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, re turns 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 c onst lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcNa me, value);\n };\n\n /**\n * AddHook\n * Public method to add DOMPurify ho oks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'functi on') {\n return;\n }\n\n hooks[entryPoint] = hooks[entryPoint] || []; \n arrayPush(hooks[entryPoint], hookFunction);\n };\n\n /**\n * RemoveHoo k\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (po ps it from the stack of hooks if more are present)\n *\n * @param {String} e ntryPoint entry point for the hook to remove\n * @return {Function} removed(po pped) hook\n */\n DOMPurify.removeHook = function (entryPoint) {\n if (hoo ks[entryPoint]) {\n return arrayPop(hooks[entryPoint]);\n }\n };\n\n / **\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a give n entryPoint\n *\n * @param {String} entryPoint entry point for the hooks t o remove\n */\n DOMPurify.removeHooks = function (entryPoint) {\n if (hook s[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * Remo veAllHooks\n * Public method to remove all DOMPurify hooks\n *\n */\n DOM Purify.removeAllHooks = function () {\n hooks = {};\n };\n\n return DOMPuri fy;\n}\n\nexport default createDOMPurify();\n"],"names":["entries","Object","set PrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","se al","create","Reflect","apply","construct","fun","thisValue","args","x","Func"," arrayForEach","unapply","Array","prototype","forEach","arrayPop","pop","arrayPus h","push","stringToLowerCase","String","toLowerCase","stringToString","toString" ,"stringMatch","match","stringReplace","replace","stringIndexOf","indexOf","stri ngTrim","trim","regExpTest","RegExp","test","typeErrorCreate","unconstruct","Typ eError","func","thisArg","addToSet","set","array","transformCaseFunc","l","lengt h","element","lcElement","clone","object","newObject","property","value","lookup Getter","prop","desc","get","fallbackValue","console","warn","html","svg","svgFi lters","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","_createTrustedTypes Policy","trustedTypes","document","createPolicy","suffix","ATTR_NAME","currentSc ript","hasAttribute","getAttribute","policyName","createHTML","createScriptURL", "scriptUrl","_","createDOMPurify","DOMPurify","root","version","VERSION","remove d","nodeType","isSupported","originalDocument","DocumentFragment","HTMLTemplateE lement","Node","Element","NodeFilter","NamedNodeMap","MozNamedAttrMap","HTMLForm Element","DOMParser","ElementPrototype","cloneNode","getNextSibling","getChildNo des","getParentNode","template","createElement","content","ownerDocument","trust edTypesPolicy","emptyHTML","implementation","createNodeIterator","createDocument Fragment","getElementsByTagName","importNode","hooks","createHTMLDocument","EXPR ESSIONS","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","TAGS","ALLOWED_ATTR","DEFAULT_AL LOWED_ATTR","ATTRS","CUSTOM_ELEMENT_HANDLING","tagNameCheck","writable","configu rable","enumerable","attributeNameCheck","allowCustomizedBuiltInElements","FORBI D_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCO LS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","WHOLE_DOCUMENT","SET_CONFIG ","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZ E_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_P LACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS" ,"DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MA THML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","A LLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","PARSER_MEDIA_TYPE","SUPPORTED_P ARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","CONFIG","formElement","isRegexOr Function","testValue","Function","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ADD_D ATA_URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","table","tbody","MATHML _TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENT S","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","parent","tagName","n amespaceURI","parentTagName","Boolean","_forceRemove","node","parentNode","remov eChild","remove","_removeAttribute","name","attribute","getAttributeNode","from" ,"removeAttribute","setAttribute","_initDocument","dirty","doc","leadingWhitespa ce","matches","dirtyPayload","parseFromString","documentElement","createDocument ","innerHTML","body","insertBefore","createTextNode","childNodes","call","_creat eIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","_isClobbered","elm","nodeN ame","textContent","attributes","hasChildNodes","_isNode","_executeHook","entryP oint","currentNode","data","hook","_sanitizeElements","allowedTags","firstElemen tChild","_basicCustomElementTest","childCount","i","_isValidAttribute","lcTag"," lcName","_sanitizeAttributes","attr","hookEvent","attrName","attrValue","keepAtt r","allowedAttributes","forceKeepAttr","undefined","getAttributeType","setAttrib uteNS","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","nextNode", "sanitize","importedNode","returnNode","appendChild","firstChild","nodeIterator" ,"shadowroot","shadowrootmod","serializedHTML","outerHTML","doctype","setConfig" ,"clearConfig","isValidAttribute","tag","addHook","hookFunction","removeHook","r emoveHooks","removeAllHooks"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 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 AAe,EAA9B;;;;"} {"version":3,"file":"purify.cjs.js","sources":["../src/utils.js","../src/tags.js ","../src/attrs.js","../src/regexp.js","../src/purify.js"],"sourcesContent":["co nst {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPr opertyDescriptor,\n} = Object;\n\nlet { freeze, seal, create } = Object; // esli nt-disable-line import/no-mutable-exports\nlet { apply, construct } = typeof Ref lect !== 'undefined' && Reflect;\n\nif (!apply) {\n apply = function (fun, this Value, 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 = f unction (x) {\n return x;\n };\n}\n\nif (!construct) {\n construct = functi on (Func, args) {\n return new Func(...args);\n };\n}\n\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayIndexOf = unapply(Array.prototyp e.indexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = u napply(Array.prototype.push);\nconst arraySlice = unapply(Array.prototype.slice) ;\n\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst str ingToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(S tring.prototype.match);\nconst stringReplace = unapply(String.prototype.replace) ;\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\n\nconst regExpTest = unapply(RegExp.prototype.t est);\n\nconst typeErrorCreate = unconstruct(TypeError);\n\nexport function unap ply(func) {\n return (thisArg, ...args) => apply(func, thisArg, args);\n}\n\nex port function unconstruct(func) {\n return (...args) => construct(func, args);\ n}\n\n/* Add properties to a lookup table */\nexport function addToSet(set, arra y, transformCaseFunc) {\n transformCaseFunc = transformCaseFunc ? transformCase Func : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defin ed on 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 === 'stri ng') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutabl e.\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(obj ect) {\n const newObject = create(null);\n\n for (const [property, value] of e ntries(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 (obj ect !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n i f (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\ n if (typeof desc.value === 'function') {\n return unapply(desc.valu e);\n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function f allbackValue(element) {\n console.warn('fallback value for', element);\n r eturn null;\n }\n\n return fallbackValue;\n}\n\nexport {\n // Array\n arrayF orEach,\n arrayIndexOf,\n arrayPop,\n arrayPush,\n arraySlice,\n // Object\ n entries,\n freeze,\n getPrototypeOf,\n getOwnPropertyDescriptor,\n isFroz en,\n setPrototypeOf,\n seal,\n // RegExp\n regExpTest,\n // String\n stri ngIndexOf,\n stringMatch,\n stringReplace,\n stringToLowerCase,\n stringToSt ring,\n stringTrim,\n // Errors\n typeErrorCreate,\n // Other\n lookupGette r,\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 'asid e',\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 'd ir',\n 'div',\n 'dl',\n 'dt',\n 'element',\n 'em',\n 'fieldset',\n 'figca ption',\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 'out put',\n 'p',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\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 'textarea',\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 c onst svg = freeze([\n 'svg',\n 'a',\n 'altglyph',\n 'altglyphdef',\n 'altgl yphitem',\n 'animatecolor',\n 'animatemotion',\n 'animatetransform',\n 'circ le',\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 'linear gradient',\n 'marker',\n 'mask',\n 'metadata',\n 'mpath',\n 'path',\n 'pat tern',\n 'polygon',\n 'polyline',\n 'radialgradient',\n 'rect',\n 'stop',\n 'style',\n 'switch',\n 'symbol',\n 'text',\n 'textpath',\n 'title',\n 't ref',\n 'tspan',\n 'view',\n 'vkern',\n]);\n\nexport const svgFilters = freez e([\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite' ,\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feD istantLight',\n 'feFlood',\n 'feFuncA',\n 'feFuncB',\n 'feFuncG',\n 'feFunc R',\n 'feGaussianBlur',\n 'feImage',\n 'feMerge',\n 'feMergeNode',\n 'feMor phology',\n 'feOffset',\n 'fePointLight',\n 'feSpecularLighting',\n 'feSpotL ight',\n 'feTile',\n 'feTurbulence',\n]);\n\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespac e\n// checks properly in case one wants to add them to\n// allow-list.\nexport c onst svgDisallowed = freeze([\n 'animate',\n 'color-profile',\n 'cursor',\n 'discard',\n 'fedropshadow',\n 'font-face',\n 'font-face-format',\n 'font-fa ce-name',\n 'font-face-src',\n 'font-face-uri',\n 'foreignobject',\n 'hatch' ,\n 'hatchpath',\n 'mesh',\n 'meshgradient',\n 'meshpatch',\n 'meshrow',\n 'missing-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 'mmultiscrip ts',\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 ' msubsup',\n 'mtable',\n 'mtd',\n 'mtext',\n 'mtr',\n 'munder',\n 'munderov er',\n 'mprescripts',\n]);\n\n// Similarly to SVG, we want to know all MathML e lements,\n// even those that we disallow by default.\nexport const mathMlDisallo wed = freeze([\n 'maction',\n 'maligngroup',\n 'malignmark',\n 'mlongdiv',\n 'mscarries',\n 'mscarry',\n 'msgroup',\n 'mstack',\n 'msline',\n 'msrow', \n 'semantics',\n 'annotation',\n 'annotation-xml',\n 'mprescripts',\n 'non e',\n]);\n\nexport const text = freeze(['#text']);\n","import { freeze } from '. /utils.js';\n\nexport const html = freeze([\n 'accept',\n 'action',\n 'align' ,\n 'alt',\n 'autocapitalize',\n 'autocomplete',\n 'autopictureinpicture',\n 'autoplay',\n 'background',\n 'bgcolor',\n 'border',\n 'capture',\n 'cell padding',\n 'cellspacing',\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 'dis abled',\n 'disablepictureinpicture',\n 'disableremoteplayback',\n 'download', \n 'draggable',\n 'enctype',\n 'enterkeyhint',\n 'face',\n 'for',\n 'heade rs',\n 'height',\n 'hidden',\n 'high',\n 'href',\n 'hreflang',\n 'id',\n 'inputmode',\n 'integrity',\n 'ismap',\n 'kind',\n 'label',\n 'lang',\n 'l ist',\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 'placeholder',\n 'playsinline',\n 'poster',\n 'preload',\n 'pu bdate',\n 'radiogroup',\n 'readonly',\n 'rel',\n 'required',\n 'rev',\n 'r eversed',\n 'role',\n 'rows',\n 'rowspan',\n 'spellcheck',\n 'scope',\n 's elected',\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 'wi dth',\n 'xmlns',\n 'slot',\n]);\n\nexport const svg = freeze([\n 'accent-heig ht',\n 'accumulate',\n 'additive',\n 'alignment-baseline',\n 'ascent',\n 'a ttributename',\n 'attributetype',\n 'azimuth',\n 'basefrequency',\n 'baselin e-shift',\n 'begin',\n 'bias',\n 'by',\n 'class',\n 'clip',\n 'clippathuni ts',\n 'clip-path',\n 'clip-rule',\n 'color',\n 'color-interpolation',\n 'c olor-interpolation-filters',\n 'color-profile',\n 'color-rendering',\n 'cx',\ n 'cy',\n 'd',\n 'dx',\n 'dy',\n 'diffuseconstant',\n 'direction',\n 'dis play',\n 'divisor',\n 'dur',\n 'edgemode',\n 'elevation',\n 'end',\n 'fill ',\n 'fill-opacity',\n 'fill-rule',\n 'filter',\n 'filterunits',\n 'flood-c olor',\n 'flood-opacity',\n 'font-family',\n 'font-size',\n 'font-size-adjus t',\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 'gradientuni ts',\n 'gradienttransform',\n 'height',\n 'href',\n 'id',\n 'image-renderin g',\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 'letter-spacing',\n 'kernelmatrix',\n 'kernelunitlength',\n 'lighting-color ',\n 'local',\n 'marker-end',\n 'marker-mid',\n 'marker-start',\n 'markerhe ight',\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 'orien t',\n 'orientation',\n 'origin',\n 'overflow',\n 'paint-order',\n 'path',\n 'pathlength',\n 'patterncontentunits',\n 'patterntransform',\n 'patternunit s',\n 'points',\n 'preservealpha',\n 'preserveaspectratio',\n 'primitiveunit s',\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 'spread method',\n 'startoffset',\n 'stddeviation',\n 'stitchtiles',\n 'stop-color', \n 'stop-opacity',\n 'stroke-dasharray',\n 'stroke-dashoffset',\n 'stroke-li necap',\n 'stroke-linejoin',\n 'stroke-miterlimit',\n 'stroke-opacity',\n 's troke',\n 'stroke-width',\n 'style',\n 'surfacescale',\n 'systemlanguage',\n 'tabindex',\n 'targetx',\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 'visibil ity',\n 'version',\n 'vert-adv-y',\n 'vert-origin-x',\n 'vert-origin-y',\n 'width',\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 'y2',\n 'z',\n 'zoomandpan',\n]);\n\nexport const mathMl = freeze([\n 'acce nt',\n 'accentunder',\n 'align',\n 'bevelled',\n 'close',\n 'columnsalign', \n 'columnlines',\n 'columnspan',\n 'denomalign',\n 'depth',\n 'dir',\n 'd isplay',\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 'rsp ace',\n 'rquote',\n 'scriptlevel',\n 'scriptminsize',\n 'scriptsizemultiplie r',\n 'selection',\n 'separator',\n 'separators',\n 'stretchy',\n 'subscrip tshift',\n 'supscriptshift',\n 'symmetric',\n 'voffset',\n 'width',\n 'xmln s',\n]);\n\nexport const 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-disable-next-line unicorn/better-regex\nexport const MUSTACHE _EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nexport const ERB_EXPR = seal(/<%[\\w\\W]*|[\ \w\\W]*%>/gm);\nexport const TMPLIT_EXPR = seal(/\\${[\\w\\W]*}/gm);\nexport con st DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no -useless-escape\nexport const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-di sable-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 = seal(/^(?:\\w+script|data):/i);\nexport const ATTR_WHITESPACE = seal(\n /[\\u 0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disa ble-line no-control-regex\n);\nexport const DOCTYPE_NAME = seal(/^html$/i);\n"," import * as TAGS from './tags.js';\nimport * as ATTRS from './attrs.js';\nimport * as EXPRESSIONS from './regexp.js';\nimport {\n addToSet,\n clone,\n entrie s,\n freeze,\n arrayForEach,\n arrayPop,\n arrayPush,\n stringMatch,\n str ingReplace,\n stringToLowerCase,\n stringToString,\n stringIndexOf,\n string Trim,\n regExpTest,\n typeErrorCreate,\n lookupGetter,\n} from './utils.js';\ n\nconst getGlobal = () => (typeof window === 'undefined' ? null : window);\n\n/ **\n * Creates a no-op policy for internal use only.\n * Don't export this funct ion outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {Document} document The document object (to determin e policy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or nu ll, if Trusted Types\n * are not supported).\n */\nconst _createTrustedTypesPoli cy = function (trustedTypes, document) {\n if (\n typeof trustedTypes !== 'o bject' ||\n typeof trustedTypes.createPolicy !== 'function'\n ) {\n retur n null;\n }\n\n // Allow the callers to control the unique policy name\n // b y adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = n ull;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (\n document.current Script &&\n document.currentScript.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 createScriptURL(scriptUrl) {\n return scriptUrl;\n },\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMP urify script has\n // already run). Skip creating the policy, as this will on ly cause errors\n // if TT are enforced.\n console.warn(\n 'TrustedTy pes policy ' + policyName + ' could not be created.'\n );\n return null;\n }\n};\n\nfunction createDOMPurify(window = getGlobal()) {\n const DOMPurify = (root) => createDOMPurify(root);\n\n /**\n * Version label, exposed for easi er checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = VERSION;\n\n /**\n * Array of elements that DOMPurify removed during sanitati on.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n\n i f (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass yo ur own Window\n DOMPurify.isSupported = false;\n\n return DOMPurify;\n }\ n\n const originalDocument = window.document;\n\n let { document } = window;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Eleme nt,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedA ttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes,\n } = window;\ n\n const ElementPrototype = Element.prototype;\n\n const cloneNode = lookupGe tter(ElementPrototype, 'cloneNode');\n const getNextSibling = lookupGetter(Elem entPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementProto type, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'pa rentNode');\n\n // As per issue #47, the web-components registry is inherited b y a\n // new document created via createHTMLDocument. As per the spec\n // (ht tp://w3c.github.io/webcomponents/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 as our parent document to ensure nothing\n // is inher ited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.conten t.ownerDocument) {\n document = template.content.ownerDocument;\n }\n } \n\n const trustedTypesPolicy = _createTrustedTypesPolicy(\n trustedTypes,\n originalDocument\n );\n const emptyHTML = trustedTypesPolicy ? trustedType sPolicy.createHTML('') : '';\n\n const {\n implementation,\n createNodeIt erator,\n createDocumentFragment,\n getElementsByTagName,\n } = document; \n const { importNode } = originalDocument;\n\n let hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMP urify.isSupported =\n typeof entries === 'function' &&\n typeof getParentN ode === 'function' &&\n implementation &&\n typeof implementation.createHT MLDocument !== 'undefined';\n\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_ WHITESPACE,\n } = EXPRESSIONS;\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 but feel free to remove unwanted ones.\n */\n\n /* a llowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAG S = 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 the ir attributes as well as customized built-in elements.\n * @property {RegExp|F unction|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `nul l` (disallow any custom elements)\n * @property {RegExp|Function|null} attribu teNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow an y attributes not on the allow list)\n * @property {boolean} allowCustomizedBui ltInElements allow custom elements derived from built-ins if they pass CUSTOM_EL EMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HAND LING = Object.seal(\n Object.create(null, {\n tagNameCheck: {\n w ritable: true,\n configurable: false,\n enumerable: true,\n value: null,\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null,\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false,\n },\n })\n );\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_T AGS) */\n let FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (over rides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n\n /* Decide if ARI A 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 un known protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Deci de 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 /* Ou tput should be safe for common template engines.\n * This means, DOMPurify rem oves 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_D OCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n\n /* Decide if all elements (e.g. s tyle, script) must be children of\n * document.body. By default, browsers migh t move them to document.head */\n let FORCE_BODY = false;\n\n /* Decide if a D OM `HTMLBodyElement` should be returned, instead of a html\n * string (or a Tr ustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is e nabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = f alse;\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_FRAGMENT = false;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not suppor ted */\n let RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from D OM clobbering attacks?\n * This sanitizes markups named with colliding, clobbe rable 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 W indow (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Pare nt-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4. 8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is imp lemented by prefixing `id` and `name` attributes\n * with a constant string, i .e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITI ZE_NAMED_PROPS_PREFIX = 'user-content-';\n\n /* Keep element content when remov ing element? */\n let KEEP_CONTENT = true;\n\n /* If a `Node` is passed to san itize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning 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 content of when KEEP_CONTENT is true */\n let FORBID_CO NTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, [\n 'annotatio n-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 'style',\n 'svg',\n 'template',\n 'thead',\n 't itle',\n 'video',\n 'xmp',\n ]);\n\n /* Tags that are safe for data: URI s */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, [\n 'audio',\n 'video',\n 'img',\n 'source',\n 'image',\n 'tra ck',\n ]);\n\n /* Attributes safe for values like \"javascript:\" */\n let UR I_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 'placeholder',\n 'role',\n 'summary',\n 'title',\n 'value',\n 'style',\n 'xmlns',\n ]);\n\n const MATHML_NAMESPACE = 'http: //www.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 namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n \n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n cons t DEFAULT_ALLOWED_NAMESPACES = addToSet(\n {},\n [MATHML_NAMESPACE, SVG_NA MESPACE, HTML_NAMESPACE],\n stringToString\n );\n\n /* Parsing of strict XH TML documents */\n let PARSER_MEDIA_TYPE;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc;\n\n /* Keep a reference to config to pas s to hooks */\n let CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n const formElement = document.createElement('form');\n\n const isRegexOrFunction = fu nction (testValue) {\n return testValue instanceof RegExp || testValue instan ceof Function;\n };\n\n /**\n * _parseConfig\n *\n * @param {Object} cf g optional config literal\n */\n // eslint-disable-next-line complexity\n co nst _parseConfig = function (cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if ( !cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n\n /* Shield conf iguration object from prototype pollution */\n cfg = clone(cfg);\n\n PARSE R_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1\n ? ( PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE)\n : (PARSER_MEDIA_TYPE = c fg.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 === 'application/xhtml+xml'\n ? stringToString\n : stringToLowerCase;\n\n /* Set configuration parameters */\n ALLOWED_TAG S =\n 'ALLOWED_TAGS' in cfg\n ? addToSet({}, cfg.ALLOWED_TAGS, trans formCaseFunc)\n : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR =\n 'ALLOW ED_ATTR' in cfg\n ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc)\n : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES =\n 'ALLOWED_NAMESPAC ES' in cfg\n ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString)\n : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES =\n 'ADD_URI_SAF E_ATTR' in cfg\n ? addToSet(\n clone(DEFAULT_URI_SAFE_ATTRIBUT ES), // eslint-disable-line indent\n cfg.ADD_URI_SAFE_ATTR, // eslint -disable-line indent\n transformCaseFunc // eslint-disable-line inden t\n ) // eslint-disable-line indent\n : DEFAULT_URI_SAFE_ATTRIBU TES;\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 transfo rmCaseFunc // eslint-disable-line indent\n ) // eslint-disable-line ind ent\n : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS =\n 'FORBID_CONT ENTS' 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 FORBID_ATTR =\n 'FORBID_ATTR' in cfg\n ? addToSet({}, cfg.FORBID_ATT R, 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 ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Defaul t true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // D efault false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== fa lse; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default f alse\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM _FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUST ED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = c fg.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; // Defa ult true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED _URI = cfg.ALLOWED_URI_REGEXP || EXPRESSIONS.IS_ALLOWED_URI;\n NAMESPACE = cf g.NAMESPACE || HTML_NAMESPACE;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT _HANDLING || {};\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n isRegexO rFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)\n ) {\n CUSTOM_ELEME NT_HANDLING.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_H ANDLING.attributeNameCheck =\n cfg.CUSTOM_ELEMENT_HANDLING.attributeNameC heck;\n }\n\n if (\n cfg.CUSTOM_ELEMENT_HANDLING &&\n typeof cfg .CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements ===\n 'boolean'\n ) {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements =\n cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n\n if (S AFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DO M_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_PROFILES.html === true) {\n addToSet (ALLOWED_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 , ATTRS.xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, TAGS.svgFilters);\n addToSet(ALLOWED_ATTR, ATTRS. svg);\n addToSet(ALLOWED_ATTR, ATTRS.xml);\n }\n\n if (USE_PROF ILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, TAGS.mathMl);\n a ddToSet(ALLOWED_ATTR, ATTRS.mathMl);\n addToSet(ALLOWED_ATTR, ATTRS.xml); \n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TA GS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, tr ansformCaseFunc);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\ n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE _ATTR, transformCaseFunc);\n }\n\n if (cfg.FORBID_CONTENTS) {\n if (F ORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(F ORBID_CONTENTS);\n }\n\n addToSet(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 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, se e #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['t body']);\n delete FORBID_TAGS.tbody;\n }\n\n // Prevent further manip ulation 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 MATHM L_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 nee d to specify them explicitly\n // so that they don't get erroneously deleted fr om\n // HTML namespace.\n const COMMON_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 MathML 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.svgFilters);\n addToSet(ALL_SVG_TAGS, TAGS .svgDisallowed);\n\n const ALL_MATHML_TAGS = addToSet({}, TAGS.mathMl);\n addT oSet(ALL_MATHML_TAGS, TAGS.mathMlDisallowed);\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-compli ant parser would never\n * return. Return true otherwise.\n */\n const _ch eckValidNamespace = function (element) {\n let parent = getParentNode(element );\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can b e null. We just simulate parent in this case.\n if (!parent || !parent.tagNam e) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'temp late',\n };\n }\n\n const tagName = stringToLowerCase(element.tagName );\n const parentTagName = stringToLowerCase(parent.tagName);\n\n if (!ALL OWED_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, t hen\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMES PACE) {\n return tagName === 'svg';\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 integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return (\n tagName === 'svg' &&\n (parentTagName === 'annotation-xml' ||\n MATHML_TEXT_INTEGRATIO N_POINTS[parentTagName])\n );\n }\n\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namesp ace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n\n if (element.nam espaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML nam espace 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 swi tch 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 elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switc h from 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 .namespaceURI === SVG_NAMESPACE &&\n !HTML_INTEGRATION_POINTS[parentTagNa me]\n ) {\n return false;\n }\n\n if (\n parent.nam espaceURI === MATHML_NAMESPACE &&\n !MATHML_TEXT_INTEGRATION_POINTS[paren tTagName]\n ) {\n return false;\n }\n\n // We disallow tag s that are specific for MathML\n // or SVG and should never appear in HTML namespace\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 PARSER_MEDIA_TYPE === 'application/xhtml+xml' &&\n ALLOWED_NAMESPACES[ele ment.namespaceURI]\n ) {\n return true;\n }\n\n // The code should never reach this place (this means\n // that the element somehow got namespa ce that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n\n /**\n * _forceRe move\n *\n * @param {Node} node a DOM node\n */\n const _forceRemove = f unction (node) {\n arrayPush(DOMPurify.removed, { element: node });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n node. parentNode.removeChild(node);\n } catch (_) {\n node.remove();\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribu te name\n * @param {Node} node a DOM node\n */\n const _removeAttribute = function (name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node,\n });\n } catch (_) {\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 } el se {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n\n /**\n * _initDocument\n *\n * @param {Stri ng} dirty a string of dirty markup\n * @return {Document} a DOM, filled with t he dirty markup\n */\n const _initDocument = function (dirty) {\n /* Creat e a HTML document */\n let doc;\n let leadingWhitespace;\n\n if (FORCE_ BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If F ORCE_BODY isn't used, leading whitespace 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 === 'appli cation/xhtml+xml' &&\n NAMESPACE === HTML_NAMESPACE\n ) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/n ormative.html#strict)\n dirty =\n '<html xmlns=\"http://www.w3.org/1 999/xhtml\"><head></head><body>' +\n dirty +\n '</body></html>';\n }\n\n const dirtyPayload = trustedTypesPolicy\n ? trustedTypesPolicy .createHTML(dirty)\n : dirty;\n /*\n * Use the DOMParser API by defa ult, fallback later if needs be\n * DOMParser not work for svg when has mult iple 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 DOMPars er is not available */\n if (!doc || !doc.documentElement) {\n doc = imp lementation.createDocument(NAMESPACE, 'template', null);\n try {\n d oc.documentElement.innerHTML = IS_EMPTY_INPUT\n ? emptyHTML\n : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n\n const body = doc.body || doc.documentElement ;\n\n if (dirty && leadingWhitespace) {\n body.insertBefore(\n do cument.createTextNode(leadingWhitespace),\n body.childNodes[0] || null\n );\n }\n\n /* Work on whole document or just its body */\n if (NAM ESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(\n d oc,\n WHOLE_DOCUMENT ? 'html' : 'body'\n )[0];\n }\n\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n\n /**\n * _createIterato r\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n const _createIterator = func tion (root) {\n return createNodeIterator.call(\n root.ownerDocument || root,\n root,\n // eslint-disable-next-line no-bitwise\n NodeFilt er.SHOW_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 clo bbered, false if safe\n */\n const _isClobbered = function (elm) {\n retur n (\n elm instanceof HTMLFormElement &&\n (typeof elm.nodeName !== 'st ring' ||\n typeof elm.textContent !== 'string' ||\n typeof elm.rem oveChild !== 'function' ||\n !(elm.attributes instanceof NamedNodeMap) || \n typeof elm.removeAttribute !== 'function' ||\n typeof elm.setAt tribute !== '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 obje ct is a DOM node\n */\n const _isNode = function (object) {\n return typeo f Node === 'object'\n ? object instanceof Node\n : object &&\n typeof object === 'object' &&\n typeof object.nodeType === 'number' & &\n typeof object.nodeName === 'string';\n };\n\n /**\n * _executeH ook\n * Execute user configurable hooks\n *\n * @param {String} entryPoin t 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 (entryPoint, currentNode, data) {\n if (!hook s[entryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], (h ook) => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n }; \n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect t extContent\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('be foreSanitizeElements', currentNode, null);\n\n /* Check if element is clobber ed or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(c urrentNode);\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', c urrentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS,\n });\n\n /* Detect mXSS attempts abusing namespace confusion */\n if (\n currentN ode.hasChildNodes() &&\n !_isNode(currentNode.firstElementChild) &&\n (!_isNode(currentNode.content) ||\n !_isNode(currentNode.content.firstEle mentChild)) &&\n regExpTest(/<[/\\w]/g, currentNode.innerHTML) &&\n re gExpTest(/<[/\\w]/g, currentNode.textContent)\n ) {\n _forceRemove(curre ntNode);\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[tag Name] && _basicCustomElementTest(tagName)) {\n if (\n CUSTOM_ELE MENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELE MENT_HANDLING.tagNameCheck, tagName)\n )\n return false;\n if (\n CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)\n )\n ret urn false;\n }\n\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNod es = getChildNodes(currentNode) || currentNode.childNodes;\n\n if (childN odes && parentNode) {\n const childCount = childNodes.length;\n\n for (let i = childCount - 1; i >= 0; --i) {\n parentNode.insertBe fore(\n cloneNode(childNodes[i], true),\n getNextSibli ng(currentNode)\n );\n }\n }\n }\n\n _force Remove(currentNode);\n return true;\n }\n\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValid Namespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\ n }\n\n /* Make sure that older browsers don't get noscript mXSS */\n i f (\n (tagName === 'noscript' || tagName === 'noembed') &&\n regExpTes t(/<\\/no(script|embed)/i, currentNode.innerHTML)\n ) {\n _forceRemove(c urrentNode);\n return true;\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n /* Get the element's text content */\n content = currentNode.textCont ent;\n content = stringReplace(content, MUSTACHE_EXPR, ' ');\n content = stringReplace(content, ERB_EXPR, ' ');\n content = stringReplace(content , TMPLIT_EXPR, ' ');\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });\n cur rentNode.textContent = content;\n }\n }\n\n /* Execute a hook if pres ent */\n _executeHook('afterSanitizeElements', currentNode, null);\n\n ret urn false;\n };\n\n /**\n * _isValidAttribute\n *\n * @param {string} l cTag Lowercase tag name of containing element.\n * @param {string} lcName Low ercase attribute name.\n * @param {string} value Attribute value.\n * @retu rn {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // esl int-disable-next-line complexity\n const _isValidAttribute = function (lcTag, l cName, value) {\n /* Make sure attribute cannot clobber */\n if (\n S ANITIZE_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 least one character after \"-\"\n (ht tps://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data- with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.or g/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e 804)\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(DA TA_ATTR, lcName)\n ) {\n // This attribute is safe\n } else if (ALLOW _ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) {\n // This attribute is safe\ n /* Otherwise, check the name is permitted */\n } else if (!ALLOWED_ATT R[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very 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_ELE MENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whate ver the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n (_basicCustomElementTest(lcTag) &&\n ((CUSTOM_ELEMENT_HANDLING.tagN ameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.ta gNameCheck, lcTag)) ||\n (CUSTOM_ELEMENT_HANDLING.tagNameCheck instan ceof 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 / / Alternative, second condition checks if it's an `is`-attribute, AND\n / / the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING. tagNameCheck\n (lcName === 'is' &&\n CUSTOM_ELEMENT_HANDLING.all owCustomizedBuiltInElements &&\n ((CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp &&\n regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameChe ck, value)) ||\n (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Fun ction &&\n CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))))\n ) {\n // If user has supplied a regexp or function in CUSTOM_ELEMENT_HANDLI NG.tagNameCheck, we need to also allow derived custom elements using the same ta gName test.\n // Additionally, we need to allow attributes passing the CU STOM_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 saf e\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 regEx pTest(IS_ALLOWED_URI, stringReplace(value, ATTR_WHITESPACE, ''))\n ) {\n // This attribute is safe\n /* Keep image data URIs alive if src/xlink:hre f is allowed */\n /* Further prevent gadget XSS for dynamically built scrip t tags */\n } else if (\n (lcName === 'src' || lcName === 'xlink:href' | | lcName === 'href') &&\n lcTag !== 'script' &&\n stringIndexOf(value, 'data:') === 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 time, 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 attribute s */\n // eslint-disable-next-line no-negated-condition\n } else if (!va lue) {\n // Binary attributes are safe at this point\n /* Anything els e, presume unsafe, do not add it back */\n } else {\n return false;\n }\n\n return true;\n };\n\n /**\n * _basicCustomElementCheck\n * check s 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-el ement-name\n * @param {string} tagName name of the tag of the node to sanitize \n */\n const _basicCustomElementTest = function (tagName) {\n return tagN ame.indexOf('-') > 0;\n };\n\n /**\n * _sanitizeAttributes\n *\n * @prot ect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @pro tect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n c onst _sanitizeAttributes = function (currentNode) {\n let attr;\n let valu e;\n let lcName;\n let l;\n /* Execute a hook if present */\n _execu teHook('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 hookEven t = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n a llowedAttributes: 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 val ue = name === 'value' ? attr.value : stringTrim(attr.value);\n lcName = tra nsformCaseFunc(name);\n\n /* Execute a hook if present */\n hookEvent. attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHook('uponSanitizeAttribute', cu rrentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Did the hoo ks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n c ontinue;\n }\n\n /* Remove attribute */\n _removeAttribute(name, currentNode);\n\n /* Did the hooks approve of the attribute? */\n if ( !hookEvent.keepAttr) {\n continue;\n }\n\n /* Work around a sec urity issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest( /\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n contin ue;\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 = st ringReplace(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 * Prefix id and name attributes with `user-content-`\n */\n if (SANIT IZE_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 value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n\n /* Handle attributes that require Trusted Types */\n if (\n trustedTyp esPolicy &&\n typeof trustedTypes === 'object' &&\n typeof trusted Types.getAttributeType === 'function'\n ) {\n if (namespaceURI) {\n /* Namespaces are not yet supported, see https://bugs.chromium.org/p/ch romium/issues/detail?id=1305293 */\n } else {\n switch (trustedT ypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n value = trustedTypesPolicy.createHTML(value);\n break;\n case 'TrustedScriptURL':\n value = trustedTypesPolicy.crea teScriptURL(value);\n break;\n default:\n b reak;\n }\n }\n }\n\n /* Handle invalid data-* attribu te set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x -schema\". */\n currentNode.setAttribute(name, value);\n }\n\n arrayPop(DOMPurify.removed);\n } catch (_) {}\n }\n\n /* Execut e a hook if present */\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFra gment} fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function (fragment) {\n let shadowNode;\n const shadowIterator = _createI terator(fragment);\n\n /* Execute a hook if present */\n _executeHook('bef oreSanitizeShadowDOM', fragment, null);\n\n while ((shadowNode = shadowIterat or.nextNode())) {\n /* Execute a hook if present */\n _executeHook('up onSanitizeShadowNode', 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 Doc umentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(sha dowNode);\n }\n\n /* Execute a hook if present */\n _executeHook('after SanitizeShadowDOM', fragment, null);\n };\n\n /**\n * Sanitize\n * Public method providing core sanitation functionality\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, cf g = {}) {\n let body;\n let importedNode;\n let currentNode;\n let r eturnNode;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_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 // es lint-disable-next-line no-negated-condition\n if (typeof dirty.toString !== 'function') {\n throw typeErrorCreate('toString is not a function');\n } else {\n dirty = dirty.toString();\n if (typeof dirty !== 's tring') {\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 config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.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 pr e-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.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 document to avoid\n elements being stri pped by the parser */\n body = _initDocument('<!---->');\n importedNod e = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n /* Node is already a body , use as is */\n body = importedNode;\n } else if (importedNode.node Name === 'HTML') {\n body = importedNode;\n } else {\n // esl int-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(i mportedNode);\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 // eslint-disable-next-line unicorn/prefer-inc ludes\n dirty.indexOf('<') === -1\n ) {\n return trustedTypes Policy && 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 (body && FORCE_BODY) {\n _forceRemove(bod y.firstChild);\n }\n\n /* Get node iterator */\n const nodeIterator = _ createIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created 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 if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShad owDOM(currentNode.content);\n }\n\n /* Check attributes, sanitize if n ecessary */\n _sanitizeAttributes(currentNode);\n }\n\n /* If we sani tized `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(bo dy.ownerDocument);\n\n while (body.firstChild) {\n // eslint-dis able-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 theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, t rue);\n }\n\n return returnNode;\n }\n\n let serializedHTML = WH OLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Serialize doctype if a llowed */\n if (\n WHOLE_DOCUMENT &&\n ALLOWED_TAGS['!doctype'] &&\ n body.ownerDocument &&\n body.ownerDocument.doctype &&\n body.ow nerDocument.doctype.name &&\n regExpTest(EXPRESSIONS.DOCTYPE_NAME, body.own erDocument.doctype.name)\n ) {\n serializedHTML =\n '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n }\n\n /* Sa nitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n seria lizedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR, ' ');\n serialized HTML = stringReplace(serializedHTML, ERB_EXPR, ' ');\n serializedHTML = str ingReplace(serializedHTML, TMPLIT_EXPR, ' ');\n }\n\n return trustedTypesP olicy && RETURN_TRUSTED_TYPE\n ? trustedTypesPolicy.createHTML(serializedHT ML)\n : serializedHTML;\n };\n\n /**\n * Public method to set the confi guration once\n * setConfig\n *\n * @param {Object} cfg configuration obje ct\n */\n DOMPurify.setConfig = function (cfg) {\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n /**\n * Public method to remove the configurati on\n * clearConfig\n *\n */\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n\n /**\n * Public method to ch eck if an attribute value is valid.\n * Uses last set config, if any. Otherwis e, uses 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.isValidAttrib ute = function (tag, attr, value) {\n /* Initialize shared config vars if nec essary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n\n const lcTa g = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n re turn _isValidAttribute(lcTag, lcName, value);\n };\n\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint ent ry point for the hook to add\n * @param {Function} hookFunction function to ex ecute\n */\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n i f (typeof hookFunction !== 'function') {\n return;\n }\n\n hooks[entr yPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunctio n);\n };\n\n /**\n * RemoveHook\n * Public method to remove a DOMPurify ho ok at a given entryPoint\n * (pops it from the stack of hooks if more are pres ent)\n *\n * @param {String} entryPoint entry point for the hook to remove\n * @return {Function} removed(popped) hook\n */\n DOMPurify.removeHook = fu nction (entryPoint) {\n if (hooks[entryPoint]) {\n return arrayPop(hooks [entryPoint]);\n }\n };\n\n /**\n * RemoveHooks\n * Public method to re move all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entr yPoint entry point for the hooks to remove\n */\n DOMPurify.removeHooks = fun ction (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [] ;\n }\n };\n\n /**\n * RemoveAllHooks\n * Public method to remove all D OMPurify hooks\n *\n */\n DOMPurify.removeAllHooks = function () {\n hoo ks = {};\n };\n\n return DOMPurify;\n}\n\nexport default createDOMPurify();\n" ],"names":["entries","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropert yDescriptor","Object","freeze","seal","create","apply","construct","Reflect","fu n","thisValue","args","x","Func","arrayForEach","unapply","Array","prototype","f orEach","arrayPop","pop","arrayPush","push","stringToLowerCase","String","toLowe rCase","stringToString","toString","stringMatch","match","stringReplace","replac e","stringIndexOf","indexOf","stringTrim","trim","regExpTest","RegExp","test","t ypeErrorCreate","unconstruct","TypeError","func","thisArg","addToSet","set","arr ay","transformCaseFunc","l","length","element","lcElement","clone","object","new Object","property","value","lookupGetter","prop","desc","get","fallbackValue","c onsole","warn","html","svg","svgFilters","svgDisallowed","mathMl","mathMlDisallo wed","text","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATT R","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","getGlo bal","window","_createTrustedTypesPolicy","trustedTypes","document","createPolic y","suffix","ATTR_NAME","currentScript","hasAttribute","getAttribute","policyNam e","createHTML","createScriptURL","scriptUrl","_","createDOMPurify","DOMPurify", "root","version","VERSION","removed","nodeType","isSupported","originalDocument" ,"DocumentFragment","HTMLTemplateElement","Node","Element","NodeFilter","NamedNo deMap","MozNamedAttrMap","HTMLFormElement","DOMParser","ElementPrototype","clone Node","getNextSibling","getChildNodes","getParentNode","template","createElement ","content","ownerDocument","trustedTypesPolicy","emptyHTML","implementation","c reateNodeIterator","createDocumentFragment","getElementsByTagName","importNode", "hooks","createHTMLDocument","EXPRESSIONS","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS" ,"TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","ATTRS","CUSTOM_ELEMENT_HANDLING", "tagNameCheck","writable","configurable","enumerable","attributeNameCheck","allo wCustomizedBuiltInElements","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW _DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPL ATES","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGME NT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_ PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAUL T_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES" ,"DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPAC E","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES ","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE" ,"CONFIG","formElement","isRegexOrFunction","testValue","Function","_parseConfig ","cfg","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS", "ADD_ATTR","table","tbody","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_PO INTS","COMMON_SVG_AND_HTML_ELEMENTS","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkVal idNamespace","parent","tagName","namespaceURI","parentTagName","Boolean","_force Remove","node","parentNode","removeChild","remove","_removeAttribute","name","at tribute","getAttributeNode","from","removeAttribute","setAttribute","_initDocume nt","dirty","doc","leadingWhitespace","matches","dirtyPayload","parseFromString" ,"documentElement","createDocument","innerHTML","body","insertBefore","createTex tNode","childNodes","call","_createIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW _TEXT","_isClobbered","elm","nodeName","textContent","attributes","hasChildNodes ","_isNode","_executeHook","entryPoint","currentNode","data","hook","_sanitizeEl ements","allowedTags","firstElementChild","_basicCustomElementTest","childCount" ,"i","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","attr","hookEven t","attrName","attrValue","keepAttr","allowedAttributes","forceKeepAttr","undefi ned","getAttributeType","setAttributeNS","_sanitizeShadowDOM","fragment","shadow Node","shadowIterator","nextNode","sanitize","importedNode","returnNode","append Child","firstChild","nodeIterator","shadowroot","shadowrootmod","serializedHTML" ,"outerHTML","doctype","setConfig","clearConfig","isValidAttribute","tag","addHo ok","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)