@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
package/dist/main.cjs
CHANGED
|
@@ -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=yI,t=Ba.extname,i=CI,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(g){if(!g||typeof g!="string")return!1;var v=r.exec(g),x=v&&n[v[1].toLowerCase()];return x&&x.charset?x.charset:v&&a.test(v[1])?"UTF-8":!1}function d(g){if(!g||typeof g!="string")return!1;var v=g.indexOf("/")===-1?e.lookup(g):g;if(!v)return!1;if(v.indexOf("charset")===-1){var x=e.charset(v);x&&(v+="; charset="+x.toLowerCase())}return v}function c(g){if(!g||typeof g!="string")return!1;var v=r.exec(g),x=v&&e.extensions[v[1].toLowerCase()];return!x||!x.length?!1:x[0]}function p(g){if(!g||typeof g!="string")return!1;var v=t("x."+g).toLowerCase().slice(1);return v&&e.types[v]||!1}function f(g,v){Object.keys(n).forEach(function(w){var L=n[w],C=L.extensions;if(!(!C||!C.length)){g[w]=C;for(var E=0;E<C.length;E++){var S=C[E];v[S]=m(S,v[S],w);const M=b(S,v[S],w);M!==v[S]&&e._extensionConflicts.push([S,M,v[S]])}}})}function m(g,v,x){var w=v?i(v,n[v].source):0,L=x?i(x,n[x].source):0;return w>L?v:x}function b(g,v,x){var E;var w=["nginx","apache",void 0,"iana"],L=v?w.indexOf(n[v].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?v:x}})(_a);"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 i=Number(0xffffffffn&n),r=Number(n>>32n);this.setUint32(e+(t?0:4),i,t),this.setUint32(e+(t?4:0),r,t)}});var Lr=e=>new DataView(new ArrayBuffer(e)),zi=e=>new Uint8Array(e.buffer||e),cr=e=>new TextEncoder().encode(String(e)),Ao=e=>Math.min(4294967295,Number(e)),Ym=e=>Math.min(65535,Number(e));function kI(e,n,t){n===void 0||n instanceof Date||(n=new Date(n));const i=e!==void 0;if(t||(t=i?436:509),e instanceof File)return{isFile:i,t:n||new Date(e.lastModified),bytes:e.stream(),mode:t};if(e instanceof Response)return{isFile:i,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(!i)return{isFile:i,t:n,mode:t};if(typeof e=="string")return{isFile:i,t:n,bytes:cr(e),mode:t};if(e instanceof Blob)return{isFile:i,t:n,bytes:e.stream(),mode:t};if(e instanceof Uint8Array||e instanceof ReadableStream)return{isFile:i,t:n,bytes:e,mode:t};if(e instanceof ArrayBuffer||ArrayBuffer.isView(e))return{isFile:i,t:n,bytes:zi(e),mode:t};if(Symbol.asyncIterator in e)return{isFile:i,t:n,bytes:y3(e[Symbol.asyncIterator]()),mode:t};throw new TypeError("Unsupported input format.")}function y3(e,n=e){return new ReadableStream({async pull(t){let i=0;for(;t.desiredSize>i;){const r=await e.next();if(!r.value){t.close();break}{const a=LI(r.value);t.enqueue(a),i+=a.byteLength}}},cancel(t){var i;(i=n.throw)==null||i.call(n,t)}})}function LI(e){return typeof e=="string"?cr(e):e instanceof Uint8Array?e:zi(e)}function C3(e,n,t){let[i,r]=function(a){return a?a instanceof Uint8Array?[a,1]:ArrayBuffer.isView(a)||a instanceof ArrayBuffer?[zi(a),1]:[cr(a),0]:[void 0,0]}(n);if(e instanceof File)return{i:t1(i||cr(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:t1(i||cr(c)),o:BigInt(p),u:r}}return i=t1(i,e!==void 0||t!==void 0),typeof e=="string"?{i,o:BigInt(cr(e).length),u:r}:e instanceof Blob?{i,o:BigInt(e.size),u:r}:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?{i,o:BigInt(e.byteLength),u:r}:{i,o:EI(e,t),u:r}}function EI(e,n){return n>-1?BigInt(n):e?void 0:0n}function t1(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 k3=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);k3[e]=n}function Km(e,n=0){n=~n;for(var t=0,i=e.length;t<i;t++)n=n>>>8^k3[255&n^e[t]];return~n>>>0}function L3(e,n,t=0){const i=e.getSeconds()>>1|e.getMinutes()<<5|e.getHours()<<11,r=e.getDate()|e.getMonth()+1<<5|e.getFullYear()-1980<<9;n.setUint16(t,i,1),n.setUint16(t+2,r,1)}function SI({i:e,u:n},t){return 8*(!n||(t??function(i){try{MI.decode(i)}catch{return 0}return 1}(e)))}var MI=new TextDecoder("utf8",{fatal:1});function _I(e,n=0){const t=Lr(30);return t.setUint32(0,1347093252),t.setUint32(4,754976768|n),L3(e.t,t,10),t.setUint16(26,e.i.length,1),zi(t)}async function*BI(e){let{bytes:n}=e;if("then"in n&&(n=await n),n instanceof Uint8Array)yield n,e.l=Km(n,0),e.o=BigInt(n.length);else{e.o=0n;const t=n.getReader();for(;;){const{value:i,done:r}=await t.read();if(r)break;e.l=Km(i,e.l),e.o+=BigInt(i.length),yield i}}}function TI(e,n){const t=Lr(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,Ao(e.o),1),t.setUint32(12,Ao(e.o),1)),zi(t)}function AI(e,n,t=0,i=0){const r=Lr(46);return r.setUint32(0,1347092738),r.setUint32(4,755182848),r.setUint16(8,2048|t),L3(e.t,r,12),r.setUint32(16,e.isFile?e.l:0,1),r.setUint32(20,Ao(e.o),1),r.setUint32(24,Ao(e.o),1),r.setUint16(28,e.i.length,1),r.setUint16(30,i,1),r.setUint16(40,e.mode|(e.isFile?32768:16384),1),r.setUint32(42,Ao(n),1),zi(r)}function II(e,n,t){const i=Lr(t);return i.setUint16(0,1,1),i.setUint16(2,t-4,1),16&t&&(i.setBigUint64(4,e.o,1),i.setBigUint64(12,e.o,1)),i.setBigUint64(t-8,n,1),zi(i)}function E3(e){return e instanceof File||e instanceof Response?[[e],[e]]:[[e.input,e.name,e.size],[e.input,e.lastModified,e.mode]]}var NI=e=>function(n){let t=BigInt(22),i=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=i>=0xffffffffn;i+=BigInt(46+a.i.length+(l&&8))+a.o,t+=BigInt(a.i.length+46+(12*d|28*l)),r||(r=l)}return(r||i>=0xffffffffn)&&(t+=BigInt(76)),t+i}(function*(n){for(const t of n)yield C3(...E3(t)[0])}(e));function RI(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(NI(n.metadata))),new Response(OI(e,n),{headers:t})}function OI(e,n={}){const t=function(i){var a;const r=i[Symbol.iterator in i?Symbol.iterator:Symbol.asyncIterator]();return{async next(){const l=await r.next();if(l.done)return l;const[d,c]=E3(l.value);return{done:0,value:Object.assign(kI(...c),C3(...d))}},throw:(a=r.throw)==null?void 0:a.bind(r),[Symbol.asyncIterator](){return this}}}(e);return y3(async function*(i,r){const a=[];let l=0n,d=0n,c=0;for await(const m of i){const b=SI(m,r.buffersAreUTF8);yield _I(m,b),yield new Uint8Array(m.i),m.isFile&&(yield*BI(m));const g=m.o>=0xffffffffn,v=12*(l>=0xffffffffn)|28*g;yield TI(m,g),a.push(AI(m,l,b,v)),a.push(m.i),v&&a.push(II(m,l,v)),g&&(l+=8n),d++,l+=BigInt(46+m.i.length)+m.o,c||(c=g)}let p=0n;for(const m of a)yield m,p+=BigInt(m.length);if(c||l>=0xffffffffn){const m=Lr(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 zi(m)}const f=Lr(22);f.setUint32(0,1347093766),f.setUint16(8,Ym(d),1),f.setUint16(10,Ym(d),1),f.setUint32(12,Ao(p),1),f.setUint32(16,Ao(l),1),yield zi(f)}(t,n),t)}function S3(e){return e.arrayBuffer?e.arrayBuffer():new Promise((n,t)=>{const i=new FileReader;i.addEventListener("loadend",()=>{n(i.result)}),i.addEventListener("error",t),i.readAsArrayBuffer(e)})}async function DI(e){const n=await S3(e);return new Uint8Array(n)}function M3(e){return typeof Blob<"u"&&e instanceof Blob}function Ta(e){return typeof SharedArrayBuffer<"u"&&e instanceof SharedArrayBuffer}const $I=typeof process<"u"&&process.versions&&typeof process.versions.node<"u"&&typeof process.versions.electron>"u";function VI(e){return e.byteOffset===0&&e.byteLength===e.buffer.byteLength}class Jm{constructor(n){this.typedArray=n instanceof ArrayBuffer||Ta(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 Qm{constructor(n){this.blob=n}async getLength(){return this.blob.size}async read(n,t){const i=this.blob.slice(n,n+t),r=await S3(i);return new Uint8Array(r)}async sliceAsBlob(n,t,i=""){return this.blob.slice(n,n+t,i)}}function PI(e,n){var t=Uint8Array;if(e[0]==3&&e[1]==0)return n||new t(0);var i=FI,r=_3,a=zI,l=B3,d=n==null;d&&(n=new t(e.length>>>2<<3));for(var c=0,p=0,f=0,m=0,b=0,g=0,v=0,x=0,w=0,L,C;c==0;){if(c=i(e,w,1),p=i(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=n1(n,x+S)),n.set(new t(e.buffer,e.byteOffset+E,S),x),w=E+S<<3,x+=S;continue}if(d&&(n=n1(n,x+(1<<17))),p==1&&(L=Te.flmap,C=Te.fdmap,g=511,v=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 M=0;M<38;M+=2)Te.itree[M]=0,Te.itree[M+1]=0;for(var T=1,M=0;M<b;M++){var _=r(e,w+M*3,3);Te.itree[(Te.ordr[M]<<1)+1]=_,_>T&&(T=_)}w+=3*b,xa(Te.itree,T),wa(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=eh(Te.ttree,0,f,Te.ltree);g=(1<<k)-1;var N=eh(Te.ttree,f,m,Te.dtree);v=(1<<N)-1,xa(Te.ltree,k),wa(Te.ltree,k,L),xa(Te.dtree,N),wa(Te.dtree,N,C)}for(;;){var A=L[l(e,w)&g];w+=A&15;var B=A>>>4;if(!(B>>>8))n[x++]=B;else{if(B==256)break;var O=x+B-254;if(B>264){var H=Te.ldef[B-257];O=x+(H>>>3)+r(e,w,H&7),w+=H&7}var F=C[l(e,w)&v];w+=F&15;var z=F>>>4,V=Te.ddef[z],P=(V>>>4)+i(e,w,V&15);for(w+=V&15,d&&(n=n1(n,x+(1<<17)));x<O;)n[x]=n[x++-P],n[x]=n[x++-P],n[x]=n[x++-P],n[x]=n[x++-P];x=O}}}return n.length==x?n:n.slice(0,x)}function n1(e,n){var t=e.length;if(n<=t)return e;var i=new Uint8Array(Math.max(t<<1,n));return i.set(e,0),i}function zI(e,n,t,i,r,a){for(var l=_3,d=B3,c=0;c<t;){var p=e[d(i,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(i,r,2),r+=2,m=a[c-1]):f==17?(b=3+l(i,r,3),r+=3):f==18&&(b=11+l(i,r,7),r+=7);for(var g=c+b;c<g;)a[c]=m,c++}}return r}function eh(e,n,t,i){for(var r=0,a=0,l=i.length>>>1;a<t;){var d=e[a+n];i[a<<1]=0,i[(a<<1)+1]=d,d>r&&(r=d),a++}for(;a<l;)i[a<<1]=0,i[(a<<1)+1]=0,a++;return r}function xa(e,n){for(var t=e.length,i,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(i=0,c[0]=0,r=1;r<=n;r++)i=i+c[r-1]<<1,p[r]=i;for(a=0;a<t;a+=2)d=e[a+1],d!=0&&(e[a]=p[d],p[d]++)}function wa(e,n,t){for(var i=e.length,r=Te.rev15,a=0;a<i;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 th(e,n){for(var t=Te.rev15,i=15-n,r=0;r<e.length;r+=2){var a=e[r]<<n-e[r+1];e[r]=t[a]>>>i}}function _3(e,n,t){return(e[n>>>3]|e[(n>>>3)+1]<<8)>>>(n&7)&(1<<t)-1}function FI(e,n,t){return(e[n>>>3]|e[(n>>>3)+1]<<8|e[(n>>>3)+2]<<16)>>>(n&7)&(1<<t)-1}function B3(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 i(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];i(Te.fltree,144,8),i(Te.fltree,112,9),i(Te.fltree,24,7),i(Te.fltree,8,8),xa(Te.fltree,9),wa(Te.fltree,9,Te.flmap),th(Te.fltree,9),i(Te.fdtree,32,5),xa(Te.fdtree,5),wa(Te.fdtree,5,Te.fdmap),th(Te.fdtree,5),i(Te.itree,19,0),i(Te.ltree,286,0),i(Te.dtree,30,0),i(Te.ttree,320,0)})();(function(){for(var e=new Uint32Array(256),n=0;n<256;n++){for(var t=n,i=0;i<8;i++)t&1?t=3988292384^t>>>1:t=t>>>1;e[n]=t}return e})();function jI(e,n){return PI(e,n)}const nh={numWorkers:1,workerURL:"",useWorkers:!1};let UI=0;const vl=[];function i1(e){return new Promise((n,t)=>{const i=new Worker(e);i.onmessage=r=>{r.data==="start"?(i.onerror=void 0,i.onmessage=void 0,n(i)):t(new Error(`unexpected message: ${r.data}`))},i.onerror=t})}function ZI(e,n){return e.require?e.require(n):{}}(function(){if($I){const{Worker:e}=ZI(module,"worker_threads");return{async createWorker(n){return new e(n)},addEventListener(n,t){n.on("message",i=>{t({target:n,data:i})})},async terminate(n){await n.terminate()}}}else return{async createWorker(e){try{return await i1(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 i=await i1(e);return nh.workerURL=e,i}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 i1(e);return nh.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 WI(e,n,t,i){const r=new Uint8Array(n);jI(e,r),i(t?new Blob([r],{type:t}):r.buffer)}async function HI(){if(vl.length!==0)for(;vl.length;){const{src:e,uncompressedSize:n,type:t,resolve:i}=vl.shift();let r=e;M3(e)&&(r=await DI(e)),WI(r,n,t,i)}}function T3(e,n,t){return new Promise((i,r)=>{vl.push({src:e,uncompressedSize:n,type:t,resolve:i,reject:r,id:UI++}),HI()})}function GI(e,n){const t=e&31,i=(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,i,t,c,d,l,a)}class qI{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=GI(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 rN(this._reader,this._rawEntry,n)}async arrayBuffer(){return await oN(this._reader,this._rawEntry)}async text(){const n=await this.arrayBuffer();return ya(new Uint8Array(n))}async json(){const n=await this.text();return JSON.parse(n)}}const o1=22,XI=65535,YI=101010256,KI=101075792;async function Er(e,n,t){return await e.read(n,t)}async function Z1(e,n,t,i){return e.sliceAsBlob?await e.sliceAsBlob(n,t,i):await e.read(n,t)}const JI={unsigned(){return 0}};function qt(e,n){return e[n]+e[n+1]*256}function un(e,n){return e[n]+e[n+1]*256+e[n+2]*65536+e[n+3]*16777216}function Mo(e,n){return un(e,n)+un(e,n+4)*4294967296}const QI=new TextDecoder;function ya(e,n){return Ta(e.buffer)&&(e=new Uint8Array(e)),QI.decode(e)}async function eN(e,n){const t=Math.min(o1+XI,n),i=n-t,r=await Er(e,i,t);for(let a=t-o1;a>=0;--a){if(un(r,a)!==YI)continue;const l=new Uint8Array(r.buffer,r.byteOffset+a,r.byteLength-a),d=qt(l,4);if(d!==0)throw new Error(`multi-volume zip files are not supported. This is volume: ${d}`);const c=qt(l,10),p=un(l,12),f=un(l,16),m=qt(l,20),b=l.length-o1;if(m!==b)throw new Error(`invalid comment length. expected: ${b}, actual: ${m}`);const g=new Uint8Array(l.buffer,l.byteOffset+22,m),v=ya(g);return c===65535||f===4294967295?await nN(e,i+a,v,g):await A3(e,f,p,c,v,g)}throw new Error("could not find end of central directory. maybe not zip file")}const tN=117853008;async function nN(e,n,t,i){const r=n-20,a=await Er(e,r,20);if(un(a,0)!==tN)throw new Error("invalid zip64 end of central directory locator signature");const l=Mo(a,8),d=await Er(e,l,56);if(un(d,0)!==KI)throw new Error("invalid zip64 end of central directory record signature");const c=Mo(d,32),p=Mo(d,40),f=Mo(d,48);return A3(e,f,p,c,t,i)}const iN=33639248;async function A3(e,n,t,i,r,a){let l=0;const d=await Er(e,n,t),c=[];for(let f=0;f<i;++f){const m=d.subarray(l,l+46),b=un(m,0);if(b!==iN)throw new Error(`invalid central directory file header signature: 0x${b.toString(16)}`);const g={versionMadeBy:qt(m,4),versionNeededToExtract:qt(m,6),generalPurposeBitFlag:qt(m,8),compressionMethod:qt(m,10),lastModFileTime:qt(m,12),lastModFileDate:qt(m,14),crc32:un(m,16),compressedSize:un(m,20),uncompressedSize:un(m,24),fileNameLength:qt(m,28),extraFieldLength:qt(m,30),fileCommentLength:qt(m,32),internalFileAttributes:qt(m,36),externalFileAttributes:un(m,38),relativeOffsetOfLocalHeader:un(m,42)};if(g.generalPurposeBitFlag&64)throw new Error("strong encryption is not supported");l+=46;const v=d.subarray(l,l+g.fileNameLength+g.extraFieldLength+g.fileCommentLength);g.nameBytes=v.slice(0,g.fileNameLength),g.name=ya(g.nameBytes);const x=g.fileNameLength+g.extraFieldLength,w=v.slice(g.fileNameLength,x);g.extraFields=[];let L=0;for(;L<w.length-3;){const E=qt(w,L+0),S=qt(w,L+2),M=L+4,T=M+S;if(T>w.length)throw new Error("extra field length exceeds extra field buffer size");g.extraFields.push({id:E,data:w.slice(M,T)}),L=T}if(g.commentBytes=v.slice(x,x+g.fileCommentLength),g.comment=ya(g.commentBytes),l+=v.length,g.uncompressedSize===4294967295||g.compressedSize===4294967295||g.relativeOffsetOfLocalHeader===4294967295){const E=g.extraFields.find(T=>T.id===1);if(!E)throw new Error("expected zip64 extended information extra field");const S=E.data;let M=0;if(g.uncompressedSize===4294967295){if(M+8>S.length)throw new Error("zip64 extended information extra field does not include uncompressed size");g.uncompressedSize=Mo(S,M),M+=8}if(g.compressedSize===4294967295){if(M+8>S.length)throw new Error("zip64 extended information extra field does not include compressed size");g.compressedSize=Mo(S,M),M+=8}if(g.relativeOffsetOfLocalHeader===4294967295){if(M+8>S.length)throw new Error("zip64 extended information extra field does not include relative header offset");g.relativeOffsetOfLocalHeader=Mo(S,M),M+=8}}const C=g.extraFields.find(E=>E.id===28789&&E.data.length>=6&&E.data[0]===1&&un(E.data,1),JI.unsigned(g.nameBytes));if(C&&(g.fileName=ya(C.data.slice(5))),g.compressionMethod===0){let E=g.uncompressedSize;if(g.generalPurposeBitFlag&1&&(E+=12),g.compressedSize!==E)throw new Error(`compressed size mismatch for stored file: ${g.compressedSize} != ${E}`)}c.push(g)}return{zip:{comment:r,commentBytes:a},entries:c.map(f=>new qI(e,f))}}async function I3(e,n){if(n.generalPurposeBitFlag&1)throw new Error("encrypted entries not supported");const t=await Er(e,n.relativeOffsetOfLocalHeader,30),i=await e.getLength(),r=un(t,0);if(r!==67324752)throw new Error(`invalid local file header signature: 0x${r.toString(16)}`);const a=qt(t,26),l=qt(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>i)throw new Error(`file data overflows file bounds: ${p} + ${n.compressedSize} > ${i}`);return{decompress:c,fileDataStart:p}}async function oN(e,n){const{decompress:t,fileDataStart:i}=await I3(e,n);if(!t){const l=await Er(e,i,n.compressedSize);return VI(l)?l.buffer:l.slice().buffer}const r=await Z1(e,i,n.compressedSize);return await T3(r,n.uncompressedSize)}async function rN(e,n,t){const{decompress:i,fileDataStart:r}=await I3(e,n);if(!i){const d=await Z1(e,r,n.compressedSize,t);return M3(d)?d:new Blob([Ta(d.buffer)?new Uint8Array(d):d],{type:t})}const a=await Z1(e,r,n.compressedSize);return await T3(a,n.uncompressedSize,t)}async function aN(e){let n;if(typeof Blob<"u"&&e instanceof Blob)n=new Qm(e);else if(e instanceof ArrayBuffer||e&&e.buffer&&e.buffer instanceof ArrayBuffer)n=new Jm(e);else if(Ta(e)||Ta(e.buffer))n=new Jm(e);else if(typeof e=="string"){const i=await fetch(e);if(!i.ok)throw new Error(`failed http request ${e}, status: ${i.status}: ${i.statusText}`);const r=await i.blob();n=new Qm(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 eN(n,t)}async function sN(e){const{zip:n,entries:t}=await aN(e);return{zip:n,entries:Object.fromEntries(t.map(i=>[i.name,i]))}}var N3={exports:{}};(function(e,n){(function(t,i){e.exports=i()})(ar,function(){return function t(i,r,a){var l=window,d="application/octet-stream",c=a||d,p=i,f=!r&&!a&&p,m=document.createElement("a"),b=function(_){return String(_)},g=l.Blob||l.MozBlob||l.WebKitBlob||b,v=r||"download",x,w;if(g=g.call?g.bind(l):Blob,String(this)==="true"&&(p=[p,c],c=p[0],p=p[1]),f&&f.length<2048&&(v=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(_){t(_.target.response,v,d)},setTimeout(function(){L.send()},0),L}if(/^data:([\w+-]+\/[\w+.-]+)?[,;]/.test(p))if(p.length>1024*1024*1.999&&g!==b)p=M(p),c=p.type||d;else return navigator.msSaveBlob?navigator.msSaveBlob(M(p),v):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 g([E],{type:c})}x=p instanceof g?p:new g([p],{type:c});function M(_){var k=_.split(/[:;,]/),N=k[1],A=k[2]=="base64"?atob:decodeURIComponent,B=A(k.pop()),O=B.length,H=0,F=new Uint8Array(O);for(H;H<O;++H)F[H]=B.charCodeAt(H);return new g([F],{type:N})}function T(_,k){if("download"in m)return m.href=_,m.setAttribute("download",v),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(_)&&(_="data:"+_.replace(/^data:([\w\/\-\+]+)/,d)),window.open(_)||confirm(`Displaying New Document
|
|
117
117
|
|
|
118
|
-
Use Save As... to download, then click back to return to this page.`)&&(location.href=_),!0;var N=document.createElement("iframe");document.body.appendChild(N),!k&&/^data:/.test(_)&&(_="data:"+_.replace(/^data:([\w\/\-\+]+)/,d)),N.src=_,setTimeout(function(){document.body.removeChild(N)},333)}if(navigator.msSaveBlob)return navigator.msSaveBlob(x,v);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(_){T(this.result)},w.readAsDataURL(x)}return!0}})})(N3);var lN=N3.exports;const ih=$l(lN);class cN{constructor(){et(this,"cache",new Map);et(this,"browserInfo",this.detectBrowser())}async generateFingerprint(){const n=await this.collectFingerprintData();return await this.hashData(n)}detectBrowser(){const n=navigator.userAgent;let t="unknown",i="";if(n.includes("Firefox")){t="firefox";const a=n.match(/Firefox\/(\d+)/);i=a?a[1]:""}else if(n.includes("Safari")&&!n.includes("Chrome")){t="safari";const a=n.match(/Version\/(\d+)/);i=a?a[1]:""}else if(n.includes("Chrome")){t="chrome";const a=n.match(/Chrome\/(\d+)/);i=a?a[1]:""}else if(n.includes("Edge")){t="edge";const a=n.match(/Edge\/(\d+)/);i=a?a[1]:""}const r=this.detectPrivateMode();return{name:t,version:i,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(i=>{try{t[i]=window.matchMedia(`(${i})`).matches}catch{t[i]=!1}}),t}getPerformanceData(){const n={};try{const t=performance.now();for(let r=0;r<100;r++)Math.random();const i=performance.now();if(n.mathPerformance=i-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 i=n.toDataURL();return this.isCanvasRandomized(i)?this.getAlternativeIdentifier():i}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 i=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:i?t.getParameter(i.UNMASKED_VENDOR_WEBGL):"unknown",renderer:i?t.getParameter(i.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(),i=n.createAnalyser(),r=n.createGain(),a=n.createScriptProcessor(4096,1,1);return r.gain.value=0,t.connect(i),i.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"],i="mmmmmmmmmmlli",r="72px",l=document.createElement("canvas").getContext("2d"),d={};for(const p of t)l.font=`${r} ${p}`,d[p]=l.measureText(i).width;const c=[];for(const p of n)for(const f of t)if(l.font=`${r} ${p}, ${f}`,l.measureText(i).width!==d[f]){c.push(p);break}return c}getPlugins(){const n=[];for(let t=0;t<navigator.plugins.length;t++){const i=navigator.plugins[t];n.push({name:i.name,filename:i.filename,description:i.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,i=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"),i+=25,n.webgl.vendor!=="unavailable"&&n.webgl.vendor!=="error"&&n.webgl.vendor!=="protected"?(t+=20*a,r.workingTechniques.push("webgl")):r.blockedTechniques.push("webgl"),i+=20,n.audio!=="unavailable"&&n.audio.length>10?(t+=15*a,r.workingTechniques.push("audio")):r.blockedTechniques.push("audio"),i+=15,n.fonts.length>5?(t+=15,r.workingTechniques.push("fonts")):r.blockedTechniques.push("fonts"),i+=15,n.plugins.length>0?(t+=10,r.workingTechniques.push("plugins")):r.blockedTechniques.push("plugins"),i+=10,Object.keys(n.browserSpecific).length>0&&(t+=15,r.workingTechniques.push("browserSpecific")),i+=15;const l=Math.min(t/i*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:i}=await this.getConfidenceScore();return{browser:this.browserInfo,fingerprintScore:t,workingTechniques:i.workingTechniques,blockedTechniques:i.blockedTechniques,recommendation:i.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 uN(e,n,t,i,r,a,l,d,c,p,f,m,b){const g=`${e}/api/public/render/template/${r}?${new URLSearchParams({env:t,embedProjectId:String(i),creditSecurityKey:await new cN().generateFingerprint()}).toString()}`,v={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(g,{method:"POST",headers:{"Content-Type":"application/json",...m?{Authorization:`Bearer ${m}`}:{},...b?{"X-Bluepic-Password":b}:{}},body:JSON.stringify(v),signal:x.signal});if(!w.ok)throw new Error(`Failed to start rendering: ${w.status}`);return await w.blob()}function dN(e,n,t,i,r,a,l,d,c,p,f){return new Promise(async(m,b)=>{let g,v;function x(T){try{const _=JSON.parse(T);if(_.type==="end"&&(console.log("Video rendering completed",_),g=_.sessionId,v=[_.result]),_.type==="error")throw console.error("Error in video rendering",_),new Error(_.message);_.type!=="end"&&f(_)}catch{}}const w="https://render.services.bluepic.io/video/render",L={cloudflarePagesHostname:n,serial:Xl(i,{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 M=new TextDecoder;for(;;){const{value:T,done:_}=await E.read();if(_)break;S+=M.decode(T,{stream:!0});let k=S.indexOf(`
|
|
118
|
+
Use Save As... to download, then click back to return to this page.`)&&(location.href=_),!0;var N=document.createElement("iframe");document.body.appendChild(N),!k&&/^data:/.test(_)&&(_="data:"+_.replace(/^data:([\w\/\-\+]+)/,d)),N.src=_,setTimeout(function(){document.body.removeChild(N)},333)}if(navigator.msSaveBlob)return navigator.msSaveBlob(x,v);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(_){T(this.result)},w.readAsDataURL(x)}return!0}})})(N3);var lN=N3.exports;const ih=$l(lN);class cN{constructor(){et(this,"cache",new Map);et(this,"browserInfo",this.detectBrowser())}async generateFingerprint(){const n=await this.collectFingerprintData();return await this.hashData(n)}detectBrowser(){const n=navigator.userAgent;let t="unknown",i="";if(n.includes("Firefox")){t="firefox";const a=n.match(/Firefox\/(\d+)/);i=a?a[1]:""}else if(n.includes("Safari")&&!n.includes("Chrome")){t="safari";const a=n.match(/Version\/(\d+)/);i=a?a[1]:""}else if(n.includes("Chrome")){t="chrome";const a=n.match(/Chrome\/(\d+)/);i=a?a[1]:""}else if(n.includes("Edge")){t="edge";const a=n.match(/Edge\/(\d+)/);i=a?a[1]:""}const r=this.detectPrivateMode();return{name:t,version:i,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(i=>{try{t[i]=window.matchMedia(`(${i})`).matches}catch{t[i]=!1}}),t}getPerformanceData(){const n={};try{const t=performance.now();for(let r=0;r<100;r++)Math.random();const i=performance.now();if(n.mathPerformance=i-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 i=n.toDataURL();return this.isCanvasRandomized(i)?this.getAlternativeIdentifier():i}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 i=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:i?t.getParameter(i.UNMASKED_VENDOR_WEBGL):"unknown",renderer:i?t.getParameter(i.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(),i=n.createAnalyser(),r=n.createGain(),a=n.createScriptProcessor(4096,1,1);return r.gain.value=0,t.connect(i),i.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"],i="mmmmmmmmmmlli",r="72px",l=document.createElement("canvas").getContext("2d"),d={};for(const p of t)l.font=`${r} ${p}`,d[p]=l.measureText(i).width;const c=[];for(const p of n)for(const f of t)if(l.font=`${r} ${p}, ${f}`,l.measureText(i).width!==d[f]){c.push(p);break}return c}getPlugins(){const n=[];for(let t=0;t<navigator.plugins.length;t++){const i=navigator.plugins[t];n.push({name:i.name,filename:i.filename,description:i.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,i=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"),i+=25,n.webgl.vendor!=="unavailable"&&n.webgl.vendor!=="error"&&n.webgl.vendor!=="protected"?(t+=20*a,r.workingTechniques.push("webgl")):r.blockedTechniques.push("webgl"),i+=20,n.audio!=="unavailable"&&n.audio.length>10?(t+=15*a,r.workingTechniques.push("audio")):r.blockedTechniques.push("audio"),i+=15,n.fonts.length>5?(t+=15,r.workingTechniques.push("fonts")):r.blockedTechniques.push("fonts"),i+=15,n.plugins.length>0?(t+=10,r.workingTechniques.push("plugins")):r.blockedTechniques.push("plugins"),i+=10,Object.keys(n.browserSpecific).length>0&&(t+=15,r.workingTechniques.push("browserSpecific")),i+=15;const l=Math.min(t/i*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:i}=await this.getConfidenceScore();return{browser:this.browserInfo,fingerprintScore:t,workingTechniques:i.workingTechniques,blockedTechniques:i.blockedTechniques,recommendation:i.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 uN(e,n,t,i,r,a,l,d,c,p,f,m,b){const g=`${e}/api/public/render/template/${r}?${new URLSearchParams({env:t,embedProjectId:String(i),creditSecurityKey:await new cN().generateFingerprint(),context:"widget"}).toString()}`,v={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(g,{method:"POST",headers:{"Content-Type":"application/json",...m?{Authorization:`Bearer ${m}`}:{},...b?{"X-Bluepic-Password":b}:{}},body:JSON.stringify(v),signal:x.signal});if(!w.ok)throw new Error(`Failed to start rendering: ${w.status}`);return await w.blob()}function dN(e,n,t,i,r,a,l,d,c,p,f){return new Promise(async(m,b)=>{let g,v;function x(T){try{const _=JSON.parse(T);if(_.type==="end"&&(console.log("Video rendering completed",_),g=_.sessionId,v=[_.result]),_.type==="error")throw console.error("Error in video rendering",_),new Error(_.message);_.type!=="end"&&f(_)}catch{}}const w="https://render.services.bluepic.io/video/render",L={cloudflarePagesHostname:n,serial:Xl(i,{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 M=new TextDecoder;for(;;){const{value:T,done:_}=await E.read();if(_)break;S+=M.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
|
|