@zip.js/zip.js 2.16.0 → 2.17.0

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.
Files changed (49) hide show
  1. package/deno.json +1 -1
  2. package/dist/zip-core-external.js +429 -274
  3. package/dist/zip-core-external.min.js +1 -1
  4. package/dist/zip-core.js +230 -151
  5. package/dist/zip-core.min.js +1 -1
  6. package/dist/zip-fs-core-external.js +580 -283
  7. package/dist/zip-fs-core-external.min.js +1 -1
  8. package/dist/zip-fs-core.js +383 -160
  9. package/dist/zip-fs-core.min.js +1 -1
  10. package/dist/zip-fs-external.js +580 -283
  11. package/dist/zip-fs-external.min.js +1 -1
  12. package/dist/zip-fs-native.js +386 -163
  13. package/dist/zip-fs-native.min.js +1 -1
  14. package/dist/zip-fs.js +583 -283
  15. package/dist/zip-fs.min.js +1 -1
  16. package/dist/zip-legacy.js +232 -153
  17. package/dist/zip-legacy.min.js +1 -1
  18. package/dist/zip-native.js +233 -154
  19. package/dist/zip-native.min.js +1 -1
  20. package/dist/zip-web-worker-native.js +1 -1
  21. package/dist/zip-web-worker.js +1 -1
  22. package/dist/zip.js +430 -274
  23. package/dist/zip.min.js +1 -1
  24. package/eslint.config.mjs +1 -1
  25. package/index-native.cjs +386 -163
  26. package/index-native.min.js +1 -1
  27. package/index.cjs +583 -283
  28. package/index.d.cts +168 -29
  29. package/index.d.ts +168 -29
  30. package/index.min.js +1 -1
  31. package/lib/core/codec-pool.js +2 -0
  32. package/lib/core/codec-worker-web.js +11 -3
  33. package/lib/core/codec-worker.js +2 -1
  34. package/lib/core/streams/aes-crypto-stream.js +60 -17
  35. package/lib/core/streams/codec-stream.js +2 -0
  36. package/lib/core/streams/zip-crypto-stream.js +7 -7
  37. package/lib/core/streams/zip-entry-stream.js +130 -113
  38. package/lib/core/streams/zlib-js/zlib-streams.min.js +1 -1
  39. package/lib/core/streams/zlib-wasm/zlib-streams.js +199 -122
  40. package/lib/core/util/compatible-streams.js +10 -5
  41. package/lib/core/version.js +1 -1
  42. package/lib/core/web-worker-base.js +1 -1
  43. package/lib/core/web-worker-inline-native.js +1 -1
  44. package/lib/core/web-worker-inline-wasm.js +1 -1
  45. package/lib/core/zip-fs.js +157 -10
  46. package/lib/core/zip-reader.js +8 -5
  47. package/lib/core/zip-writer.js +5 -2
  48. package/lib/zip-core-reader.js +1 -0
  49. package/package.json +3 -2
@@ -1 +1 @@
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],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],t=[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],f=[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],s=[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 o=new Uint8Array(30).fill(5);function u(n){const r=new Uint16Array(16);for(const t of n)r[t]++;r[0]=0;const t=new Uint16Array(17);for(let n=1;n<=15;n++)t[n+1]=t[n]+r[n];const f=new Uint16Array(n.length);for(let r=0;r<n.length;r++)n[r]&&(f[t[n[r]]++]=r);return{lengthCounts:r,symbols:f}}const h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",g=(O=()=>function(h){let g=0,O=0,w=0,l=new Uint8Array(1024),W=0,V=0;for(;!V;){V=c(1);const n=c(2);if(0==n)L();else if(1==n)Y(u(e),u(o));else{if(2!=n)throw new Error("invalid deflate block type");Y(...i())}}return l.subarray(0,W);function y(){if(g>=h.length)throw new Error("unexpected end of deflate data");return h[g++]}function c(n){for(;w<n;)O|=y()<<w,w+=8;const r=O&(1<<n)-1;return O>>>=n,w-=n,r}function L(){O=0,w=0;const n=y()|y()<<8;g+=2,B(W+n);for(let r=0;r<n;r++)l[W++]=y()}function Y(s,e){let o=m(s);for(;256!=o;){if(o<256)B(W+1),l[W++]=o;else{const s=o-257,u=n[s]+c(r[s]),h=m(e),g=t[h]+c(f[h]);B(W+u);const O=W-g;for(let n=0;n<u;n++)l[W++]=l[O+n]}o=m(s)}}function i(){const n=c(5)+257,r=c(5)+1,t=c(4)+4,f=new Uint8Array(19);for(let n=0;n<t;n++)f[s[n]]=c(3);const e=u(f),o=new Uint8Array(n+r);let h=0;for(;h<o.length;){const n=m(e);if(n<16)o[h++]=n;else if(16==n){const n=o[h-1];let r=c(2)+3;for(;r--;)o[h++]=n}else h+=17==n?c(3)+3:c(7)+11}return[u(o.subarray(0,n)),u(o.subarray(n))]}function m(n){const{lengthCounts:r,symbols:t}=n;let f=0,s=0,e=0;for(let n=1;n<=15;n++){f|=c(1);const o=r[n];if(f-s<o)return t[e+(f-s)];e+=o,s=s+o<<1,f<<=1}throw new Error("invalid huffman code")}function B(n){if(l.length<n){let r=2*l.length;for(;r<n;)r*=2;const t=new Uint8Array(r);t.set(l.subarray(0,W)),l=t}}}(function(n){const r=(n=String(n).replace(/[^A-Za-z0-9+/=]/g,"")).length,t=[];for(let f=0;f<r;f+=4){const r=h.indexOf(n[f])<<18|h.indexOf(n[f+1])<<12|(63&h.indexOf(n[f+2]))<<6|63&h.indexOf(n[f+3]);t.push(r>>16&255),"="!==n[f+2]&&t.push(r>>8&255),"="!==n[f+3]&&t.push(255&r)}return new Uint8Array(t)}("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")),n=>n({workerURI:n=>{const r="text/javascript";let t=O();if("string"==typeof t&&(t=(new TextEncoder).encode(t)),n){const n=new Blob([t],{type:r});return URL.createObjectURL(n)}return"data:"+r+";base64,"+function(n){let r="";const t=n.length;let f=0;for(;f+2<t;f+=3){const t=n[f]<<16|n[f+1]<<8|n[f+2];r+=h[t>>18&63]+h[t>>12&63]+h[t>>6&63]+h[63&t]}const s=t-f;if(1===s){const t=n[f]<<16;r+=h[t>>18&63]+h[t>>12&63]+"=="}else if(2===s){const t=n[f]<<16|n[f+1]<<8;r+=h[t>>18&63]+h[t>>12&63]+h[t>>6&63]+"="}return r}(t)}}));var O;export{g as configureWebWorker};
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],l=[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],e=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],o=new Uint8Array(288);o.fill(8,0,144),o.fill(9,144,256),o.fill(7,256,280),o.fill(8,280,288);const u=new Uint8Array(30).fill(5);function w(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 l=new Uint16Array(n.length);for(let t=0;t<n.length;t++)n[t]&&(l[r[n[t]]++]=t);return{lengthCounts:t,symbols:l}}const s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",F=(O=()=>function(s){let F=0,O=0,a=0,Q=new Uint8Array(1024),c=0,W=0;for(;!W;){W=U(1);const n=U(2);if(0==n)f();else if(1==n)h(w(o),w(u));else{if(2!=n)throw new Error("invalid deflate block type");h(...v())}}return Q.subarray(0,c);function g(){if(F>=s.length)throw new Error("unexpected end of deflate data");return s[F++]}function U(n){for(;a<n;)O|=g()<<a,a+=8;const t=O&(1<<n)-1;return O>>>=n,a-=n,t}function f(){O=0,a=0;const n=g()|g()<<8;F+=2,p(c+n);for(let t=0;t<n;t++)Q[c++]=g()}function h(e,o){let u=L(e);for(;256!=u;){if(u<256)p(c+1),Q[c++]=u;else{const e=u-257,w=n[e]+U(t[e]),s=L(o),F=r[s]+U(l[s]);p(c+w);const O=c-F;for(let n=0;n<w;n++)Q[c++]=Q[O+n]}u=L(e)}}function v(){const n=U(5)+257,t=U(5)+1,r=U(4)+4,l=new Uint8Array(19);for(let n=0;n<r;n++)l[e[n]]=U(3);const o=w(l),u=new Uint8Array(n+t);let s=0;for(;s<u.length;){const n=L(o);if(n<16)u[s++]=n;else if(16==n){const n=u[s-1];let t=U(2)+3;for(;t--;)u[s++]=n}else s+=17==n?U(3)+3:U(7)+11}return[w(u.subarray(0,n)),w(u.subarray(n))]}function L(n){const{lengthCounts:t,symbols:r}=n;let l=0,e=0,o=0;for(let n=1;n<=15;n++){l|=U(1);const u=t[n];if(l-e<u)return r[o+(l-e)];o+=u,e=e+u<<1,l<<=1}throw new Error("invalid huffman code")}function p(n){if(Q.length<n){let t=2*Q.length;for(;t<n;)t*=2;const r=new Uint8Array(t);r.set(Q.subarray(0,c)),Q=r}}}(function(n){const t=(n=String(n).replace(/[^A-Za-z0-9+/=]/g,"")).length,r=[];for(let l=0;l<t;l+=4){const t=s.indexOf(n[l])<<18|s.indexOf(n[l+1])<<12|(63&s.indexOf(n[l+2]))<<6|63&s.indexOf(n[l+3]);r.push(t>>16&255),"="!==n[l+2]&&r.push(t>>8&255),"="!==n[l+3]&&r.push(255&t)}return new Uint8Array(r)}("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")),n=>n({workerURI:n=>{const t="text/javascript";let r=O();if("string"==typeof r&&(r=(new TextEncoder).encode(r)),n){const n=new Blob([r],{type:t});return URL.createObjectURL(n)}return"data:"+t+";base64,"+function(n){let t="";const r=n.length;let l=0;for(;l+2<r;l+=3){const r=n[l]<<16|n[l+1]<<8|n[l+2];t+=s[r>>18&63]+s[r>>12&63]+s[r>>6&63]+s[63&r]}const e=r-l;if(1===e){const r=n[l]<<16;t+=s[r>>18&63]+s[r>>12&63]+"=="}else if(2===e){const r=n[l]<<16|n[l+1]<<8;t+=s[r>>18&63]+s[r>>12&63]+s[r>>6&63]+"="}return t}(r)}}));var O;export{F as configureWebWorker};
@@ -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 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,k="undefined",z="function",b=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,M,x,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]^x[255&e]^M[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 V(t){return new u(t.buffer,t.byteOffset,t.byteLength)}const W=64,j=20,K=new r([128]),O=new r(1),T=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(T),n=new a(16),e=new r(W),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(K,0,1);56!=i;)w(O,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(j),l=new u(a.buffer);for(let n=0;n<t.length;n++)l.setInt32(4*n,t[n]);return t.set(T),i=0,f=0,a}};function w(t,n,o){const r=n+o;if(f+=o,i){for(;n<r&&i<W;)e[i++]=t[n++];i==W&&(l(s,0),i=0)}if(n+W<=r){const e=new u(t.buffer,t.byteOffset,t.byteLength);for(;n+W<=r;n+=W)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(W),s=new r(W);t.length>W&&(n.update(t,0,t.length),t=n.digest());for(let n=0;n<W;n++){const o=n<t.length?t[n]:0;e[n]=54^o,s[n]=92^o}return n.update(e,0,W),{update(t,e,o){n.update(t,e,o)},digest(){const t=n.digest();n.update(s,0,W),n.update(t,0,j);const o=n.digest();return n.update(e,0,W),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!=k&&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!=k,wt=ut&&h.subtle;let lt=ut&&typeof wt!=k&&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,kt(o,0,it[n])),c=kt(o,it[n]);if(r[0]!=c[0]||r[1]!=c[1])throw St(t),new s(tt)}(e,i,c,kt(t,0,it[i]+2)),t=kt(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=kt(e,e.length-ft),a=new r(kt(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=b;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=kt(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:b})}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=kt(e,o,o+u);t.set(kt(n,0,u)),i.process(t,c)}return t.m=kt(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+=j){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,j),r=c.digest();for(let t=0;t<j;t++)u[t]^=r[t]}i.set(u.subarray(0,o.min(j,s-e)),e)}return i}(t,e,0,s)}(s,c,2*i+2);return t.h=ht(kt(a,0,i),kt(a,i,2*i)),kt(a,2*i)}function vt(t,n){return n===v?function(t){if(typeof l==k){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 kt(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 bt 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++)Mt(t,o[n]);else for(let n=0;n<e.length;n++)Mt(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]=xt(t)^n[o],Mt(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]=xt(t)^n[o],Mt(t,n[o]);return e}function Mt(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 xt(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="Invalid CRC32",Vt="deflate-raw",Wt="gzip",jt=[31,139,8];class Kt 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),k=qt(c,o,e),z=a&&s&&!w&&!v&&(!r||i)&&Boolean(k);if(r&&!i||!a||z||(y=new U,g=Jt(g,y)),s)if(v)g=Qt(g,Nt(v.CompressionStream,l,{level:f,chunkSize:n,compressionMethod:h,uncompressedSize:p}));else if(z)S=new Ot,g=Qt(g,new k(Wt,{level:f,chunkSize:n})),g=Jt(g,S);else try{g=Gt(g,c,{level:f,chunkSize:n},o,e)}catch(t){if(!c&&e)throw t;let n;try{n=new o(Wt)}catch{throw t}g=Qt(g,n),g=Jt(g,new Ot)}r&&(i?g=Jt(g,new bt(t)):(m=new dt(t),g=Jt(g,m))),Lt(d,g,()=>{r&&!i||!a||(d.crc32=z?S.crc32:new u(y.value.buffer).getUint32(0))})}}class Ot 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=V(e);t.crc32=n.getUint32(0,!0),t.uncompressedSize=n.getUint32(4,!0)}}),t=this}}class Tt 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:d,compressionMethod:m,rawBitFlag:S,outputSize:g}=t;let k,z,b,C=super.readable;if(i&&(c?C=Jt(C,new zt(t)):(z=new pt(t),C=Jt(C,z))),l){const t=d&&Rt(d);if(t)C=Qt(C,Nt(t.DecompressionStream,d,{chunkSize:n,compressionMethod:m,rawBitFlag:S,uncompressedSize:g}));else{let t;const c=qt(h,o,e);if(a&&!p&&f!==v&&g!==v&&c)try{t=new c(Wt,{chunkSize:n})}catch{t=v}if(!t)try{C=Gt(C,h,{chunkSize:n,deflate64:p},o,e)}catch(n){if(p||g===v||!h&&e)throw n;try{t=new o(Wt)}catch{throw n}}t&&(b=!0,C=function(t,n,e,o){const c=n.writable.getWriter(),i=n.readable.getReader(),a=o===v?new R:v;let f,u,l=0,h=!1,p=!1,d=!1,m=0,S=!1;const g=new w((t,n)=>{f=t,u=n});return g.catch(()=>{}),async function(){const n=t.getReader();try{const t=new r(10);for(t.set(jt),await c.write(t);;){await c.ready;const{value:t,done:e}=await n.read();if(e)break;await c.write(t)}h=!0,a&&(S&&z(),await g);const s=new r(8),i=V(s);i.setUint32(0,a?a.get():o,!0),i.setUint32(4,e,!0),p=!0,await c.write(s),await c.close()}catch(t){await Xt(c,t),await Yt(n,t)}}(),new y({async pull(t){let n;try{n=await function(){m++,S=!0;const t=i.read();return t.then(k,k),h&&a&&z(),t}()}catch(t){throw p?function(t){const n=new s(l==e?Bt:Ut);return n.cause=t,n}(t):t}const{value:o,done:r}=n;if(r)t.close();else{if(l+=o.length,l>e){const t=new s(Ut);throw u(t),await Yt(i,t),t}a&&a.append(o),t.enqueue(o)}},cancel:t=>(u(t),i.cancel(t))});function k(){S=!1}async function z(){if(!d){d=!0;const t=m;await new w(t=>{const{port1:n,port2:e}=new MessageChannel;e.onmessage=()=>{n.close(),e.close(),t()},n.postMessage(v)}),d=!1,S&&(m==t?f():z())}}}(C,t,g,f))}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&&!b&&(k=new U,C=Jt(C,k)),Lt(this,C,()=>{if(k){const t=new u(k.value.buffer).getUint32(0,!1);if(f!=t)throw new s(Bt)}})}}const Ht=new f;function Lt(t,e,o){e=Jt(e,new d({flush:o})),n.defineProperty(t,"readable",{get:()=>e})}function Nt(t,n,e){if(!t)throw new s("Compression method not supported");return new t(n,e)}function qt(t,n,e){return t&&n?n:e&&e.requiresModule?e:void 0}function Gt(t,n,e,o,s){const r=n&&o?o:s||o,c=e.deflate64?"deflate64-raw":Vt;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 Jt(t,n){return Ft(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 Xt(e,t),await Yt(o,t)}}(),n.readable}async function Xt(t,n){try{await t.abort(n)}catch{}}async function Yt(t,n){try{await t.cancel(n)}catch{}}const Zt="data",$t="deflate";class _t extends d{constructor(t,e){super({});const o=this,{codecType:r}=t;let c;r.startsWith($t)?c=Kt:r.startsWith("inflate")&&(c=Tt),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 tn 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 nn=2;try{typeof navigator!=k&&navigator.hardwareConcurrency&&(nn=navigator.hardwareConcurrency)}catch{}function en(t){return Boolean(t)&&"object"==typeof t}const on=new f,sn=new f,rn=function(){try{return structuredClone(new s)instanceof s}catch{return!1}}();let cn=0;async function an(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(en(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=Ht.get(t);e||(e=new f,Ht.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($t)?a.CompressionStream:a.DecompressionStream,Vt))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=>on.set(cn,t));fn({type:"pull",messageId:cn}),cn=(cn+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);sn.set(cn,n),fn({type:Zt,value:t,messageId:cn}),cn=(cn+1)%e.MAX_SAFE_INTEGER,await o}},u),n=new _t(i,a),r=new tn(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;fn({type:"close",result:{crc32:h,inputSize:p,outputSize:d}})}catch(t){const n=r?r.outputSize:0;if(en(t))try{t.outputSize=n}catch{}if(c&&!c.locked)try{await c.getWriter().close()}catch{}un(t,n)}}function fn(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 un(t,n){const{message:e,stack:o,code:r,name:c,outputSize:i,cause:a,codecImportFailed:f}=function(t=new s("Unknown error")){return en(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),rn)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&&an(t),n==Zt){const t=on.get(e);on.delete(e),t({value:o||new r,done:s})}if("ack"==n){const t=sn.get(e);sn.delete(e),t()}}catch(t){un(t)}}),p({type:"ready"});const wn="deflate",ln="deflate-raw",hn="deflate64-raw",pn="gzip";let dn,yn,mn,Sn,gn;function vn(t,n,e={}){if(!dn){const t=new s("WASM module not loaded");throw t.cause=gn,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=yn(i),this.in=yn(a),this.inBufferSize=a,!this.C||!this.in)throw new s("allocation failed");if(t?(this.I=dn.deflate_process,this.A=dn.deflate_last_consumed,this.M=dn.deflate_end,this.P=dn.deflate_new(),e=n===pn?dn.deflate_init_gzip(this.P,c):n===ln?dn.deflate_init_raw(this.P,c):dn.deflate_init(this.P,c)):n===hn?(this.I=dn.inflate9_process,this.A=dn.inflate9_last_consumed,this.M=dn.inflate9_end,this.P=dn.inflate9_new(),e=dn.inflate9_init_raw(this.P)):(this.I=dn.inflate_process,this.A=dn.inflate_last_consumed,this.M=dn.inflate_end,this.P=dn.inflate_new(),e=n===ln?dn.inflate_init_raw(this.P):n===pn?dn.inflate_init_gzip(this.P):dn.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(Sn.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&&mn&&(mn(this.in),this.in=0),this.in=yn(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(Sn.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&&mn&&mn(t.in),t.in=0,t.C&&mn&&mn(t.C),t.C=0,n}}class kn{constructor(t=wn,n){return vn(!0,t,n)}}class zn{constructor(t=wn,n){return vn(!1,t,n)}}kn.requiresModule=!0,zn.requiresModule=!0,kn.supportedFormats=[wn,ln,pn],zn.supportedFormats=[wn,ln,pn,hn];const bn=65536;let Cn,In;function An(t){return new r(t.memory.buffer)}let Mn=!1;!function(t={}){const{init:n,D: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:kn,DecompressionStreamFallback:zn,D:function(t,n){const e=Cn;let o=e?function(t,n,e){In||(In=t.malloc(bn));const o=In?t.aes_hmac_new():0;if(o){const s=An(t);if(s.set(n,In),s.set(e,In+n.length),t.aes_hmac_init(o,In,n.length,In+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=In;return{process(t,n){for(let r=0;r<t.length;r+=bn){const c=t.subarray(r,r+bn),i=An(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,An(e).slice(s,s+20)),dispose(){o&&(e.aes_hmac_end(o,0),o=0)}}},init:t=>async function(t,{baseURI:n}){if(!Mn)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(dn=t,({malloc:yn,free:mn,memory:Sn}=dn),"function"!=typeof yn||"function"!=typeof mn||!Sn)throw dn=yn=mn=Sn=null,new s("Invalid WASM module")})(c.instance.exports),typeof(i=c.instance.exports).aes_hmac_new==z&&(Cn=i,In=0)}(t,n),Mn=!0}catch(t){throw function(t){gn=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};
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 r='!function(t){"function"==typeof define&&define.amd?define(t):t()}(function(){"use strict";const{Array:t,Object:n,Number:e,Math:o,Error:r,Uint8Array:c,Uint16Array:s,Uint32Array:a,Int32Array:i,Map:f,DataView:u,Promise:w,TextEncoder:l,crypto:d,postMessage:p,TransformStream:h,ReadableStream:y,WritableStream:m,CompressionStream:S,DecompressionStream:g}=self,v=void 0,b="undefined",k="function",z=new c,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,M,A,E,R,x,P,D]=C;class F{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 r=new u(t.buffer,t.byteOffset,e),c=e-8;for(;o<=c;o+=8){const t=n^r.getInt32(o,!0),e=r.getInt32(o+4,!0);n=D[255&t]^P[t>>>8&255]^x[t>>>16&255]^R[t>>>24&255]^E[255&e]^A[e>>>8&255]^M[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 h{constructor(){let t;const n=new F;super({transform(t,e){n.append(t),e.enqueue(t)},flush(){const e=new c(4);new u(e.buffer).setUint32(0,n.get()),t.value=e}}),t=this}}function B(t,n){const e=new c(t.length+n.length);return e.set(t),e.set(n,t.length),e}function W(t){return new u(t.buffer,t.byteOffset,t.byteLength)}const O=64,V=20,K=new c([128]),T=new c(1),_=new i([1732584193,4023233417,2562383102,271733878,3285377520]),j=new c(256),H=new i(256),L=new i(256),Z=new i(256),N=new i(256);let q=!1;function G(t,n){!function(){if(!q){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),j[t]=255&(n^(n<<1|n>>7)^(n<<2|n>>6)^(n<<3|n>>5)^(n<<4|n>>4)^99)}while(1!=t);j[0]=99;for(let t=0;t<256;t++){const n=j[t],e=Y(n),o=e<<24|n<<16|n<<8|e^n;H[t]=o,L[t]=o>>>8|o<<24,Z[t]=o>>>16|o<<16,N[t]=o>>>24|o<<8}q=!0}}();const e=new i(60),o=function(t,n){const e=t.length>>2,o=e+6,r=4*(o+1);let c=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<r;t++){let o=n[t-1];t%e==0?(o=Q(o<<8|o>>>24)^c<<24,c=Y(c)):e>6&&t%e==4&&(o=Q(o)),n[t]=n[t-e]^o}return o}(t,e),r=new i(4),c=J(n);let s=0,a=0,f=0,w=0;return{process(t,n){n&&c.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)^r[0]),n.setInt32(o+4,n.getInt32(o+4)^r[1]),n.setInt32(o+8,n.getInt32(o+8)^r[2]),n.setInt32(o+12,n.getInt32(o+12)^r[3]);if(o<e){l();for(let n=0;o<e;o++,n++)t[o]^=r[n>>2]>>>24-8*(3&n)}}(t),n||c.update(t,0,t.length)},digest:()=>c.digest()};function l(){s=s+1|0,s||(a=a+1|0,a||(f=f+1|0,f||(w=w+1|0)));let t=X(s)^e[0],n=X(a)^e[1],c=X(f)^e[2],i=X(w)^e[3],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[4],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[5],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[6],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[7];t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[8],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[9],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[10],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[11],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[12],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[13],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[14],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[15],t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[16],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[17],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[18],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[19],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[20],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[21],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[22],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[23],t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[24],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[25],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[26],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[27],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[28],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[29],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[30],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[31],t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[32],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[33],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[34],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[35],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[36],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[37],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[38],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[39];let h=40;o>10&&(t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[40],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[41],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[42],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[43],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[44],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[45],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[46],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[47],h=48),o>12&&(t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[48],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[49],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[50],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[51],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[52],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[53],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[54],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[55],h=56),r[0]=(j[u>>>24]<<24|j[l>>>16&255]<<16|j[d>>>8&255]<<8|j[255&p])^e[h],r[1]=(j[l>>>24]<<24|j[d>>>16&255]<<16|j[p>>>8&255]<<8|j[255&u])^e[h+1],r[2]=(j[d>>>24]<<24|j[p>>>16&255]<<16|j[u>>>8&255]<<8|j[255&l])^e[h+2],r[3]=(j[p>>>24]<<24|j[u>>>16&255]<<16|j[l>>>8&255]<<8|j[255&d])^e[h+3]}}function J(t){const n=function(){const t=new i(_),n=new i(16),e=new c(O),r=new u(e.buffer),s=new c(8);let a=0,f=0;return{update:w,digest:function(){const n=8*f,e=o.floor(n/4294967296),r=n>>>0;for(w(K,0,1);56!=a;)w(T,0,1);s[0]=e>>>24,s[1]=e>>>16,s[2]=e>>>8,s[3]=e,s[4]=r>>>24,s[5]=r>>>16,s[6]=r>>>8,s[7]=r,w(s,0,8);const i=new c(V),l=new u(i.buffer);for(let n=0;n<t.length;n++)l.setInt32(4*n,t[n]);return t.set(_),a=0,f=0,i}};function w(t,n,o){const c=n+o;if(f+=o,a){for(;n<c&&a<O;)e[a++]=t[n++];a==O&&(l(r,0),a=0)}if(n+O<=c){const e=new u(t.buffer,t.byteOffset,t.byteLength);for(;n+O<=c;n+=O)l(e,n)}for(;n<c;)e[a++]=t[n++]}function l(e,o){for(let t=0;t<16;t++)n[t]=e.getInt32(o+4*t);let r,c=t[0],s=t[1],a=t[2],i=t[3],f=t[4];for(let t=0;t<15;t+=5)f=(c<<5|c>>>27)+((a^i)&s^i)+f+1518500249+n[t]|0,s=s<<30|s>>>2,i=(f<<5|f>>>27)+((s^a)&c^a)+i+1518500249+n[t+1]|0,c=c<<30|c>>>2,a=(i<<5|i>>>27)+((c^s)&f^s)+a+1518500249+n[t+2]|0,f=f<<30|f>>>2,s=(a<<5|a>>>27)+((f^c)&i^c)+s+1518500249+n[t+3]|0,i=i<<30|i>>>2,c=(s<<5|s>>>27)+((i^f)&a^f)+c+1518500249+n[t+4]|0,a=a<<30|a>>>2;f=(c<<5|c>>>27)+((a^i)&s^i)+f+1518500249+n[15]|0,s=s<<30|s>>>2,r=n[13]^n[8]^n[2]^n[0],r=r<<1|r>>>31,n[0]=r,i=(f<<5|f>>>27)+((s^a)&c^a)+i+1518500249+r|0,c=c<<30|c>>>2,r=n[14]^n[9]^n[3]^n[1],r=r<<1|r>>>31,n[1]=r,a=(i<<5|i>>>27)+((c^s)&f^s)+a+1518500249+r|0,f=f<<30|f>>>2,r=n[15]^n[10]^n[4]^n[2],r=r<<1|r>>>31,n[2]=r,s=(a<<5|a>>>27)+((f^c)&i^c)+s+1518500249+r|0,i=i<<30|i>>>2,r=n[0]^n[11]^n[5]^n[3],r=r<<1|r>>>31,n[3]=r,c=(s<<5|s>>>27)+((i^f)&a^f)+c+1518500249+r|0,a=a<<30|a>>>2;for(let t=20;t<40;t+=5)r=n[t-3&15]^n[t-8&15]^n[t-14&15]^n[15&t],r=r<<1|r>>>31,n[15&t]=r,f=(c<<5|c>>>27)+(s^a^i)+f+1859775393+r|0,s=s<<30|s>>>2,r=n[t-2&15]^n[t-7&15]^n[t-13&15]^n[t+1&15],r=r<<1|r>>>31,n[t+1&15]=r,i=(f<<5|f>>>27)+(c^s^a)+i+1859775393+r|0,c=c<<30|c>>>2,r=n[t-1&15]^n[t-6&15]^n[t-12&15]^n[t+2&15],r=r<<1|r>>>31,n[t+2&15]=r,a=(i<<5|i>>>27)+(f^c^s)+a+1859775393+r|0,f=f<<30|f>>>2,r=n[15&t]^n[t-5&15]^n[t-11&15]^n[t+3&15],r=r<<1|r>>>31,n[t+3&15]=r,s=(a<<5|a>>>27)+(i^f^c)+s+1859775393+r|0,i=i<<30|i>>>2,r=n[t+1&15]^n[t-4&15]^n[t-10&15]^n[t+4&15],r=r<<1|r>>>31,n[t+4&15]=r,c=(s<<5|s>>>27)+(a^i^f)+c+1859775393+r|0,a=a<<30|a>>>2;for(let t=40;t<60;t+=5)r=n[t-3&15]^n[t-8&15]^n[t-14&15]^n[15&t],r=r<<1|r>>>31,n[15&t]=r,f=(c<<5|c>>>27)+(s&a|(s|a)&i)+f+2400959708+r|0,s=s<<30|s>>>2,r=n[t-2&15]^n[t-7&15]^n[t-13&15]^n[t+1&15],r=r<<1|r>>>31,n[t+1&15]=r,i=(f<<5|f>>>27)+(c&s|(c|s)&a)+i+2400959708+r|0,c=c<<30|c>>>2,r=n[t-1&15]^n[t-6&15]^n[t-12&15]^n[t+2&15],r=r<<1|r>>>31,n[t+2&15]=r,a=(i<<5|i>>>27)+(f&c|(f|c)&s)+a+2400959708+r|0,f=f<<30|f>>>2,r=n[15&t]^n[t-5&15]^n[t-11&15]^n[t+3&15],r=r<<1|r>>>31,n[t+3&15]=r,s=(a<<5|a>>>27)+(i&f|(i|f)&c)+s+2400959708+r|0,i=i<<30|i>>>2,r=n[t+1&15]^n[t-4&15]^n[t-10&15]^n[t+4&15],r=r<<1|r>>>31,n[t+4&15]=r,c=(s<<5|s>>>27)+(a&i|(a|i)&f)+c+2400959708+r|0,a=a<<30|a>>>2;for(let t=60;t<80;t+=5)r=n[t-3&15]^n[t-8&15]^n[t-14&15]^n[15&t],r=r<<1|r>>>31,n[15&t]=r,f=(c<<5|c>>>27)+(s^a^i)+f+3395469782+r|0,s=s<<30|s>>>2,r=n[t-2&15]^n[t-7&15]^n[t-13&15]^n[t+1&15],r=r<<1|r>>>31,n[t+1&15]=r,i=(f<<5|f>>>27)+(c^s^a)+i+3395469782+r|0,c=c<<30|c>>>2,r=n[t-1&15]^n[t-6&15]^n[t-12&15]^n[t+2&15],r=r<<1|r>>>31,n[t+2&15]=r,a=(i<<5|i>>>27)+(f^c^s)+a+3395469782+r|0,f=f<<30|f>>>2,r=n[15&t]^n[t-5&15]^n[t-11&15]^n[t+3&15],r=r<<1|r>>>31,n[t+3&15]=r,s=(a<<5|a>>>27)+(i^f^c)+s+3395469782+r|0,i=i<<30|i>>>2,r=n[t+1&15]^n[t-4&15]^n[t-10&15]^n[t+4&15],r=r<<1|r>>>31,n[t+4&15]=r,c=(s<<5|s>>>27)+(a^i^f)+c+3395469782+r|0,a=a<<30|a>>>2;t[0]=t[0]+c|0,t[1]=t[1]+s|0,t[2]=t[2]+a|0,t[3]=t[3]+i|0,t[4]=t[4]+f|0}}(),e=new c(O),r=new c(O);t.length>O&&(n.update(t,0,t.length),t=n.digest());for(let n=0;n<O;n++){const o=n<t.length?t[n]:0;e[n]=54^o,r[n]=92^o}return n.update(e,0,O),{update(t,e,o){n.update(t,e,o)},digest(){const t=n.digest();n.update(r,0,O),n.update(t,0,V);const o=n.digest();return n.update(e,0,O),o}}}function Q(t){return j[t>>>24]<<24|j[t>>>16&255]<<16|j[t>>>8&255]<<8|j[255&t]}function X(t){return t<<24|(65280&t)<<8|t>>>8&65280|t>>>24}function Y(t){return 255&(t<<1^27*(t>>7))}const $=typeof d!=b&&typeof d.getRandomValues==k,tt="Invalid password",nt="zipjs-abort-check-password";function et(t){if($)return d.getRandomValues(t);throw new r("Crypto API not supported")}const ot={name:"PBKDF2"},rt=n.assign({hash:{name:"HMAC"}},ot),ct=n.assign({iterations:1e3,hash:{name:"SHA-1"}},ot),st=["deriveBits"],at=[8,12,16],it=[16,24,32],ft=10,ut=typeof d!=b,wt=ut&&d.subtle;let lt=ut&&typeof wt!=b&&typeof wt.importKey==k&&typeof wt.deriveBits==k,dt=G;class pt extends h{constructor({password:t,rawPassword:n,encryptionStrength:e,checkPasswordOnly:o,checkAuthenticationCode:s=!0}){const a={};super({start(){yt(a,t,n,e)},async transform(t,n){const{password:e,strength:s,l:i,ready:f}=a;if(e?(await async function(t,n,e,o){const c=await vt(t,n,e,kt(o,0,at[n])),s=kt(o,at[n]);if(c[0]!=s[0]||c[1]!=s[1])throw gt(t),new r(tt)}(a,s,e,kt(t,0,at[s]+2)),t=kt(t,at[s]+2),o?(gt(a),n.error(new r(nt))):i()):await f,a.h)return;const u=new c(t.length-ft-(t.length-ft)%16);n.enqueue(St(a,t,u,0,ft,!0))},async flush(t){const{m:n,S:e,ready:o}=a;if(n){if(await o,a.h)return;const i=kt(e,e.length-ft),f=new c(kt(e,0,e.length-ft));n.process(f,!0);const u=n.digest();let w=e.length<ft?1:0;for(let t=0;t<ft;t++)w|=u[t]^i[t];if(w&&s)return void t.error(new r("Invalid authentication code"));t.enqueue(f)}}}),mt(this,a)}}class ht extends h{constructor({password:t,rawPassword:n,encryptionStrength:e}){const o={};super({start(){yt(o,t,n,e)},async transform(t,n){const{password:e,strength:r,l:s,ready:a}=o;let i=z;if(e?(i=await async function(t,n,e){const o=et(new c(at[n]));return B(o,await vt(t,n,e,o))}(o,r,e),s()):await a,o.h)return;const f=new c(i.length+t.length-t.length%16);f.set(i,0),n.enqueue(St(o,t,f,i.length,0,!1))},async flush(t){const{m:n,S:e,ready:r}=o;if(n){if(await r,o.h)return;const s=new c(e);n.process(s,!1);const a=kt(n.digest(),0,ft);t.enqueue(B(s,a))}}}),mt(this,o)}}function yt(t,e,o,r){n.assign(t,{ready:new w(n=>t.l=n),password:bt(e,o),strength:r-1,S:z,h:!1})}function mt(t,e){const o=t.readable.getReader(),r=new y({async pull(t){try{const{value:n,done:e}=await o.read();e?t.close():t.enqueue(n)}catch(t){throw gt(e),o.cancel(t).catch(()=>{}),t}},cancel:t=>(gt(e),o.cancel(t))});n.defineProperty(t,"readable",{get:()=>r})}function St(t,n,e,o,r,s){const{m:a,S:i}=t;i.length&&(n=B(i,n));const f=n.length-r,u=f-f%16;if(e=function(t,n){if(n&&n>t.length){const e=t;(t=new c(n)).set(e,0)}return t}(e,o+u),u){const t=kt(e,o,o+u);t.set(kt(n,0,u)),a.process(t,s)}return t.S=kt(n,u),e}function gt(t){const{m:n}=t;t.h=!0,n&&n.dispose&&n.dispose()}async function vt(t,e,r,s){t.password=null;const a=it[e],i=await async function(t,e,r){if(lt)try{const o=await wt.importKey("raw",t,rt,!1,st);return new c(await wt.deriveBits(n.assign({salt:e},ct),o,8*r))}catch{lt=!1}return function(t,n,e,r){const s=J(t),a=new c(r),i=new c(n.length+4),f=new u(i.buffer);i.set(n);for(let t=1,e=0;e<r;t++,e+=V){f.setUint32(n.length,t),s.update(i,0,i.length);let c=s.digest();const u=c.slice();for(let t=1;t<1e3;t++){s.update(c,0,V),c=s.digest();for(let t=0;t<V;t++)u[t]^=c[t]}a.set(u.subarray(0,o.min(V,r-e)),e)}return a}(t,e,0,r)}(r,s,2*a+2);return t.m=dt(kt(i,0,a),kt(i,a,2*a)),t.h&&gt(t),kt(i,2*a)}function bt(t,n){return n===v?function(t){if(typeof l==b){t=unescape(encodeURIComponent(t));const n=new c(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 kt(t,n,e){return t.subarray(n,e)}class zt extends h{constructor({password:t,rawPassword:n,passwordVerification:e,checkPasswordOnly:o}){super({start(){It(this,t,n,e)},transform(t,n){const e=this;if(e.password||e.rawPassword){const n=Mt(e,t.subarray(0,12));if(e.password=e.rawPassword=null,0!=(n[11]^e.passwordVerification))throw new r(tt);t=t.subarray(12)}o?n.error(new r(nt)):n.enqueue(Mt(e,t))}})}}class Ct extends h{constructor({password:t,rawPassword:n,passwordVerification:e}){super({start(){It(this,t,n,e)},transform(t,n){const e=this;let o,r;if(e.password||e.rawPassword){e.password=e.rawPassword=null;const n=et(new c(12));n[11]=e.passwordVerification,o=new c(t.length+n.length),o.set(At(e,n),0),r=12}else o=new c(t.length),r=0;o.set(At(e,t),r),n.enqueue(o)}})}}function It(t,e,o,r){n.assign(t,{password:e,rawPassword:o,passwordVerification:r}),function(t,e,o){const r=[305419896,591751049,878082192];if(n.assign(t,{v:r,C:new F(r[0]),I:new F(r[2])}),o)for(let n=0;n<o.length;n++)Et(t,o[n]);else for(let n=0;n<e.length;n++)Et(t,e.charCodeAt(n))}(t,e,o)}function Mt(t,n){const e=new c(n.length);for(let o=0;o<n.length;o++)e[o]=Rt(t)^n[o],Et(t,e[o]);return e}function At(t,n){const e=new c(n.length);for(let o=0;o<n.length;o++)e[o]=Rt(t)^n[o],Et(t,n[o]);return e}function Et(t,n){let[,e]=t.v;t.C.append([n]);const r=~t.C.get();e=Pt(o.imul(Pt(e+xt(r)),134775813)+1),t.I.append([e>>>24]);const c=~t.I.get();t.v=[r,e,c]}function Rt(t){const n=2|t.v[2];return xt(o.imul(n,1^n)>>>8)}function xt(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){try{const{value:e,done:o}=await n.read();o?t.close():t.enqueue(e)}catch(t){throw n.cancel(t).catch(()=>{}),t}},cancel:t=>n.cancel(t)})}function Ft(t){return Boolean(t)&&"object"==typeof t}const Ut=new f;function Bt(t){return Ut.get(t)}const Wt="Invalid uncompressed size",Ot="Codec out of memory",Vt="Invalid CRC32",Kt="deflate-raw",Tt="gzip",_t=[31,139,8];class jt extends h{constructor(t,{chunkSize:n,CompressionStreamFallback:e,CompressionStream:o}){super({});const{compressed:r,encrypted:c,useCompressionStream:s,zipCrypto:a,computeCrc32:i,level:f,deflate64:w,format:l,compressionMethod:d,inputSize:p}=t,h=this;let y,m,S,g=super.readable;const v=l&&Bt(l),b=Gt(s,o,e),k=i&&r&&!w&&!v&&(!c||a)&&Boolean(b);if(c&&!a||!i||k||(y=new U,g=Qt(g,y)),r)if(v)g=Xt(g,qt(v.CompressionStream,l,{level:f,chunkSize:n,compressionMethod:d,uncompressedSize:p}));else if(k)S=new Ht,g=Xt(g,new b(Tt,{level:f,chunkSize:n})),g=Qt(g,S);else try{g=Jt(g,s,{level:f,chunkSize:n},o,e)}catch(t){if(!s&&e)throw en(t);let n;try{n=new o(Tt)}catch{throw en(t)}g=Xt(g,n),g=Qt(g,new Ht)}c&&(a?g=Qt(g,new Ct(t)):(m=new ht(t),g=Qt(g,m))),Nt(h,g,()=>{c&&!a||!i||(h.crc32=k?S.crc32:new u(y.value.buffer).getUint32(0))})}}class Ht extends h{constructor(){let t,n=10,e=new c(0);super({transform(t,r){if(n){const e=o.min(n,t.length);if(n-=e,!(t=t.subarray(e)).length)return}const c=e.length+t.length;if(c<=8)return void(e=B(e,t));const s=c-8,a=o.min(s,e.length);r.enqueue(B(e.subarray(0,a),t.subarray(0,s-a))),e=B(e.subarray(a),t.subarray(s-a))},flush(){const n=W(e);t.crc32=n.getUint32(0,!0),t.uncompressedSize=n.getUint32(4,!0)}}),t=this}}class Lt extends h{constructor(t,{chunkSize:n,DecompressionStreamFallback:e,DecompressionStream:o}){super({});const{zipCrypto:s,encrypted:a,checkCrc32:i,crc32:f,compressed:l,useCompressionStream:d,deflate64:p,format:h,compressionMethod:m,rawBitFlag:S,outputSize:g}=t;let b,k,z,C=super.readable;if(a&&(s?C=Qt(C,new zt(t)):(k=new pt(t),C=Qt(C,k))),l){const t=new Set,s=h&&Bt(h);let a;if(s)C=Xt(C,qt(s.DecompressionStream,h,{chunkSize:n,compressionMethod:m,rawBitFlag:S,uncompressedSize:g}),t);else{const r=Gt(d,o,e);if(i&&!p&&f!==v&&g!==v&&r)try{a=new r(Tt,{chunkSize:n})}catch{a=v}if(!a)try{C=Jt(C,d,{chunkSize:n,deflate64:p},o,e,t)}catch(t){if(p||g===v||!d&&e)throw en(t);try{a=new o(Tt)}catch{throw en(t)}}}a?(z=!0,C=function(t,n,e,o,s){const a=n.writable.getWriter(),i=n.readable.getReader(),f=o===v?new F:v;let u,l,d=0,p=!1,h=!1;const m=new y({start(t){l=t},pull(){b()},cancel:t=>(h=!0,b(),i.cancel(t))});return async function(){const n=t.getReader();try{const t=new c(10);for(t.set(_t),await a.write(t);;){await g(),await a.ready;const{value:t,done:e}=await tn(n,s);if(e)break;await a.write(t)}f&&await a.write(new c(0));const r=new c(8),i=W(r);i.setUint32(0,f?f.get():o,!0),i.setUint32(4,e,!0),p=!0,await a.write(r),await a.close()}catch(t){await Yt(a,t),await $t(n,t)}}(),async function(){try{for(;;){const{value:t,done:n}=await S();if(n)break;if(d+=t.length,d>e)throw new r(Wt);f&&f.append(t),l.enqueue(t)}h||(h=!0,l.close())}catch(t){!function(t){h||(h=!0,l.error(t),b())}(t),await $t(i,t)}}(),m;function S(){return i.read().catch(t=>{if(p){if(!f)throw rn(t,Vt);if(d!=e)throw rn(t,Wt);return{done:!0}}throw nn(t,s)})}function g(){if(!h&&l.desiredSize<=0)return new w(t=>u=t)}function b(){if(u){const t=u;u=v,t()}}}(C,a,g,f,t)):C=function(t,n){const e=t.getReader();return new y({async pull(t){try{const{value:n,done:o}=await e.read();o?t.close():t.enqueue(n)}catch(t){throw await $t(e,t),nn(t,n)}},cancel:t=>e.cancel(t)})}(C,t)}i&&!z&&(b=new U,C=Qt(C,b)),Nt(this,C,()=>{if(b){const t=new u(b.value.buffer).getUint32(0,!1);if(f!=t)throw new r(Vt)}})}}const Zt=new f;function Nt(t,e,o){e=Qt(e,new h({flush:o})),n.defineProperty(t,"readable",{get:()=>e})}function qt(t,n,e){if(!t)throw new r("Compression method not supported");return new t(n,e)}function Gt(t,n,e){return t&&n?n:e&&e.requiresModule?e:void 0}function Jt(t,n,e,o,r,c){const s=n&&o?o:r||o,a=e.deflate64?"deflate64-raw":Kt;let i;try{i=new s(a,e)}catch(t){if(!n||!r||s==r)throw t;i=new r(a,e)}return Xt(t,i,c)}function Qt(t,n){return Dt(t).pipeThrough(n)}function Xt(t,n,e){const o=n.writable.getWriter(),r=t.getReader();return async function(){try{for(;;){await o.ready;const t=await tn(r,e);if(t.done){await o.close();break}await o.write(t.value)}}catch(t){await Yt(o,t),await $t(r,t)}}(),n.readable}async function Yt(t,n){try{await t.abort(n)}catch{}}async function $t(t,n){try{await t.cancel(n)}catch{}}function tn(t,n){const e=t.read();return n?e.catch(t=>{throw n.add(t),t}):e}function nn(t,n){return n.has(t)?t:rn(t,on(t)?Ot:"Invalid compressed data")}function en(t){return on(t)?rn(t,Ot):t}function on(t){return Ft(t)&&"Z_MEM_ERROR"==t.code}function rn(t,n){const e=new r(n);return e.cause=t,e}const cn="data",sn="deflate";class an extends h{constructor(t,e){super({});const o=this,{codecType:c}=t;let s;c.startsWith(sn)?s=jt:c.startsWith("inflate")&&(s=Lt),o.outputSize=0;let a=0;const i=new s(t,e),f=super.readable,u=new h({transform(t,n){t&&t.length&&(a+=t.length,n.enqueue(t))},flush(){n.assign(o,{inputSize:a})}}),w=new h({transform(n,e){if(n&&n.length&&(e.enqueue(n),o.outputSize+=n.length,t.outputSize!==v&&o.outputSize>t.outputSize))throw new r(Wt)},flush(){const{crc32:t}=i;n.assign(o,{crc32:t,inputSize:a})}});n.defineProperty(o,"readable",{get:()=>f.pipeThrough(u).pipeThrough(i).pipeThrough(w)})}}class fn extends h{constructor(t){const o=[];let r=0,s=0;function a(){const n=new c(t);let e=0;for(;e<t;){const r=o[0],c=t-e;r.length<=c?(n.set(r,e),e+=r.length,o.shift()):(n.set(r.subarray(0,c),e),o[0]=r.subarray(c),e+=c)}return r-=t,n}(!e.isFinite(t)||t<1)&&(t=65536),super({transform(n,e){for(o.push(n),r+=n.length;r>t;)s+=t,e.enqueue(a())},flush(t){r&&(s+=r,t.enqueue(function(t,n){const e=new c(n);let o=0;for(const n of t)e.set(n,o),o+=n.length;return e}(o,r)))}}),n.defineProperty(this,"outputSize",{get:()=>s})}}let un=2;try{typeof navigator!=b&&navigator.hardwareConcurrency&&(un=navigator.hardwareConcurrency)}catch{}const wn=new f,ln=new f,dn=function(){try{return structuredClone(new r)instanceof r}catch{return!1}}();let pn=0;async function hn(t){let n,c,s;try{const{options:a,config:i}=t;if(a.format)try{await async function(t,n){!Ut.has(t)&&n&&function(t,n){const{CompressionStream:e,DecompressionStream:o}=n;if(typeof e!=k&&typeof o!=k)throw new r("Invalid codec module");Ut.set(t,{CompressionStream:e,DecompressionStream:o})}(t,await(import(n)))}(a.format,a.codecURI)}catch(t){if(Ft(t))try{t.codecImportFailed=!0}catch{}throw t}if(i.CompressionStream=self.CompressionStream,i.DecompressionStream=self.DecompressionStream,a.compressed&&!a.format)if(a.useCompressionStream){if(!function(t,n){if(!t)return!1;let e=Zt.get(t);e||(e=new f,Zt.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}(a.codecType.startsWith(sn)?i.CompressionStream:i.DecompressionStream,Kt))try{await self.initModule(t.config)}catch{}}else try{await self.initModule(t.config)}catch{a.useCompressionStream=!0}if(a.encrypted&&!a.zipCrypto)try{await self.initModule(t.config)}catch{}!i.CompressionStreamFallback&&i.CompressionStreamZlib&&(i.CompressionStreamFallback=i.CompressionStreamZlib),!i.DecompressionStreamFallback&&i.DecompressionStreamZlib&&(i.DecompressionStreamFallback=i.DecompressionStreamZlib);const u={highWaterMark:1},l=t.readable?Dt(t.readable):new y({async pull(t){const n=new w(t=>wn.set(pn,t));yn({type:"pull",messageId:pn}),pn=(pn+1)%e.MAX_SAFE_INTEGER;const{value:o,done:r}=await n;t.enqueue(o),r&&t.close()}},u);s=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);ln.set(pn,n),yn({type:cn,value:t,messageId:pn}),pn=(pn+1)%e.MAX_SAFE_INTEGER,await o}},u),n=new an(a,i),c=new fn(function(t){return r="string"==typeof(n=r=t.chunkSize)&&n.trim()?e(n):n,e.isInteger(r)&&r>=1?o.max(r,64):65536;var n,r}(i)),await l.pipeThrough(n).pipeThrough(c).pipeTo(s,{preventClose:!0,preventAbort:!0}),await s.getWriter().close();const{crc32:d,inputSize:p,outputSize:h}=n;yn({type:"close",result:{crc32:d,inputSize:p,outputSize:h}})}catch(t){const n=c?c.outputSize:0;if(Ft(t))try{t.outputSize=n}catch{}if(s&&!s.locked)try{await s.getWriter().close()}catch{}mn(t,n)}}function yn(t){const{value:n}=t;if(n)if(n.length)try{t.value=(e=n,e.byteOffset||e.byteLength!=e.buffer.byteLength?new c(e):e).buffer,p(t,[t.value])}catch{p(t)}else p(t);else p(t);var e}function mn(t,n){const{message:e,stack:o,code:c,name:s,outputSize:a,cause:i,codecImportFailed:f}=function(t=new r("Unknown error")){return Ft(t)?t:new r(String(t))}(t),u={message:e,stack:o,code:c,name:s,outputSize:a===v?n:a};if(Ft(i)&&(u.cause={name:i.name,message:i.message}),f&&(u.codecImportFailed=!0),dn)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:r}=t;try{if("start"==n&&hn(t),n==cn){const t=wn.get(e);wn.delete(e),t({value:o||new c,done:r})}if("ack"==n){const t=ln.get(e);ln.delete(e),t()}}catch(t){mn(t)}}),p({type:"ready"});const Sn="deflate",gn="deflate-raw",vn="deflate64-raw",bn="gzip",kn=[Sn,gn,bn],zn=[Sn,gn,bn,vn];let Cn,In,Mn,An,En;function Rn(t,n){return-4===n&&(t.code="Z_MEM_ERROR"),t}function xn(t,n,e={}){if(!(t?kn:zn).includes(n))throw new TypeError("Unsupported format: "+n);if(!Cn){const t=new r("WASM module not loaded");throw t.cause=En,t}const s="number"==typeof e.level?e.level:-1,a="number"==typeof e.outBuffer?e.outBuffer:65536,i="number"==typeof e.inBufferSize?e.inBufferSize:65536,f={M:0,in:0,inBufferSize:0,A:0,R:!1};let u,l,d,p,h=!0,S=!1;return function(){try{let e;if(f.M=In(a),f.in=In(i),f.inBufferSize=i,!f.M||!f.in)throw Rn(new r("allocation failed"),-4);if(t?(f.P=Cn.deflate_process,f.D=Cn.deflate_last_consumed,f.F=Cn.deflate_end,f.A=Cn.deflate_new(),e=n===bn?Cn.deflate_init_gzip(f.A,s):n===gn?Cn.deflate_init_raw(f.A,s):Cn.deflate_init(f.A,s)):n===vn?(f.P=Cn.inflate9_process,f.D=Cn.inflate9_last_consumed,f.F=Cn.inflate9_end,f.A=Cn.inflate9_new(),e=Cn.inflate9_init_raw(f.A)):(f.P=Cn.inflate_process,f.D=Cn.inflate_last_consumed,f.F=Cn.inflate_end,f.A=Cn.inflate_new(),e=n===gn?Cn.inflate_init_raw(f.A):n===bn?Cn.inflate_init_gzip(f.A):Cn.inflate_init(f.A)),0!==e)throw Rn(new r("init failed:"+e),e)}catch(t){throw b(f),t}}(),{readable:new y({start(t){u=t},pull(){h=!1,v()},cancel(t){S=!0,p=t,b(f),l.error(t),v()}},{highWaterMark:0}),writable:new m({start(t){l=t},async write(t){if(h&&await new w(t=>d=t),S)throw p;try{!function(t){const n=new c(An.buffer),e=f.P,s=f.D,i=f.M;let u=0;for(;u<t.length;){if(f.R)throw new r("trailing data after the end of the stream");const c=o.min(t.length-u,32768);if((!f.in||f.inBufferSize<c)&&(f.in&&Mn&&(Mn(f.in),f.in=0),f.in=In(c),f.inBufferSize=c,!f.in))throw Rn(new r("allocation failed"),-4);n.set(t.subarray(u,u+c),f.in);const w=e(f.A,f.in,c,i,a,0),l=w>>24&255,d=128&l?l-256:l;if(d<0)throw Rn(new r("process error:"+d),d);const p=16777215&w;p&&g(n.slice(i,i+p));const h=s(f.A);if(1===l)f.R=!0;else if(0===h&&0===p)break;u+=h}}(t)}catch(t){throw b(f),u.error(t),t}},close(){if(S)return;try{!function(){const t=new c(An.buffer),n=f.P,e=f.M;for(;;){const o=n(f.A,0,0,e,a,4),c=o>>24&255,s=128&c?c-256:c;if(s<0)throw Rn(new r("process error:"+s),s);const i=16777215&o;if(i&&g(t.slice(e,e+i)),1===c||0===i)break}}()}catch(t){throw b(f),u.error(t),t}const t=b(f);if(0!==t){const n=Rn(new r("end error:"+t),t);throw u.error(n),n}u.close()},abort(t){b(f),u.error(t)}},{highWaterMark:1})};function g(t){h=!0,u.enqueue(t)}function v(){if(d){const t=d;d=null,t()}}function b(t){let n=0;return t.A&&t.F&&(n=t.F(t.A)),t.A=0,t.in&&Mn&&Mn(t.in),t.in=0,t.M&&Mn&&Mn(t.M),t.M=0,n}}class Pn{constructor(t=Sn,n){return xn(!0,t,n)}}class Dn{constructor(t=Sn,n){return xn(!1,t,n)}}Pn.requiresModule=!0,Dn.requiresModule=!0,Pn.supportedFormats=kn,Dn.supportedFormats=zn;const Fn=65536;let Un,Bn;function Wn(t){return new c(t.memory.buffer)}let On=!1;!function(t={}){const{init:n,U:e}=t,o=t.CompressionStreamFallback||t.CompressionStreamZlib,r=t.DecompressionStreamFallback||t.DecompressionStreamZlib;e&&(dt=e||G),self.initModule=async t=>{n&&await n(t),o&&(t.CompressionStreamFallback=o),r&&(t.DecompressionStreamFallback=r)}}({CompressionStreamFallback:Pn,DecompressionStreamFallback:Dn,U:function(t,n){const e=Un;let o=e?function(t,n,e){Bn||(Bn=t.malloc(Fn));const o=Bn?t.aes_hmac_new():0;if(o){const r=Wn(t);if(r.set(n,Bn),r.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 G(t,n);const r=Bn;return{process(t,n){for(let c=0;c<t.length;c+=Fn){const s=t.subarray(c,c+Fn),a=Wn(e);a.set(s,r),e.aes_hmac_process(o,r,s.length,n?1:0),s.set(a.subarray(r,r+s.length))}},digest:()=>(e.aes_hmac_end(o,r),o=0,Wn(e).slice(r,r+20)),dispose(){o&&(e.aes_hmac_end(o,0),o=0)}}},init:t=>async function(t,{baseURI:n}){if(!On)try{await async function(t,n){let e,o;try{try{o=new URL(t,n)}catch{}const r=await fetch(o);e=await r.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,r=new c(o);for(let t=0;t<o;++t)r[t]=e.charCodeAt(t);return r.buffer}(t)}const s=await WebAssembly.instantiate(e);var a;(function(t){if(Cn=t,({malloc:In,free:Mn,memory:An}=Cn),"function"!=typeof In||"function"!=typeof Mn||!An)throw Cn=In=Mn=An=null,new r("Invalid WASM module")})(s.instance.exports),typeof(a=s.instance.exports).aes_hmac_new==k&&(Un=a,Bn=0)}(t,n),On=!0}catch(t){throw function(t){En=t}(t),t}}(t.wasmURI,t)})});\n';if("string"==typeof r&&(r=(new TextEncoder).encode(r)),t){const t=new Blob([r],{type:e});return URL.createObjectURL(t)}return"data:"+e+";base64,"+function(t){let e="";const r=t.length;let o=0;for(;o+2<r;o+=3){const r=t[o]<<16|t[o+1]<<8|t[o+2];e+=n[r>>18&63]+n[r>>12&63]+n[r>>6&63]+n[63&r]}const s=r-o;if(1===s){const r=t[o]<<16;e+=n[r>>18&63]+n[r>>12&63]+"=="}else if(2===s){const r=t[o]<<16|t[o+1]<<8;e+=n[r>>18&63]+n[r>>12&63]+n[r>>6&63]+"="}return e}(r)}});export{e as configureWebWorker};
@@ -46,7 +46,11 @@ import {
46
46
  } from "./io.js";
47
47
  import {
48
48
  ZipReader,
49
- ERR_INVALID_PASSWORD
49
+ ERR_INVALID_PASSWORD,
50
+ ERR_ENCRYPTED,
51
+ ERR_INVALID_CRC32,
52
+ ERR_INVALID_UNCOMPRESSED_SIZE,
53
+ ERR_INVALID_COMPRESSED_DATA
50
54
  } from "./zip-reader.js";
51
55
  import {
52
56
  ZipWriter,
@@ -61,7 +65,8 @@ import { ProgressWatcherStream, callHandler } from "./codec-worker.js";
61
65
  import {
62
66
  UNDEFINED_VALUE,
63
67
  FUNCTION_TYPE,
64
- OBJECT_TYPE
68
+ OBJECT_TYPE,
69
+ STRING_TYPE
65
70
  } from "./constants.js";
66
71
  import { toExactUint8Array } from "./util/array.js";
67
72
  import { toCompatibleReadable, toCompatibleWritable } from "./util/compatible-streams.js";
@@ -82,7 +87,12 @@ const DUPLICATES_VALUES = new Set([DUPLICATES_THROW, DUPLICATES_KEEP_FIRST, DUPL
82
87
  const ERR_INVALID_PASS_THROUGH = "Invalid passThrough option (use readerOptions.passThrough or set uncompressedSize for each entry)";
83
88
  const ERR_INVALID_READER_OPTIONS = "Invalid readerOptions (must be an object)";
84
89
  const ERR_UNSUPPORTED_PASS_THROUGH_VALUE = "The 'compressed' passThrough option is only supported by Entry#getData() and ZipWriter#add()";
90
+ const ERR_INVALID_PASSWORDS = "Invalid passwords option (must be an array of strings)";
91
+ const ERR_INVALID_REQUEST_PASSWORD = "Invalid requestPassword option (must be a function returning a string or undefined)";
85
92
  const ERR_ABORT_EXPORT = "zipjs-abort-export";
93
+ const ABORT_ERROR_NAME = "AbortError";
94
+ const EMPTY_RAW_PASSWORD = new Uint8Array(0);
95
+ const FALSE_ACCEPT_ERRORS = new Set([ERR_INVALID_CRC32, ERR_INVALID_UNCOMPRESSED_SIZE, ERR_INVALID_COMPRESSED_DATA]);
86
96
 
87
97
  class ZipEntry {
88
98
 
@@ -455,8 +465,10 @@ class ZipDirectoryEntry extends ZipEntry {
455
465
  zipReader = new ZipReader(reader, options);
456
466
  }
457
467
  checkPassThroughValue(options.passThrough);
468
+ checkPasswordCandidatesOptions(options);
458
469
  const duplicates = checkDuplicatesOption(options.duplicates);
459
470
  const importedEntries = [];
471
+ const passwordState = { known: [] };
460
472
  const entries = await zipReader.getEntries(options);
461
473
  for (const entry of entries) {
462
474
  let parent = this;
@@ -501,7 +513,7 @@ class ZipDirectoryEntry extends ZipEntry {
501
513
  }
502
514
  importedEntries.push(addChild(parent, name, {
503
515
  data: entry,
504
- Reader: getZipBlobReader(Object.assign({}, options)),
516
+ Reader: getZipBlobReader(Object.assign({}, options), passwordState),
505
517
  uncompressedSize: options.passThrough ? entry.compressedSize : entry.uncompressedSize,
506
518
  passThrough: options.passThrough
507
519
  }));
@@ -796,7 +808,7 @@ class ZipFS {
796
808
  }
797
809
 
798
810
  const fs = { FS: ZipFS, ZipDirectoryEntry, ZipFileEntry };
799
- export { ZipFS, ZipEntry, ZipFileEntry, ZipDirectoryEntry, fs, ERR_ENTRY_EXISTS, ERR_DUPLICATE_IMPORTED_ENTRY, ERR_INVALID_DUPLICATES, ERR_READABLE_CONSUMED, ERR_INVALID_PASS_THROUGH, ERR_UNSUPPORTED_PASS_THROUGH_VALUE, ERR_INVALID_READER_OPTIONS, ERR_ANCESTOR_ENTRY, ERR_ROOT_DIRECTORY_NOT_MOVABLE, ERR_TARGET_NOT_DIRECTORY, ERR_PARENT_NOT_DIRECTORY };
811
+ export { ZipFS, ZipEntry, ZipFileEntry, ZipDirectoryEntry, fs, ERR_ENTRY_EXISTS, ERR_DUPLICATE_IMPORTED_ENTRY, ERR_INVALID_DUPLICATES, ERR_READABLE_CONSUMED, ERR_INVALID_PASS_THROUGH, ERR_UNSUPPORTED_PASS_THROUGH_VALUE, ERR_INVALID_READER_OPTIONS, ERR_INVALID_PASSWORDS, ERR_INVALID_REQUEST_PASSWORD, ERR_ANCESTOR_ENTRY, ERR_ROOT_DIRECTORY_NOT_MOVABLE, ERR_TARGET_NOT_DIRECTORY, ERR_PARENT_NOT_DIRECTORY };
800
812
 
801
813
  function getTotalSize(entries, getEntrySize) {
802
814
  let size = 0;
@@ -831,7 +843,7 @@ function getReadableReader(readable) {
831
843
  };
832
844
  }
833
845
 
834
- function getZipBlobReader(options) {
846
+ function getZipBlobReader(options, passwordState) {
835
847
  return class extends Reader {
836
848
 
837
849
  constructor(entry, options = {}) {
@@ -844,12 +856,12 @@ function getZipBlobReader(options) {
844
856
  const zipBlobReader = this;
845
857
  const readerOptions = Object.assign({}, options, zipBlobReader.options);
846
858
  const { checkOverlappingEntry, checkOverlappingEntryOnly } = readerOptions;
847
- const data = await zipBlobReader.entry.getData(new BlobWriter(), Object.assign(readerOptions, {
859
+ const data = await readEntryData(zipBlobReader.entry, Object.assign(readerOptions, {
848
860
  checkPasswordOnly: false,
849
861
  checkOverlappingEntry: checkOverlappingEntryOnly || checkOverlappingEntry,
850
862
  checkOverlappingEntryOnly: false,
851
863
  preventClose: false
852
- }));
864
+ }), passwordState);
853
865
  zipBlobReader.data = data;
854
866
  zipBlobReader.blobReader = new BlobReader(data);
855
867
  zipBlobReader.size = data.size;
@@ -911,10 +923,9 @@ async function initReaders(entry, options) {
911
923
  await initStream(reader);
912
924
  } catch (error) {
913
925
  try {
926
+ error.entry = child;
914
927
  error.entryId = child.id;
915
- error.cause = {
916
- entry: child
917
- };
928
+ error.entryName = child.getRelativeName(entry);
918
929
  } catch {
919
930
  // ignored
920
931
  }
@@ -1006,10 +1017,145 @@ function checkReaderOptions(readerOptions) {
1006
1017
  }
1007
1018
  if (readerOptions) {
1008
1019
  checkPassThroughValue(readerOptions.passThrough);
1020
+ checkPasswordCandidatesOptions(readerOptions);
1009
1021
  }
1010
1022
  return readerOptions;
1011
1023
  }
1012
1024
 
1025
+ function checkPasswordCandidatesOptions(options) {
1026
+ const { passwords, requestPassword } = options;
1027
+ if (passwords && (!Array.isArray(passwords) || passwords.some(password => typeof password != STRING_TYPE))) {
1028
+ throw new Error(ERR_INVALID_PASSWORDS);
1029
+ }
1030
+ if (requestPassword && typeof requestPassword != FUNCTION_TYPE) {
1031
+ throw new Error(ERR_INVALID_REQUEST_PASSWORD);
1032
+ }
1033
+ }
1034
+
1035
+ async function readEntryData(entry, options, passwordState) {
1036
+ checkPasswordCandidatesOptions(options);
1037
+ const { passwords, requestPassword, signal } = options;
1038
+ options = Object.assign({}, options);
1039
+ delete options.passwords;
1040
+ delete options.requestPassword;
1041
+ if (!entry.encrypted || options.passThrough || (!passwords && !requestPassword)) {
1042
+ return entry.getData(new BlobWriter(), options);
1043
+ }
1044
+ const tried = new Set();
1045
+ let error;
1046
+ while (true) {
1047
+ for (const candidate of getPasswordCandidates(options, passwordState, passwords)) {
1048
+ if (!tried.has(candidate.key)) {
1049
+ const result = await tryPasswordCandidate(candidate);
1050
+ if (result.done) {
1051
+ return result.data;
1052
+ }
1053
+ error = result.error;
1054
+ }
1055
+ }
1056
+ if (!requestPassword) {
1057
+ break;
1058
+ }
1059
+ if (passwordState.pendingPrompt) {
1060
+ await passwordState.pendingPrompt;
1061
+ continue;
1062
+ }
1063
+ let release;
1064
+ passwordState.pendingPrompt = new Promise(resolve => release = resolve);
1065
+ try {
1066
+ const answer = await requestPassword(entry, error);
1067
+ if (answer === UNDEFINED_VALUE || answer === null) {
1068
+ break;
1069
+ }
1070
+ // deno-lint-ignore valid-typeof
1071
+ if (typeof answer != STRING_TYPE) {
1072
+ throw new Error(ERR_INVALID_REQUEST_PASSWORD);
1073
+ }
1074
+ const result = await tryPasswordCandidate(getPasswordCandidate(answer));
1075
+ if (result.done) {
1076
+ return result.data;
1077
+ }
1078
+ error = result.error;
1079
+ } finally {
1080
+ passwordState.pendingPrompt = UNDEFINED_VALUE;
1081
+ release();
1082
+ }
1083
+ }
1084
+ if (!tried.size) {
1085
+ throw new Error(ERR_ENCRYPTED);
1086
+ }
1087
+ const passwordError = new Error(ERR_INVALID_PASSWORD);
1088
+ passwordError.cause = error;
1089
+ throw passwordError;
1090
+
1091
+ async function tryPasswordCandidate(candidate) {
1092
+ tried.add(candidate.key);
1093
+ const candidateOptions = Object.assign({}, options, candidate.options);
1094
+ if (entry.zipCrypto) {
1095
+ candidateOptions.checkCrc32 = true;
1096
+ try {
1097
+ await entry.getData(null, Object.assign({}, candidateOptions, { checkPasswordOnly: true }));
1098
+ } catch (probeError) {
1099
+ if (isInvalidPasswordError(probeError)) {
1100
+ return { done: false, error: probeError };
1101
+ }
1102
+ throw probeError;
1103
+ }
1104
+ }
1105
+ try {
1106
+ const data = await entry.getData(new BlobWriter(), candidateOptions);
1107
+ rememberPassword(passwordState, candidate);
1108
+ return { done: true, data };
1109
+ } catch (readError) {
1110
+ if (isAbortError(readError, signal) || !isWrongPasswordError(readError, entry)) {
1111
+ throw readError;
1112
+ }
1113
+ return { done: false, error: readError };
1114
+ }
1115
+ }
1116
+ }
1117
+
1118
+ function isInvalidPasswordError(error) {
1119
+ return isErrorObject(error) && error.message == ERR_INVALID_PASSWORD;
1120
+ }
1121
+
1122
+ function isWrongPasswordError(error, entry) {
1123
+ return isInvalidPasswordError(error) || (entry.zipCrypto && isErrorObject(error) && FALSE_ACCEPT_ERRORS.has(error.message));
1124
+ }
1125
+
1126
+ function isAbortError(error, signal) {
1127
+ return Boolean(signal && signal.aborted) || (isErrorObject(error) && error.name == ABORT_ERROR_NAME);
1128
+ }
1129
+
1130
+ function getPasswordCandidates(options, passwordState, passwords) {
1131
+ const candidates = [];
1132
+ const { password, rawPassword } = options;
1133
+ if (rawPassword && rawPassword.length) {
1134
+ candidates.push({ key: rawPassword, options: { password: "", rawPassword } });
1135
+ }
1136
+ if (password) {
1137
+ candidates.push(getPasswordCandidate(password));
1138
+ }
1139
+ candidates.push(...passwordState.known);
1140
+ if (passwords) {
1141
+ candidates.push(...passwords.filter(password => password).map(getPasswordCandidate));
1142
+ }
1143
+ return candidates;
1144
+ }
1145
+
1146
+ function getPasswordCandidate(password) {
1147
+ return { key: password, options: { password, rawPassword: EMPTY_RAW_PASSWORD } };
1148
+ }
1149
+
1150
+ function rememberPassword(passwordState, candidate) {
1151
+ const { known } = passwordState;
1152
+ const index = known.findIndex(knownCandidate => knownCandidate.key === candidate.key);
1153
+ if (index != -1) {
1154
+ known.splice(index, 1);
1155
+ }
1156
+ known.unshift(candidate);
1157
+ }
1158
+
1013
1159
  function checkPassThroughValue(passThrough) {
1014
1160
  if (checkPassThroughOption(passThrough) === PASS_THROUGH_COMPRESSED) {
1015
1161
  throw new Error(ERR_UNSUPPORTED_PASS_THROUGH_VALUE);
@@ -1147,6 +1293,7 @@ function addFileSystemHandle(zipEntry, handle, options) {
1147
1293
  async function exportFileSystemHandle(zipEntry, directoryHandle, options) {
1148
1294
  const { onstart, onprogress, onend } = options;
1149
1295
  checkPassThroughValue(options.passThrough);
1296
+ checkPasswordCandidatesOptions(options);
1150
1297
  const readerOptions = checkReaderOptions(options.readerOptions);
1151
1298
  const abortController = new AbortController();
1152
1299
  const { signal } = abortController;
@@ -108,6 +108,7 @@ import {
108
108
  ERR_INVALID_PASSWORD,
109
109
  ERR_INVALID_UNCOMPRESSED_SIZE,
110
110
  ERR_INVALID_COMPRESSED_DATA,
111
+ ERR_CODEC_OUT_OF_MEMORY,
111
112
  ERR_ABORT_CHECK_PASSWORD,
112
113
  ERR_WORKER_STARTUP_TIMEOUT
113
114
  } from "./codec-pool.js";
@@ -803,6 +804,7 @@ export {
803
804
  ERR_INVALID_PASSWORD,
804
805
  ERR_INVALID_UNCOMPRESSED_SIZE,
805
806
  ERR_INVALID_COMPRESSED_DATA,
807
+ ERR_CODEC_OUT_OF_MEMORY,
806
808
  ERR_SPLIT_ZIP_FILE,
807
809
  ERR_OVERLAPPING_ENTRY,
808
810
  ERR_ENTRY_DATA_OUT_OF_BOUNDS,
@@ -874,8 +876,8 @@ class ZipEntry {
874
876
  const passThroughCompression = Boolean(passThrough);
875
877
  const passThroughEncryption = passThrough === true;
876
878
  checkPasswordOption(password, rawPassword);
877
- password = password && password.length && password;
878
- rawPassword = rawPassword && rawPassword.length && rawPassword;
879
+ password = password && password.length ? password : UNDEFINED_VALUE;
880
+ rawPassword = rawPassword && rawPassword.length ? rawPassword : UNDEFINED_VALUE;
879
881
  if (extraFieldAES) {
880
882
  if (extraFieldAES.originalCompressionMethod != COMPRESSION_METHOD_AES) {
881
883
  throw new Error(ERR_UNSUPPORTED_COMPRESSION);
@@ -1025,6 +1027,7 @@ class ZipEntry {
1025
1027
  ({ writable } = writer);
1026
1028
  const readable = toCompatibleReadable(reader.createReadable({ offset: dataOffset, size }));
1027
1029
  const { outputSize: writtenSize } = await runWorker({ readable, writable }, workerOptions);
1030
+ throwIfAborted(signal);
1028
1031
  if (writtenSize != outputSize) {
1029
1032
  throw Object.assign(new Error(ERR_INVALID_UNCOMPRESSED_SIZE), { outputSize: writtenSize });
1030
1033
  }
@@ -1636,7 +1639,7 @@ function getMaxAppendedDataSize(maxAppendedDataSize, strictness) {
1636
1639
  async function findEndOfCentralDirectory(reader, rejectAmbiguous, maxAppendedDataSize) {
1637
1640
  const { size } = reader;
1638
1641
  const anchoredLength = Math.min(size, END_OF_CENTRAL_DIR_LENGTH + MAX_16_BITS);
1639
- const remoteProbeBudget = { count: MAX_END_OF_CENTRAL_DIR_PROBES };
1642
+ const remoteProbeBudget = { remaining: MAX_END_OF_CENTRAL_DIR_PROBES };
1640
1643
  let endOfDirectoryInfo;
1641
1644
  let plausibleEndOfDirectoryInfo;
1642
1645
  let endOfDirectoryReachingEndCount = 0;
@@ -1729,8 +1732,8 @@ async function readSignature(reader, view, anchoredOffset, signatureOffset, size
1729
1732
  if (signatureOffset >= anchoredOffset) {
1730
1733
  return getUint32(view, signatureOffset - anchoredOffset);
1731
1734
  }
1732
- if (remoteProbeBudget.count > 0) {
1733
- remoteProbeBudget.count--;
1735
+ if (remoteProbeBudget.remaining > 0) {
1736
+ remoteProbeBudget.remaining--;
1734
1737
  const signatureArray = await readUint8Array(reader, signatureOffset, 4);
1735
1738
  return getUint32(getDataView(signatureArray), 0);
1736
1739
  }