diff --git a/README.md b/README.md index f93e1525..2506a4aa 100644 --- a/README.md +++ b/README.md @@ -195,17 +195,20 @@ Are you facing a [CORS policy](https://developer.mozilla.org/en-US/docs/Web/HTTP issue in your app? Don't worry, there are alternative solutions to this problem that you can explore. Here are some options to consider: -1. **Use third-party services like [allOrigins](https://allorigins.win/).** With this +1. **Use the option.corsImg support by passing images** With this option, you can setup + a proxy service that will process the requests in a safe CORS context. + +2. **Use third-party services like [allOrigins](https://allorigins.win/).** With this service, you can fetch the source code or an image in base64 format from any website. However, this method can be a bit slow. -1. **Set up your own API service.** Compared to third-party services like +3. **Set up your own API service.** Compared to third-party services like [allOrigins](https://allorigins.win/), this method can be faster, but you'll need to convert the image URL to base64 format. You can use the "[image-to-base64](https://github.com/renanbastos93/image-to-base64)" package for this purpose. -1. **Utilize +4. **Utilize [server-side functions](https://nextjs.org/docs/basic-features/data-fetching/get-server-side-props) features of frameworks like [Next.js](https://nextjs.org/).** This is the easiest and most convenient method, where you can directly fetch a URL source within @@ -327,7 +330,7 @@ Klimas (fixes), Edgardo Di Gesto (fixes), 樊冬 Fan Dong (fixes), Shrijan Tripa SNDST00M (optimize), Joseph White (performance CSS), Phani Rithvij (test), David DOLCIMASCOLO (packaging), Zee (ZM) @zm-cttae (many major updates), Joshua Walsh @JoshuaWalsh (Firefox issues), Emre Coban @emrecoban (documentation), Nate Stuyvesant -@nstuyvesant (fixes) +@nstuyvesant (fixes), King Wang @eachmawzw (CORS image proxy) ## License diff --git a/dist/dom-to-image-more.min.js b/dist/dom-to-image-more.min.js index 21191bc2..6599c086 100644 --- a/dist/dom-to-image-more.min.js +++ b/dist/dom-to-image-more.min.js @@ -1,3 +1,3 @@ -/*! dom-to-image-more 26-04-2023 */ -!function(u){"use strict";const f=function(){let e=0;return{escape:function(e){return e.replace(/([.*+?^${}()|[]\/\\])/g,"\\$1")},isDataUrl:function(e){return-1!==e.search(/^(data:)/)},canvasToBlob:function(t){if(t.toBlob)return new Promise(function(e){t.toBlob(e)});return function(r){return new Promise(function(e){var t=s(r.toDataURL().split(",")[1]),n=t.length,o=new Uint8Array(n);for(let e=0;et.style.removeProperty(e)),["left","right","top","bottom"].forEach(e=>{t.style.getPropertyValue(e)&&t.style.setProperty(e,"0px")})))}e(c,s)}function t(){const l=f.uid();function t(r){const i=h(c,r),u=i.getPropertyValue("content");if(""!==u&&"none"!==u){const t=s.getAttribute("class")||"",n=(s.setAttribute("class",t+" "+l),document.createElement("style"));function e(){const e=`.${l}:`+r,t=(i.cssText?n:o)();return document.createTextNode(e+`{${t}}`);function n(){return`${i.cssText} content: ${u};`}function o(){const e=f.asArray(i).map(t).join("; ");return e+";";function t(e){const t=i.getPropertyValue(e),n=i.getPropertyPriority(e)?" !important":"";return e+": "+t+n}}}n.appendChild(e()),s.appendChild(n)}}[":before",":after"].forEach(function(e){t(e)})}function n(){f.isHTMLTextAreaElement(c)&&(s.innerHTML=c.value),f.isHTMLInputElement(c)&&s.setAttribute("value",c.value)}function o(){f.isSVGElement(s)&&(s.setAttribute("xmlns","http://www.w3.org/2000/svg"),f.isSVGRectElement(s))&&["width","height"].forEach(function(e){const t=s.getAttribute(e);t&&s.style.setProperty(e,t)})}}}(e,r,null,t)}).then(p).then(g).then(function(t){r.bgcolor&&(t.style.backgroundColor=r.bgcolor);r.width&&(t.style.width=r.width+"px");r.height&&(t.style.height=r.height+"px");r.style&&Object.keys(r.style).forEach(function(e){t.style[e]=r.style[e]});let e=null;"function"==typeof r.onclone&&(e=r.onclone(t));return Promise.resolve(e).then(function(){return t})}).then(function(e){let n=r.width||f.width(e),o=r.height||f.height(e);return Promise.resolve(e).then(function(e){return e.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),(new XMLSerializer).serializeToString(e)}).then(f.escapeXhtml).then(function(e){var t=(f.isDimensionMissing(n)?' width="100%"':` width="${n}"`)+(f.isDimensionMissing(o)?' height="100%"':` height="${o}"`);return`${e}`}).then(function(e){return"data:image/svg+xml;charset=utf-8,"+e})}).then(function(e){for(;0{w=null,E={}},2e4)}(),e})}function i(r,i){return m(r,i=i||{}).then(f.makeImage).then(function(e){var t="number"!=typeof i.scale?1:i.scale,n=function(e,t){let n=i.width||f.width(e),o=i.height||f.height(e);f.isDimensionMissing(n)&&(n=f.isDimensionMissing(o)?300:2*o);f.isDimensionMissing(o)&&(o=n/2);e=document.createElement("canvas");e.width=n*t,e.height=o*t,i.bgcolor&&((t=e.getContext("2d")).fillStyle=i.bgcolor,t.fillRect(0,0,e.width,e.height));return e}(r,t),o=n.getContext("2d");return o.msImageSmoothingEnabled=!1,o.imageSmoothingEnabled=!1,e&&(o.scale(t,t),o.drawImage(e,0,0)),n})}let d=null;function p(n){return e.resolveAll().then(function(e){var t;return""!==e&&(t=document.createElement("style"),n.appendChild(t),t.appendChild(document.createTextNode(e))),n})}function g(e){return n.inlineAll(e).then(function(){return e})}function y(e,t,i,u,n){const l=c.impl.options.copyDefaultStyles?function(t,e){var e=function(e){var t=[];do{if(e.nodeType===a){var n=e.tagName;if(t.push(n),v.includes(n))break}}while(e=e.parentNode,e);return t}(e),n=function(e){return("relaxed"!==t.styleCaching?e:e.filter((e,t,n)=>0===t||t===n.length-1)).join(">")}(e);if(E[n])return E[n];var o=function(){if(d)return d.contentWindow;var e=document.characterSet||"UTF-8",t=document.doctype,t=t?(`":"";return(d=document.createElement("iframe")).id="domtoimage-sandbox-"+f.uid(),d.style.visibility="hidden",d.style.position="fixed",document.body.appendChild(d),function(e,t,n,o){try{return e.contentWindow.document.write(t+`${o}`),e.contentWindow}catch(e){}var r=document.createElement("meta");r.setAttribute("charset",n);try{var i=document.implementation.createHTMLDocument(o),u=(i.head.appendChild(r),t+i.documentElement.outerHTML);return e.setAttribute("srcdoc",u),e.contentWindow}catch(e){}return e.contentDocument.head.appendChild(r),e.contentDocument.title=o,e.contentWindow}(d,t,e,"domtoimage-sandbox");function n(e){var t;return e?((t=document.createElement("div")).innerText=e,t.innerHTML):""}}(),e=function(e,t){let n=e.body;do{var o=t.pop(),o=e.createElement(o);n.appendChild(o),n=o}while(0t.style.removeProperty(e)),["left","right","top","bottom"].forEach(e=>{t.style.getPropertyValue(e)&&t.style.setProperty(e,"0px")})))}e(c,l)}function t(){const u=f.uid();function t(r){const i=m(c,r),s=i.getPropertyValue("content");if(""!==s&&"none"!==s){const t=l.getAttribute("class")||"",n=(l.setAttribute("class",t+" "+u),document.createElement("style"));function e(){const e=`.${u}:`+r,t=(i.cssText?n:o)();return document.createTextNode(e+`{${t}}`);function n(){return`${i.cssText} content: ${s};`}function o(){const e=f.asArray(i).map(t).join("; ");return e+";";function t(e){const t=i.getPropertyValue(e),n=i.getPropertyPriority(e)?" !important":"";return e+": "+t+n}}}n.appendChild(e()),l.appendChild(n)}}[":before",":after"].forEach(function(e){t(e)})}function n(){f.isHTMLTextAreaElement(c)&&(l.innerHTML=c.value),f.isHTMLInputElement(c)&&l.setAttribute("value",c.value)}function o(){f.isSVGElement(l)&&(l.setAttribute("xmlns","http://www.w3.org/2000/svg"),f.isSVGRectElement(l))&&["width","height"].forEach(function(e){const t=l.getAttribute(e);t&&l.style.setProperty(e,t)})}}}(e,r,null,t)}).then(p).then(g).then(function(t){r.bgcolor&&(t.style.backgroundColor=r.bgcolor);r.width&&(t.style.width=r.width+"px");r.height&&(t.style.height=r.height+"px");r.style&&Object.keys(r.style).forEach(function(e){t.style[e]=r.style[e]});let e=null;"function"==typeof r.onclone&&(e=r.onclone(t));return Promise.resolve(e).then(function(){return t})}).then(function(e){let n=r.width||f.width(e),o=r.height||f.height(e);return Promise.resolve(e).then(function(e){return e.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),(new XMLSerializer).serializeToString(e)}).then(f.escapeXhtml).then(function(e){var t=(f.isDimensionMissing(n)?' width="100%"':` width="${n}"`)+(f.isDimensionMissing(o)?' height="100%"':` height="${o}"`);return`${e}`}).then(function(e){return"data:image/svg+xml;charset=utf-8,"+e})}).then(function(e){for(;0{w=null,E={}},2e4)}(),e})}function i(r,i){return d(r,i=i||{}).then(f.makeImage).then(function(e){var t="number"!=typeof i.scale?1:i.scale,n=function(e,t){let n=i.width||f.width(e),o=i.height||f.height(e);f.isDimensionMissing(n)&&(n=f.isDimensionMissing(o)?300:2*o);f.isDimensionMissing(o)&&(o=n/2);e=document.createElement("canvas");e.width=n*t,e.height=o*t,i.bgcolor&&((t=e.getContext("2d")).fillStyle=i.bgcolor,t.fillRect(0,0,e.width,e.height));return e}(r,t),o=n.getContext("2d");return o.msImageSmoothingEnabled=!1,o.imageSmoothingEnabled=!1,e&&(o.scale(t,t),o.drawImage(e,0,0)),n})}let h=null;function p(n){return e.resolveAll().then(function(e){var t;return""!==e&&(t=document.createElement("style"),n.appendChild(t),t.appendChild(document.createTextNode(e))),n})}function g(e){return n.inlineAll(e).then(function(){return e})}function y(e,t,i,s,n){const u=c.impl.options.copyDefaultStyles?function(t,e){var e=function(e){var t=[];do{if(e.nodeType===a){var n=e.tagName;if(t.push(n),v.includes(n))break}}while(e=e.parentNode,e);return t}(e),n=function(e){return("relaxed"!==t.styleCaching?e:e.filter((e,t,n)=>0===t||t===n.length-1)).join(">")}(e);if(E[n])return E[n];var o=function(){if(h)return h.contentWindow;var e=document.characterSet||"UTF-8",t=document.doctype,t=t?(`":"";return(h=document.createElement("iframe")).id="domtoimage-sandbox-"+f.uid(),h.style.visibility="hidden",h.style.position="fixed",document.body.appendChild(h),function(e,t,n,o){try{return e.contentWindow.document.write(t+`${o}`),e.contentWindow}catch(e){}var r=document.createElement("meta");r.setAttribute("charset",n);try{var i=document.implementation.createHTMLDocument(o),s=(i.head.appendChild(r),t+i.documentElement.outerHTML);return e.setAttribute("srcdoc",s),e.contentWindow}catch(e){}return e.contentDocument.head.appendChild(r),e.contentDocument.title=o,e.contentWindow}(h,t,e,"domtoimage-sandbox");function n(e){var t;return e?((t=document.createElement("div")).innerText=e,t.innerHTML):""}}(),e=function(e,t){let n=e.body;do{var o=t.pop(),o=e.createElement(o);n.appendChild(o),n=o}while(0=0.10.0" } }, "node_modules/@colors/colors": { @@ -54,23 +63,23 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", - "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz", + "integrity": "sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", - "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.5.1", + "espree": "^9.6.0", "globals": "^13.19.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -86,18 +95,18 @@ } }, "node_modules/@eslint/js": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz", - "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz", + "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", + "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -175,18 +184,18 @@ "dev": true }, "node_modules/@types/cors": { - "version": "2.8.13", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz", - "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==", + "version": "2.8.14", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.14.tgz", + "integrity": "sha512-RXHUvNWYICtbP6s18PnOCaqToK8y14DnLd75c6HfyKf228dxy7pHNOQkxPtvXKp/hINFMDjbYzsj63nnpPMSRQ==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/node": { - "version": "18.16.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.1.tgz", - "integrity": "sha512-DZxSZWXxFfOlx7k7Rv4LAyiMroaxa3Ly/7OOzZO8cBNho0YzAi4qlbrx8W27JGqG57IgR/6J7r+nOJWw6kcvZA==", + "version": "20.8.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.2.tgz", + "integrity": "sha512-Vvycsc9FQdwhxE3y3DzeIxuEJbWGDsnrxvMADzTDF/lcdR9/K+AQIeAghTQsHtotg/q0j3WEOYS/jQgSdWue3w==", "dev": true }, "node_modules/abbrev": { @@ -209,9 +218,9 @@ } }, "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -511,18 +520,18 @@ } }, "node_modules/chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", + "version": "4.3.10", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", + "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", "dev": true, "dependencies": { "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", "pathval": "^1.1.1", - "type-detect": "^4.0.5" + "type-detect": "^4.0.8" }, "engines": { "node": ">=4" @@ -545,10 +554,13 @@ } }, "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", "dev": true, + "dependencies": { + "get-func-name": "^2.0.2" + }, "engines": { "node": "*" } @@ -973,9 +985,9 @@ } }, "node_modules/engine.io": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.4.1.tgz", - "integrity": "sha512-JFYQurD/nbsA5BSPmbaOSLa3tSVj8L6o4srSwXXY3NqE+gGUNmmPTbhn8tjzcCtSqhFgIeqef81ngny8JM25hw==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.2.tgz", + "integrity": "sha512-IXsMcGpw/xRfjra46sVZVHiSWo/nJ/3g1337q9KNXtS6YRzbW5yIzTCb9DjhrBe7r3GZQR0I4+nq+4ODk5g/cA==", "dev": true, "dependencies": { "@types/cookie": "^0.4.1", @@ -986,17 +998,17 @@ "cookie": "~0.4.1", "cors": "~2.8.5", "debug": "~4.3.1", - "engine.io-parser": "~5.0.3", + "engine.io-parser": "~5.2.1", "ws": "~8.11.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=10.2.0" } }, "node_modules/engine.io-parser": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.6.tgz", - "integrity": "sha512-tjuoZDMAdEhVnSFleYPCtdL2GXwVTGtNjoeJd9IhIG3C1xs9uwxqRNEu5WpnDZCaozwVlK/nuQhpodhXSIMaxw==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz", + "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==", "dev": true, "engines": { "node": ">=10.0.0" @@ -1051,27 +1063,27 @@ } }, "node_modules/eslint": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz", - "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz", + "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.2", - "@eslint/js": "8.39.0", - "@humanwhocodes/config-array": "^0.11.8", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.50.0", + "@humanwhocodes/config-array": "^0.11.11", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.3.2", "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.0", - "espree": "^9.5.1", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -1079,22 +1091,19 @@ "find-up": "^5.0.0", "glob-parent": "^6.0.2", "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", + "graphemer": "^1.4.0", "ignore": "^5.2.0", - "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", + "optionator": "^0.9.3", "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", "text-table": "^0.2.0" }, "bin": { @@ -1108,9 +1117,9 @@ } }, "node_modules/eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -1124,9 +1133,9 @@ } }, "node_modules/eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1136,14 +1145,14 @@ } }, "node_modules/espree": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", - "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "dependencies": { - "acorn": "^8.8.0", + "acorn": "^8.9.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.0" + "eslint-visitor-keys": "^3.4.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1444,28 +1453,29 @@ } }, "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.0.tgz", + "integrity": "sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==", "dev": true, "dependencies": { - "flatted": "^3.1.0", + "flatted": "^3.2.7", + "keyv": "^4.5.3", "rimraf": "^3.0.2" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=12.0.0" } }, "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", "dev": true }, "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", "dev": true, "funding": [ { @@ -1524,9 +1534,9 @@ "dev": true }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, "optional": true, @@ -1565,22 +1575,23 @@ } }, "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true, "engines": { "node": "*" } }, "node_modules/get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", + "has-proto": "^1.0.1", "has-symbols": "^1.0.3" }, "funding": { @@ -1671,9 +1682,9 @@ } }, "node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "version": "13.22.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz", + "integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -1717,10 +1728,10 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, "node_modules/grunt": { @@ -1974,6 +1985,18 @@ "node": ">=8" } }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -2174,9 +2197,9 @@ } }, "node_modules/is-core-module": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", - "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -2359,16 +2382,6 @@ "node": ">=0.10.0" } }, - "node_modules/js-sdsl": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", - "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -2423,6 +2436,12 @@ "node": ">=0.8.0" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -2638,6 +2657,15 @@ "node": ">=4" } }, + "node_modules/keyv": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.3.tgz", + "integrity": "sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -3238,17 +3266,17 @@ } }, "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" }, "engines": { "node": ">= 0.8.0" @@ -3450,15 +3478,15 @@ } }, "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", + "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", "dev": true, "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10.13.0" + "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" @@ -3626,12 +3654,12 @@ "dev": true }, "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.6", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz", + "integrity": "sha512-njhxM7mV12JfufShqGy3Rz8j11RPdLy4xi15UurGJeoHLfJpVXKdh3ueuOqbYUcDZnffr6X739JBo5LzyahEsw==", "dev": true, "dependencies": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -3751,9 +3779,9 @@ "dev": true }, "node_modules/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -3816,20 +3844,21 @@ } }, "node_modules/socket.io": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.6.1.tgz", - "integrity": "sha512-KMcaAi4l/8+xEjkRICl6ak8ySoxsYG+gG6/XfRCPJPQ/haCRIJBTL4wIl8YCsmtaBovcAXGLOShyVWQ/FG8GZA==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.2.tgz", + "integrity": "sha512-bvKVS29/I5fl2FGLNHuXlQaUH/BlzX1IN6S+NKLNZpBsPZIDH+90eQmCs2Railn4YUiww4SzUedJ6+uzwFnKLw==", "dev": true, "dependencies": { "accepts": "~1.3.4", "base64id": "~2.0.0", + "cors": "~2.8.5", "debug": "~4.3.2", - "engine.io": "~6.4.1", + "engine.io": "~6.5.2", "socket.io-adapter": "~2.5.2", - "socket.io-parser": "~4.2.1" + "socket.io-parser": "~4.2.4" }, "engines": { - "node": ">=10.0.0" + "node": ">=10.2.0" } }, "node_modules/socket.io-adapter": { @@ -3842,9 +3871,9 @@ } }, "node_modules/socket.io-parser": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.2.tgz", - "integrity": "sha512-DJtziuKypFkMMHCm2uIshOYC7QaylbtzQwiMYDuCKy3OPkjLzu4B2vAhTlqipRHHzrI0NJeBAizTK7X+6m1jVw==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", "dev": true, "dependencies": { "@socket.io/component-emitter": "~3.1.0", @@ -3864,9 +3893,9 @@ } }, "node_modules/sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", "dev": true }, "node_modules/statuses": { @@ -4075,9 +4104,9 @@ } }, "node_modules/ua-parser-js": { - "version": "0.7.35", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.35.tgz", - "integrity": "sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==", + "version": "0.7.36", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.36.tgz", + "integrity": "sha512-CPPLoCts2p7D8VbybttE3P2ylv0OBZEAy7a12DsulIEcAiMtWJy+PBgMXgWDI80D5UwqE8oQPHYnk13tm38M2Q==", "dev": true, "funding": [ { @@ -4087,6 +4116,10 @@ { "type": "paypal", "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" } ], "engines": { @@ -4246,15 +4279,6 @@ "node": ">= 8" } }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/workerpool": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", diff --git a/package.json b/package.json index e4dfb220..4e8c2104 100644 --- a/package.json +++ b/package.json @@ -1,11 +1,11 @@ { "name": "dom-to-image-more", - "version": "3.1.6", + "version": "3.2.0", "description": "Generates an image from a DOM node using HTML5 canvas and SVG", "main": "dist/dom-to-image-more.min.js", "devDependencies": { - "chai": "^4.3.7", - "eslint": "^8.39.0", + "chai": "^4.3.10", + "eslint": "^8.50.0", "grunt": "^1.6.1", "grunt-cli": "^1.4.3", "grunt-contrib-jshint": "^3.2.0", @@ -20,8 +20,8 @@ "karma-mocha": "^2.0.1", "karma-mocha-reporter": "^2.2.5", "mocha": "^10.2.0", - "prettier": "^2.8.8", - "semver": "^7.5.0" + "prettier": "^3.0.3", + "semver": "^7.5.4" }, "scripts": { "format": "eslint src --fix && prettier --write .", @@ -61,7 +61,8 @@ "Andoni Zubimendi @AndoniZubimendi", "Joshua Walsh @JoshuaWalsh", "Emre Coban @emrecoban", - "Nate Stuyvesant @nstuyvesant" + "Nate Stuyvesant @nstuyvesant", + "King Wang @eachmawzw" ], "license": "MIT", "bugs": { diff --git a/spec/resources/defaultStyles/control-image b/spec/resources/defaultStyles/control-image index b977988b..5718ef69 100644 --- a/spec/resources/defaultStyles/control-image +++ b/spec/resources/defaultStyles/control-image @@ -1 +1 @@ -data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABpoAAAE8CAYAAADQeGITAAAAAXNSR0IArs4c6QAAIABJREFUeF7s3Qd0FdXi9uE3hdB7R6RLR7oggiJWBBRBBRWUIlKlN+ldEEGqCChWkKKiIAiKCKKgSO+9I723JCTkW3vul/xzkhNIOS2Z36zlujpndnv2rLtOzjt7j59iHFdv3nxY4RFv+vn5PS6piKTAmNfw3wgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAArYQCJN0KCIi4ncF+H2RKV26ddFH7Rf9P65eu/Gxn59fW1uwMEgEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIEECUREREzPlDF9u8hCUUHTteu3lkkRzySoNi5GAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBCwmYDf8owZ0j5rBm0FTaxkstn8M1wEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAIAkCkSub/Mw7mfzuaG0S6qIoAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIICAzQQi/FXDj9VMNpt1hosAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIuEDArGryu3b95l5JxV1QH1UggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgjYR2CfCZpuSwq0z5gZKQIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAgAsEwkzQFOGCiqgCAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEDAZgIETTabcIaLAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCLhKgKDJVZLUgwACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgjYTICgyWYTznARQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAVcJEDS5SpJ6EEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAGbCRA02WzCGS4CCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg4CoBgiZXSVIPAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIGAzAYImm004w0UAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEXCVA0OQqSepBAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBGwmQNBkswlnuAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIICAqwQImlwlST0IIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAgM0ECJpsNuEMFwEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBwlQBBk6skqQcBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQsJkAQZPNJpzhIoAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAKuEiBocpUk9SCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACNhMgaLLZhDNcBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQMBVAgRNrpKkHgQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEDAZgIETTabcIaLAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCLhKgKDJVZLUgwACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgjYTICgyWYTznARQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAVcJEDS5SpJ6EEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAGbCRA02WzCGS4CCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg4CoBgiZXSVIPAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIGAzAYImm004w0UAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEXCVA0OQqSepBAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBGwmQNBkswlnuAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIICAqwQImlwlST0IIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAgM0ECJpsNuEMFwEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBwlQBBk6skqQcBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQsJkAQZPNJpzhIoAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAKuEiBocpUk9SCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACNhMgaLLZhDNcBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQMBVArYPmlavWacF3y3S2nXrdf7CRX02Y5KeqFPLVb7UgwACCCCAAAIIIIAAAggggAACCCCA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 \ No newline at end of file +data:image/png;base64,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 \ No newline at end of file diff --git a/src/dom-to-image-more.js b/src/dom-to-image-more.js index e658038b..a72167b3 100644 --- a/src/dom-to-image-more.js +++ b/src/dom-to-image-more.js @@ -20,6 +20,8 @@ httpTimeout: 30000, // Style computation cache tag rules (options are strict, relaxed) styleCaching: 'strict', + // Default cors config is to request the image address directly + corsImg: undefined, }; const domtoimage = { @@ -76,6 +78,11 @@ * @param {Boolean} options.cacheBust - set to true to cache bust by appending the time to the request url * @param {String} options.styleCaching - set to 'strict', 'relaxed' to select style caching rules * @param {Boolean} options.copyDefaultStyles - set to false to disable use of default styles of elements + * @param {Object} options.corsImg - When the image is restricted by the server from cross-domain requests, the proxy address is passed in to get the image + * - @param {String} url - eg: https://cors-anywhere.herokuapp.com/ + * - @param {Enumerator} method - get, post + * - @param {Object} headers - eg: { "Content-Type", "application/json;charset=UTF-8" } + * - @param {Object} data - post payload * @return {Promise} - A promise that is fulfilled with a SVG image data URL * */ function toSvg(node, options) { @@ -259,6 +266,12 @@ domtoimage.impl.options.cacheBust = options.cacheBust; } + if (typeof(options.corsImg) === 'undefined') { + domtoimage.impl.options.corsImg = defaultOptions.corsImg; + } else { + domtoimage.impl.options.corsImg = options.corsImg; + } + if (typeof options.useCredentials === 'undefined') { domtoimage.impl.options.useCredentials = defaultOptions.useCredentials; } else { @@ -790,8 +803,38 @@ if (domtoimage.impl.options.useCredentials) { request.withCredentials = true; } - request.open('GET', url, true); - request.send(); + + if (domtoimage.impl.options.corsImg + && url.indexOf('http') === 0 + && url.indexOf(window.location.origin) === -1) { + const method = (domtoimage.impl.options.corsImg.method || 'GET').toUpperCase() === 'POST' + ? 'POST' + : 'GET'; + + request.open(method, (domtoimage.impl.options.corsImg.url || '').replace('#{cors}', url), true); + + let isJson = false; + const headers = domtoimage.impl.options.corsImg.headers || {}; + Object.keys(headers).forEach(function (key) { + if (headers[key].indexOf('application/json') !== -1) { + isJson = true; + } + request.setRequestHeader(key, headers[key]); + }); + + const corsData = handleJson(domtoimage.impl.options.corsImg.data || ''); + + Object.keys(corsData).forEach(function (key) { + if (typeof(corsData[key]) === 'string') { + corsData[key] = corsData[key].replace('#{cors}', url); + } + }); + + request.send(isJson ? JSON.stringify(corsData) : corsData); + } else { + request.open('GET', url, true); + request.send(); + } let placeholder; if (domtoimage.impl.options.imagePlaceholder) { @@ -806,7 +849,7 @@ return; } - if (request.status !== 200) { + if (request.status >= 300) { if (placeholder) { resolve(placeholder); } else { @@ -835,6 +878,15 @@ } } + function handleJson(data) { + try { + return JSON.parse(JSON.stringify(data)); + } catch (e) { + fail('corsImg.data is missing or invalid'); + return; + } + } + function fail(message) { console.error(message); resolve('');