dompurify 3.4.12 → 3.4.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"purify.min.js","sources":["../src/utils.ts","../src/tags.ts","../src/attrs.ts","../src/regexp.ts","../src/purify.ts"],"sourcesContent":[null,null,null,null,null],"names":["entries","Object","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","seal","create","_ref","Reflect","apply","construct","x","func","thisArg","_len","arguments","length","args","Array","_key","Func","_len2","_key2","arrayForEach","unapply","prototype","forEach","arrayLastIndexOf","lastIndexOf","arrayPop","pop","arrayPush","push","arraySplice","splice","arrayIsArray","isArray","stringToLowerCase","String","toLowerCase","stringToString","toString","stringMatch","match","stringReplace","replace","stringIndexOf","indexOf","stringTrim","trim","numberToString","Number","booleanToString","Boolean","bigintToString","BigInt","symbolToString","Symbol","objectHasOwnProperty","hasOwnProperty","objectToString","regExpTest","RegExp","test","typeErrorCreate","TypeError","_len4","_key4","lastIndex","_len3","_key3","addToSet","set","array","transformCaseFunc","l","element","lcElement","cleanArray","index","clone","object","newObject","_ref2","_ref3","_slicedToArray","property","value","constructor","lookupGetter","prop","desc","get","html","svg","svgFilters","svgDisallowed","mathMl","mathMlDisallowed","text","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","ELEMENT_MARKUP_PROBE","COMMENT_MARKUP_PROBE","FALLBACK_TAG_CLOSE","SELF_CLOSING_TAG","NODE_TYPE","getGlobal","window","_resolveSetOption","cfg","key","fallback","options","base","transform","purify","createDOMPurify","undefined","DOMPurify","root","version","VERSION","removed","document","nodeType","Element","isSupported","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Node","NodeFilter","_window$NamedNodeMap","NamedNodeMap","MozNamedAttrMap","HTMLFormElement","DOMParser","trustedTypes","ElementPrototype","cloneNode","remove","getNextSibling","getChildNodes","getParentNode","getShadowRoot","getAttributes","getNodeType","getNodeName","template","createElement","content","ownerDocument","trustedTypesPolicy","defaultTrustedTypesPolicy","emptyHTML","defaultTrustedTypesPolicyResolved","IN_TRUSTED_TYPES_POLICY","_assertNotInTrustedTypesPolicy","_createTrustedHTML","createHTML","_getDefaultTrustedTypesPolicy","purifyHostElement","createPolicy","suffix","ATTR_NAME","hasAttribute","getAttribute","policyName","createScriptURL","scriptUrl","_","console","warn","_createTrustedTypesPolicy","_document","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","hooks","afterSanitizeAttributes","afterSanitizeElements","afterSanitizeShadowDOM","beforeSanitizeAttributes","beforeSanitizeElements","beforeSanitizeShadowDOM","uponSanitizeAttribute","uponSanitizeElement","uponSanitizeShadowNode","createHTMLDocument","EXPRESSIONS","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","ATTRS","CUSTOM_ELEMENT_HANDLING","tagNameCheck","writable","configurable","enumerable","attributeNameCheck","allowCustomizedBuiltInElements","FORBID_TAGS","FORBID_ATTR","EXTRA_ELEMENT_HANDLING","tagCheck","attributeCheck","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","SET_CONFIG_ALLOWED_TAGS","SET_CONFIG_ALLOWED_ATTR","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","DEFAULT_MATHML_TEXT_INTEGRATION_POINTS","MATHML_TEXT_INTEGRATION_POINTS","DEFAULT_HTML_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","CONFIG","formElement","isRegexOrFunction","testValue","Function","_parseConfig","_unused","isRegex","ALLOWED_URI_REGEXP","customElementHandling","ADD_TAGS","ADD_ATTR","ADD_URI_SAFE_ATTR","ADD_FORBID_CONTENTS","table","tbody","TRUSTED_TYPES_POLICY","previousTrustedTypesPolicy","error","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","parent","tagName","namespaceURI","parentTagName","_checkSvgNamespace","_checkMathMlNamespace","_checkHtmlNamespace","_forceRemove","node","removeChild","_neutralizeRoot","_neutralizeSubtree","childNodes","snapshot","child","attributes","i","attribute","name","removeAttribute","_removeAttribute","getAttributeNode","from","setAttribute","_stripDisallowedAttributes","stack","_initDocument","dirty","doc","leadingWhitespace","matches","dirtyPayload","parseFromString","documentElement","createDocument","innerHTML","body","insertBefore","createTextNode","call","_createNodeIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","SHOW_PROCESSING_INSTRUCTION","SHOW_CDATA_SECTION","_stripTemplateExpressions","_scrubTemplateExpressions","_node$querySelectorAl","normalize","walker","currentNode","nextNode","data","templates","querySelectorAll","tmpl","_isDocumentFragment","_isClobbered","realTagName","nodeName","textContent","hasChildNodes","_isNode","_executeHooks","hook","_sanitizeElements","allowedTags","firstElementChild","_isUnsafeNode","_isBasicCustomElement","parentNode","hoisted","_sanitizeDisallowedNode","_isValidAttribute","lcTag","lcName","nameIsPermitted","RESERVED_CUSTOM_ELEMENT_NAMES","_applyTrustedTypesToAttribute","getAttributeType","_createTrustedScriptURL","_setAttributeValue","setAttributeNS","_sanitizeAttributes","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","forceKeepAttr","attr","initValue","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","innerSr","_sanitizeAttachedShadowRoots","shadow","item","isElement","rootName","sr","sanitize","importedNode","returnNode","valueAsRecord","valueToString","stringified","stringifyValue","inPlace","_neutralizePatchLinkage","nn","appendChild","firstChild","walkRoot","nodeIterator","entry","shadowroot","shadowrootmode","serializedHTML","outerHTML","doctype","setConfig","clearConfig","isValidAttribute","tag","addHook","entryPoint","hookFunction","removeHook","removeHooks","removeAllHooks"],"mappings":"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AEjCA,GACiB,iBAAVA,GACPA,EAAMC,cAAgBzF,OAEtBmF,EAAUI,GAAYN,EAAMO,GAE5BL,EAAUI,GAAYC,EAG5B,CAEA,OAAOL,CACT,CAmEA,SAASO,EACPR,EACAS,GAEA,KAAkB,OAAXT,GAAiB,CACtB,MAAMU,EAAOxF,EAAyB8E,EAAQS,GAE9C,GAAIC,EAAM,CACR,GAAIA,EAAKC,IACP,OAAOpE,EAAQmE,EAAKC,KAGtB,GAA0B,mBAAfD,EAAKJ,MACd,OAAO/D,EAAQmE,EAAKJ,MAExB,CAEAN,EAAS/E,EAAe+E,EAC1B,CAMA,OAJA,WACE,OAAO,IACT,CAGF,CC1RO,MAAMY,EAAOzF,EAAO,CACzB,IACA,OACA,UACA,UACA,OACA,UACA,QACA,QACA,IACA,MACA,MACA,MACA,QACA,aACA,OACA,KACA,SACA,SACA,UACA,SACA,OACA,OACA,MACA,WACA,UACA,OACA,WACA,KACA,YACA,MACA,UACA,MACA,SACA,MACA,MACA,KACA,KACA,UACA,KACA,WACA,aACA,SACA,OACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,MACA,OACA,UACA,OACA,WACA,QACA,MACA,OACA,KACA,WACA,SACA,SACA,IACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,SACA,OACA,QACA,SACA,SACA,OACA,SACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,KACA,IACA,KACA,MACA,QACA,QAGW0F,EAAM1F,EAAO,CACxB,MACA,IACA,WACA,cACA,eACA,eACA,gBACA,mBACA,SACA,WACA,OACA,OACA,UACA,eACA,cACA,SACA,OACA,IACA,QACA,WACA,QACA,QACA,YACA,OACA,iBACA,SACA,OACA,WACA,QACA,OACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,QACA,SACA,SACA,OACA,WACA,QACA,OACA,QACA,OACA,UAGW2F,EAAa3F,EAAO,CAC/B,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,iBAOW4F,EAAgB5F,EAAO,CAClC,UACA,gBACA,SACA,UACA,YACA,mBACA,iBACA,gBACA,gBACA,gBACA,QACA,YACA,OACA,eACA,YACA,UACA,gBACA,SACA,MACA,aACA,UACA,QAGW6F,EAAS7F,EAAO,CAC3B,OACA,WACA,SACA,UACA,QACA,SACA,KACA,aACA,gBACA,KACA,KACA,QACA,UACA,WACA,QACA,OACA,KACA,SACA,QACA,SACA,OACA,OACA,UACA,SACA,MACA,QACA,MACA,SACA,aACA,gBAKW8F,EAAmB9F,EAAO,CACrC,UACA,cACA,aACA,WACA,YACA,UACA,UACA,SACA,SACA,QACA,YACA,aACA,iBACA,cACA,SAGW+F,EAAO/F,EAAO,CAAC,UC1RfyF,EAAOzF,EAAO,CACzB,SACA,SACA,QACA,MACA,iBACA,eACA,uBACA,WACA,aACA,UACA,SACA,UACA,cACA,cACA,UACA,OACA,QACA,QACA,QACA,OACA,UACA,UACA,aACA,WACA,eACA,SACA,cACA,WACA,WACA,UACA,MACA,WACA,0BACA,wBACA,WACA,YACA,UACA,eACA,cACA,OACA,MACA,UACA,SACA,SACA,OACA,OACA,WACA,KACA,QACA,YACA,YACA,QACA,OACA,QACA,OACA,OACA,UACA,OACA,MACA,MACA,YACA,QACA,SACA,MACA,YACA,WACA,QACA,OACA,QACA,UACA,aACA,SACA,OACA,UACA,OACA,UACA,cACA,cACA,UACA,gBACA,sBACA,SACA,UACA,UACA,aACA,WACA,MACA,WACA,MACA,WACA,OACA,OACA,UACA,aACA,QACA,WACA,QACA,OACA,QACA,OACA,OACA,UACA,QACA,MACA,SACA,OACA,QACA,UACA,WACA,QACA,YACA,OACA,SACA,SACA,QACA,QACA,OACA,UAGW0F,EAAM1F,EAAO,CACxB,gBACA,aACA,WACA,qBACA,YACA,SACA,gBACA,gBACA,UACA,gBACA,iBACA,QACA,OACA,KACA,QACA,OACA,gBACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,KACA,KACA,IACA,KACA,KACA,kBACA,YACA,UACA,UACA,oBACA,MACA,WACA,YACA,MACA,WACA,OACA,eACA,YACA,SACA,cACA,cACA,gBACA,cACA,YACA,mBACA,eACA,aACA,eACA,cACA,KACA,KACA,KACA,KACA,aACA,WACA,gBACA,oBACA,SACA,OACA,KACA,kBACA,KACA,MACA,YACA,IACA,KACA,KACA,KACA,KACA,UACA,YACA,aACA,WACA,OACA,eACA,iBACA,eACA,mBACA,iBACA,QACA,aACA,aACA,eACA,eACA,cACA,cACA,mBACA,YACA,MACA,OACA,YACA,QACA,SACA,OACA,MACA,OACA,aACA,SACA,WACA,UACA,QACA,SACA,cACA,SACA,WACA,cACA,OACA,aACA,sBACA,mBACA,eACA,SACA,gBACA,sBACA,iBACA,IACA,KACA,KACA,SACA,OACA,OACA,cACA,YACA,UACA,SACA,SACA,QACA,OACA,kBACA,QACA,mBACA,mBACA,eACA,cACA,eACA,cACA,aACA,eACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,SACA,eACA,QACA,eACA,iBACA,WACA,cACA,UACA,UACA,YACA,mBACA,cACA,kBACA,mBACA,iBACA,aACA,OACA,KACA,KACA,UACA,SACA,UACA,aACA,UACA,aACA,gBACA,gBACA,QACA,eACA,OACA,eACA,mBACA,mBACA,IACA,KACA,KACA,QACA,IACA,KACA,KACA,IACA,eAGW6F,EAAS7F,EAAO,CAC3B,SACA,cACA,QACA,WACA,QACA,cACA,cACA,gBACA,aACA,aACA,QACA,MACA,UACA,eACA,WACA,QACA,QACA,SACA,OACA,KACA,UACA,SACA,gBACA,SACA,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"}
1
+ {"version":3,"file":"purify.min.js","sources":["../src/utils.ts","../src/tags.ts","../src/attrs.ts","../src/regexp.ts","../src/purify.ts"],"sourcesContent":[null,null,null,null,null],"names":["entries","Object","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","seal","create","_ref","Reflect","apply","construct","x","func","thisArg","_len","arguments","length","args","Array","_key","Func","_len2","_key2","arrayForEach","unapply","prototype","forEach","arrayLastIndexOf","lastIndexOf","arrayPop","pop","arrayPush","push","arraySplice","splice","arrayIsArray","isArray","stringToLowerCase","String","toLowerCase","stringToString","toString","stringMatch","match","stringReplace","replace","stringIndexOf","indexOf","stringTrim","trim","numberToString","Number","booleanToString","Boolean","bigintToString","BigInt","symbolToString","Symbol","objectHasOwnProperty","hasOwnProperty","objectToString","regExpTest","RegExp","test","typeErrorCreate","TypeError","_len4","_key4","lastIndex","_len3","_key3","addToSet","set","array","transformCaseFunc","l","element","lcElement","cleanArray","index","clone","object","newObject","_ref2","_ref3","_slicedToArray","property","value","constructor","lookupGetter","prop","desc","get","html","svg","svgFilters","svgDisallowed","mathMl","mathMlDisallowed","text","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","ELEMENT_MARKUP_PROBE","COMMENT_MARKUP_PROBE","FALLBACK_TAG_CLOSE","SELF_CLOSING_TAG","NODE_TYPE","getGlobal","window","_resolveSetOption","cfg","key","fallback","options","base","transform","purify","createDOMPurify","undefined","DOMPurify","root","version","VERSION","removed","document","nodeType","Element","isSupported","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Node","NodeFilter","_window$NamedNodeMap","NamedNodeMap","MozNamedAttrMap","HTMLFormElement","DOMParser","trustedTypes","ElementPrototype","cloneNode","remove","getNextSibling","getChildNodes","getParentNode","getShadowRoot","getAttributes","getNodeType","getNodeName","getOwnerDocument","template","createElement","content","ownerDocument","trustedTypesPolicy","defaultTrustedTypesPolicy","emptyHTML","defaultTrustedTypesPolicyResolved","IN_TRUSTED_TYPES_POLICY","_assertNotInTrustedTypesPolicy","_createTrustedHTML","createHTML","_getDefaultTrustedTypesPolicy","purifyHostElement","createPolicy","suffix","ATTR_NAME","hasAttribute","getAttribute","policyName","createScriptURL","scriptUrl","_","console","warn","_createTrustedTypesPolicy","_document","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","hooks","afterSanitizeAttributes","afterSanitizeElements","afterSanitizeShadowDOM","beforeSanitizeAttributes","beforeSanitizeElements","beforeSanitizeShadowDOM","uponSanitizeAttribute","uponSanitizeElement","uponSanitizeShadowNode","createHTMLDocument","EXPRESSIONS","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","ATTRS","CUSTOM_ELEMENT_HANDLING","tagNameCheck","writable","configurable","enumerable","attributeNameCheck","allowCustomizedBuiltInElements","FORBID_TAGS","FORBID_ATTR","EXTRA_ELEMENT_HANDLING","tagCheck","attributeCheck","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","SET_CONFIG_ALLOWED_TAGS","SET_CONFIG_ALLOWED_ATTR","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","DEFAULT_MATHML_TEXT_INTEGRATION_POINTS","MATHML_TEXT_INTEGRATION_POINTS","DEFAULT_HTML_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","CONFIG","formElement","isRegexOrFunction","testValue","Function","_parseConfig","_unused","isRegex","ALLOWED_URI_REGEXP","customElementHandling","ADD_TAGS","ADD_ATTR","ADD_URI_SAFE_ATTR","ADD_FORBID_CONTENTS","table","tbody","TRUSTED_TYPES_POLICY","previousTrustedTypesPolicy","error","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","parent","tagName","namespaceURI","parentTagName","_checkSvgNamespace","_checkMathMlNamespace","_checkHtmlNamespace","_forceRemove","node","removeChild","_neutralizeRoot","_neutralizeSubtree","childNodes","snapshot","child","attributes","i","attribute","name","removeAttribute","_removeAttribute","getAttributeNode","from","setAttribute","_stripDisallowedAttributes","stack","_initDocument","dirty","doc","leadingWhitespace","matches","dirtyPayload","parseFromString","documentElement","createDocument","innerHTML","body","insertBefore","createTextNode","call","_createNodeIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","SHOW_PROCESSING_INSTRUCTION","SHOW_CDATA_SECTION","_stripTemplateExpressions","_scrubTemplateExpressions","_node$querySelectorAl","normalize","walker","currentNode","nextNode","data","templates","querySelectorAll","tmpl","_isDocumentFragment","_isClobbered","realTagName","nodeName","textContent","hasChildNodes","_isNode","_executeHooks","hook","_forkSharedAllowlist","hookList","defaultSet","setConfigSet","_sanitizeElements","allowedTags","firstElementChild","_isUnsafeNode","_isBasicCustomElement","parentNode","hoisted","_sanitizeDisallowedNode","_isValidAttribute","lcTag","lcName","nameIsPermitted","RESERVED_CUSTOM_ELEMENT_NAMES","_applyTrustedTypesToAttribute","getAttributeType","_createTrustedScriptURL","_setAttributeValue","setAttributeNS","_sanitizeAttributes","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","forceKeepAttr","attr","initValue","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","innerSr","_sanitizeAttachedShadowRoots","shadow","item","isElement","rootName","sr","sanitize","importedNode","returnNode","valueAsRecord","valueToString","stringified","stringifyValue","inPlace","_neutralizePatchLinkage","nn","appendChild","firstChild","walkRoot","nodeIterator","entry","shadowroot","shadowrootmode","serializedHTML","outerHTML","doctype","setConfig","clearConfig","isValidAttribute","tag","addHook","entryPoint","hookFunction","removeHook","removeHooks","removeAllHooks"],"mappings":"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AEjCA,GACiB,iBAAVA,GACPA,EAAMC,cAAgBzF,OAEtBmF,EAAUI,GAAYN,EAAMO,GAE5BL,EAAUI,GAAYC,EAG5B,CAEA,OAAOL,CACT,CAmEA,SAASO,EACPR,EACAS,GAEA,KAAkB,OAAXT,GAAiB,CACtB,MAAMU,EAAOxF,EAAyB8E,EAAQS,GAE9C,GAAIC,EAAM,CACR,GAAIA,EAAKC,IACP,OAAOpE,EAAQmE,EAAKC,KAGtB,GAA0B,mBAAfD,EAAKJ,MACd,OAAO/D,EAAQmE,EAAKJ,MAExB,CAEAN,EAAS/E,EAAe+E,EAC1B,CAMA,OAJA,WACE,OAAO,IACT,CAGF,CC1RO,MAAMY,EAAOzF,EAAO,CACzB,IACA,OACA,UACA,UACA,OACA,UACA,QACA,QACA,IACA,MACA,MACA,MACA,QACA,aACA,OACA,KACA,SACA,SACA,UACA,SACA,OACA,OACA,MACA,WACA,UACA,OACA,WACA,KACA,YACA,MACA,UACA,MACA,SACA,MACA,MACA,KACA,KACA,UACA,KACA,WACA,aACA,SACA,OACA,SACA,OACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,SACA,KACA,OACA,IACA,MACA,QACA,MACA,MACA,QACA,SACA,KACA,OACA,MACA,OACA,UACA,OACA,WACA,QACA,MACA,OACA,KACA,WACA,SACA,SACA,IACA,UACA,MACA,WACA,IACA,KACA,KACA,OACA,IACA,OACA,SACA,UACA,SACA,SACA,OACA,QACA,SACA,SACA,OACA,SACA,SACA,QACA,MACA,UACA,MACA,QACA,QACA,KACA,WACA,WACA,QACA,KACA,QACA,OACA,KACA,QACA,KACA,IACA,KACA,MACA,QACA,QAGW0F,EAAM1F,EAAO,CACxB,MACA,IACA,WACA,cACA,eACA,eACA,gBACA,mBACA,SACA,WACA,OACA,OACA,UACA,eACA,cACA,SACA,OACA,IACA,QACA,WACA,QACA,QACA,YACA,OACA,iBACA,SACA,OACA,WACA,QACA,OACA,OACA,UACA,UACA,WACA,iBACA,OACA,OACA,QACA,SACA,SACA,OACA,WACA,QACA,OACA,QACA,OACA,UAGW2F,EAAa3F,EAAO,CAC/B,UACA,gBACA,sBACA,cACA,mBACA,oBACA,oBACA,iBACA,eACA,UACA,UACA,UACA,UACA,UACA,iBACA,UACA,UACA,cACA,eACA,WACA,eACA,qBACA,cACA,SACA,iBAOW4F,EAAgB5F,EAAO,CAClC,UACA,gBACA,SACA,UACA,YACA,mBACA,iBACA,gBACA,gBACA,gBACA,QACA,YACA,OACA,eACA,YACA,UACA,gBACA,SACA,MACA,aACA,UACA,QAGW6F,EAAS7F,EAAO,CAC3B,OACA,WACA,SACA,UACA,QACA,SACA,KACA,aACA,gBACA,KACA,KACA,QACA,UACA,WACA,QACA,OACA,KACA,SACA,QACA,SACA,OACA,OACA,UACA,SACA,MACA,QACA,MACA,SACA,aACA,gBAKW8F,EAAmB9F,EAAO,CACrC,UACA,cACA,aACA,WACA,YACA,UACA,UACA,SACA,SACA,QACA,YACA,aACA,iBACA,cACA,SAGW+F,EAAO/F,EAAO,CAAC,UC1RfyF,EAAOzF,EAAO,CACzB,SACA,SACA,QACA,MACA,iBACA,eACA,uBACA,WACA,aACA,UACA,SACA,UACA,cACA,cACA,UACA,OACA,QACA,QACA,QACA,OACA,UACA,UACA,aACA,WACA,eACA,SACA,cACA,WACA,WACA,UACA,MACA,WACA,0BACA,wBACA,WACA,YACA,UACA,eACA,cACA,OACA,MACA,UACA,SACA,SACA,OACA,OACA,WACA,KACA,QACA,YACA,YACA,QACA,OACA,QACA,OACA,OACA,UACA,OACA,MACA,MACA,YACA,QACA,SACA,MACA,YACA,WACA,QACA,OACA,QACA,UACA,aACA,SACA,OACA,UACA,OACA,UACA,cACA,cACA,UACA,gBACA,sBACA,SACA,UACA,UACA,aACA,WACA,MACA,WACA,MACA,WACA,OACA,OACA,UACA,aACA,QACA,WACA,QACA,OACA,QACA,OACA,OACA,UACA,QACA,MACA,SACA,OACA,QACA,UACA,WACA,QACA,YACA,OACA,SACA,SACA,QACA,QACA,OACA,UAGW0F,EAAM1F,EAAO,CACxB,gBACA,aACA,WACA,qBACA,YACA,SACA,gBACA,gBACA,UACA,gBACA,iBACA,QACA,OACA,KACA,QACA,OACA,gBACA,YACA,YACA,QACA,sBACA,8BACA,gBACA,kBACA,KACA,KACA,IACA,KACA,KACA,kBACA,YACA,UACA,UACA,oBACA,MACA,WACA,YACA,MACA,WACA,OACA,eACA,YACA,SACA,cACA,cACA,gBACA,cACA,YACA,mBACA,eACA,aACA,eACA,cACA,KACA,KACA,KACA,KACA,aACA,WACA,gBACA,oBACA,SACA,OACA,KACA,kBACA,KACA,MACA,YACA,IACA,KACA,KACA,KACA,KACA,UACA,YACA,aACA,WACA,OACA,eACA,iBACA,eACA,mBACA,iBACA,QACA,aACA,aACA,eACA,eACA,cACA,cACA,mBACA,YACA,MACA,OACA,YACA,QACA,SACA,OACA,MACA,OACA,aACA,SACA,WACA,UACA,QACA,SACA,cACA,SACA,WACA,cACA,OACA,aACA,sBACA,mBACA,eACA,SACA,gBACA,sBACA,iBACA,IACA,KACA,KACA,SACA,OACA,OACA,cACA,YACA,UACA,SACA,SACA,QACA,OACA,kBACA,QACA,mBACA,mBACA,eACA,cACA,eACA,cACA,aACA,eACA,mBACA,oBACA,iBACA,kBACA,oBACA,iBACA,SACA,eACA,QACA,eACA,iBACA,WACA,cACA,UACA,UACA,YACA,mBACA,cACA,kBACA,mBACA,iBACA,aACA,OACA,KACA,KACA,UACA,SACA,UACA,aACA,UACA,aACA,gBACA,gBACA,QACA,eACA,OACA,eACA,mBACA,mBACA,IACA,KACA,KACA,QACA,IACA,KACA,KACA,IACA,eAGW6F,EAAS7F,EAAO,CAC3B,SACA,cACA,QACA,WACA,QACA,cACA,cACA,gBACA,aACA,aACA,QACA,MACA,UACA,eACA,WACA,QACA,QACA,SACA,OACA,KACA,UACA,SACA,gBACA,SACA,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"}
package/package.json CHANGED
@@ -154,7 +154,7 @@
154
154
  },
155
155
  "name": "dompurify",
156
156
  "description": "DOMPurify is a DOM-only, super-fast, uber-tolerant XSS sanitizer for HTML, MathML and SVG. It runs as JavaScript and works in all modern browsers, as well as in Node.js (via jsdom). DOMPurify is written by security people who have vast background in web attacks and XSS. Fear not.",
157
- "version": "3.4.12",
157
+ "version": "3.4.13",
158
158
  "directories": {
159
159
  "test": "test"
160
160
  },
package/src/purify.ts CHANGED
@@ -213,6 +213,10 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
213
213
  Node && Node.prototype ? lookupGetter(Node.prototype, 'nodeType') : null;
214
214
  const getNodeName =
215
215
  Node && Node.prototype ? lookupGetter(Node.prototype, 'nodeName') : null;
216
+ const getOwnerDocument =
217
+ Node && Node.prototype
218
+ ? lookupGetter(Node.prototype, 'ownerDocument')
219
+ : null;
216
220
 
217
221
  // As per issue #47, the web-components registry is inherited by a
218
222
  // new document created via createHTMLDocument. As per the spec
@@ -1509,8 +1513,18 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
1509
1513
  * @return The created NodeIterator
1510
1514
  */
1511
1515
  const _createNodeIterator = function (root: Node): NodeIterator {
1516
+ /* Read ownerDocument through the cached Node.prototype getter, never the
1517
+ direct property. HTMLFormElement has [LegacyOverrideBuiltIns], so a
1518
+ clobbering child (<input name="ownerDocument"> or a form-associated
1519
+ external input) shadows the prototype getter and makes a direct read
1520
+ return that <input>. createNodeIterator.call(<input>, ...) then throws
1521
+ "Illegal invocation", and on the IN_PLACE path that throw lands before
1522
+ the walk's fail-closed barrier - leaving the caller's live tree, with
1523
+ any already-armed handler in it, un-neutralized. The cached getter
1524
+ returns the real Document regardless of the clobber. */
1525
+ const doc = getOwnerDocument ? getOwnerDocument(root) : root.ownerDocument;
1512
1526
  return createNodeIterator.call(
1513
- root.ownerDocument || root,
1527
+ doc || root,
1514
1528
  root,
1515
1529
  // eslint-disable-next-line no-bitwise
1516
1530
  NodeFilter.SHOW_ELEMENT |
@@ -1558,8 +1572,12 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
1558
1572
  */
1559
1573
  const _scrubTemplateExpressions = function (node: Element): void {
1560
1574
  node.normalize();
1575
+ /* Clobber-safe ownerDocument read, same reasoning as _createNodeIterator:
1576
+ under SAFE_FOR_TEMPLATES this runs on the live IN_PLACE root, which may
1577
+ carry a form-named-getter override of ownerDocument. */
1578
+ const doc = getOwnerDocument ? getOwnerDocument(node) : node.ownerDocument;
1561
1579
  const walker = createNodeIterator.call(
1562
- node.ownerDocument || node,
1580
+ doc || node,
1563
1581
  node,
1564
1582
  // eslint-disable-next-line no-bitwise
1565
1583
  NodeFilter.SHOW_TEXT |
@@ -1779,7 +1797,8 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
1779
1797
  */
1780
1798
  const _sanitizeDisallowedNode = function (
1781
1799
  currentNode: any,
1782
- tagName: string
1800
+ tagName: string,
1801
+ root: Node
1783
1802
  ): boolean {
1784
1803
  /* Check if we have a custom element to handle */
1785
1804
  if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {
@@ -1813,31 +1832,31 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
1813
1832
  if (childNodes && parentNode) {
1814
1833
  const childCount = childNodes.length;
1815
1834
 
1816
- /* In-place: hoist the *original* children so the iterator visits
1817
- and sanitises them through the same allowlist pass as every other
1818
- node. The caller built the tree in the live document, so the
1819
- originals carry already-queued resource events (`<img onerror>`,
1820
- `<video>`/`<audio>` error, lazy/`onload`, …); cloning would leave
1821
- those originals detached but still armed, firing in page scope
1822
- while the returned tree looked clean. Moving is safe in-place: the
1823
- root is pre-validated as an allowed tag and so is never the node
1824
- being removed, which keeps `parentNode` inside the iterator root
1825
- and the relocated child inside the serialised tree.
1826
-
1827
- Otherwise (string / DOM-copy paths): clone. The iterator is rooted
1828
- at and the result serialised from `body`, so a restrictive
1829
- ALLOWED_TAGS that removes `body` itself must leave its content in
1830
- place, which only cloning does; and those paths parse into an
1831
- inert document, so their discarded originals never had a queued
1832
- event to neutralise.
1835
+ /* Hoist by moving each child up one level rather than deep-cloning
1836
+ it. Moving transfers every descendant exactly once, so a chain of
1837
+ nested disallowed elements costs O(n) instead of the O(n^2) that
1838
+ re-cloning the shrinking subtree at each level produced; it also
1839
+ empties the removed original, so `DOMPurify.removed` no longer
1840
+ pins whole subtrees. Moving preserves the in-place guarantee too:
1841
+ an original carrying already-queued resource events (`<img
1842
+ onerror>`, `<video>`/`<audio>` error, lazy/`onload`, …) is
1843
+ relocated and sanitised rather than left detached but still armed.
1844
+
1845
+ The sole case that must clone is removing the walk root itself.
1846
+ The result is serialised from the root's subtree, so a restrictive
1847
+ ALLOWED_TAGS that strips the root (`body` on the string path) must
1848
+ leave the content inside it, which only cloning does. In IN_PLACE
1849
+ the root is pre-validated as an allowed tag and so is never removed
1850
+ here, so that path always takes the move branch.
1833
1851
 
1834
1852
  `childNodes` is live; a tail-to-head walk keeps `childNodes[i]`
1835
1853
  valid whether we move (drops the trailing entry) or clone (leaves
1836
1854
  the list intact). */
1837
1855
  for (let i = childCount - 1; i >= 0; --i) {
1838
- const hoisted = IN_PLACE
1839
- ? childNodes[i]
1840
- : cloneNode(childNodes[i], true);
1856
+ const hoisted =
1857
+ currentNode === root
1858
+ ? cloneNode(childNodes[i], true)
1859
+ : childNodes[i];
1841
1860
  parentNode.insertBefore(hoisted, getNextSibling(currentNode));
1842
1861
  }
1843
1862
  }
@@ -1847,6 +1866,33 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
1847
1866
  return true;
1848
1867
  };
1849
1868
 
1869
+ /**
1870
+ * Fork a hook-mutable allowlist off its shared binding the first time a
1871
+ * (possibly lazily-installed) uponSanitize* hook is about to see it, so the
1872
+ * hook cannot widen the per-instance default or the setConfig binding by
1873
+ * reference and leak past the call. Returns the set unchanged once it is
1874
+ * already call-local, so repeated calls across elements are idempotent.
1875
+ *
1876
+ * @param hookList the uponSanitize* hook array for this event
1877
+ * @param set the current ALLOWED_TAGS / ALLOWED_ATTR binding
1878
+ * @param defaultSet the per-instance DEFAULT_ALLOWED_* constant
1879
+ * @param setConfigSet the captured setConfig() binding, or null
1880
+ * @return a call-local clone if a hook is present and set is still shared,
1881
+ * else set unchanged
1882
+ */
1883
+ const _forkSharedAllowlist = function <T extends Record<string, any>>(
1884
+ hookList: unknown[],
1885
+ set: T,
1886
+ defaultSet: T,
1887
+ setConfigSet: T | null
1888
+ ): T {
1889
+ if (hookList.length === 0) {
1890
+ return set;
1891
+ }
1892
+
1893
+ return set === defaultSet || set === setConfigSet ? clone(set) : set;
1894
+ };
1895
+
1850
1896
  /**
1851
1897
  * _sanitizeElements
1852
1898
  *
@@ -1861,9 +1907,15 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
1861
1907
  /* Execute a hook if present */
1862
1908
  _executeHooks(hooks.beforeSanitizeElements, currentNode, null);
1863
1909
 
1864
- /* A hook may have detached the node treat it as removed (see the
1865
- detached-node comment after the uponSanitizeElement hook below). */
1910
+ /* A hook may have detached the node - treat it as removed (see the
1911
+ detached-node comment after the uponSanitizeElement hook below). On
1912
+ the IN_PLACE path, neutralize the detached subtree first so a queued
1913
+ resource handler on it cannot fire in page scope after we return. */
1866
1914
  if (currentNode !== root && getParentNode(currentNode) === null) {
1915
+ if (IN_PLACE) {
1916
+ _neutralizeSubtree(currentNode);
1917
+ }
1918
+
1867
1919
  return true;
1868
1920
  }
1869
1921
 
@@ -1878,6 +1930,18 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
1878
1930
  getNodeName ? getNodeName(currentNode) : currentNode.nodeName
1879
1931
  );
1880
1932
 
1933
+ /* Close the pre-walk clone-guard's timing gap: an uponSanitizeElement
1934
+ hook may have been installed after that guard sampled the hook arrays
1935
+ (e.g. lazily from beforeSanitizeElements), leaving ALLOWED_TAGS still
1936
+ aliasing a shared binding that a widening hook would mutate by
1937
+ reference. Fork it before exposing it to the hook. */
1938
+ ALLOWED_TAGS = _forkSharedAllowlist(
1939
+ hooks.uponSanitizeElement,
1940
+ ALLOWED_TAGS,
1941
+ DEFAULT_ALLOWED_TAGS,
1942
+ SET_CONFIG_ALLOWED_TAGS
1943
+ );
1944
+
1881
1945
  /* Execute a hook if present */
1882
1946
  _executeHooks(hooks.uponSanitizeElement, currentNode, {
1883
1947
  tagName,
@@ -1896,10 +1960,23 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
1896
1960
  opposite of a node that is already safely gone. The walk root is
1897
1961
  exempt: a detached IN_PLACE root is legitimate input and must still
1898
1962
  be fully sanitized, and a kill-decision on it must keep hitting the
1899
- REPORT-3 throw. Nodes detached by hooks are the hook's
1900
- responsibility: they are not recorded in DOMPurify.removed and are
1901
- not neutralized by the post-walk IN_PLACE pass. */
1963
+ REPORT-3 throw. Nodes detached by hooks stay the hook's
1964
+ responsibility for placement: they are not recorded in
1965
+ DOMPurify.removed, so the post-walk IN_PLACE pass (which iterates
1966
+ DOMPurify.removed) does not reach them. But a hook-detached subtree
1967
+ can still hold a queued resource-event handler - e.g. an <img onload>
1968
+ that began loading when the caller built the live tree - which fires
1969
+ in page scope after sanitize returns even though the handler never
1970
+ reached the returned tree. That is the audit-5 F1 hazard, and the
1971
+ documented node.remove() hook pattern walks straight into it. So on
1972
+ the IN_PLACE path we neutralize the detached subtree inline here,
1973
+ stripping its non-allow-listed attributes before returning, exactly
1974
+ as the post-walk pass does for _forceRemove'd subtrees. */
1902
1975
  if (currentNode !== root && getParentNode(currentNode) === null) {
1976
+ if (IN_PLACE) {
1977
+ _neutralizeSubtree(currentNode);
1978
+ }
1979
+
1903
1980
  return true;
1904
1981
  }
1905
1982
 
@@ -1918,7 +1995,7 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
1918
1995
  ) &&
1919
1996
  !ALLOWED_TAGS[tagName])
1920
1997
  ) {
1921
- const removed = _sanitizeDisallowedNode(currentNode, tagName);
1998
+ const removed = _sanitizeDisallowedNode(currentNode, tagName, root);
1922
1999
 
1923
2000
  /* A false return means the node is a custom element kept via
1924
2001
  CUSTOM_ELEMENT_HANDLING - the only keep path through
@@ -2250,6 +2327,15 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
2250
2327
  return;
2251
2328
  }
2252
2329
 
2330
+ /* Same lazy-install guard as uponSanitizeElement (see there): fork the
2331
+ attribute allowlist off its shared binding before a hook can see it. */
2332
+ ALLOWED_ATTR = _forkSharedAllowlist(
2333
+ hooks.uponSanitizeAttribute,
2334
+ ALLOWED_ATTR,
2335
+ DEFAULT_ALLOWED_ATTR,
2336
+ SET_CONFIG_ALLOWED_ATTR
2337
+ );
2338
+
2253
2339
  const hookEvent = {
2254
2340
  attrName: '',
2255
2341
  attrValue: '',
@@ -2692,18 +2778,21 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
2692
2778
 
2693
2779
  /* Get node iterator */
2694
2780
  const walkRoot: Node = inPlace ? (dirty as Node) : body;
2695
- const nodeIterator = _createNodeIterator(walkRoot);
2696
2781
 
2697
2782
  /* Now start iterating over the created document.
2698
2783
  The walk runs inside an exception barrier (campaign-3 F2): a re-entrant
2699
2784
  engine/custom-element mutation can detach a node mid-walk so
2700
2785
  `_forceRemove`'s parentless guard throws, aborting the loop. Without the
2701
2786
  barrier the caller's in-place tree would be left half-sanitized with the
2702
- unvisited tail still armed. On any throw we fail closed — strip the
2703
- in-place root bare then rethrow so the existing throw contract is
2704
- preserved. (String/DOM-copy paths never return the partial body, so the
2705
- propagating throw is already fail-closed there.) */
2787
+ unvisited tail still armed. _createNodeIterator itself is inside the
2788
+ barrier too: constructing the iterator dereferences the root's document,
2789
+ and any failure there (e.g. an exotic/clobbered root) must still fail
2790
+ closed rather than skip the neutralize. On any throw we fail closed -
2791
+ strip the in-place root bare - then rethrow so the existing throw
2792
+ contract is preserved. (String/DOM-copy paths never return the partial
2793
+ body, so the propagating throw is already fail-closed there.) */
2706
2794
  try {
2795
+ const nodeIterator = _createNodeIterator(walkRoot);
2707
2796
  while ((currentNode = nodeIterator.nextNode())) {
2708
2797
  /* Sanitize tags and elements */
2709
2798
  _sanitizeElements(currentNode, walkRoot);