@zip.js/zip.js 2.14.0 → 2.14.1
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/BENCHMARKS.md +342 -454
- package/deno.json +1 -1
- package/dist/zip-core-external.js +262 -81
- package/dist/zip-core-external.min.js +1 -1
- package/dist/zip-core.js +260 -74
- package/dist/zip-core.min.js +1 -1
- package/dist/zip-fs-core-external.js +262 -81
- package/dist/zip-fs-core-external.min.js +1 -1
- package/dist/zip-fs-core.js +260 -74
- package/dist/zip-fs-core.min.js +1 -1
- package/dist/zip-fs-external.js +262 -81
- package/dist/zip-fs-external.min.js +1 -1
- package/dist/zip-fs-native.js +262 -76
- package/dist/zip-fs-native.min.js +1 -1
- package/dist/zip-fs.js +266 -85
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-legacy.js +262 -76
- package/dist/zip-legacy.min.js +1 -1
- package/dist/zip-module.wasm +0 -0
- package/dist/zip-native.js +262 -76
- package/dist/zip-native.min.js +1 -1
- package/dist/zip-web-worker-native.js +1 -1
- package/dist/zip-web-worker.js +1 -1
- package/dist/zip.js +266 -85
- package/dist/zip.min.js +1 -1
- package/index-native.cjs +262 -76
- package/index-native.min.js +1 -1
- package/index.cjs +266 -85
- package/index.min.js +1 -1
- package/lib/core/codec-worker.js +6 -5
- package/lib/core/streams/codecs/aes-hmac-sha1.js +194 -56
- package/lib/core/streams/zlib-wasm/zlib-streams.js +2 -7
- package/lib/core/streams/zlib-wasm/zlib-streams.wasm +0 -0
- package/lib/core/version.js +1 -1
- package/lib/core/web-worker-inline-native.js +1 -1
- package/lib/core/web-worker-inline-wasm.js +1 -1
- package/lib/core/zip-reader.js +53 -6
- package/lib/core/zlib-streams-inline.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const t=new Uint8Array(288);t.fill(8,0,144),t.fill(9,144,256),t.fill(7,256,280),t.fill(8,280,288),new Uint8Array(30).fill(5);const e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n=t=>t({workerURI:t=>{const n="text/javascript";let s='!function(t){"function"==typeof define&&define.amd?define(t):t()}(function(){"use strict";const{Array:t,Object:n,Number:e,Math:o,Error:s,Uint8Array:r,Uint16Array:c,Uint32Array:i,Int32Array:a,Map:f,DataView:u,Promise:w,TextEncoder:l,crypto:h,postMessage:p,TransformStream:d,ReadableStream:y,WritableStream:m,CompressionStream:S,DecompressionStream:g}=self,v=void 0,b="undefined",z="function",k=new r,C=[[],[],[],[],[],[],[],[]];for(let t=0;t<256;t++){let n=t;for(let t=0;t<8;t++)n=1&n?n>>>1^3988292384:n>>>1;C[0][t]=n}for(let t=0;t<256;t++)for(let n=1;n<8;n++){const e=C[n-1][t];C[n][t]=e>>>8^C[0][255&e]}const[I,A,x,M,P,D,F,E]=C;class R{constructor(t){this.o=t||-1}append(t){let n=0|this.o;const e=0|t.length;let o=0;if(e>=8&&t.buffer){const s=new u(t.buffer,t.byteOffset,e),r=e-8;for(;o<=r;o+=8){const t=n^s.getInt32(o,!0),e=s.getInt32(o+4,!0);n=E[255&t]^F[t>>>8&255]^D[t>>>16&255]^P[t>>>24&255]^M[255&e]^x[e>>>8&255]^A[e>>>16&255]^I[e>>>24&255]}}for(;o<e;o++)n=n>>>8^I[255&(n^t[o])];this.o=n}get(){return~this.o}}class U extends d{constructor(){let t;const n=new R;super({transform(t,e){n.append(t),e.enqueue(t)},flush(){const e=new r(4);new u(e.buffer).setUint32(0,n.get()),t.value=e}}),t=this}}function B(t,n){const e=new r(t.length+n.length);return e.set(t),e.set(n,t.length),e}function T(t){return new u(t.buffer,t.byteOffset,t.byteLength)}const V=64,W=20,j=new r([128]),K=new r(1),O=new a([1732584193,4023233417,2562383102,271733878,3285377520]),H=new r(256),L=new a(256),N=new a(256),q=new a(256),G=new a(256);let J=!1;function Q(t,n){!function(){if(!J){let t=1,n=1;do{t=255&(t^t<<1^(128&t?27:0)),n=255&(n^n<<1),n=255&(n^n<<2),n=255&(n^n<<4),128&n&&(n^=9),H[t]=255&(n^(n<<1|n>>7)^(n<<2|n>>6)^(n<<3|n>>5)^(n<<4|n>>4)^99)}while(1!=t);H[0]=99;for(let t=0;t<256;t++){const n=H[t],e=Z(n),o=e<<24|n<<16|n<<8|e^n;L[t]=o,N[t]=o>>>8|o<<24,q[t]=o>>>16|o<<16,G[t]=o>>>24|o<<8}J=!0}}();const e=new a(60),o=function(t,n){const e=t.length>>2,o=e+6,s=4*(o+1);let r=1;for(let o=0;o<e;o++)n[o]=t[4*o]<<24|t[4*o+1]<<16|t[4*o+2]<<8|t[4*o+3];for(let t=e;t<s;t++){let o=n[t-1];t%e==0?(o=Y(o<<8|o>>>24)^r<<24,r=Z(r)):e>6&&t%e==4&&(o=Y(o)),n[t]=n[t-e]^o}return o}(t,e),s=new r(16),c=new a(4),i=X(n);return{process(t,n){n&&i.update(t,0,t.length),function(t){const n=new u(t.buffer,t.byteOffset,t.byteLength),e=t.length;let o=0;for(;o+16<=e;o+=16)f(),n.setInt32(o,n.getInt32(o)^c[0]),n.setInt32(o+4,n.getInt32(o+4)^c[1]),n.setInt32(o+8,n.getInt32(o+8)^c[2]),n.setInt32(o+12,n.getInt32(o+12)^c[3]);if(o<e){f();for(let n=0;o<e;o++,n++)t[o]^=c[n>>2]>>>24-8*(3&n)}}(t),n||i.update(t,0,t.length)},digest:()=>i.digest()};function f(){for(let t=0;t<16&&(s[t]++,0===s[t]);t++);let t=(s[0]<<24|s[1]<<16|s[2]<<8|s[3])^e[0],n=(s[4]<<24|s[5]<<16|s[6]<<8|s[7])^e[1],r=(s[8]<<24|s[9]<<16|s[10]<<8|s[11])^e[2],i=(s[12]<<24|s[13]<<16|s[14]<<8|s[15])^e[3],a=4;for(let s=1;s<o;s++,a+=4){const o=L[t>>>24]^N[n>>>16&255]^q[r>>>8&255]^G[255&i]^e[a],s=L[n>>>24]^N[r>>>16&255]^q[i>>>8&255]^G[255&t]^e[a+1],c=L[r>>>24]^N[i>>>16&255]^q[t>>>8&255]^G[255&n]^e[a+2],f=L[i>>>24]^N[t>>>16&255]^q[n>>>8&255]^G[255&r]^e[a+3];t=o,n=s,r=c,i=f}c[0]=(H[t>>>24]<<24|H[n>>>16&255]<<16|H[r>>>8&255]<<8|H[255&i])^e[a],c[1]=(H[n>>>24]<<24|H[r>>>16&255]<<16|H[i>>>8&255]<<8|H[255&t])^e[a+1],c[2]=(H[r>>>24]<<24|H[i>>>16&255]<<16|H[t>>>8&255]<<8|H[255&n])^e[a+2],c[3]=(H[i>>>24]<<24|H[t>>>16&255]<<16|H[n>>>8&255]<<8|H[255&r])^e[a+3]}}function X(t){const n=function(){const t=new a(O),n=new a(80),e=new r(V),s=new u(e.buffer),c=new r(8);let i=0,f=0;return{update:w,digest:function(){const n=8*f,e=o.floor(n/4294967296),s=n>>>0;for(w(j,0,1);56!=i;)w(K,0,1);c[0]=e>>>24,c[1]=e>>>16,c[2]=e>>>8,c[3]=e,c[4]=s>>>24,c[5]=s>>>16,c[6]=s>>>8,c[7]=s,w(c,0,8);const a=new r(W),l=new u(a.buffer);for(let n=0;n<t.length;n++)l.setInt32(4*n,t[n]);return t.set(O),i=0,f=0,a}};function w(t,n,o){const r=n+o;if(f+=o,i){for(;n<r&&i<V;)e[i++]=t[n++];i==V&&(l(s,0),i=0)}if(n+V<=r){const e=new u(t.buffer,t.byteOffset,t.byteLength);for(;n+V<=r;n+=V)l(e,n)}for(;n<r;)e[i++]=t[n++]}function l(e,o){for(let t=0;t<16;t++)n[t]=e.getInt32(o+4*t);for(let t=16;t<80;t++){const e=n[t-3]^n[t-8]^n[t-14]^n[t-16];n[t]=e<<1|e>>>31}let s,r=t[0],c=t[1],i=t[2],a=t[3],f=t[4];for(let t=0;t<20;t++)s=(r<<5|r>>>27)+(c&i|~c&a)+f+1518500249+n[t]|0,f=a,a=i,i=c<<30|c>>>2,c=r,r=s;for(let t=20;t<40;t++)s=(r<<5|r>>>27)+(c^i^a)+f+1859775393+n[t]|0,f=a,a=i,i=c<<30|c>>>2,c=r,r=s;for(let t=40;t<60;t++)s=(r<<5|r>>>27)+(c&i|c&a|i&a)+f+2400959708+n[t]|0,f=a,a=i,i=c<<30|c>>>2,c=r,r=s;for(let t=60;t<80;t++)s=(r<<5|r>>>27)+(c^i^a)+f+3395469782+n[t]|0,f=a,a=i,i=c<<30|c>>>2,c=r,r=s;t[0]=t[0]+r|0,t[1]=t[1]+c|0,t[2]=t[2]+i|0,t[3]=t[3]+a|0,t[4]=t[4]+f|0}}(),e=new r(V),s=new r(V);t.length>V&&(n.update(t,0,t.length),t=n.digest());for(let n=0;n<V;n++){const o=n<t.length?t[n]:0;e[n]=54^o,s[n]=92^o}return n.update(e,0,V),{update(t,e,o){n.update(t,e,o)},digest(){const t=n.digest();n.update(s,0,V),n.update(t,0,W);const o=n.digest();return n.update(e,0,V),o}}}function Y(t){return H[t>>>24]<<24|H[t>>>16&255]<<16|H[t>>>8&255]<<8|H[255&t]}function Z(t){return 255&(t<<1^27*(t>>7))}const $=typeof h!=b&&typeof h.getRandomValues==z,_="Invalid password",tt="zipjs-abort-check-password";function nt(t){if($)return h.getRandomValues(t);throw new s("Crypto API not supported")}const et={name:"PBKDF2"},ot=n.assign({hash:{name:"HMAC"}},et),st=n.assign({iterations:1e3,hash:{name:"SHA-1"}},et),rt=["deriveBits"],ct=[8,12,16],it=[16,24,32],at=10,ft=typeof h!=b,ut=ft&&h.subtle;let wt=ft&&typeof ut!=b&&typeof ut.importKey==z&&typeof ut.deriveBits==z,lt=Q;class ht extends d{constructor({password:t,rawPassword:n,encryptionStrength:e,checkPasswordOnly:o,checkAuthenticationCode:c=!0}){super({start(){dt(this,t,n,e)},async transform(t,n){const e=this,{password:c,strength:i,l:a,ready:f}=e;c?(await async function(t,n,e,o){const r=await St(t,n,e,vt(o,0,ct[n])),c=vt(o,ct[n]);if(r[0]!=c[0]||r[1]!=c[1])throw mt(t),new s(_)}(e,i,c,vt(t,0,ct[i]+2)),t=vt(t,ct[i]+2),o?(mt(e),n.error(new s(tt))):a()):await f;const u=new r(t.length-at-(t.length-at)%16);n.enqueue(yt(e,t,u,0,at,!0))},async flush(t){const{h:n,m:e,ready:o}=this;if(n){await o;const i=vt(e,e.length-at),a=new r(vt(e,0,e.length-at));n.process(a,!0);const f=n.digest();let u=e.length<at?1:0;for(let t=0;t<at;t++)u|=f[t]^i[t];if(u&&c)throw new s("Invalid authentication code");t.enqueue(a)}},cancel(){mt(this)}})}}class pt extends d{constructor({password:t,rawPassword:n,encryptionStrength:e}){super({start(){dt(this,t,n,e)},async transform(t,n){const e=this,{password:o,strength:s,l:c,ready:i}=e;let a=k;o?(a=await async function(t,n,e){const o=nt(new r(ct[n]));return B(o,await St(t,n,e,o))}(e,s,o),c()):await i;const f=new r(a.length+t.length-t.length%16);f.set(a,0),n.enqueue(yt(e,t,f,a.length,0,!1))},async flush(t){const{h:n,m:e,ready:o}=this;if(n){await o;const s=new r(e);n.process(s,!1);const c=vt(n.digest(),0,at);t.enqueue(B(s,c))}},cancel(){mt(this)}})}}function dt(t,e,o,s){n.assign(t,{ready:new w(n=>t.l=n),password:gt(e,o),strength:s-1,m:k})}function yt(t,n,e,o,s,c){const{h:i,m:a}=t;a.length&&(n=B(a,n));const f=n.length-s,u=f-f%16;if(e=function(t,n){if(n&&n>t.length){const e=t;(t=new r(n)).set(e,0)}return t}(e,o+u),u){const t=vt(e,o,o+u);t.set(vt(n,0,u)),i.process(t,c)}return t.m=vt(n,u),e}function mt({h:t}){t&&t.dispose&&t.dispose()}async function St(t,e,s,c){t.password=null;const i=it[e],a=await async function(t,e,s){if(wt)try{const o=await ut.importKey("raw",t,ot,!1,rt);return new r(await ut.deriveBits(n.assign({salt:e},st),o,8*s))}catch{wt=!1}return function(t,n,e,s){const c=X(t),i=new r(s),a=new r(n.length+4),f=new u(a.buffer);a.set(n);for(let t=1,e=0;e<s;t++,e+=W){f.setUint32(n.length,t),c.update(a,0,a.length);let r=c.digest();const u=r.slice();for(let t=1;t<1e3;t++){c.update(r,0,W),r=c.digest();for(let t=0;t<W;t++)u[t]^=r[t]}i.set(u.subarray(0,o.min(W,s-e)),e)}return i}(t,e,0,s)}(s,c,2*i+2);return t.h=lt(vt(a,0,i),vt(a,i,2*i)),vt(a,2*i)}function gt(t,n){return n===v?function(t){if(typeof l==b){t=unescape(encodeURIComponent(t));const n=new r(t.length);for(let e=0;e<n.length;e++)n[e]=t.charCodeAt(e);return n}return(new l).encode(t)}(t):n}function vt(t,n,e){return t.subarray(n,e)}class bt extends d{constructor({password:t,rawPassword:n,passwordVerification:e,checkPasswordOnly:o}){super({start(){kt(this,t,n,e)},transform(t,n){const e=this;if(e.password||e.rawPassword){const n=Ct(e,t.subarray(0,12));if(e.password=e.rawPassword=null,0!=(n[11]^e.passwordVerification))throw new s(_);t=t.subarray(12)}o?n.error(new s(tt)):n.enqueue(Ct(e,t))}})}}class zt extends d{constructor({password:t,rawPassword:n,passwordVerification:e}){super({start(){kt(this,t,n,e)},transform(t,n){const e=this;let o,s;if(e.password||e.rawPassword){e.password=e.rawPassword=null;const n=nt(new r(12));n[11]=e.passwordVerification,o=new r(t.length+n.length),o.set(It(e,n),0),s=12}else o=new r(t.length),s=0;o.set(It(e,t),s),n.enqueue(o)}})}}function kt(t,e,o,s){n.assign(t,{password:e,rawPassword:o,passwordVerification:s}),function(t,e,o){const s=[305419896,591751049,878082192];if(n.assign(t,{keys:s,S:new R(s[0]),v:new R(s[2])}),o)for(let n=0;n<o.length;n++)At(t,o[n]);else for(let n=0;n<e.length;n++)At(t,e.charCodeAt(n))}(t,e,o)}function Ct(t,n){const e=new r(n.length);for(let o=0;o<n.length;o++)e[o]=xt(t)^n[o],At(t,e[o]);return e}function It(t,n){const e=new r(n.length);for(let o=0;o<n.length;o++)e[o]=xt(t)^n[o],At(t,n[o]);return e}function At(t,n){let[,e]=t.keys;t.S.append([n]);const s=~t.S.get();e=Pt(o.imul(Pt(e+Mt(s)),134775813)+1),t.v.append([e>>>24]);const r=~t.v.get();t.keys=[s,e,r]}function xt(t){const n=2|t.keys[2];return Mt(o.imul(n,1^n)>>>8)}function Mt(t){return 255&t}function Pt(t){return 4294967295&t}function Dt(t){if(t instanceof y)return t;const n=t.getReader();return new y({async pull(t){const{value:e,done:o}=await n.read();o?t.close():t.enqueue(e)},cancel:t=>n.cancel(t)})}const Ft=new f;function Et(t){return Ft.get(t)}const Rt="Invalid uncompressed size",Ut="deflate-raw",Bt="gzip",Tt=[31,139,8];class Vt extends d{constructor(t,{chunkSize:n,CompressionStreamFallback:e,CompressionStream:o}){super({});const{compressed:s,encrypted:r,useCompressionStream:c,zipCrypto:i,computeCrc32:a,level:f,deflate64:w,format:l,compressionMethod:h,inputSize:p}=t,d=this;let y,m,S,g=super.readable;const v=l&&Et(l),b=a&&s&&!w&&!v&&(!r||i)&&Boolean(c&&o);if(r&&!i||!a||b||(y=new U,g=Nt(g,y)),s)if(v)g=qt(g,Ht(v.CompressionStream,l,{level:f,chunkSize:n,compressionMethod:h,uncompressedSize:p}));else if(b)S=new Wt,g=qt(g,new o(Bt)),g=Nt(g,S);else try{g=Lt(g,c,{level:f,chunkSize:n},o,e)}catch(t){let n;try{n=new o(Bt)}catch{throw t}g=qt(g,n),g=Nt(g,new Wt)}r&&(i?g=Nt(g,new zt(t)):(m=new pt(t),g=Nt(g,m))),Ot(d,g,()=>{r&&!i||!a||(d.crc32=b?S.crc32:new u(y.value.buffer).getUint32(0))})}}class Wt extends d{constructor(){let t,n=10,e=new r(0);super({transform(t,s){if(n){const e=o.min(n,t.length);if(n-=e,!(t=t.subarray(e)).length)return}const r=e.length+t.length;if(r<=8)return void(e=B(e,t));const c=r-8,i=o.min(c,e.length);s.enqueue(B(e.subarray(0,i),t.subarray(0,c-i))),e=B(e.subarray(i),t.subarray(c-i))},flush(){const n=T(e);t.crc32=n.getUint32(0,!0),t.uncompressedSize=n.getUint32(4,!0)}}),t=this}}class jt extends d{constructor(t,{chunkSize:n,DecompressionStreamFallback:e,DecompressionStream:o}){super({});const{zipCrypto:c,encrypted:i,checkCrc32:a,crc32:f,compressed:l,useCompressionStream:h,deflate64:p,format:m,compressionMethod:S,rawBitFlag:g,outputSize:b}=t;let z,k,C=super.readable;if(i&&(c?C=Nt(C,new bt(t)):(k=new ht(t),C=Nt(C,k))),l){const t=m&&Et(m);if(t)C=qt(C,Ht(t.DecompressionStream,m,{chunkSize:n,compressionMethod:S,rawBitFlag:g,uncompressedSize:b}));else try{C=Lt(C,h,{chunkSize:n,deflate64:p},o,e)}catch(t){if(p||b===v)throw t;let n;try{n=new o(Bt)}catch{throw t}C=function(t,n,e){const o=new R;let c,i,a,f=0,u=!1;const l=new w((t,n)=>{i=t,a=n});l.catch(()=>{}),e||i();const h=new d({start(t){const n=new r(10);n.set(Tt),t.enqueue(n)},transform(t,n){n.enqueue(t)},async flush(t){u=!0,y();try{await l}finally{m()}const n=new r(8),s=T(n);s.setUint32(0,o.get(),!0),s.setUint32(4,e,!0),t.enqueue(n)},cancel(t){a(t)}}),p=new d({transform(t,n){o.append(t),f+=t.length,f>=e?i():u&&y(),n.enqueue(t)},cancel(t){a(t)}});return t=Nt(t,h),Nt(t=qt(t,n),p);function y(){m(),c=setTimeout(()=>a(new s(Rt)),5e3)}function m(){clearTimeout(c)}}(C,n,b)}C=function(t){const n=t.getReader();return new y({async pull(t){let e;try{e=await n.read()}catch(t){if(t&&t.message)throw t;const n=new s("Invalid compressed data");throw n.cause=t,n}const{value:o,done:r}=e;r?t.close():t.enqueue(o)},cancel:t=>n.cancel(t)})}(C)}a&&(z=new U,C=Nt(C,z)),Ot(this,C,()=>{if(a){const t=new u(z.value.buffer);if(f!=t.getUint32(0,!1))throw new s("Invalid CRC32")}})}}const Kt=new f;function Ot(t,e,o){e=Nt(e,new d({flush:o})),n.defineProperty(t,"readable",{get:()=>e})}function Ht(t,n,e){if(!t)throw new s("Compression method not supported");return new t(n,e)}function Lt(t,n,e,o,s){const r=n&&o?o:s||o,c=e.deflate64?"deflate64-raw":Ut;let i;try{i=new r(c,e)}catch(t){if(!n||!s||r==s)throw t;i=new s(c,e)}return qt(t,i)}function Nt(t,n){return Dt(t).pipeThrough(n)}function qt(t,n){const e=n.writable.getWriter(),o=t.getReader();return async function(){try{for(;;){await e.ready;const t=await o.read();if(t.done){await e.close();break}await e.write(t.value)}}catch(t){await async function(t,n){try{await t.abort(n)}catch{}}(e,t),await async function(t,n){try{await t.cancel(n)}catch{}}(o,t)}}(),n.readable}const Gt="data",Jt="deflate";class Qt extends d{constructor(t,e){super({});const o=this,{codecType:r}=t;let c;r.startsWith(Jt)?c=Vt:r.startsWith("inflate")&&(c=jt),o.outputSize=0;let i=0;const a=new c(t,e),f=super.readable,u=new d({transform(t,n){t&&t.length&&(i+=t.length,n.enqueue(t))},flush(){n.assign(o,{inputSize:i})}}),w=new d({transform(n,e){if(n&&n.length&&(e.enqueue(n),o.outputSize+=n.length,t.outputSize!==v&&o.outputSize>t.outputSize))throw new s(Rt)},flush(){const{crc32:t}=a;n.assign(o,{crc32:t,inputSize:i})}});n.defineProperty(o,"readable",{get:()=>f.pipeThrough(u).pipeThrough(a).pipeThrough(w)})}}class Xt extends d{constructor(t){const o=[];let s=0,c=0;function i(){const n=new r(t);let e=0;for(;e<t;){const s=o[0],r=t-e;s.length<=r?(n.set(s,e),e+=s.length,o.shift()):(n.set(s.subarray(0,r),e),o[0]=s.subarray(r),e+=r)}return s-=t,n}(!e.isFinite(t)||t<1)&&(t=65536),super({transform(n,e){for(o.push(n),s+=n.length;s>t;)c+=t,e.enqueue(i())},flush(t){s&&(c+=s,t.enqueue(function(t,n){const e=new r(n);let o=0;for(const n of t)e.set(n,o),o+=n.length;return e}(o,s)))}}),n.defineProperty(this,"outputSize",{get:()=>c})}}let Yt=2;try{typeof navigator!=b&&navigator.hardwareConcurrency&&(Yt=navigator.hardwareConcurrency)}catch{}function Zt(t){return Boolean(t)&&"object"==typeof t}const $t=new f,_t=new f,tn=function(){try{return structuredClone(new s)instanceof s}catch{return!1}}();let nn=0;async function en(t){let n,r,c;try{const{options:i,config:a}=t;if(i.format)try{await async function(t,n){!Ft.has(t)&&n&&function(t,n){const{CompressionStream:e,DecompressionStream:o}=n;if(typeof e!=z&&typeof o!=z)throw new s("Invalid codec module");Ft.set(t,{CompressionStream:e,DecompressionStream:o})}(t,await(import(n)))}(i.format,i.codecURI)}catch(t){if(Zt(t))try{t.codecImportFailed=!0}catch{}throw t}if(a.CompressionStream=self.CompressionStream,a.DecompressionStream=self.DecompressionStream,i.compressed&&!i.format)if(i.useCompressionStream){if(!function(t,n){if(!t)return!1;let e=Kt.get(t);e||(e=new f,Kt.set(t,e));let o=e.get(n);if(o===v){try{new t(n),o=!0}catch{o=!1}e.set(n,o)}return o}(i.codecType.startsWith(Jt)?a.CompressionStream:a.DecompressionStream,Ut))try{await self.initModule(t.config)}catch{}}else try{await self.initModule(t.config)}catch{i.useCompressionStream=!0}if(i.encrypted&&!i.zipCrypto)try{await self.initModule(t.config)}catch{}!a.CompressionStreamFallback&&a.CompressionStreamZlib&&(a.CompressionStreamFallback=a.CompressionStreamZlib),!a.DecompressionStreamFallback&&a.DecompressionStreamZlib&&(a.DecompressionStreamFallback=a.DecompressionStreamZlib);const u={highWaterMark:1},l=t.readable?Dt(t.readable):new y({async pull(t){const n=new w(t=>$t.set(nn,t));on({type:"pull",messageId:nn}),nn=(nn+1)%e.MAX_SAFE_INTEGER;const{value:o,done:s}=await n;t.enqueue(o),s&&t.close()}},u);c=t.writable?function(t){if(t instanceof m)return t;const n=t.getWriter();return new m({write:t=>n.write(t),close:()=>n.close(),abort:t=>n.abort(t)})}(t.writable):new m({async write(t){let n;const o=new w(t=>n=t);_t.set(nn,n),on({type:Gt,value:t,messageId:nn}),nn=(nn+1)%e.MAX_SAFE_INTEGER,await o}},u),n=new Qt(i,a),r=new Xt(function(t){return s="string"==typeof(n=s=t.chunkSize)&&n.trim()?e(n):n,e.isInteger(s)&&s>=1?o.max(s,64):65536;var n,s}(a)),await l.pipeThrough(n).pipeThrough(r).pipeTo(c,{preventClose:!0,preventAbort:!0}),await c.getWriter().close();const{crc32:h,inputSize:p,outputSize:d}=n;on({type:"close",result:{crc32:h,inputSize:p,outputSize:d}})}catch(t){const n=r?r.outputSize:0;if(Zt(t))try{t.outputSize=n}catch{}if(c&&!c.locked)try{await c.getWriter().close()}catch{}sn(t,n)}}function on(t){const{value:n}=t;if(n)if(n.length)try{t.value=(e=n,e.byteOffset||e.byteLength!=e.buffer.byteLength?new r(e):e).buffer,p(t,[t.value])}catch{p(t)}else p(t);else p(t);var e}function sn(t,n){const{message:e,stack:o,code:r,name:c,outputSize:i,cause:a,codecImportFailed:f}=function(t=new s("Unknown error")){return Zt(t)?t:new s(String(t))}(t),u={message:e,stack:o,code:r,name:c,outputSize:i===v?n:i};if(a&&(u.cause={name:a.name,message:a.message}),f&&(u.codecImportFailed=!0),tn)try{return void p({error:u,errorValue:{value:t}})}catch{}p({error:u})}addEventListener("message",({data:t})=>{const{type:n,messageId:e,value:o,done:s}=t;try{if("start"==n&&en(t),n==Gt){const t=$t.get(e);$t.delete(e),t({value:o||new r,done:s})}if("ack"==n){const t=_t.get(e);_t.delete(e),t()}}catch(t){sn(t)}}),p({type:"ready"});const rn="deflate",cn="deflate-raw",an="deflate64-raw",fn="gzip";let un,wn,ln,hn,pn;function dn(t,n,e={}){if(!un){const t=new s("WASM module not loaded");throw t.cause=pn,t}const c="number"==typeof e.level?e.level:-1,i="number"==typeof e.outBuffer?e.outBuffer:65536,a="number"==typeof e.inBufferSize?e.inBufferSize:65536;return new d({start(){try{let e;if(this.C=wn(i),this.in=wn(a),this.inBufferSize=a,!this.C||!this.in)throw new s("allocation failed");if(this.I=new r(i),t?(this.A=un.deflate_process,this.M=un.deflate_last_consumed,this.P=un.deflate_end,this.D=un.deflate_new(),e=n===fn?un.deflate_init_gzip(this.D,c):n===cn?un.deflate_init_raw(this.D,c):un.deflate_init(this.D,c)):n===an?(this.A=un.inflate9_process,this.M=un.inflate9_last_consumed,this.P=un.inflate9_end,this.D=un.inflate9_new(),e=un.inflate9_init_raw(this.D)):(this.A=un.inflate_process,this.M=un.inflate_last_consumed,this.P=un.inflate_end,this.D=un.inflate_new(),e=n===cn?un.inflate_init_raw(this.D):n===fn?un.inflate_init_gzip(this.D):un.inflate_init(this.D)),0!==e)throw new s("init failed:"+e)}catch(t){throw f(this),t}},transform(t,n){try{const e=t,c=new r(hn.buffer),a=this.A,f=this.M,u=this.C,w=this.I;let l=0;for(;l<e.length;){const t=o.min(e.length-l,32768);if((!this.in||this.inBufferSize<t)&&(this.in&&ln&&(ln(this.in),this.in=0),this.in=wn(t),this.inBufferSize=t,!this.in))throw new s("allocation failed");c.set(e.subarray(l,l+t),this.in);const r=a(this.D,this.in,t,u,i,0),h=r>>24&255,p=128&h?h-256:h;if(p<0)throw new s("process error:"+p);const d=16777215&r;d&&(w.set(c.subarray(u,u+d),0),n.enqueue(w.slice(0,d)));const y=f(this.D);if(0===y&&0===d)break;l+=y}}catch(t){f(this),n.error(t)}},flush(t){try{const n=new r(hn.buffer),e=this.A,o=this.C,c=this.I;for(;;){const r=e(this.D,0,0,o,i,4),a=r>>24&255,f=128&a?a-256:a;if(f<0)throw new s("process error:"+f);const u=16777215&r;if(u&&(c.set(n.subarray(o,o+u),0),t.enqueue(c.slice(0,u))),1===a||0===u)break}}catch(n){t.error(n)}finally{const n=f(this);0!==n&&t.error(new s("end error:"+n))}},cancel(){f(this)}});function f(t){let n=0;return t.D&&t.P&&(n=t.P(t.D)),t.D=0,t.in&&ln&&ln(t.in),t.in=0,t.C&&ln&&ln(t.C),t.C=0,n}}class yn{constructor(t=rn,n){return dn(!0,t,n)}}class mn{constructor(t=rn,n){return dn(!1,t,n)}}yn.F=!0,mn.F=!0,yn.R=[rn,cn,fn],mn.R=[rn,cn,fn,an];const Sn=65536;let gn,vn;function bn(t){return new r(t.memory.buffer)}let zn=!1;!function(t={}){const{init:n,U:e}=t,o=t.CompressionStreamFallback||t.CompressionStreamZlib,s=t.DecompressionStreamFallback||t.DecompressionStreamZlib;e&&(lt=e||Q),self.initModule=async t=>{n&&await n(t),o&&(t.CompressionStreamFallback=o),s&&(t.DecompressionStreamFallback=s)}}({CompressionStreamFallback:yn,DecompressionStreamFallback:mn,U:function(t,n){const e=gn;let o=e?function(t,n,e){vn||(vn=t.malloc(Sn));const o=vn?t.aes_hmac_new():0;if(o){const s=bn(t);if(s.set(n,vn),s.set(e,vn+n.length),t.aes_hmac_init(o,vn,n.length,vn+n.length,e.length))return t.aes_hmac_end(o,0),0}return o}(e,t,n):0;if(!o)return Q(t,n);const s=vn;return{process(t,n){for(let r=0;r<t.length;r+=Sn){const c=t.subarray(r,r+Sn),i=bn(e);i.set(c,s),e.aes_hmac_process(o,s,c.length,n?1:0),c.set(i.subarray(s,s+c.length))}},digest:()=>(e.aes_hmac_end(o,s),o=0,bn(e).slice(s,s+20)),dispose(){o&&(e.aes_hmac_end(o,0),o=0)}}},init:t=>async function(t,{baseURI:n}){if(!zn)try{await async function(t,n){let e,o;try{try{o=new URL(t,n)}catch{}const s=await fetch(o);e=await s.arrayBuffer()}catch(n){if(!t.startsWith("data:application/wasm;base64,"))throw n;e=function(t){const n=t.split(",")[1],e=atob(n),o=e.length,s=new r(o);for(let t=0;t<o;++t)s[t]=e.charCodeAt(t);return s.buffer}(t)}const c=await WebAssembly.instantiate(e);var i;(function(t){if(un=t,({malloc:wn,free:ln,memory:hn}=un),"function"!=typeof wn||"function"!=typeof ln||!hn)throw un=wn=ln=hn=null,new s("Invalid WASM module")})(c.instance.exports),typeof(i=c.instance.exports).aes_hmac_new==z&&(gn=i,vn=0)}(t,n),zn=!0}catch(t){throw function(t){pn=t}(t),t}}(t.wasmURI,t)})});\n';if("string"==typeof s&&(s=(new TextEncoder).encode(s)),t){const t=new Blob([s],{type:n});return URL.createObjectURL(t)}return"data:"+n+";base64,"+function(t){let n="";const s=t.length;let o=0;for(;o+2<s;o+=3){const s=t[o]<<16|t[o+1]<<8|t[o+2];n+=e[s>>18&63]+e[s>>12&63]+e[s>>6&63]+e[63&s]}const r=s-o;if(1===r){const s=t[o]<<16;n+=e[s>>18&63]+e[s>>12&63]+"=="}else if(2===r){const s=t[o]<<16|t[o+1]<<8;n+=e[s>>18&63]+e[s>>12&63]+e[s>>6&63]+"="}return n}(s)}});export{n as configureWebWorker};
|
|
1
|
+
const t=new Uint8Array(288);t.fill(8,0,144),t.fill(9,144,256),t.fill(7,256,280),t.fill(8,280,288),new Uint8Array(30).fill(5);const n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",e=t=>t({workerURI:t=>{const e="text/javascript";let s='!function(t){"function"==typeof define&&define.amd?define(t):t()}(function(){"use strict";const{Array:t,Object:n,Number:e,Math:o,Error:s,Uint8Array:r,Uint16Array:c,Uint32Array:i,Int32Array:a,Map:f,DataView:u,Promise:w,TextEncoder:l,crypto:h,postMessage:p,TransformStream:d,ReadableStream:y,WritableStream:m,CompressionStream:S,DecompressionStream:g}=self,v=void 0,b="undefined",z="function",k=new r,C=[[],[],[],[],[],[],[],[]];for(let t=0;t<256;t++){let n=t;for(let t=0;t<8;t++)n=1&n?n>>>1^3988292384:n>>>1;C[0][t]=n}for(let t=0;t<256;t++)for(let n=1;n<8;n++){const e=C[n-1][t];C[n][t]=e>>>8^C[0][255&e]}const[I,A,x,M,P,D,F,E]=C;class R{constructor(t){this.o=t||-1}append(t){let n=0|this.o;const e=0|t.length;let o=0;if(e>=8&&t.buffer){const s=new u(t.buffer,t.byteOffset,e),r=e-8;for(;o<=r;o+=8){const t=n^s.getInt32(o,!0),e=s.getInt32(o+4,!0);n=E[255&t]^F[t>>>8&255]^D[t>>>16&255]^P[t>>>24&255]^M[255&e]^x[e>>>8&255]^A[e>>>16&255]^I[e>>>24&255]}}for(;o<e;o++)n=n>>>8^I[255&(n^t[o])];this.o=n}get(){return~this.o}}class U extends d{constructor(){let t;const n=new R;super({transform(t,e){n.append(t),e.enqueue(t)},flush(){const e=new r(4);new u(e.buffer).setUint32(0,n.get()),t.value=e}}),t=this}}function B(t,n){const e=new r(t.length+n.length);return e.set(t),e.set(n,t.length),e}function T(t){return new u(t.buffer,t.byteOffset,t.byteLength)}const V=64,W=20,j=new r([128]),K=new r(1),O=new a([1732584193,4023233417,2562383102,271733878,3285377520]),H=new r(256),L=new a(256),N=new a(256),q=new a(256),G=new a(256);let J=!1;function Q(t,n){!function(){if(!J){let t=1,n=1;do{t=255&(t^t<<1^(128&t?27:0)),n=255&(n^n<<1),n=255&(n^n<<2),n=255&(n^n<<4),128&n&&(n^=9),H[t]=255&(n^(n<<1|n>>7)^(n<<2|n>>6)^(n<<3|n>>5)^(n<<4|n>>4)^99)}while(1!=t);H[0]=99;for(let t=0;t<256;t++){const n=H[t],e=$(n),o=e<<24|n<<16|n<<8|e^n;L[t]=o,N[t]=o>>>8|o<<24,q[t]=o>>>16|o<<16,G[t]=o>>>24|o<<8}J=!0}}();const e=new a(60),o=function(t,n){const e=t.length>>2,o=e+6,s=4*(o+1);let r=1;for(let o=0;o<e;o++)n[o]=t[4*o]<<24|t[4*o+1]<<16|t[4*o+2]<<8|t[4*o+3];for(let t=e;t<s;t++){let o=n[t-1];t%e==0?(o=Y(o<<8|o>>>24)^r<<24,r=$(r)):e>6&&t%e==4&&(o=Y(o)),n[t]=n[t-e]^o}return o}(t,e),s=new a(4),r=X(n);let c=0,i=0,f=0,w=0;return{process(t,n){n&&r.update(t,0,t.length),function(t){const n=new u(t.buffer,t.byteOffset,t.byteLength),e=t.length;let o=0;for(;o+16<=e;o+=16)l(),n.setInt32(o,n.getInt32(o)^s[0]),n.setInt32(o+4,n.getInt32(o+4)^s[1]),n.setInt32(o+8,n.getInt32(o+8)^s[2]),n.setInt32(o+12,n.getInt32(o+12)^s[3]);if(o<e){l();for(let n=0;o<e;o++,n++)t[o]^=s[n>>2]>>>24-8*(3&n)}}(t),n||r.update(t,0,t.length)},digest:()=>r.digest()};function l(){c=c+1|0,c||(i=i+1|0,i||(f=f+1|0,f||(w=w+1|0)));let t=Z(c)^e[0],n=Z(i)^e[1],r=Z(f)^e[2],a=Z(w)^e[3],u=L[t>>>24]^N[n>>>16&255]^q[r>>>8&255]^G[255&a]^e[4],l=L[n>>>24]^N[r>>>16&255]^q[a>>>8&255]^G[255&t]^e[5],h=L[r>>>24]^N[a>>>16&255]^q[t>>>8&255]^G[255&n]^e[6],p=L[a>>>24]^N[t>>>16&255]^q[n>>>8&255]^G[255&r]^e[7];t=L[u>>>24]^N[l>>>16&255]^q[h>>>8&255]^G[255&p]^e[8],n=L[l>>>24]^N[h>>>16&255]^q[p>>>8&255]^G[255&u]^e[9],r=L[h>>>24]^N[p>>>16&255]^q[u>>>8&255]^G[255&l]^e[10],a=L[p>>>24]^N[u>>>16&255]^q[l>>>8&255]^G[255&h]^e[11],u=L[t>>>24]^N[n>>>16&255]^q[r>>>8&255]^G[255&a]^e[12],l=L[n>>>24]^N[r>>>16&255]^q[a>>>8&255]^G[255&t]^e[13],h=L[r>>>24]^N[a>>>16&255]^q[t>>>8&255]^G[255&n]^e[14],p=L[a>>>24]^N[t>>>16&255]^q[n>>>8&255]^G[255&r]^e[15],t=L[u>>>24]^N[l>>>16&255]^q[h>>>8&255]^G[255&p]^e[16],n=L[l>>>24]^N[h>>>16&255]^q[p>>>8&255]^G[255&u]^e[17],r=L[h>>>24]^N[p>>>16&255]^q[u>>>8&255]^G[255&l]^e[18],a=L[p>>>24]^N[u>>>16&255]^q[l>>>8&255]^G[255&h]^e[19],u=L[t>>>24]^N[n>>>16&255]^q[r>>>8&255]^G[255&a]^e[20],l=L[n>>>24]^N[r>>>16&255]^q[a>>>8&255]^G[255&t]^e[21],h=L[r>>>24]^N[a>>>16&255]^q[t>>>8&255]^G[255&n]^e[22],p=L[a>>>24]^N[t>>>16&255]^q[n>>>8&255]^G[255&r]^e[23],t=L[u>>>24]^N[l>>>16&255]^q[h>>>8&255]^G[255&p]^e[24],n=L[l>>>24]^N[h>>>16&255]^q[p>>>8&255]^G[255&u]^e[25],r=L[h>>>24]^N[p>>>16&255]^q[u>>>8&255]^G[255&l]^e[26],a=L[p>>>24]^N[u>>>16&255]^q[l>>>8&255]^G[255&h]^e[27],u=L[t>>>24]^N[n>>>16&255]^q[r>>>8&255]^G[255&a]^e[28],l=L[n>>>24]^N[r>>>16&255]^q[a>>>8&255]^G[255&t]^e[29],h=L[r>>>24]^N[a>>>16&255]^q[t>>>8&255]^G[255&n]^e[30],p=L[a>>>24]^N[t>>>16&255]^q[n>>>8&255]^G[255&r]^e[31],t=L[u>>>24]^N[l>>>16&255]^q[h>>>8&255]^G[255&p]^e[32],n=L[l>>>24]^N[h>>>16&255]^q[p>>>8&255]^G[255&u]^e[33],r=L[h>>>24]^N[p>>>16&255]^q[u>>>8&255]^G[255&l]^e[34],a=L[p>>>24]^N[u>>>16&255]^q[l>>>8&255]^G[255&h]^e[35],u=L[t>>>24]^N[n>>>16&255]^q[r>>>8&255]^G[255&a]^e[36],l=L[n>>>24]^N[r>>>16&255]^q[a>>>8&255]^G[255&t]^e[37],h=L[r>>>24]^N[a>>>16&255]^q[t>>>8&255]^G[255&n]^e[38],p=L[a>>>24]^N[t>>>16&255]^q[n>>>8&255]^G[255&r]^e[39];let d=40;o>10&&(t=L[u>>>24]^N[l>>>16&255]^q[h>>>8&255]^G[255&p]^e[40],n=L[l>>>24]^N[h>>>16&255]^q[p>>>8&255]^G[255&u]^e[41],r=L[h>>>24]^N[p>>>16&255]^q[u>>>8&255]^G[255&l]^e[42],a=L[p>>>24]^N[u>>>16&255]^q[l>>>8&255]^G[255&h]^e[43],u=L[t>>>24]^N[n>>>16&255]^q[r>>>8&255]^G[255&a]^e[44],l=L[n>>>24]^N[r>>>16&255]^q[a>>>8&255]^G[255&t]^e[45],h=L[r>>>24]^N[a>>>16&255]^q[t>>>8&255]^G[255&n]^e[46],p=L[a>>>24]^N[t>>>16&255]^q[n>>>8&255]^G[255&r]^e[47],d=48),o>12&&(t=L[u>>>24]^N[l>>>16&255]^q[h>>>8&255]^G[255&p]^e[48],n=L[l>>>24]^N[h>>>16&255]^q[p>>>8&255]^G[255&u]^e[49],r=L[h>>>24]^N[p>>>16&255]^q[u>>>8&255]^G[255&l]^e[50],a=L[p>>>24]^N[u>>>16&255]^q[l>>>8&255]^G[255&h]^e[51],u=L[t>>>24]^N[n>>>16&255]^q[r>>>8&255]^G[255&a]^e[52],l=L[n>>>24]^N[r>>>16&255]^q[a>>>8&255]^G[255&t]^e[53],h=L[r>>>24]^N[a>>>16&255]^q[t>>>8&255]^G[255&n]^e[54],p=L[a>>>24]^N[t>>>16&255]^q[n>>>8&255]^G[255&r]^e[55],d=56),s[0]=(H[u>>>24]<<24|H[l>>>16&255]<<16|H[h>>>8&255]<<8|H[255&p])^e[d],s[1]=(H[l>>>24]<<24|H[h>>>16&255]<<16|H[p>>>8&255]<<8|H[255&u])^e[d+1],s[2]=(H[h>>>24]<<24|H[p>>>16&255]<<16|H[u>>>8&255]<<8|H[255&l])^e[d+2],s[3]=(H[p>>>24]<<24|H[u>>>16&255]<<16|H[l>>>8&255]<<8|H[255&h])^e[d+3]}}function X(t){const n=function(){const t=new a(O),n=new a(16),e=new r(V),s=new u(e.buffer),c=new r(8);let i=0,f=0;return{update:w,digest:function(){const n=8*f,e=o.floor(n/4294967296),s=n>>>0;for(w(j,0,1);56!=i;)w(K,0,1);c[0]=e>>>24,c[1]=e>>>16,c[2]=e>>>8,c[3]=e,c[4]=s>>>24,c[5]=s>>>16,c[6]=s>>>8,c[7]=s,w(c,0,8);const a=new r(W),l=new u(a.buffer);for(let n=0;n<t.length;n++)l.setInt32(4*n,t[n]);return t.set(O),i=0,f=0,a}};function w(t,n,o){const r=n+o;if(f+=o,i){for(;n<r&&i<V;)e[i++]=t[n++];i==V&&(l(s,0),i=0)}if(n+V<=r){const e=new u(t.buffer,t.byteOffset,t.byteLength);for(;n+V<=r;n+=V)l(e,n)}for(;n<r;)e[i++]=t[n++]}function l(e,o){for(let t=0;t<16;t++)n[t]=e.getInt32(o+4*t);let s,r=t[0],c=t[1],i=t[2],a=t[3],f=t[4];for(let t=0;t<15;t+=5)f=(r<<5|r>>>27)+((i^a)&c^a)+f+1518500249+n[t]|0,c=c<<30|c>>>2,a=(f<<5|f>>>27)+((c^i)&r^i)+a+1518500249+n[t+1]|0,r=r<<30|r>>>2,i=(a<<5|a>>>27)+((r^c)&f^c)+i+1518500249+n[t+2]|0,f=f<<30|f>>>2,c=(i<<5|i>>>27)+((f^r)&a^r)+c+1518500249+n[t+3]|0,a=a<<30|a>>>2,r=(c<<5|c>>>27)+((a^f)&i^f)+r+1518500249+n[t+4]|0,i=i<<30|i>>>2;f=(r<<5|r>>>27)+((i^a)&c^a)+f+1518500249+n[15]|0,c=c<<30|c>>>2,s=n[13]^n[8]^n[2]^n[0],s=s<<1|s>>>31,n[0]=s,a=(f<<5|f>>>27)+((c^i)&r^i)+a+1518500249+s|0,r=r<<30|r>>>2,s=n[14]^n[9]^n[3]^n[1],s=s<<1|s>>>31,n[1]=s,i=(a<<5|a>>>27)+((r^c)&f^c)+i+1518500249+s|0,f=f<<30|f>>>2,s=n[15]^n[10]^n[4]^n[2],s=s<<1|s>>>31,n[2]=s,c=(i<<5|i>>>27)+((f^r)&a^r)+c+1518500249+s|0,a=a<<30|a>>>2,s=n[0]^n[11]^n[5]^n[3],s=s<<1|s>>>31,n[3]=s,r=(c<<5|c>>>27)+((a^f)&i^f)+r+1518500249+s|0,i=i<<30|i>>>2;for(let t=20;t<40;t+=5)s=n[t-3&15]^n[t-8&15]^n[t-14&15]^n[15&t],s=s<<1|s>>>31,n[15&t]=s,f=(r<<5|r>>>27)+(c^i^a)+f+1859775393+s|0,c=c<<30|c>>>2,s=n[t-2&15]^n[t-7&15]^n[t-13&15]^n[t+1&15],s=s<<1|s>>>31,n[t+1&15]=s,a=(f<<5|f>>>27)+(r^c^i)+a+1859775393+s|0,r=r<<30|r>>>2,s=n[t-1&15]^n[t-6&15]^n[t-12&15]^n[t+2&15],s=s<<1|s>>>31,n[t+2&15]=s,i=(a<<5|a>>>27)+(f^r^c)+i+1859775393+s|0,f=f<<30|f>>>2,s=n[15&t]^n[t-5&15]^n[t-11&15]^n[t+3&15],s=s<<1|s>>>31,n[t+3&15]=s,c=(i<<5|i>>>27)+(a^f^r)+c+1859775393+s|0,a=a<<30|a>>>2,s=n[t+1&15]^n[t-4&15]^n[t-10&15]^n[t+4&15],s=s<<1|s>>>31,n[t+4&15]=s,r=(c<<5|c>>>27)+(i^a^f)+r+1859775393+s|0,i=i<<30|i>>>2;for(let t=40;t<60;t+=5)s=n[t-3&15]^n[t-8&15]^n[t-14&15]^n[15&t],s=s<<1|s>>>31,n[15&t]=s,f=(r<<5|r>>>27)+(c&i|(c|i)&a)+f+2400959708+s|0,c=c<<30|c>>>2,s=n[t-2&15]^n[t-7&15]^n[t-13&15]^n[t+1&15],s=s<<1|s>>>31,n[t+1&15]=s,a=(f<<5|f>>>27)+(r&c|(r|c)&i)+a+2400959708+s|0,r=r<<30|r>>>2,s=n[t-1&15]^n[t-6&15]^n[t-12&15]^n[t+2&15],s=s<<1|s>>>31,n[t+2&15]=s,i=(a<<5|a>>>27)+(f&r|(f|r)&c)+i+2400959708+s|0,f=f<<30|f>>>2,s=n[15&t]^n[t-5&15]^n[t-11&15]^n[t+3&15],s=s<<1|s>>>31,n[t+3&15]=s,c=(i<<5|i>>>27)+(a&f|(a|f)&r)+c+2400959708+s|0,a=a<<30|a>>>2,s=n[t+1&15]^n[t-4&15]^n[t-10&15]^n[t+4&15],s=s<<1|s>>>31,n[t+4&15]=s,r=(c<<5|c>>>27)+(i&a|(i|a)&f)+r+2400959708+s|0,i=i<<30|i>>>2;for(let t=60;t<80;t+=5)s=n[t-3&15]^n[t-8&15]^n[t-14&15]^n[15&t],s=s<<1|s>>>31,n[15&t]=s,f=(r<<5|r>>>27)+(c^i^a)+f+3395469782+s|0,c=c<<30|c>>>2,s=n[t-2&15]^n[t-7&15]^n[t-13&15]^n[t+1&15],s=s<<1|s>>>31,n[t+1&15]=s,a=(f<<5|f>>>27)+(r^c^i)+a+3395469782+s|0,r=r<<30|r>>>2,s=n[t-1&15]^n[t-6&15]^n[t-12&15]^n[t+2&15],s=s<<1|s>>>31,n[t+2&15]=s,i=(a<<5|a>>>27)+(f^r^c)+i+3395469782+s|0,f=f<<30|f>>>2,s=n[15&t]^n[t-5&15]^n[t-11&15]^n[t+3&15],s=s<<1|s>>>31,n[t+3&15]=s,c=(i<<5|i>>>27)+(a^f^r)+c+3395469782+s|0,a=a<<30|a>>>2,s=n[t+1&15]^n[t-4&15]^n[t-10&15]^n[t+4&15],s=s<<1|s>>>31,n[t+4&15]=s,r=(c<<5|c>>>27)+(i^a^f)+r+3395469782+s|0,i=i<<30|i>>>2;t[0]=t[0]+r|0,t[1]=t[1]+c|0,t[2]=t[2]+i|0,t[3]=t[3]+a|0,t[4]=t[4]+f|0}}(),e=new r(V),s=new r(V);t.length>V&&(n.update(t,0,t.length),t=n.digest());for(let n=0;n<V;n++){const o=n<t.length?t[n]:0;e[n]=54^o,s[n]=92^o}return n.update(e,0,V),{update(t,e,o){n.update(t,e,o)},digest(){const t=n.digest();n.update(s,0,V),n.update(t,0,W);const o=n.digest();return n.update(e,0,V),o}}}function Y(t){return H[t>>>24]<<24|H[t>>>16&255]<<16|H[t>>>8&255]<<8|H[255&t]}function Z(t){return t<<24|(65280&t)<<8|t>>>8&65280|t>>>24}function $(t){return 255&(t<<1^27*(t>>7))}const _=typeof h!=b&&typeof h.getRandomValues==z,tt="Invalid password",nt="zipjs-abort-check-password";function et(t){if(_)return h.getRandomValues(t);throw new s("Crypto API not supported")}const ot={name:"PBKDF2"},st=n.assign({hash:{name:"HMAC"}},ot),rt=n.assign({iterations:1e3,hash:{name:"SHA-1"}},ot),ct=["deriveBits"],it=[8,12,16],at=[16,24,32],ft=10,ut=typeof h!=b,wt=ut&&h.subtle;let lt=ut&&typeof wt!=b&&typeof wt.importKey==z&&typeof wt.deriveBits==z,ht=Q;class pt extends d{constructor({password:t,rawPassword:n,encryptionStrength:e,checkPasswordOnly:o,checkAuthenticationCode:c=!0}){super({start(){yt(this,t,n,e)},async transform(t,n){const e=this,{password:c,strength:i,l:a,ready:f}=e;c?(await async function(t,n,e,o){const r=await gt(t,n,e,bt(o,0,it[n])),c=bt(o,it[n]);if(r[0]!=c[0]||r[1]!=c[1])throw St(t),new s(tt)}(e,i,c,bt(t,0,it[i]+2)),t=bt(t,it[i]+2),o?(St(e),n.error(new s(nt))):a()):await f;const u=new r(t.length-ft-(t.length-ft)%16);n.enqueue(mt(e,t,u,0,ft,!0))},async flush(t){const{h:n,m:e,ready:o}=this;if(n){await o;const i=bt(e,e.length-ft),a=new r(bt(e,0,e.length-ft));n.process(a,!0);const f=n.digest();let u=e.length<ft?1:0;for(let t=0;t<ft;t++)u|=f[t]^i[t];if(u&&c)throw new s("Invalid authentication code");t.enqueue(a)}},cancel(){St(this)}})}}class dt extends d{constructor({password:t,rawPassword:n,encryptionStrength:e}){super({start(){yt(this,t,n,e)},async transform(t,n){const e=this,{password:o,strength:s,l:c,ready:i}=e;let a=k;o?(a=await async function(t,n,e){const o=et(new r(it[n]));return B(o,await gt(t,n,e,o))}(e,s,o),c()):await i;const f=new r(a.length+t.length-t.length%16);f.set(a,0),n.enqueue(mt(e,t,f,a.length,0,!1))},async flush(t){const{h:n,m:e,ready:o}=this;if(n){await o;const s=new r(e);n.process(s,!1);const c=bt(n.digest(),0,ft);t.enqueue(B(s,c))}},cancel(){St(this)}})}}function yt(t,e,o,s){n.assign(t,{ready:new w(n=>t.l=n),password:vt(e,o),strength:s-1,m:k})}function mt(t,n,e,o,s,c){const{h:i,m:a}=t;a.length&&(n=B(a,n));const f=n.length-s,u=f-f%16;if(e=function(t,n){if(n&&n>t.length){const e=t;(t=new r(n)).set(e,0)}return t}(e,o+u),u){const t=bt(e,o,o+u);t.set(bt(n,0,u)),i.process(t,c)}return t.m=bt(n,u),e}function St({h:t}){t&&t.dispose&&t.dispose()}async function gt(t,e,s,c){t.password=null;const i=at[e],a=await async function(t,e,s){if(lt)try{const o=await wt.importKey("raw",t,st,!1,ct);return new r(await wt.deriveBits(n.assign({salt:e},rt),o,8*s))}catch{lt=!1}return function(t,n,e,s){const c=X(t),i=new r(s),a=new r(n.length+4),f=new u(a.buffer);a.set(n);for(let t=1,e=0;e<s;t++,e+=W){f.setUint32(n.length,t),c.update(a,0,a.length);let r=c.digest();const u=r.slice();for(let t=1;t<1e3;t++){c.update(r,0,W),r=c.digest();for(let t=0;t<W;t++)u[t]^=r[t]}i.set(u.subarray(0,o.min(W,s-e)),e)}return i}(t,e,0,s)}(s,c,2*i+2);return t.h=ht(bt(a,0,i),bt(a,i,2*i)),bt(a,2*i)}function vt(t,n){return n===v?function(t){if(typeof l==b){t=unescape(encodeURIComponent(t));const n=new r(t.length);for(let e=0;e<n.length;e++)n[e]=t.charCodeAt(e);return n}return(new l).encode(t)}(t):n}function bt(t,n,e){return t.subarray(n,e)}class zt extends d{constructor({password:t,rawPassword:n,passwordVerification:e,checkPasswordOnly:o}){super({start(){Ct(this,t,n,e)},transform(t,n){const e=this;if(e.password||e.rawPassword){const n=It(e,t.subarray(0,12));if(e.password=e.rawPassword=null,0!=(n[11]^e.passwordVerification))throw new s(tt);t=t.subarray(12)}o?n.error(new s(nt)):n.enqueue(It(e,t))}})}}class kt extends d{constructor({password:t,rawPassword:n,passwordVerification:e}){super({start(){Ct(this,t,n,e)},transform(t,n){const e=this;let o,s;if(e.password||e.rawPassword){e.password=e.rawPassword=null;const n=et(new r(12));n[11]=e.passwordVerification,o=new r(t.length+n.length),o.set(At(e,n),0),s=12}else o=new r(t.length),s=0;o.set(At(e,t),s),n.enqueue(o)}})}}function Ct(t,e,o,s){n.assign(t,{password:e,rawPassword:o,passwordVerification:s}),function(t,e,o){const s=[305419896,591751049,878082192];if(n.assign(t,{keys:s,S:new R(s[0]),v:new R(s[2])}),o)for(let n=0;n<o.length;n++)xt(t,o[n]);else for(let n=0;n<e.length;n++)xt(t,e.charCodeAt(n))}(t,e,o)}function It(t,n){const e=new r(n.length);for(let o=0;o<n.length;o++)e[o]=Mt(t)^n[o],xt(t,e[o]);return e}function At(t,n){const e=new r(n.length);for(let o=0;o<n.length;o++)e[o]=Mt(t)^n[o],xt(t,n[o]);return e}function xt(t,n){let[,e]=t.keys;t.S.append([n]);const s=~t.S.get();e=Dt(o.imul(Dt(e+Pt(s)),134775813)+1),t.v.append([e>>>24]);const r=~t.v.get();t.keys=[s,e,r]}function Mt(t){const n=2|t.keys[2];return Pt(o.imul(n,1^n)>>>8)}function Pt(t){return 255&t}function Dt(t){return 4294967295&t}function Ft(t){if(t instanceof y)return t;const n=t.getReader();return new y({async pull(t){const{value:e,done:o}=await n.read();o?t.close():t.enqueue(e)},cancel:t=>n.cancel(t)})}const Et=new f;function Rt(t){return Et.get(t)}const Ut="Invalid uncompressed size",Bt="deflate-raw",Tt="gzip",Vt=[31,139,8];class Wt extends d{constructor(t,{chunkSize:n,CompressionStreamFallback:e,CompressionStream:o}){super({});const{compressed:s,encrypted:r,useCompressionStream:c,zipCrypto:i,computeCrc32:a,level:f,deflate64:w,format:l,compressionMethod:h,inputSize:p}=t,d=this;let y,m,S,g=super.readable;const v=l&&Rt(l),b=a&&s&&!w&&!v&&(!r||i)&&Boolean(c&&o);if(r&&!i||!a||b||(y=new U,g=qt(g,y)),s)if(v)g=Gt(g,Lt(v.CompressionStream,l,{level:f,chunkSize:n,compressionMethod:h,uncompressedSize:p}));else if(b)S=new jt,g=Gt(g,new o(Tt)),g=qt(g,S);else try{g=Nt(g,c,{level:f,chunkSize:n},o,e)}catch(t){let n;try{n=new o(Tt)}catch{throw t}g=Gt(g,n),g=qt(g,new jt)}r&&(i?g=qt(g,new kt(t)):(m=new dt(t),g=qt(g,m))),Ht(d,g,()=>{r&&!i||!a||(d.crc32=b?S.crc32:new u(y.value.buffer).getUint32(0))})}}class jt extends d{constructor(){let t,n=10,e=new r(0);super({transform(t,s){if(n){const e=o.min(n,t.length);if(n-=e,!(t=t.subarray(e)).length)return}const r=e.length+t.length;if(r<=8)return void(e=B(e,t));const c=r-8,i=o.min(c,e.length);s.enqueue(B(e.subarray(0,i),t.subarray(0,c-i))),e=B(e.subarray(i),t.subarray(c-i))},flush(){const n=T(e);t.crc32=n.getUint32(0,!0),t.uncompressedSize=n.getUint32(4,!0)}}),t=this}}class Kt extends d{constructor(t,{chunkSize:n,DecompressionStreamFallback:e,DecompressionStream:o}){super({});const{zipCrypto:c,encrypted:i,checkCrc32:a,crc32:f,compressed:l,useCompressionStream:h,deflate64:p,format:m,compressionMethod:S,rawBitFlag:g,outputSize:b}=t;let z,k,C=super.readable;if(i&&(c?C=qt(C,new zt(t)):(k=new pt(t),C=qt(C,k))),l){const t=m&&Rt(m);if(t)C=Gt(C,Lt(t.DecompressionStream,m,{chunkSize:n,compressionMethod:S,rawBitFlag:g,uncompressedSize:b}));else try{C=Nt(C,h,{chunkSize:n,deflate64:p},o,e)}catch(t){if(p||b===v)throw t;let n;try{n=new o(Tt)}catch{throw t}C=function(t,n,e){const o=new R;let c,i,a,f=0,u=!1;const l=new w((t,n)=>{i=t,a=n});l.catch(()=>{}),e||i();const h=new d({start(t){const n=new r(10);n.set(Vt),t.enqueue(n)},transform(t,n){n.enqueue(t)},async flush(t){u=!0,y();try{await l}finally{m()}const n=new r(8),s=T(n);s.setUint32(0,o.get(),!0),s.setUint32(4,e,!0),t.enqueue(n)},cancel(t){a(t)}}),p=new d({transform(t,n){o.append(t),f+=t.length,f>=e?i():u&&y(),n.enqueue(t)},cancel(t){a(t)}});return t=qt(t,h),qt(t=Gt(t,n),p);function y(){m(),c=setTimeout(()=>a(new s(Ut)),5e3)}function m(){clearTimeout(c)}}(C,n,b)}C=function(t){const n=t.getReader();return new y({async pull(t){let e;try{e=await n.read()}catch(t){if(t&&t.message)throw t;const n=new s("Invalid compressed data");throw n.cause=t,n}const{value:o,done:r}=e;r?t.close():t.enqueue(o)},cancel:t=>n.cancel(t)})}(C)}a&&(z=new U,C=qt(C,z)),Ht(this,C,()=>{if(a){const t=new u(z.value.buffer);if(f!=t.getUint32(0,!1))throw new s("Invalid CRC32")}})}}const Ot=new f;function Ht(t,e,o){e=qt(e,new d({flush:o})),n.defineProperty(t,"readable",{get:()=>e})}function Lt(t,n,e){if(!t)throw new s("Compression method not supported");return new t(n,e)}function Nt(t,n,e,o,s){const r=n&&o?o:s||o,c=e.deflate64?"deflate64-raw":Bt;let i;try{i=new r(c,e)}catch(t){if(!n||!s||r==s)throw t;i=new s(c,e)}return Gt(t,i)}function qt(t,n){return Ft(t).pipeThrough(n)}function Gt(t,n){const e=n.writable.getWriter(),o=t.getReader();return async function(){try{for(;;){await e.ready;const t=await o.read();if(t.done){await e.close();break}await e.write(t.value)}}catch(t){await async function(t,n){try{await t.abort(n)}catch{}}(e,t),await async function(t,n){try{await t.cancel(n)}catch{}}(o,t)}}(),n.readable}const Jt="data",Qt="deflate";class Xt extends d{constructor(t,e){super({});const o=this,{codecType:r}=t;let c;r.startsWith(Qt)?c=Wt:r.startsWith("inflate")&&(c=Kt),o.outputSize=0;let i=0;const a=new c(t,e),f=super.readable,u=new d({transform(t,n){t&&t.length&&(i+=t.length,n.enqueue(t))},flush(){n.assign(o,{inputSize:i})}}),w=new d({transform(n,e){if(n&&n.length&&(e.enqueue(n),o.outputSize+=n.length,t.outputSize!==v&&o.outputSize>t.outputSize))throw new s(Ut)},flush(){const{crc32:t}=a;n.assign(o,{crc32:t,inputSize:i})}});n.defineProperty(o,"readable",{get:()=>f.pipeThrough(u).pipeThrough(a).pipeThrough(w)})}}class Yt extends d{constructor(t){const o=[];let s=0,c=0;function i(){const n=new r(t);let e=0;for(;e<t;){const s=o[0],r=t-e;s.length<=r?(n.set(s,e),e+=s.length,o.shift()):(n.set(s.subarray(0,r),e),o[0]=s.subarray(r),e+=r)}return s-=t,n}(!e.isFinite(t)||t<1)&&(t=65536),super({transform(n,e){for(o.push(n),s+=n.length;s>t;)c+=t,e.enqueue(i())},flush(t){s&&(c+=s,t.enqueue(function(t,n){const e=new r(n);let o=0;for(const n of t)e.set(n,o),o+=n.length;return e}(o,s)))}}),n.defineProperty(this,"outputSize",{get:()=>c})}}let Zt=2;try{typeof navigator!=b&&navigator.hardwareConcurrency&&(Zt=navigator.hardwareConcurrency)}catch{}function $t(t){return Boolean(t)&&"object"==typeof t}const _t=new f,tn=new f,nn=function(){try{return structuredClone(new s)instanceof s}catch{return!1}}();let en=0;async function on(t){let n,r,c;try{const{options:i,config:a}=t;if(i.format)try{await async function(t,n){!Et.has(t)&&n&&function(t,n){const{CompressionStream:e,DecompressionStream:o}=n;if(typeof e!=z&&typeof o!=z)throw new s("Invalid codec module");Et.set(t,{CompressionStream:e,DecompressionStream:o})}(t,await(import(n)))}(i.format,i.codecURI)}catch(t){if($t(t))try{t.codecImportFailed=!0}catch{}throw t}if(a.CompressionStream=self.CompressionStream,a.DecompressionStream=self.DecompressionStream,i.compressed&&!i.format)if(i.useCompressionStream){if(!function(t,n){if(!t)return!1;let e=Ot.get(t);e||(e=new f,Ot.set(t,e));let o=e.get(n);if(o===v){try{new t(n),o=!0}catch{o=!1}e.set(n,o)}return o}(i.codecType.startsWith(Qt)?a.CompressionStream:a.DecompressionStream,Bt))try{await self.initModule(t.config)}catch{}}else try{await self.initModule(t.config)}catch{i.useCompressionStream=!0}if(i.encrypted&&!i.zipCrypto)try{await self.initModule(t.config)}catch{}!a.CompressionStreamFallback&&a.CompressionStreamZlib&&(a.CompressionStreamFallback=a.CompressionStreamZlib),!a.DecompressionStreamFallback&&a.DecompressionStreamZlib&&(a.DecompressionStreamFallback=a.DecompressionStreamZlib);const u={highWaterMark:1},l=t.readable?Ft(t.readable):new y({async pull(t){const n=new w(t=>_t.set(en,t));sn({type:"pull",messageId:en}),en=(en+1)%e.MAX_SAFE_INTEGER;const{value:o,done:s}=await n;t.enqueue(o),s&&t.close()}},u);c=t.writable?function(t){if(t instanceof m)return t;const n=t.getWriter();return new m({write:t=>n.write(t),close:()=>n.close(),abort:t=>n.abort(t)})}(t.writable):new m({async write(t){let n;const o=new w(t=>n=t);tn.set(en,n),sn({type:Jt,value:t,messageId:en}),en=(en+1)%e.MAX_SAFE_INTEGER,await o}},u),n=new Xt(i,a),r=new Yt(function(t){return s="string"==typeof(n=s=t.chunkSize)&&n.trim()?e(n):n,e.isInteger(s)&&s>=1?o.max(s,64):65536;var n,s}(a)),await l.pipeThrough(n).pipeThrough(r).pipeTo(c,{preventClose:!0,preventAbort:!0}),await c.getWriter().close();const{crc32:h,inputSize:p,outputSize:d}=n;sn({type:"close",result:{crc32:h,inputSize:p,outputSize:d}})}catch(t){const n=r?r.outputSize:0;if($t(t))try{t.outputSize=n}catch{}if(c&&!c.locked)try{await c.getWriter().close()}catch{}rn(t,n)}}function sn(t){const{value:n}=t;if(n)if(n.length)try{t.value=(e=n,e.byteOffset||e.byteLength!=e.buffer.byteLength?new r(e):e).buffer,p(t,[t.value])}catch{p(t)}else p(t);else p(t);var e}function rn(t,n){const{message:e,stack:o,code:r,name:c,outputSize:i,cause:a,codecImportFailed:f}=function(t=new s("Unknown error")){return $t(t)?t:new s(String(t))}(t),u={message:e,stack:o,code:r,name:c,outputSize:i===v?n:i};if(a&&(u.cause={name:a.name,message:a.message}),f&&(u.codecImportFailed=!0),nn)try{return void p({error:u,errorValue:{value:t}})}catch{}p({error:u})}addEventListener("message",({data:t})=>{const{type:n,messageId:e,value:o,done:s}=t;try{if("start"==n&&on(t),n==Jt){const t=_t.get(e);_t.delete(e),t({value:o||new r,done:s})}if("ack"==n){const t=tn.get(e);tn.delete(e),t()}}catch(t){rn(t)}}),p({type:"ready"});const cn="deflate",an="deflate-raw",fn="deflate64-raw",un="gzip";let wn,ln,hn,pn,dn;function yn(t,n,e={}){if(!wn){const t=new s("WASM module not loaded");throw t.cause=dn,t}const c="number"==typeof e.level?e.level:-1,i="number"==typeof e.outBuffer?e.outBuffer:65536,a="number"==typeof e.inBufferSize?e.inBufferSize:65536;return new d({start(){try{let e;if(this.C=ln(i),this.in=ln(a),this.inBufferSize=a,!this.C||!this.in)throw new s("allocation failed");if(t?(this.I=wn.deflate_process,this.A=wn.deflate_last_consumed,this.M=wn.deflate_end,this.P=wn.deflate_new(),e=n===un?wn.deflate_init_gzip(this.P,c):n===an?wn.deflate_init_raw(this.P,c):wn.deflate_init(this.P,c)):n===fn?(this.I=wn.inflate9_process,this.A=wn.inflate9_last_consumed,this.M=wn.inflate9_end,this.P=wn.inflate9_new(),e=wn.inflate9_init_raw(this.P)):(this.I=wn.inflate_process,this.A=wn.inflate_last_consumed,this.M=wn.inflate_end,this.P=wn.inflate_new(),e=n===an?wn.inflate_init_raw(this.P):n===un?wn.inflate_init_gzip(this.P):wn.inflate_init(this.P)),0!==e)throw new s("init failed:"+e)}catch(t){throw f(this),t}},transform(t,n){try{const e=t,c=new r(pn.buffer),a=this.I,f=this.A,u=this.C;let w=0;for(;w<e.length;){const t=o.min(e.length-w,32768);if((!this.in||this.inBufferSize<t)&&(this.in&&hn&&(hn(this.in),this.in=0),this.in=ln(t),this.inBufferSize=t,!this.in))throw new s("allocation failed");c.set(e.subarray(w,w+t),this.in);const r=a(this.P,this.in,t,u,i,0),l=r>>24&255,h=128&l?l-256:l;if(h<0)throw new s("process error:"+h);const p=16777215&r;p&&n.enqueue(c.slice(u,u+p));const d=f(this.P);if(0===d&&0===p)break;w+=d}}catch(t){f(this),n.error(t)}},flush(t){try{const n=new r(pn.buffer),e=this.I,o=this.C;for(;;){const r=e(this.P,0,0,o,i,4),c=r>>24&255,a=128&c?c-256:c;if(a<0)throw new s("process error:"+a);const f=16777215&r;if(f&&t.enqueue(n.slice(o,o+f)),1===c||0===f)break}}catch(n){t.error(n)}finally{const n=f(this);0!==n&&t.error(new s("end error:"+n))}},cancel(){f(this)}});function f(t){let n=0;return t.P&&t.M&&(n=t.M(t.P)),t.P=0,t.in&&hn&&hn(t.in),t.in=0,t.C&&hn&&hn(t.C),t.C=0,n}}class mn{constructor(t=cn,n){return yn(!0,t,n)}}class Sn{constructor(t=cn,n){return yn(!1,t,n)}}mn.D=!0,Sn.D=!0,mn.F=[cn,an,un],Sn.F=[cn,an,un,fn];const gn=65536;let vn,bn;function zn(t){return new r(t.memory.buffer)}let kn=!1;!function(t={}){const{init:n,R:e}=t,o=t.CompressionStreamFallback||t.CompressionStreamZlib,s=t.DecompressionStreamFallback||t.DecompressionStreamZlib;e&&(ht=e||Q),self.initModule=async t=>{n&&await n(t),o&&(t.CompressionStreamFallback=o),s&&(t.DecompressionStreamFallback=s)}}({CompressionStreamFallback:mn,DecompressionStreamFallback:Sn,R:function(t,n){const e=vn;let o=e?function(t,n,e){bn||(bn=t.malloc(gn));const o=bn?t.aes_hmac_new():0;if(o){const s=zn(t);if(s.set(n,bn),s.set(e,bn+n.length),t.aes_hmac_init(o,bn,n.length,bn+n.length,e.length))return t.aes_hmac_end(o,0),0}return o}(e,t,n):0;if(!o)return Q(t,n);const s=bn;return{process(t,n){for(let r=0;r<t.length;r+=gn){const c=t.subarray(r,r+gn),i=zn(e);i.set(c,s),e.aes_hmac_process(o,s,c.length,n?1:0),c.set(i.subarray(s,s+c.length))}},digest:()=>(e.aes_hmac_end(o,s),o=0,zn(e).slice(s,s+20)),dispose(){o&&(e.aes_hmac_end(o,0),o=0)}}},init:t=>async function(t,{baseURI:n}){if(!kn)try{await async function(t,n){let e,o;try{try{o=new URL(t,n)}catch{}const s=await fetch(o);e=await s.arrayBuffer()}catch(n){if(!t.startsWith("data:application/wasm;base64,"))throw n;e=function(t){const n=t.split(",")[1],e=atob(n),o=e.length,s=new r(o);for(let t=0;t<o;++t)s[t]=e.charCodeAt(t);return s.buffer}(t)}const c=await WebAssembly.instantiate(e);var i;(function(t){if(wn=t,({malloc:ln,free:hn,memory:pn}=wn),"function"!=typeof ln||"function"!=typeof hn||!pn)throw wn=ln=hn=pn=null,new s("Invalid WASM module")})(c.instance.exports),typeof(i=c.instance.exports).aes_hmac_new==z&&(vn=i,bn=0)}(t,n),kn=!0}catch(t){throw function(t){dn=t}(t),t}}(t.wasmURI,t)})});\n';if("string"==typeof s&&(s=(new TextEncoder).encode(s)),t){const t=new Blob([s],{type:e});return URL.createObjectURL(t)}return"data:"+e+";base64,"+function(t){let e="";const s=t.length;let r=0;for(;r+2<s;r+=3){const s=t[r]<<16|t[r+1]<<8|t[r+2];e+=n[s>>18&63]+n[s>>12&63]+n[s>>6&63]+n[63&s]}const o=s-r;if(1===o){const s=t[r]<<16;e+=n[s>>18&63]+n[s>>12&63]+"=="}else if(2===o){const s=t[r]<<16|t[r+1]<<8;e+=n[s>>18&63]+n[s>>12&63]+n[s>>6&63]+"="}return e}(s)}});export{e as configureWebWorker};
|
package/lib/core/zip-reader.js
CHANGED
|
@@ -255,7 +255,7 @@ class ZipReader {
|
|
|
255
255
|
Object.assign(this, {
|
|
256
256
|
reader: new GenericReader(reader),
|
|
257
257
|
options,
|
|
258
|
-
readRanges: new
|
|
258
|
+
readRanges: { indexes: new Set(), sortedRanges: [], pendingRanges: [] }
|
|
259
259
|
});
|
|
260
260
|
}
|
|
261
261
|
|
|
@@ -948,7 +948,6 @@ class ZipEntry {
|
|
|
948
948
|
throw new Error(ERR_ENTRY_DATA_OUT_OF_BOUNDS);
|
|
949
949
|
}
|
|
950
950
|
const size = compressedSize;
|
|
951
|
-
const readable = toCompatibleReadable(reader.createReadable({ offset: dataOffset, size }));
|
|
952
951
|
const signal = checkSignalOption(getOptionValue(zipEntry, options, OPTION_SIGNAL));
|
|
953
952
|
throwIfAborted(signal);
|
|
954
953
|
let checkOverlappingEntry = getOptionValue(zipEntry, options, OPTION_CHECK_OVERLAPPING_ENTRY);
|
|
@@ -1022,6 +1021,7 @@ class ZipEntry {
|
|
|
1022
1021
|
writer = new GenericWriter(writer);
|
|
1023
1022
|
await initStream(writer, getDecodableOutputSize(outputSize, compressedSize, compressed));
|
|
1024
1023
|
({ writable } = writer);
|
|
1024
|
+
const readable = toCompatibleReadable(reader.createReadable({ offset: dataOffset, size }));
|
|
1025
1025
|
const { outputSize: writtenSize } = await runWorker({ readable, writable }, workerOptions);
|
|
1026
1026
|
if (writtenSize != outputSize) {
|
|
1027
1027
|
throw Object.assign(new Error(ERR_INVALID_UNCOMPRESSED_SIZE), { outputSize: writtenSize });
|
|
@@ -1457,14 +1457,61 @@ async function detectOverlappingEntry({
|
|
|
1457
1457
|
end: dataOffset + compressedSize + dataDescriptorLength,
|
|
1458
1458
|
fileEntry
|
|
1459
1459
|
};
|
|
1460
|
-
|
|
1461
|
-
|
|
1460
|
+
const { indexes, sortedRanges, pendingRanges } = readRanges;
|
|
1461
|
+
if (!indexes.has(index)) {
|
|
1462
|
+
const overlappingRange = findOverlappingRange(sortedRanges, range) || pendingRanges.find(otherRange => rangesOverlap(range, otherRange));
|
|
1463
|
+
if (overlappingRange) {
|
|
1462
1464
|
const error = new Error(ERR_OVERLAPPING_ENTRY);
|
|
1463
|
-
error.overlappingEntry =
|
|
1465
|
+
error.overlappingEntry = overlappingRange.fileEntry;
|
|
1464
1466
|
throw error;
|
|
1465
1467
|
}
|
|
1468
|
+
indexes.add(index);
|
|
1469
|
+
pendingRanges.push(range);
|
|
1470
|
+
if (pendingRanges.length * pendingRanges.length > sortedRanges.length) {
|
|
1471
|
+
pendingRanges.sort((range, otherRange) => range.start - otherRange.start);
|
|
1472
|
+
readRanges.sortedRanges = mergeRanges(sortedRanges, pendingRanges);
|
|
1473
|
+
pendingRanges.length = 0;
|
|
1474
|
+
}
|
|
1475
|
+
}
|
|
1476
|
+
}
|
|
1477
|
+
|
|
1478
|
+
function findOverlappingRange(sortedRanges, range) {
|
|
1479
|
+
let low = 0;
|
|
1480
|
+
let high = sortedRanges.length;
|
|
1481
|
+
while (low < high) {
|
|
1482
|
+
const middle = (low + high) >>> 1;
|
|
1483
|
+
if (sortedRanges[middle].start < range.start) {
|
|
1484
|
+
low = middle + 1;
|
|
1485
|
+
} else {
|
|
1486
|
+
high = middle;
|
|
1487
|
+
}
|
|
1488
|
+
}
|
|
1489
|
+
const previousRange = sortedRanges[low - 1];
|
|
1490
|
+
const nextRange = sortedRanges[low];
|
|
1491
|
+
if (previousRange && rangesOverlap(range, previousRange)) {
|
|
1492
|
+
return previousRange;
|
|
1493
|
+
}
|
|
1494
|
+
if (nextRange && rangesOverlap(range, nextRange)) {
|
|
1495
|
+
return nextRange;
|
|
1496
|
+
}
|
|
1497
|
+
}
|
|
1498
|
+
|
|
1499
|
+
function rangesOverlap(range, otherRange) {
|
|
1500
|
+
return range.start < otherRange.end && otherRange.start < range.end;
|
|
1501
|
+
}
|
|
1502
|
+
|
|
1503
|
+
function mergeRanges(sortedRanges, pendingRanges) {
|
|
1504
|
+
const mergedRanges = [];
|
|
1505
|
+
let indexSorted = 0;
|
|
1506
|
+
let indexPending = 0;
|
|
1507
|
+
while (indexSorted < sortedRanges.length || indexPending < pendingRanges.length) {
|
|
1508
|
+
if (indexPending == pendingRanges.length || (indexSorted < sortedRanges.length && sortedRanges[indexSorted].start < pendingRanges[indexPending].start)) {
|
|
1509
|
+
mergedRanges.push(sortedRanges[indexSorted++]);
|
|
1510
|
+
} else {
|
|
1511
|
+
mergedRanges.push(pendingRanges[indexPending++]);
|
|
1512
|
+
}
|
|
1466
1513
|
}
|
|
1467
|
-
|
|
1514
|
+
return mergedRanges;
|
|
1468
1515
|
}
|
|
1469
1516
|
|
|
1470
1517
|
function readDataDescriptor(dataDescriptorView, offset, extraFieldZip64) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const t=[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],r=[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],n=[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],e=[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],l=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],s=new Uint8Array(288);s.fill(8,0,144),s.fill(9,144,256),s.fill(7,256,280),s.fill(8,280,288);const z=new Uint8Array(30).fill(5);function p(t){const r=new Uint16Array(16);for(const n of t)r[n]++;r[0]=0;const n=new Uint16Array(17);for(let t=1;t<=15;t++)n[t+1]=n[t]+r[t];const e=new Uint16Array(t.length);for(let r=0;r<t.length;r++)t[r]&&(e[n[t[r]]++]=r);return{l:r,symbols:e}}const f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function o(o){let h;o({wasmURI:()=>(h||(h="data:application/wasm;base64,"+function(t){let r="";const n=t.length;let e=0;for(;e+2<n;e+=3){const n=t[e]<<16|t[e+1]<<8|t[e+2];r+=f[n>>18&63]+f[n>>12&63]+f[n>>6&63]+f[63&n]}const l=n-e;if(1===l){const n=t[e]<<16;r+=f[n>>18&63]+f[n>>12&63]+"=="}else if(2===l){const n=t[e]<<16|t[e+1]<<8;r+=f[n>>18&63]+f[n>>12&63]+f[n>>6&63]+"="}return r}(function(f){let o=0,h=0,u=0,V=new Uint8Array(1024),c=0,T=0;for(;!T;){T=O(1);const t=O(2);if(0==t)Z();else if(1==t)i(p(s),p(z));else{if(2!=t)throw new Error("invalid deflate block type");i(...w())}}return V.subarray(0,c);function v(){if(o>=f.length)throw new Error("unexpected end of deflate data");return f[o++]}function O(t){for(;u<t;)h|=v()<<u,u+=8;const r=h&(1<<t)-1;return h>>>=t,u-=t,r}function Z(){h=0,u=0;const t=v()|v()<<8;o+=2,a(c+t);for(let r=0;r<t;r++)V[c++]=v()}function i(l,s){let z=X(l);for(;256!=z;){if(z<256)a(c+1),V[c++]=z;else{const l=z-257,p=t[l]+O(r[l]),f=X(s),o=n[f]+O(e[f]);a(c+p);const h=c-o;for(let t=0;t<p;t++)V[c++]=V[h+t]}z=X(l)}}function w(){const t=O(5)+257,r=O(5)+1,n=O(4)+4,e=new Uint8Array(19);for(let t=0;t<n;t++)e[l[t]]=O(3);const s=p(e),z=new Uint8Array(t+r);let f=0;for(;f<z.length;){const t=X(s);if(t<16)z[f++]=t;else if(16==t){const t=z[f-1];let r=O(2)+3;for(;r--;)z[f++]=t}else f+=17==t?O(3)+3:O(7)+11}return[p(z.subarray(0,t)),p(z.subarray(t))]}function X(t){const{l:r,symbols:n}=t;let e=0,l=0,s=0;for(let t=1;t<=15;t++){e|=O(1);const z=r[t];if(e-l<z)return n[s+(e-l)];s+=z,l=l+z<<1,e<<=1}throw new Error("invalid huffman code")}function a(t){if(V.length<t){let r=2*V.length;for(;r<t;)r*=2;const n=new Uint8Array(r);n.set(V.subarray(0,c)),V=n}}}(function(t){const r=(t=String(t).replace(/[^A-Za-z0-9+/=]/g,"")).length,n=[];for(let e=0;e<r;e+=4){const r=f.indexOf(t[e])<<18|f.indexOf(t[e+1])<<12|(63&f.indexOf(t[e+2]))<<6|63&f.indexOf(t[e+3]);n.push(r>>16&255),"="!==t[e+2]&&n.push(r>>8&255),"="!==t[e+3]&&n.push(255&r)}return new Uint8Array(n)}("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")))),h)})}export{o as configureZlibModule};
|
|
1
|
+
const n=[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],t=[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],r=[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],o=[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],f=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],e=new Uint8Array(288);e.fill(8,0,144),e.fill(9,144,256),e.fill(7,256,280),e.fill(8,280,288);const b=new Uint8Array(30).fill(5);function p(n){const t=new Uint16Array(16);for(const r of n)t[r]++;t[0]=0;const r=new Uint16Array(17);for(let n=1;n<=15;n++)r[n+1]=r[n]+t[n];const o=new Uint16Array(n.length);for(let t=0;t<n.length;t++)n[t]&&(o[r[n[t]]++]=t);return{o:t,symbols:o}}const X="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function s(s){let Y;s({wasmURI:()=>(Y||(Y="data:application/wasm;base64,"+function(n){let t="";const r=n.length;let o=0;for(;o+2<r;o+=3){const r=n[o]<<16|n[o+1]<<8|n[o+2];t+=X[r>>18&63]+X[r>>12&63]+X[r>>6&63]+X[63&r]}const f=r-o;if(1===f){const r=n[o]<<16;t+=X[r>>18&63]+X[r>>12&63]+"=="}else if(2===f){const r=n[o]<<16|n[o+1]<<8;t+=X[r>>18&63]+X[r>>12&63]+X[r>>6&63]+"="}return t}(function(X){let s=0,Y=0,l=0,x=new Uint8Array(1024),w=0,c=0;for(;!c;){c=a(1);const n=a(2);if(0==n)P();else if(1==n)B(p(e),p(b));else{if(2!=n)throw new Error("invalid deflate block type");B(...R())}}return x.subarray(0,w);function U(){if(s>=X.length)throw new Error("unexpected end of deflate data");return X[s++]}function a(n){for(;l<n;)Y|=U()<<l,l+=8;const t=Y&(1<<n)-1;return Y>>>=n,l-=n,t}function P(){Y=0,l=0;const n=U()|U()<<8;s+=2,W(w+n);for(let t=0;t<n;t++)x[w++]=U()}function B(f,e){let b=h(f);for(;256!=b;){if(b<256)W(w+1),x[w++]=b;else{const f=b-257,p=n[f]+a(t[f]),X=h(e),s=r[X]+a(o[X]);W(w+p);const Y=w-s;for(let n=0;n<p;n++)x[w++]=x[Y+n]}b=h(f)}}function R(){const n=a(5)+257,t=a(5)+1,r=a(4)+4,o=new Uint8Array(19);for(let n=0;n<r;n++)o[f[n]]=a(3);const e=p(o),b=new Uint8Array(n+t);let X=0;for(;X<b.length;){const n=h(e);if(n<16)b[X++]=n;else if(16==n){const n=b[X-1];let t=a(2)+3;for(;t--;)b[X++]=n}else X+=17==n?a(3)+3:a(7)+11}return[p(b.subarray(0,n)),p(b.subarray(n))]}function h(n){const{o:t,symbols:r}=n;let o=0,f=0,e=0;for(let n=1;n<=15;n++){o|=a(1);const b=t[n];if(o-f<b)return r[e+(o-f)];e+=b,f=f+b<<1,o<<=1}throw new Error("invalid huffman code")}function W(n){if(x.length<n){let t=2*x.length;for(;t<n;)t*=2;const r=new Uint8Array(t);r.set(x.subarray(0,w)),x=r}}}(function(n){const t=(n=String(n).replace(/[^A-Za-z0-9+/=]/g,"")).length,r=[];for(let o=0;o<t;o+=4){const t=X.indexOf(n[o])<<18|X.indexOf(n[o+1])<<12|(63&X.indexOf(n[o+2]))<<6|63&X.indexOf(n[o+3]);r.push(t>>16&255),"="!==n[o+2]&&r.push(t>>8&255),"="!==n[o+3]&&r.push(255&t)}return new Uint8Array(r)}("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")))),Y)})}export{s as configureZlibModule};
|
package/package.json
CHANGED