@bluepic/embed 0.2.50 → 0.2.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bluepic-embed.iife.js +1 -1
- package/dist/bluepic-embed.iife.js.map +1 -1
- package/dist/bluepic-embed.umd.js +1 -1
- package/dist/bluepic-embed.umd.js.map +1 -1
- package/dist/main.cjs +1 -1
- package/dist/main.cjs.map +1 -1
- package/dist/main.mjs +2 -1
- package/dist/main.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -115,7 +115,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
115
115
|
* MIT Licensed
|
|
116
116
|
*/(function(e){var n=JC,t=Ca.extname,o=QC,r=/^\s*([^;\s]*)(?:;|\s|$)/,a=/^text\//i;e.charset=l,e.charsets={lookup:l},e.contentType=d,e.extension=c,e.extensions=Object.create(null),e.lookup=p,e.types=Object.create(null),e._extensionConflicts=[],f(e.extensions,e.types);function l(v){if(!v||typeof v!="string")return!1;var g=r.exec(v),x=g&&n[g[1].toLowerCase()];return x&&x.charset?x.charset:g&&a.test(g[1])?"UTF-8":!1}function d(v){if(!v||typeof v!="string")return!1;var g=v.indexOf("/")===-1?e.lookup(v):v;if(!g)return!1;if(g.indexOf("charset")===-1){var x=e.charset(g);x&&(g+="; charset="+x.toLowerCase())}return g}function c(v){if(!v||typeof v!="string")return!1;var g=r.exec(v),x=g&&e.extensions[g[1].toLowerCase()];return!x||!x.length?!1:x[0]}function p(v){if(!v||typeof v!="string")return!1;var g=t("x."+v).toLowerCase().slice(1);return g&&e.types[g]||!1}function f(v,g){Object.keys(n).forEach(function(w){var L=n[w],C=L.extensions;if(!(!C||!C.length)){v[w]=C;for(var E=0;E<C.length;E++){var S=C[E];g[S]=m(S,g[S],w);const _=b(S,g[S],w);_!==g[S]&&e._extensionConflicts.push([S,_,g[S]])}}})}function m(v,g,x){var w=g?o(g,n[g].source):0,L=x?o(x,n[x].source):0;return w>L?g:x}function b(v,g,x){var E;var w=["nginx","apache",void 0,"iana"],L=g?w.indexOf(n[g].source):0,C=x?w.indexOf(n[x].source):0;return e.types[c]!=="application/octet-stream"&&(L>C||L===C&&((E=e.types[c])==null?void 0:E.slice(0,12))==="application/")||L>C?g:x}})(ya),"stream"in Blob.prototype||Object.defineProperty(Blob.prototype,"stream",{value(){return new Response(this).body}}),"setBigUint64"in DataView.prototype||Object.defineProperty(DataView.prototype,"setBigUint64",{value(e,n,t){const o=Number(0xffffffffn&n),r=Number(n>>32n);this.setUint32(e+(t?0:4),o,t),this.setUint32(e+(t?4:0),r,t)}});var ur=e=>new DataView(new ArrayBuffer(e)),Ii=e=>new Uint8Array(e.buffer||e),dr=e=>new TextEncoder().encode(String(e)),Bo=e=>Math.min(4294967295,Number(e)),Cm=e=>Math.min(65535,Number(e));function ek(e,n,t){n===void 0||n instanceof Date||(n=new Date(n));const o=e!==void 0;if(t||(t=o?436:509),e instanceof File)return{isFile:o,t:n||new Date(e.lastModified),bytes:e.stream(),mode:t};if(e instanceof Response)return{isFile:o,t:n||new Date(e.headers.get("Last-Modified")||Date.now()),bytes:e.body,mode:t};if(n===void 0)n=new Date;else if(isNaN(n))throw new Error("Invalid modification date.");if(!o)return{isFile:o,t:n,mode:t};if(typeof e=="string")return{isFile:o,t:n,bytes:dr(e),mode:t};if(e instanceof Blob)return{isFile:o,t:n,bytes:e.stream(),mode:t};if(e instanceof Uint8Array||e instanceof ReadableStream)return{isFile:o,t:n,bytes:e,mode:t};if(e instanceof ArrayBuffer||ArrayBuffer.isView(e))return{isFile:o,t:n,bytes:Ii(e),mode:t};if(Symbol.asyncIterator in e)return{isFile:o,t:n,bytes:km(e[Symbol.asyncIterator]()),mode:t};throw new TypeError("Unsupported input format.")}function km(e,n=e){return new ReadableStream({async pull(t){let o=0;for(;t.desiredSize>o;){const r=await e.next();if(!r.value){t.close();break}{const a=tk(r.value);t.enqueue(a),o+=a.byteLength}}},cancel(t){var o;(o=n.throw)==null||o.call(n,t)}})}function tk(e){return typeof e=="string"?dr(e):e instanceof Uint8Array?e:Ii(e)}function Lm(e,n,t){let[o,r]=function(a){return a?a instanceof Uint8Array?[a,1]:ArrayBuffer.isView(a)||a instanceof ArrayBuffer?[Ii(a),1]:[dr(a),0]:[void 0,0]}(n);if(e instanceof File)return{i:l1(o||dr(e.name)),o:BigInt(e.size),u:r};if(e instanceof Response){const a=e.headers.get("content-disposition"),l=a&&a.match(/;\s*filename\*?\s*=\s*(?:UTF-\d+''|)["']?([^;"'\r\n]*)["']?(?:;|$)/i),d=l&&l[1]||e.url&&new URL(e.url).pathname.split("/").findLast(Boolean),c=d&&decodeURIComponent(d),p=t||+e.headers.get("content-length");return{i:l1(o||dr(c)),o:BigInt(p),u:r}}return o=l1(o,e!==void 0||t!==void 0),typeof e=="string"?{i:o,o:BigInt(dr(e).length),u:r}:e instanceof Blob?{i:o,o:BigInt(e.size),u:r}:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?{i:o,o:BigInt(e.byteLength),u:r}:{i:o,o:nk(e,t),u:r}}function nk(e,n){return n>-1?BigInt(n):e?void 0:0n}function l1(e,n=1){if(!e||e.every(t=>t===47))throw new Error("The file must have a name.");if(n)for(;e[e.length-1]===47;)e=e.subarray(0,-1);else e[e.length-1]!==47&&(e=new Uint8Array([...e,47]));return e}var Em=new Uint32Array(256);for(let e=0;e<256;++e){let n=e;for(let t=0;t<8;++t)n=n>>>1^(1&n&&3988292384);Em[e]=n}function Sm(e,n=0){n=~n;for(var t=0,o=e.length;t<o;t++)n=n>>>8^Em[255&n^e[t]];return~n>>>0}function _m(e,n,t=0){const o=e.getSeconds()>>1|e.getMinutes()<<5|e.getHours()<<11,r=e.getDate()|e.getMonth()+1<<5|e.getFullYear()-1980<<9;n.setUint16(t,o,1),n.setUint16(t+2,r,1)}function ik({i:e,u:n},t){return 8*(!n||(t??function(o){try{ok.decode(o)}catch{return 0}return 1}(e)))}var ok=new TextDecoder("utf8",{fatal:1});function rk(e,n=0){const t=ur(30);return t.setUint32(0,1347093252),t.setUint32(4,754976768|n),_m(e.t,t,10),t.setUint16(26,e.i.length,1),Ii(t)}async function*ak(e){let{bytes:n}=e;if("then"in n&&(n=await n),n instanceof Uint8Array)yield n,e.l=Sm(n,0),e.o=BigInt(n.length);else{e.o=0n;const t=n.getReader();for(;;){const{value:o,done:r}=await t.read();if(r)break;e.l=Sm(o,e.l),e.o+=BigInt(o.length),yield o}}}function sk(e,n){const t=ur(16+(n?8:0));return t.setUint32(0,1347094280),t.setUint32(4,e.isFile?e.l:0,1),n?(t.setBigUint64(8,e.o,1),t.setBigUint64(16,e.o,1)):(t.setUint32(8,Bo(e.o),1),t.setUint32(12,Bo(e.o),1)),Ii(t)}function lk(e,n,t=0,o=0){const r=ur(46);return r.setUint32(0,1347092738),r.setUint32(4,755182848),r.setUint16(8,2048|t),_m(e.t,r,12),r.setUint32(16,e.isFile?e.l:0,1),r.setUint32(20,Bo(e.o),1),r.setUint32(24,Bo(e.o),1),r.setUint16(28,e.i.length,1),r.setUint16(30,o,1),r.setUint16(40,e.mode|(e.isFile?32768:16384),1),r.setUint32(42,Bo(n),1),Ii(r)}function ck(e,n,t){const o=ur(t);return o.setUint16(0,1,1),o.setUint16(2,t-4,1),16&t&&(o.setBigUint64(4,e.o,1),o.setBigUint64(12,e.o,1)),o.setBigUint64(t-8,n,1),Ii(o)}function Mm(e){return e instanceof File||e instanceof Response?[[e],[e]]:[[e.input,e.name,e.size],[e.input,e.lastModified,e.mode]]}var uk=e=>function(n){let t=BigInt(22),o=0n,r=0;for(const a of n){if(!a.i)throw new Error("Every file must have a non-empty name.");if(a.o===void 0)throw new Error(`Missing size for file "${new TextDecoder().decode(a.i)}".`);const l=a.o>=0xffffffffn,d=o>=0xffffffffn;o+=BigInt(46+a.i.length+(l&&8))+a.o,t+=BigInt(a.i.length+46+(12*d|28*l)),r||(r=l)}return(r||o>=0xffffffffn)&&(t+=BigInt(76)),t+o}(function*(n){for(const t of n)yield Lm(...Mm(t)[0])}(e));function dk(e,n={}){const t={"Content-Type":"application/zip","Content-Disposition":"attachment"};return(typeof n.length=="bigint"||Number.isInteger(n.length))&&n.length>0&&(t["Content-Length"]=String(n.length)),n.metadata&&(t["Content-Length"]=String(uk(n.metadata))),new Response(pk(e,n),{headers:t})}function pk(e,n={}){const t=function(o){var a;const r=o[Symbol.iterator in o?Symbol.iterator:Symbol.asyncIterator]();return{async next(){const l=await r.next();if(l.done)return l;const[d,c]=Mm(l.value);return{done:0,value:Object.assign(ek(...c),Lm(...d))}},throw:(a=r.throw)==null?void 0:a.bind(r),[Symbol.asyncIterator](){return this}}}(e);return km(async function*(o,r){const a=[];let l=0n,d=0n,c=0;for await(const m of o){const b=ik(m,r.buffersAreUTF8);yield rk(m,b),yield new Uint8Array(m.i),m.isFile&&(yield*ak(m));const v=m.o>=0xffffffffn,g=12*(l>=0xffffffffn)|28*v;yield sk(m,v),a.push(lk(m,l,b,g)),a.push(m.i),g&&a.push(ck(m,l,g)),v&&(l+=8n),d++,l+=BigInt(46+m.i.length)+m.o,c||(c=v)}let p=0n;for(const m of a)yield m,p+=BigInt(m.length);if(c||l>=0xffffffffn){const m=ur(76);m.setUint32(0,1347094022),m.setBigUint64(4,BigInt(44),1),m.setUint32(12,755182848),m.setBigUint64(24,d,1),m.setBigUint64(32,d,1),m.setBigUint64(40,p,1),m.setBigUint64(48,l,1),m.setUint32(56,1347094023),m.setBigUint64(64,l+p,1),m.setUint32(72,1,1),yield Ii(m)}const f=ur(22);f.setUint32(0,1347093766),f.setUint16(8,Cm(d),1),f.setUint16(10,Cm(d),1),f.setUint32(12,Bo(p),1),f.setUint32(16,Bo(l),1),yield Ii(f)}(t,n),t)}function Bm(e){return e.arrayBuffer?e.arrayBuffer():new Promise((n,t)=>{const o=new FileReader;o.addEventListener("loadend",()=>{n(o.result)}),o.addEventListener("error",t),o.readAsArrayBuffer(e)})}async function fk(e){const n=await Bm(e);return new Uint8Array(n)}function Tm(e){return typeof Blob<"u"&&e instanceof Blob}function ka(e){return typeof SharedArrayBuffer<"u"&&e instanceof SharedArrayBuffer}const mk=typeof process<"u"&&process.versions&&typeof process.versions.node<"u"&&typeof process.versions.electron>"u";function hk(e){return e.byteOffset===0&&e.byteLength===e.buffer.byteLength}class Am{constructor(n){this.typedArray=n instanceof ArrayBuffer||ka(n)?new Uint8Array(n):new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}async getLength(){return this.typedArray.byteLength}async read(n,t){return new Uint8Array(this.typedArray.buffer,this.typedArray.byteOffset+n,t)}}class Im{constructor(n){this.blob=n}async getLength(){return this.blob.size}async read(n,t){const o=this.blob.slice(n,n+t),r=await Bm(o);return new Uint8Array(r)}async sliceAsBlob(n,t,o=""){return this.blob.slice(n,n+t,o)}}function gk(e,n){var t=Uint8Array;if(e[0]==3&&e[1]==0)return n||new t(0);var o=bk,r=$m,a=vk,l=Om,d=n==null;d&&(n=new t(e.length>>>2<<3));for(var c=0,p=0,f=0,m=0,b=0,v=0,g=0,x=0,w=0,L,C;c==0;){if(c=o(e,w,1),p=o(e,w+1,2),w+=3,p==0){w&7&&(w+=8-(w&7));var E=(w>>>3)+4,S=e[E-4]|e[E-3]<<8;d&&(n=c1(n,x+S)),n.set(new t(e.buffer,e.byteOffset+E,S),x),w=E+S<<3,x+=S;continue}if(d&&(n=c1(n,x+131072)),p==1&&(L=Te.flmap,C=Te.fdmap,v=511,g=31),p==2){f=r(e,w,5)+257,m=r(e,w+5,5)+1,b=r(e,w+10,4)+4,w+=14;for(var _=0;_<38;_+=2)Te.itree[_]=0,Te.itree[_+1]=0;for(var T=1,_=0;_<b;_++){var M=r(e,w+_*3,3);Te.itree[(Te.ordr[_]<<1)+1]=M,M>T&&(T=M)}w+=3*b,La(Te.itree,T),Ea(Te.itree,T,Te.imap),L=Te.lmap,C=Te.dmap,w=a(Te.imap,(1<<T)-1,f+m,e,w,Te.ttree);var k=Nm(Te.ttree,0,f,Te.ltree);v=(1<<k)-1;var N=Nm(Te.ttree,f,m,Te.dtree);g=(1<<N)-1,La(Te.ltree,k),Ea(Te.ltree,k,L),La(Te.dtree,N),Ea(Te.dtree,N,C)}for(;;){var A=L[l(e,w)&v];w+=A&15;var B=A>>>4;if(!(B>>>8))n[x++]=B;else{if(B==256)break;var $=x+B-254;if(B>264){var H=Te.ldef[B-257];$=x+(H>>>3)+r(e,w,H&7),w+=H&7}var F=C[l(e,w)&g];w+=F&15;var z=F>>>4,V=Te.ddef[z],P=(V>>>4)+o(e,w,V&15);for(w+=V&15,d&&(n=c1(n,x+131072));x<$;)n[x]=n[x++-P],n[x]=n[x++-P],n[x]=n[x++-P],n[x]=n[x++-P];x=$}}}return n.length==x?n:n.slice(0,x)}function c1(e,n){var t=e.length;if(n<=t)return e;var o=new Uint8Array(Math.max(t<<1,n));return o.set(e,0),o}function vk(e,n,t,o,r,a){for(var l=$m,d=Om,c=0;c<t;){var p=e[d(o,r)&n];r+=p&15;var f=p>>>4;if(f<=15)a[c]=f,c++;else{var m=0,b=0;f==16?(b=3+l(o,r,2),r+=2,m=a[c-1]):f==17?(b=3+l(o,r,3),r+=3):f==18&&(b=11+l(o,r,7),r+=7);for(var v=c+b;c<v;)a[c]=m,c++}}return r}function Nm(e,n,t,o){for(var r=0,a=0,l=o.length>>>1;a<t;){var d=e[a+n];o[a<<1]=0,o[(a<<1)+1]=d,d>r&&(r=d),a++}for(;a<l;)o[a<<1]=0,o[(a<<1)+1]=0,a++;return r}function La(e,n){for(var t=e.length,o,r,a,l,d,c=Te.bl_count,l=0;l<=n;l++)c[l]=0;for(l=1;l<t;l+=2)c[e[l]]++;var p=Te.next_code;for(o=0,c[0]=0,r=1;r<=n;r++)o=o+c[r-1]<<1,p[r]=o;for(a=0;a<t;a+=2)d=e[a+1],d!=0&&(e[a]=p[d],p[d]++)}function Ea(e,n,t){for(var o=e.length,r=Te.rev15,a=0;a<o;a+=2)if(e[a+1]!=0)for(var l=a>>1,d=e[a+1],c=l<<4|d,p=n-d,f=e[a]<<p,m=f+(1<<p);f!=m;){var b=r[f]>>>15-n;t[b]=c,f++}}function Rm(e,n){for(var t=Te.rev15,o=15-n,r=0;r<e.length;r+=2){var a=e[r]<<n-e[r+1];e[r]=t[a]>>>o}}function $m(e,n,t){return(e[n>>>3]|e[(n>>>3)+1]<<8)>>>(n&7)&(1<<t)-1}function bk(e,n,t){return(e[n>>>3]|e[(n>>>3)+1]<<8|e[(n>>>3)+2]<<16)>>>(n&7)&(1<<t)-1}function Om(e,n){return(e[n>>>3]|e[(n>>>3)+1]<<8|e[(n>>>3)+2]<<16)>>>(n&7)}const Te=function(){var e=Uint16Array,n=Uint32Array;return{next_code:new e(16),bl_count:new e(16),ordr:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],of0:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],exb:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],ldef:new e(32),df0:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],dxb:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],ddef:new n(32),flmap:new e(512),fltree:[],fdmap:new e(32),fdtree:[],lmap:new e(32768),ltree:[],ttree:[],dmap:new e(32768),dtree:[],imap:new e(512),itree:[],rev15:new e(32768),lhst:new n(286),dhst:new n(30),ihst:new n(19),lits:new n(15e3),strt:new e(65536),prev:new e(32768)}}();(function(){for(var e=32768,n=0;n<e;n++){var t=n;t=(t&2863311530)>>>1|(t&1431655765)<<1,t=(t&3435973836)>>>2|(t&858993459)<<2,t=(t&4042322160)>>>4|(t&252645135)<<4,t=(t&4278255360)>>>8|(t&16711935)<<8,Te.rev15[n]=(t>>>16|t<<16)>>>17}function o(r,a,l){for(;a--!=0;)r.push(0,l)}for(var n=0;n<32;n++)Te.ldef[n]=Te.of0[n]<<3|Te.exb[n],Te.ddef[n]=Te.df0[n]<<4|Te.dxb[n];o(Te.fltree,144,8),o(Te.fltree,112,9),o(Te.fltree,24,7),o(Te.fltree,8,8),La(Te.fltree,9),Ea(Te.fltree,9,Te.flmap),Rm(Te.fltree,9),o(Te.fdtree,32,5),La(Te.fdtree,5),Ea(Te.fdtree,5,Te.fdmap),Rm(Te.fdtree,5),o(Te.itree,19,0),o(Te.ltree,286,0),o(Te.dtree,30,0),o(Te.ttree,320,0)})(),function(){for(var e=new Uint32Array(256),n=0;n<256;n++){for(var t=n,o=0;o<8;o++)t&1?t=3988292384^t>>>1:t=t>>>1;e[n]=t}return e}();function xk(e,n){return gk(e,n)}const Dm={numWorkers:1,workerURL:"",useWorkers:!1};let wk=0;const sl=[];function u1(e){return new Promise((n,t)=>{const o=new Worker(e);o.onmessage=r=>{r.data==="start"?(o.onerror=void 0,o.onmessage=void 0,n(o)):t(new Error(`unexpected message: ${r.data}`))},o.onerror=t})}function yk(e,n){return e.require?e.require(n):{}}(function(){if(mk){const{Worker:e}=yk(module,"worker_threads");return{async createWorker(n){return new e(n)},addEventListener(n,t){n.on("message",o=>{t({target:n,data:o})})},async terminate(n){await n.terminate()}}}else return{async createWorker(e){try{return await u1(e)}catch{console.warn("could not load worker:",e)}let n;try{const t=await fetch(e,{mode:"cors"});if(!t.ok)throw new Error(`could not load: ${e}`);n=await t.text(),e=URL.createObjectURL(new Blob([n],{type:"application/javascript"}));const o=await u1(e);return Dm.workerURL=e,o}catch{console.warn("could not load worker via fetch:",e)}if(n!==void 0)try{e=`data:application/javascript;base64,${btoa(n)}`;const t=await u1(e);return Dm.workerURL=e,t}catch{console.warn("could not load worker via dataURI")}throw console.warn("workers will not be used"),new Error("can not start workers")},addEventListener(e,n){e.addEventListener("message",n)},async terminate(e){e.terminate()}}})();function Ck(e,n,t,o){const r=new Uint8Array(n);xk(e,r),o(t?new Blob([r],{type:t}):r.buffer)}async function kk(){if(sl.length!==0)for(;sl.length;){const{src:e,uncompressedSize:n,type:t,resolve:o}=sl.shift();let r=e;Tm(e)&&(r=await fk(e)),Ck(r,n,t,o)}}function Vm(e,n,t){return new Promise((o,r)=>{sl.push({src:e,uncompressedSize:n,type:t,resolve:o,reject:r,id:wk++}),kk()})}function Lk(e,n){const t=e&31,o=(e>>5&15)-1,r=(e>>9&127)+1980,a=0,l=(n&31)*2,d=n>>5&63,c=n>>11&31;return new Date(r,o,t,c,d,l,a)}class Ek{constructor(n,t){this._reader=n,this._rawEntry=t,this.name=t.name,this.nameBytes=t.nameBytes,this.size=t.uncompressedSize,this.compressedSize=t.compressedSize,this.comment=t.comment,this.commentBytes=t.commentBytes,this.compressionMethod=t.compressionMethod,this.lastModDate=Lk(t.lastModFileDate,t.lastModFileTime),this.isDirectory=t.uncompressedSize===0&&t.name.endsWith("/"),this.encrypted=!!(t.generalPurposeBitFlag&1),this.externalFileAttributes=t.externalFileAttributes,this.versionMadeBy=t.versionMadeBy}async blob(n="application/octet-stream"){return await Ok(this._reader,this._rawEntry,n)}async arrayBuffer(){return await $k(this._reader,this._rawEntry)}async text(){const n=await this.arrayBuffer();return Sa(new Uint8Array(n))}async json(){const n=await this.text();return JSON.parse(n)}}const d1=22,Sk=65535,_k=101010256,Mk=101075792;async function pr(e,n,t){return await e.read(n,t)}async function p1(e,n,t,o){return e.sliceAsBlob?await e.sliceAsBlob(n,t,o):await e.read(n,t)}const Bk={unsigned(){return 0}};function Kt(e,n){return e[n]+e[n+1]*256}function cn(e,n){return e[n]+e[n+1]*256+e[n+2]*65536+e[n+3]*16777216}function To(e,n){return cn(e,n)+cn(e,n+4)*4294967296}const Tk=new TextDecoder;function Sa(e,n){return ka(e.buffer)&&(e=new Uint8Array(e)),Tk.decode(e)}async function Ak(e,n){const t=Math.min(d1+Sk,n),o=n-t,r=await pr(e,o,t);for(let a=t-d1;a>=0;--a){if(cn(r,a)!==_k)continue;const l=new Uint8Array(r.buffer,r.byteOffset+a,r.byteLength-a),d=Kt(l,4);if(d!==0)throw new Error(`multi-volume zip files are not supported. This is volume: ${d}`);const c=Kt(l,10),p=cn(l,12),f=cn(l,16),m=Kt(l,20),b=l.length-d1;if(m!==b)throw new Error(`invalid comment length. expected: ${b}, actual: ${m}`);const v=new Uint8Array(l.buffer,l.byteOffset+22,m),g=Sa(v);return c===65535||f===4294967295?await Nk(e,o+a,g,v):await Pm(e,f,p,c,g,v)}throw new Error("could not find end of central directory. maybe not zip file")}const Ik=117853008;async function Nk(e,n,t,o){const r=n-20,a=await pr(e,r,20);if(cn(a,0)!==Ik)throw new Error("invalid zip64 end of central directory locator signature");const l=To(a,8),d=await pr(e,l,56);if(cn(d,0)!==Mk)throw new Error("invalid zip64 end of central directory record signature");const c=To(d,32),p=To(d,40),f=To(d,48);return Pm(e,f,p,c,t,o)}const Rk=33639248;async function Pm(e,n,t,o,r,a){let l=0;const d=await pr(e,n,t),c=[];for(let f=0;f<o;++f){const m=d.subarray(l,l+46),b=cn(m,0);if(b!==Rk)throw new Error(`invalid central directory file header signature: 0x${b.toString(16)}`);const v={versionMadeBy:Kt(m,4),versionNeededToExtract:Kt(m,6),generalPurposeBitFlag:Kt(m,8),compressionMethod:Kt(m,10),lastModFileTime:Kt(m,12),lastModFileDate:Kt(m,14),crc32:cn(m,16),compressedSize:cn(m,20),uncompressedSize:cn(m,24),fileNameLength:Kt(m,28),extraFieldLength:Kt(m,30),fileCommentLength:Kt(m,32),internalFileAttributes:Kt(m,36),externalFileAttributes:cn(m,38),relativeOffsetOfLocalHeader:cn(m,42)};if(v.generalPurposeBitFlag&64)throw new Error("strong encryption is not supported");l+=46;const g=d.subarray(l,l+v.fileNameLength+v.extraFieldLength+v.fileCommentLength);v.nameBytes=g.slice(0,v.fileNameLength),v.name=Sa(v.nameBytes);const x=v.fileNameLength+v.extraFieldLength,w=g.slice(v.fileNameLength,x);v.extraFields=[];let L=0;for(;L<w.length-3;){const E=Kt(w,L+0),S=Kt(w,L+2),_=L+4,T=_+S;if(T>w.length)throw new Error("extra field length exceeds extra field buffer size");v.extraFields.push({id:E,data:w.slice(_,T)}),L=T}if(v.commentBytes=g.slice(x,x+v.fileCommentLength),v.comment=Sa(v.commentBytes),l+=g.length,v.uncompressedSize===4294967295||v.compressedSize===4294967295||v.relativeOffsetOfLocalHeader===4294967295){const E=v.extraFields.find(T=>T.id===1);if(!E)throw new Error("expected zip64 extended information extra field");const S=E.data;let _=0;if(v.uncompressedSize===4294967295){if(_+8>S.length)throw new Error("zip64 extended information extra field does not include uncompressed size");v.uncompressedSize=To(S,_),_+=8}if(v.compressedSize===4294967295){if(_+8>S.length)throw new Error("zip64 extended information extra field does not include compressed size");v.compressedSize=To(S,_),_+=8}if(v.relativeOffsetOfLocalHeader===4294967295){if(_+8>S.length)throw new Error("zip64 extended information extra field does not include relative header offset");v.relativeOffsetOfLocalHeader=To(S,_),_+=8}}const C=v.extraFields.find(E=>E.id===28789&&E.data.length>=6&&E.data[0]===1&&cn(E.data,1),Bk.unsigned(v.nameBytes));if(C&&(v.fileName=Sa(C.data.slice(5))),v.compressionMethod===0){let E=v.uncompressedSize;if(v.generalPurposeBitFlag&1&&(E+=12),v.compressedSize!==E)throw new Error(`compressed size mismatch for stored file: ${v.compressedSize} != ${E}`)}c.push(v)}return{zip:{comment:r,commentBytes:a},entries:c.map(f=>new Ek(e,f))}}async function zm(e,n){if(n.generalPurposeBitFlag&1)throw new Error("encrypted entries not supported");const t=await pr(e,n.relativeOffsetOfLocalHeader,30),o=await e.getLength(),r=cn(t,0);if(r!==67324752)throw new Error(`invalid local file header signature: 0x${r.toString(16)}`);const a=Kt(t,26),l=Kt(t,28),d=n.relativeOffsetOfLocalHeader+t.length+a+l;let c;if(n.compressionMethod===0)c=!1;else if(n.compressionMethod===8)c=!0;else throw new Error(`unsupported compression method: ${n.compressionMethod}`);const p=d,f=p+n.compressedSize;if(n.compressedSize!==0&&f>o)throw new Error(`file data overflows file bounds: ${p} + ${n.compressedSize} > ${o}`);return{decompress:c,fileDataStart:p}}async function $k(e,n){const{decompress:t,fileDataStart:o}=await zm(e,n);if(!t){const l=await pr(e,o,n.compressedSize);return hk(l)?l.buffer:l.slice().buffer}const r=await p1(e,o,n.compressedSize);return await Vm(r,n.uncompressedSize)}async function Ok(e,n,t){const{decompress:o,fileDataStart:r}=await zm(e,n);if(!o){const d=await p1(e,r,n.compressedSize,t);return Tm(d)?d:new Blob([ka(d.buffer)?new Uint8Array(d):d],{type:t})}const a=await p1(e,r,n.compressedSize);return await Vm(a,n.uncompressedSize,t)}async function Dk(e){let n;if(typeof Blob<"u"&&e instanceof Blob)n=new Im(e);else if(e instanceof ArrayBuffer||e&&e.buffer&&e.buffer instanceof ArrayBuffer)n=new Am(e);else if(ka(e)||ka(e.buffer))n=new Am(e);else if(typeof e=="string"){const o=await fetch(e);if(!o.ok)throw new Error(`failed http request ${e}, status: ${o.status}: ${o.statusText}`);const r=await o.blob();n=new Im(r)}else if(typeof e.getLength=="function"&&typeof e.read=="function")n=e;else throw new Error("unsupported source type");const t=await n.getLength();if(t>Number.MAX_SAFE_INTEGER)throw new Error(`file too large. size: ${t}. Only file sizes up 4503599627370496 bytes are supported`);return await Ak(n,t)}async function Vk(e){const{zip:n,entries:t}=await Dk(e);return{zip:n,entries:Object.fromEntries(t.map(o=>[o.name,o]))}}var Fm={exports:{}};(function(e,n){(function(t,o){e.exports=o()})(jo,function(){return function t(o,r,a){var l=window,d="application/octet-stream",c=a||d,p=o,f=!r&&!a&&p,m=document.createElement("a"),b=function(M){return String(M)},v=l.Blob||l.MozBlob||l.WebKitBlob||b,g=r||"download",x,w;if(v=v.call?v.bind(l):Blob,String(this)==="true"&&(p=[p,c],c=p[0],p=p[1]),f&&f.length<2048&&(g=f.split("/").pop().split("?")[0],m.href=f,m.href.indexOf(f)!==-1)){var L=new XMLHttpRequest;return L.open("GET",f,!0),L.responseType="blob",L.onload=function(M){t(M.target.response,g,d)},setTimeout(function(){L.send()},0),L}if(/^data:([\w+-]+\/[\w+.-]+)?[,;]/.test(p))if(p.length>2096103424e-3&&v!==b)p=_(p),c=p.type||d;else return navigator.msSaveBlob?navigator.msSaveBlob(_(p),g):T(p);else if(/([\x80-\xff])/.test(p)){var C=0,E=new Uint8Array(p.length),S=E.length;for(C;C<S;++C)E[C]=p.charCodeAt(C);p=new v([E],{type:c})}x=p instanceof v?p:new v([p],{type:c});function _(M){var k=M.split(/[:;,]/),N=k[1],A=k[2]=="base64"?atob:decodeURIComponent,B=A(k.pop()),$=B.length,H=0,F=new Uint8Array($);for(H;H<$;++H)F[H]=B.charCodeAt(H);return new v([F],{type:N})}function T(M,k){if("download"in m)return m.href=M,m.setAttribute("download",g),m.className="download-js-link",m.innerHTML="downloading...",m.style.display="none",document.body.appendChild(m),setTimeout(function(){m.click(),document.body.removeChild(m),k===!0&&setTimeout(function(){l.URL.revokeObjectURL(m.href)},250)},66),!0;if(/(Version)\/(\d+)\.(\d+)(?:\.(\d+))?.*Safari\//.test(navigator.userAgent))return/^data:/.test(M)&&(M="data:"+M.replace(/^data:([\w\/\-\+]+)/,d)),window.open(M)||confirm(`Displaying New Document
|
|
117
117
|
|
|
118
|
-
Use Save As... to download, then click back to return to this page.`)&&(location.href=M),!0;var N=document.createElement("iframe");document.body.appendChild(N),!k&&/^data:/.test(M)&&(M="data:"+M.replace(/^data:([\w\/\-\+]+)/,d)),N.src=M,setTimeout(function(){document.body.removeChild(N)},333)}if(navigator.msSaveBlob)return navigator.msSaveBlob(x,g);if(l.URL)T(l.URL.createObjectURL(x),!0);else{if(typeof x=="string"||x.constructor===b)try{return T("data:"+c+";base64,"+l.btoa(x))}catch{return T("data:"+c+","+encodeURIComponent(x))}w=new FileReader,w.onload=function(M){T(this.result)},w.readAsDataURL(x)}return!0}})})(Fm);var Pk=Fm.exports;const jm=es(Pk);class zk{constructor(){tt(this,"cache",new Map);tt(this,"browserInfo",this.detectBrowser())}async generateFingerprint(){const n=await this.collectFingerprintData();return await this.hashData(n)}detectBrowser(){const n=navigator.userAgent;let t="unknown",o="";if(n.includes("Firefox")){t="firefox";const a=n.match(/Firefox\/(\d+)/);o=a?a[1]:""}else if(n.includes("Safari")&&!n.includes("Chrome")){t="safari";const a=n.match(/Version\/(\d+)/);o=a?a[1]:""}else if(n.includes("Chrome")){t="chrome";const a=n.match(/Chrome\/(\d+)/);o=a?a[1]:""}else if(n.includes("Edge")){t="edge";const a=n.match(/Edge\/(\d+)/);o=a?a[1]:""}const r=this.detectPrivateMode();return{name:t,version:o,isPrivate:r}}detectPrivateMode(){try{return window.localStorage&&(window.localStorage.setItem("test","1"),window.localStorage.removeItem("test")),navigator.serviceWorker===void 0}catch{return!0}}async collectFingerprintData(){return{userAgent:this.getUserAgent(),screen:this.getScreenData(),timezone:this.getTimezone(),language:this.getLanguage(),platform:this.getPlatform(),cookieEnabled:this.getCookieEnabled(),doNotTrack:this.getDoNotTrack(),canvas:await this.getCanvasFingerprint(),webgl:this.getWebGLData(),audio:await this.getAudioFingerprint(),fonts:await this.getFonts(),plugins:this.getPlugins(),hardware:this.getHardwareData(),network:this.getNetworkData(),browserSpecific:this.getBrowserSpecificData()}}getBrowserSpecificData(){const n={browserInfo:this.browserInfo};return n.mediaQueries=this.getMediaQueryData(),n.performance=this.getPerformanceData(),n.domProperties=this.getDOMProperties(),n.mathConstants=this.getMathConstants(),n}getMediaQueryData(){const n=["prefers-color-scheme: dark","prefers-reduced-motion: reduce","hover: hover","pointer: fine","any-hover: hover","max-resolution: 1dppx","(display-mode: standalone)"],t={};return n.forEach(o=>{try{t[o]=window.matchMedia(`(${o})`).matches}catch{t[o]=!1}}),t}getPerformanceData(){const n={};try{const t=performance.now();for(let r=0;r<100;r++)Math.random();const o=performance.now();if(n.mathPerformance=o-t,"memory"in performance){const r=performance.memory;n.memoryInfo={usedJSHeapSize:r.usedJSHeapSize,totalJSHeapSize:r.totalJSHeapSize,jsHeapSizeLimit:r.jsHeapSizeLimit}}}catch{n.error="performance_blocked"}return n}getDOMProperties(){const n={};try{n.documentMode=document.documentMode,n.webkitStorageInfo=!!window.webkitStorageInfo,n.webkitIndexedDB=!!window.webkitIndexedDB,n.webkitRequestFileSystem=!!window.webkitRequestFileSystem,n.webkitResolveLocalFileSystemURL=!!window.webkitResolveLocalFileSystemURL,n.serviceWorker="serviceWorker"in navigator,n.webAssembly=typeof WebAssembly<"u",n.crypto=typeof crypto<"u",n.indexedDB=typeof indexedDB<"u",n.onwheel="onwheel"in document,n.ongamepadconnected="ongamepadconnected"in window,n.ondevicemotion="ondevicemotion"in window}catch{n.error="dom_access_blocked"}return n}getMathConstants(){return{mathPI:Math.PI,mathE:Math.E,mathLN2:Math.LN2,mathLN10:Math.LN10,mathLOG2E:Math.LOG2E,mathLOG10E:Math.LOG10E,mathSQRT1_2:Math.SQRT1_2,mathSQRT2:Math.SQRT2,sinResult:Math.sin(Math.PI/4),tanResult:Math.tan(Math.PI/4),atanResult:Math.atan(1)}}getUserAgent(){return navigator.userAgent}getScreenData(){return{width:screen.width,height:screen.height,colorDepth:screen.colorDepth,pixelRatio:window.devicePixelRatio,availWidth:screen.availWidth,availHeight:screen.availHeight}}getTimezone(){return Intl.DateTimeFormat().resolvedOptions().timeZone}getLanguage(){return navigator.language||navigator.languages[0]||"unknown"}getPlatform(){return navigator.platform}getCookieEnabled(){return navigator.cookieEnabled}getDoNotTrack(){return navigator.doNotTrack}async getCanvasFingerprint(){try{const n=document.createElement("canvas"),t=n.getContext("2d");if(!t)return"unavailable";n.width=200,n.height=50,this.browserInfo.name==="firefox"?(t.fillStyle="#ff0000",t.fillRect(0,0,100,25),t.fillStyle="#00ff00",t.fillRect(100,0,100,25),t.font="12px monospace",t.fillStyle="#000000",t.fillText("test123",10,40)):this.browserInfo.name==="safari"?(t.fillStyle="#333333",t.fillRect(10,10,30,30),t.font="10px Arial",t.fillText("test",50,25)):(t.textBaseline="top",t.font="14px Arial",t.fillStyle="#f60",t.fillRect(125,1,62,20),t.fillStyle="#069",t.fillText("Fingerprint 🎯",2,15),t.fillStyle="rgba(102, 204, 0, 0.7)",t.fillText("Fingerprint 🎯",4,17),t.globalCompositeOperation="multiply",t.fillStyle="#f60",t.beginPath(),t.arc(50,25,20,0,Math.PI*2,!0),t.closePath(),t.fill(),t.fillStyle="#069",t.beginPath(),t.arc(25,25,20,0,Math.PI*2,!0),t.closePath(),t.fill());const o=n.toDataURL();return this.isCanvasRandomized(o)?this.getAlternativeIdentifier():o}catch{return this.getAlternativeIdentifier()}}isCanvasRandomized(n){return this.cache.has("lastCanvas")&&this.cache.get("lastCanvas")!==n?!0:(this.cache.set("lastCanvas",n),!1)}getAlternativeIdentifier(){return[navigator.userAgent,screen.width+"x"+screen.height,navigator.language,new Date().getTimezoneOffset().toString(),navigator.platform].join("|")}getWebGLData(){try{const n=document.createElement("canvas"),t=n.getContext("webgl")||n.getContext("experimental-webgl");if(!t)return this.getWebGLFallback();if(this.browserInfo.name==="safari"||this.browserInfo.name==="firefox")return this.getMinimalWebGLData(t);const o=t.getExtension("WEBGL_debug_renderer_info"),r=t.getSupportedExtensions()||[],a={};return["MAX_TEXTURE_SIZE","MAX_VERTEX_ATTRIBS","MAX_VERTEX_UNIFORM_VECTORS","MAX_VARYING_VECTORS","MAX_FRAGMENT_UNIFORM_VECTORS","MAX_COMBINED_TEXTURE_IMAGE_UNITS","MAX_RENDERBUFFER_SIZE"].forEach(d=>{try{a[d]=t.getParameter(t[d])}catch{a[d]="blocked"}}),{vendor:o?t.getParameter(o.UNMASKED_VENDOR_WEBGL):"unknown",renderer:o?t.getParameter(o.UNMASKED_RENDERER_WEBGL):"unknown",extensions:r,parameters:a}}catch{return this.getWebGLFallback()}}getMinimalWebGLData(n){const t={};try{t.MAX_TEXTURE_SIZE=n.getParameter(n.MAX_TEXTURE_SIZE),t.MAX_VERTEX_ATTRIBS=n.getParameter(n.MAX_VERTEX_ATTRIBS)}catch{}return{vendor:"protected",renderer:"protected",extensions:[],parameters:t}}getWebGLFallback(){return{vendor:"unavailable",renderer:"unavailable",extensions:[],parameters:{}}}async getAudioFingerprint(){try{const n=new(window.AudioContext||window.webkitAudioContext),t=n.createOscillator(),o=n.createAnalyser(),r=n.createGain(),a=n.createScriptProcessor(4096,1,1);return r.gain.value=0,t.connect(o),o.connect(a),a.connect(r),r.connect(n.destination),t.frequency.value=1e3,t.start(),new Promise(l=>{a.onaudioprocess=d=>{const c=d.outputBuffer.getChannelData(0);let p="";for(let f=0;f<c.length;f++)p+=c[f].toString();t.stop(),n.close(),l(p.slice(0,100))}})}catch{return"unavailable"}}async getFonts(){const n=["Arial","Arial Black","Arial Narrow","Arial Rounded MT Bold","Comic Sans MS","Courier","Courier New","Georgia","Helvetica","Impact","Lucida Console","Lucida Sans Unicode","Microsoft Sans Serif","Palatino Linotype","Tahoma","Times","Times New Roman","Trebuchet MS","Verdana","Webdings","Wingdings"],t=["monospace","sans-serif","serif"],o="mmmmmmmmmmlli",r="72px",l=document.createElement("canvas").getContext("2d"),d={};for(const p of t)l.font=`${r} ${p}`,d[p]=l.measureText(o).width;const c=[];for(const p of n)for(const f of t)if(l.font=`${r} ${p}, ${f}`,l.measureText(o).width!==d[f]){c.push(p);break}return c}getPlugins(){const n=[];for(let t=0;t<navigator.plugins.length;t++){const o=navigator.plugins[t];n.push({name:o.name,filename:o.filename,description:o.description})}return n}getHardwareData(){return{hardwareConcurrency:navigator.hardwareConcurrency||0,deviceMemory:navigator.deviceMemory||0,maxTouchPoints:navigator.maxTouchPoints||0}}getNetworkData(){const n=navigator.connection||navigator.mozConnection||navigator.webkitConnection;return{connection:n?{effectiveType:n.effectiveType||"unknown",rtt:n.rtt||0,downlink:n.downlink||0}:void 0,onLine:navigator.onLine}}async hashData(n){const t=JSON.stringify(n,Object.keys(n).sort()),r=new TextEncoder().encode(t),a=await crypto.subtle.digest("SHA-256",r);return Array.from(new Uint8Array(a)).map(d=>d.toString(16).padStart(2,"0")).join("")}async getFingerprintWithComponents(){const n=await this.collectFingerprintData();return{fingerprint:await this.hashData(n),components:n}}async getConfidenceScore(){const n=await this.collectFingerprintData();let t=0,o=0;const r={browser:this.browserInfo.name,isPrivate:this.browserInfo.isPrivate,workingTechniques:[],blockedTechniques:[]},a=this.getBrowserMultiplier();n.canvas!=="unavailable"&&n.canvas!=="error"&&!n.canvas.includes("|")?(t+=25*a,r.workingTechniques.push("canvas")):r.blockedTechniques.push("canvas"),o+=25,n.webgl.vendor!=="unavailable"&&n.webgl.vendor!=="error"&&n.webgl.vendor!=="protected"?(t+=20*a,r.workingTechniques.push("webgl")):r.blockedTechniques.push("webgl"),o+=20,n.audio!=="unavailable"&&n.audio.length>10?(t+=15*a,r.workingTechniques.push("audio")):r.blockedTechniques.push("audio"),o+=15,n.fonts.length>5?(t+=15,r.workingTechniques.push("fonts")):r.blockedTechniques.push("fonts"),o+=15,n.plugins.length>0?(t+=10,r.workingTechniques.push("plugins")):r.blockedTechniques.push("plugins"),o+=10,Object.keys(n.browserSpecific).length>0&&(t+=15,r.workingTechniques.push("browserSpecific")),o+=15;const l=Math.min(t/o*100,100);return r.recommendation=this.getRecommendation(l,this.browserInfo.name),{score:l,details:r}}getBrowserMultiplier(){switch(this.browserInfo.name){case"chrome":return 1;case"firefox":return .6;case"safari":return .4;case"edge":return .9;default:return .7}}getRecommendation(n,t){return n>=80?`Excellent fingerprinting capability in ${t}`:n>=60?`Good fingerprinting capability in ${t}, consider fallback techniques`:n>=40?`Limited fingerprinting in ${t}, rely more on server-side session management`:`Poor fingerprinting in ${t}, use alternative user identification methods`}async getBrowserCompatibilityReport(){const n=await this.collectFingerprintData(),{score:t,details:o}=await this.getConfidenceScore();return{browser:this.browserInfo,fingerprintScore:t,workingTechniques:o.workingTechniques,blockedTechniques:o.blockedTechniques,recommendation:o.recommendation,rawData:{canvasLength:n.canvas.length,webglVendor:n.webgl.vendor,audioLength:n.audio.length,fontCount:n.fonts.length,pluginCount:n.plugins.length,browserSpecificKeys:Object.keys(n.browserSpecific)}}}}async function Fk(e,n,t,o,r,a,l,d,c,p,f,m,b){const v=`${e}/api/public/render/template/${r}?${new URLSearchParams({env:t,embedProjectId:String(o),creditSecurityKey:await new zk().generateFingerprint()}).toString()}`,g={cloudflarePagesHostname:n,data:a,options:{width:l,height:d,quality:p,format:c,unit:"px",idleTime:0,frames:f}},x=new AbortController,w=await fetch(v,{method:"POST",headers:{"Content-Type":"application/json",...m?{Authorization:`Bearer ${m}`}:{},...b?{"X-Bluepic-Password":b}:{}},body:JSON.stringify(g),signal:x.signal});if(!w.ok)throw new Error(`Failed to start rendering: ${w.status}`);return await w.blob()}function jk(e,n,t,o,r,a,l,d,c,p,f){return new Promise(async(m,b)=>{let v,g;function x(T){try{const M=JSON.parse(T);if(M.type==="end"&&(console.log("Video rendering completed",M),v=M.sessionId,g=[M.result]),M.type==="error")throw console.error("Error in video rendering",M),new Error(M.message);M.type!=="end"&&f(M)}catch{}}const w="https://render.services.bluepic.io/video/render",L={cloudflarePagesHostname:n,serial:Fs(o,{apiBaseUrl:e,env:t}),data:r,options:{width:a,height:l,format:d,watermark:void 0,frameRate:p.fps,duration:c,vcodec:p.vcodec,acodec:p.acodec,pix_fmt:p.pix_fmt,audio:[],delay:0},parallelize:4},C=await fetch(w,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(L)});if(!C.body)throw new Error(`Failed to start video rendering: ${C.status}`);const E=C.body.getReader();let S="";const _=new TextDecoder;for(;;){const{value:T,done:M}=await E.read();if(M)break;S+=_.decode(T,{stream:!0});let k=S.indexOf(`
|
|
118
|
+
Use Save As... to download, then click back to return to this page.`)&&(location.href=M),!0;var N=document.createElement("iframe");document.body.appendChild(N),!k&&/^data:/.test(M)&&(M="data:"+M.replace(/^data:([\w\/\-\+]+)/,d)),N.src=M,setTimeout(function(){document.body.removeChild(N)},333)}if(navigator.msSaveBlob)return navigator.msSaveBlob(x,g);if(l.URL)T(l.URL.createObjectURL(x),!0);else{if(typeof x=="string"||x.constructor===b)try{return T("data:"+c+";base64,"+l.btoa(x))}catch{return T("data:"+c+","+encodeURIComponent(x))}w=new FileReader,w.onload=function(M){T(this.result)},w.readAsDataURL(x)}return!0}})})(Fm);var Pk=Fm.exports;const jm=es(Pk);class zk{constructor(){tt(this,"cache",new Map);tt(this,"browserInfo",this.detectBrowser())}async generateFingerprint(){const n=await this.collectFingerprintData();return await this.hashData(n)}detectBrowser(){const n=navigator.userAgent;let t="unknown",o="";if(n.includes("Firefox")){t="firefox";const a=n.match(/Firefox\/(\d+)/);o=a?a[1]:""}else if(n.includes("Safari")&&!n.includes("Chrome")){t="safari";const a=n.match(/Version\/(\d+)/);o=a?a[1]:""}else if(n.includes("Chrome")){t="chrome";const a=n.match(/Chrome\/(\d+)/);o=a?a[1]:""}else if(n.includes("Edge")){t="edge";const a=n.match(/Edge\/(\d+)/);o=a?a[1]:""}const r=this.detectPrivateMode();return{name:t,version:o,isPrivate:r}}detectPrivateMode(){try{return window.localStorage&&(window.localStorage.setItem("test","1"),window.localStorage.removeItem("test")),navigator.serviceWorker===void 0}catch{return!0}}async collectFingerprintData(){return{userAgent:this.getUserAgent(),screen:this.getScreenData(),timezone:this.getTimezone(),language:this.getLanguage(),platform:this.getPlatform(),cookieEnabled:this.getCookieEnabled(),doNotTrack:this.getDoNotTrack(),canvas:await this.getCanvasFingerprint(),webgl:this.getWebGLData(),audio:await this.getAudioFingerprint(),fonts:await this.getFonts(),plugins:this.getPlugins(),hardware:this.getHardwareData(),network:this.getNetworkData(),browserSpecific:this.getBrowserSpecificData()}}getBrowserSpecificData(){const n={browserInfo:this.browserInfo};return n.mediaQueries=this.getMediaQueryData(),n.performance=this.getPerformanceData(),n.domProperties=this.getDOMProperties(),n.mathConstants=this.getMathConstants(),n}getMediaQueryData(){const n=["prefers-color-scheme: dark","prefers-reduced-motion: reduce","hover: hover","pointer: fine","any-hover: hover","max-resolution: 1dppx","(display-mode: standalone)"],t={};return n.forEach(o=>{try{t[o]=window.matchMedia(`(${o})`).matches}catch{t[o]=!1}}),t}getPerformanceData(){const n={};try{const t=performance.now();for(let r=0;r<100;r++)Math.random();const o=performance.now();if(n.mathPerformance=o-t,"memory"in performance){const r=performance.memory;n.memoryInfo={usedJSHeapSize:r.usedJSHeapSize,totalJSHeapSize:r.totalJSHeapSize,jsHeapSizeLimit:r.jsHeapSizeLimit}}}catch{n.error="performance_blocked"}return n}getDOMProperties(){const n={};try{n.documentMode=document.documentMode,n.webkitStorageInfo=!!window.webkitStorageInfo,n.webkitIndexedDB=!!window.webkitIndexedDB,n.webkitRequestFileSystem=!!window.webkitRequestFileSystem,n.webkitResolveLocalFileSystemURL=!!window.webkitResolveLocalFileSystemURL,n.serviceWorker="serviceWorker"in navigator,n.webAssembly=typeof WebAssembly<"u",n.crypto=typeof crypto<"u",n.indexedDB=typeof indexedDB<"u",n.onwheel="onwheel"in document,n.ongamepadconnected="ongamepadconnected"in window,n.ondevicemotion="ondevicemotion"in window}catch{n.error="dom_access_blocked"}return n}getMathConstants(){return{mathPI:Math.PI,mathE:Math.E,mathLN2:Math.LN2,mathLN10:Math.LN10,mathLOG2E:Math.LOG2E,mathLOG10E:Math.LOG10E,mathSQRT1_2:Math.SQRT1_2,mathSQRT2:Math.SQRT2,sinResult:Math.sin(Math.PI/4),tanResult:Math.tan(Math.PI/4),atanResult:Math.atan(1)}}getUserAgent(){return navigator.userAgent}getScreenData(){return{width:screen.width,height:screen.height,colorDepth:screen.colorDepth,pixelRatio:window.devicePixelRatio,availWidth:screen.availWidth,availHeight:screen.availHeight}}getTimezone(){return Intl.DateTimeFormat().resolvedOptions().timeZone}getLanguage(){return navigator.language||navigator.languages[0]||"unknown"}getPlatform(){return navigator.platform}getCookieEnabled(){return navigator.cookieEnabled}getDoNotTrack(){return navigator.doNotTrack}async getCanvasFingerprint(){try{const n=document.createElement("canvas"),t=n.getContext("2d");if(!t)return"unavailable";n.width=200,n.height=50,this.browserInfo.name==="firefox"?(t.fillStyle="#ff0000",t.fillRect(0,0,100,25),t.fillStyle="#00ff00",t.fillRect(100,0,100,25),t.font="12px monospace",t.fillStyle="#000000",t.fillText("test123",10,40)):this.browserInfo.name==="safari"?(t.fillStyle="#333333",t.fillRect(10,10,30,30),t.font="10px Arial",t.fillText("test",50,25)):(t.textBaseline="top",t.font="14px Arial",t.fillStyle="#f60",t.fillRect(125,1,62,20),t.fillStyle="#069",t.fillText("Fingerprint 🎯",2,15),t.fillStyle="rgba(102, 204, 0, 0.7)",t.fillText("Fingerprint 🎯",4,17),t.globalCompositeOperation="multiply",t.fillStyle="#f60",t.beginPath(),t.arc(50,25,20,0,Math.PI*2,!0),t.closePath(),t.fill(),t.fillStyle="#069",t.beginPath(),t.arc(25,25,20,0,Math.PI*2,!0),t.closePath(),t.fill());const o=n.toDataURL();return this.isCanvasRandomized(o)?this.getAlternativeIdentifier():o}catch{return this.getAlternativeIdentifier()}}isCanvasRandomized(n){return this.cache.has("lastCanvas")&&this.cache.get("lastCanvas")!==n?!0:(this.cache.set("lastCanvas",n),!1)}getAlternativeIdentifier(){return[navigator.userAgent,screen.width+"x"+screen.height,navigator.language,new Date().getTimezoneOffset().toString(),navigator.platform].join("|")}getWebGLData(){try{const n=document.createElement("canvas"),t=n.getContext("webgl")||n.getContext("experimental-webgl");if(!t)return this.getWebGLFallback();if(this.browserInfo.name==="safari"||this.browserInfo.name==="firefox")return this.getMinimalWebGLData(t);const o=t.getExtension("WEBGL_debug_renderer_info"),r=t.getSupportedExtensions()||[],a={};return["MAX_TEXTURE_SIZE","MAX_VERTEX_ATTRIBS","MAX_VERTEX_UNIFORM_VECTORS","MAX_VARYING_VECTORS","MAX_FRAGMENT_UNIFORM_VECTORS","MAX_COMBINED_TEXTURE_IMAGE_UNITS","MAX_RENDERBUFFER_SIZE"].forEach(d=>{try{a[d]=t.getParameter(t[d])}catch{a[d]="blocked"}}),{vendor:o?t.getParameter(o.UNMASKED_VENDOR_WEBGL):"unknown",renderer:o?t.getParameter(o.UNMASKED_RENDERER_WEBGL):"unknown",extensions:r,parameters:a}}catch{return this.getWebGLFallback()}}getMinimalWebGLData(n){const t={};try{t.MAX_TEXTURE_SIZE=n.getParameter(n.MAX_TEXTURE_SIZE),t.MAX_VERTEX_ATTRIBS=n.getParameter(n.MAX_VERTEX_ATTRIBS)}catch{}return{vendor:"protected",renderer:"protected",extensions:[],parameters:t}}getWebGLFallback(){return{vendor:"unavailable",renderer:"unavailable",extensions:[],parameters:{}}}async getAudioFingerprint(){try{const n=new(window.AudioContext||window.webkitAudioContext),t=n.createOscillator(),o=n.createAnalyser(),r=n.createGain(),a=n.createScriptProcessor(4096,1,1);return r.gain.value=0,t.connect(o),o.connect(a),a.connect(r),r.connect(n.destination),t.frequency.value=1e3,t.start(),new Promise(l=>{a.onaudioprocess=d=>{const c=d.outputBuffer.getChannelData(0);let p="";for(let f=0;f<c.length;f++)p+=c[f].toString();t.stop(),n.close(),l(p.slice(0,100))}})}catch{return"unavailable"}}async getFonts(){const n=["Arial","Arial Black","Arial Narrow","Arial Rounded MT Bold","Comic Sans MS","Courier","Courier New","Georgia","Helvetica","Impact","Lucida Console","Lucida Sans Unicode","Microsoft Sans Serif","Palatino Linotype","Tahoma","Times","Times New Roman","Trebuchet MS","Verdana","Webdings","Wingdings"],t=["monospace","sans-serif","serif"],o="mmmmmmmmmmlli",r="72px",l=document.createElement("canvas").getContext("2d"),d={};for(const p of t)l.font=`${r} ${p}`,d[p]=l.measureText(o).width;const c=[];for(const p of n)for(const f of t)if(l.font=`${r} ${p}, ${f}`,l.measureText(o).width!==d[f]){c.push(p);break}return c}getPlugins(){const n=[];for(let t=0;t<navigator.plugins.length;t++){const o=navigator.plugins[t];n.push({name:o.name,filename:o.filename,description:o.description})}return n}getHardwareData(){return{hardwareConcurrency:navigator.hardwareConcurrency||0,deviceMemory:navigator.deviceMemory||0,maxTouchPoints:navigator.maxTouchPoints||0}}getNetworkData(){const n=navigator.connection||navigator.mozConnection||navigator.webkitConnection;return{connection:n?{effectiveType:n.effectiveType||"unknown",rtt:n.rtt||0,downlink:n.downlink||0}:void 0,onLine:navigator.onLine}}async hashData(n){const t=JSON.stringify(n,Object.keys(n).sort()),r=new TextEncoder().encode(t),a=await crypto.subtle.digest("SHA-256",r);return Array.from(new Uint8Array(a)).map(d=>d.toString(16).padStart(2,"0")).join("")}async getFingerprintWithComponents(){const n=await this.collectFingerprintData();return{fingerprint:await this.hashData(n),components:n}}async getConfidenceScore(){const n=await this.collectFingerprintData();let t=0,o=0;const r={browser:this.browserInfo.name,isPrivate:this.browserInfo.isPrivate,workingTechniques:[],blockedTechniques:[]},a=this.getBrowserMultiplier();n.canvas!=="unavailable"&&n.canvas!=="error"&&!n.canvas.includes("|")?(t+=25*a,r.workingTechniques.push("canvas")):r.blockedTechniques.push("canvas"),o+=25,n.webgl.vendor!=="unavailable"&&n.webgl.vendor!=="error"&&n.webgl.vendor!=="protected"?(t+=20*a,r.workingTechniques.push("webgl")):r.blockedTechniques.push("webgl"),o+=20,n.audio!=="unavailable"&&n.audio.length>10?(t+=15*a,r.workingTechniques.push("audio")):r.blockedTechniques.push("audio"),o+=15,n.fonts.length>5?(t+=15,r.workingTechniques.push("fonts")):r.blockedTechniques.push("fonts"),o+=15,n.plugins.length>0?(t+=10,r.workingTechniques.push("plugins")):r.blockedTechniques.push("plugins"),o+=10,Object.keys(n.browserSpecific).length>0&&(t+=15,r.workingTechniques.push("browserSpecific")),o+=15;const l=Math.min(t/o*100,100);return r.recommendation=this.getRecommendation(l,this.browserInfo.name),{score:l,details:r}}getBrowserMultiplier(){switch(this.browserInfo.name){case"chrome":return 1;case"firefox":return .6;case"safari":return .4;case"edge":return .9;default:return .7}}getRecommendation(n,t){return n>=80?`Excellent fingerprinting capability in ${t}`:n>=60?`Good fingerprinting capability in ${t}, consider fallback techniques`:n>=40?`Limited fingerprinting in ${t}, rely more on server-side session management`:`Poor fingerprinting in ${t}, use alternative user identification methods`}async getBrowserCompatibilityReport(){const n=await this.collectFingerprintData(),{score:t,details:o}=await this.getConfidenceScore();return{browser:this.browserInfo,fingerprintScore:t,workingTechniques:o.workingTechniques,blockedTechniques:o.blockedTechniques,recommendation:o.recommendation,rawData:{canvasLength:n.canvas.length,webglVendor:n.webgl.vendor,audioLength:n.audio.length,fontCount:n.fonts.length,pluginCount:n.plugins.length,browserSpecificKeys:Object.keys(n.browserSpecific)}}}}async function Fk(e,n,t,o,r,a,l,d,c,p,f,m,b){const v=`${e}/api/public/render/template/${r}?${new URLSearchParams({env:t,embedProjectId:String(o),creditSecurityKey:await new zk().generateFingerprint(),context:"widget"}).toString()}`,g={cloudflarePagesHostname:n,data:a,options:{width:l,height:d,quality:p,format:c,unit:"px",idleTime:0,frames:f}},x=new AbortController,w=await fetch(v,{method:"POST",headers:{"Content-Type":"application/json",...m?{Authorization:`Bearer ${m}`}:{},...b?{"X-Bluepic-Password":b}:{}},body:JSON.stringify(g),signal:x.signal});if(!w.ok)throw new Error(`Failed to start rendering: ${w.status}`);return await w.blob()}function jk(e,n,t,o,r,a,l,d,c,p,f){return new Promise(async(m,b)=>{let v,g;function x(T){try{const M=JSON.parse(T);if(M.type==="end"&&(console.log("Video rendering completed",M),v=M.sessionId,g=[M.result]),M.type==="error")throw console.error("Error in video rendering",M),new Error(M.message);M.type!=="end"&&f(M)}catch{}}const w="https://render.services.bluepic.io/video/render",L={cloudflarePagesHostname:n,serial:Fs(o,{apiBaseUrl:e,env:t}),data:r,options:{width:a,height:l,format:d,watermark:void 0,frameRate:p.fps,duration:c,vcodec:p.vcodec,acodec:p.acodec,pix_fmt:p.pix_fmt,audio:[],delay:0},parallelize:4},C=await fetch(w,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(L)});if(!C.body)throw new Error(`Failed to start video rendering: ${C.status}`);const E=C.body.getReader();let S="";const _=new TextDecoder;for(;;){const{value:T,done:M}=await E.read();if(M)break;S+=_.decode(T,{stream:!0});let k=S.indexOf(`
|
|
119
119
|
|
|
120
120
|
`);for(;k!==-1;){const N=S.slice(0,k).trim();S=S.slice(k+2),k=S.indexOf(`
|
|
121
121
|
|