@zip.js/zip.js 2.5.23 → 2.5.24

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.
@@ -1 +1 @@
1
- !function(){"use strict";const{Array:e,Object:t,Math:n,Error:s,Uint8Array:r,Uint16Array:a,Uint32Array:i,Int32Array:o,DataView:c,Promise:l,TextEncoder:h,crypto:u,postMessage:p,TransformStream:f,ReadableStream:d,WritableStream:g,CompressionStream:w,DecompressionStream:y}=globalThis,_=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;_[e]=t}class m{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let n=0,s=0|e.length;s>n;n++)t=t>>>8^_[255&(t^e[n])];this.crc=t}get(){return~this.crc}}class b extends f{constructor(){super({start(){this.crc32=new m},transform(e){this.crc32.append(e)},flush(e){const t=new r(4);new c(t.buffer).setUint32(0,this.crc32.get()),e.enqueue(t)}})}}const k={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],s=k.getPartial(n);return 32===s?e.concat(t):k._shiftRight(t,s,0|n,e.slice(0,e.length-1))},bitLength(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+k.getPartial(n)},clamp(e,t){if(32*e.length<t)return e;const s=(e=e.slice(0,n.ceil(t/32))).length;return t&=31,s>0&&t&&(e[s-1]=k.partial(t,e[s-1]&2147483648>>t-1,1)),e},partial:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,getPartial:e=>n.round(e/1099511627776)||32,_shiftRight(e,t,n,s){for(void 0===s&&(s=[]);t>=32;t-=32)s.push(n),n=0;if(0===t)return s.concat(e);for(let r=0;r<e.length;r++)s.push(n|e[r]>>>t),n=e[r]<<32-t;const r=e.length?e[e.length-1]:0,a=k.getPartial(r);return s.push(k.partial(t+a&31,t+a>32?n:s.pop(),1)),s}},v={bytes:{fromBits(e){const t=k.bitLength(e)/8,n=new r(t);let s;for(let r=0;t>r;r++)0==(3&r)&&(s=e[r/4]),n[r]=s>>>24,s<<=8;return n},toBits(e){const t=[];let n,s=0;for(n=0;n<e.length;n++)s=s<<8|e[n],3==(3&n)&&(t.push(s),s=0);return 3&n&&t.push(k.partial(8*(3&n),s)),t}}},S={sha1:function(e){e?(this._h=e._h.slice(0),this._buffer=e._buffer.slice(0),this._length=e._length):this.reset()}};S.sha1.prototype={blockSize:512,reset(){const e=this;return e._h=this._init.slice(0),e._buffer=[],e._length=0,e},update(e){const t=this;"string"==typeof e&&(e=v.utf8String.toBits(e));const n=t._buffer=k.concat(t._buffer,e),r=t._length,a=t._length=r+k.bitLength(e);if(a>9007199254740991)throw new s("Cannot hash more than 2^53 - 1 bits");const o=new i(n);let c=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);a>=e;e+=t.blockSize)t._block(o.subarray(16*c,16*(c+1))),c+=1;return n.splice(0,16*c),t},finalize(){const e=this;let t=e._buffer;const s=e._h;t=k.concat(t,[k.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(n.floor(e._length/4294967296)),t.push(0|e._length);t.length;)e._block(t.splice(0,16));return e.reset(),s},_init:[1732584193,4023233417,2562383102,271733878,3285377520],_key:[1518500249,1859775393,2400959708,3395469782],_f:(e,t,n,s)=>e>19?e>39?e>59?e>79?void 0:t^n^s:t&n|t&s|n&s:t^n^s:t&n|~t&s,_S:(e,t)=>t<<e|t>>>32-e,_block(t){const s=this,r=s._h,a=e(80);for(let e=0;16>e;e++)a[e]=t[e];let i=r[0],o=r[1],c=r[2],l=r[3],h=r[4];for(let e=0;79>=e;e++){16>e||(a[e]=s._S(1,a[e-3]^a[e-8]^a[e-14]^a[e-16]));const t=s._S(5,i)+s._f(e,o,c,l)+h+a[e]+s._key[n.floor(e/20)]|0;h=l,l=c,c=s._S(30,o),o=i,i=t}r[0]=r[0]+i|0,r[1]=r[1]+o|0,r[2]=r[2]+c|0,r[3]=r[3]+l|0,r[4]=r[4]+h|0}};const T={getRandomValues(e){const t=new i(e.buffer),s=e=>{let t=987654321;const s=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&s,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&s)&s)/4294967296+.5)*(n.random()>.5?1:-1))};for(let r,a=0;a<e.length;a+=4){const e=s(4294967296*(r||n.random()));r=987654071*e(),t[a/4]=4294967296*e()|0}return e}},z={importKey:e=>new z.hmacSha1(v.bytes.toBits(e)),pbkdf2(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new s("invalid params to pbkdf2");const a=1+(r>>5)<<2;let i,o,l,h,u;const p=new ArrayBuffer(a),f=new c(p);let d=0;const g=k;for(t=v.bytes.toBits(t),u=1;(a||1)>d;u++){for(i=o=e.encrypt(g.concat(t,[u])),l=1;n>l;l++)for(o=e.encrypt(o),h=0;h<o.length;h++)i[h]^=o[h];for(l=0;(a||1)>d&&l<i.length;l++)f.setInt32(d,i[l]),d+=4}return p.slice(0,r/8)},hmacSha1:class{constructor(e){const t=this,n=t._hash=S.sha1,s=[[],[]],r=n.prototype.blockSize/32;t._baseHash=[new n,new n],e.length>r&&(e=n.hash(e));for(let t=0;r>t;t++)s[0][t]=909522486^e[t],s[1][t]=1549556828^e[t];t._baseHash[0].update(s[0]),t._baseHash[1].update(s[1]),t._resultHash=new n(t._baseHash[0])}reset(){const e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){this._updated=!0,this._resultHash.update(e)}digest(){const e=this,t=e._resultHash.finalize(),n=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),n}encrypt(e){if(this._updated)throw new s("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},D="Invalid pasword",C=16,R={name:"PBKDF2"},I=t.assign({hash:{name:"HMAC"}},R),V=t.assign({iterations:1e3,hash:{name:"SHA-1"}},R),q=["deriveBits"],A=[8,12,16],B=[16,24,32],H=10,K=[0,0,0,0],x="undefined",W="function",P=typeof u!=x,U=P&&typeof u.subtle!=x,E=P&&typeof u.getRandomValues==W,L=P&&U&&typeof u.subtle.importKey==W,M=P&&U&&typeof u.subtle.deriveBits==W,j=v.bytes,F=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const n=t._tables[0][4],r=t._tables[1],a=e.length;let i,o,c,l=1;if(4!==a&&6!==a&&8!==a)throw new s("invalid aes key size");for(t._key=[o=e.slice(0),c=[]],i=a;4*a+28>i;i++){let e=o[i-1];(i%a==0||8===a&&i%a==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],i%a==0&&(e=e<<8^e>>>24^l<<24,l=l<<1^283*(l>>7))),o[i]=o[i-a]^e}for(let e=0;i;e++,i--){const t=o[3&e?i:i-4];c[e]=4>=i||4>e?t:r[0][n[t>>>24]]^r[1][n[t>>16&255]]^r[2][n[t>>8&255]]^r[3][n[255&t]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],n=e[4],s=t[4],r=[],a=[];let i,o,c,l;for(let e=0;256>e;e++)a[(r[e]=e<<1^283*(e>>7))^e]=e;for(let h=i=0;!n[h];h^=o||1,i=a[i]||1){let a=i^i<<1^i<<2^i<<3^i<<4;a=a>>8^255&a^99,n[h]=a,s[a]=h,l=r[c=r[o=r[h]]];let u=16843009*l^65537*c^257*o^16843008*h,p=257*r[a]^16843008*a;for(let n=0;4>n;n++)e[n][h]=p=p<<24^p>>>8,t[n][a]=u=u<<24^u>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}_crypt(e,t){if(4!==e.length)throw new s("invalid aes block size");const n=this._key[t],r=n.length/4-2,a=[0,0,0,0],i=this._tables[t],o=i[0],c=i[1],l=i[2],h=i[3],u=i[4];let p,f,d,g=e[0]^n[0],w=e[t?3:1]^n[1],y=e[2]^n[2],_=e[t?1:3]^n[3],m=4;for(let e=0;r>e;e++)p=o[g>>>24]^c[w>>16&255]^l[y>>8&255]^h[255&_]^n[m],f=o[w>>>24]^c[y>>16&255]^l[_>>8&255]^h[255&g]^n[m+1],d=o[y>>>24]^c[_>>16&255]^l[g>>8&255]^h[255&w]^n[m+2],_=o[_>>>24]^c[g>>16&255]^l[w>>8&255]^h[255&y]^n[m+3],m+=4,g=p,w=f,y=d;for(let e=0;4>e;e++)a[t?3&-e:e]=u[g>>>24]<<24^u[w>>16&255]<<16^u[y>>8&255]<<8^u[255&_]^n[m++],p=g,g=w,w=y,y=_,_=p;return a}},N=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if(255==(e>>24&255)){let t=e>>16&255,n=e>>8&255,s=255&e;255===t?(t=0,255===n?(n=0,255===s?s=0:++s):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=s}else e+=1<<24;return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,n){let s;if(!(s=t.length))return[];const r=k.bitLength(t);for(let r=0;s>r;r+=4){this.incCounter(n);const s=e.encrypt(n);t[r]^=s[0],t[r+1]^=s[1],t[r+2]^=s[2],t[r+3]^=s[3]}return k.clamp(t,r)}},O=z.hmacSha1;class G extends f{constructor(n,a,i){let o;super({start(){t.assign(this,{ready:new l((e=>this.resolveReady=e)),password:n,signed:a,strength:i-1,pending:new r})},async transform(t,n){const a=this;if(a.password){const n=a.password;a.password=null;const r=Z(t,0,A[a.strength]+2);await(async(e,t,n)=>{await Q(e,n,Z(t,0,A[e.strength]));const r=Z(t,A[e.strength]),a=e.keys.passwordVerification;if(a[0]!=r[0]||a[1]!=r[1])throw new s(D)})(a,r,n),a.ctr=new N(new F(a.keys.key),e.from(K)),a.hmac=new O(a.keys.authentication),t=Z(t,A[a.strength]+2),a.resolveReady()}else await a.ready;const i=new r(t.length-H-(t.length-H)%C);n.enqueue(J(a,t,i,0,H,!0))},async flush(e){const t=this;await t.ready;const n=t.pending,s=Z(n,0,n.length-H),a=Z(n,n.length-H);let i=new r;if(s.length){const e=ee(j,s);t.hmac.update(e);const n=t.ctr.update(e);i=$(j,n)}if(o.valid=!0,t.signed){const e=Z($(j,t.hmac.digest()),0,H);for(let t=0;H>t;t++)e[t]!=a[t]&&(o.valid=!1)}e.enqueue(i)}}),o=this}}class X extends f{constructor(n,s){let a;super({start(){t.assign(this,{ready:new l((e=>this.resolveReady=e)),password:n,strength:s-1,pending:new r})},async transform(t,n){const s=this;let a=new r;if(s.password){const t=s.password;s.password=null,a=await(async(e,t)=>{const n=(s=new r(A[e.strength]),E?u.getRandomValues(s):T.getRandomValues(s));var s;return await Q(e,t,n),Y(n,e.keys.passwordVerification)})(s,t),s.ctr=new N(new F(s.keys.key),e.from(K)),s.hmac=new O(s.keys.authentication),s.resolveReady()}else await s.ready;const i=new r(a.length+t.length-t.length%C);i.set(a,0),n.enqueue(J(s,t,i,a.length,0))},async flush(e){const t=this;await t.ready;let n=new r;if(t.pending.length){const e=t.ctr.update(ee(j,t.pending));t.hmac.update(e),n=$(j,e)}a.signature=$(j,t.hmac.digest()).slice(0,H),e.enqueue(Y(n,a.signature))}}),a=this}}function J(e,t,n,s,a,i){const o=t.length-a;let c;for(e.pending.length&&(t=Y(e.pending,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new r(t)).set(n,0)}return e})(n,o-o%C)),c=0;o-C>=c;c+=C){const r=ee(j,Z(t,c,c+C));i&&e.hmac.update(r);const a=e.ctr.update(r);i||e.hmac.update(a),n.set($(j,a),c+s)}return e.pending=Z(t,c),n}async function Q(e,n,s){const a=(e=>{if(void 0===h){const t=new r((e=unescape(encodeURIComponent(e))).length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}return(new h).encode(e)})(n),i=await((e,t,n,s,r)=>L?u.subtle.importKey("raw",t,n,!1,r):z.importKey(t))(0,a,I,0,q),o=await(async(e,t,n)=>M?await u.subtle.deriveBits(e,t,n):z.pbkdf2(t,e.salt,V.iterations,n))(t.assign({salt:s},V),i,8*(2*B[e.strength]+2)),c=new r(o);e.keys={key:ee(j,Z(c,0,B[e.strength])),authentication:ee(j,Z(c,B[e.strength],2*B[e.strength])),passwordVerification:Z(c,2*B[e.strength])}}function Y(e,t){let n=e;return e.length+t.length&&(n=new r(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function Z(e,t,n){return e.subarray(t,n)}function $(e,t){return e.fromBits(t)}function ee(e,t){return e.toBits(t)}class te extends f{constructor(e,n){let r;super({start(){t.assign(this,{password:e,passwordVerification:n}),ae(this,e)},transform(e,t){const n=this;if(n.password){const t=se(n,e.subarray(0,12));if(n.password=null,t[11]!=n.passwordVerification)throw new s(D);e=e.subarray(12)}t.enqueue(se(n,e))},flush(){r.valid=!0}}),r=this}}class ne extends f{constructor(e,n){super({start(){t.assign(this,{password:e,passwordVerification:n}),ae(this,e)},transform(e,t){const n=this;let s,a;if(n.password){n.password=null;const t=u.getRandomValues(new r(12));t[11]=n.passwordVerification,s=new r(e.length+t.length),s.set(re(n,t),0),a=12}else s=new r(e.length),a=0;s.set(re(n,e),a),t.enqueue(s)},flush(){}})}}function se(e,t){const n=new r(t.length);for(let s=0;s<t.length;s++)n[s]=oe(e)^t[s],ie(e,n[s]);return n}function re(e,t){const n=new r(t.length);for(let s=0;s<t.length;s++)n[s]=oe(e)^t[s],ie(e,t[s]);return n}function ae(e,t){e.keys=[305419896,591751049,878082192],e.crcKey0=new m(e.keys[0]),e.crcKey2=new m(e.keys[2]);for(let n=0;n<t.length;n++)ie(e,t.charCodeAt(n))}function ie(e,t){e.crcKey0.append([t]),e.keys[0]=~e.crcKey0.get(),e.keys[1]=le(e.keys[1]+ce(e.keys[0])),e.keys[1]=le(n.imul(e.keys[1],134775813)+1),e.crcKey2.append([e.keys[1]>>>24]),e.keys[2]=~e.crcKey2.get()}function oe(e){const t=2|e.keys[2];return ce(n.imul(t,1^t)>>>8)}function ce(e){return 255&e}function le(e){return 4294967295&e}class he extends f{constructor(e,t){let n;super({start(){n=new e(t)},transform(e,t){e=n.append(e),t.enqueue(e)},flush(e){const t=n.flush();t&&e.enqueue(t)}})}}const ue="Invalid signature",pe="deflate-raw",fe="undefined",de=typeof w==fe,ge=typeof y==fe;let we=!0,ye=!0;class _e extends f{constructor(e,t,{chunkSize:n},...s){super({},...s);const{compressed:r,encrypted:a,useCompressionStream:i,password:o,passwordVerification:l,encryptionStrength:h,zipCrypto:u,signed:p}=t,f=this;let d,g,y=ke(super.readable);if(a&&!u||!p||([y,d]=y.tee(),d=d.pipeThrough(new b)),r)if(void 0!==i&&!i||de&&!ye)y=be(e,y,n);else try{y=y.pipeThrough(new w(pe))}catch(t){ye=!1,y=be(e,y,n)}a&&(u?y=y.pipeThrough(new ne(o,l)):(g=new X(o,h),y=y.pipeThrough(g))),ve(f,y,(async()=>{let e;a&&!u&&(e=g.signature),a&&!u||!p||(e=await d.getReader().read(),e=new c(e.value.buffer).getUint32(0)),f.signature=e}))}}class me extends f{constructor(e,t,{chunkSize:n},...r){super({},...r);const{zipCrypto:a,encrypted:i,password:o,passwordVerification:l,signed:h,encryptionStrength:u,compressed:p,useCompressionStream:f}=t;let d,g,w=ke(super.readable);if(i&&(a?w=w.pipeThrough(new te(o,l)):(g=new G(o,h,u),w=w.pipeThrough(g))),p)if(void 0!==f&&!f||ge&&!we)w=be(e,w,n);else try{w=w.pipeThrough(new y(pe))}catch(t){we=!1,w=be(e,w,n)}i&&!a||!h||([w,d]=w.tee(),d=d.pipeThrough(new b)),ve(this,w,(async()=>{if(i&&!a&&!g.valid)throw new s(ue);if((!i||a)&&h){const e=await d.getReader().read();if(e!=new c(e.value.buffer).getUint32(0,!1))throw new s(ue)}}))}}function be(e,t,n){return t.pipeThrough(new he(e,{chunkSize:n}))}function ke(e){return e.pipeThrough(new f({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function ve(e,n,s){e.length=0,n=n.pipeThrough(new f({transform(t,n){t&&t.length&&(e.length+=t.length,n.enqueue(t))},flush:s})),t.defineProperty(e,"readable",{get:()=>n})}const Se="deflate",Te="inflate",ze="data";class De{constructor(e,t,n,s,r){const{codecType:a}=s;async function i(a){const i=new a(e,s,r);await t.pipeThrough(i).pipeTo(n,{preventClose:!0});const{length:o,signature:c}=i;return{length:o,signature:c}}a.startsWith(Se)?this.run=()=>i(_e):a.startsWith(Te)&&(this.run=()=>i(me))}}const Ce=new Map;let Re,Ie=0;async function Ve(e){try{const{options:t,scripts:n,config:s}=e,{codecType:r}=t;let a;n&&n.length&&importScripts.apply(void 0,n),self.initCodec&&self.initCodec(),r.startsWith(Se)?a=self.Deflate:r.startsWith(Te)&&(a=self.Inflate);const i={highWaterMark:1,size:()=>s.chunkSize},o=new d({async pull(e){let t=new l(((e,t)=>Ce.set(Ie,{resolve:e,reject:t})));qe({type:"pull",messageId:Ie}),Ie=(Ie+1)%Number.MAX_SAFE_INTEGER;const{value:n,done:s}=await t;e.enqueue(n),s&&e.close()}},i),c=new g({write(e){qe({type:ze,data:e})}},i);Re=new De(a,o,c,t,s),qe({type:"close",result:await Re.run()})}catch(e){const{message:t,stack:n}=e;p({error:{message:t,stack:n}})}}function qe(e){if(e.data){let{data:t}=e;if(t&&t.length)try{t.length!=t.buffer.byteLength&&(t=new r(t)),e.data=t.buffer,p(e,[e.data])}catch(t){p(e)}else p(e)}else p(e)}function Ae(e,n,s){return class{constructor(a){const i=this;a.hasOwnProperty("level")&&void 0===a.level&&delete a.level,i.codec=new e(t.assign({},n,a)),s(i.codec,(e=>{if(i.pendingData){const{pendingData:t}=i;i.pendingData=new r(t.length+e.length),i.pendingData.set(t,0),i.pendingData.set(e,t.length)}else i.pendingData=new r(e)}))}append(e){return this.codec.push(e),a(this)}flush(){return this.codec.push(new r,!0),a(this)}};function a(e){if(e.pendingData){const t=e.pendingData;return e.pendingData=null,t}return new r}}addEventListener("message",(async e=>{const t=e.data,{type:n,messageId:s,data:a,done:i}=t;try{if("start"==n&&Ve(t),n==ze){const{resolve:e}=Ce.get(s);Ce.delete(s),e({value:new r(a),done:i})}}catch(e){p({error:{message:e.message,stack:e.stack}})}})),self.initCodec=()=>{const{Deflate:e,Inflate:t}=((e,t={},n)=>({Deflate:Ae(e.Deflate,t.deflate,n),Inflate:Ae(e.Inflate,t.inflate,n)}))(fflate,void 0,((e,t)=>e.ondata=t));self.Deflate=e,self.Inflate=t}}();
1
+ !function(){"use strict";const{Array:e,Object:t,Math:n,Error:s,Uint8Array:r,Uint16Array:a,Uint32Array:i,Int32Array:o,DataView:c,Promise:l,TextEncoder:h,crypto:u,postMessage:p,TransformStream:f,ReadableStream:d,WritableStream:g,CompressionStream:w,DecompressionStream:y}=globalThis,_=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;_[e]=t}class m{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let n=0,s=0|e.length;s>n;n++)t=t>>>8^_[255&(t^e[n])];this.crc=t}get(){return~this.crc}}class b extends f{constructor(){super({start(){this.crc32=new m},transform(e){this.crc32.append(e)},flush(e){const t=new r(4);new c(t.buffer).setUint32(0,this.crc32.get()),e.enqueue(t)}})}}const k={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],s=k.getPartial(n);return 32===s?e.concat(t):k._shiftRight(t,s,0|n,e.slice(0,e.length-1))},bitLength(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+k.getPartial(n)},clamp(e,t){if(32*e.length<t)return e;const s=(e=e.slice(0,n.ceil(t/32))).length;return t&=31,s>0&&t&&(e[s-1]=k.partial(t,e[s-1]&2147483648>>t-1,1)),e},partial:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,getPartial:e=>n.round(e/1099511627776)||32,_shiftRight(e,t,n,s){for(void 0===s&&(s=[]);t>=32;t-=32)s.push(n),n=0;if(0===t)return s.concat(e);for(let r=0;r<e.length;r++)s.push(n|e[r]>>>t),n=e[r]<<32-t;const r=e.length?e[e.length-1]:0,a=k.getPartial(r);return s.push(k.partial(t+a&31,t+a>32?n:s.pop(),1)),s}},v={bytes:{fromBits(e){const t=k.bitLength(e)/8,n=new r(t);let s;for(let r=0;t>r;r++)0==(3&r)&&(s=e[r/4]),n[r]=s>>>24,s<<=8;return n},toBits(e){const t=[];let n,s=0;for(n=0;n<e.length;n++)s=s<<8|e[n],3==(3&n)&&(t.push(s),s=0);return 3&n&&t.push(k.partial(8*(3&n),s)),t}}},S={sha1:function(e){e?(this._h=e._h.slice(0),this._buffer=e._buffer.slice(0),this._length=e._length):this.reset()}};S.sha1.prototype={blockSize:512,reset(){const e=this;return e._h=this._init.slice(0),e._buffer=[],e._length=0,e},update(e){const t=this;"string"==typeof e&&(e=v.utf8String.toBits(e));const n=t._buffer=k.concat(t._buffer,e),r=t._length,a=t._length=r+k.bitLength(e);if(a>9007199254740991)throw new s("Cannot hash more than 2^53 - 1 bits");const o=new i(n);let c=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);a>=e;e+=t.blockSize)t._block(o.subarray(16*c,16*(c+1))),c+=1;return n.splice(0,16*c),t},finalize(){const e=this;let t=e._buffer;const s=e._h;t=k.concat(t,[k.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(n.floor(e._length/4294967296)),t.push(0|e._length);t.length;)e._block(t.splice(0,16));return e.reset(),s},_init:[1732584193,4023233417,2562383102,271733878,3285377520],_key:[1518500249,1859775393,2400959708,3395469782],_f:(e,t,n,s)=>e>19?e>39?e>59?e>79?void 0:t^n^s:t&n|t&s|n&s:t^n^s:t&n|~t&s,_S:(e,t)=>t<<e|t>>>32-e,_block(t){const s=this,r=s._h,a=e(80);for(let e=0;16>e;e++)a[e]=t[e];let i=r[0],o=r[1],c=r[2],l=r[3],h=r[4];for(let e=0;79>=e;e++){16>e||(a[e]=s._S(1,a[e-3]^a[e-8]^a[e-14]^a[e-16]));const t=s._S(5,i)+s._f(e,o,c,l)+h+a[e]+s._key[n.floor(e/20)]|0;h=l,l=c,c=s._S(30,o),o=i,i=t}r[0]=r[0]+i|0,r[1]=r[1]+o|0,r[2]=r[2]+c|0,r[3]=r[3]+l|0,r[4]=r[4]+h|0}};const T={getRandomValues(e){const t=new i(e.buffer),s=e=>{let t=987654321;const s=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&s,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&s)&s)/4294967296+.5)*(n.random()>.5?1:-1))};for(let r,a=0;a<e.length;a+=4){const e=s(4294967296*(r||n.random()));r=987654071*e(),t[a/4]=4294967296*e()|0}return e}},z={importKey:e=>new z.hmacSha1(v.bytes.toBits(e)),pbkdf2(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new s("invalid params to pbkdf2");const a=1+(r>>5)<<2;let i,o,l,h,u;const p=new ArrayBuffer(a),f=new c(p);let d=0;const g=k;for(t=v.bytes.toBits(t),u=1;(a||1)>d;u++){for(i=o=e.encrypt(g.concat(t,[u])),l=1;n>l;l++)for(o=e.encrypt(o),h=0;h<o.length;h++)i[h]^=o[h];for(l=0;(a||1)>d&&l<i.length;l++)f.setInt32(d,i[l]),d+=4}return p.slice(0,r/8)},hmacSha1:class{constructor(e){const t=this,n=t._hash=S.sha1,s=[[],[]],r=n.prototype.blockSize/32;t._baseHash=[new n,new n],e.length>r&&(e=n.hash(e));for(let t=0;r>t;t++)s[0][t]=909522486^e[t],s[1][t]=1549556828^e[t];t._baseHash[0].update(s[0]),t._baseHash[1].update(s[1]),t._resultHash=new n(t._baseHash[0])}reset(){const e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){this._updated=!0,this._resultHash.update(e)}digest(){const e=this,t=e._resultHash.finalize(),n=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),n}encrypt(e){if(this._updated)throw new s("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},C="Invalid pasword",R=16,D={name:"PBKDF2"},I=t.assign({hash:{name:"HMAC"}},D),V=t.assign({iterations:1e3,hash:{name:"SHA-1"}},D),q=["deriveBits"],A=[8,12,16],B=[16,24,32],H=10,K=[0,0,0,0],x="undefined",W="function",P=typeof u!=x,U=P&&typeof u.subtle!=x,E=P&&typeof u.getRandomValues==W,L=P&&U&&typeof u.subtle.importKey==W,M=P&&U&&typeof u.subtle.deriveBits==W,j=v.bytes,F=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const n=t._tables[0][4],r=t._tables[1],a=e.length;let i,o,c,l=1;if(4!==a&&6!==a&&8!==a)throw new s("invalid aes key size");for(t._key=[o=e.slice(0),c=[]],i=a;4*a+28>i;i++){let e=o[i-1];(i%a==0||8===a&&i%a==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],i%a==0&&(e=e<<8^e>>>24^l<<24,l=l<<1^283*(l>>7))),o[i]=o[i-a]^e}for(let e=0;i;e++,i--){const t=o[3&e?i:i-4];c[e]=4>=i||4>e?t:r[0][n[t>>>24]]^r[1][n[t>>16&255]]^r[2][n[t>>8&255]]^r[3][n[255&t]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],n=e[4],s=t[4],r=[],a=[];let i,o,c,l;for(let e=0;256>e;e++)a[(r[e]=e<<1^283*(e>>7))^e]=e;for(let h=i=0;!n[h];h^=o||1,i=a[i]||1){let a=i^i<<1^i<<2^i<<3^i<<4;a=a>>8^255&a^99,n[h]=a,s[a]=h,l=r[c=r[o=r[h]]];let u=16843009*l^65537*c^257*o^16843008*h,p=257*r[a]^16843008*a;for(let n=0;4>n;n++)e[n][h]=p=p<<24^p>>>8,t[n][a]=u=u<<24^u>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}_crypt(e,t){if(4!==e.length)throw new s("invalid aes block size");const n=this._key[t],r=n.length/4-2,a=[0,0,0,0],i=this._tables[t],o=i[0],c=i[1],l=i[2],h=i[3],u=i[4];let p,f,d,g=e[0]^n[0],w=e[t?3:1]^n[1],y=e[2]^n[2],_=e[t?1:3]^n[3],m=4;for(let e=0;r>e;e++)p=o[g>>>24]^c[w>>16&255]^l[y>>8&255]^h[255&_]^n[m],f=o[w>>>24]^c[y>>16&255]^l[_>>8&255]^h[255&g]^n[m+1],d=o[y>>>24]^c[_>>16&255]^l[g>>8&255]^h[255&w]^n[m+2],_=o[_>>>24]^c[g>>16&255]^l[w>>8&255]^h[255&y]^n[m+3],m+=4,g=p,w=f,y=d;for(let e=0;4>e;e++)a[t?3&-e:e]=u[g>>>24]<<24^u[w>>16&255]<<16^u[y>>8&255]<<8^u[255&_]^n[m++],p=g,g=w,w=y,y=_,_=p;return a}},N=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if(255==(e>>24&255)){let t=e>>16&255,n=e>>8&255,s=255&e;255===t?(t=0,255===n?(n=0,255===s?s=0:++s):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=s}else e+=1<<24;return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,n){let s;if(!(s=t.length))return[];const r=k.bitLength(t);for(let r=0;s>r;r+=4){this.incCounter(n);const s=e.encrypt(n);t[r]^=s[0],t[r+1]^=s[1],t[r+2]^=s[2],t[r+3]^=s[3]}return k.clamp(t,r)}},O=z.hmacSha1;class G extends f{constructor(n,a,i){let o;super({start(){t.assign(this,{ready:new l((e=>this.resolveReady=e)),password:n,signed:a,strength:i-1,pending:new r})},async transform(t,n){const a=this;if(a.password){const n=a.password;a.password=null;const r=Z(t,0,A[a.strength]+2);await(async(e,t,n)=>{await Q(e,n,Z(t,0,A[e.strength]));const r=Z(t,A[e.strength]),a=e.keys.passwordVerification;if(a[0]!=r[0]||a[1]!=r[1])throw new s(C)})(a,r,n),a.ctr=new N(new F(a.keys.key),e.from(K)),a.hmac=new O(a.keys.authentication),t=Z(t,A[a.strength]+2),a.resolveReady()}else await a.ready;const i=new r(t.length-H-(t.length-H)%R);n.enqueue(J(a,t,i,0,H,!0))},async flush(e){const t=this;await t.ready;const n=t.pending,s=Z(n,0,n.length-H),a=Z(n,n.length-H);let i=new r;if(s.length){const e=ee(j,s);t.hmac.update(e);const n=t.ctr.update(e);i=$(j,n)}if(o.valid=!0,t.signed){const e=Z($(j,t.hmac.digest()),0,H);for(let t=0;H>t;t++)e[t]!=a[t]&&(o.valid=!1)}e.enqueue(i)}}),o=this}}class X extends f{constructor(n,s){let a;super({start(){t.assign(this,{ready:new l((e=>this.resolveReady=e)),password:n,strength:s-1,pending:new r})},async transform(t,n){const s=this;let a=new r;if(s.password){const t=s.password;s.password=null,a=await(async(e,t)=>{const n=(s=new r(A[e.strength]),E?u.getRandomValues(s):T.getRandomValues(s));var s;return await Q(e,t,n),Y(n,e.keys.passwordVerification)})(s,t),s.ctr=new N(new F(s.keys.key),e.from(K)),s.hmac=new O(s.keys.authentication),s.resolveReady()}else await s.ready;const i=new r(a.length+t.length-t.length%R);i.set(a,0),n.enqueue(J(s,t,i,a.length,0))},async flush(e){const t=this;await t.ready;let n=new r;if(t.pending.length){const e=t.ctr.update(ee(j,t.pending));t.hmac.update(e),n=$(j,e)}a.signature=$(j,t.hmac.digest()).slice(0,H),e.enqueue(Y(n,a.signature))}}),a=this}}function J(e,t,n,s,a,i){const o=t.length-a;let c;for(e.pending.length&&(t=Y(e.pending,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new r(t)).set(n,0)}return e})(n,o-o%R)),c=0;o-R>=c;c+=R){const r=ee(j,Z(t,c,c+R));i&&e.hmac.update(r);const a=e.ctr.update(r);i||e.hmac.update(a),n.set($(j,a),c+s)}return e.pending=Z(t,c),n}async function Q(e,n,s){const a=(e=>{if(void 0===h){const t=new r((e=unescape(encodeURIComponent(e))).length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}return(new h).encode(e)})(n),i=await((e,t,n,s,r)=>L?u.subtle.importKey("raw",t,n,!1,r):z.importKey(t))(0,a,I,0,q),o=await(async(e,t,n)=>M?await u.subtle.deriveBits(e,t,n):z.pbkdf2(t,e.salt,V.iterations,n))(t.assign({salt:s},V),i,8*(2*B[e.strength]+2)),c=new r(o);e.keys={key:ee(j,Z(c,0,B[e.strength])),authentication:ee(j,Z(c,B[e.strength],2*B[e.strength])),passwordVerification:Z(c,2*B[e.strength])}}function Y(e,t){let n=e;return e.length+t.length&&(n=new r(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function Z(e,t,n){return e.subarray(t,n)}function $(e,t){return e.fromBits(t)}function ee(e,t){return e.toBits(t)}class te extends f{constructor(e,n){let r;super({start(){t.assign(this,{password:e,passwordVerification:n}),ae(this,e)},transform(e,t){const n=this;if(n.password){const t=se(n,e.subarray(0,12));if(n.password=null,t[11]!=n.passwordVerification)throw new s(C);e=e.subarray(12)}t.enqueue(se(n,e))},flush(){r.valid=!0}}),r=this}}class ne extends f{constructor(e,n){super({start(){t.assign(this,{password:e,passwordVerification:n}),ae(this,e)},transform(e,t){const n=this;let s,a;if(n.password){n.password=null;const t=u.getRandomValues(new r(12));t[11]=n.passwordVerification,s=new r(e.length+t.length),s.set(re(n,t),0),a=12}else s=new r(e.length),a=0;s.set(re(n,e),a),t.enqueue(s)},flush(){}})}}function se(e,t){const n=new r(t.length);for(let s=0;s<t.length;s++)n[s]=oe(e)^t[s],ie(e,n[s]);return n}function re(e,t){const n=new r(t.length);for(let s=0;s<t.length;s++)n[s]=oe(e)^t[s],ie(e,t[s]);return n}function ae(e,t){e.keys=[305419896,591751049,878082192],e.crcKey0=new m(e.keys[0]),e.crcKey2=new m(e.keys[2]);for(let n=0;n<t.length;n++)ie(e,t.charCodeAt(n))}function ie(e,t){e.crcKey0.append([t]),e.keys[0]=~e.crcKey0.get(),e.keys[1]=le(e.keys[1]+ce(e.keys[0])),e.keys[1]=le(n.imul(e.keys[1],134775813)+1),e.crcKey2.append([e.keys[1]>>>24]),e.keys[2]=~e.crcKey2.get()}function oe(e){const t=2|e.keys[2];return ce(n.imul(t,1^t)>>>8)}function ce(e){return 255&e}function le(e){return 4294967295&e}class he extends f{constructor(e,t){let n;super({start(){n=new e(t)},transform(e,t){e=n.append(e),t.enqueue(e)},flush(e){const t=n.flush();t&&e.enqueue(t)}})}}const ue="Invalid signature",pe="deflate-raw",fe="undefined",de=typeof w==fe,ge=typeof y==fe;let we=!0,ye=!0;class _e extends f{constructor(e,t,{chunkSize:n},...s){super({},...s);const{compressed:r,encrypted:a,useCompressionStream:i,password:o,passwordVerification:l,encryptionStrength:h,zipCrypto:u,signed:p}=t,f=this;let d,g,y=ke(super.readable);if(a&&!u||!p||([y,d]=y.tee(),d=d.pipeThrough(new b)),r)if(void 0!==i&&!i||de&&!ye)y=be(e,y,n);else try{y=y.pipeThrough(new w(pe))}catch(t){ye=!1,y=be(e,y,n)}a&&(u?y=y.pipeThrough(new ne(o,l)):(g=new X(o,h),y=y.pipeThrough(g))),ve(f,y,(async()=>{let e;a&&!u&&(e=g.signature),a&&!u||!p||(e=await d.getReader().read(),e=new c(e.value.buffer).getUint32(0)),f.signature=e}))}}class me extends f{constructor(e,t,{chunkSize:n},...r){super({},...r);const{zipCrypto:a,encrypted:i,password:o,passwordVerification:l,signed:h,encryptionStrength:u,compressed:p,useCompressionStream:f}=t;let d,g,w=ke(super.readable);if(i&&(a?w=w.pipeThrough(new te(o,l)):(g=new G(o,h,u),w=w.pipeThrough(g))),p)if(void 0!==f&&!f||ge&&!we)w=be(e,w,n);else try{w=w.pipeThrough(new y(pe))}catch(t){we=!1,w=be(e,w,n)}i&&!a||!h||([w,d]=w.tee(),d=d.pipeThrough(new b)),ve(this,w,(async()=>{if(i&&!a&&!g.valid)throw new s(ue);if((!i||a)&&h){const e=await d.getReader().read();if(e!=new c(e.value.buffer).getUint32(0,!1))throw new s(ue)}}))}}function be(e,t,n){return t.pipeThrough(new he(e,{chunkSize:n}))}function ke(e){return e.pipeThrough(new f({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function ve(e,n,s){e.length=0,n=n.pipeThrough(new f({transform(t,n){t&&t.length&&(e.length+=t.length,n.enqueue(t))},flush:s})),t.defineProperty(e,"readable",{get:()=>n})}const Se="deflate",Te="inflate",ze="data";class Ce{constructor(e,t,n,s,r){const{codecType:a}=s;async function i(a){const i=new a(e,s,r);await t.pipeThrough(i).pipeTo(n,{preventClose:!0});const{length:o,signature:c}=i;return{length:o,signature:c}}a.startsWith(Se)?this.run=()=>i(_e):a.startsWith(Te)&&(this.run=()=>i(me))}}const Re=new Map;let De,Ie=0;async function Ve(e){try{const{options:t,scripts:n,config:s}=e,{codecType:r}=t;let a;n&&n.length&&importScripts.apply(void 0,n),self.initCodec&&self.initCodec(),r.startsWith(Se)?a=self.Deflate:r.startsWith(Te)&&(a=self.Inflate);const i={highWaterMark:1,size:()=>s.chunkSize},o=new d({async pull(e){let t=new l(((e,t)=>Re.set(Ie,{resolve:e,reject:t})));qe({type:"pull",messageId:Ie}),Ie=(Ie+1)%Number.MAX_SAFE_INTEGER;const{value:n,done:s}=await t;e.enqueue(n),s&&e.close()}},i),c=new g({write(e){qe({type:ze,data:e})}},i);De=new Ce(a,o,c,t,s),qe({type:"close",result:await De.run()})}catch(e){const{message:t,stack:n}=e;p({error:{message:t,stack:n}})}}function qe(e){if(e.data){let{data:t}=e;if(t&&t.length)try{t.length!=t.buffer.byteLength&&(t=new r(t)),e.data=t.buffer,p(e,[e.data])}catch(t){p(e)}else p(e)}else p(e)}function Ae(e,n,s){return class{constructor(a){const i=this;t.hasOwn(a,"level")&&void 0===a.level&&delete a.level,i.codec=new e(t.assign({},n,a)),s(i.codec,(e=>{if(i.pendingData){const{pendingData:t}=i;i.pendingData=new r(t.length+e.length),t.set(t,0),t.set(e,t.length)}else i.pendingData=new r(e)}))}append(e){return this.codec.push(e),a(this)}flush(){return this.codec.push(new r,!0),a(this)}};function a(e){if(e.pendingData){const t=e.pendingData;return e.pendingData=null,t}return new r}}addEventListener("message",(async e=>{const t=e.data,{type:n,messageId:s,data:a,done:i}=t;try{if("start"==n&&Ve(t),n==ze){const{resolve:e}=Re.get(s);Re.delete(s),e({value:new r(a),done:i})}}catch(e){p({error:{message:e.message,stack:e.stack}})}})),self.initCodec=()=>{const{Deflate:e,Inflate:t}=((e,t={},n)=>({Deflate:Ae(e.Deflate,t.deflate,n),Inflate:Ae(e.Inflate,t.inflate,n)}))(fflate,void 0,((e,t)=>e.ondata=t));self.Deflate=e,self.Inflate=t}}();
@@ -1 +1 @@
1
- !function(){"use strict";const{Array:e,Object:t,Math:n,Error:s,Uint8Array:r,Uint16Array:a,Uint32Array:i,Int32Array:o,DataView:c,Promise:l,TextEncoder:h,crypto:u,postMessage:p,TransformStream:f,ReadableStream:d,WritableStream:g,CompressionStream:w,DecompressionStream:y}=globalThis,_=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;_[e]=t}class m{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let n=0,s=0|e.length;s>n;n++)t=t>>>8^_[255&(t^e[n])];this.crc=t}get(){return~this.crc}}class b extends f{constructor(){super({start(){this.crc32=new m},transform(e){this.crc32.append(e)},flush(e){const t=new r(4);new c(t.buffer).setUint32(0,this.crc32.get()),e.enqueue(t)}})}}const k={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],s=k.getPartial(n);return 32===s?e.concat(t):k._shiftRight(t,s,0|n,e.slice(0,e.length-1))},bitLength(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+k.getPartial(n)},clamp(e,t){if(32*e.length<t)return e;const s=(e=e.slice(0,n.ceil(t/32))).length;return t&=31,s>0&&t&&(e[s-1]=k.partial(t,e[s-1]&2147483648>>t-1,1)),e},partial:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,getPartial:e=>n.round(e/1099511627776)||32,_shiftRight(e,t,n,s){for(void 0===s&&(s=[]);t>=32;t-=32)s.push(n),n=0;if(0===t)return s.concat(e);for(let r=0;r<e.length;r++)s.push(n|e[r]>>>t),n=e[r]<<32-t;const r=e.length?e[e.length-1]:0,a=k.getPartial(r);return s.push(k.partial(t+a&31,t+a>32?n:s.pop(),1)),s}},v={bytes:{fromBits(e){const t=k.bitLength(e)/8,n=new r(t);let s;for(let r=0;t>r;r++)0==(3&r)&&(s=e[r/4]),n[r]=s>>>24,s<<=8;return n},toBits(e){const t=[];let n,s=0;for(n=0;n<e.length;n++)s=s<<8|e[n],3==(3&n)&&(t.push(s),s=0);return 3&n&&t.push(k.partial(8*(3&n),s)),t}}},S={sha1:function(e){e?(this._h=e._h.slice(0),this._buffer=e._buffer.slice(0),this._length=e._length):this.reset()}};S.sha1.prototype={blockSize:512,reset(){const e=this;return e._h=this._init.slice(0),e._buffer=[],e._length=0,e},update(e){const t=this;"string"==typeof e&&(e=v.utf8String.toBits(e));const n=t._buffer=k.concat(t._buffer,e),r=t._length,a=t._length=r+k.bitLength(e);if(a>9007199254740991)throw new s("Cannot hash more than 2^53 - 1 bits");const o=new i(n);let c=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);a>=e;e+=t.blockSize)t._block(o.subarray(16*c,16*(c+1))),c+=1;return n.splice(0,16*c),t},finalize(){const e=this;let t=e._buffer;const s=e._h;t=k.concat(t,[k.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(n.floor(e._length/4294967296)),t.push(0|e._length);t.length;)e._block(t.splice(0,16));return e.reset(),s},_init:[1732584193,4023233417,2562383102,271733878,3285377520],_key:[1518500249,1859775393,2400959708,3395469782],_f:(e,t,n,s)=>e>19?e>39?e>59?e>79?void 0:t^n^s:t&n|t&s|n&s:t^n^s:t&n|~t&s,_S:(e,t)=>t<<e|t>>>32-e,_block(t){const s=this,r=s._h,a=e(80);for(let e=0;16>e;e++)a[e]=t[e];let i=r[0],o=r[1],c=r[2],l=r[3],h=r[4];for(let e=0;79>=e;e++){16>e||(a[e]=s._S(1,a[e-3]^a[e-8]^a[e-14]^a[e-16]));const t=s._S(5,i)+s._f(e,o,c,l)+h+a[e]+s._key[n.floor(e/20)]|0;h=l,l=c,c=s._S(30,o),o=i,i=t}r[0]=r[0]+i|0,r[1]=r[1]+o|0,r[2]=r[2]+c|0,r[3]=r[3]+l|0,r[4]=r[4]+h|0}};const T={getRandomValues(e){const t=new i(e.buffer),s=e=>{let t=987654321;const s=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&s,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&s)&s)/4294967296+.5)*(n.random()>.5?1:-1))};for(let r,a=0;a<e.length;a+=4){const e=s(4294967296*(r||n.random()));r=987654071*e(),t[a/4]=4294967296*e()|0}return e}},z={importKey:e=>new z.hmacSha1(v.bytes.toBits(e)),pbkdf2(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new s("invalid params to pbkdf2");const a=1+(r>>5)<<2;let i,o,l,h,u;const p=new ArrayBuffer(a),f=new c(p);let d=0;const g=k;for(t=v.bytes.toBits(t),u=1;(a||1)>d;u++){for(i=o=e.encrypt(g.concat(t,[u])),l=1;n>l;l++)for(o=e.encrypt(o),h=0;h<o.length;h++)i[h]^=o[h];for(l=0;(a||1)>d&&l<i.length;l++)f.setInt32(d,i[l]),d+=4}return p.slice(0,r/8)},hmacSha1:class{constructor(e){const t=this,n=t._hash=S.sha1,s=[[],[]],r=n.prototype.blockSize/32;t._baseHash=[new n,new n],e.length>r&&(e=n.hash(e));for(let t=0;r>t;t++)s[0][t]=909522486^e[t],s[1][t]=1549556828^e[t];t._baseHash[0].update(s[0]),t._baseHash[1].update(s[1]),t._resultHash=new n(t._baseHash[0])}reset(){const e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){this._updated=!0,this._resultHash.update(e)}digest(){const e=this,t=e._resultHash.finalize(),n=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),n}encrypt(e){if(this._updated)throw new s("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},D="Invalid pasword",C=16,R={name:"PBKDF2"},I=t.assign({hash:{name:"HMAC"}},R),V=t.assign({iterations:1e3,hash:{name:"SHA-1"}},R),q=["deriveBits"],A=[8,12,16],B=[16,24,32],H=10,K=[0,0,0,0],x="undefined",W="function",P=typeof u!=x,U=P&&typeof u.subtle!=x,E=P&&typeof u.getRandomValues==W,L=P&&U&&typeof u.subtle.importKey==W,M=P&&U&&typeof u.subtle.deriveBits==W,j=v.bytes,F=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const n=t._tables[0][4],r=t._tables[1],a=e.length;let i,o,c,l=1;if(4!==a&&6!==a&&8!==a)throw new s("invalid aes key size");for(t._key=[o=e.slice(0),c=[]],i=a;4*a+28>i;i++){let e=o[i-1];(i%a==0||8===a&&i%a==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],i%a==0&&(e=e<<8^e>>>24^l<<24,l=l<<1^283*(l>>7))),o[i]=o[i-a]^e}for(let e=0;i;e++,i--){const t=o[3&e?i:i-4];c[e]=4>=i||4>e?t:r[0][n[t>>>24]]^r[1][n[t>>16&255]]^r[2][n[t>>8&255]]^r[3][n[255&t]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],n=e[4],s=t[4],r=[],a=[];let i,o,c,l;for(let e=0;256>e;e++)a[(r[e]=e<<1^283*(e>>7))^e]=e;for(let h=i=0;!n[h];h^=o||1,i=a[i]||1){let a=i^i<<1^i<<2^i<<3^i<<4;a=a>>8^255&a^99,n[h]=a,s[a]=h,l=r[c=r[o=r[h]]];let u=16843009*l^65537*c^257*o^16843008*h,p=257*r[a]^16843008*a;for(let n=0;4>n;n++)e[n][h]=p=p<<24^p>>>8,t[n][a]=u=u<<24^u>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}_crypt(e,t){if(4!==e.length)throw new s("invalid aes block size");const n=this._key[t],r=n.length/4-2,a=[0,0,0,0],i=this._tables[t],o=i[0],c=i[1],l=i[2],h=i[3],u=i[4];let p,f,d,g=e[0]^n[0],w=e[t?3:1]^n[1],y=e[2]^n[2],_=e[t?1:3]^n[3],m=4;for(let e=0;r>e;e++)p=o[g>>>24]^c[w>>16&255]^l[y>>8&255]^h[255&_]^n[m],f=o[w>>>24]^c[y>>16&255]^l[_>>8&255]^h[255&g]^n[m+1],d=o[y>>>24]^c[_>>16&255]^l[g>>8&255]^h[255&w]^n[m+2],_=o[_>>>24]^c[g>>16&255]^l[w>>8&255]^h[255&y]^n[m+3],m+=4,g=p,w=f,y=d;for(let e=0;4>e;e++)a[t?3&-e:e]=u[g>>>24]<<24^u[w>>16&255]<<16^u[y>>8&255]<<8^u[255&_]^n[m++],p=g,g=w,w=y,y=_,_=p;return a}},N=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if(255==(e>>24&255)){let t=e>>16&255,n=e>>8&255,s=255&e;255===t?(t=0,255===n?(n=0,255===s?s=0:++s):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=s}else e+=1<<24;return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,n){let s;if(!(s=t.length))return[];const r=k.bitLength(t);for(let r=0;s>r;r+=4){this.incCounter(n);const s=e.encrypt(n);t[r]^=s[0],t[r+1]^=s[1],t[r+2]^=s[2],t[r+3]^=s[3]}return k.clamp(t,r)}},O=z.hmacSha1;class G extends f{constructor(n,a,i){let o;super({start(){t.assign(this,{ready:new l((e=>this.resolveReady=e)),password:n,signed:a,strength:i-1,pending:new r})},async transform(t,n){const a=this;if(a.password){const n=a.password;a.password=null;const r=Z(t,0,A[a.strength]+2);await(async(e,t,n)=>{await Q(e,n,Z(t,0,A[e.strength]));const r=Z(t,A[e.strength]),a=e.keys.passwordVerification;if(a[0]!=r[0]||a[1]!=r[1])throw new s(D)})(a,r,n),a.ctr=new N(new F(a.keys.key),e.from(K)),a.hmac=new O(a.keys.authentication),t=Z(t,A[a.strength]+2),a.resolveReady()}else await a.ready;const i=new r(t.length-H-(t.length-H)%C);n.enqueue(J(a,t,i,0,H,!0))},async flush(e){const t=this;await t.ready;const n=t.pending,s=Z(n,0,n.length-H),a=Z(n,n.length-H);let i=new r;if(s.length){const e=ee(j,s);t.hmac.update(e);const n=t.ctr.update(e);i=$(j,n)}if(o.valid=!0,t.signed){const e=Z($(j,t.hmac.digest()),0,H);for(let t=0;H>t;t++)e[t]!=a[t]&&(o.valid=!1)}e.enqueue(i)}}),o=this}}class X extends f{constructor(n,s){let a;super({start(){t.assign(this,{ready:new l((e=>this.resolveReady=e)),password:n,strength:s-1,pending:new r})},async transform(t,n){const s=this;let a=new r;if(s.password){const t=s.password;s.password=null,a=await(async(e,t)=>{const n=(s=new r(A[e.strength]),E?u.getRandomValues(s):T.getRandomValues(s));var s;return await Q(e,t,n),Y(n,e.keys.passwordVerification)})(s,t),s.ctr=new N(new F(s.keys.key),e.from(K)),s.hmac=new O(s.keys.authentication),s.resolveReady()}else await s.ready;const i=new r(a.length+t.length-t.length%C);i.set(a,0),n.enqueue(J(s,t,i,a.length,0))},async flush(e){const t=this;await t.ready;let n=new r;if(t.pending.length){const e=t.ctr.update(ee(j,t.pending));t.hmac.update(e),n=$(j,e)}a.signature=$(j,t.hmac.digest()).slice(0,H),e.enqueue(Y(n,a.signature))}}),a=this}}function J(e,t,n,s,a,i){const o=t.length-a;let c;for(e.pending.length&&(t=Y(e.pending,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new r(t)).set(n,0)}return e})(n,o-o%C)),c=0;o-C>=c;c+=C){const r=ee(j,Z(t,c,c+C));i&&e.hmac.update(r);const a=e.ctr.update(r);i||e.hmac.update(a),n.set($(j,a),c+s)}return e.pending=Z(t,c),n}async function Q(e,n,s){const a=(e=>{if(void 0===h){const t=new r((e=unescape(encodeURIComponent(e))).length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}return(new h).encode(e)})(n),i=await((e,t,n,s,r)=>L?u.subtle.importKey("raw",t,n,!1,r):z.importKey(t))(0,a,I,0,q),o=await(async(e,t,n)=>M?await u.subtle.deriveBits(e,t,n):z.pbkdf2(t,e.salt,V.iterations,n))(t.assign({salt:s},V),i,8*(2*B[e.strength]+2)),c=new r(o);e.keys={key:ee(j,Z(c,0,B[e.strength])),authentication:ee(j,Z(c,B[e.strength],2*B[e.strength])),passwordVerification:Z(c,2*B[e.strength])}}function Y(e,t){let n=e;return e.length+t.length&&(n=new r(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function Z(e,t,n){return e.subarray(t,n)}function $(e,t){return e.fromBits(t)}function ee(e,t){return e.toBits(t)}class te extends f{constructor(e,n){let r;super({start(){t.assign(this,{password:e,passwordVerification:n}),ae(this,e)},transform(e,t){const n=this;if(n.password){const t=se(n,e.subarray(0,12));if(n.password=null,t[11]!=n.passwordVerification)throw new s(D);e=e.subarray(12)}t.enqueue(se(n,e))},flush(){r.valid=!0}}),r=this}}class ne extends f{constructor(e,n){super({start(){t.assign(this,{password:e,passwordVerification:n}),ae(this,e)},transform(e,t){const n=this;let s,a;if(n.password){n.password=null;const t=u.getRandomValues(new r(12));t[11]=n.passwordVerification,s=new r(e.length+t.length),s.set(re(n,t),0),a=12}else s=new r(e.length),a=0;s.set(re(n,e),a),t.enqueue(s)},flush(){}})}}function se(e,t){const n=new r(t.length);for(let s=0;s<t.length;s++)n[s]=oe(e)^t[s],ie(e,n[s]);return n}function re(e,t){const n=new r(t.length);for(let s=0;s<t.length;s++)n[s]=oe(e)^t[s],ie(e,t[s]);return n}function ae(e,t){e.keys=[305419896,591751049,878082192],e.crcKey0=new m(e.keys[0]),e.crcKey2=new m(e.keys[2]);for(let n=0;n<t.length;n++)ie(e,t.charCodeAt(n))}function ie(e,t){e.crcKey0.append([t]),e.keys[0]=~e.crcKey0.get(),e.keys[1]=le(e.keys[1]+ce(e.keys[0])),e.keys[1]=le(n.imul(e.keys[1],134775813)+1),e.crcKey2.append([e.keys[1]>>>24]),e.keys[2]=~e.crcKey2.get()}function oe(e){const t=2|e.keys[2];return ce(n.imul(t,1^t)>>>8)}function ce(e){return 255&e}function le(e){return 4294967295&e}class he extends f{constructor(e,t){let n;super({start(){n=new e(t)},transform(e,t){e=n.append(e),t.enqueue(e)},flush(e){const t=n.flush();t&&e.enqueue(t)}})}}const ue="Invalid signature",pe="deflate-raw",fe="undefined",de=typeof w==fe,ge=typeof y==fe;let we=!0,ye=!0;class _e extends f{constructor(e,t,{chunkSize:n},...s){super({},...s);const{compressed:r,encrypted:a,useCompressionStream:i,password:o,passwordVerification:l,encryptionStrength:h,zipCrypto:u,signed:p}=t,f=this;let d,g,y=ke(super.readable);if(a&&!u||!p||([y,d]=y.tee(),d=d.pipeThrough(new b)),r)if(void 0!==i&&!i||de&&!ye)y=be(e,y,n);else try{y=y.pipeThrough(new w(pe))}catch(t){ye=!1,y=be(e,y,n)}a&&(u?y=y.pipeThrough(new ne(o,l)):(g=new X(o,h),y=y.pipeThrough(g))),ve(f,y,(async()=>{let e;a&&!u&&(e=g.signature),a&&!u||!p||(e=await d.getReader().read(),e=new c(e.value.buffer).getUint32(0)),f.signature=e}))}}class me extends f{constructor(e,t,{chunkSize:n},...r){super({},...r);const{zipCrypto:a,encrypted:i,password:o,passwordVerification:l,signed:h,encryptionStrength:u,compressed:p,useCompressionStream:f}=t;let d,g,w=ke(super.readable);if(i&&(a?w=w.pipeThrough(new te(o,l)):(g=new G(o,h,u),w=w.pipeThrough(g))),p)if(void 0!==f&&!f||ge&&!we)w=be(e,w,n);else try{w=w.pipeThrough(new y(pe))}catch(t){we=!1,w=be(e,w,n)}i&&!a||!h||([w,d]=w.tee(),d=d.pipeThrough(new b)),ve(this,w,(async()=>{if(i&&!a&&!g.valid)throw new s(ue);if((!i||a)&&h){const e=await d.getReader().read();if(e!=new c(e.value.buffer).getUint32(0,!1))throw new s(ue)}}))}}function be(e,t,n){return t.pipeThrough(new he(e,{chunkSize:n}))}function ke(e){return e.pipeThrough(new f({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function ve(e,n,s){e.length=0,n=n.pipeThrough(new f({transform(t,n){t&&t.length&&(e.length+=t.length,n.enqueue(t))},flush:s})),t.defineProperty(e,"readable",{get:()=>n})}const Se="deflate",Te="inflate",ze="data";class De{constructor(e,t,n,s,r){const{codecType:a}=s;async function i(a){const i=new a(e,s,r);await t.pipeThrough(i).pipeTo(n,{preventClose:!0});const{length:o,signature:c}=i;return{length:o,signature:c}}a.startsWith(Se)?this.run=()=>i(_e):a.startsWith(Te)&&(this.run=()=>i(me))}}const Ce=new Map;let Re,Ie=0;async function Ve(e){try{const{options:t,scripts:n,config:s}=e,{codecType:r}=t;let a;n&&n.length&&importScripts.apply(void 0,n),self.initCodec&&self.initCodec(),r.startsWith(Se)?a=self.Deflate:r.startsWith(Te)&&(a=self.Inflate);const i={highWaterMark:1,size:()=>s.chunkSize},o=new d({async pull(e){let t=new l(((e,t)=>Ce.set(Ie,{resolve:e,reject:t})));qe({type:"pull",messageId:Ie}),Ie=(Ie+1)%Number.MAX_SAFE_INTEGER;const{value:n,done:s}=await t;e.enqueue(n),s&&e.close()}},i),c=new g({write(e){qe({type:ze,data:e})}},i);Re=new De(a,o,c,t,s),qe({type:"close",result:await Re.run()})}catch(e){const{message:t,stack:n}=e;p({error:{message:t,stack:n}})}}function qe(e){if(e.data){let{data:t}=e;if(t&&t.length)try{t.length!=t.buffer.byteLength&&(t=new r(t)),e.data=t.buffer,p(e,[e.data])}catch(t){p(e)}else p(e)}else p(e)}function Ae(e,n,s){return class{constructor(a){const i=this;a.hasOwnProperty("level")&&void 0===a.level&&delete a.level,i.codec=new e(t.assign({},n,a)),s(i.codec,(e=>{if(i.pendingData){const{pendingData:t}=i;i.pendingData=new r(t.length+e.length),i.pendingData.set(t,0),i.pendingData.set(e,t.length)}else i.pendingData=new r(e)}))}append(e){return this.codec.push(e),a(this)}flush(){return this.codec.push(new r,!0),a(this)}};function a(e){if(e.pendingData){const t=e.pendingData;return e.pendingData=null,t}return new r}}addEventListener("message",(async e=>{const t=e.data,{type:n,messageId:s,data:a,done:i}=t;try{if("start"==n&&Ve(t),n==ze){const{resolve:e}=Ce.get(s);Ce.delete(s),e({value:new r(a),done:i})}}catch(e){p({error:{message:e.message,stack:e.stack}})}})),self.initCodec=()=>{const{Deflate:e,Inflate:t}=((e,t={},n)=>({Deflate:Ae(e.Deflate,t.deflate,n),Inflate:Ae(e.Inflate,t.inflate,n)}))(pako,{deflate:{raw:!0},inflate:{raw:!0}},((e,t)=>e.onData=t));self.Deflate=e,self.Inflate=t}}();
1
+ !function(){"use strict";const{Array:e,Object:t,Math:n,Error:s,Uint8Array:r,Uint16Array:a,Uint32Array:i,Int32Array:o,DataView:c,Promise:l,TextEncoder:h,crypto:u,postMessage:p,TransformStream:f,ReadableStream:d,WritableStream:g,CompressionStream:w,DecompressionStream:y}=globalThis,_=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;_[e]=t}class m{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let n=0,s=0|e.length;s>n;n++)t=t>>>8^_[255&(t^e[n])];this.crc=t}get(){return~this.crc}}class b extends f{constructor(){super({start(){this.crc32=new m},transform(e){this.crc32.append(e)},flush(e){const t=new r(4);new c(t.buffer).setUint32(0,this.crc32.get()),e.enqueue(t)}})}}const k={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],s=k.getPartial(n);return 32===s?e.concat(t):k._shiftRight(t,s,0|n,e.slice(0,e.length-1))},bitLength(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+k.getPartial(n)},clamp(e,t){if(32*e.length<t)return e;const s=(e=e.slice(0,n.ceil(t/32))).length;return t&=31,s>0&&t&&(e[s-1]=k.partial(t,e[s-1]&2147483648>>t-1,1)),e},partial:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,getPartial:e=>n.round(e/1099511627776)||32,_shiftRight(e,t,n,s){for(void 0===s&&(s=[]);t>=32;t-=32)s.push(n),n=0;if(0===t)return s.concat(e);for(let r=0;r<e.length;r++)s.push(n|e[r]>>>t),n=e[r]<<32-t;const r=e.length?e[e.length-1]:0,a=k.getPartial(r);return s.push(k.partial(t+a&31,t+a>32?n:s.pop(),1)),s}},v={bytes:{fromBits(e){const t=k.bitLength(e)/8,n=new r(t);let s;for(let r=0;t>r;r++)0==(3&r)&&(s=e[r/4]),n[r]=s>>>24,s<<=8;return n},toBits(e){const t=[];let n,s=0;for(n=0;n<e.length;n++)s=s<<8|e[n],3==(3&n)&&(t.push(s),s=0);return 3&n&&t.push(k.partial(8*(3&n),s)),t}}},S={sha1:function(e){e?(this._h=e._h.slice(0),this._buffer=e._buffer.slice(0),this._length=e._length):this.reset()}};S.sha1.prototype={blockSize:512,reset(){const e=this;return e._h=this._init.slice(0),e._buffer=[],e._length=0,e},update(e){const t=this;"string"==typeof e&&(e=v.utf8String.toBits(e));const n=t._buffer=k.concat(t._buffer,e),r=t._length,a=t._length=r+k.bitLength(e);if(a>9007199254740991)throw new s("Cannot hash more than 2^53 - 1 bits");const o=new i(n);let c=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);a>=e;e+=t.blockSize)t._block(o.subarray(16*c,16*(c+1))),c+=1;return n.splice(0,16*c),t},finalize(){const e=this;let t=e._buffer;const s=e._h;t=k.concat(t,[k.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(n.floor(e._length/4294967296)),t.push(0|e._length);t.length;)e._block(t.splice(0,16));return e.reset(),s},_init:[1732584193,4023233417,2562383102,271733878,3285377520],_key:[1518500249,1859775393,2400959708,3395469782],_f:(e,t,n,s)=>e>19?e>39?e>59?e>79?void 0:t^n^s:t&n|t&s|n&s:t^n^s:t&n|~t&s,_S:(e,t)=>t<<e|t>>>32-e,_block(t){const s=this,r=s._h,a=e(80);for(let e=0;16>e;e++)a[e]=t[e];let i=r[0],o=r[1],c=r[2],l=r[3],h=r[4];for(let e=0;79>=e;e++){16>e||(a[e]=s._S(1,a[e-3]^a[e-8]^a[e-14]^a[e-16]));const t=s._S(5,i)+s._f(e,o,c,l)+h+a[e]+s._key[n.floor(e/20)]|0;h=l,l=c,c=s._S(30,o),o=i,i=t}r[0]=r[0]+i|0,r[1]=r[1]+o|0,r[2]=r[2]+c|0,r[3]=r[3]+l|0,r[4]=r[4]+h|0}};const T={getRandomValues(e){const t=new i(e.buffer),s=e=>{let t=987654321;const s=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&s,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&s)&s)/4294967296+.5)*(n.random()>.5?1:-1))};for(let r,a=0;a<e.length;a+=4){const e=s(4294967296*(r||n.random()));r=987654071*e(),t[a/4]=4294967296*e()|0}return e}},z={importKey:e=>new z.hmacSha1(v.bytes.toBits(e)),pbkdf2(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new s("invalid params to pbkdf2");const a=1+(r>>5)<<2;let i,o,l,h,u;const p=new ArrayBuffer(a),f=new c(p);let d=0;const g=k;for(t=v.bytes.toBits(t),u=1;(a||1)>d;u++){for(i=o=e.encrypt(g.concat(t,[u])),l=1;n>l;l++)for(o=e.encrypt(o),h=0;h<o.length;h++)i[h]^=o[h];for(l=0;(a||1)>d&&l<i.length;l++)f.setInt32(d,i[l]),d+=4}return p.slice(0,r/8)},hmacSha1:class{constructor(e){const t=this,n=t._hash=S.sha1,s=[[],[]],r=n.prototype.blockSize/32;t._baseHash=[new n,new n],e.length>r&&(e=n.hash(e));for(let t=0;r>t;t++)s[0][t]=909522486^e[t],s[1][t]=1549556828^e[t];t._baseHash[0].update(s[0]),t._baseHash[1].update(s[1]),t._resultHash=new n(t._baseHash[0])}reset(){const e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){this._updated=!0,this._resultHash.update(e)}digest(){const e=this,t=e._resultHash.finalize(),n=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),n}encrypt(e){if(this._updated)throw new s("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},C="Invalid pasword",D=16,R={name:"PBKDF2"},I=t.assign({hash:{name:"HMAC"}},R),V=t.assign({iterations:1e3,hash:{name:"SHA-1"}},R),q=["deriveBits"],A=[8,12,16],B=[16,24,32],H=10,K=[0,0,0,0],x="undefined",W="function",P=typeof u!=x,U=P&&typeof u.subtle!=x,E=P&&typeof u.getRandomValues==W,L=P&&U&&typeof u.subtle.importKey==W,M=P&&U&&typeof u.subtle.deriveBits==W,j=v.bytes,F=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const n=t._tables[0][4],r=t._tables[1],a=e.length;let i,o,c,l=1;if(4!==a&&6!==a&&8!==a)throw new s("invalid aes key size");for(t._key=[o=e.slice(0),c=[]],i=a;4*a+28>i;i++){let e=o[i-1];(i%a==0||8===a&&i%a==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],i%a==0&&(e=e<<8^e>>>24^l<<24,l=l<<1^283*(l>>7))),o[i]=o[i-a]^e}for(let e=0;i;e++,i--){const t=o[3&e?i:i-4];c[e]=4>=i||4>e?t:r[0][n[t>>>24]]^r[1][n[t>>16&255]]^r[2][n[t>>8&255]]^r[3][n[255&t]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],n=e[4],s=t[4],r=[],a=[];let i,o,c,l;for(let e=0;256>e;e++)a[(r[e]=e<<1^283*(e>>7))^e]=e;for(let h=i=0;!n[h];h^=o||1,i=a[i]||1){let a=i^i<<1^i<<2^i<<3^i<<4;a=a>>8^255&a^99,n[h]=a,s[a]=h,l=r[c=r[o=r[h]]];let u=16843009*l^65537*c^257*o^16843008*h,p=257*r[a]^16843008*a;for(let n=0;4>n;n++)e[n][h]=p=p<<24^p>>>8,t[n][a]=u=u<<24^u>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}_crypt(e,t){if(4!==e.length)throw new s("invalid aes block size");const n=this._key[t],r=n.length/4-2,a=[0,0,0,0],i=this._tables[t],o=i[0],c=i[1],l=i[2],h=i[3],u=i[4];let p,f,d,g=e[0]^n[0],w=e[t?3:1]^n[1],y=e[2]^n[2],_=e[t?1:3]^n[3],m=4;for(let e=0;r>e;e++)p=o[g>>>24]^c[w>>16&255]^l[y>>8&255]^h[255&_]^n[m],f=o[w>>>24]^c[y>>16&255]^l[_>>8&255]^h[255&g]^n[m+1],d=o[y>>>24]^c[_>>16&255]^l[g>>8&255]^h[255&w]^n[m+2],_=o[_>>>24]^c[g>>16&255]^l[w>>8&255]^h[255&y]^n[m+3],m+=4,g=p,w=f,y=d;for(let e=0;4>e;e++)a[t?3&-e:e]=u[g>>>24]<<24^u[w>>16&255]<<16^u[y>>8&255]<<8^u[255&_]^n[m++],p=g,g=w,w=y,y=_,_=p;return a}},N=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if(255==(e>>24&255)){let t=e>>16&255,n=e>>8&255,s=255&e;255===t?(t=0,255===n?(n=0,255===s?s=0:++s):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=s}else e+=1<<24;return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,n){let s;if(!(s=t.length))return[];const r=k.bitLength(t);for(let r=0;s>r;r+=4){this.incCounter(n);const s=e.encrypt(n);t[r]^=s[0],t[r+1]^=s[1],t[r+2]^=s[2],t[r+3]^=s[3]}return k.clamp(t,r)}},O=z.hmacSha1;class G extends f{constructor(n,a,i){let o;super({start(){t.assign(this,{ready:new l((e=>this.resolveReady=e)),password:n,signed:a,strength:i-1,pending:new r})},async transform(t,n){const a=this;if(a.password){const n=a.password;a.password=null;const r=Z(t,0,A[a.strength]+2);await(async(e,t,n)=>{await Q(e,n,Z(t,0,A[e.strength]));const r=Z(t,A[e.strength]),a=e.keys.passwordVerification;if(a[0]!=r[0]||a[1]!=r[1])throw new s(C)})(a,r,n),a.ctr=new N(new F(a.keys.key),e.from(K)),a.hmac=new O(a.keys.authentication),t=Z(t,A[a.strength]+2),a.resolveReady()}else await a.ready;const i=new r(t.length-H-(t.length-H)%D);n.enqueue(J(a,t,i,0,H,!0))},async flush(e){const t=this;await t.ready;const n=t.pending,s=Z(n,0,n.length-H),a=Z(n,n.length-H);let i=new r;if(s.length){const e=ee(j,s);t.hmac.update(e);const n=t.ctr.update(e);i=$(j,n)}if(o.valid=!0,t.signed){const e=Z($(j,t.hmac.digest()),0,H);for(let t=0;H>t;t++)e[t]!=a[t]&&(o.valid=!1)}e.enqueue(i)}}),o=this}}class X extends f{constructor(n,s){let a;super({start(){t.assign(this,{ready:new l((e=>this.resolveReady=e)),password:n,strength:s-1,pending:new r})},async transform(t,n){const s=this;let a=new r;if(s.password){const t=s.password;s.password=null,a=await(async(e,t)=>{const n=(s=new r(A[e.strength]),E?u.getRandomValues(s):T.getRandomValues(s));var s;return await Q(e,t,n),Y(n,e.keys.passwordVerification)})(s,t),s.ctr=new N(new F(s.keys.key),e.from(K)),s.hmac=new O(s.keys.authentication),s.resolveReady()}else await s.ready;const i=new r(a.length+t.length-t.length%D);i.set(a,0),n.enqueue(J(s,t,i,a.length,0))},async flush(e){const t=this;await t.ready;let n=new r;if(t.pending.length){const e=t.ctr.update(ee(j,t.pending));t.hmac.update(e),n=$(j,e)}a.signature=$(j,t.hmac.digest()).slice(0,H),e.enqueue(Y(n,a.signature))}}),a=this}}function J(e,t,n,s,a,i){const o=t.length-a;let c;for(e.pending.length&&(t=Y(e.pending,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new r(t)).set(n,0)}return e})(n,o-o%D)),c=0;o-D>=c;c+=D){const r=ee(j,Z(t,c,c+D));i&&e.hmac.update(r);const a=e.ctr.update(r);i||e.hmac.update(a),n.set($(j,a),c+s)}return e.pending=Z(t,c),n}async function Q(e,n,s){const a=(e=>{if(void 0===h){const t=new r((e=unescape(encodeURIComponent(e))).length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}return(new h).encode(e)})(n),i=await((e,t,n,s,r)=>L?u.subtle.importKey("raw",t,n,!1,r):z.importKey(t))(0,a,I,0,q),o=await(async(e,t,n)=>M?await u.subtle.deriveBits(e,t,n):z.pbkdf2(t,e.salt,V.iterations,n))(t.assign({salt:s},V),i,8*(2*B[e.strength]+2)),c=new r(o);e.keys={key:ee(j,Z(c,0,B[e.strength])),authentication:ee(j,Z(c,B[e.strength],2*B[e.strength])),passwordVerification:Z(c,2*B[e.strength])}}function Y(e,t){let n=e;return e.length+t.length&&(n=new r(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function Z(e,t,n){return e.subarray(t,n)}function $(e,t){return e.fromBits(t)}function ee(e,t){return e.toBits(t)}class te extends f{constructor(e,n){let r;super({start(){t.assign(this,{password:e,passwordVerification:n}),ae(this,e)},transform(e,t){const n=this;if(n.password){const t=se(n,e.subarray(0,12));if(n.password=null,t[11]!=n.passwordVerification)throw new s(C);e=e.subarray(12)}t.enqueue(se(n,e))},flush(){r.valid=!0}}),r=this}}class ne extends f{constructor(e,n){super({start(){t.assign(this,{password:e,passwordVerification:n}),ae(this,e)},transform(e,t){const n=this;let s,a;if(n.password){n.password=null;const t=u.getRandomValues(new r(12));t[11]=n.passwordVerification,s=new r(e.length+t.length),s.set(re(n,t),0),a=12}else s=new r(e.length),a=0;s.set(re(n,e),a),t.enqueue(s)},flush(){}})}}function se(e,t){const n=new r(t.length);for(let s=0;s<t.length;s++)n[s]=oe(e)^t[s],ie(e,n[s]);return n}function re(e,t){const n=new r(t.length);for(let s=0;s<t.length;s++)n[s]=oe(e)^t[s],ie(e,t[s]);return n}function ae(e,t){e.keys=[305419896,591751049,878082192],e.crcKey0=new m(e.keys[0]),e.crcKey2=new m(e.keys[2]);for(let n=0;n<t.length;n++)ie(e,t.charCodeAt(n))}function ie(e,t){e.crcKey0.append([t]),e.keys[0]=~e.crcKey0.get(),e.keys[1]=le(e.keys[1]+ce(e.keys[0])),e.keys[1]=le(n.imul(e.keys[1],134775813)+1),e.crcKey2.append([e.keys[1]>>>24]),e.keys[2]=~e.crcKey2.get()}function oe(e){const t=2|e.keys[2];return ce(n.imul(t,1^t)>>>8)}function ce(e){return 255&e}function le(e){return 4294967295&e}class he extends f{constructor(e,t){let n;super({start(){n=new e(t)},transform(e,t){e=n.append(e),t.enqueue(e)},flush(e){const t=n.flush();t&&e.enqueue(t)}})}}const ue="Invalid signature",pe="deflate-raw",fe="undefined",de=typeof w==fe,ge=typeof y==fe;let we=!0,ye=!0;class _e extends f{constructor(e,t,{chunkSize:n},...s){super({},...s);const{compressed:r,encrypted:a,useCompressionStream:i,password:o,passwordVerification:l,encryptionStrength:h,zipCrypto:u,signed:p}=t,f=this;let d,g,y=ke(super.readable);if(a&&!u||!p||([y,d]=y.tee(),d=d.pipeThrough(new b)),r)if(void 0!==i&&!i||de&&!ye)y=be(e,y,n);else try{y=y.pipeThrough(new w(pe))}catch(t){ye=!1,y=be(e,y,n)}a&&(u?y=y.pipeThrough(new ne(o,l)):(g=new X(o,h),y=y.pipeThrough(g))),ve(f,y,(async()=>{let e;a&&!u&&(e=g.signature),a&&!u||!p||(e=await d.getReader().read(),e=new c(e.value.buffer).getUint32(0)),f.signature=e}))}}class me extends f{constructor(e,t,{chunkSize:n},...r){super({},...r);const{zipCrypto:a,encrypted:i,password:o,passwordVerification:l,signed:h,encryptionStrength:u,compressed:p,useCompressionStream:f}=t;let d,g,w=ke(super.readable);if(i&&(a?w=w.pipeThrough(new te(o,l)):(g=new G(o,h,u),w=w.pipeThrough(g))),p)if(void 0!==f&&!f||ge&&!we)w=be(e,w,n);else try{w=w.pipeThrough(new y(pe))}catch(t){we=!1,w=be(e,w,n)}i&&!a||!h||([w,d]=w.tee(),d=d.pipeThrough(new b)),ve(this,w,(async()=>{if(i&&!a&&!g.valid)throw new s(ue);if((!i||a)&&h){const e=await d.getReader().read();if(e!=new c(e.value.buffer).getUint32(0,!1))throw new s(ue)}}))}}function be(e,t,n){return t.pipeThrough(new he(e,{chunkSize:n}))}function ke(e){return e.pipeThrough(new f({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function ve(e,n,s){e.length=0,n=n.pipeThrough(new f({transform(t,n){t&&t.length&&(e.length+=t.length,n.enqueue(t))},flush:s})),t.defineProperty(e,"readable",{get:()=>n})}const Se="deflate",Te="inflate",ze="data";class Ce{constructor(e,t,n,s,r){const{codecType:a}=s;async function i(a){const i=new a(e,s,r);await t.pipeThrough(i).pipeTo(n,{preventClose:!0});const{length:o,signature:c}=i;return{length:o,signature:c}}a.startsWith(Se)?this.run=()=>i(_e):a.startsWith(Te)&&(this.run=()=>i(me))}}const De=new Map;let Re,Ie=0;async function Ve(e){try{const{options:t,scripts:n,config:s}=e,{codecType:r}=t;let a;n&&n.length&&importScripts.apply(void 0,n),self.initCodec&&self.initCodec(),r.startsWith(Se)?a=self.Deflate:r.startsWith(Te)&&(a=self.Inflate);const i={highWaterMark:1,size:()=>s.chunkSize},o=new d({async pull(e){let t=new l(((e,t)=>De.set(Ie,{resolve:e,reject:t})));qe({type:"pull",messageId:Ie}),Ie=(Ie+1)%Number.MAX_SAFE_INTEGER;const{value:n,done:s}=await t;e.enqueue(n),s&&e.close()}},i),c=new g({write(e){qe({type:ze,data:e})}},i);Re=new Ce(a,o,c,t,s),qe({type:"close",result:await Re.run()})}catch(e){const{message:t,stack:n}=e;p({error:{message:t,stack:n}})}}function qe(e){if(e.data){let{data:t}=e;if(t&&t.length)try{t.length!=t.buffer.byteLength&&(t=new r(t)),e.data=t.buffer,p(e,[e.data])}catch(t){p(e)}else p(e)}else p(e)}function Ae(e,n,s){return class{constructor(a){const i=this;t.hasOwn(a,"level")&&void 0===a.level&&delete a.level,i.codec=new e(t.assign({},n,a)),s(i.codec,(e=>{if(i.pendingData){const{pendingData:t}=i;i.pendingData=new r(t.length+e.length),t.set(t,0),t.set(e,t.length)}else i.pendingData=new r(e)}))}append(e){return this.codec.push(e),a(this)}flush(){return this.codec.push(new r,!0),a(this)}};function a(e){if(e.pendingData){const t=e.pendingData;return e.pendingData=null,t}return new r}}addEventListener("message",(async e=>{const t=e.data,{type:n,messageId:s,data:a,done:i}=t;try{if("start"==n&&Ve(t),n==ze){const{resolve:e}=De.get(s);De.delete(s),e({value:new r(a),done:i})}}catch(e){p({error:{message:e.message,stack:e.stack}})}})),self.initCodec=()=>{const{Deflate:e,Inflate:t}=((e,t={},n)=>({Deflate:Ae(e.Deflate,t.deflate,n),Inflate:Ae(e.Inflate,t.inflate,n)}))(pako,{deflate:{raw:!0},inflate:{raw:!0}},((e,t)=>e.onData=t));self.Deflate=e,self.Inflate=t}}();
@@ -7398,14 +7398,13 @@
7398
7398
  if (codecAdapter.pendingData) {
7399
7399
  const { pendingData } = codecAdapter;
7400
7400
  codecAdapter.pendingData = new Uint8Array(pendingData.length + data.length);
7401
- codecAdapter.pendingData.set(pendingData, 0);
7402
- codecAdapter.pendingData.set(data, pendingData.length);
7401
+ pendingData.set(pendingData, 0);
7402
+ pendingData.set(data, pendingData.length);
7403
7403
  } else {
7404
7404
  codecAdapter.pendingData = new Uint8Array(data);
7405
7405
  }
7406
7406
  };
7407
- // eslint-disable-next-line no-prototype-builtins
7408
- if (options.hasOwnProperty("level") && options.level === undefined) {
7407
+ if (Object.hasOwn(options, "level") && options.level === undefined) {
7409
7408
  delete options.level;
7410
7409
  }
7411
7410
  codecAdapter.codec = new constructor(Object.assign({}, constructorOptions, options));
@@ -7491,12 +7490,13 @@
7491
7490
 
7492
7491
  get readable() {
7493
7492
  const reader = this;
7493
+ const { chunkSize = DEFAULT_CHUNK_SIZE } = reader;
7494
7494
  const readable = new ReadableStream({
7495
7495
  start() {
7496
7496
  this.chunkOffset = 0;
7497
7497
  },
7498
7498
  async pull(controller) {
7499
- const { offset = 0, chunkSize = DEFAULT_CHUNK_SIZE, size } = readable;
7499
+ const { offset = 0, size } = readable;
7500
7500
  const { chunkOffset } = this;
7501
7501
  controller.enqueue(await reader.readUint8Array(offset + chunkOffset, Math.min(chunkSize, size() - chunkOffset)));
7502
7502
  if (chunkOffset + chunkSize > size()) {
@@ -7856,7 +7856,7 @@
7856
7856
  if (response.status < 400) {
7857
7857
  return response;
7858
7858
  } else {
7859
- throw new Error(ERR_HTTP_STATUS + (response.statusText || response.status));
7859
+ throw response.status == 416 ? new Error(ERR_HTTP_RANGE) : new Error(ERR_HTTP_STATUS + (response.statusText || response.status));
7860
7860
  }
7861
7861
  }
7862
7862
 
@@ -7877,7 +7877,7 @@
7877
7877
  headers: new Map(headers)
7878
7878
  });
7879
7879
  } else {
7880
- reject(new Error(ERR_HTTP_STATUS + (request.statusText || request.status)));
7880
+ reject(request.status == 416 ? new Error(ERR_HTTP_RANGE) : new Error(ERR_HTTP_STATUS + (request.statusText || request.status)));
7881
7881
  }
7882
7882
  }, false);
7883
7883
  request.addEventListener("error", event => reject(event.detail.error), false);
@@ -8214,6 +8214,7 @@
8214
8214
  if (!reader.initialized) {
8215
8215
  await reader.init();
8216
8216
  }
8217
+ reader.chunkSize = getChunkSize(config);
8217
8218
  if (reader.size < END_OF_CENTRAL_DIR_LENGTH) {
8218
8219
  throw new Error(ERR_BAD_FORMAT);
8219
8220
  }
@@ -8332,7 +8333,7 @@
8332
8333
  if (extractPrependedData) {
8333
8334
  zipReader.prependedData = await readUint8Array(reader, 0, startOffset);
8334
8335
  }
8335
- zipReader.comment = await readUint8Array(reader, commentOffset + END_OF_CENTRAL_DIR_LENGTH, commentLength);
8336
+ zipReader.comment = commentLength ? await readUint8Array(reader, commentOffset + END_OF_CENTRAL_DIR_LENGTH, commentLength) : new Uint8Array();
8336
8337
  if (extractAppendedData) {
8337
8338
  zipReader.appendedData = appendedDataOffset < reader.size ? await readUint8Array(reader, appendedDataOffset, reader.size - appendedDataOffset) : new Uint8Array();
8338
8339
  }
@@ -8410,7 +8411,6 @@
8410
8411
  const readable = reader.readable;
8411
8412
  readable.offset = dataOffset;
8412
8413
  readable.size = size;
8413
- readable.chunkSize = getChunkSize(config);
8414
8414
  const { writable } = writer;
8415
8415
  const signal = getOptionValue$1(zipEntry, options, "signal");
8416
8416
  if (writer.init && !writer.initialized) {
@@ -8761,17 +8761,22 @@
8761
8761
 
8762
8762
  async add(name = "", reader, options = {}) {
8763
8763
  const zipWriter = this;
8764
- if (workers < zipWriter.config.maxWorkers) {
8764
+ const {
8765
+ pendingAddFileCalls,
8766
+ pendingEntries,
8767
+ config
8768
+ } = zipWriter;
8769
+ if (workers < config.maxWorkers) {
8765
8770
  workers++;
8766
8771
  let promiseAddFile;
8767
8772
  try {
8768
8773
  promiseAddFile = addFile(zipWriter, name, reader, options);
8769
- this.pendingAddFileCalls.add(promiseAddFile);
8774
+ pendingAddFileCalls.add(promiseAddFile);
8770
8775
  return await promiseAddFile;
8771
8776
  } finally {
8772
- this.pendingAddFileCalls.delete(promiseAddFile);
8777
+ pendingAddFileCalls.delete(promiseAddFile);
8773
8778
  workers--;
8774
- const pendingEntry = zipWriter.pendingEntries.shift();
8779
+ const pendingEntry = pendingEntries.shift();
8775
8780
  if (pendingEntry) {
8776
8781
  zipWriter.add(pendingEntry.name, pendingEntry.reader, pendingEntry.options)
8777
8782
  .then(pendingEntry.resolve)
@@ -8779,7 +8784,7 @@
8779
8784
  }
8780
8785
  }
8781
8786
  } else {
8782
- return new Promise((resolve, reject) => zipWriter.pendingEntries.push({ name, reader, options, resolve, reject }));
8787
+ return new Promise((resolve, reject) => pendingEntries.push({ name, reader, options, resolve, reject }));
8783
8788
  }
8784
8789
  }
8785
8790
 
@@ -8939,22 +8944,31 @@
8939
8944
  }
8940
8945
 
8941
8946
  async function getFileEntry(zipWriter, name, reader, options) {
8942
- const { files, writer } = zipWriter;
8947
+ const {
8948
+ files,
8949
+ writer
8950
+ } = zipWriter;
8951
+ const {
8952
+ keepOrder,
8953
+ dataDescriptor,
8954
+ zipCrypto,
8955
+ signal
8956
+ } = options;
8943
8957
  const previousFileEntry = Array.from(files.values()).pop();
8944
8958
  let fileEntry = {};
8945
8959
  let bufferedWrite;
8946
8960
  let releaseLockWriter;
8947
- let resolveLockCurrentFileEntry;
8948
- let writingBufferedData;
8961
+ let releaseLockCurrentFileEntry;
8962
+ let bufferedDataWritten;
8949
8963
  let fileWriter;
8950
8964
  files.set(name, fileEntry);
8951
8965
  try {
8952
8966
  let lockPreviousFileEntry;
8953
- if (options.keepOrder) {
8967
+ if (keepOrder) {
8954
8968
  lockPreviousFileEntry = previousFileEntry && previousFileEntry.lock;
8969
+ requestLockCurrentFileEntry();
8955
8970
  }
8956
- fileEntry.lock = new Promise(resolve => resolveLockCurrentFileEntry = resolve);
8957
- if (options.bufferedWrite || zipWriter.lockWriter || !options.dataDescriptor) {
8971
+ if (options.bufferedWrite || zipWriter.lockWriter || !dataDescriptor) {
8958
8972
  fileWriter = new BlobWriter();
8959
8973
  fileWriter.init();
8960
8974
  bufferedWrite = true;
@@ -8971,14 +8985,14 @@
8971
8985
  if (bufferedWrite) {
8972
8986
  let blob = fileWriter.getData();
8973
8987
  await lockPreviousFileEntry;
8974
- await lockWriter();
8975
- writingBufferedData = true;
8988
+ await requestLockWriter();
8989
+ bufferedDataWritten = true;
8976
8990
  const { writable } = writer;
8977
- if (!options.dataDescriptor) {
8991
+ if (!dataDescriptor) {
8978
8992
  const headerLength = 26;
8979
8993
  const arrayBuffer = await sliceAsArrayBuffer(blob, 0, headerLength);
8980
8994
  const arrayBufferView = new DataView(arrayBuffer);
8981
- if (!fileEntry.encrypted || options.zipCrypto) {
8995
+ if (!fileEntry.encrypted || zipCrypto) {
8982
8996
  setUint32(arrayBufferView, 14, fileEntry.signature);
8983
8997
  }
8984
8998
  if (fileEntry.zip64) {
@@ -8991,8 +9005,8 @@
8991
9005
  await writeUint8Array(writable, new Uint8Array(arrayBuffer));
8992
9006
  blob = blob.slice(headerLength);
8993
9007
  }
8994
- await blob.stream().pipeTo(writable, { preventClose: true });
8995
- writingBufferedData = false;
9008
+ await blob.stream().pipeTo(writable, { preventClose: true, signal });
9009
+ bufferedDataWritten = false;
8996
9010
  }
8997
9011
  fileEntry.offset = zipWriter.offset;
8998
9012
  if (fileEntry.zip64) {
@@ -9004,23 +9018,30 @@
9004
9018
  zipWriter.offset += fileEntry.length;
9005
9019
  return fileEntry;
9006
9020
  } catch (error) {
9007
- if ((bufferedWrite && writingBufferedData) || (!bufferedWrite && fileEntry.dataWritten)) {
9021
+ if ((bufferedWrite && bufferedDataWritten) || (!bufferedWrite && fileEntry.dataWritten)) {
9008
9022
  error.corruptedEntry = zipWriter.hasCorruptedEntries = true;
9009
9023
  zipWriter.offset += fileWriter.size;
9010
9024
  }
9011
9025
  files.delete(name);
9012
9026
  throw error;
9013
9027
  } finally {
9014
- resolveLockCurrentFileEntry();
9028
+ if (releaseLockCurrentFileEntry) {
9029
+ releaseLockCurrentFileEntry();
9030
+ }
9015
9031
  if (releaseLockWriter) {
9016
9032
  releaseLockWriter();
9017
9033
  }
9018
9034
  }
9019
9035
 
9020
- async function lockWriter() {
9021
- if (zipWriter.lockWriter) {
9022
- await zipWriter.lockWriter.then(() => delete zipWriter.lockWriter);
9023
- await lockWriter();
9036
+ function requestLockCurrentFileEntry() {
9037
+ fileEntry.lock = new Promise(resolve => releaseLockCurrentFileEntry = resolve);
9038
+ }
9039
+
9040
+ async function requestLockWriter() {
9041
+ const { lockWriter } = zipWriter;
9042
+ if (lockWriter) {
9043
+ await lockWriter.then(() => delete zipWriter.lockWriter);
9044
+ return requestLockWriter();
9024
9045
  } else {
9025
9046
  zipWriter.lockWriter = new Promise(resolve => releaseLockWriter = resolve);
9026
9047
  }
@@ -9162,7 +9183,7 @@
9162
9183
  const rawLastModDate = dateArray[0];
9163
9184
  setUint32(headerView, 6, rawLastModDate);
9164
9185
  setUint16(headerView, 22, rawFilename.length);
9165
- const extraFieldLength = rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length + rawExtraFieldNTFS.length + fileEntry.rawExtraField.length;
9186
+ const extraFieldLength = rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length + rawExtraFieldNTFS.length + rawExtraField.length;
9166
9187
  setUint16(headerView, 24, extraFieldLength);
9167
9188
  const localHeaderArray = new Uint8Array(30 + rawFilename.length + extraFieldLength);
9168
9189
  const localHeaderView = getDataView(localHeaderArray);
@@ -9172,16 +9193,16 @@
9172
9193
  arraySet(localHeaderArray, rawExtraFieldAES, 30 + rawFilename.length);
9173
9194
  arraySet(localHeaderArray, rawExtraFieldExtendedTimestamp, 30 + rawFilename.length + rawExtraFieldAES.length);
9174
9195
  arraySet(localHeaderArray, rawExtraFieldNTFS, 30 + rawFilename.length + rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length);
9175
- arraySet(localHeaderArray, fileEntry.rawExtraField, 30 + rawFilename.length + rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length + rawExtraFieldNTFS.length);
9196
+ arraySet(localHeaderArray, rawExtraField, 30 + rawFilename.length + rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length + rawExtraFieldNTFS.length);
9176
9197
  let result;
9177
9198
  let compressedSize = 0;
9178
9199
  if (reader) {
9200
+ reader.chunkSize = getChunkSize(config);
9179
9201
  await writeUint8Array(writable, localHeaderArray);
9180
9202
  fileEntry.dataWritten = pendingFileEntry.dataWritten = true;
9181
9203
  const size = () => reader.size;
9182
9204
  const readable = reader.readable;
9183
9205
  readable.size = size;
9184
- readable.chunkSize = getChunkSize(config);
9185
9206
  const workerOptions = {
9186
9207
  options: {
9187
9208
  codecType: CODEC_DEFLATE,
@@ -9251,7 +9272,15 @@
9251
9272
  await writeUint8Array(writable, dataDescriptorArray);
9252
9273
  }
9253
9274
  const length = localHeaderArray.length + compressedSize + dataDescriptorArray.length;
9254
- Object.assign(fileEntry, { compressedSize, lastModDate, rawLastModDate, creationDate, lastAccessDate, encrypted, length });
9275
+ Object.assign(fileEntry, {
9276
+ compressedSize,
9277
+ lastModDate,
9278
+ rawLastModDate,
9279
+ creationDate,
9280
+ lastAccessDate,
9281
+ encrypted,
9282
+ length
9283
+ });
9255
9284
  return fileEntry;
9256
9285
  }
9257
9286