diff --git a/dist/purify.min.js b/dist/purify.min.js index 1c22a09a1..d95d80fc2 100644 --- a/dist/purify.min.js +++ b/dist/purify.min.js @@ -1,2 +1,2 @@ -(function(e){"use strict";var t=typeof window==="undefined"?null:window;if(typeof define==="function"&&define.amd){define(function(){return e(t)})}else if(typeof module!=="undefined"){module.exports=e(t)}else{t.DOMPurify=e(t)}})(function e(t){"use strict";var r=function(t){return e(t)};r.version="0.8.3";r.removed=[];if(!t||!t.document||t.document.nodeType!==9){r.isSupported=false;return r}var n=t.document;var a=n;var i=t.DocumentFragment;var o=t.HTMLTemplateElement;var l=t.NodeFilter;var s=t.NamedNodeMap||t.MozNamedAttrMap;var f=t.Text;var c=t.Comment;var u=t.DOMParser;if(typeof o==="function"){var d=n.createElement("template");if(d.content&&d.content.ownerDocument){n=d.content.ownerDocument}}var m=n.implementation;var p=n.createNodeIterator;var v=n.getElementsByTagName;var h=n.createDocumentFragment;var g=a.importNode;var y={};r.isSupported=typeof m.createHTMLDocument!=="undefined"&&n.documentMode!==9;var b=function(e,t){var r=t.length;while(r--){if(typeof t[r]==="string"){t[r]=t[r].toLowerCase()}e[t[r]]=true}return e};var T=function(e){var t={};var r;for(r in e){if(e.hasOwnProperty(r)){t[r]=e[r]}}return t};var x=null;var k=b({},["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr","svg","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","switch","symbol","text","textpath","title","tref","tspan","view","vkern","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMerge","feMergeNode","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmuliscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mpspace","msqrt","mystyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","#text"]);var A=null;var w=b({},["accept","action","align","alt","autocomplete","background","bgcolor","border","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","coords","datetime","default","dir","disabled","download","enctype","face","for","headers","height","hidden","high","href","hreflang","id","ismap","label","lang","list","loop","low","max","maxlength","media","method","min","multiple","name","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","rows","rowspan","spellcheck","scope","selected","shape","size","span","srclang","start","src","step","style","summary","tabindex","title","type","usemap","valign","value","width","xmlns","accent-height","accumulate","additivive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mode","min","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","surfacescale","targetx","targety","transform","text-anchor","text-decoration","text-rendering","textlength","u1","u2","unicode","values","viewbox","visibility","vert-adv-y","vert-origin-x","vert-origin-y","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","y","y1","y2","z","zoomandpan","accent","accentunder","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","display","displaystyle","fence","frame","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]);var E=null;var S=null;var M=true;var O=false;var N=false;var L=false;var D=/\{\{[\s\S]*|[\s\S]*\}\}/gm;var _=/<%[\s\S]*|[\s\S]*%>/gm;var C=false;var z=false;var R=false;var F=false;var H=true;var B=true;var W=b({},["audio","head","math","script","style","svg","video"]);var j=b({},["audio","video","img","source"]);var G=b({},["alt","class","for","id","label","name","pattern","placeholder","summary","title","value","style","xmlns"]);var I=null;var q=n.createElement("form");var P=function(e){if(typeof e!=="object"){e={}}x="ALLOWED_TAGS"in e?b({},e.ALLOWED_TAGS):k;A="ALLOWED_ATTR"in e?b({},e.ALLOWED_ATTR):w;E="FORBID_TAGS"in e?b({},e.FORBID_TAGS):{};S="FORBID_ATTR"in e?b({},e.FORBID_ATTR):{};M=e.ALLOW_DATA_ATTR!==false;O=e.ALLOW_UNKNOWN_PROTOCOLS||false;N=e.SAFE_FOR_JQUERY||false;L=e.SAFE_FOR_TEMPLATES||false;C=e.WHOLE_DOCUMENT||false;z=e.RETURN_DOM||false;R=e.RETURN_DOM_FRAGMENT||false;F=e.RETURN_DOM_IMPORT||false;H=e.SANITIZE_DOM!==false;B=e.KEEP_CONTENT!==false;if(L){M=false}if(R){z=true}if(e.ADD_TAGS){if(x===k){x=T(x)}b(x,e.ADD_TAGS)}if(e.ADD_ATTR){if(A===w){A=T(A)}b(A,e.ADD_ATTR)}if(B){x["#text"]=true}if(Object&&"freeze"in Object){Object.freeze(e)}I=e};var U=function(e){r.removed.push({element:e});try{e.parentNode.removeChild(e)}catch(t){e.outerHTML=""}};var V=function(e,t){r.removed.push({attribute:t.getAttributeNode(e),from:t});t.removeAttribute(e)};var K=function(e){var t,r;try{t=(new u).parseFromString(e,"text/html")}catch(n){}if(!t||!t.documentElement){t=m.createHTMLDocument("");r=t.body;r.parentNode.removeChild(r.parentNode.firstElementChild);r.outerHTML=e}if(typeof t.getElementsByTagName==="function"){return t.getElementsByTagName(C?"html":"body")[0]}return v.call(t,C?"html":"body")[0]};var J=function(e){return p.call(e.ownerDocument||e,e,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT,function(){return l.FILTER_ACCEPT},false)};var Q=function(e){if(e instanceof f||e instanceof c){return false}if(typeof e.nodeName!=="string"||typeof e.textContent!=="string"||typeof e.removeChild!=="function"||!(e.attributes instanceof s)||typeof e.removeAttribute!=="function"||typeof e.setAttribute!=="function"){return true}return false};var X=function(e){var t,n;ne("beforeSanitizeElements",e,null);if(Q(e)){U(e);return true}t=e.nodeName.toLowerCase();ne("uponSanitizeElement",e,{tagName:t});if(!x[t]||E[t]){if(B&&!W[t]&&typeof e.insertAdjacentHTML==="function"){try{e.insertAdjacentHTML("AfterEnd",e.innerHTML)}catch(a){}}U(e);return true}if(N&&!e.firstElementChild&&(!e.content||!e.content.firstElementChild)&&/u){e.setAttribute("id",s.value)}}else{if(i==="id"){e.setAttribute(i,"")}V(i,e)}if(!c.keepAttr){continue}if(H&&(l==="id"||l==="name")&&(o in t||o in n||o in q)){continue}if(L){o=o.replace(D," ");o=o.replace(_," ")}if(M&&Y.test(l)){}else if(!A[l]||S[l]){continue}else if(G[l]){}else if(Z.test(o.replace(ee,""))){}else if(l==="src"&&o.indexOf("data:")===0&&j[e.nodeName.toLowerCase()]){}else if(O&&!$.test(o.replace(ee,""))){}else if(!o){}else{continue}try{e.setAttribute(i,o);r.removed.pop()}catch(d){}}ne("afterSanitizeAttributes",e,null)};var re=function(e){var t;var r=J(e);ne("beforeSanitizeShadowDOM",e,null);while(t=r.nextNode()){ne("uponSanitizeShadowNode",t,null);if(X(t)){continue}if(t.content instanceof i){re(t.content)}te(t)}ne("afterSanitizeShadowDOM",e,null)};var ne=function(e,t,n){if(!y[e]){return}y[e].forEach(function(e){e.call(r,t,n,I)})};r.sanitize=function(e,n){var o,l,s,f,c;if(!e){e=""}if(typeof e!=="string"){if(typeof e.toString!=="function"){throw new TypeError("toString is not a function")}else{e=e.toString()}}if(!r.isSupported){if(typeof t.toStaticHTML==="object"||typeof t.toStaticHTML==="function"){return t.toStaticHTML(e)}return e}P(n);r.removed=[];if(!z&&!C&&e.indexOf("<")===-1){return e}o=K(e);if(!o){return z?null:""}f=J(o);while(l=f.nextNode()){if(l.nodeType===3&&l===s){continue}if(X(l)){continue}if(l.content instanceof i){re(l.content)}te(l);s=l}if(z){if(R){c=h.call(o.ownerDocument);while(o.firstChild){c.appendChild(o.firstChild)}}else{c=o}if(F){c=g.call(a,c,true)}return c}return C?o.outerHTML:o.innerHTML};r.addHook=function(e,t){if(typeof t!=="function"){return}y[e]=y[e]||[];y[e].push(t)};r.removeHook=function(e){if(y[e]){y[e].pop()}};r.removeHooks=function(e){if(y[e]){y[e]=[]}};r.removeAllHooks=function(){y={}};return r}); +(function(e){"use strict";var t=typeof window==="undefined"?null:window;if(typeof define==="function"&&define.amd){define(function(){return e(t)})}else if(typeof module!=="undefined"){module.exports=e(t)}else{t.DOMPurify=e(t)}})(function e(t){"use strict";var r=function(t){return e(t)};r.version="0.8.4";r.removed=[];if(!t||!t.document||t.document.nodeType!==9){r.isSupported=false;return r}var n=t.document;var a=n;var i=t.DocumentFragment;var o=t.HTMLTemplateElement;var l=t.NodeFilter;var s=t.NamedNodeMap||t.MozNamedAttrMap;var f=t.Text;var c=t.Comment;var u=t.DOMParser;if(typeof o==="function"){var d=n.createElement("template");if(d.content&&d.content.ownerDocument){n=d.content.ownerDocument}}var m=n.implementation;var p=n.createNodeIterator;var v=n.getElementsByTagName;var h=n.createDocumentFragment;var g=a.importNode;var y={};r.isSupported=typeof m.createHTMLDocument!=="undefined"&&n.documentMode!==9;var b=function(e,t){var r=t.length;while(r--){if(typeof t[r]==="string"){t[r]=t[r].toLowerCase()}e[t[r]]=true}return e};var T=function(e){var t={};var r;for(r in e){if(e.hasOwnProperty(r)){t[r]=e[r]}}return t};var x=null;var k=b({},["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr","svg","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","switch","symbol","text","textpath","title","tref","tspan","view","vkern","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMerge","feMergeNode","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmuliscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mpspace","msqrt","mystyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","#text"]);var A=null;var w=b({},["accept","action","align","alt","autocomplete","background","bgcolor","border","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","coords","datetime","default","dir","disabled","download","enctype","face","for","headers","height","hidden","high","href","hreflang","id","ismap","label","lang","list","loop","low","max","maxlength","media","method","min","multiple","name","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","rows","rowspan","spellcheck","scope","selected","shape","size","span","srclang","start","src","step","style","summary","tabindex","title","type","usemap","valign","value","width","xmlns","accent-height","accumulate","additivive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mode","min","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","surfacescale","targetx","targety","transform","text-anchor","text-decoration","text-rendering","textlength","u1","u2","unicode","values","viewbox","visibility","vert-adv-y","vert-origin-x","vert-origin-y","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","y","y1","y2","z","zoomandpan","accent","accentunder","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","display","displaystyle","fence","frame","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]);var E=null;var S=null;var M=true;var O=false;var N=false;var L=false;var D=/\{\{[\s\S]*|[\s\S]*\}\}/gm;var _=/<%[\s\S]*|[\s\S]*%>/gm;var C=false;var z=false;var R=false;var F=false;var H=true;var B=true;var W=b({},["audio","head","math","script","style","svg","video"]);var j=b({},["audio","video","img","source"]);var G=b({},["alt","class","for","id","label","name","pattern","placeholder","summary","title","value","style","xmlns"]);var I=null;var q=n.createElement("form");var P=function(e){if(typeof e!=="object"){e={}}x="ALLOWED_TAGS"in e?b({},e.ALLOWED_TAGS):k;A="ALLOWED_ATTR"in e?b({},e.ALLOWED_ATTR):w;E="FORBID_TAGS"in e?b({},e.FORBID_TAGS):{};S="FORBID_ATTR"in e?b({},e.FORBID_ATTR):{};M=e.ALLOW_DATA_ATTR!==false;O=e.ALLOW_UNKNOWN_PROTOCOLS||false;N=e.SAFE_FOR_JQUERY||false;L=e.SAFE_FOR_TEMPLATES||false;C=e.WHOLE_DOCUMENT||false;z=e.RETURN_DOM||false;R=e.RETURN_DOM_FRAGMENT||false;F=e.RETURN_DOM_IMPORT||false;H=e.SANITIZE_DOM!==false;B=e.KEEP_CONTENT!==false;if(L){M=false}if(R){z=true}if(e.ADD_TAGS){if(x===k){x=T(x)}b(x,e.ADD_TAGS)}if(e.ADD_ATTR){if(A===w){A=T(A)}b(A,e.ADD_ATTR)}if(B){x["#text"]=true}if(Object&&"freeze"in Object){Object.freeze(e)}I=e};var U=function(e){r.removed.push({element:e});try{e.parentNode.removeChild(e)}catch(t){e.outerHTML=""}};var V=function(e,t){r.removed.push({attribute:t.getAttributeNode(e),from:t});t.removeAttribute(e)};var K=function(e){var t,r;try{t=(new u).parseFromString(e,"text/html")}catch(n){}if(!t||!t.documentElement){t=m.createHTMLDocument("");r=t.body;r.parentNode.removeChild(r.parentNode.firstElementChild);r.outerHTML=e}if(typeof t.getElementsByTagName==="function"){return t.getElementsByTagName(C?"html":"body")[0]}return v.call(t,C?"html":"body")[0]};var J=function(e){return p.call(e.ownerDocument||e,e,l.SHOW_ELEMENT|l.SHOW_COMMENT|l.SHOW_TEXT,function(){return l.FILTER_ACCEPT},false)};var Q=function(e){if(e instanceof f||e instanceof c){return false}if(typeof e.nodeName!=="string"||typeof e.textContent!=="string"||typeof e.removeChild!=="function"||!(e.attributes instanceof s)||typeof e.removeAttribute!=="function"||typeof e.setAttribute!=="function"){return true}return false};var X=function(e){var t,n;ne("beforeSanitizeElements",e,null);if(Q(e)){U(e);return true}t=e.nodeName.toLowerCase();ne("uponSanitizeElement",e,{tagName:t,allowedTags:x});if(!x[t]||E[t]){if(B&&!W[t]&&typeof e.insertAdjacentHTML==="function"){try{e.insertAdjacentHTML("AfterEnd",e.innerHTML)}catch(a){}}U(e);return true}if(N&&!e.firstElementChild&&(!e.content||!e.content.firstElementChild)&&/u){e.setAttribute("id",s.value)}}else{if(i==="id"){e.setAttribute(i,"")}V(i,e)}if(!c.keepAttr){continue}if(H&&(l==="id"||l==="name")&&(o in t||o in n||o in q)){continue}if(L){o=o.replace(D," ");o=o.replace(_," ")}if(M&&Y.test(l)){}else if(!A[l]||S[l]){continue}else if(G[l]){}else if(Z.test(o.replace(ee,""))){}else if(l==="src"&&o.indexOf("data:")===0&&j[e.nodeName.toLowerCase()]){}else if(O&&!$.test(o.replace(ee,""))){}else if(!o){}else{continue}try{e.setAttribute(i,o);r.removed.pop()}catch(d){}}ne("afterSanitizeAttributes",e,null)};var re=function(e){var t;var r=J(e);ne("beforeSanitizeShadowDOM",e,null);while(t=r.nextNode()){ne("uponSanitizeShadowNode",t,null);if(X(t)){continue}if(t.content instanceof i){re(t.content)}te(t)}ne("afterSanitizeShadowDOM",e,null)};var ne=function(e,t,n){if(!y[e]){return}y[e].forEach(function(e){e.call(r,t,n,I)})};r.sanitize=function(e,n){var o,l,s,f,c;if(!e){e=""}if(typeof e!=="string"){if(typeof e.toString!=="function"){throw new TypeError("toString is not a function")}else{e=e.toString()}}if(!r.isSupported){if(typeof t.toStaticHTML==="object"||typeof t.toStaticHTML==="function"){return t.toStaticHTML(e)}return e}P(n);r.removed=[];if(!z&&!C&&e.indexOf("<")===-1){return e}o=K(e);if(!o){return z?null:""}f=J(o);while(l=f.nextNode()){if(l.nodeType===3&&l===s){continue}if(X(l)){continue}if(l.content instanceof i){re(l.content)}te(l);s=l}if(z){if(R){c=h.call(o.ownerDocument);while(o.firstChild){c.appendChild(o.firstChild)}}else{c=o}if(F){c=g.call(a,c,true)}return c}return C?o.outerHTML:o.innerHTML};r.addHook=function(e,t){if(typeof t!=="function"){return}y[e]=y[e]||[];y[e].push(t)};r.removeHook=function(e){if(y[e]){y[e].pop()}};r.removeHooks=function(e){if(y[e]){y[e]=[]}};r.removeAllHooks=function(){y={}};return r}); //# sourceMappingURL=./dist/purify.min.js.map \ No newline at end of file diff --git a/dist/purify.min.js.map b/dist/purify.min.js.map index 4dcd8acc6..7edb0cd92 100644 --- a/dist/purify.min.js.map +++ b/dist/purify.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["./src/purify.js"],"names":["factory","root","window","define","amd","module","exports","DOMPurify","version","removed","document","nodeType","isSupported","originalDocument","DocumentFragment","HTMLTemplateElement","NodeFilter","NamedNodeMap","MozNamedAttrMap","Text","Comment","DOMParser","template","createElement","content","ownerDocument","implementation","createNodeIterator","getElementsByTagName","createDocumentFragment","importNode","hooks","createHTMLDocument","documentMode","_addToSet","set","array","l","length","toLowerCase","_cloneObj","object","newObject","property","hasOwnProperty","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","FORBID_TAGS","FORBID_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","SAFE_FOR_JQUERY","SAFE_FOR_TEMPLATES","MUSTACHE_EXPR","ERB_EXPR","WHOLE_DOCUMENT","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_DOM_IMPORT","SANITIZE_DOM","KEEP_CONTENT","FORBID_CONTENTS","DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","CONFIG","formElement","_parseConfig","cfg","ADD_TAGS","ADD_ATTR","Object","freeze","_forceRemove","node","push","element","parentNode","removeChild","e","outerHTML","_removeAttribute","name","attribute","getAttributeNode","from","removeAttribute","_initDocument","dirty","doc","body","parseFromString","documentElement","firstElementChild","call","_createIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","FILTER_ACCEPT","_isClobbered","elm","nodeName","textContent","attributes","setAttribute","_sanitizeElements","currentNode","tagName","_executeHook","insertAdjacentHTML","innerHTML","test","cloneNode","replace","DATA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","_sanitizeAttributes","attr","value","lcName","idAttr","hookEvent","attrName","attrValue","keepAttr","id","Array","prototype","slice","apply","indexOf","pop","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","nextNode","entryPoint","data","forEach","hook","sanitize","oldNode","nodeIterator","returnNode","toString","TypeError","toStaticHTML","firstChild","appendChild","addHook","hookFunction","removeHook","removeHooks","removeAllHooks"],"mappings":"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","file":"./dist/purify.min.js"} \ No newline at end of file +{"version":3,"sources":["./src/purify.js"],"names":["factory","root","window","define","amd","module","exports","DOMPurify","version","removed","document","nodeType","isSupported","originalDocument","DocumentFragment","HTMLTemplateElement","NodeFilter","NamedNodeMap","MozNamedAttrMap","Text","Comment","DOMParser","template","createElement","content","ownerDocument","implementation","createNodeIterator","getElementsByTagName","createDocumentFragment","importNode","hooks","createHTMLDocument","documentMode","_addToSet","set","array","l","length","toLowerCase","_cloneObj","object","newObject","property","hasOwnProperty","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","FORBID_TAGS","FORBID_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","SAFE_FOR_JQUERY","SAFE_FOR_TEMPLATES","MUSTACHE_EXPR","ERB_EXPR","WHOLE_DOCUMENT","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_DOM_IMPORT","SANITIZE_DOM","KEEP_CONTENT","FORBID_CONTENTS","DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","CONFIG","formElement","_parseConfig","cfg","ADD_TAGS","ADD_ATTR","Object","freeze","_forceRemove","node","push","element","parentNode","removeChild","e","outerHTML","_removeAttribute","name","attribute","getAttributeNode","from","removeAttribute","_initDocument","dirty","doc","body","parseFromString","documentElement","firstElementChild","call","_createIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","FILTER_ACCEPT","_isClobbered","elm","nodeName","textContent","attributes","setAttribute","_sanitizeElements","currentNode","tagName","_executeHook","allowedTags","insertAdjacentHTML","innerHTML","test","cloneNode","replace","DATA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","_sanitizeAttributes","attr","value","lcName","idAttr","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","id","Array","prototype","slice","apply","indexOf","pop","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","nextNode","entryPoint","data","forEach","hook","sanitize","oldNode","nodeIterator","returnNode","toString","TypeError","toStaticHTML","firstChild","appendChild","addHook","hookFunction","removeHook","removeHooks","removeAllHooks"],"mappings":"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","file":"./dist/purify.min.js"} \ No newline at end of file diff --git a/src/purify.js b/src/purify.js index 79a389394..bf2af374e 100644 --- a/src/purify.js +++ b/src/purify.js @@ -21,7 +21,7 @@ * Version label, exposed for easier checks * if DOMPurify is up to date or not */ - DOMPurify.version = '0.8.3'; + DOMPurify.version = '0.8.4'; /** * Array of elements that DOMPurify removed during sanitation. @@ -465,7 +465,8 @@ /* Execute a hook if present */ _executeHook('uponSanitizeElement', currentNode, { - tagName: tagName + tagName: tagName, + allowedTags: ALLOWED_TAGS }); /* Remove element if anything forbids its presence */ @@ -537,7 +538,8 @@ hookEvent = { attrName: '', attrValue: '', - keepAttr: true + keepAttr: true, + allowedAttributes: ALLOWED_ATTR }; l = attributes.length; diff --git a/test/test-suite.js b/test/test-suite.js index c723fb8c7..251611022 100644 --- a/test/test-suite.js +++ b/test/test-suite.js @@ -260,9 +260,29 @@ module.exports = function(DOMPurify, window, tests, xssTests) { }); var dirty = '

This is a beatufiul text

This is too

'; var modified = '

foo

foo

'; - assert.equal(modified, DOMPurify.sanitize(dirty)); + assert.equal(DOMPurify.sanitize(dirty), modified); DOMPurify.removeHooks('afterSanitizeElements') } ); + // Test to ensure that a hook can add allowed tags / attributes on the fly + QUnit.test( 'ensure that a hook can add allowed tags / attributes on the fly', function(assert) { + DOMPurify.addHook('uponSanitizeElement', function(node, data){ + if(node.nodeName && node.nodeName.match(/^\w+-\w+$/) + && !data.allowedTags[data.tagName]) { + data.allowedTags[data.tagName] = true; + } + }); + DOMPurify.addHook('uponSanitizeAttribute', function(node, data){ + if(data.attrName && data.attrName.match(/^\w+-\w+$/) + && !data.allowedAttributes[data.attrName]) { + data.allowedAttributes[data.attrName] = true; + } + }); + var dirty = '

HELLO

'; + var modified = '

HELLO

'; + assert.equal(DOMPurify.sanitize(dirty), modified); + DOMPurify.removeHooks('uponSanitizeElement'); + DOMPurify.removeHooks('uponSanitizeAttribute'); + } ); QUnit.test( 'sanitize() should allow unknown protocols when ALLOW_UNKNOWN_PROTOCOLS is true', function (assert) { var dirty = '
'; assert.equal(dirty, DOMPurify.sanitize(dirty, {ALLOW_UNKNOWN_PROTOCOLS: true}));