Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@imgix/js-core

Package Overview
Dependencies
Maintainers
11
Versions
24
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@imgix/js-core - npm Package Compare versions

Comparing version
3.7.0
to
3.7.1
+1
-1
dist/imgix-js-core.umd.js

@@ -1,1 +0,1 @@

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).ImgixClient=e()}(this,function(){"use strict";function e(e,t){var r,n=Object.keys(e);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(e),t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)),n}function c(n){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?e(Object(o),!0).forEach(function(t){var e,r;e=n,r=o[t=t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):e(Object(o)).forEach(function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(o,t))})}return n}function l(t){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function n(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function f(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i=[],a=!0,u=!1;try{for(r=r.call(t);!(a=(n=r.next()).done)&&(i.push(n.value),!e||i.length!==e);a=!0);}catch(t){u=!0,o=t}finally{try{a||null==r.return||r.return()}finally{if(u)throw o}}return i}}(t,e)||r(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function h(t){return function(t){if(Array.isArray(t))return o(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||r(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(t,e){var r;if(t)return"string"==typeof t?o(t,e):"Map"===(r="Object"===(r=Object.prototype.toString.call(t).slice(8,-1))&&t.constructor?t.constructor.name:r)||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(t,e):void 0}function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}var k="3.7.2",F="function"==typeof atob,t="function"==typeof btoa,i="function"==typeof Buffer;const a="function"==typeof TextDecoder?new TextDecoder:void 0,u="function"==typeof TextEncoder?new TextEncoder:void 0;const s=Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="),d=(t=>{let r={};return t.forEach((t,e)=>r[t]=e),r})(s),z=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,y=String.fromCharCode.bind(String),p="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):(t,e=t=>t)=>new Uint8Array(Array.prototype.slice.call(t,0).map(e)),g=t=>t.replace(/=/g,"").replace(/[+\/]/g,t=>"+"==t?"-":"_"),b=t=>t.replace(/[^A-Za-z0-9\+\/]/g,"");var v=e=>{let r,n,o,i,a="";var t=e.length%3;for(let t=0;t<e.length;){if(255<(n=e.charCodeAt(t++))||255<(o=e.charCodeAt(t++))||255<(i=e.charCodeAt(t++)))throw new TypeError("invalid character found");r=n<<16|o<<8|i,a+=s[r>>18&63]+s[r>>12&63]+s[r>>6&63]+s[63&r]}return t?a.slice(0,t-3)+"===".substring(t):a};const m=t?t=>btoa(t):i?t=>Buffer.from(t,"binary").toString("base64"):v,w=i?t=>Buffer.from(t).toString("base64"):r=>{var n=[];for(let t=0,e=r.length;t<e;t+=4096)n.push(y.apply(null,r.subarray(t,t+4096)));return m(n.join(""))},A=(t,e=!1)=>e?g(w(t)):w(t),D=t=>{var e;return t.length<2?(e=t.charCodeAt(0))<128?t:e<2048?y(192|e>>>6)+y(128|63&e):y(224|e>>>12&15)+y(128|e>>>6&63)+y(128|63&e):(e=65536+1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320),y(240|e>>>18&7)+y(128|e>>>12&63)+y(128|e>>>6&63)+y(128|63&e))},W=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,S=t=>t.replace(W,D),x=i?t=>Buffer.from(t,"utf8").toString("base64"):u?t=>w(u.encode(t)):t=>m(S(t)),T=(t,e=!1)=>e?g(x(t)):x(t);t=t=>T(t,!0);const H=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,M=t=>{switch(t.length){case 4:var e=((7&t.charCodeAt(0))<<18|(63&t.charCodeAt(1))<<12|(63&t.charCodeAt(2))<<6|63&t.charCodeAt(3))-65536;return y(55296+(e>>>10))+y(56320+(1023&e));case 3:return y((15&t.charCodeAt(0))<<12|(63&t.charCodeAt(1))<<6|63&t.charCodeAt(2));default:return y((31&t.charCodeAt(0))<<6|63&t.charCodeAt(1))}},P=t=>t.replace(H,M);var U=e=>{if(e=e.replace(/\s+/g,""),!z.test(e))throw new TypeError("malformed base64.");e+="==".slice(2-(3&e.length));let r,n="",o,i;for(let t=0;t<e.length;)r=d[e.charAt(t++)]<<18|d[e.charAt(t++)]<<12|(o=d[e.charAt(t++)])<<6|(i=d[e.charAt(t++)]),n+=64===o?y(r>>16&255):64===i?y(r>>16&255,r>>8&255):y(r>>16&255,r>>8&255,255&r);return n};const B=F?t=>atob(b(t)):i?t=>Buffer.from(t,"base64").toString("binary"):U,C=i?t=>p(Buffer.from(t,"base64")):t=>p(B(t),t=>t.charCodeAt(0)),R=t=>C(j(t)),Z=i?t=>Buffer.from(t,"base64").toString("utf8"):a?t=>a.decode(C(t)):t=>P(B(t)),j=t=>b(t.replace(/[-_]/g,t=>"-"==t?"+":"/")),_=t=>Z(j(t));function O(){var t=(t,e)=>Object.defineProperty(String.prototype,t,N(e));t("fromBase64",function(){return _(this)}),t("toBase64",function(t){return T(this,t)}),t("toBase64URI",function(){return T(this,!0)}),t("toBase64URL",function(){return T(this,!0)}),t("toUint8Array",function(){return R(this)})}function q(){var t=(t,e)=>Object.defineProperty(Uint8Array.prototype,t,N(e));t("toBase64",function(t){return A(this,t)}),t("toBase64URI",function(){return A(this,!0)}),t("toBase64URL",function(){return A(this,!0)})}const N=t=>({value:t,enumerable:!1,writable:!0,configurable:!0});const Q={version:k,VERSION:"3.7.2",atob:B,atobPolyfill:U,btoa:m,btoaPolyfill:v,fromBase64:_,toBase64:T,encode:T,encodeURI:t,encodeURL:t,utob:S,btou:P,decode:_,isValid:t=>{return"string"==typeof t&&(t=t.replace(/\s+/g,"").replace(/={0,2}$/,""),!/[^\s0-9a-zA-Z\+/]/.test(t)||!/[^\s0-9a-zA-Z\-_]/.test(t))},fromUint8Array:A,toUint8Array:R,extendString:O,extendUint8Array:q,extendBuiltins:()=>{O(),q()}};function V(t,e){return t(e={exports:{}},e.exports),e.exports}function $(t){return null!=t&&(K(t)||"function"==typeof(e=t).readFloatLE&&"function"==typeof e.slice&&K(e.slice(0,0))||!!t._isBuffer);var e}var G=V(function(t){var i,r;i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r={rotl:function(t,e){return t<<e|t>>>32-e},rotr:function(t,e){return t<<32-e|t>>>e},endian:function(t){if(t.constructor==Number)return 16711935&r.rotl(t,8)|4278255360&r.rotl(t,24);for(var e=0;e<t.length;e++)t[e]=r.endian(t[e]);return t},randomBytes:function(t){for(var e=[];0<t;t--)e.push(Math.floor(256*Math.random()));return e},bytesToWords:function(t){for(var e=[],r=0,n=0;r<t.length;r++,n+=8)e[n>>>5]|=t[r]<<24-n%32;return e},wordsToBytes:function(t){for(var e=[],r=0;r<32*t.length;r+=8)e.push(t[r>>>5]>>>24-r%32&255);return e},bytesToHex:function(t){for(var e=[],r=0;r<t.length;r++)e.push((t[r]>>>4).toString(16)),e.push((15&t[r]).toString(16));return e.join("")},hexToBytes:function(t){for(var e=[],r=0;r<t.length;r+=2)e.push(parseInt(t.substr(r,2),16));return e},bytesToBase64:function(t){for(var e=[],r=0;r<t.length;r+=3)for(var n=t[r]<<16|t[r+1]<<8|t[r+2],o=0;o<4;o++)8*r+6*o<=8*t.length?e.push(i.charAt(n>>>6*(3-o)&63)):e.push("=");return e.join("")},base64ToBytes:function(t){t=t.replace(/[^A-Z0-9+\/]/gi,"");for(var e=[],r=0,n=0;r<t.length;n=++r%4)0!=n&&e.push((i.indexOf(t.charAt(r-1))&Math.pow(2,-2*n+8)-1)<<2*n|i.indexOf(t.charAt(r))>>>6-2*n);return e}},t.exports=r}),E={utf8:{stringToBytes:function(t){return E.bin.stringToBytes(unescape(encodeURIComponent(t)))},bytesToString:function(t){return decodeURIComponent(escape(E.bin.bytesToString(t)))}},bin:{stringToBytes:function(t){for(var e=[],r=0;r<t.length;r++)e.push(255&t.charCodeAt(r));return e},bytesToString:function(t){for(var e=[],r=0;r<t.length;r++)e.push(String.fromCharCode(t[r]));return e.join("")}}},J=E;function K(t){return!!t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}var X=V(function(t){function g(t,e){t.constructor==String?t=(e&&"binary"===e.encoding?w:v).stringToBytes(t):m(t)?t=Array.prototype.slice.call(t,0):Array.isArray(t)||(t=t.toString());for(var r=b.bytesToWords(t),e=8*t.length,n=1732584193,o=-271733879,i=-1732584194,a=271733878,u=0;u<r.length;u++)r[u]=16711935&(r[u]<<8|r[u]>>>24)|4278255360&(r[u]<<24|r[u]>>>8);r[e>>>5]|=128<<e%32,r[14+(64+e>>>9<<4)]=e;for(var s=g._ff,c=g._gg,l=g._hh,f=g._ii,u=0;u<r.length;u+=16){var h=n,d=o,y=i,p=a,n=s(n,o,i,a,r[u+0],7,-680876936),a=s(a,n,o,i,r[u+1],12,-389564586),i=s(i,a,n,o,r[u+2],17,606105819),o=s(o,i,a,n,r[u+3],22,-1044525330);n=s(n,o,i,a,r[u+4],7,-176418897),a=s(a,n,o,i,r[u+5],12,1200080426),i=s(i,a,n,o,r[u+6],17,-1473231341),o=s(o,i,a,n,r[u+7],22,-45705983),n=s(n,o,i,a,r[u+8],7,1770035416),a=s(a,n,o,i,r[u+9],12,-1958414417),i=s(i,a,n,o,r[u+10],17,-42063),o=s(o,i,a,n,r[u+11],22,-1990404162),n=s(n,o,i,a,r[u+12],7,1804603682),a=s(a,n,o,i,r[u+13],12,-40341101),i=s(i,a,n,o,r[u+14],17,-1502002290),n=c(n,o=s(o,i,a,n,r[u+15],22,1236535329),i,a,r[u+1],5,-165796510),a=c(a,n,o,i,r[u+6],9,-1069501632),i=c(i,a,n,o,r[u+11],14,643717713),o=c(o,i,a,n,r[u+0],20,-373897302),n=c(n,o,i,a,r[u+5],5,-701558691),a=c(a,n,o,i,r[u+10],9,38016083),i=c(i,a,n,o,r[u+15],14,-660478335),o=c(o,i,a,n,r[u+4],20,-405537848),n=c(n,o,i,a,r[u+9],5,568446438),a=c(a,n,o,i,r[u+14],9,-1019803690),i=c(i,a,n,o,r[u+3],14,-187363961),o=c(o,i,a,n,r[u+8],20,1163531501),n=c(n,o,i,a,r[u+13],5,-1444681467),a=c(a,n,o,i,r[u+2],9,-51403784),i=c(i,a,n,o,r[u+7],14,1735328473),n=l(n,o=c(o,i,a,n,r[u+12],20,-1926607734),i,a,r[u+5],4,-378558),a=l(a,n,o,i,r[u+8],11,-2022574463),i=l(i,a,n,o,r[u+11],16,1839030562),o=l(o,i,a,n,r[u+14],23,-35309556),n=l(n,o,i,a,r[u+1],4,-1530992060),a=l(a,n,o,i,r[u+4],11,1272893353),i=l(i,a,n,o,r[u+7],16,-155497632),o=l(o,i,a,n,r[u+10],23,-1094730640),n=l(n,o,i,a,r[u+13],4,681279174),a=l(a,n,o,i,r[u+0],11,-358537222),i=l(i,a,n,o,r[u+3],16,-722521979),o=l(o,i,a,n,r[u+6],23,76029189),n=l(n,o,i,a,r[u+9],4,-640364487),a=l(a,n,o,i,r[u+12],11,-421815835),i=l(i,a,n,o,r[u+15],16,530742520),n=f(n,o=l(o,i,a,n,r[u+2],23,-995338651),i,a,r[u+0],6,-198630844),a=f(a,n,o,i,r[u+7],10,1126891415),i=f(i,a,n,o,r[u+14],15,-1416354905),o=f(o,i,a,n,r[u+5],21,-57434055),n=f(n,o,i,a,r[u+12],6,1700485571),a=f(a,n,o,i,r[u+3],10,-1894986606),i=f(i,a,n,o,r[u+10],15,-1051523),o=f(o,i,a,n,r[u+1],21,-2054922799),n=f(n,o,i,a,r[u+8],6,1873313359),a=f(a,n,o,i,r[u+15],10,-30611744),i=f(i,a,n,o,r[u+6],15,-1560198380),o=f(o,i,a,n,r[u+13],21,1309151649),n=f(n,o,i,a,r[u+4],6,-145523070),a=f(a,n,o,i,r[u+11],10,-1120210379),i=f(i,a,n,o,r[u+2],15,718787259),o=f(o,i,a,n,r[u+9],21,-343485551),n=n+h>>>0,o=o+d>>>0,i=i+y>>>0,a=a+p>>>0}return b.endian([n,o,i,a])}var b,v,m,w;b=G,v=J.utf8,m=$,w=J.bin,g._ff=function(t,e,r,n,o,i,a){t=t+(e&r|~e&n)+(o>>>0)+a;return(t<<i|t>>>32-i)+e},g._gg=function(t,e,r,n,o,i,a){t=t+(e&n|r&~n)+(o>>>0)+a;return(t<<i|t>>>32-i)+e},g._hh=function(t,e,r,n,o,i,a){t=t+(e^r^n)+(o>>>0)+a;return(t<<i|t>>>32-i)+e},g._ii=function(t,e,r,n,o,i,a){t=t+(r^(e|~n))+(o>>>0)+a;return(t<<i|t>>>32-i)+e},g._blocksize=16,g._digestsize=16,t.exports=function(t,e){if(null==t)throw new Error("Illegal argument "+t);t=b.wordsToBytes(g(t,e));return e&&e.asBytes?t:e&&e.asString?w.bytesToString(t):b.bytesToHex(t)}});const Y=/\+/g;function tt(e=""){try{return decodeURIComponent(""+e)}catch(t){return""+e}}function et(t=""){var e={};for(const o of(t="?"===t[0]?t.substr(1):t).split("&")){var r,n=o.match(/([^=]+)=?(.*)/)||[];n.length<2||"__proto__"!==(r=tt(n[1]))&&"constructor"!==r&&(n=tt((n[2]||"").replace(Y," ")),e[r]?Array.isArray(e[r])?e[r].push(n):e[r]=[e[r],n]:e[r]=n)}return e}const rt=/^\w+:(\/\/)?/,nt=/^\/\/[^/]+/;function ot(t,e=!1){return rt.test(t)||e&&nt.test(t)}function it(t){return et(I(t).search)}function I(t="",e){var r,n,o,i,a,u;return ot(t,!0)?([r="",n,o=""]=(t.replace(/\\/g,"/").match(/([^:/]+:)?\/\/([^/@]+@)?(.*)/)||[]).splice(1),[o="",i=""]=(o.match(/([^/?#]*)(.*)?/)||[]).splice(1),{pathname:i,search:a,hash:u}=at(i),{protocol:r,auth:n?n.substr(0,n.length-1):"",host:o,pathname:i,search:a,hash:u}):e?I(e+t):at(t)}function at(t=""){var[t="",e="",r=""]=(t.match(/([^#?]*)(\?[^#]*)?(#.*)?/)||[]).splice(1);return{pathname:t,search:e,hash:r}}var ut=/^(?:[a-z\d\-_]{1,62}\.){0,125}(?:[a-z\d](?:\-(?=\-*[a-z\d])|[a-z]|\d){0,62}\.)[a-z\d]{1,63}$/i,st={1:75,2:50,3:35,4:23,5:20},ct=[1,2,3,4,5],lt={domain:null,useHTTPS:!0,includeLibraryParam:!0,urlPrefix:"https://",secureURLToken:null};function L(t){var e=t.url,e=void 0===e?"":e,t=t.useHttps,t=void 0!==t&&t?"https://":"http://";return ot(e,!0)?I(e):L({url:t+e})}function ft(t,e){if(!Number.isInteger(t)||!Number.isInteger(e)||t<=0||e<=0||e<t)throw new Error("The min and max srcset widths can only be passed positive Number values, and min must be less than max. Found min: ".concat(t," and max: ").concat(e,"."))}function ht(t){if("number"!=typeof t||t<.01)throw new Error("The srcset widthTolerance must be a number greater than or equal to 0.01")}return function(){function s(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},e=this,r=s;if(!(e instanceof r))throw new TypeError("Cannot call a class as a function");if(this.settings=c(c({},lt),t),this.targetWidthsCache={},"string"!=typeof this.settings.domain)throw new Error("ImgixClient must be passed a valid string domain");if(null==ut.exec(this.settings.domain))throw new Error('Domain must be passed in as fully-qualified domain name and should not include a protocol or any path element, i.e. "example.imgix.net".');this.settings.includeLibraryParam&&(this.settings.libraryParam="js-"+s.version()),this.settings.urlPrefix=this.settings.useHTTPS?"https://":"http://"}var t,e,r;return t=s,r=[{key:"version",value:function(){return"3.7.0"}},{key:"_buildURL",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};if(null==t)return"";var t=L({url:t,useHTTPS:r.useHTTPS}),n=t.host,o=t.pathname,t=c(c({},it(t.search)),e);if(n.length&&o.length)return new s(c({domain:n},r)).buildURL(o,t);throw new Error("_buildURL: URL must match {host}/{pathname}?{query}")}},{key:"_buildSrcSet",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{},n=3<arguments.length&&void 0!==arguments[3]?arguments[3]:{};if(null==t)return"";var t=L({url:t,useHTTPS:n.useHTTPS}),o=t.host,i=t.pathname,t=c(c({},it(t.search)),e);if(o.length&&i.length)return new s(c({domain:o},n)).buildSrcSet(i,t,r);throw new Error("_buildOneStepURL: URL must match {host}/{pathname}?{query}")}},{key:"targetWidths",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:100,e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:8192,r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:.08,n=3<arguments.length&&void 0!==arguments[3]?arguments[3]:{},o=Math.floor(t),i=Math.floor(e),t=(ft(t,e),ht(r),r+"/"+o+"/"+i);if(t in n)return n[t];if(o===i)return[o];for(var a=[],u=o;u<i;)a.push(Math.round(u)),u*=1+2*r;return a[a.length-1]<i&&a.push(i),n[t]=a}}],(e=[{key:"buildURL",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"",e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{},t=this._sanitizePath(t,r),e=this._buildParams(e,r);return this.settings.secureURLToken&&(e=this._signParams(t,e)),this.settings.urlPrefix+this.settings.domain+t+e}},{key:"_buildParams",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},o=(1<arguments.length&&void 0!==arguments[1]?arguments[1]:{}).encoder||encodeURIComponent,t=[].concat(h(this.settings.libraryParam?["ixlib=".concat(this.settings.libraryParam)]:[]),h(Object.entries(t).reduce(function(t,e){var r,e=f(e,2),n=e[0],e=e[1];return null!=e&&(r=o(n),n="64"===n.substr(-2)?Q.encodeURI(e):o(e),t.push("".concat(r,"=").concat(n))),t},[])));return"".concat(0<t.length?"?":"").concat(t.join("&"))}},{key:"_signParams",value:function(t,e){t=this.settings.secureURLToken+t+e,t=X(t);return 0<e.length?e+"&s="+t:"?s="+t}},{key:"_sanitizePath",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},t=t.replace(/^\//,"");return"/"+(t=e.disablePathEncoding?t:e.encoder?e.encoder(t):/^https?:\/\//.test(t)?encodeURIComponent(t):encodeURI(t).replace(/[#?:+]/g,encodeURIComponent))}},{key:"buildSrcSet",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{},n=e.w,o=e.h;return n||o?this._buildDPRSrcSet(t,e,r):this._buildSrcSetPairs(t,e,r)}},{key:"_buildSrcSetPairs",value:function(e){var r=this,n=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},o=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};t=void 0!==(a=o).widthTolerance?(ht(a.widthTolerance),a.widthTolerance):.08,i=void 0===a.minWidth?100:a.minWidth,a=void 0===a.maxWidth?8192:a.maxWidth,100==i&&8192==a||ft(i,a);var t=f([t,i,a],3),i=t[0],a=t[1],t=t[2];if(o.widths){var u=o.widths;if(!Array.isArray(u)||!u.length)throw new Error("The widths argument can only be passed a valid non-empty array of integers");if(!u.every(function(t){return Number.isInteger(t)&&0<t}))throw new Error("A custom widths argument can only contain positive integer values");u=h(o.widths)}else u=s.targetWidths(a,t,i,this.targetWidthsCache);return u.map(function(t){return"".concat(r.buildURL(e,c(c({},n),{},{w:t}),o)," ").concat(t,"w")}).join(",\n")}},{key:"_buildDPRSrcSet",value:function(r){var n=this,o=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};if(i.devicePixelRatios){var t=i.devicePixelRatios;if(!Array.isArray(t)||!t.length)throw new Error("The devicePixelRatios argument can only be passed a valid non-empty array of integers");if(!t.every(function(t){return"number"==typeof t&&1<=t&&t<=5}))throw new Error("The devicePixelRatios argument can only contain positive integer values between 1 and 5")}var t=i.devicePixelRatios||ct,e=i.disableVariableQuality||!1;if(!e){var a=e;if("boolean"!=typeof a)throw new Error("The disableVariableQuality argument can only be passed a Boolean value")}if(i.variableQualities){a=i.variableQualities;if("object"!==l(a))throw new Error("The variableQualities argument can only be an object")}var u=c(c({},st),i.variableQualities);return(e?t.map(function(t){return"".concat(n.buildURL(r,c(c({},o),{},{dpr:t}),i)," ").concat(t,"x")}):t.map(function(t){return e=o,t=t,"".concat(n.buildURL(r,c(c({},e),{},{dpr:t,q:e.q||u[t]||u[Math.floor(t)]}),i)," ").concat(t,"x");var e})).join(",\n")}}])&&n(t.prototype,e),r&&n(t,r),Object.defineProperty(t,"prototype",{writable:!1}),s}()});
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).ImgixClient=e()}(this,function(){"use strict";function e(e,t){var r,n=Object.keys(e);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(e),t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)),n}function s(n){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?e(Object(o),!0).forEach(function(t){var e,r;e=n,r=o[t=t],(t=i(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(o)):e(Object(o)).forEach(function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(o,t))})}return n}function l(t){return(l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function n(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,i(n.key),n)}}function f(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=r){var n,o,i,a,u=[],c=!0,s=!1;try{if(i=(r=r.call(t)).next,0===e){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=i.call(r)).done)&&(u.push(n.value),u.length!==e);c=!0);}catch(t){s=!0,o=t}finally{try{if(!c&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(s)throw o}}return u}}(t,e)||r(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function h(t){return function(t){if(Array.isArray(t))return o(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||r(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(t,e){var r;if(t)return"string"==typeof t?o(t,e):"Map"===(r="Object"===(r=Object.prototype.toString.call(t).slice(8,-1))&&t.constructor?t.constructor.name:r)||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(t,e):void 0}function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function i(t){t=function(t,e){if("object"!=typeof t||null===t)return t;var r=t[Symbol.toPrimitive];if(void 0===r)return("string"===e?String:Number)(t);if("object"!=typeof(r=r.call(t,e||"default")))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}(t,"string");return"symbol"==typeof t?t:String(t)}var k="3.7.2",z="function"==typeof atob,t="function"==typeof btoa,a="function"==typeof Buffer;const u="function"==typeof TextDecoder?new TextDecoder:void 0,c="function"==typeof TextEncoder?new TextEncoder:void 0;const d=Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="),y=(t=>{let r={};return t.forEach((t,e)=>r[t]=e),r})(d),F=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,p=String.fromCharCode.bind(String),g="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):(t,e=t=>t)=>new Uint8Array(Array.prototype.slice.call(t,0).map(e)),b=t=>t.replace(/=/g,"").replace(/[+\/]/g,t=>"+"==t?"-":"_"),v=t=>t.replace(/[^A-Za-z0-9\+\/]/g,"");var m=e=>{let r,n,o,i,a="";var t=e.length%3;for(let t=0;t<e.length;){if(255<(n=e.charCodeAt(t++))||255<(o=e.charCodeAt(t++))||255<(i=e.charCodeAt(t++)))throw new TypeError("invalid character found");r=n<<16|o<<8|i,a+=d[r>>18&63]+d[r>>12&63]+d[r>>6&63]+d[63&r]}return t?a.slice(0,t-3)+"===".substring(t):a};const w=t?t=>btoa(t):a?t=>Buffer.from(t,"binary").toString("base64"):m,A=a?t=>Buffer.from(t).toString("base64"):r=>{var n=[];for(let t=0,e=r.length;t<e;t+=4096)n.push(p.apply(null,r.subarray(t,t+4096)));return w(n.join(""))},S=(t,e=!1)=>e?b(A(t)):A(t),D=t=>{var e;return t.length<2?(e=t.charCodeAt(0))<128?t:e<2048?p(192|e>>>6)+p(128|63&e):p(224|e>>>12&15)+p(128|e>>>6&63)+p(128|63&e):(e=65536+1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320),p(240|e>>>18&7)+p(128|e>>>12&63)+p(128|e>>>6&63)+p(128|63&e))},W=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,x=t=>t.replace(W,D),T=a?t=>Buffer.from(t,"utf8").toString("base64"):c?t=>A(c.encode(t)):t=>w(x(t)),P=(t,e=!1)=>e?b(T(t)):T(t);t=t=>P(t,!0);const H=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,M=t=>{switch(t.length){case 4:var e=((7&t.charCodeAt(0))<<18|(63&t.charCodeAt(1))<<12|(63&t.charCodeAt(2))<<6|63&t.charCodeAt(3))-65536;return p(55296+(e>>>10))+p(56320+(1023&e));case 3:return p((15&t.charCodeAt(0))<<12|(63&t.charCodeAt(1))<<6|63&t.charCodeAt(2));default:return p((31&t.charCodeAt(0))<<6|63&t.charCodeAt(1))}},U=t=>t.replace(H,M);var j=e=>{if(e=e.replace(/\s+/g,""),!F.test(e))throw new TypeError("malformed base64.");e+="==".slice(2-(3&e.length));let r,n="",o,i;for(let t=0;t<e.length;)r=y[e.charAt(t++)]<<18|y[e.charAt(t++)]<<12|(o=y[e.charAt(t++)])<<6|(i=y[e.charAt(t++)]),n+=64===o?p(r>>16&255):64===i?p(r>>16&255,r>>8&255):p(r>>16&255,r>>8&255,255&r);return n};const B=z?t=>atob(v(t)):a?t=>Buffer.from(t,"base64").toString("binary"):j,C=a?t=>g(Buffer.from(t,"base64")):t=>g(B(t),t=>t.charCodeAt(0)),R=t=>C(O(t)),Z=a?t=>Buffer.from(t,"base64").toString("utf8"):u?t=>u.decode(C(t)):t=>U(B(t)),O=t=>v(t.replace(/[-_]/g,t=>"-"==t?"+":"/")),_=t=>Z(O(t));function N(){var t=(t,e)=>Object.defineProperty(String.prototype,t,Q(e));t("fromBase64",function(){return _(this)}),t("toBase64",function(t){return P(this,t)}),t("toBase64URI",function(){return P(this,!0)}),t("toBase64URL",function(){return P(this,!0)}),t("toUint8Array",function(){return R(this)})}function q(){var t=(t,e)=>Object.defineProperty(Uint8Array.prototype,t,Q(e));t("toBase64",function(t){return S(this,t)}),t("toBase64URI",function(){return S(this,!0)}),t("toBase64URL",function(){return S(this,!0)})}const Q=t=>({value:t,enumerable:!1,writable:!0,configurable:!0});const V={version:k,VERSION:"3.7.2",atob:B,atobPolyfill:j,btoa:w,btoaPolyfill:m,fromBase64:_,toBase64:P,encode:P,encodeURI:t,encodeURL:t,utob:x,btou:U,decode:_,isValid:t=>{return"string"==typeof t&&(t=t.replace(/\s+/g,"").replace(/={0,2}$/,""),!/[^\s0-9a-zA-Z\+/]/.test(t)||!/[^\s0-9a-zA-Z\-_]/.test(t))},fromUint8Array:S,toUint8Array:R,extendString:N,extendUint8Array:q,extendBuiltins:()=>{N(),q()}};function $(t,e){return t(e={exports:{}},e.exports),e.exports}function G(t){return null!=t&&(X(t)||"function"==typeof(e=t).readFloatLE&&"function"==typeof e.slice&&X(e.slice(0,0))||!!t._isBuffer);var e}var J=$(function(t){var i,r;i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r={rotl:function(t,e){return t<<e|t>>>32-e},rotr:function(t,e){return t<<32-e|t>>>e},endian:function(t){if(t.constructor==Number)return 16711935&r.rotl(t,8)|4278255360&r.rotl(t,24);for(var e=0;e<t.length;e++)t[e]=r.endian(t[e]);return t},randomBytes:function(t){for(var e=[];0<t;t--)e.push(Math.floor(256*Math.random()));return e},bytesToWords:function(t){for(var e=[],r=0,n=0;r<t.length;r++,n+=8)e[n>>>5]|=t[r]<<24-n%32;return e},wordsToBytes:function(t){for(var e=[],r=0;r<32*t.length;r+=8)e.push(t[r>>>5]>>>24-r%32&255);return e},bytesToHex:function(t){for(var e=[],r=0;r<t.length;r++)e.push((t[r]>>>4).toString(16)),e.push((15&t[r]).toString(16));return e.join("")},hexToBytes:function(t){for(var e=[],r=0;r<t.length;r+=2)e.push(parseInt(t.substr(r,2),16));return e},bytesToBase64:function(t){for(var e=[],r=0;r<t.length;r+=3)for(var n=t[r]<<16|t[r+1]<<8|t[r+2],o=0;o<4;o++)8*r+6*o<=8*t.length?e.push(i.charAt(n>>>6*(3-o)&63)):e.push("=");return e.join("")},base64ToBytes:function(t){t=t.replace(/[^A-Z0-9+\/]/gi,"");for(var e=[],r=0,n=0;r<t.length;n=++r%4)0!=n&&e.push((i.indexOf(t.charAt(r-1))&Math.pow(2,-2*n+8)-1)<<2*n|i.indexOf(t.charAt(r))>>>6-2*n);return e}},t.exports=r}),E={utf8:{stringToBytes:function(t){return E.bin.stringToBytes(unescape(encodeURIComponent(t)))},bytesToString:function(t){return decodeURIComponent(escape(E.bin.bytesToString(t)))}},bin:{stringToBytes:function(t){for(var e=[],r=0;r<t.length;r++)e.push(255&t.charCodeAt(r));return e},bytesToString:function(t){for(var e=[],r=0;r<t.length;r++)e.push(String.fromCharCode(t[r]));return e.join("")}}},K=E;function X(t){return!!t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}var Y=$(function(t){function g(t,e){t.constructor==String?t=(e&&"binary"===e.encoding?w:v).stringToBytes(t):m(t)?t=Array.prototype.slice.call(t,0):Array.isArray(t)||(t=t.toString());for(var r=b.bytesToWords(t),e=8*t.length,n=1732584193,o=-271733879,i=-1732584194,a=271733878,u=0;u<r.length;u++)r[u]=16711935&(r[u]<<8|r[u]>>>24)|4278255360&(r[u]<<24|r[u]>>>8);r[e>>>5]|=128<<e%32,r[14+(64+e>>>9<<4)]=e;for(var c=g._ff,s=g._gg,l=g._hh,f=g._ii,u=0;u<r.length;u+=16){var h=n,d=o,y=i,p=a,n=c(n,o,i,a,r[u+0],7,-680876936),a=c(a,n,o,i,r[u+1],12,-389564586),i=c(i,a,n,o,r[u+2],17,606105819),o=c(o,i,a,n,r[u+3],22,-1044525330);n=c(n,o,i,a,r[u+4],7,-176418897),a=c(a,n,o,i,r[u+5],12,1200080426),i=c(i,a,n,o,r[u+6],17,-1473231341),o=c(o,i,a,n,r[u+7],22,-45705983),n=c(n,o,i,a,r[u+8],7,1770035416),a=c(a,n,o,i,r[u+9],12,-1958414417),i=c(i,a,n,o,r[u+10],17,-42063),o=c(o,i,a,n,r[u+11],22,-1990404162),n=c(n,o,i,a,r[u+12],7,1804603682),a=c(a,n,o,i,r[u+13],12,-40341101),i=c(i,a,n,o,r[u+14],17,-1502002290),n=s(n,o=c(o,i,a,n,r[u+15],22,1236535329),i,a,r[u+1],5,-165796510),a=s(a,n,o,i,r[u+6],9,-1069501632),i=s(i,a,n,o,r[u+11],14,643717713),o=s(o,i,a,n,r[u+0],20,-373897302),n=s(n,o,i,a,r[u+5],5,-701558691),a=s(a,n,o,i,r[u+10],9,38016083),i=s(i,a,n,o,r[u+15],14,-660478335),o=s(o,i,a,n,r[u+4],20,-405537848),n=s(n,o,i,a,r[u+9],5,568446438),a=s(a,n,o,i,r[u+14],9,-1019803690),i=s(i,a,n,o,r[u+3],14,-187363961),o=s(o,i,a,n,r[u+8],20,1163531501),n=s(n,o,i,a,r[u+13],5,-1444681467),a=s(a,n,o,i,r[u+2],9,-51403784),i=s(i,a,n,o,r[u+7],14,1735328473),n=l(n,o=s(o,i,a,n,r[u+12],20,-1926607734),i,a,r[u+5],4,-378558),a=l(a,n,o,i,r[u+8],11,-2022574463),i=l(i,a,n,o,r[u+11],16,1839030562),o=l(o,i,a,n,r[u+14],23,-35309556),n=l(n,o,i,a,r[u+1],4,-1530992060),a=l(a,n,o,i,r[u+4],11,1272893353),i=l(i,a,n,o,r[u+7],16,-155497632),o=l(o,i,a,n,r[u+10],23,-1094730640),n=l(n,o,i,a,r[u+13],4,681279174),a=l(a,n,o,i,r[u+0],11,-358537222),i=l(i,a,n,o,r[u+3],16,-722521979),o=l(o,i,a,n,r[u+6],23,76029189),n=l(n,o,i,a,r[u+9],4,-640364487),a=l(a,n,o,i,r[u+12],11,-421815835),i=l(i,a,n,o,r[u+15],16,530742520),n=f(n,o=l(o,i,a,n,r[u+2],23,-995338651),i,a,r[u+0],6,-198630844),a=f(a,n,o,i,r[u+7],10,1126891415),i=f(i,a,n,o,r[u+14],15,-1416354905),o=f(o,i,a,n,r[u+5],21,-57434055),n=f(n,o,i,a,r[u+12],6,1700485571),a=f(a,n,o,i,r[u+3],10,-1894986606),i=f(i,a,n,o,r[u+10],15,-1051523),o=f(o,i,a,n,r[u+1],21,-2054922799),n=f(n,o,i,a,r[u+8],6,1873313359),a=f(a,n,o,i,r[u+15],10,-30611744),i=f(i,a,n,o,r[u+6],15,-1560198380),o=f(o,i,a,n,r[u+13],21,1309151649),n=f(n,o,i,a,r[u+4],6,-145523070),a=f(a,n,o,i,r[u+11],10,-1120210379),i=f(i,a,n,o,r[u+2],15,718787259),o=f(o,i,a,n,r[u+9],21,-343485551),n=n+h>>>0,o=o+d>>>0,i=i+y>>>0,a=a+p>>>0}return b.endian([n,o,i,a])}var b,v,m,w;b=J,v=K.utf8,m=G,w=K.bin,g._ff=function(t,e,r,n,o,i,a){t=t+(e&r|~e&n)+(o>>>0)+a;return(t<<i|t>>>32-i)+e},g._gg=function(t,e,r,n,o,i,a){t=t+(e&n|r&~n)+(o>>>0)+a;return(t<<i|t>>>32-i)+e},g._hh=function(t,e,r,n,o,i,a){t=t+(e^r^n)+(o>>>0)+a;return(t<<i|t>>>32-i)+e},g._ii=function(t,e,r,n,o,i,a){t=t+(r^(e|~n))+(o>>>0)+a;return(t<<i|t>>>32-i)+e},g._blocksize=16,g._digestsize=16,t.exports=function(t,e){if(null==t)throw new Error("Illegal argument "+t);t=b.wordsToBytes(g(t,e));return e&&e.asBytes?t:e&&e.asString?w.bytesToString(t):b.bytesToHex(t)}});const tt=/\+/g;function et(t=""){try{return decodeURIComponent(""+t)}catch{return""+t}}function rt(t=""){var e={};for(const o of(t="?"===t[0]?t.slice(1):t).split("&")){var r,n=o.match(/([^=]+)=?(.*)/)||[];n.length<2||"__proto__"!==(r=et(n[1]))&&"constructor"!==r&&(n=et((n[2]||"").replace(tt," ")),void 0!==e[r]?Array.isArray(e[r])?e[r].push(n):e[r]=[e[r],n]:e[r]=n)}return e}const nt=/^\w{2,}:(\/\/)?/,ot=/^\/\/[^/]+/;function it(t,e=!1){return nt.test(t)||e&&ot.test(t)}function at(t){return rt(I(t).search)}function I(t="",e){var r,n,o,i,a,u;return it(t,!0)?([r="",n,o=""]=(t.replace(/\\/g,"/").match(/([^/:]+:)?\/\/([^/@]+@)?(.*)/)||[]).splice(1),[o="",i=""]=(o.match(/([^#/?]*)(.*)?/)||[]).splice(1),{pathname:i,search:a,hash:u}=ut(i.replace(/\/(?=[A-Za-z]:)/,"")),{protocol:r,auth:n?n.slice(0,Math.max(0,n.length-1)):"",host:o,pathname:i,search:a,hash:u}):e?I(e+t):ut(t)}function ut(t=""){var[t="",e="",r=""]=(t.match(/([^#?]*)(\?[^#]*)?(#.*)?/)||[]).splice(1);return{pathname:t,search:e,hash:r}}var ct=/^(?:[a-z\d\-_]{1,62}\.){0,125}(?:[a-z\d](?:\-(?=\-*[a-z\d])|[a-z]|\d){0,62}\.)[a-z\d]{1,63}$/i,st={1:75,2:50,3:35,4:23,5:20},lt=[1,2,3,4,5],ft={domain:null,useHTTPS:!0,includeLibraryParam:!0,urlPrefix:"https://",secureURLToken:null};function L(t){var e=t.url,e=void 0===e?"":e,t=t.useHttps,t=void 0!==t&&t?"https://":"http://";return it(e,!0)?I(e):L({url:t+e})}function ht(t,e){if(!Number.isInteger(t)||!Number.isInteger(e)||t<=0||e<=0||e<t)throw new Error("The min and max srcset widths can only be passed positive Number values, and min must be less than max. Found min: ".concat(t," and max: ").concat(e,"."))}function dt(t){if("number"!=typeof t||t<.01)throw new Error("The srcset widthTolerance must be a number greater than or equal to 0.01")}return function(){function c(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},e=this,r=c;if(!(e instanceof r))throw new TypeError("Cannot call a class as a function");if(this.settings=s(s({},ft),t),this.targetWidthsCache={},"string"!=typeof this.settings.domain)throw new Error("ImgixClient must be passed a valid string domain");if(null==ct.exec(this.settings.domain))throw new Error('Domain must be passed in as fully-qualified domain name and should not include a protocol or any path element, i.e. "example.imgix.net".');this.settings.includeLibraryParam&&(this.settings.libraryParam="js-"+c.version()),this.settings.urlPrefix=this.settings.useHTTPS?"https://":"http://"}var t,e,r;return t=c,r=[{key:"version",value:function(){return"3.7.1"}},{key:"_buildURL",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};if(null==t)return"";var t=L({url:t,useHTTPS:r.useHTTPS}),n=t.host,o=t.pathname,t=s(s({},at(t.search)),e);if(n.length&&o.length)return new c(s({domain:n},r)).buildURL(o,t);throw new Error("_buildURL: URL must match {host}/{pathname}?{query}")}},{key:"_buildSrcSet",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{},n=3<arguments.length&&void 0!==arguments[3]?arguments[3]:{};if(null==t)return"";var t=L({url:t,useHTTPS:n.useHTTPS}),o=t.host,i=t.pathname,t=s(s({},at(t.search)),e);if(o.length&&i.length)return new c(s({domain:o},n)).buildSrcSet(i,t,r);throw new Error("_buildOneStepURL: URL must match {host}/{pathname}?{query}")}},{key:"targetWidths",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:100,e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:8192,r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:.08,n=3<arguments.length&&void 0!==arguments[3]?arguments[3]:{},o=Math.floor(t),i=Math.floor(e),t=(ht(t,e),dt(r),r+"/"+o+"/"+i);if(t in n)return n[t];if(o===i)return[o];for(var a=[],u=o;u<i;)a.push(Math.round(u)),u*=1+2*r;return a[a.length-1]<i&&a.push(i),n[t]=a}}],(e=[{key:"buildURL",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"",e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{},t=this._sanitizePath(t,r),e=this._buildParams(e,r);return this.settings.secureURLToken&&(e=this._signParams(t,e)),this.settings.urlPrefix+this.settings.domain+t+e}},{key:"_buildParams",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},o=(1<arguments.length&&void 0!==arguments[1]?arguments[1]:{}).encoder||encodeURIComponent,t=[].concat(h(this.settings.libraryParam?["ixlib=".concat(this.settings.libraryParam)]:[]),h(Object.entries(t).reduce(function(t,e){var r,e=f(e,2),n=e[0],e=e[1];return null!=e&&(r=o(n),n="64"===n.substr(-2)?V.encodeURI(e):o(e),t.push("".concat(r,"=").concat(n))),t},[])));return"".concat(0<t.length?"?":"").concat(t.join("&"))}},{key:"_signParams",value:function(t,e){t=this.settings.secureURLToken+t+e,t=Y(t);return 0<e.length?e+"&s="+t:"?s="+t}},{key:"_sanitizePath",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},t=t.replace(/^\//,"");return"/"+(t=e.disablePathEncoding?t:e.encoder?e.encoder(t):/^https?:\/\//.test(t)?encodeURIComponent(t):encodeURI(t).replace(/[#?:+]/g,encodeURIComponent))}},{key:"buildSrcSet",value:function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{},n=e.w,o=e.h;return n||o?this._buildDPRSrcSet(t,e,r):this._buildSrcSetPairs(t,e,r)}},{key:"_buildSrcSetPairs",value:function(e){var r=this,n=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},o=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};t=void 0!==(a=o).widthTolerance?(dt(a.widthTolerance),a.widthTolerance):.08,i=void 0===a.minWidth?100:a.minWidth,a=void 0===a.maxWidth?8192:a.maxWidth,100==i&&8192==a||ht(i,a);var t=f([t,i,a],3),i=t[0],a=t[1],t=t[2];if(o.widths){var u=o.widths;if(!Array.isArray(u)||!u.length)throw new Error("The widths argument can only be passed a valid non-empty array of integers");if(!u.every(function(t){return Number.isInteger(t)&&0<t}))throw new Error("A custom widths argument can only contain positive integer values");u=h(o.widths)}else u=c.targetWidths(a,t,i,this.targetWidthsCache);return u.map(function(t){return"".concat(r.buildURL(e,s(s({},n),{},{w:t}),o)," ").concat(t,"w")}).join(",\n")}},{key:"_buildDPRSrcSet",value:function(r){var n=this,o=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};if(i.devicePixelRatios){var t=i.devicePixelRatios;if(!Array.isArray(t)||!t.length)throw new Error("The devicePixelRatios argument can only be passed a valid non-empty array of integers");if(!t.every(function(t){return"number"==typeof t&&1<=t&&t<=5}))throw new Error("The devicePixelRatios argument can only contain positive integer values between 1 and 5")}var t=i.devicePixelRatios||lt,e=i.disableVariableQuality||!1;if(!e){var a=e;if("boolean"!=typeof a)throw new Error("The disableVariableQuality argument can only be passed a Boolean value")}if(i.variableQualities){a=i.variableQualities;if("object"!==l(a))throw new Error("The variableQualities argument can only be an object")}var u=s(s({},st),i.variableQualities);return(e?t.map(function(t){return"".concat(n.buildURL(r,s(s({},o),{},{dpr:t}),i)," ").concat(t,"x")}):t.map(function(t){return e=o,t=t,"".concat(n.buildURL(r,s(s({},e),{},{dpr:t,q:e.q||u[t]||u[Math.floor(t)]}),i)," ").concat(t,"x");var e})).join(",\n")}}])&&n(t.prototype,e),r&&n(t,r),Object.defineProperty(t,"prototype",{writable:!1}),c}()});

@@ -11,5 +11,31 @@ 'use strict';

function _iterableToArrayLimit(arr, i) {
var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
if (null != _i) {
var _s,
_e,
_x,
_r,
_arr = [],
_n = !0,
_d = !1;
try {
if (_x = (_i = _i.call(arr)).next, 0 === i) {
if (Object(_i) !== _i) return;
_n = !1;
} else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
} catch (err) {
_d = !0, _e = err;
} finally {
try {
if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return;
} finally {
if (_d) throw _e;
}
}
return _arr;
}
}
function ownKeys(object, enumerableOnly) {
var keys = Object.keys(object);
if (Object.getOwnPropertySymbols) {

@@ -21,6 +47,4 @@ var symbols = Object.getOwnPropertySymbols(object);

}
return keys;
}
function _objectSpread2(target) {

@@ -35,6 +59,4 @@ for (var i = 1; i < arguments.length; i++) {

}
return target;
}
function _typeof(obj) {

@@ -49,3 +71,2 @@ "@babel/helpers - typeof";

}
function _classCallCheck(instance, Constructor) {

@@ -56,3 +77,2 @@ if (!(instance instanceof Constructor)) {

}
function _defineProperties(target, props) {

@@ -64,6 +84,5 @@ for (var i = 0; i < props.length; i++) {

if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {

@@ -77,4 +96,4 @@ if (protoProps) _defineProperties(Constructor.prototype, protoProps);

}
function _defineProperty(obj, key, value) {
key = _toPropertyKey(key);
if (key in obj) {

@@ -90,56 +109,19 @@ Object.defineProperty(obj, key, {

}
return obj;
}
function _slicedToArray(arr, i) {
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
}
function _toConsumableArray(arr) {
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
}
function _arrayWithoutHoles(arr) {
if (Array.isArray(arr)) return _arrayLikeToArray(arr);
}
function _arrayWithHoles(arr) {
if (Array.isArray(arr)) return arr;
}
function _iterableToArray(iter) {
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
}
function _iterableToArrayLimit(arr, i) {
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
if (_i == null) return;
var _arr = [];
var _n = true;
var _d = false;
var _s, _e;
try {
for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
_arr.push(_s.value);
if (i && _arr.length === i) break;
}
} catch (err) {
_d = true;
_e = err;
} finally {
try {
if (!_n && _i["return"] != null) _i["return"]();
} finally {
if (_d) throw _e;
}
}
return _arr;
}
function _unsupportedIterableToArray(o, minLen) {

@@ -153,30 +135,40 @@ if (!o) return;

}
function _arrayLikeToArray(arr, len) {
if (len == null || len > arr.length) len = arr.length;
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
return arr2;
}
function _nonIterableSpread() {
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
function _nonIterableRest() {
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
function _toPrimitive(input, hint) {
if (typeof input !== "object" || input === null) return input;
var prim = input[Symbol.toPrimitive];
if (prim !== undefined) {
var res = prim.call(input, hint || "default");
if (typeof res !== "object") return res;
throw new TypeError("@@toPrimitive must return a primitive value.");
}
return (hint === "string" ? String : Number)(input);
}
function _toPropertyKey(arg) {
var key = _toPrimitive(arg, "string");
return typeof key === "symbol" ? key : String(key);
}
// package version used in the ix-lib parameter
var VERSION = '3.7.0'; // regex pattern used to determine if a domain is valid
var VERSION = '3.7.1';
// regex pattern used to determine if a domain is valid
var DOMAIN_REGEX = /^(?:[a-z\d\-_]{1,62}\.){0,125}(?:[a-z\d](?:\-(?=\-*[a-z\d])|[a-z]|\d){0,62}\.)[a-z\d]{1,63}$/i;
// minimum generated srcset width
var MIN_SRCSET_WIDTH = 100;
// maximum generated srcset width
var MAX_SRCSET_WIDTH = 8192;
// default tolerable percent difference between srcset pair widths
var DEFAULT_SRCSET_WIDTH_TOLERANCE = 0.08;
var DOMAIN_REGEX = /^(?:[a-z\d\-_]{1,62}\.){0,125}(?:[a-z\d](?:\-(?=\-*[a-z\d])|[a-z]|\d){0,62}\.)[a-z\d]{1,63}$/i; // minimum generated srcset width
var MIN_SRCSET_WIDTH = 100; // maximum generated srcset width
var MAX_SRCSET_WIDTH = 8192; // default tolerable percent difference between srcset pair widths
var DEFAULT_SRCSET_WIDTH_TOLERANCE = 0.08; // default quality parameter values mapped by each dpr srcset entry
// default quality parameter values mapped by each dpr srcset entry
var DPR_QUALITIES = {

@@ -210,10 +202,8 @@ 1: 75,

*/
function extractUrl(_ref) {
var _ref$url = _ref.url,
url = _ref$url === void 0 ? '' : _ref$url,
_ref$useHttps = _ref.useHttps,
useHttps = _ref$useHttps === void 0 ? false : _ref$useHttps;
url = _ref$url === void 0 ? '' : _ref$url,
_ref$useHttps = _ref.useHttps,
useHttps = _ref$useHttps === void 0 ? false : _ref$useHttps;
var defaultProto = useHttps ? 'https://' : 'http://';
if (!ufo.hasProtocol(url, true)) {

@@ -231,4 +221,2 @@ return extractUrl({

*/
return ufo.parseURL(url);

@@ -239,3 +227,2 @@ }

var widthTolerance;
if (options.widthTolerance !== undefined) {

@@ -247,10 +234,9 @@ validateWidthTolerance(options.widthTolerance);

}
var minWidth = options.minWidth === undefined ? MIN_SRCSET_WIDTH : options.minWidth;
var maxWidth = options.maxWidth === undefined ? MAX_SRCSET_WIDTH : options.maxWidth; // Validate the range unless we're using defaults for both
var maxWidth = options.maxWidth === undefined ? MAX_SRCSET_WIDTH : options.maxWidth;
// Validate the range unless we're using defaults for both
if (minWidth != MIN_SRCSET_WIDTH || maxWidth != MAX_SRCSET_WIDTH) {
validateRange(minWidth, maxWidth);
}
return [widthTolerance, minWidth, maxWidth];

@@ -275,3 +261,2 @@ }

});
if (!allPositiveIntegers) {

@@ -294,3 +279,2 @@ throw new Error('A custom widths argument can only contain positive integer values');

});
if (!allValidDPR) {

@@ -310,24 +294,17 @@ throw new Error('The devicePixelRatios argument can only contain positive integer values between 1 and 5');

var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
_classCallCheck(this, ImgixClient);
this.settings = _objectSpread2(_objectSpread2({}, DEFAULT_OPTIONS), opts); // a cache to store memoized srcset width-pairs
this.settings = _objectSpread2(_objectSpread2({}, DEFAULT_OPTIONS), opts);
// a cache to store memoized srcset width-pairs
this.targetWidthsCache = {};
if (typeof this.settings.domain != 'string') {
throw new Error('ImgixClient must be passed a valid string domain');
}
if (DOMAIN_REGEX.exec(this.settings.domain) == null) {
throw new Error('Domain must be passed in as fully-qualified ' + 'domain name and should not include a protocol or any path ' + 'element, i.e. "example.imgix.net".');
}
if (this.settings.includeLibraryParam) {
this.settings.libraryParam = 'js-' + ImgixClient.version();
}
this.settings.urlPrefix = this.settings.useHTTPS ? 'https://' : 'http://';
}
_createClass(ImgixClient, [{

@@ -339,13 +316,10 @@ key: "buildURL",

var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
var path = this._sanitizePath(rawPath, options);
var finalParams = this._buildParams(params, options);
if (!!this.settings.secureURLToken) {
finalParams = this._signParams(path, finalParams);
}
return this.settings.urlPrefix + this.settings.domain + path + finalParams;
}
/**

@@ -374,3 +348,2 @@ *`_buildURL` static method allows full URLs to be formatted for use with

*/
}, {

@@ -386,9 +359,7 @@ key: "_buildParams",

var _ref2 = _slicedToArray(_ref, 2),
key = _ref2[0],
value = _ref2[1];
key = _ref2[0],
value = _ref2[1];
if (value == null) {
return prev;
}
var encodedKey = encode(key);

@@ -408,2 +379,3 @@ var encodedValue = key.substr(-2) === '64' ? jsBase64.Base64.encodeURI(value) : encode(value);

}
/**

@@ -419,3 +391,2 @@ * "Sanitize" the path of the image URL.

*/
}, {

@@ -425,10 +396,7 @@ key: "_sanitizePath",

var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
// Strip leading slash first (we'll re-add after encoding)
var _path = path.replace(/^\//, '');
if (options.disablePathEncoding) {
return '/' + _path;
}
if (options.encoder) {

@@ -445,3 +413,2 @@ _path = options.encoder(_path);

}
return '/' + _path;

@@ -455,4 +422,3 @@ }

var w = params.w,
h = params.h;
h = params.h;
if (w || h) {

@@ -464,2 +430,3 @@ return this._buildDPRSrcSet(path, params, options);

}
/**

@@ -479,3 +446,2 @@ * _buildSrcSet static method allows full URLs to be used when generating

*/
}, {

@@ -485,14 +451,10 @@ key: "_buildSrcSetPairs",

var _this = this;
var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
var _validateAndDestructu = validateAndDestructureOptions(options),
_validateAndDestructu2 = _slicedToArray(_validateAndDestructu, 3),
widthTolerance = _validateAndDestructu2[0],
minWidth = _validateAndDestructu2[1],
maxWidth = _validateAndDestructu2[2];
_validateAndDestructu2 = _slicedToArray(_validateAndDestructu, 3),
widthTolerance = _validateAndDestructu2[0],
minWidth = _validateAndDestructu2[1],
maxWidth = _validateAndDestructu2[2];
var targetWidthValues;
if (options.widths) {

@@ -504,3 +466,2 @@ validateWidths(options.widths);

}
var srcset = targetWidthValues.map(function (w) {

@@ -517,23 +478,16 @@ return "".concat(_this.buildURL(path, _objectSpread2(_objectSpread2({}, params), {}, {

var _this2 = this;
var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
if (options.devicePixelRatios) {
validateDevicePixelRatios(options.devicePixelRatios);
}
var targetRatios = options.devicePixelRatios || DEFAULT_DPR;
var disableVariableQuality = options.disableVariableQuality || false;
if (!disableVariableQuality) {
validateVariableQuality(disableVariableQuality);
}
if (options.variableQualities) {
validateVariableQualities(options.variableQualities);
}
var qualities = _objectSpread2(_objectSpread2({}, DPR_QUALITIES), options.variableQualities);
var withQuality = function withQuality(path, params, dpr) {

@@ -545,3 +499,2 @@ return "".concat(_this2.buildURL(path, _objectSpread2(_objectSpread2({}, params), {}, {

};
var srcset = disableVariableQuality ? targetRatios.map(function (dpr) {

@@ -566,23 +519,19 @@ return "".concat(_this2.buildURL(path, _objectSpread2(_objectSpread2({}, params), {}, {

var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
if (url == null) {
return '';
}
var _extractUrl = extractUrl({
url: url,
useHTTPS: options.useHTTPS
}),
host = _extractUrl.host,
pathname = _extractUrl.pathname,
search = _extractUrl.search; // merge source URL parameters with options parameters
url: url,
useHTTPS: options.useHTTPS
}),
host = _extractUrl.host,
pathname = _extractUrl.pathname,
search = _extractUrl.search;
// merge source URL parameters with options parameters
var combinedParams = _objectSpread2(_objectSpread2({}, ufo.getQuery(search)), params);
var combinedParams = _objectSpread2(_objectSpread2({}, ufo.getQuery(search)), params); // throw error if no host or no pathname present
// throw error if no host or no pathname present
if (!host.length || !pathname.length) {
throw new Error('_buildURL: URL must match {host}/{pathname}?{query}');
}
var client = new ImgixClient(_objectSpread2({

@@ -599,23 +548,19 @@ domain: host

var clientOptions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
if (url == null) {
return '';
}
var _extractUrl2 = extractUrl({
url: url,
useHTTPS: clientOptions.useHTTPS
}),
host = _extractUrl2.host,
pathname = _extractUrl2.pathname,
search = _extractUrl2.search; // merge source URL parameters with options parameters
url: url,
useHTTPS: clientOptions.useHTTPS
}),
host = _extractUrl2.host,
pathname = _extractUrl2.pathname,
search = _extractUrl2.search;
// merge source URL parameters with options parameters
var combinedParams = _objectSpread2(_objectSpread2({}, ufo.getQuery(search)), params);
var combinedParams = _objectSpread2(_objectSpread2({}, ufo.getQuery(search)), params); // throw error if no host or no pathname present
// throw error if no host or no pathname present
if (!host.length || !pathname.length) {
throw new Error('_buildOneStepURL: URL must match {host}/{pathname}?{query}');
}
var client = new ImgixClient(_objectSpread2({

@@ -625,4 +570,5 @@ domain: host

return client.buildSrcSet(pathname, combinedParams, srcsetModifiers);
} // returns an array of width values used during srcset generation
}
// returns an array of width values used during srcset generation
}, {

@@ -639,15 +585,13 @@ key: "targetWidths",

validateWidthTolerance(widthTolerance);
var cacheKey = widthTolerance + '/' + minW + '/' + maxW; // First, check the cache.
var cacheKey = widthTolerance + '/' + minW + '/' + maxW;
// First, check the cache.
if (cacheKey in cache) {
return cache[cacheKey];
}
if (minW === maxW) {
return [minW];
}
var resolutions = [];
var currentWidth = minW;
while (currentWidth < maxW) {

@@ -658,3 +602,5 @@ // While the currentWidth is less than the maxW, push the rounded

currentWidth *= 1 + widthTolerance * 2;
} // At this point, the last width in resolutions is less than the
}
// At this point, the last width in resolutions is less than the
// currentWidth that caused the loop to terminate. This terminating

@@ -664,8 +610,5 @@ // currentWidth is greater than or equal to the maxW. We want to

// width in resolutions before pushing it (if it's equal we're done).
if (resolutions[resolutions.length - 1] < maxW) {
resolutions.push(maxW);
}
cache[cacheKey] = resolutions;

@@ -675,3 +618,2 @@ return resolutions;

}]);
return ImgixClient;

@@ -678,0 +620,0 @@ }();

@@ -5,5 +5,31 @@ import { Base64 } from 'js-base64';

function _iterableToArrayLimit(arr, i) {
var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
if (null != _i) {
var _s,
_e,
_x,
_r,
_arr = [],
_n = !0,
_d = !1;
try {
if (_x = (_i = _i.call(arr)).next, 0 === i) {
if (Object(_i) !== _i) return;
_n = !1;
} else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
} catch (err) {
_d = !0, _e = err;
} finally {
try {
if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return;
} finally {
if (_d) throw _e;
}
}
return _arr;
}
}
function ownKeys(object, enumerableOnly) {
var keys = Object.keys(object);
if (Object.getOwnPropertySymbols) {

@@ -15,6 +41,4 @@ var symbols = Object.getOwnPropertySymbols(object);

}
return keys;
}
function _objectSpread2(target) {

@@ -29,6 +53,4 @@ for (var i = 1; i < arguments.length; i++) {

}
return target;
}
function _typeof(obj) {

@@ -43,3 +65,2 @@ "@babel/helpers - typeof";

}
function _classCallCheck(instance, Constructor) {

@@ -50,3 +71,2 @@ if (!(instance instanceof Constructor)) {

}
function _defineProperties(target, props) {

@@ -58,6 +78,5 @@ for (var i = 0; i < props.length; i++) {

if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {

@@ -71,4 +90,4 @@ if (protoProps) _defineProperties(Constructor.prototype, protoProps);

}
function _defineProperty(obj, key, value) {
key = _toPropertyKey(key);
if (key in obj) {

@@ -84,56 +103,19 @@ Object.defineProperty(obj, key, {

}
return obj;
}
function _slicedToArray(arr, i) {
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
}
function _toConsumableArray(arr) {
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
}
function _arrayWithoutHoles(arr) {
if (Array.isArray(arr)) return _arrayLikeToArray(arr);
}
function _arrayWithHoles(arr) {
if (Array.isArray(arr)) return arr;
}
function _iterableToArray(iter) {
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
}
function _iterableToArrayLimit(arr, i) {
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
if (_i == null) return;
var _arr = [];
var _n = true;
var _d = false;
var _s, _e;
try {
for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
_arr.push(_s.value);
if (i && _arr.length === i) break;
}
} catch (err) {
_d = true;
_e = err;
} finally {
try {
if (!_n && _i["return"] != null) _i["return"]();
} finally {
if (_d) throw _e;
}
}
return _arr;
}
function _unsupportedIterableToArray(o, minLen) {

@@ -147,30 +129,40 @@ if (!o) return;

}
function _arrayLikeToArray(arr, len) {
if (len == null || len > arr.length) len = arr.length;
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
return arr2;
}
function _nonIterableSpread() {
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
function _nonIterableRest() {
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
function _toPrimitive(input, hint) {
if (typeof input !== "object" || input === null) return input;
var prim = input[Symbol.toPrimitive];
if (prim !== undefined) {
var res = prim.call(input, hint || "default");
if (typeof res !== "object") return res;
throw new TypeError("@@toPrimitive must return a primitive value.");
}
return (hint === "string" ? String : Number)(input);
}
function _toPropertyKey(arg) {
var key = _toPrimitive(arg, "string");
return typeof key === "symbol" ? key : String(key);
}
// package version used in the ix-lib parameter
var VERSION = '3.7.0'; // regex pattern used to determine if a domain is valid
var VERSION = '3.7.1';
// regex pattern used to determine if a domain is valid
var DOMAIN_REGEX = /^(?:[a-z\d\-_]{1,62}\.){0,125}(?:[a-z\d](?:\-(?=\-*[a-z\d])|[a-z]|\d){0,62}\.)[a-z\d]{1,63}$/i;
// minimum generated srcset width
var MIN_SRCSET_WIDTH = 100;
// maximum generated srcset width
var MAX_SRCSET_WIDTH = 8192;
// default tolerable percent difference between srcset pair widths
var DEFAULT_SRCSET_WIDTH_TOLERANCE = 0.08;
var DOMAIN_REGEX = /^(?:[a-z\d\-_]{1,62}\.){0,125}(?:[a-z\d](?:\-(?=\-*[a-z\d])|[a-z]|\d){0,62}\.)[a-z\d]{1,63}$/i; // minimum generated srcset width
var MIN_SRCSET_WIDTH = 100; // maximum generated srcset width
var MAX_SRCSET_WIDTH = 8192; // default tolerable percent difference between srcset pair widths
var DEFAULT_SRCSET_WIDTH_TOLERANCE = 0.08; // default quality parameter values mapped by each dpr srcset entry
// default quality parameter values mapped by each dpr srcset entry
var DPR_QUALITIES = {

@@ -204,10 +196,8 @@ 1: 75,

*/
function extractUrl(_ref) {
var _ref$url = _ref.url,
url = _ref$url === void 0 ? '' : _ref$url,
_ref$useHttps = _ref.useHttps,
useHttps = _ref$useHttps === void 0 ? false : _ref$useHttps;
url = _ref$url === void 0 ? '' : _ref$url,
_ref$useHttps = _ref.useHttps,
useHttps = _ref$useHttps === void 0 ? false : _ref$useHttps;
var defaultProto = useHttps ? 'https://' : 'http://';
if (!hasProtocol(url, true)) {

@@ -225,4 +215,2 @@ return extractUrl({

*/
return parseURL(url);

@@ -233,3 +221,2 @@ }

var widthTolerance;
if (options.widthTolerance !== undefined) {

@@ -241,10 +228,9 @@ validateWidthTolerance(options.widthTolerance);

}
var minWidth = options.minWidth === undefined ? MIN_SRCSET_WIDTH : options.minWidth;
var maxWidth = options.maxWidth === undefined ? MAX_SRCSET_WIDTH : options.maxWidth; // Validate the range unless we're using defaults for both
var maxWidth = options.maxWidth === undefined ? MAX_SRCSET_WIDTH : options.maxWidth;
// Validate the range unless we're using defaults for both
if (minWidth != MIN_SRCSET_WIDTH || maxWidth != MAX_SRCSET_WIDTH) {
validateRange(minWidth, maxWidth);
}
return [widthTolerance, minWidth, maxWidth];

@@ -269,3 +255,2 @@ }

});
if (!allPositiveIntegers) {

@@ -288,3 +273,2 @@ throw new Error('A custom widths argument can only contain positive integer values');

});
if (!allValidDPR) {

@@ -304,24 +288,17 @@ throw new Error('The devicePixelRatios argument can only contain positive integer values between 1 and 5');

var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
_classCallCheck(this, ImgixClient);
this.settings = _objectSpread2(_objectSpread2({}, DEFAULT_OPTIONS), opts); // a cache to store memoized srcset width-pairs
this.settings = _objectSpread2(_objectSpread2({}, DEFAULT_OPTIONS), opts);
// a cache to store memoized srcset width-pairs
this.targetWidthsCache = {};
if (typeof this.settings.domain != 'string') {
throw new Error('ImgixClient must be passed a valid string domain');
}
if (DOMAIN_REGEX.exec(this.settings.domain) == null) {
throw new Error('Domain must be passed in as fully-qualified ' + 'domain name and should not include a protocol or any path ' + 'element, i.e. "example.imgix.net".');
}
if (this.settings.includeLibraryParam) {
this.settings.libraryParam = 'js-' + ImgixClient.version();
}
this.settings.urlPrefix = this.settings.useHTTPS ? 'https://' : 'http://';
}
_createClass(ImgixClient, [{

@@ -333,13 +310,10 @@ key: "buildURL",

var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
var path = this._sanitizePath(rawPath, options);
var finalParams = this._buildParams(params, options);
if (!!this.settings.secureURLToken) {
finalParams = this._signParams(path, finalParams);
}
return this.settings.urlPrefix + this.settings.domain + path + finalParams;
}
/**

@@ -368,3 +342,2 @@ *`_buildURL` static method allows full URLs to be formatted for use with

*/
}, {

@@ -380,9 +353,7 @@ key: "_buildParams",

var _ref2 = _slicedToArray(_ref, 2),
key = _ref2[0],
value = _ref2[1];
key = _ref2[0],
value = _ref2[1];
if (value == null) {
return prev;
}
var encodedKey = encode(key);

@@ -402,2 +373,3 @@ var encodedValue = key.substr(-2) === '64' ? Base64.encodeURI(value) : encode(value);

}
/**

@@ -413,3 +385,2 @@ * "Sanitize" the path of the image URL.

*/
}, {

@@ -419,10 +390,7 @@ key: "_sanitizePath",

var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
// Strip leading slash first (we'll re-add after encoding)
var _path = path.replace(/^\//, '');
if (options.disablePathEncoding) {
return '/' + _path;
}
if (options.encoder) {

@@ -439,3 +407,2 @@ _path = options.encoder(_path);

}
return '/' + _path;

@@ -449,4 +416,3 @@ }

var w = params.w,
h = params.h;
h = params.h;
if (w || h) {

@@ -458,2 +424,3 @@ return this._buildDPRSrcSet(path, params, options);

}
/**

@@ -473,3 +440,2 @@ * _buildSrcSet static method allows full URLs to be used when generating

*/
}, {

@@ -479,14 +445,10 @@ key: "_buildSrcSetPairs",

var _this = this;
var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
var _validateAndDestructu = validateAndDestructureOptions(options),
_validateAndDestructu2 = _slicedToArray(_validateAndDestructu, 3),
widthTolerance = _validateAndDestructu2[0],
minWidth = _validateAndDestructu2[1],
maxWidth = _validateAndDestructu2[2];
_validateAndDestructu2 = _slicedToArray(_validateAndDestructu, 3),
widthTolerance = _validateAndDestructu2[0],
minWidth = _validateAndDestructu2[1],
maxWidth = _validateAndDestructu2[2];
var targetWidthValues;
if (options.widths) {

@@ -498,3 +460,2 @@ validateWidths(options.widths);

}
var srcset = targetWidthValues.map(function (w) {

@@ -511,23 +472,16 @@ return "".concat(_this.buildURL(path, _objectSpread2(_objectSpread2({}, params), {}, {

var _this2 = this;
var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
if (options.devicePixelRatios) {
validateDevicePixelRatios(options.devicePixelRatios);
}
var targetRatios = options.devicePixelRatios || DEFAULT_DPR;
var disableVariableQuality = options.disableVariableQuality || false;
if (!disableVariableQuality) {
validateVariableQuality(disableVariableQuality);
}
if (options.variableQualities) {
validateVariableQualities(options.variableQualities);
}
var qualities = _objectSpread2(_objectSpread2({}, DPR_QUALITIES), options.variableQualities);
var withQuality = function withQuality(path, params, dpr) {

@@ -539,3 +493,2 @@ return "".concat(_this2.buildURL(path, _objectSpread2(_objectSpread2({}, params), {}, {

};
var srcset = disableVariableQuality ? targetRatios.map(function (dpr) {

@@ -560,23 +513,19 @@ return "".concat(_this2.buildURL(path, _objectSpread2(_objectSpread2({}, params), {}, {

var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
if (url == null) {
return '';
}
var _extractUrl = extractUrl({
url: url,
useHTTPS: options.useHTTPS
}),
host = _extractUrl.host,
pathname = _extractUrl.pathname,
search = _extractUrl.search; // merge source URL parameters with options parameters
url: url,
useHTTPS: options.useHTTPS
}),
host = _extractUrl.host,
pathname = _extractUrl.pathname,
search = _extractUrl.search;
// merge source URL parameters with options parameters
var combinedParams = _objectSpread2(_objectSpread2({}, getQuery(search)), params);
var combinedParams = _objectSpread2(_objectSpread2({}, getQuery(search)), params); // throw error if no host or no pathname present
// throw error if no host or no pathname present
if (!host.length || !pathname.length) {
throw new Error('_buildURL: URL must match {host}/{pathname}?{query}');
}
var client = new ImgixClient(_objectSpread2({

@@ -593,23 +542,19 @@ domain: host

var clientOptions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
if (url == null) {
return '';
}
var _extractUrl2 = extractUrl({
url: url,
useHTTPS: clientOptions.useHTTPS
}),
host = _extractUrl2.host,
pathname = _extractUrl2.pathname,
search = _extractUrl2.search; // merge source URL parameters with options parameters
url: url,
useHTTPS: clientOptions.useHTTPS
}),
host = _extractUrl2.host,
pathname = _extractUrl2.pathname,
search = _extractUrl2.search;
// merge source URL parameters with options parameters
var combinedParams = _objectSpread2(_objectSpread2({}, getQuery(search)), params);
var combinedParams = _objectSpread2(_objectSpread2({}, getQuery(search)), params); // throw error if no host or no pathname present
// throw error if no host or no pathname present
if (!host.length || !pathname.length) {
throw new Error('_buildOneStepURL: URL must match {host}/{pathname}?{query}');
}
var client = new ImgixClient(_objectSpread2({

@@ -619,4 +564,5 @@ domain: host

return client.buildSrcSet(pathname, combinedParams, srcsetModifiers);
} // returns an array of width values used during srcset generation
}
// returns an array of width values used during srcset generation
}, {

@@ -633,15 +579,13 @@ key: "targetWidths",

validateWidthTolerance(widthTolerance);
var cacheKey = widthTolerance + '/' + minW + '/' + maxW; // First, check the cache.
var cacheKey = widthTolerance + '/' + minW + '/' + maxW;
// First, check the cache.
if (cacheKey in cache) {
return cache[cacheKey];
}
if (minW === maxW) {
return [minW];
}
var resolutions = [];
var currentWidth = minW;
while (currentWidth < maxW) {

@@ -652,3 +596,5 @@ // While the currentWidth is less than the maxW, push the rounded

currentWidth *= 1 + widthTolerance * 2;
} // At this point, the last width in resolutions is less than the
}
// At this point, the last width in resolutions is less than the
// currentWidth that caused the loop to terminate. This terminating

@@ -658,8 +604,5 @@ // currentWidth is greater than or equal to the maxW. We want to

// width in resolutions before pushing it (if it's equal we're done).
if (resolutions[resolutions.length - 1] < maxW) {
resolutions.push(maxW);
}
cache[cacheKey] = resolutions;

@@ -669,3 +612,2 @@ return resolutions;

}]);
return ImgixClient;

@@ -672,0 +614,0 @@ }();

{
"name": "@imgix/js-core",
"description": "A JavaScript client library for generating image URLs with imgix",
"version": "3.7.0",
"version": "3.7.1",
"repository": "https://github.com/imgix/js-core",

@@ -13,7 +13,7 @@ "license": "BSD-2-Clause",

"md5": "^2.2.1",
"ufo": "^0.8.0"
"ufo": "^1.0.0"
},
"devDependencies": {
"@babel/core": "7.18.13",
"@babel/preset-env": "7.18.10",
"@babel/core": "7.20.5",
"@babel/preset-env": "7.20.2",
"@babel/register": "7.18.9",

@@ -37,4 +37,4 @@ "@google/semantic-release-replace-plugin": "1.1.0",

"sinon": "13.0.2",
"tsd": "0.22.0",
"typescript": "4.8.4",
"tsd": "0.24.1",
"typescript": "4.9.3",
"uglify-js": "3.17.4"

@@ -41,0 +41,0 @@ },

@@ -221,4 +221,4 @@ <!-- ix-docs-ignore -->

This library generate by default `1` to `5` dpr `srcset`.
You can control generated target ratios with `devicePixelRatios` parameters.
By default, this library generates a `srcset` with pixel density values of `1` through `5`.
These target ratios can be controlled by using the `devicePixelRatios` parameters.

@@ -225,0 +225,0 @@ ```js

// package version used in the ix-lib parameter
export const VERSION = '3.7.0';
export const VERSION = '3.7.1';
// regex pattern used to determine if a domain is valid

@@ -4,0 +4,0 @@ export const DOMAIN_REGEX = /^(?:[a-z\d\-_]{1,62}\.){0,125}(?:[a-z\d](?:\-(?=\-*[a-z\d])|[a-z]|\d){0,62}\.)[a-z\d]{1,63}$/i;