dompurify 3.4.6 → 3.4.8

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","NODE_TYPE","getGlobal","window","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","emptyHTML","_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","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","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","CONFIG","formElement","isRegexOrFunction","testValue","Function","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","_unused","isRegex","ALLOWED_URI_REGEXP","customElementHandling","ADD_TAGS","ADD_ATTR","ADD_FORBID_CONTENTS","table","tbody","TRUSTED_TYPES_POLICY","createHTML","createScriptURL","purifyHostElement","createPolicy","suffix","ATTR_NAME","hasAttribute","getAttribute","policyName","scriptUrl","_","console","warn","_createTrustedTypesPolicy","ALL_SVG_TAGS","ALL_MATHML_TAGS","_forceRemove","node","removeChild","_removeAttribute","name","attribute","getAttributeNode","from","removeAttribute","setAttribute","_initDocument","dirty","doc","leadingWhitespace","matches","dirtyPayload","parseFromString","documentElement","createDocument","innerHTML","body","insertBefore","createTextNode","childNodes","call","_createNodeIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","SHOW_PROCESSING_INSTRUCTION","SHOW_CDATA_SECTION","_scrubTemplateExpressions","normalize","walker","currentNode","nextNode","data","expr","_isClobbered","realTagName","nodeName","textContent","attributes","namespaceURI","hasChildNodes","_isDocumentFragment","_isNode","_executeHooks","hook","_sanitizeElements","tagName","allowedTags","firstElementChild","_isBasicCustomElement","parentNode","i","childClone","parent","parentTagName","_checkValidNamespace","_isValidAttribute","lcTag","lcName","nameIsPermitted","RESERVED_CUSTOM_ELEMENT_NAMES","_sanitizeAttributes","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","forceKeepAttr","attr","initValue","getAttributeType","setAttributeNS","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","_sanitizeAttachedShadowRoots","sr","shadowRoot","snapshot","child","sanitize","importedNode","returnNode","valueAsRecord","valueToString","stringified","stringifyValue","nn","appendChild","firstChild","nodeIterator","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,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,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,SACA,iBACA,YACA,WACA,cACA,UACA,UACA,gBACA,WACA,WACA,OACA,WACA,WACA,aACA,UACA,SACA,SACA,cACA,gBACA,uBACA,YACA,YACA,aACA,WACA,iBACA,iBACA,YACA,UACA,QACA,UAGWgG,EAAMhG,EAAO,CACxB,aACA,SACA,cACA,YACA,gBCtXWiG,EAAgBhG,EAAK,yBACrBiG,EAAWjG,EAAK,yBAChBkG,EAAclG,EAAK,eACnBmG,EAAYnG,EAAK,gCACjBoG,GAAYpG,EAAK,kBACjBqG,GAAiBrG,EAC5B,oGAEWsG,GAAoBtG,EAAK,yBACzBuG,GAAkBvG,EAC7B,+DAEWwG,GAAexG,EAAK,WACpByG,GAAiBzG,EAAK,4BC0B7B0G,GACK,EADLA,GAGE,EAHFA,GAOoB,EAPpBA,GAQK,EARLA,GASM,EATNA,GAWc,GAIdC,GAAY,WAChB,MAAyB,oBAAXC,OAAyB,KAAOA,MAChD,EAogEA,IAAAC,GAl8DA,SAASC,IAAgD,IAAhCF,EAAAlG,UAAAC,OAAA,QAAAoG,IAAArG,UAAA,GAAAA,UAAA,GAAqBiG,KAC5C,MAAMK,EAAwBC,GAAqBH,EAAgBG,GAMnE,GAJAD,EAAUE,QAAUC,QAEpBH,EAAUI,QAAU,IAGjBR,IACAA,EAAOS,UACRT,EAAOS,SAASC,WAAaZ,KAC5BE,EAAOW,QAMR,OAFAP,EAAUQ,aAAc,EAEjBR,EAGT,IAAMK,EAAaT,EAAbS,SAEN,MAAMI,EAAmBJ,EACnBK,EACJD,EAAiBC,cAWfd,EATFe,uBACAC,EAQEhB,EARFgB,oBACAC,EAOEjB,EAPFiB,KACAN,EAMEX,EANFW,QACAO,EAKElB,EALFkB,WAAUC,EAKRnB,EAJFoB,kBAAY,IAAAD,IAAGnB,EAAOoB,cAAiBpB,EAAeqB,iBAIpDrB,EAHFsB,sBACAC,EAEEvB,EAFFuB,UACAC,EACExB,EADFwB,aAGIC,GAAmBd,EAAQnG,UAE3BkH,GAAYlD,EAAaiD,GAAkB,aAC3CE,GAASnD,EAAaiD,GAAkB,UACxCG,GAAiBpD,EAAaiD,GAAkB,eAChDI,GAAgBrD,EAAaiD,GAAkB,cAC/CK,GAAgBtD,EAAaiD,GAAkB,cAC/CM,GAAgBvD,EAAaiD,GAAkB,cAC/CO,GAAgBxD,EAAaiD,GAAkB,cAC/CQ,GACJhB,GAAQA,EAAKzG,UAAYgE,EAAayC,EAAKzG,UAAW,YAAc,KAChE0H,GACJjB,GAAQA,EAAKzG,UAAYgE,EAAayC,EAAKzG,UAAW,YAAc,KAQtE,GAAmC,mBAAxBwG,EAAoC,CAC7C,MAAMmB,EAAW1B,EAAS2B,cAAc,YACpCD,EAASE,SAAWF,EAASE,QAAQC,gBACvC7B,EAAW0B,EAASE,QAAQC,cAEhC,CAEA,IAAIC,GACAC,GAAY,GAEhB,MAAAC,GAKIhC,EAJFiC,GAAcD,GAAdC,eACAC,GAAkBF,GAAlBE,mBACAC,GAAsBH,GAAtBG,uBACAC,GAAoBJ,GAApBI,qBAEMC,GAAejC,EAAfiC,WAER,IAAIC,GAxFG,CACLC,wBAAyB,GACzBC,sBAAuB,GACvBC,uBAAwB,GACxBC,yBAA0B,GAC1BC,uBAAwB,GACxBC,wBAAyB,GACzBC,sBAAuB,GACvBC,oBAAqB,GACrBC,uBAAwB,IAoF1BpD,EAAUQ,YACW,mBAAZ/H,GACkB,mBAAlBiJ,IACPY,SACsCvC,IAAtCuC,GAAee,mBAEjB,MACErE,GAQEsE,EAPFrE,GAOEqE,EANFpE,GAMEoE,EALFnE,GAKEmE,EAJFlE,GAIEkE,GAHFhE,GAGEgE,GAFF/D,GAEE+D,GADF7D,GACE6D,GAEJ,IAAMjE,GAAmBiE,GAQrBC,GAAe,KACnB,MAAMC,GAAuBtG,EAAS,CAAA,EAAI,IACrCuG,KACAA,KACAA,KACAA,KACAA,IAIL,IAAIC,GAAe,KACnB,MAAMC,GAAuBzG,EAAS,CAAA,EAAI,IACrC0G,KACAA,KACAA,KACAA,IASL,IAAIC,GAA0BnL,OAAOM,KACnCC,EAAO,KAAM,CACX6K,aAAc,CACZC,UAAU,EACVC,cAAc,EACdC,YAAY,EACZ/F,MAAO,MAETgG,mBAAoB,CAClBH,UAAU,EACVC,cAAc,EACdC,YAAY,EACZ/F,MAAO,MAETiG,+BAAgC,CAC9BJ,UAAU,EACVC,cAAc,EACdC,YAAY,EACZ/F,OAAO,MAMTkG,GAAc,KAGdC,GAAc,KAGlB,MAAMC,GAAyB5L,OAAOM,KACpCC,EAAO,KAAM,CACXsL,SAAU,CACRR,UAAU,EACVC,cAAc,EACdC,YAAY,EACZ/F,MAAO,MAETsG,eAAgB,CACdT,UAAU,EACVC,cAAc,EACdC,YAAY,EACZ/F,MAAO,SAMb,IAAIuG,IAAkB,EAGlBC,IAAkB,EAGlBC,IAA0B,EAI1BC,IAA2B,EAK3BC,IAAqB,EAKrBC,IAAe,EAGfC,IAAiB,EAGjBC,IAAa,EAIbC,IAAa,EAMbC,IAAa,EAIbC,IAAsB,EAItBC,IAAsB,EAKtBC,IAAe,EAefC,IAAuB,EAC3B,MAAMC,GAA8B,gBAGpC,IAAIC,IAAe,EAIfC,IAAW,EAGXC,GAA0C,CAAA,EAG1CC,GAAkB,KACtB,MAAMC,GAA0B1I,EAAS,CAAA,EAAI,CAC3C,iBACA,QACA,WACA,OACA,gBACA,OACA,SACA,OACA,KACA,KACA,KACA,KACA,QACA,UACA,WACA,WACA,YACA,SACA,QACA,MACA,WACA,QACA,QACA,QACA,QAIF,IAAI2I,GAAgB,KACpB,MAAMC,GAAwB5I,EAAS,CAAA,EAAI,CACzC,QACA,QACA,MACA,SACA,QACA,UAIF,IAAI6I,GAAsB,KAC1B,MAAMC,GAA8B9I,EAAS,GAAI,CAC/C,MACA,QACA,MACA,KACA,QACA,OACA,UACA,cACA,OACA,UACA,QACA,QACA,QACA,UAGI+I,GAAmB,qCACnBC,GAAgB,6BAChBC,GAAiB,+BAEvB,IAAIC,GAAYD,GACZE,IAAiB,EAGjBC,GAAqB,KACzB,MAAMC,GAA6BrJ,EACjC,GACA,CAAC+I,GAAkBC,GAAeC,IAClChL,GAGF,IAAIqL,GAAiCtJ,EAAS,CAAA,EAAI,CAChD,KACA,KACA,KACA,KACA,UAGEuJ,GAA0BvJ,EAAS,GAAI,CAAC,mBAM5C,MAAMwJ,GAA+BxJ,EAAS,CAAA,EAAI,CAChD,QACA,QACA,OACA,IACA,WAIF,IAAIyJ,GAAmD,KACvD,MAAMC,GAA+B,CAAC,wBAAyB,aAE/D,IAAIvJ,GAA2D,KAG3DwJ,GAAwB,KAK5B,MAAMC,GAAczG,EAAS2B,cAAc,QAErC+E,GAAoB,SACxBC,GAEA,OAAOA,aAAqBvK,QAAUuK,aAAqBC,QAC7D,EAQMC,GAAe,WAA0B,IAAhBC,EAAAzN,UAAAC,OAAA,QAAAoG,IAAArG,UAAA,GAAAA,UAAA,GAAc,CAAA,EAC3C,GAAImN,IAAUA,KAAWM,EACvB,OAIGA,GAAsB,iBAARA,IACjBA,EAAM,CAAA,GAIRA,EAAMxJ,EAAMwJ,GAEZR,QAEEC,GAA6BlL,QAAQyL,EAAIR,mBAtCX,YAwC1BQ,EAAIR,kBAGVtJ,GACwB,0BAAtBsJ,GACIxL,EACAH,EAGNuI,GACElH,EAAqB8K,EAAK,iBAC1BrM,EAAaqM,EAAI5D,cACbrG,EAAS,CAAA,EAAIiK,EAAI5D,aAAclG,IAC/BmG,GACNE,GACErH,EAAqB8K,EAAK,iBAC1BrM,EAAaqM,EAAIzD,cACbxG,EAAS,CAAA,EAAIiK,EAAIzD,aAAcrG,IAC/BsG,GACN2C,GACEjK,EAAqB8K,EAAK,uBAC1BrM,EAAaqM,EAAIb,oBACbpJ,EAAS,CAAA,EAAIiK,EAAIb,mBAAoBnL,GACrCoL,GACNR,GACE1J,EAAqB8K,EAAK,sBAC1BrM,EAAaqM,EAAIC,mBACblK,EACES,EAAMqI,IACNmB,EAAIC,kBACJ/J,IAEF2I,GACNH,GACExJ,EAAqB8K,EAAK,sBAC1BrM,EAAaqM,EAAIE,mBACbnK,EACES,EAAMmI,IACNqB,EAAIE,kBACJhK,IAEFyI,GACNH,GACEtJ,EAAqB8K,EAAK,oBAC1BrM,EAAaqM,EAAIxB,iBACbzI,EAAS,CAAA,EAAIiK,EAAIxB,gBAAiBtI,IAClCuI,GACNxB,GACE/H,EAAqB8K,EAAK,gBAAkBrM,EAAaqM,EAAI/C,aACzDlH,EAAS,CAAA,EAAIiK,EAAI/C,YAAa/G,IAC9BM,EAAM,IACZ0G,GACEhI,EAAqB8K,EAAK,gBAAkBrM,EAAaqM,EAAI9C,aACzDnH,EAAS,CAAA,EAAIiK,EAAI9C,YAAahH,IAC9BM,EAAM,IACZ+H,KAAerJ,EAAqB8K,EAAK,kBACrCA,EAAIzB,cAA4C,iBAArByB,EAAIzB,aAC7B/H,EAAMwJ,EAAIzB,cACVyB,EAAIzB,cAGVjB,IAA0C,IAAxB0C,EAAI1C,gBACtBC,IAA0C,IAAxByC,EAAIzC,gBACtBC,GAA0BwC,EAAIxC,0BAA2B,EACzDC,IAA4D,IAAjCuC,EAAIvC,yBAC/BC,GAAqBsC,EAAItC,qBAAsB,EAC/CC,IAAoC,IAArBqC,EAAIrC,aACnBC,GAAiBoC,EAAIpC,iBAAkB,EACvCG,GAAaiC,EAAIjC,aAAc,EAC/BC,GAAsBgC,EAAIhC,sBAAuB,EACjDC,GAAsB+B,EAAI/B,sBAAuB,EACjDH,GAAakC,EAAIlC,aAAc,EAC/BI,IAAoC,IAArB8B,EAAI9B,aACnBC,GAAuB6B,EAAI7B,uBAAwB,EACnDE,IAAoC,IAArB2B,EAAI3B,aACnBC,GAAW0B,EAAI1B,WAAY,EAC3BpG,GJpTJ,SAAiBnB,GACf,IAEE,OADA1B,EAAW0B,EAAiB,KACrB,CACT,CAAE,MAAAoJ,GACA,OAAO,CACT,CACF,CI6SqBC,CAAQJ,EAAIK,oBACzBL,EAAIK,mBACJlE,GAEJ8C,GAC2B,iBAAlBe,EAAIf,UAAyBe,EAAIf,UAAYD,GAEtDK,GACEnK,EAAqB8K,EAAK,mCAC1BA,EAAIX,gCAC0C,iBAAvCW,EAAIX,+BACP7I,EAAMwJ,EAAIX,gCACVtJ,EAAS,CAAA,EAAI,CAAC,KAAM,KAAM,KAAM,KAAM,UAE5CuJ,GACEpK,EAAqB8K,EAAK,4BAC1BA,EAAIV,yBACmC,iBAAhCU,EAAIV,wBACP9I,EAAMwJ,EAAIV,yBACVvJ,EAAS,GAAI,CAAC,mBAEpB,MAAMuK,EACJpL,EAAqB8K,EAAK,4BAC1BA,EAAItD,yBACmC,iBAAhCsD,EAAItD,wBACPlG,EAAMwJ,EAAItD,yBACV5K,EAAO,MA6Ib,GA3IA4K,GAA0B5K,EAAO,MAG/BoD,EAAqBoL,EAAuB,iBAC5CV,GAAkBU,EAAsB3D,gBAExCD,GAAwBC,aAAe2D,EAAsB3D,cAI7DzH,EAAqBoL,EAAuB,uBAC5CV,GAAkBU,EAAsBvD,sBAExCL,GAAwBK,mBACtBuD,EAAsBvD,oBAIxB7H,EACEoL,EACA,mCAE8D,kBAAzDA,EAAsBtD,iCAE7BN,GAAwBM,+BACtBsD,EAAsBtD,gCAGtBU,KACFH,IAAkB,GAGhBS,KACFD,IAAa,GAIXQ,KACFnC,GAAerG,EAAS,CAAA,EAAIuG,GAC5BC,GAAezK,EAAO,OACI,IAAtByM,GAAalH,OACftB,EAASqG,GAAcE,GACvBvG,EAASwG,GAAcE,KAGA,IAArB8B,GAAajH,MACfvB,EAASqG,GAAcE,GACvBvG,EAASwG,GAAcE,GACvB1G,EAASwG,GAAcE,KAGO,IAA5B8B,GAAahH,aACfxB,EAASqG,GAAcE,GACvBvG,EAASwG,GAAcE,GACvB1G,EAASwG,GAAcE,KAGG,IAAxB8B,GAAa9G,SACf1B,EAASqG,GAAcE,GACvBvG,EAASwG,GAAcE,GACvB1G,EAASwG,GAAcE,KAM3BU,GAAuBC,SAAW,KAClCD,GAAuBE,eAAiB,KAGpCnI,EAAqB8K,EAAK,cACA,mBAAjBA,EAAIO,SACbpD,GAAuBC,SAAW4C,EAAIO,SAC7B5M,EAAaqM,EAAIO,YACtBnE,KAAiBC,KACnBD,GAAe5F,EAAM4F,KAGvBrG,EAASqG,GAAc4D,EAAIO,SAAUrK,MAIrChB,EAAqB8K,EAAK,cACA,mBAAjBA,EAAIQ,SACbrD,GAAuBE,eAAiB2C,EAAIQ,SACnC7M,EAAaqM,EAAIQ,YACtBjE,KAAiBC,KACnBD,GAAe/F,EAAM+F,KAGvBxG,EAASwG,GAAcyD,EAAIQ,SAAUtK,MAKvChB,EAAqB8K,EAAK,sBAC1BrM,EAAaqM,EAAIC,oBAEjBlK,EAAS6I,GAAqBoB,EAAIC,kBAAmB/J,IAIrDhB,EAAqB8K,EAAK,oBAC1BrM,EAAaqM,EAAIxB,mBAEbA,KAAoBC,KACtBD,GAAkBhI,EAAMgI,KAG1BzI,EAASyI,GAAiBwB,EAAIxB,gBAAiBtI,KAI/ChB,EAAqB8K,EAAK,wBAC1BrM,EAAaqM,EAAIS,uBAEbjC,KAAoBC,KACtBD,GAAkBhI,EAAMgI,KAG1BzI,EAASyI,GAAiBwB,EAAIS,oBAAqBvK,KAIjDmI,KACFjC,GAAa,UAAW,GAItBwB,IACF7H,EAASqG,GAAc,CAAC,OAAQ,OAAQ,SAItCA,GAAasE,QACf3K,EAASqG,GAAc,CAAC,iBACjBa,GAAY0D,OAGjBX,EAAIY,qBAAsB,CAC5B,GAAmD,mBAAxCZ,EAAIY,qBAAqBC,WAClC,MAAMrL,EACJ,+EAIJ,GAAwD,mBAA7CwK,EAAIY,qBAAqBE,gBAClC,MAAMtL,EACJ,oFAKJwF,GAAqBgF,EAAIY,qBAGzB3F,GAAYD,GAAmB6F,WAAW,GAC5C,WAE6BjI,IAAvBoC,KACFA,GA1sB0B,SAChCf,EACA8G,GAEA,GAC0B,iBAAjB9G,GAC8B,mBAA9BA,EAAa+G,aAEpB,OAAO,KAMT,IAAIC,EAAS,KACb,MAAMC,EAAY,wBACdH,GAAqBA,EAAkBI,aAAaD,KACtDD,EAASF,EAAkBK,aAAaF,IAG1C,MAAMG,EAAa,aAAeJ,EAAS,IAAMA,EAAS,IAE1D,IACE,OAAOhH,EAAa+G,aAAaK,EAAY,CAC3CR,WAAWxJ,GACFA,EAETyJ,gBAAgBQ,GACPA,GAGb,CAAE,MAAOC,GAOP,OAHAC,QAAQC,KACN,uBAAyBJ,EAAa,0BAEjC,IACT,CACF,CAkqB6BK,CACnBzH,EACAV,IAKuB,OAAvByB,IAAoD,iBAAdC,KACxCA,GAAYD,GAAmB6F,WAAW,KAM1CjP,GACFA,EAAOoO,GAGTN,GAASM,CACX,EAKM2B,GAAe5L,EAAS,GAAI,IAC7BuG,KACAA,KACAA,IAECsF,GAAkB7L,EAAS,CAAA,EAAI,IAChCuG,KACAA,IAqHCuF,GAAe,SAAUC,GAC7BvO,EAAUsF,EAAUI,QAAS,CAAE7C,QAAS0L,IAExC,IAEEvH,GAAcuH,GAAMC,YAAYD,EAClC,CAAE,MAAOP,GACPnH,GAAO0H,EACT,CACF,EAQME,GAAmB,SAAUC,EAAc7L,GAC/C,IACE7C,EAAUsF,EAAUI,QAAS,CAC3BiJ,UAAW9L,EAAQ+L,iBAAiBF,GACpCG,KAAMhM,GAEV,CAAE,MAAOmL,GACPhO,EAAUsF,EAAUI,QAAS,CAC3BiJ,UAAW,KACXE,KAAMhM,GAEV,CAKA,GAHAA,EAAQiM,gBAAgBJ,GAGX,OAATA,EACF,GAAIlE,IAAcC,GAChB,IACE6D,GAAazL,EACf,CAAE,MAAOmL,GAAI,MAEb,IACEnL,EAAQkM,aAAaL,EAAM,GAC7B,CAAE,MAAOV,GAAI,CAGnB,EAQMgB,GAAgB,SAAUC,GAE9B,IAAIC,EAAM,KACNC,EAAoB,KAExB,GAAI5E,GACF0E,EAAQ,oBAAsBA,MACzB,CAEL,MAAMG,EAAUzO,EAAYsO,EAAO,eACnCE,EAAoBC,GAAWA,EAAQ,EACzC,CAGwB,0BAAtBnD,IACAP,KAAcD,KAGdwD,EACE,iEACAA,EACA,kBAGJ,MAAMI,EAAe5H,GACjBA,GAAmB6F,WAAW2B,GAC9BA,EAKJ,GAAIvD,KAAcD,GAChB,IACEyD,GAAM,IAAIzI,GAAY6I,gBAAgBD,EAAcpD,GACtD,CAAE,MAAO+B,GAAI,CAIf,IAAKkB,IAAQA,EAAIK,gBAAiB,CAChCL,EAAMtH,GAAe4H,eAAe9D,GAAW,WAAY,MAC3D,IACEwD,EAAIK,gBAAgBE,UAAY9D,GAC5BjE,GACA2H,CACN,CAAE,MAAOrB,GACP,CAEJ,CAEA,MAAM0B,EAAOR,EAAIQ,MAAQR,EAAIK,gBAU7B,OARIN,GAASE,GACXO,EAAKC,aACHhK,EAASiK,eAAeT,GACxBO,EAAKG,WAAW,IAAM,MAKtBnE,KAAcD,GACT1D,GAAqB+H,KAC1BZ,EACA7E,GAAiB,OAAS,QAC1B,GAGGA,GAAiB6E,EAAIK,gBAAkBG,CAChD,EAQMK,GAAsB,SAAUxK,GACpC,OAAOsC,GAAmBiI,KACxBvK,EAAKiC,eAAiBjC,EACtBA,EAEAa,EAAW4J,aACT5J,EAAW6J,aACX7J,EAAW8J,UACX9J,EAAW+J,4BACX/J,EAAWgK,mBACb,KAEJ,EAqBMC,GAA4B,SAAU9B,GAC1CA,EAAK+B,YACL,MAAMC,EAAS1I,GAAmBiI,KAChCvB,EAAK/G,eAAiB+G,EACtBA,EAEAnI,EAAW8J,UACT9J,EAAW6J,aACX7J,EAAWgK,mBACXhK,EAAW+J,4BACb,MAGF,IAAIK,EAAcD,EAAOE,WACzB,KAAOD,GAAa,CAClB,IAAIE,EAAOF,EAAYE,KACvBlR,EAAa,CAAC8E,GAAeC,GAAUC,IAAemM,IACpDD,EAAO7P,EAAc6P,EAAMC,EAAM,OAEnCH,EAAYE,KAAOA,EACnBF,EAAcD,EAAOE,UACvB,CACF,EAwCMG,GAAe,SAAU/N,GAI7B,MAAMgO,EAAczJ,GAAcA,GAAYvE,GAAW,KACzD,MAA2B,iBAAhBgO,IAI4B,SAAnClO,GAAkBkO,KAKQ,iBAArBhO,EAAQiO,UACgB,iBAAxBjO,EAAQkO,aACgB,mBAAxBlO,EAAQ2L,aAMf3L,EAAQmO,aAAe9J,GAAcrE,IACF,mBAA5BA,EAAQiM,iBACiB,mBAAzBjM,EAAQkM,cACiB,iBAAzBlM,EAAQoO,cACiB,mBAAzBpO,EAAQ8M,cACkB,mBAA1B9M,EAAQqO,eAYfrO,EAAQgN,aAAe9I,GAAclE,IAEzC,EAqBMsO,GAAsB,SAAU3N,GACpC,IAAK2D,IAAgC,iBAAV3D,GAAgC,OAAVA,EAC/C,OAAO,EAGT,IACE,OAAO2D,GAAY3D,KAAmBwB,EACxC,CAAE,MAAOgJ,GACP,OAAO,CACT,CACF,EAmBMoD,GAAU,SAAU5N,GACxB,IAAK2D,IAAgC,iBAAV3D,GAAgC,OAAVA,EAC/C,OAAO,EAGT,IACE,MAAqC,iBAAvB2D,GAAY3D,EAC5B,CAAE,MAAOwK,GACP,OAAO,CACT,CACF,EAEA,SAASqD,GACPpJ,EACAuI,EACAE,GAEAlR,EAAayI,EAAQqJ,IACnBA,EAAKxB,KAAKxK,EAAWkL,EAAaE,EAAMvE,KAE5C,CAWA,MAAMoF,GAAoB,SAAUf,GAClC,IAAIjJ,EAAU,KAMd,GAHA8J,GAAcpJ,GAAMK,uBAAwBkI,EAAa,MAGrDI,GAAaJ,GAEf,OADAlC,GAAakC,IACN,EAIT,MAAMgB,EAAU7O,GAAkB6N,EAAYM,UAS9C,GANAO,GAAcpJ,GAAMQ,oBAAqB+H,EAAa,CACpDgB,UACAC,YAAa5I,KAKbuB,IACAoG,EAAYU,kBACXE,GAAQZ,EAAYkB,oBACrB5P,EAAW,WAAY0O,EAAYf,YACnC3N,EAAW,WAAY0O,EAAYO,aAGnC,OADAzC,GAAakC,IACN,EAIT,GACEpG,IACAoG,EAAYS,eAAiBxF,IACjB,UAAZ+F,GACAJ,GAAQZ,EAAYkB,mBAGpB,OADApD,GAAakC,IACN,EAIT,GAAIA,EAAY5K,WAAaZ,GAE3B,OADAsJ,GAAakC,IACN,EAIT,GACEpG,IACAoG,EAAY5K,WAAaZ,IACzBlD,EAAW,UAAW0O,EAAYE,MAGlC,OADApC,GAAakC,IACN,EAIT,GACE9G,GAAY8H,MAEV5H,GAAuBC,oBAAoB0C,UAC3C3C,GAAuBC,SAAS2H,MAE/B3I,GAAa2I,GAChB,CAEA,IAAK9H,GAAY8H,IAAYG,GAAsBH,GAAU,CAC3D,GACErI,GAAwBC,wBAAwBrH,QAChDD,EAAWqH,GAAwBC,aAAcoI,GAEjD,OAAO,EAGT,GACErI,GAAwBC,wBAAwBmD,UAChDpD,GAAwBC,aAAaoI,GAErC,OAAO,CAEX,CAGA,GAAI1G,KAAiBG,GAAgBuG,GAAU,CAC7C,MAAMI,EAAa5K,GAAcwJ,IAAgBA,EAAYoB,WACvD/B,EAAa9I,GAAcyJ,IAAgBA,EAAYX,WAE7D,GAAIA,GAAc+B,EAAY,CAG5B,IAAK,IAAIC,EAFUhC,EAAW5Q,OAEJ,EAAG4S,GAAK,IAAKA,EAAG,CACxC,MAAMC,EAAalL,GAAUiJ,EAAWgC,IAAI,GAC5CD,EAAWjC,aAAamC,EAAYhL,GAAe0J,GACrD,CACF,CACF,CAGA,OADAlC,GAAakC,IACN,CACT,CASA,QADWrJ,GAAcA,GAAYqJ,GAAeA,EAAY5K,YACrDZ,IApjBgB,SAAUnC,GACrC,IAAIkP,EAAS/K,GAAcnE,GAItBkP,GAAWA,EAAOP,UACrBO,EAAS,CACPd,aAAcvF,GACd8F,QAAS,aAIb,MAAMA,EAAUlR,EAAkBuC,EAAQ2O,SACpCQ,EAAgB1R,EAAkByR,EAAOP,SAE/C,QAAK5F,GAAmB/I,EAAQoO,gBAI5BpO,EAAQoO,eAAiBzF,GAIvBuG,EAAOd,eAAiBxF,GACP,QAAZ+F,EAMLO,EAAOd,eAAiB1F,GAEZ,QAAZiG,IACmB,mBAAlBQ,GACClG,GAA+BkG,IAM9B1Q,QAAQ8M,GAAaoD,IAG1B3O,EAAQoO,eAAiB1F,GAIvBwG,EAAOd,eAAiBxF,GACP,SAAZ+F,EAKLO,EAAOd,eAAiBzF,GACP,SAAZgG,GAAsBzF,GAAwBiG,GAKhD1Q,QAAQ+M,GAAgBmD,IAG7B3O,EAAQoO,eAAiBxF,KAKzBsG,EAAOd,eAAiBzF,KACvBO,GAAwBiG,OAMzBD,EAAOd,eAAiB1F,KACvBO,GAA+BkG,MAQ/B3D,GAAgBmD,KAChBxF,GAA6BwF,KAAapD,GAAaoD,MAMpC,0BAAtBvF,KACAL,GAAmB/I,EAAQoO,eAU/B,CA+cmCgB,CAAqBzB,MAOvC,aAAZgB,GACa,YAAZA,GACY,aAAZA,IACF1P,EAAW,8BAA+B0O,EAAYf,aAOpDtF,IAAsBqG,EAAY5K,WAAaZ,KAEjDuC,EAAUiJ,EAAYO,YAEtBvR,EAAa,CAAC8E,GAAeC,GAAUC,IAAemM,IACpDpJ,EAAU1G,EAAc0G,EAASoJ,EAAM,OAGrCH,EAAYO,cAAgBxJ,IAC9BvH,EAAUsF,EAAUI,QAAS,CAAE7C,QAAS2N,EAAY5J,cACpD4J,EAAYO,YAAcxJ,IAK9B8J,GAAcpJ,GAAME,sBAAuBqI,EAAa,OAEjD,IAjCLlC,GAAakC,IACN,EAiCX,EAWM0B,GAAoB,SACxBC,EACAC,EACA5O,GAGA,GAAImG,GAAYyI,GACd,OAAO,EAIT,GACEzH,KACY,OAAXyH,GAA8B,SAAXA,KACnB5O,KAASmC,GAAYnC,KAAS4I,IAE/B,OAAO,EAGT,MAAMiG,EACJrJ,GAAaoJ,IACZxI,GAAuBE,0BAA0ByC,UAChD3C,GAAuBE,eAAesI,EAAQD,GAMlD,GACEnI,KACCL,GAAYyI,IACbtQ,EAAW2C,GAAW2N,SAGjB,GAAIrI,IAAmBjI,EAAW4C,GAAW0N,SAG7C,IAAKC,GAAmB1I,GAAYyI,IACzC,KAIGT,GAAsBQ,KACnBhJ,GAAwBC,wBAAwBrH,QAChDD,EAAWqH,GAAwBC,aAAc+I,IAChDhJ,GAAwBC,wBAAwBmD,UAC/CpD,GAAwBC,aAAa+I,MACvChJ,GAAwBK,8BAA8BzH,QACtDD,EAAWqH,GAAwBK,mBAAoB4I,IACtDjJ,GAAwBK,8BAA8B+C,UACrDpD,GAAwBK,mBAAmB4I,EAAQD,KAG7C,OAAXC,GACCjJ,GAAwBM,iCACtBN,GAAwBC,wBAAwBrH,QAChDD,EAAWqH,GAAwBC,aAAc5F,IAChD2F,GAAwBC,wBAAwBmD,UAC/CpD,GAAwBC,aAAa5F,KAK3C,OAAO,OAGJ,GAAI6H,GAAoB+G,SAIxB,GACLtQ,EAAW6C,GAAgB9D,EAAc2C,EAAOqB,GAAiB,WAK5D,GACO,QAAXuN,GAA+B,eAAXA,GAAsC,SAAXA,GACtC,WAAVD,GACkC,IAAlCpR,EAAcyC,EAAO,WACrB2H,GAAcgH,IAMT,GACLlI,KACCnI,EAAW8C,GAAmB/D,EAAc2C,EAAOqB,GAAiB,WAIhE,GAAIrB,EACT,OAAO,OAMT,OAAO,CACT,EAKM8O,GAAgC9P,EAAS,GAAI,CACjD,iBACA,gBACA,YACA,mBACA,iBACA,gBACA,gBACA,kBAWImP,GAAwB,SAAUH,GACtC,OACGc,GAA8BhS,EAAkBkR,KACjD1P,EAAWiD,GAAgByM,EAE/B,EAYMe,GAAsB,SAAU/B,GAEpCa,GAAcpJ,GAAMI,yBAA0BmI,EAAa,MAE3D,MAAQQ,EAAeR,EAAfQ,WAGR,IAAKA,GAAcJ,GAAaJ,GAC9B,OAGF,MAAMgC,EAAY,CAChBC,SAAU,GACVC,UAAW,GACXC,UAAU,EACVC,kBAAmB5J,GACnB6J,mBAAexN,GAEjB,IAAIzC,EAAIoO,EAAW/R,OAGnB,KAAO2D,KAAK,CACV,MAAMkQ,EAAO9B,EAAWpO,GAChB8L,EAAyCoE,EAAzCpE,KAAMuC,EAAmC6B,EAAnC7B,aAAqByB,EAAcI,EAArBtP,MACtB4O,EAASzP,GAAkB+L,GAE3BqE,EAAYL,EAClB,IAAIlP,EAAiB,UAATkL,EAAmBqE,EAAY9R,EAAW8R,GA2BtD,GAxBAP,EAAUC,SAAWL,EACrBI,EAAUE,UAAYlP,EACtBgP,EAAUG,UAAW,EACrBH,EAAUK,mBAAgBxN,EAC1BgM,GAAcpJ,GAAMO,sBAAuBgI,EAAagC,GACxDhP,EAAQgP,EAAUE,WAMhB9H,IACY,OAAXwH,GAA8B,SAAXA,GACkC,IAAtDrR,EAAcyC,EAAOqH,MAGrB4D,GAAiBC,EAAM8B,GAEvBhN,EAAQqH,GAA8BrH,GAOtC4G,IACAtI,EACE,qFACA0B,GAEF,CACAiL,GAAiBC,EAAM8B,GACvB,QACF,CAGA,GAAe,kBAAX4B,GAA8BzR,EAAY6C,EAAO,QAAS,CAC5DiL,GAAiBC,EAAM8B,GACvB,QACF,CAGA,GAAIgC,EAAUK,cACZ,SAIF,IAAKL,EAAUG,SAAU,CACvBlE,GAAiBC,EAAM8B,GACvB,QACF,CAGA,IAAKtG,IAA4BpI,EAAW,OAAQ0B,GAAQ,CAC1DiL,GAAiBC,EAAM8B,GACvB,QACF,CAGIrG,IACF3K,EAAa,CAAC8E,GAAeC,GAAUC,IAAemM,IACpDnN,EAAQ3C,EAAc2C,EAAOmN,EAAM,OAKvC,MAAMwB,EAAQxP,GAAkB6N,EAAYM,UAC5C,GAAKoB,GAAkBC,EAAOC,EAAQ5O,GAAtC,CAMA,GACEiE,IACwB,iBAAjBf,GACkC,mBAAlCA,EAAasM,iBAEpB,GAAI/B,QAGF,OAAQvK,EAAasM,iBAAiBb,EAAOC,IAC3C,IAAK,cACH5O,EAAQiE,GAAmB6F,WAAW9J,GACtC,MAGF,IAAK,mBACHA,EAAQiE,GAAmB8F,gBAAgB/J,GAYnD,GAAIA,IAAUuP,EACZ,IACM9B,EACFT,EAAYyC,eAAehC,EAAcvC,EAAMlL,GAG/CgN,EAAYzB,aAAaL,EAAMlL,GAG7BoN,GAAaJ,GACflC,GAAakC,GAEb1Q,EAASwF,EAAUI,QAEvB,CAAE,MAAOsI,GACPS,GAAiBC,EAAM8B,EACzB,CA9CF,MAFE/B,GAAiBC,EAAM8B,EAkD3B,CAGAa,GAAcpJ,GAAMC,wBAAyBsI,EAAa,KAC5D,EAOM0C,GAAqB,SAAUC,GACnC,IAAIC,EAAa,KACjB,MAAMC,EAAiBtD,GAAoBoD,GAK3C,IAFA9B,GAAcpJ,GAAMM,wBAAyB4K,EAAU,MAE/CC,EAAaC,EAAe5C,YAElCY,GAAcpJ,GAAMS,uBAAwB0K,EAAY,MAGxD7B,GAAkB6B,GAGlBb,GAAoBa,GAMhBjC,GAAoBiC,EAAW7L,UACjC2L,GAAmBE,EAAW7L,SAKlC8J,GAAcpJ,GAAMG,uBAAwB+K,EAAU,KACxD,EAgCMG,GAA+B,SAAU/N,GAG7C,IAFiB4B,GAAcA,GAAY5B,GAASA,EAAaK,YAEhDZ,GAAmB,CAClC,MAAMuO,EAAKtM,GACPA,GAAc1B,GACbA,EAAiBiO,WAQlBrC,GAAoBoC,KAGtBD,GAA6BC,GAC7BL,GAAmBK,GAEvB,CAMA,MAAM1D,EAAa9I,GACfA,GAAcxB,GACbA,EAAiBsK,WACtB,IAAKA,EACH,OAGF,MAAM4D,EAAmB,GACzBjU,EAAaqQ,EAAa6D,IACxB1T,EAAUyT,EAAUC,KAGtB,IAAK,MAAMA,KAASD,EAClBH,GAA6BI,EAEjC,EAkRA,OA/QApO,EAAUqO,SAAW,SAAU1E,GAAe,IAARxC,EAAGzN,UAAAC,OAAA,QAAAoG,IAAArG,UAAA,GAAAA,UAAA,GAAG,CAAA,EACtC0Q,EAAO,KACPkE,EAAe,KACfpD,EAAc,KACdqD,EAAa,KAUjB,GANAlI,IAAkBsD,EACdtD,KACFsD,EAAQ,eAIW,iBAAVA,IAAuBmC,GAAQnC,IAGnB,iBAFrBA,EJnnDN,SAAwBzL,GACtB,cAAeA,GACb,IAAK,SACH,OAAOA,EAGT,IAAK,SACH,OAAOrC,EAAeqC,GAGxB,IAAK,UACH,OAAOnC,EAAgBmC,GAGzB,IAAK,SACH,OAAOjC,EAAiBA,EAAeiC,GAAS,IAGlD,IAAK,SACH,OAAO/B,EAAiBA,EAAe+B,GAAS,WAGlD,IAAK,YAwBL,QACE,OAAO3B,EAAe2B,GArBxB,IAAK,WACL,IAAK,SAAU,CACb,GAAc,OAAVA,EACF,OAAO3B,EAAe2B,GAGxB,MAAMsQ,EAAgBtQ,EAChBuQ,EAAgBrQ,EAAaoQ,EAAe,YAElD,GAA6B,mBAAlBC,EAA8B,CACvC,MAAMC,EAAcD,EAAcD,GAElC,MAA8B,iBAAhBE,EACVA,EACAnS,EAAemS,EACrB,CAEA,OAAOnS,EAAe2B,EACxB,EAMJ,CIikDcyQ,CAAehF,IAGrB,MAAMhN,EAAgB,mCAK1B,IAAKqD,EAAUQ,YACb,OAAOmJ,EAgBT,GAZK3E,IACHkC,GAAaC,GAIfnH,EAAUI,QAAU,GAGC,iBAAVuJ,IACTlE,IAAW,GAGTA,GAAU,CAMZ,MAAMmJ,EAAK9M,GACPA,GAAY6H,GACXA,EAAe6B,SACpB,GAAkB,iBAAPoD,EAAiB,CAC1B,MAAM1C,EAAU7O,GAAkBuR,GAClC,IAAKrL,GAAa2I,IAAY9H,GAAY8H,GACxC,MAAMvP,EACJ,0DAGN,CAYA,GAAI2O,GAAa3B,GACf,MAAMhN,EACJ,2DAMJqR,GAA6BrE,EAC/B,MAAO,GAAImC,GAAQnC,GAGjBS,EAAOV,GAAc,iBACrB4E,EAAelE,EAAKlI,cAAcQ,WAAWiH,GAAO,GAElD2E,EAAahO,WAAaZ,IACA,SAA1B4O,EAAa9C,UAIsB,SAA1B8C,EAAa9C,SADtBpB,EAAOkE,EAKPlE,EAAKyE,YAAYP,GAQnBN,GAA6BM,OACxB,CAEL,IACGpJ,KACAL,KACAE,SAED4E,EAAMjO,QAAQ,KAEd,OAAOyG,IAAsBiD,GACzBjD,GAAmB6F,WAAW2B,GAC9BA,EAON,GAHAS,EAAOV,GAAcC,IAGhBS,EACH,OAAOlF,GAAa,KAAOE,GAAsBhD,GAAY,EAEjE,CAGIgI,GAAQnF,IACV+D,GAAaoB,EAAK0E,YAIpB,MAAMC,EAAetE,GAAoBhF,GAAWkE,EAAQS,GAG5D,KAAQc,EAAc6D,EAAa5D,YAEjCc,GAAkBf,GAGlB+B,GAAoB/B,GAMhBW,GAAoBX,EAAYjJ,UAClC2L,GAAmB1C,EAAYjJ,SAKnC,GAAIwD,GAKF,OAJIZ,IACFkG,GAA0BpB,GAGrBA,EAIT,GAAIzE,GAAY,CAKd,GAJIL,IACFkG,GAA0BX,GAGxBjF,GAGF,IAFAoJ,EAAa/L,GAAuBgI,KAAKJ,EAAKlI,eAEvCkI,EAAK0E,YAEVP,EAAWM,YAAYzE,EAAK0E,iBAG9BP,EAAanE,EAcf,OAXI1G,GAAasL,YAActL,GAAauL,kBAQ1CV,EAAa7L,GAAW8H,KAAK/J,EAAkB8N,GAAY,IAGtDA,CACT,CAEA,IAAIW,EAAiBnK,GAAiBqF,EAAK+E,UAAY/E,EAAKD,UAsB5D,OAlBEpF,IACAxB,GAAa,aACb6G,EAAKlI,eACLkI,EAAKlI,cAAckN,SACnBhF,EAAKlI,cAAckN,QAAQhG,MAC3B5M,EAAW8G,GAA0B8G,EAAKlI,cAAckN,QAAQhG,QAEhE8F,EACE,aAAe9E,EAAKlI,cAAckN,QAAQhG,KAAO,MAAQ8F,GAIzDrK,IACF3K,EAAa,CAAC8E,GAAeC,GAAUC,IAAemM,IACpD6D,EAAiB3T,EAAc2T,EAAgB7D,EAAM,OAIlDlJ,IAAsBiD,GACzBjD,GAAmB6F,WAAWkH,GAC9BA,CACN,EAEAlP,EAAUqP,UAAY,WACpBnI,GADiCxN,UAAAC,OAAA,QAAAoG,IAAArG,UAAA,GAAAA,UAAA,GAAG,CAAA,GAEpCsL,IAAa,CACf,EAEAhF,EAAUsP,YAAc,WACtBzI,GAAS,KACT7B,IAAa,CACf,EAEAhF,EAAUuP,iBAAmB,SAAUC,EAAKhC,EAAMtP,GAE3C2I,IACHK,GAAa,CAAA,GAGf,MAAM2F,EAAQxP,GAAkBmS,GAC1B1C,EAASzP,GAAkBmQ,GACjC,OAAOZ,GAAkBC,EAAOC,EAAQ5O,EAC1C,EAEA8B,EAAUyP,QAAU,SAClBC,EACAC,GAE4B,mBAAjBA,GAIXjV,EAAUiI,GAAM+M,GAAaC,EAC/B,EAEA3P,EAAU4P,WAAa,SACrBF,EACAC,GAEA,QAAqB5P,IAAjB4P,EAA4B,CAC9B,MAAMjS,EAAQpD,EAAiBqI,GAAM+M,GAAaC,GAElD,OAAiB,IAAVjS,OACHqC,EACAnF,EAAY+H,GAAM+M,GAAahS,EAAO,GAAG,EAC/C,CAEA,OAAOlD,EAASmI,GAAM+M,GACxB,EAEA1P,EAAU6P,YAAc,SAAUH,GAChC/M,GAAM+M,GAAc,EACtB,EAEA1P,EAAU8P,eAAiB,WACzBnN,GAz8DK,CACLC,wBAAyB,GACzBC,sBAAuB,GACvBC,uBAAwB,GACxBC,yBAA0B,GAC1BC,uBAAwB,GACxBC,wBAAyB,GACzBC,sBAAuB,GACvBC,oBAAqB,GACrBC,uBAAwB,GAi8D1B,EAEOpD,CACT,CAEeF"}
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","NODE_TYPE","getGlobal","window","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","emptyHTML","IN_POLICY_CREATE_HTML","_createTrustedHTML","createHTML","_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","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","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","CONFIG","formElement","isRegexOrFunction","testValue","Function","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","_unused","isRegex","ALLOWED_URI_REGEXP","customElementHandling","ADD_TAGS","ADD_ATTR","ADD_FORBID_CONTENTS","table","tbody","TRUSTED_TYPES_POLICY","createScriptURL","previousTrustedTypesPolicy","error","purifyHostElement","createPolicy","suffix","ATTR_NAME","hasAttribute","getAttribute","policyName","scriptUrl","_","console","warn","_createTrustedTypesPolicy","ALL_SVG_TAGS","ALL_MATHML_TAGS","_forceRemove","node","removeChild","_removeAttribute","name","attribute","getAttributeNode","from","removeAttribute","setAttribute","_initDocument","dirty","doc","leadingWhitespace","matches","dirtyPayload","parseFromString","documentElement","createDocument","innerHTML","body","insertBefore","createTextNode","childNodes","call","_createNodeIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","SHOW_PROCESSING_INSTRUCTION","SHOW_CDATA_SECTION","_scrubTemplateExpressions","_node$querySelectorAl","_node$querySelectorAl2","normalize","walker","currentNode","nextNode","data","expr","templates","querySelectorAll","tmpl","_isDocumentFragment","_isClobbered","realTagName","nodeName","textContent","attributes","namespaceURI","hasChildNodes","_isNode","_executeHooks","hook","_sanitizeElements","tagName","allowedTags","firstElementChild","_isBasicCustomElement","parentNode","i","childClone","parent","parentTagName","_checkValidNamespace","_isValidAttribute","lcTag","lcName","nameIsPermitted","RESERVED_CUSTOM_ELEMENT_NAMES","_sanitizeAttributes","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","forceKeepAttr","attr","initValue","getAttributeType","setAttributeNS","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","innerSr","shadowRoot","_sanitizeAttachedShadowRoots","sr","snapshot","child","rootName","sanitize","importedNode","returnNode","valueAsRecord","valueToString","stringified","stringifyValue","nn","appendChild","firstChild","nodeIterator","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,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,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,SACA,iBACA,Y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"}
package/package.json CHANGED
@@ -7,19 +7,19 @@
7
7
  "format:js": "prettier --write '{src,demos,scripts,test,website}/*.{js,ts}'",
8
8
  "commit-amend-build": "scripts/commit-amend-build.sh",
9
9
  "prebuild": "rimraf dist",
10
- "dev": "cross-env NODE_ENV=development BABEL_ENV=rollup rollup -w -c -o dist/purify.js",
10
+ "dev": "cross-env NODE_ENV=development BABEL_ENV=rollup rollup -w -c config/rollup.config.js -o dist/purify.js",
11
11
  "build": "npm run build:types && npm run build:rollup && npm run build:fix-types && npm run build:cleanup",
12
- "build:types": "tsc --outDir dist/types --declaration --emitDeclarationOnly",
13
- "build:rollup": "rollup -c",
12
+ "build:types": "tsc -p config/tsconfig.json --outDir dist/types --declaration --emitDeclarationOnly",
13
+ "build:rollup": "rollup -c config/rollup.config.js",
14
14
  "build:fix-types": "node ./scripts/fix-types.js",
15
- "build:umd": "rollup -c -f umd -o dist/purify.js",
16
- "build:umd:min": "rollup -c -f umd -o dist/purify.min.js -p terser",
17
- "build:es": "rollup -c -f es -o dist/purify.es.mjs",
18
- "build:cjs": "rollup -c -f cjs -o dist/purify.cjs.js",
15
+ "build:umd": "rollup -c config/rollup.config.js -f umd -o dist/purify.js",
16
+ "build:umd:min": "rollup -c config/rollup.config.js -f umd -o dist/purify.min.js -p terser",
17
+ "build:es": "rollup -c config/rollup.config.js -f es -o dist/purify.es.mjs",
18
+ "build:cjs": "rollup -c config/rollup.config.js -f cjs -o dist/purify.cjs.js",
19
19
  "build:cleanup": "rimraf dist/types",
20
20
  "test": "cross-env NODE_ENV=test BABEL_ENV=rollup npm run lint && npm run test:jsdom && npm run test:browser -- --project=chromium",
21
21
  "test:jsdom": "cross-env NODE_ENV=test BABEL_ENV=rollup node test/jsdom-node-runner --dot",
22
- "test:browser": "playwright test",
22
+ "test:browser": "playwright test --config config/playwright.config.js",
23
23
  "test:browser:install": "playwright install",
24
24
  "test:ci": "cross-env NODE_ENV=test BABEL_ENV=rollup npm run test:jsdom && npm run test:browser",
25
25
  "test:fuzz": "cross-env NODE_ENV=test BABEL_ENV=rollup node test/fuzz/sanitize.fast-check.js",
@@ -48,7 +48,8 @@
48
48
  },
49
49
  "files": [
50
50
  "dist",
51
- "src"
51
+ "src",
52
+ "LICENSE-MPL"
52
53
  ],
53
54
  "xo": {
54
55
  "semicolon": true,
@@ -107,10 +108,10 @@
107
108
  "@types/trusted-types": "^2.0.7"
108
109
  },
109
110
  "devDependencies": {
110
- "@babel/core": "^7.17.8",
111
- "@babel/preset-env": "^7.29.5",
111
+ "@babel/core": "^7.29.7",
112
+ "@babel/preset-env": "^7.29.7",
112
113
  "@playwright/test": "^1.60.0",
113
- "@rollup/plugin-babel": "^7.0.0",
114
+ "@rollup/plugin-babel": "^7.1.0",
114
115
  "@rollup/plugin-node-resolve": "^16.0.3",
115
116
  "@rollup/plugin-replace": "^6.0.1",
116
117
  "@rollup/plugin-terser": "^1.0.0",
@@ -119,7 +120,7 @@
119
120
  "@types/node": "^25.9.1",
120
121
  "cross-env": "^10.1.0",
121
122
  "eslint-config-prettier": "^10.1.8",
122
- "eslint-plugin-prettier": "^5.2.1",
123
+ "eslint-plugin-prettier": "^5.5.6",
123
124
  "fast-check": "^4.8.0",
124
125
  "husky": "^9.1.0",
125
126
  "jquery": "^3.6.0",
@@ -139,7 +140,7 @@
139
140
  },
140
141
  "name": "dompurify",
141
142
  "description": "DOMPurify is a DOM-only, super-fast, uber-tolerant XSS sanitizer for HTML, MathML and SVG. It's written in JavaScript and works in all modern browsers (Safari, Opera (15+), Internet Explorer (10+), Firefox and Chrome - as well as almost anything else using Blink or WebKit). DOMPurify is written by security people who have vast background in web attacks and XSS. Fear not.",
142
- "version": "3.4.6",
143
+ "version": "3.4.8",
143
144
  "directories": {
144
145
  "test": "test"
145
146
  },
package/src/config.ts CHANGED
@@ -217,7 +217,7 @@ export interface Config {
217
217
  /**
218
218
  * Supplied policy must define `createHTML` and `createScriptURL`.
219
219
  */
220
- TRUSTED_TYPES_POLICY?: TrustedTypePolicy | undefined;
220
+ TRUSTED_TYPES_POLICY?: TrustedTypePolicy | null | undefined;
221
221
 
222
222
  /**
223
223
  * Controls categories of allowed elements.
package/src/purify.ts CHANGED
@@ -189,6 +189,30 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
189
189
  let trustedTypesPolicy;
190
190
  let emptyHTML = '';
191
191
 
192
+ // Tracks whether we are already inside a call to the configured Trusted Types
193
+ // policy's `createHTML`. If the supplied `TRUSTED_TYPES_POLICY.createHTML`
194
+ // itself calls `DOMPurify.sanitize` (the cause of #1422), `sanitize` would
195
+ // re-enter the policy and recurse until the stack overflows. We detect that
196
+ // re-entry and throw a clear, actionable error instead.
197
+ let IN_POLICY_CREATE_HTML = 0;
198
+ const _createTrustedHTML = function (html: string): string {
199
+ if (IN_POLICY_CREATE_HTML > 0) {
200
+ throw typeErrorCreate(
201
+ 'The configured TRUSTED_TYPES_POLICY.createHTML must not call ' +
202
+ 'DOMPurify.sanitize, as that causes infinite recursion. Do not pass ' +
203
+ 'a policy whose createHTML wraps DOMPurify as TRUSTED_TYPES_POLICY; ' +
204
+ 'see the "DOMPurify and Trusted Types" section of the README.'
205
+ );
206
+ }
207
+
208
+ IN_POLICY_CREATE_HTML++;
209
+ try {
210
+ return trustedTypesPolicy.createHTML(html);
211
+ } finally {
212
+ IN_POLICY_CREATE_HTML--;
213
+ }
214
+ };
215
+
192
216
  const {
193
217
  implementation,
194
218
  createNodeIterator,
@@ -773,13 +797,25 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
773
797
  }
774
798
 
775
799
  // Overwrite existing TrustedTypes policy.
800
+ const previousTrustedTypesPolicy = trustedTypesPolicy;
776
801
  trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;
777
802
 
778
- // Sign local variables required by `sanitize`.
779
- emptyHTML = trustedTypesPolicy.createHTML('');
803
+ // Sign local variables required by `sanitize`. If the supplied policy's
804
+ // `createHTML` is circular (i.e. it calls `DOMPurify.sanitize`), this
805
+ // throws via the re-entrancy guard. Restore the previous policy first so
806
+ // the instance is not left in a poisoned state. See #1422.
807
+ try {
808
+ emptyHTML = _createTrustedHTML('');
809
+ } catch (error) {
810
+ trustedTypesPolicy = previousTrustedTypesPolicy;
811
+ throw error;
812
+ }
780
813
  } else {
781
814
  // Uninitialized policy, attempt to initialize the internal dompurify policy.
782
- if (trustedTypesPolicy === undefined) {
815
+ if (
816
+ trustedTypesPolicy === undefined &&
817
+ cfg.TRUSTED_TYPES_POLICY !== null
818
+ ) {
783
819
  trustedTypesPolicy = _createTrustedTypesPolicy(
784
820
  trustedTypes,
785
821
  currentScript
@@ -787,11 +823,39 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
787
823
  }
788
824
 
789
825
  // If creating the internal policy succeeded sign internal variables.
790
- if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {
791
- emptyHTML = trustedTypesPolicy.createHTML('');
826
+ // Note: a falsy `trustedTypesPolicy` (null when policy creation failed or
827
+ // was skipped via `TRUSTED_TYPES_POLICY: null`, or undefined when no
828
+ // policy has been initialized yet) must be excluded here, otherwise we
829
+ // would call `.createHTML` on a non-policy and throw. See #1422.
830
+ if (trustedTypesPolicy && typeof emptyHTML === 'string') {
831
+ emptyHTML = _createTrustedHTML('');
792
832
  }
793
833
  }
794
834
 
835
+ /*
836
+ * Mirror the clone-before-mutate pattern already applied above for
837
+ * cfg.ADD_TAGS / cfg.ADD_ATTR: if any uponSanitize* hook is
838
+ * registered AND the set still points at the default constant,
839
+ * clone it. The hook then mutates the clone (in-call widening
840
+ * still works exactly as documented) and the next default-cfg
841
+ * call rebinds to the untouched original via the reassignment at
842
+ * the top of this function.
843
+ */
844
+ if (
845
+ (hooks.uponSanitizeElement.length > 0 ||
846
+ hooks.uponSanitizeAttribute.length > 0) &&
847
+ ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS
848
+ ) {
849
+ ALLOWED_TAGS = clone(ALLOWED_TAGS);
850
+ }
851
+
852
+ if (
853
+ hooks.uponSanitizeAttribute.length > 0 &&
854
+ ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR
855
+ ) {
856
+ ALLOWED_ATTR = clone(ALLOWED_ATTR);
857
+ }
858
+
795
859
  // Prevent further manipulation of configuration.
796
860
  // Not available in IE8, Safari 5, etc.
797
861
  if (freeze) {
@@ -1004,9 +1068,7 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
1004
1068
  '</body></html>';
1005
1069
  }
1006
1070
 
1007
- const dirtyPayload = trustedTypesPolicy
1008
- ? trustedTypesPolicy.createHTML(dirty)
1009
- : dirty;
1071
+ const dirtyPayload = trustedTypesPolicy ? _createTrustedHTML(dirty) : dirty;
1010
1072
  /*
1011
1073
  * Use the DOMParser API by default, fallback later if needs be
1012
1074
  * DOMParser not work for svg when has multiple root element.
@@ -1110,6 +1172,16 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
1110
1172
  currentNode.data = data;
1111
1173
  currentNode = walker.nextNode() as CharacterData | null;
1112
1174
  }
1175
+
1176
+ // NodeIterator does not descend into <template>.content per the DOM spec,
1177
+ // so we must explicitly recurse into each template's content fragment,
1178
+ // mirroring the approach used by _sanitizeShadowDOM.
1179
+ const templates = node.querySelectorAll?.('template') ?? [];
1180
+ arrayForEach(Array.from(templates), (tmpl: HTMLTemplateElement) => {
1181
+ if (_isDocumentFragment(tmpl.content)) {
1182
+ _scrubTemplateExpressions(tmpl.content as unknown as Element);
1183
+ }
1184
+ });
1113
1185
  };
1114
1186
 
1115
1187
  /**
@@ -1121,32 +1193,6 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
1121
1193
  * on direct reads. We use this check at the IN_PLACE entry-point and
1122
1194
  * during attribute sanitization to refuse clobbered forms.
1123
1195
  *
1124
- * Realm safety (GHSA-hpcv-96wg-7vj8): every check in this function must
1125
- * work for foreign-realm forms — e.g. a <form> created inside a same-
1126
- * origin iframe and then handed to a parent-realm DOMPurify instance
1127
- * with IN_PLACE: true. The original implementation used
1128
- * `element instanceof HTMLFormElement` and `element.attributes
1129
- * instanceof NamedNodeMap`, both of which are realm-bound: a foreign-
1130
- * realm form is an instance of the *foreign* realm's HTMLFormElement,
1131
- * not the parent realm's. The instanceof short-circuited to false and
1132
- * the function returned false (= not clobbered) regardless of how
1133
- * thoroughly the form was clobbered. Sanitize then walked a clobbered
1134
- * .attributes and missed every attribute on the form root, leaving
1135
- * onmouseover / onclick / formaction / etc. intact.
1136
- *
1137
- * The realm-independent replacements:
1138
- * - HTMLFormElement detection — read the tag name through the cached
1139
- * Node.prototype.nodeName getter. WebIDL getters operate on internal
1140
- * slots that exist on every real Node regardless of which realm
1141
- * minted the JS wrapper, so getNodeName(foreignForm) === "FORM".
1142
- * - NamedNodeMap detection — compare the direct .attributes read
1143
- * against the cached Element.prototype.attributes getter. Same
1144
- * equality-probe pattern we use for .childNodes: if a clobbering
1145
- * child shadows the named property, the two reads diverge; if not,
1146
- * both return the same NamedNodeMap (same-realm OR foreign-realm —
1147
- * doesn't matter, both are the canonical attributes object for the
1148
- * node).
1149
- *
1150
1196
  * @param element element to check for clobbering attacks
1151
1197
  * @return true if clobbered, false if safe
1152
1198
  */
@@ -1178,6 +1224,14 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
1178
1224
  typeof element.namespaceURI !== 'string' ||
1179
1225
  typeof element.insertBefore !== 'function' ||
1180
1226
  typeof element.hasChildNodes !== 'function' ||
1227
+ // NodeType clobbering probe. Cached Node.prototype.nodeType getter
1228
+ // returns the integer 1 for any Element regardless of realm; direct
1229
+ // read on a clobbered form (e.g. <input name="nodeType">) returns
1230
+ // the named child element. Cheap addition — nodeType is read from
1231
+ // an internal slot, no serialization cost — and removes a residual
1232
+ // clobbering surface used by several mXSS / PI / comment branches
1233
+ // in _sanitizeElements that compare currentNode.nodeType directly.
1234
+ element.nodeType !== getNodeType(element) ||
1181
1235
  // HTMLFormElement has [LegacyOverrideBuiltIns]: a descendant named
1182
1236
  // "childNodes" shadows the prototype getter. Direct reads of
1183
1237
  // form.childNodes from a clobbered form return the named child
@@ -1196,14 +1250,6 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
1196
1250
  /**
1197
1251
  * Checks whether the given value is a DocumentFragment from any realm.
1198
1252
  *
1199
- * Realm safety (GHSA-hpcv-96wg-7vj8): the original sites used
1200
- * `value instanceof DocumentFragment`, which is realm-bound — a fragment
1201
- * from a foreign realm (template content or shadow root from an iframe
1202
- * document) is an instance of the foreign realm's DocumentFragment, not
1203
- * the parent realm's, so the check returned false and the template-
1204
- * content / shadow-root recursion was silently skipped. The attacker
1205
- * payload inside survived untouched.
1206
- *
1207
1253
  * The realm-independent replacement reads `nodeType` through the cached
1208
1254
  * Node.prototype getter and compares to the DOCUMENT_FRAGMENT_NODE
1209
1255
  * constant (11). nodeType is a numeric value resolved from the node's
@@ -1232,12 +1278,6 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
1232
1278
  * sanitize() to silently stringify them and reset IN_PLACE to false,
1233
1279
  * returning the original node unsanitized. See GHSA-4w3q-35jp-p934.
1234
1280
  *
1235
- * Implementation: call the cached `nodeType` getter from Node.prototype
1236
- * directly on the value. This bypasses any clobbered instance property
1237
- * (e.g. a child element named "nodeType") and works across realms
1238
- * because the WebIDL `nodeType` getter reads an internal slot that
1239
- * every real Node has, regardless of which window minted it.
1240
- *
1241
1281
  * @param value object to check whether it's a DOM node
1242
1282
  * @return true if value is a DOM node from any realm
1243
1283
  */
@@ -1285,7 +1325,9 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
1285
1325
  }
1286
1326
 
1287
1327
  /* Now let's check the element's type and name */
1288
- const tagName = transformCaseFunc(currentNode.nodeName);
1328
+ const tagName = transformCaseFunc(
1329
+ getNodeName ? getNodeName(currentNode) : currentNode.nodeName
1330
+ );
1289
1331
 
1290
1332
  /* Execute a hook if present */
1291
1333
  _executeHooks(hooks.uponSanitizeElement, currentNode, {
@@ -1358,10 +1400,17 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
1358
1400
  }
1359
1401
  }
1360
1402
 
1361
- /* Keep content except for bad-listed elements */
1403
+ /* Keep content except for bad-listed elements.
1404
+ Use the cached prototype getters exclusively — the previous code
1405
+ had `|| currentNode.parentNode` / `|| currentNode.childNodes`
1406
+ fallbacks, but the cached getters always return the canonical
1407
+ value (or null for a real parent-less node), so the fallback
1408
+ path was dead in safe cases and a clobbering surface in unsafe
1409
+ ones. Falsy cached results stay falsy; the `if (childNodes &&
1410
+ parentNode)` check already gates correctly. */
1362
1411
  if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {
1363
- const parentNode = getParentNode(currentNode) || currentNode.parentNode;
1364
- const childNodes = getChildNodes(currentNode) || currentNode.childNodes;
1412
+ const parentNode = getParentNode(currentNode);
1413
+ const childNodes = getChildNodes(currentNode);
1365
1414
 
1366
1415
  if (childNodes && parentNode) {
1367
1416
  const childCount = childNodes.length;
@@ -1684,7 +1733,7 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
1684
1733
  } else {
1685
1734
  switch (trustedTypes.getAttributeType(lcTag, lcName)) {
1686
1735
  case 'TrustedHTML': {
1687
- value = trustedTypesPolicy.createHTML(value);
1736
+ value = _createTrustedHTML(value);
1688
1737
  break;
1689
1738
  }
1690
1739
 
@@ -1754,6 +1803,29 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
1754
1803
  if (_isDocumentFragment(shadowNode.content)) {
1755
1804
  _sanitizeShadowDOM(shadowNode.content);
1756
1805
  }
1806
+
1807
+ /* An element iterated here may itself host an attached
1808
+ shadow root. The default NodeIterator does not enter shadow
1809
+ trees, so a shadow root nested inside template.content was
1810
+ previously reached by no walk at all (the pre-pass at
1811
+ _sanitizeAttachedShadowRoots descends via childNodes, which
1812
+ doesn't enter template.content; the template-content recursion
1813
+ above iterates the content but never inspected shadowRoot).
1814
+ Walk it explicitly. The nodeType guard avoids reading
1815
+ shadowRoot off text / comment / CDATA / PI nodes that the
1816
+ iterator also surfaces. */
1817
+ const shadowNodeType = getNodeType
1818
+ ? getNodeType(shadowNode)
1819
+ : shadowNode.nodeType;
1820
+ if (shadowNodeType === NODE_TYPE.element) {
1821
+ const innerSr = getShadowRoot
1822
+ ? getShadowRoot(shadowNode)
1823
+ : (shadowNode as Element).shadowRoot;
1824
+ if (_isDocumentFragment(innerSr)) {
1825
+ _sanitizeAttachedShadowRoots(innerSr);
1826
+ _sanitizeShadowDOM(innerSr);
1827
+ }
1828
+ }
1757
1829
  }
1758
1830
 
1759
1831
  /* Execute a hook if present */
@@ -1777,17 +1849,6 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
1777
1849
  * existing _sanitizeShadowDOM template-content recursion) stay
1778
1850
  * untouched — string-input paths are not affected.
1779
1851
  *
1780
- * DOM-Clobbering hardening: HTMLFormElement carries the WebIDL
1781
- * [LegacyOverrideBuiltIns] extended attribute, so a descendant element
1782
- * named `nodeType`, `shadowRoot`, or `childNodes` shadows the matching
1783
- * prototype getter on the form. Reading those properties directly off
1784
- * the node would let an attacker steer this walk past shadow hosts
1785
- * (e.g. <input name="childNodes"> collapses the form's child list to
1786
- * the input itself, so descent stops dead and any shadow root deeper
1787
- * in the subtree is never sanitized). Every property access here is
1788
- * therefore routed through the cached prototype getter; the form's
1789
- * named-property getter cannot intercept those reads.
1790
- *
1791
1852
  * @param root the subtree root to walk for attached shadow roots
1792
1853
  */
1793
1854
  const _sanitizeAttachedShadowRoots = function (root: Node): void {
@@ -1831,6 +1892,20 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
1831
1892
  for (const child of snapshot) {
1832
1893
  _sanitizeAttachedShadowRoots(child);
1833
1894
  }
1895
+
1896
+ /* When the root is a <template>, also descend into root.content */
1897
+ if (nodeType === NODE_TYPE.element) {
1898
+ const rootName = getNodeName ? getNodeName(root) : null;
1899
+ if (
1900
+ typeof rootName === 'string' &&
1901
+ transformCaseFunc(rootName) === 'template'
1902
+ ) {
1903
+ const content = (root as HTMLTemplateElement).content;
1904
+ if (_isDocumentFragment(content)) {
1905
+ _sanitizeAttachedShadowRoots(content);
1906
+ }
1907
+ }
1908
+ }
1834
1909
  };
1835
1910
 
1836
1911
  // eslint-disable-next-line complexity
@@ -1945,7 +2020,7 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
1945
2020
  dirty.indexOf('<') === -1
1946
2021
  ) {
1947
2022
  return trustedTypesPolicy && RETURN_TRUSTED_TYPE
1948
- ? trustedTypesPolicy.createHTML(dirty)
2023
+ ? _createTrustedHTML(dirty)
1949
2024
  : dirty;
1950
2025
  }
1951
2026
 
@@ -2046,7 +2121,7 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify {
2046
2121
  }
2047
2122
 
2048
2123
  return trustedTypesPolicy && RETURN_TRUSTED_TYPE
2049
- ? trustedTypesPolicy.createHTML(serializedHTML)
2124
+ ? _createTrustedHTML(serializedHTML)
2050
2125
  : serializedHTML;
2051
2126
  };
2052
2127