@zip.js/zip.js 2.8.6 → 2.8.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/deno.json +1 -1
- package/dist/zip-core.js +2 -7
- package/dist/zip-core.min.js +1 -1
- package/dist/zip-fs-core.js +2 -7
- package/dist/zip-fs-core.min.js +1 -1
- package/dist/zip-fs-native.js +2 -7
- package/dist/zip-fs-native.min.js +1 -1
- package/dist/zip-fs.js +2 -7
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-legacy.js +2 -7
- package/dist/zip-legacy.min.js +1 -1
- package/dist/zip-native.js +2 -7
- package/dist/zip-native.min.js +1 -1
- package/dist/zip.js +2 -7
- package/dist/zip.min.js +1 -1
- package/index-native.cjs +2 -7
- package/index-native.min.js +1 -1
- package/index.cjs +2 -7
- package/index.min.js +1 -1
- package/lib/core/codec-worker.js +2 -7
- package/package.json +1 -1
package/dist/zip-fs-core.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,function(e){"use strict";const{Array:t,Object:r,String:s,Number:n,BigInt:a,Math:i,Date:o,Map:c,Set:l,Response:d,URL:u,Error:p,Uint8Array:f,Uint16Array:h,Uint32Array:w,DataView:m,Blob:g,Promise:y,TextEncoder:b,TextDecoder:z,document:S,crypto:x,btoa:F,TransformStream:D,ReadableStream:k,WritableStream:E,CompressionStream:v,DecompressionStream:A,navigator:R,Worker:C}="undefined"!=typeof globalThis?globalThis:this||self,T=4294967295,U=65535,W=67324752,_=134695760,M=_,N=33639248,B=101010256,L=101075792,O=117853008,I=22,H=21589,P=2048,Z="/",V=30,q=new o(2107,11,31),K=new o(1980,0,1),j=void 0,G="undefined",X="function";let Y=2;try{typeof R!=G&&R.hardwareConcurrency&&(Y=R.hardwareConcurrency)}catch{}const J={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:Y,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,CompressionStream:typeof v!=G&&v,DecompressionStream:typeof A!=G&&A},Q=r.assign({},J);function $(){return Q}function ee(e){return i.max(e.chunkSize,64)}const te="HTTP error ",re="HTTP Range not supported",se="Range",ne="GET",ae="bytes",ie=65536,oe="writable";class ce{constructor(){this.size=0}init(){this.initialized=!0}}class le extends ce{get readable(){const e=this,{chunkSize:t=ie}=e,r=new k({start(){this.chunkOffset=0},async pull(s){const{offset:n=0,size:a,diskNumberStart:o}=r,{chunkOffset:c}=this,l=a===j?t:i.min(t,a-c),d=await Le(e,n+c,l,o);s.enqueue(d),c+t>a||a===j&&!d.length&&l?s.close():this.chunkOffset+=t}});return r}}class de extends ce{constructor(){super();const e=this,t=new E({write(t){if(!e.initialized)throw new p("Writer not initialized");return e.writeUint8Array(t)}});r.defineProperty(e,oe,{get:()=>t})}writeUint8Array(){}}class ue extends le{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const s=e.indexOf(",")+1;r.assign(this,{dataURI:e,dataStart:s,size:i.floor(.75*(t-s))})}readUint8Array(e,t){const{dataStart:r,dataURI:s}=this,n=new f(t),a=4*i.floor(e/3),o=atob(s.substring(a+r,4*i.ceil((e+t)/3)+r)),c=e-3*i.floor(a/4);let l=0;for(let e=c;c+t>e&&e<o.length;e++)n[e-c]=o.charCodeAt(e),l++;return l<n.length?n.subarray(0,l):n}}class pe extends de{constructor(e){super(),r.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let r=0,n=t.pending;const a=t.pending.length;for(t.pending="",r=0;r<3*i.floor((a+e.length)/3)-a;r++)n+=s.fromCharCode(e[r]);for(;r<e.length;r++)t.pending+=s.fromCharCode(e[r]);n.length&&(n.length>2?t.data+=F(n):t.pending+=n)}getData(){return this.data+F(this.pending)}}class fe extends le{constructor(e){super(),r.assign(this,{blob:e,size:e.size})}async readUint8Array(e,t){const r=this,s=e+t,n=e||s<r.size?r.blob.slice(e,s):r.blob;let a=await n.arrayBuffer();return a.byteLength>t&&(a=a.slice(e,s)),new f(a)}}class he extends ce{constructor(e){super();const t=new D,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(this,oe,{get:()=>t.writable}),this.blob=new d(t.readable,{headers:s}).blob()}getData(){return this.blob}}class we extends fe{constructor(e){super(new g([e],{type:"text/plain"}))}}class me extends he{constructor(e){super(e),r.assign(this,{encoding:e,utf8:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,utf8:t}=this,s=await super.getData();if(s.text&&t)return s.text();{const t=new FileReader;return new y((n,a)=>{r.assign(t,{onload:({target:e})=>n(e.result),onerror:()=>a(t.error)}),t.readAsText(s,e)})}}}class ge extends le{constructor(e,t){super(),be(this,e,t)}async init(){await ze(this,Ae,De),super.init()}readUint8Array(e,t){return Se(this,e,t,Ae,De)}}class ye extends le{constructor(e,t){super(),be(this,e,t)}async init(){await ze(this,Re,ke),super.init()}readUint8Array(e,t){return Se(this,e,t,Re,ke)}}function be(e,t,s){const{preventHeadRequest:n,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o}=s;delete(s=r.assign({},s)).preventHeadRequest,delete s.useRangeHeader,delete s.forceRangeRequests,delete s.combineSizeEocd,delete s.useXHR,r.assign(e,{url:t,options:s,preventHeadRequest:n,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o})}async function ze(e,t,r){const{url:s,preventHeadRequest:a,useRangeHeader:i,forceRangeRequests:o,combineSizeEocd:c}=e;if((e=>{const{baseURI:t}=$(),{protocol:r}=new u(e,t);return"http:"==r||"https:"==r})(s)&&(i||o)&&(void 0===a||a)){const s=await t(ne,e,xe(e,c?-22:void 0)),a=s.headers.get("Accept-Ranges");if(!(o||a&&a.toLowerCase()==ae))throw new p(re);{let a;c&&(e.eocdCache=new f(await s.arrayBuffer()));const i=s.headers.get("Content-Range");if(i){const e=i.trim().split(/\s*\/\s*/);if(e.length){const t=e[1];t&&"*"!=t&&(a=n(t))}}a===j?await ve(e,t,r):e.size=a}}else await ve(e,t,r)}async function Se(e,t,r,s,n){const{useRangeHeader:a,forceRangeRequests:i,eocdCache:o,size:c,options:l}=e;if(a||i){if(o&&t==c-I&&r==I)return o;if(c>t){t+r>c&&(r=c-t);const n=await s(ne,e,xe(e,t,r));if(206!=n.status)throw new p(re);return new f(await n.arrayBuffer())}return new f}{const{data:s}=e;return s||await n(e,l),new f(e.data.subarray(t,t+r))}}function xe(e,t=0,s=1){return r.assign({},Fe(e),{[se]:ae+"="+(0>t?t:t+"-"+(t+s-1))})}function Fe({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function De(e){await Ee(e,Ae)}async function ke(e){await Ee(e,Re)}async function Ee(e,t){const r=await t(ne,e,Fe(e));e.data=new f(await r.arrayBuffer()),e.size||(e.size=e.data.length)}async function ve(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const s=(await t("HEAD",e,Fe(e))).headers.get("Content-Length");s?e.size=n(s):await r(e,e.options)}}async function Ae(e,{options:t,url:s},n){const a=await fetch(s,r.assign({},t,{method:e,headers:n}));if(400>a.status)return a;throw 416==a.status?new p(re):new p(te+(a.statusText||a.status))}function Re(e,{url:t},s){return new y((n,a)=>{const i=new XMLHttpRequest;if(i.addEventListener("load",()=>{if(400>i.status){const e=[];i.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(t=>{const r=t.trim().split(/\s*:\s*/);r[0]=r[0].trim().replace(/^[a-z]|-[a-z]/g,e=>e.toUpperCase()),e.push(r)}),n({status:i.status,arrayBuffer:()=>i.response,headers:new c(e)})}else a(416==i.status?new p(re):new p(te+(i.statusText||i.status)))},!1),i.addEventListener("error",e=>a(e.detail?e.detail.error:new p("Network error")),!1),i.open(e,t),s)for(const e of r.entries(s))i.setRequestHeader(e[0],e[1]);i.responseType="arraybuffer",i.send()})}class Ce extends le{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR?new ye(e,t):new ge(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class Te extends le{constructor(e){super(),e=new f(e.buffer,e.byteOffset,e.byteLength),r.assign(this,{array:e,size:e.length})}readUint8Array(e,t){return this.array.slice(e,e+t)}}class Ue extends de{init(e=0){r.assign(this,{offset:0,array:new f(e)}),super.init()}writeUint8Array(e){const t=this;if(t.offset+e.length>t.array.length){const r=t.array;t.array=new f(r.length+e.length),t.array.set(r)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.array}}class We extends le{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:t}=e;e.lastDiskNumber=0,e.lastDiskOffset=0,await y.all(t.map(async(r,s)=>{await r.init(),s!=t.length-1&&(e.lastDiskOffset+=r.size),e.size+=r.size})),super.init()}async readUint8Array(e,t,r=0){const s=this,{readers:n}=this;let a,o=r;-1==o&&(o=n.length-1);let c=e;for(;n[o]&&c>=n[o].size;)c-=n[o].size,o++;const l=n[o];if(l){const n=l.size;if(c+t>n){const i=n-c;a=new f(t);const o=await Le(l,c,i);a.set(o,0);const d=await s.readUint8Array(e+i,t-i,r);a.set(d,i),o.length+d.length<t&&(a=a.subarray(0,o.length+d.length))}else a=await Le(l,c,t)}else a=new f;return s.lastDiskNumber=i.max(o,s.lastDiskNumber),a}}class _e extends ce{constructor(e,t=4294967295){super();const s=this;let n,a,i;r.assign(s,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new E({async write(t){const{availableSize:r}=s;if(i)t.length<r?await c(t):(await c(t.subarray(0,r)),await l(),s.diskOffset+=n.size,s.diskNumber++,i=null,await this.write(t.subarray(r)));else{const{value:r,done:o}=await e.next();if(o&&!r)throw new p("Writer iterator completed too soon");n=r,n.size=0,n.maxSize&&(s.maxSize=n.maxSize),s.availableSize=s.maxSize,await Be(n),a=r.writable,i=a.getWriter(),await this.write(t)}},async close(){await i.ready,await l()}});async function c(e){const t=e.length;t&&(await i.ready,await i.write(e),n.size+=t,s.size+=t,s.availableSize-=t)}async function l(){await i.close()}r.defineProperty(s,oe,{get:()=>o})}}class Me{constructor(e){return t.isArray(e)&&(e=new We(e)),e instanceof k&&(e={readable:e}),e}}class Ne{constructor(e){return e.writable===j&&typeof e.next==X&&(e=new _e(e)),e instanceof E&&(e={writable:e}),e.size===j&&(e.size=0),e instanceof _e||r.assign(e,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),e}}async function Be(e,t){if(!e.init||e.initialized)return y.resolve();await e.init(t)}function Le(e,t,r,s){return e.readUint8Array(t,r,s)}const Oe=[];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;Oe[e]=t}class Ie{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let r=0,s=0|e.length;s>r;r++)t=t>>>8^Oe[255&(t^e[r])];this.crc=t}get(){return~this.crc}}class He extends D{constructor(){let e;const t=new Ie;super({transform(e,r){t.append(e),r.enqueue(e)},flush(){const r=new f(4);new m(r.buffer).setUint32(0,t.get()),e.value=r}}),e=this}}function Pe(e){if(typeof b==G){const t=new f((e=unescape(encodeURIComponent(e))).length);for(let r=0;r<t.length;r++)t[r]=e.charCodeAt(r);return t}return(new b).encode(e)}const Ze={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],s=Ze.getPartial(r);return 32===s?e.concat(t):Ze._shiftRight(t,s,0|r,e.slice(0,e.length-1))},bitLength(e){const t=e.length;if(0===t)return 0;const r=e[t-1];return 32*(t-1)+Ze.getPartial(r)},clamp(e,t){if(32*e.length<t)return e;const r=(e=e.slice(0,i.ceil(t/32))).length;return t&=31,r>0&&t&&(e[r-1]=Ze.partial(t,e[r-1]&2147483648>>t-1,1)),e},partial:(e,t,r)=>32===e?t:(r?0|t:t<<32-e)+1099511627776*e,getPartial:e=>i.round(e/1099511627776)||32,_shiftRight(e,t,r,s){for(void 0===s&&(s=[]);t>=32;t-=32)s.push(r),r=0;if(0===t)return s.concat(e);for(let n=0;n<e.length;n++)s.push(r|e[n]>>>t),r=e[n]<<32-t;const n=e.length?e[e.length-1]:0,a=Ze.getPartial(n);return s.push(Ze.partial(t+a&31,t+a>32?r:s.pop(),1)),s}},Ve={bytes:{fromBits(e){const t=Ze.bitLength(e)/8,r=new f(t);let s;for(let n=0;t>n;n++)3&n||(s=e[n/4]),r[n]=s>>>24,s<<=8;return r},toBits(e){const t=[];let r,s=0;for(r=0;r<e.length;r++)s=s<<8|e[r],3&~r||(t.push(s),s=0);return 3&r&&t.push(Ze.partial(8*(3&r),s)),t}}},qe=class{constructor(e){const t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],e?(t._h=e._h.slice(0),t._buffer=e._buffer.slice(0),t._length=e._length):t.reset()}reset(){const e=this;return e._h=e._init.slice(0),e._buffer=[],e._length=0,e}update(e){const t=this;"string"==typeof e&&(e=Ve.utf8String.toBits(e));const r=t._buffer=Ze.concat(t._buffer,e),s=t._length,n=t._length=s+Ze.bitLength(e);if(n>9007199254740991)throw new p("Cannot hash more than 2^53 - 1 bits");const a=new w(r);let i=0;for(let e=t.blockSize+s-(t.blockSize+s&t.blockSize-1);n>=e;e+=t.blockSize)t._block(a.subarray(16*i,16*(i+1))),i+=1;return r.splice(0,16*i),t}finalize(){const e=this;let t=e._buffer;const r=e._h;t=Ze.concat(t,[Ze.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(i.floor(e._length/4294967296)),t.push(0|e._length);t.length;)e._block(t.splice(0,16));return e.reset(),r}_f(e,t,r,s){return e>19?e>39?e>59?e>79?void 0:t^r^s:t&r|t&s|r&s:t^r^s:t&r|~t&s}_S(e,t){return t<<e|t>>>32-e}_block(e){const r=this,s=r._h,n=t(80);for(let t=0;16>t;t++)n[t]=e[t];let a=s[0],o=s[1],c=s[2],l=s[3],d=s[4];for(let e=0;79>=e;e++){16>e||(n[e]=r._S(1,n[e-3]^n[e-8]^n[e-14]^n[e-16]));const t=r._S(5,a)+r._f(e,o,c,l)+d+n[e]+r._key[i.floor(e/20)]|0;d=l,l=c,c=r._S(30,o),o=a,a=t}s[0]=s[0]+a|0,s[1]=s[1]+o|0,s[2]=s[2]+c|0,s[3]=s[3]+l|0,s[4]=s[4]+d|0}},Ke={getRandomValues(e){const t=new w(e.buffer),r=e=>{let t=987654321;const r=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&r,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&r)&r)/4294967296+.5)*(i.random()>.5?1:-1))};for(let s,n=0;n<e.length;n+=4){const e=r(4294967296*(s||i.random()));s=987654071*e(),t[n/4]=4294967296*e()|0}return e}},je={importKey:e=>new je.hmacSha1(Ve.bytes.toBits(e)),pbkdf2(e,t,r,s){if(r=r||1e4,0>s||0>r)throw new p("invalid params to pbkdf2");const n=1+(s>>5)<<2;let a,i,o,c,l;const d=new ArrayBuffer(n),u=new m(d);let f=0;const h=Ze;for(t=Ve.bytes.toBits(t),l=1;(n||1)>f;l++){for(a=i=e.encrypt(h.concat(t,[l])),o=1;r>o;o++)for(i=e.encrypt(i),c=0;c<i.length;c++)a[c]^=i[c];for(o=0;(n||1)>f&&o<a.length;o++)u.setInt32(f,a[o]),f+=4}return d.slice(0,s/8)},hmacSha1:class{constructor(e){const t=this,r=t._hash=qe,s=[[],[]];t._baseHash=[new r,new r];const n=t._baseHash[0].blockSize/32;e.length>n&&(e=(new r).update(e).finalize());for(let t=0;n>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 r(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(),r=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),r}encrypt(e){if(this._updated)throw new p("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},Ge=typeof x!=G&&typeof x.getRandomValues==X,Xe="Invalid password",Ye="Invalid signature",Je="zipjs-abort-check-password";function Qe(e){return Ge?x.getRandomValues(e):Ke.getRandomValues(e)}const $e=16,et={name:"PBKDF2"},tt=r.assign({hash:{name:"HMAC"}},et),rt=r.assign({iterations:1e3,hash:{name:"SHA-1"}},et),st=["deriveBits"],nt=[8,12,16],at=[16,24,32],it=10,ot=[0,0,0,0],ct=typeof x!=G,lt=ct&&x.subtle,dt=ct&&typeof lt!=G,ut=Ve.bytes,pt=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const r=t._tables[0][4],s=t._tables[1],n=e.length;let a,i,o,c=1;if(4!==n&&6!==n&&8!==n)throw new p("invalid aes key size");for(t._key=[i=e.slice(0),o=[]],a=n;4*n+28>a;a++){let e=i[a-1];(a%n===0||8===n&&a%n===4)&&(e=r[e>>>24]<<24^r[e>>16&255]<<16^r[e>>8&255]<<8^r[255&e],a%n===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),i[a]=i[a-n]^e}for(let e=0;a;e++,a--){const t=i[3&e?a:a-4];o[e]=4>=a||4>e?t:s[0][r[t>>>24]]^s[1][r[t>>16&255]]^s[2][r[t>>8&255]]^s[3][r[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],r=e[4],s=t[4],n=[],a=[];let i,o,c,l;for(let e=0;256>e;e++)a[(n[e]=e<<1^283*(e>>7))^e]=e;for(let d=i=0;!r[d];d^=o||1,i=a[i]||1){let a=i^i<<1^i<<2^i<<3^i<<4;a=a>>8^255&a^99,r[d]=a,s[a]=d,l=n[c=n[o=n[d]]];let u=16843009*l^65537*c^257*o^16843008*d,p=257*n[a]^16843008*a;for(let r=0;4>r;r++)e[r][d]=p=p<<24^p>>>8,t[r][a]=u=u<<24^u>>>8}for(let r=0;5>r;r++)e[r]=e[r].slice(0),t[r]=t[r].slice(0)}_crypt(e,t){if(4!==e.length)throw new p("invalid aes block size");const r=this._key[t],s=r.length/4-2,n=[0,0,0,0],a=this._tables[t],i=a[0],o=a[1],c=a[2],l=a[3],d=a[4];let u,f,h,w=e[0]^r[0],m=e[t?3:1]^r[1],g=e[2]^r[2],y=e[t?1:3]^r[3],b=4;for(let e=0;s>e;e++)u=i[w>>>24]^o[m>>16&255]^c[g>>8&255]^l[255&y]^r[b],f=i[m>>>24]^o[g>>16&255]^c[y>>8&255]^l[255&w]^r[b+1],h=i[g>>>24]^o[y>>16&255]^c[w>>8&255]^l[255&m]^r[b+2],y=i[y>>>24]^o[w>>16&255]^c[m>>8&255]^l[255&g]^r[b+3],b+=4,w=u,m=f,g=h;for(let e=0;4>e;e++)n[t?3&-e:e]=d[w>>>24]<<24^d[m>>16&255]<<16^d[g>>8&255]<<8^d[255&y]^r[b++],u=w,w=m,m=g,g=y,y=u;return n}},ft=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))e+=1<<24;else{let t=e>>16&255,r=e>>8&255,s=255&e;255===t?(t=0,255===r?(r=0,255===s?s=0:++s):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=s}return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,r){let s;if(!(s=t.length))return[];const n=Ze.bitLength(t);for(let n=0;s>n;n+=4){this.incCounter(r);const s=e.encrypt(r);t[n]^=s[0],t[n+1]^=s[1],t[n+2]^=s[2],t[n+3]^=s[3]}return Ze.clamp(t,n)}},ht=je.hmacSha1;let wt=ct&&dt&&typeof lt.importKey==X,mt=ct&&dt&&typeof lt.deriveBits==X;class gt extends D{constructor({password:e,rawPassword:t,signed:s,encryptionStrength:n,checkPasswordOnly:a}){super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:St(e,t),signed:s,strength:n-1,pending:new f})},async transform(e,t){const r=this,{password:s,strength:n,resolveReady:i,ready:o}=r;s?(await(async(e,t,r,s)=>{const n=await zt(e,t,r,Ft(s,0,nt[t])),a=Ft(s,nt[t]);if(n[0]!=a[0]||n[1]!=a[1])throw new p(Xe)})(r,n,s,Ft(e,0,nt[n]+2)),e=Ft(e,nt[n]+2),a?t.error(new p(Je)):i()):await o;const c=new f(e.length-it-(e.length-it)%$e);t.enqueue(bt(r,e,c,0,it,!0))},async flush(e){const{signed:t,ctr:r,hmac:s,pending:n,ready:a}=this;if(s&&r){await a;const i=Ft(n,0,n.length-it),o=Ft(n,n.length-it);let c=new f;if(i.length){const e=kt(ut,i);s.update(e);const t=r.update(e);c=Dt(ut,t)}if(t){const e=Ft(Dt(ut,s.digest()),0,it);for(let t=0;it>t;t++)if(e[t]!=o[t])throw new p(Ye)}e.enqueue(c)}}})}}class yt extends D{constructor({password:e,rawPassword:t,encryptionStrength:s}){let n;super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:St(e,t),strength:s-1,pending:new f})},async transform(e,t){const r=this,{password:s,strength:n,resolveReady:a,ready:i}=r;let o=new f;s?(o=await(async(e,t,r)=>{const s=Qe(new f(nt[t]));return xt(s,await zt(e,t,r,s))})(r,n,s),a()):await i;const c=new f(o.length+e.length-e.length%$e);c.set(o,0),t.enqueue(bt(r,e,c,o.length,0))},async flush(e){const{ctr:t,hmac:r,pending:s,ready:a}=this;if(r&&t){await a;let i=new f;if(s.length){const e=t.update(kt(ut,s));r.update(e),i=Dt(ut,e)}n.signature=Dt(ut,r.digest()).slice(0,it),e.enqueue(xt(i,n.signature))}}}),n=this}}function bt(e,t,r,s,n,a){const{ctr:i,hmac:o,pending:c}=e,l=t.length-n;let d;for(c.length&&(t=xt(c,t),r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new f(t)).set(r,0)}return e})(r,l-l%$e)),d=0;l-$e>=d;d+=$e){const e=kt(ut,Ft(t,d,d+$e));a&&o.update(e);const n=i.update(e);a||o.update(n),r.set(Dt(ut,n),d+s)}return e.pending=Ft(t,d),r}async function zt(e,s,n,a){e.password=null;const i=await(async(e,t,r,s,n)=>{if(!wt)return je.importKey(t);try{return await lt.importKey("raw",t,r,!1,n)}catch{return wt=!1,je.importKey(t)}})(0,n,tt,0,st),o=await(async(e,t,r)=>{if(!mt)return je.pbkdf2(t,e.salt,rt.iterations,r);try{return await lt.deriveBits(e,t,r)}catch{return mt=!1,je.pbkdf2(t,e.salt,rt.iterations,r)}})(r.assign({salt:a},rt),i,8*(2*at[s]+2)),c=new f(o),l=kt(ut,Ft(c,0,at[s])),d=kt(ut,Ft(c,at[s],2*at[s])),u=Ft(c,2*at[s]);return r.assign(e,{keys:{key:l,authentication:d,passwordVerification:u},ctr:new ft(new pt(l),t.from(ot)),hmac:new ht(d)}),u}function St(e,t){return t===j?Pe(e):t}function xt(e,t){let r=e;return e.length+t.length&&(r=new f(e.length+t.length),r.set(e,0),r.set(t,e.length)),r}function Ft(e,t,r){return e.subarray(t,r)}function Dt(e,t){return e.fromBits(t)}function kt(e,t){return e.toBits(t)}class Et extends D{constructor({password:e,passwordVerification:t,checkPasswordOnly:s}){super({start(){r.assign(this,{password:e,passwordVerification:t}),Ct(this,e)},transform(e,t){const r=this;if(r.password){const t=At(r,e.subarray(0,12));if(r.password=null,t.at(-1)!=r.passwordVerification)throw new p(Xe);e=e.subarray(12)}s?t.error(new p(Je)):t.enqueue(At(r,e))}})}}class vt extends D{constructor({password:e,passwordVerification:t}){super({start(){r.assign(this,{password:e,passwordVerification:t}),Ct(this,e)},transform(e,t){const r=this;let s,n;if(r.password){r.password=null;const t=Qe(new f(12));t[11]=r.passwordVerification,s=new f(e.length+t.length),s.set(Rt(r,t),0),n=12}else s=new f(e.length),n=0;s.set(Rt(r,e),n),t.enqueue(s)}})}}function At(e,t){const r=new f(t.length);for(let s=0;s<t.length;s++)r[s]=Ut(e)^t[s],Tt(e,r[s]);return r}function Rt(e,t){const r=new f(t.length);for(let s=0;s<t.length;s++)r[s]=Ut(e)^t[s],Tt(e,t[s]);return r}function Ct(e,t){const s=[305419896,591751049,878082192];r.assign(e,{keys:s,crcKey0:new Ie(s[0]),crcKey2:new Ie(s[2])});for(let r=0;r<t.length;r++)Tt(e,t.charCodeAt(r))}function Tt(e,t){let[r,s,n]=e.keys;e.crcKey0.append([t]),r=~e.crcKey0.get(),s=_t(i.imul(_t(s+Wt(r)),134775813)+1),e.crcKey2.append([s>>>24]),n=~e.crcKey2.get(),e.keys=[r,s,n]}function Ut(e){const t=2|e.keys[2];return Wt(i.imul(t,1^t)>>>8)}function Wt(e){return 255&e}function _t(e){return 4294967295&e}const Mt="Invalid uncompressed size";class Nt extends D{constructor(e,{chunkSize:t,CompressionStreamZlib:r,CompressionStream:s}){super({});const{compressed:n,encrypted:a,useCompressionStream:i,zipCrypto:o,signed:c,level:l}=e,d=this;let u,p,f=super.readable;a&&!o||!c||(u=new He,f=It(f,u)),n&&(f=Ot(f,i,{level:l,chunkSize:t},s,r,s)),a&&(o?f=It(f,new vt(e)):(p=new yt(e),f=It(f,p))),Lt(d,f,()=>{let e;a&&!o&&(e=p.signature),a&&!o||!c||(e=new m(u.value.buffer).getUint32(0)),d.signature=e})}}class Bt extends D{constructor(e,{chunkSize:t,DecompressionStreamZlib:r,DecompressionStream:s}){super({});const{zipCrypto:n,encrypted:a,signed:i,signature:o,compressed:c,useCompressionStream:l,deflate64:d}=e;let u,f,h=super.readable;a&&(n?h=It(h,new Et(e)):(f=new gt(e),h=It(h,f))),c&&(h=Ot(h,l,{chunkSize:t,deflate64:d},s,r,s)),a&&!n||!i||(u=new He,h=It(h,u)),Lt(this,h,()=>{if((!a||n)&&i){const e=new m(u.value.buffer);if(o!=e.getUint32(0,!1))throw new p(Ye)}})}}function Lt(e,t,s){t=It(t,new D({flush:s})),r.defineProperty(e,"readable",{get:()=>t})}function Ot(e,t,r,s,n,a){const i=t&&s?s:n||a,o=r.deflate64?"deflate64-raw":"deflate-raw";try{e=It(e,new i(o,r))}catch(s){if(!t)throw s;if(n)e=It(e,new n(o,r));else{if(!a)throw s;e=It(e,new a(o,r))}}return e}function It(e,t){return e.pipeThrough(t)}const Ht="data",Pt="close",Zt="deflate",Vt="inflate";class qt extends D{constructor(e,t){super({});const s=this,{codecType:n}=e;let a;n.startsWith(Zt)?a=Nt:n.startsWith(Vt)&&(a=Bt),s.outputSize=0;let i=0;const o=new a(e,t),c=super.readable,l=new D({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){r.assign(s,{inputSize:i})}}),d=new D({transform(t,r){if(t&&t.length&&(r.enqueue(t),s.outputSize+=t.length,e.outputSize!==j&&s.outputSize>e.outputSize))throw new p(Mt)},flush(){const{signature:e}=o;r.assign(s,{signature:e,inputSize:i})}});r.defineProperty(s,"readable",{get:()=>c.pipeThrough(l).pipeThrough(o).pipeThrough(d)})}}class Kt extends D{constructor(e){let t;super({transform:function r(s,n){if(t){const e=new f(t.length+s.length);e.set(t),e.set(s,t.length),s=e,t=null}s.length>e?(n.enqueue(s.slice(0,e)),r(s.slice(e),n)):t=s},flush(e){t&&t.length&&e.enqueue(t)}})}}let jt=typeof C!=G;class Gt{constructor(e,{readable:t,writable:s},{options:n,config:a,streamOptions:i,useWebWorkers:o,transferStreams:c,workerURI:l},d){const{signal:u}=i;return r.assign(e,{busy:!0,readable:t.pipeThrough(new Kt(a.chunkSize)).pipeThrough(new Xt(i),{signal:u}),writable:s,options:r.assign({},n),workerURI:l,transferStreams:c,terminate:()=>new y(t=>{const{worker:r,busy:s}=e;r?(s?e.resolveTerminated=t:(r.terminate(),t()),e.interface=null):t()}),onTaskFinished(){const{resolveTerminated:t}=e;t&&(e.resolveTerminated=null,e.terminated=!0,e.worker.terminate(),t()),e.busy=!1,d(e)}}),(o&&jt?Qt:Jt)(e,a)}}class Xt extends D{constructor({onstart:e,onprogress:t,size:r,onend:s}){let n=0;super({async start(){e&&await Yt(e,r)},async transform(e,s){n+=e.length,t&&await Yt(t,n,r),s.enqueue(e)},async flush(){s&&await Yt(s,n)}})}}async function Yt(e,...t){try{await e(...t)}catch{}}function Jt(e,t){return{run:()=>(async({options:e,readable:t,writable:r,onTaskFinished:s},n)=>{let a;try{if(!e.useCompressionStream)try{await void 0}catch{e.useCompressionStream=!0}a=new qt(e,n),await t.pipeThrough(a).pipeTo(r,{preventClose:!0,preventAbort:!0});const{signature:s,inputSize:i,outputSize:o}=a;return{signature:s,inputSize:i,outputSize:o}}catch(e){throw a&&(e.outputSize=a.outputSize),e}finally{s()}})(e,t)}}function Qt(e,t){const{baseURI:s,chunkSize:n}=t;let{wasmURI:a}=t;if(!e.interface){let i;typeof a==X&&(a=a());try{i=((e,t,s)=>{const n={type:"module"};let a,i;if(typeof e==X&&(e=e()),e.startsWith("data:")||e.startsWith("blob:"))try{i=new C(e)}catch{i=new C(e,n)}else{try{a=new u(e,t)}catch{a=e}i=new C(a,n)}return i.addEventListener("message",e=>(async({data:e},t)=>{const{type:s,value:n,messageId:a,result:i,error:o}=e,{reader:c,writer:l,resolveResult:d,rejectResult:u,onTaskFinished:h}=t;try{if(o){const{message:e,stack:t,code:s,name:n,outputSize:a}=o,i=new p(e);r.assign(i,{stack:t,code:s,name:n,outputSize:a}),w(i)}else{if("pull"==s){const{value:e,done:r}=await c.read();er({type:Ht,value:e,done:r,messageId:a},t)}s==Ht&&(await l.ready,await l.write(new f(n)),er({type:"ack",messageId:a},t)),s==Pt&&w(null,i)}}catch(o){er({type:Pt,messageId:a},t),w(o)}function w(e,t){e?u(e):d(t),l&&l.releaseLock(),h()}})(e,s)),i})(e.workerURI,s,e)}catch{return jt=!1,Jt(e,t)}r.assign(e,{worker:i,interface:{run:()=>(async(e,t)=>{let s,n;const a=new y((e,t)=>{s=e,n=t});r.assign(e,{reader:null,writer:null,resolveResult:s,rejectResult:n,result:a});const{readable:i,options:o}=e,{writable:c,closed:l}=(e=>{let t;const r=new y(e=>t=e);return{writable:new E({async write(t){const r=e.getWriter();await r.ready,await r.write(t),r.releaseLock()},close(){t()},abort:t=>e.getWriter().abort(t)}),closed:r}})(e.writable),d=er({type:"start",options:o,config:t,readable:i,writable:c},e);d||r.assign(e,{reader:i.getReader(),writer:c.getWriter()});const u=await a;return d||await c.getWriter().close(),await l,u})(e,{chunkSize:n,wasmURI:a,baseURI:s})}})}return e.interface}let $t=!0;function er(e,{worker:t,writer:r,onTaskFinished:s,transferStreams:n}){try{const{value:r,readable:s,writable:a}=e,i=[];if(r&&(r.byteLength<r.buffer.byteLength?e.value=r.buffer.slice(r.byteOffset,r.byteOffset+r.byteLength):e.value=r.buffer,i.push(e.value)),n&&$t?(s&&i.push(s),a&&i.push(a)):e.readable=e.writable=null,i.length)try{return t.postMessage(e,i),!0}catch{$t=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),s(),e}}let tr=[];const rr=[];let sr=0;async function nr(e,t){const{options:r,config:s}=t,{transferStreams:a,useWebWorkers:i,useCompressionStream:o,compressed:c,signed:l,encrypted:d}=r,{workerURI:u,maxWorkers:p}=s;t.transferStreams=a||a===j;const f=!(c||l||d||t.transferStreams);return t.useWebWorkers=!f&&(i||i===j&&s.useWebWorkers),t.workerURI=t.useWebWorkers&&u?u:j,r.useCompressionStream=o||o===j&&s.useCompressionStream,(await(async()=>{const r=tr.find(e=>!e.busy);if(r)return ar(r),new Gt(r,e,t,h);if(tr.length<p){const r={indexWorker:sr};return sr++,tr.push(r),new Gt(r,e,t,h)}return new y(r=>rr.push({resolve:r,stream:e,workerOptions:t}))})()).run();function h(e){if(rr.length){const[{resolve:t,stream:r,workerOptions:s}]=rr.splice(0,1);t(new Gt(e,r,s,h))}else e.worker?(ar(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:s}=r;n.isFinite(s)&&s>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{tr=tr.filter(t=>t!=e);try{await e.terminate()}catch{}},s))})(e,t)):tr=tr.filter(t=>t!=e)}}function ar(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}const ir="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function or(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=ir[e[r]];return t}})(e):new z(t).decode(e)}const cr="filename",lr="rawFilename",dr="comment",ur="rawComment",pr="uncompressedSize",fr="compressedSize",hr="offset",wr="diskNumberStart",mr="lastModDate",gr="rawLastModDate",yr="lastAccessDate",br="creationDate",zr="internalFileAttributes",Sr="externalFileAttributes",xr="msDosCompatible",Fr="zip64",Dr="encrypted",kr="version",Er="versionMadeBy",vr="zipCrypto",Ar="directory",Rr="executable",Cr="compressionMethod",Tr="signature",Ur="extraField",Wr=[cr,lr,fr,pr,mr,gr,dr,ur,yr,br,hr,wr,wr,zr,Sr,xr,Fr,Dr,kr,Er,vr,Ar,Rr,Cr,Tr,Ur,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class _r{constructor(e){Wr.forEach(t=>this[t]=e[t])}}const Mr="password",Nr="rawPassword",Br="passThrough",Lr="signal",Or="useWebWorkers",Ir="useCompressionStream",Hr="preventClose",Pr="supportZip64SplitFile",Zr="offset",Vr="usdz",qr="File format is not recognized",Kr="Compression method not supported",jr="Split zip file",Gr="utf-8",Xr="cp437",Yr=[[pr,T],[fr,T],[hr,T],[wr,U]],Jr={[U]:{getValue:cs,bytes:4},[T]:{getValue:ls,bytes:8}};class Qr{constructor(e,t={}){r.assign(this,{reader:new Me(e),options:t,config:$(),readRanges:[]})}async*getEntriesGenerator(e={}){const t=this;let{reader:s}=t;const{config:n}=t;if(await Be(s),s.size!==j&&s.readUint8Array||(s=new fe(await new d(s.readable).blob()),await Be(s)),s.size<I)throw new p(qr);s.chunkSize=ee(n);const a=await(async(e,t,r)=>{const s=new f(4);var n;return n=t,ds(s).setUint32(0,n,!0),await a(22)||await a(i.min(1048582,r));async function a(t){const n=r-t,a=await Le(e,n,t);for(let e=a.length-22;e>=0;e--)if(a[e]==s[0]&&a[e+1]==s[1]&&a[e+2]==s[2]&&a[e+3]==s[3])return{offset:n+e,buffer:a.slice(e,e+22).buffer}}})(s,B,s.size);if(!a)throw cs(ds(await Le(s,0,4)))==_?new p(jr):new p("End of central directory not found");const o=ds(a);let c=cs(o,12),l=cs(o,16);const u=a.offset,h=os(o,20),w=u+I+h;let m=os(o,4);const g=s.lastDiskNumber||0;let b=os(o,6),z=os(o,8),S=0,x=0;if(l==T||c==T||z==U||b==U){const e=ds(await Le(s,a.offset-20,20));if(cs(e,0)==O){l=ls(e,8);let t=await Le(s,l,56,-1),r=ds(t);const n=a.offset-20-56;if(cs(r,0)!=L&&l!=n){const e=l;l=n,l>e&&(S=l-e),t=await Le(s,l,56,-1),r=ds(t)}if(cs(r,0)!=L)throw new p("End of Zip64 central directory locator not found");m==U&&(m=cs(r,16)),b==U&&(b=cs(r,20)),z==U&&(z=ls(r,32)),c==T&&(c=ls(r,40)),l-=c}}if(l<s.size||(S=s.size-l-c-I,l=s.size-c-I),g!=m)throw new p(jr);if(0>l)throw new p(qr);let F=0,k=await Le(s,l,c,b),E=ds(k);if(c){const e=a.offset-c;if(cs(E,F)!=N&&l!=e){const t=l;l=e,l>t&&(S+=l-t),k=await Le(s,l,c,b),E=ds(k)}}const v=a.offset-l-(s.lastDiskOffset||0);if(c==v||0>v||(c=v,k=await Le(s,l,c,b),E=ds(k)),0>l||l>=s.size)throw new p(qr);const A=ss(t,e,"filenameEncoding"),R=ss(t,e,"commentEncoding");for(let a=0;z>a;a++){const o=new $r(s,n,t.options);if(cs(E,F)!=N)throw new p("Central directory header not found");es(o,E,F+6);const c=!!o.bitFlag.languageEncodingFlag,l=F+46,u=l+o.filenameLength,f=u+o.extraFieldLength,h=os(E,F+4),w=!(h>>8),m=h>>8==3,g=k.subarray(l,u),b=os(E,F+32),v=f+b,C=k.subarray(f,v),T=c,U=c,W=cs(E,F+38),_=w&&!(16&~is(E,F+38))||m&&16384==(W>>16&61440)||g.length&&47==g.at(-1),M=m&&!!(W>>16&73),B=cs(E,F+42)+S;r.assign(o,{versionMadeBy:h,msDosCompatible:w,compressedSize:0,uncompressedSize:0,commentLength:b,directory:_,offset:B,diskNumberStart:os(E,F+34),internalFileAttributes:os(E,F+36),externalFileAttributes:W,rawFilename:g,filenameUTF8:T,commentUTF8:U,rawExtraField:k.subarray(u,f),executable:M}),o.internalFileAttribute=o.internalFileAttributes,o.externalFileAttribute=o.externalFileAttributes;const L=ss(t,e,"decodeText")||or,O=T?Gr:A||Xr,I=U?Gr:R||Xr;let H=L(g,O);H===j&&(H=or(g,O));let P=L(C,I);P===j&&(P=or(C,I)),r.assign(o,{rawComment:C,filename:H,comment:P,directory:_||H.endsWith(Z)}),x=i.max(B,x),ts(o,o,E,F+6),o.zipCrypto=o.encrypted&&!o.extraFieldAES;const V=new _r(o);V.getData=(e,r)=>o.getData(e,V,t.readRanges,r),V.arrayBuffer=async e=>{const r=new D,[s]=await y.all([new d(r.readable).arrayBuffer(),o.getData(r,V,t.readRanges,e)]);return s},F=v;const{onprogress:q}=e;if(q)try{await q(a+1,z,new _r(o))}catch{}yield V}const C=ss(t,e,"extractPrependedData"),W=ss(t,e,"extractAppendedData");return C&&(t.prependedData=x>0?await Le(s,0,x):new f),t.comment=h?await Le(s,u+I,h):new f,W&&(t.appendedData=w<s.size?await Le(s,w,s.size-w):new f),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}let $r=class{constructor(e,t,s){r.assign(this,{reader:e,config:t,options:s})}async getData(e,t,s,n={}){const a=this,{reader:i,offset:o,diskNumberStart:c,extraFieldAES:l,extraFieldZip64:d,compressionMethod:u,config:h,bitFlag:w,signature:m,rawLastModDate:g,uncompressedSize:y,compressedSize:b}=a,{dataDescriptor:z}=w,S=t.localDirectory={},x=ds(await Le(i,o,V,c));let F=ss(a,n,Mr),D=ss(a,n,Nr);const k=ss(a,n,Br);if(F=F&&F.length&&F,D=D&&D.length&&D,l&&99!=l.originalCompressionMethod)throw new p(Kr);if(0!=u&&8!=u&&9!=u&&!k)throw new p(Kr);if(cs(x,0)!=W)throw new p("Local file header not found");es(S,x,4);const{extraFieldLength:v,filenameLength:A,lastAccessDate:R,creationDate:C}=S;S.rawExtraField=v?await Le(i,o+V+A,v,c):new f,ts(a,S,x,4,!0),r.assign(t,{lastAccessDate:R,creationDate:C});const T=a.encrypted&&S.encrypted&&!k,U=T&&!l;if(k||(t.zipCrypto=U),T){if(!U&&l.strength===j)throw new p("Encryption method not supported");if(!F&&!D)throw new p("File contains encrypted entry")}const _=o+V+A+v,N=b,B=i.readable;r.assign(B,{diskNumberStart:c,offset:_,size:N});const L=ss(a,n,Lr),O=ss(a,n,"checkPasswordOnly");let I=ss(a,n,"checkOverlappingEntry");const H=ss(a,n,"checkOverlappingEntryOnly");H&&(I=!0);const{onstart:P,onprogress:Z,onend:q}=n,K=9==u;let G=ss(a,n,Ir);K&&(G=!1);const X={options:{codecType:Vt,password:F,rawPassword:D,zipCrypto:U,encryptionStrength:l&&l.strength,signed:ss(a,n,"checkSignature")&&!k,passwordVerification:U&&(z?g>>>8&255:m>>>24&255),outputSize:k?b:y,signature:m,compressed:0!=u&&!k,encrypted:a.encrypted&&!k,useWebWorkers:ss(a,n,Or),useCompressionStream:G,transferStreams:ss(a,n,"transferStreams"),deflate64:K,checkPasswordOnly:O},config:h,streamOptions:{signal:L,size:N,onstart:P,onprogress:Z,onend:q}};let Y;I&&await(async({reader:e,fileEntry:t,offset:r,diskNumberStart:s,signature:n,compressedSize:a,uncompressedSize:i,dataOffset:o,dataDescriptor:c,extraFieldZip64:l,readRanges:d})=>{let u=0;if(s)for(let t=0;s>t;t++)u+=e.readers[t].size;let f=0;if(c&&(f=l?20:12),f){const r=await Le(e,o+a,f+4,s);if(cs(ds(r),0)==M){const e=cs(ds(r),4);let s,o;l?(s=ls(ds(r),8),o=ls(ds(r),16)):(s=cs(ds(r),8),o=cs(ds(r),12)),(t.encrypted&&!t.zipCrypto||e==n)&&s==a&&o==i&&(f+=4)}}const h={start:u+r,end:u+o+a+f,fileEntry:t};for(const e of d)if(e.fileEntry!=t&&h.start>=e.start&&h.start<e.end){const t=new p("Overlapping entry found");throw t.overlappingEntry=e.fileEntry,t}d.push(h)})({reader:i,fileEntry:t,offset:o,diskNumberStart:c,signature:m,compressedSize:b,uncompressedSize:y,dataOffset:_,dataDescriptor:z||S.bitFlag.dataDescriptor,extraFieldZip64:d||S.extraFieldZip64,readRanges:s});try{if(!H){O&&(e=new E),e=new Ne(e),await Be(e,k?b:y),({writable:Y}=e);const{outputSize:t}=await nr({readable:B,writable:Y},X);if(e.size+=t,t!=(k?b:y))throw new p(Mt)}}catch(t){if(t.outputSize!==j&&(e.size+=t.outputSize),!O||t.message!=Je)throw t}finally{ss(a,n,Hr)||!Y||Y.locked||await Y.getWriter().close()}return O||H?j:e.getData?e.getData():Y}};function es(e,t,s){const n=e.rawBitFlag=os(t,s+2),a=!(1&~n),i=cs(t,s+6);r.assign(e,{encrypted:a,version:os(t,s),bitFlag:{level:(6&n)>>1,dataDescriptor:!(8&~n),languageEncodingFlag:(n&P)==P},rawLastModDate:i,lastModDate:ns(i),filenameLength:os(t,s+22),extraFieldLength:os(t,s+24)})}function ts(e,t,s,n,a){const{rawExtraField:i}=t,l=t.extraField=new c,d=ds(new f(i));let u=0;try{for(;u<i.length;){const e=os(d,u),t=os(d,u+2);l.set(e,{type:e,data:i.slice(u+4,u+4+t)}),u+=4+t}}catch{}const h=os(s,n+4);r.assign(t,{signature:cs(s,n+10),compressedSize:cs(s,n+14),uncompressedSize:cs(s,n+18)});const w=l.get(1);w&&(((e,t)=>{t.zip64=!0;const r=ds(e.data),s=Yr.filter(([e,r])=>t[e]==r);for(let n=0,a=0;n<s.length;n++){const[i,o]=s[n];if(t[i]==o){const s=Jr[o];t[i]=e[i]=s.getValue(r,a),a+=s.bytes}else if(e[i])throw new p("Zip64 extra field not found")}})(w,t),t.extraFieldZip64=w);const m=l.get(28789);m&&(rs(m,cr,lr,t,e),t.extraFieldUnicodePath=m);const g=l.get(25461);g&&(rs(g,dr,ur,t,e),t.extraFieldUnicodeComment=g);const y=l.get(39169);y?(((e,t,s)=>{const n=ds(e.data),a=is(n,4);r.assign(e,{vendorVersion:is(n,0),vendorId:is(n,2),strength:a,originalCompressionMethod:s,compressionMethod:os(n,5)}),t.compressionMethod=e.compressionMethod})(y,t,h),t.extraFieldAES=y):t.compressionMethod=h;const b=l.get(10);b&&(((e,t)=>{const s=ds(e.data);let n,a=4;try{for(;a<e.data.length&&!n;){const t=os(s,a),r=os(s,a+2);1==t&&(n=e.data.slice(a+4,a+4+r)),a+=4+r}}catch{}try{if(n&&24==n.length){const s=ds(n),a=s.getBigUint64(0,!0),i=s.getBigUint64(8,!0),o=s.getBigUint64(16,!0);r.assign(e,{rawLastModDate:a,rawLastAccessDate:i,rawCreationDate:o});const c={lastModDate:as(a),lastAccessDate:as(i),creationDate:as(o)};r.assign(e,c),r.assign(t,c)}}catch{}})(b,t),t.extraFieldNTFS=b);const z=l.get(H);z&&(((e,t,r)=>{const s=ds(e.data),n=is(s,0),a=[],i=[];r?(1&~n||(a.push(mr),i.push(gr)),2&~n||(a.push(yr),i.push("rawLastAccessDate")),4&~n||(a.push(br),i.push("rawCreationDate"))):5>e.data.length||(a.push(mr),i.push(gr));let c=1;a.forEach((r,n)=>{if(e.data.length>=c+4){const a=cs(s,c);t[r]=e[r]=new o(1e3*a);const l=i[n];e[l]=a}c+=4})})(z,t,a),t.extraFieldExtendedTimestamp=z);const S=l.get(6534);S&&(t.extraFieldUSDZ=S)}function rs(e,t,s,n,a){const i=ds(e.data),o=new Ie;o.append(a[s]);const c=ds(new f(4));c.setUint32(0,o.get(),!0);const l=cs(i,1);r.assign(e,{version:is(i,0),[t]:or(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==cs(c,0)}),e.valid&&(n[t]=e[t],n[t+"UTF8"]=!0)}function ss(e,t,r){return t[r]===j?e.options[r]:t[r]}function ns(e){const t=(4294901760&e)>>16,r=65535&e;try{return new o(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&r)>>11,(2016&r)>>5,2*(31&r),0)}catch{}}function as(e){return new o(n(e/a(1e4)-a(116444736e5)))}function is(e,t){return e.getUint8(t)}function os(e,t){return e.getUint16(t,!0)}function cs(e,t){return e.getUint32(t,!0)}function ls(e,t){return n(e.getBigUint64(t,!0))}function ds(e){return new m(e.buffer)}const us="Version exceeds 65535",ps="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",fs=new f([7,0,2,0,65,69,3,0,0]);let hs=0;const ws=[];class ms{constructor(e,t={}){const s=(e=new Ne(e)).availableSize!==j&&e.availableSize>0&&e.availableSize!==1/0&&e.maxSize!==j&&e.maxSize>0&&e.maxSize!==1/0;r.assign(this,{writer:e,addSplitZipSignature:s,options:t,config:$(),files:new c,filenames:new l,offset:t[Zr]===j?e.size||e.writable.size||0:t[Zr],pendingEntriesSize:0,pendingAddFileCalls:new l,bufferedWrites:0})}async prependZip(e){if(this.filenames.size)throw new p("Zip file not empty");e=new Me(e);const t=new Qr(e.readable),s=await t.getEntries();await t.close(),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.filenames=new l(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,compressionMethod:s,lastModDate:n,lastAccessDate:a,creationDate:i,rawFilename:o,bitFlag:c,encrypted:l,uncompressedSize:d,compressedSize:u,diskOffset:p,diskNumber:h,zip64:w}=e;let{rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraField:z}=e;const{level:S,languageEncodingFlag:x,dataDescriptor:F}=c;m=m||new f,g=g||new f,y=y||new f,b=b||new f,z=z||new f;const D=As(m,g,y,b,z),k=w&&d>T,E=w&&u>T,{headerArray:v,headerView:A}=Rs({version:t,bitFlag:Cs(S,x,F,l,s),compressionMethod:s,uncompressedSize:d,compressedSize:u,lastModDate:n,rawFilename:o,zip64CompressedSize:E,zip64UncompressedSize:k,extraFieldLength:D});return r.assign(e,{zip64UncompressedSize:k,zip64CompressedSize:E,zip64Offset:w&&this.offset-p>T,zip64DiskNumberStart:w&&h>U,rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraField:z,extendedTimestamp:y.length>0||b.length>0,extraFieldExtendedTimestampFlag:1+(a?2:0)+(i?4:0),headerArray:v,headerView:A}),[e.filename,e]}))}async add(e="",s,n={}){const c=this,{pendingAddFileCalls:l,config:u}=c;let w;hs<u.maxWorkers?hs++:await new y(e=>ws.push(e));try{if(e=e.trim(),c.filenames.has(e))throw new p("File already exists");return c.filenames.add(e),w=(async(e,s,n,c)=>{s=s.trim();const l=zs(e,c,xr),u=zs(e,c,Er,l?20:768),w=zs(e,c,Rr);if(u>U)throw new p(us);let m=zs(e,c,Sr,0);!c[Ar]&&s.endsWith(Z)&&(c[Ar]=!0),zs(e,c,Ar)?(s.endsWith(Z)||(s+=Z),0===m&&(m=16,l||(m|=16877<<16))):l||0!==m||(m=w?493<<16:27525120);const g=zs(e,c,"encodeText",Pe);let b=g(s);if(b===j&&(b=Pe(s)),As(b)>U)throw new p("File entry name exceeds 64KB");const z=c[dr]||"";let S=g(z);if(S===j&&(S=Pe(z)),As(S)>U)throw new p("File entry comment exceeds 64KB");const x=zs(e,c,kr,20);if(x>U)throw new p(us);const F=zs(e,c,mr,new o),k=zs(e,c,yr),E=zs(e,c,br),v=zs(e,c,zr,0),A=zs(e,c,Br);let R,C;A||(R=zs(e,c,Mr),C=zs(e,c,Nr));const N=zs(e,c,"encryptionStrength",3),B=zs(e,c,vr),L=zs(e,c,"extendedTimestamp",!0),O=zs(e,c,"keepOrder",!0),I=zs(e,c,Or),P=zs(e,c,"bufferedWrite"),G=zs(e,c,"dataDescriptorSignature",!1),X=zs(e,c,Lr),Y=zs(e,c,"useUnicodeFileNames",!0),J=zs(e,c,Cr);let Q=zs(e,c,"level"),$=zs(e,c,Ir),te=zs(e,c,"dataDescriptor");P&&te===j&&(te=!1),(te===j||B)&&(te=!0),Q!==j&&6!=Q&&($=!1),$||e.config.CompressionStream!==j||e.config.CompressionStreamZlib!==j||(Q=0);let re=zs(e,c,Fr);if(!B&&(R!==j||C!==j)&&(1>N||N>3))throw new p("The strength must equal 1, 2, or 3");let se=new f;const ne=c[Ur];if(ne){let e=0,t=0;ne.forEach(t=>e+=4+As(t)),se=new f(e),ne.forEach((e,r)=>{if(r>U)throw new p("Extra field type exceeds 65535");if(As(e)>U)throw new p("Extra field data exceeds 64KB");Es(se,new h([r]),t),Es(se,new h([As(e)]),t+2),Es(se,e,t+4),t+=4+As(e)})}let ae=0,ie=0,oe=0;if(A&&(oe=c[pr],oe===j))throw new p("Undefined uncompressed size");const ce=!0===re;n&&(n=new Me(n),await Be(n),A?(c.uncompressedSize=oe,ae=Ss(oe)):n.size===j?(te=!0,(re||re===j)&&(re=!0,oe=ae=4294967296)):(c.uncompressedSize=oe=n.size,ae=Ss(oe)));const{diskOffset:le,diskNumber:de,maxSize:ue}=e.writer,pe=ce||oe>T,fe=ce||ae>T,he=ce||e.offset+e.pendingEntriesSize-le>T,we=zs(e,c,Pr,!0)&&ce||de+i.ceil(e.pendingEntriesSize/ue)>U;if(he||pe||fe||we){if(!1===re||!O)throw new p(ps);re=!0}re=re||!1;const me=zs(e,c,Dr),ge=(e=>{const{rawFilename:t,lastModDate:r,lastAccessDate:s,creationDate:n,level:o,zip64:c,zipCrypto:l,useUnicodeFileNames:d,dataDescriptor:u,directory:p,rawExtraField:h,encryptionStrength:w,extendedTimestamp:m,passThrough:g,encrypted:y,zip64UncompressedSize:b,zip64CompressedSize:z,zip64Offset:S,zip64DiskNumberStart:x,uncompressedSize:F,offset:D,diskNumberStart:k}=e;let{version:E,compressionMethod:v}=e;const A=!p&&(o>0||o===j&&0!==v);let R;const C=g||!A,T=c&&(e.bufferedWrite||!b&&!z||C);if(c){let e=4;b&&(e+=8),z&&(e+=8),S&&(e+=8),x&&(e+=4),R=new f(e);const t=vs(R);if(Fs(t,0,1),Fs(t,2,As(R)-4),T){const e=vs(R);let t=4;b&&(ks(e,t,a(F)),t+=8),z&&C&&(ks(e,t,a(F)),t+=8),S&&(ks(e,t,a(D)),t+=8),x&&(Ds(e,t,k),t+=4)}}else R=new f;let U,_,M,N;if(y&&!l){U=new f(As(fs)+2);const e=vs(U);Fs(e,0,39169),Es(U,fs,2),xs(e,8,w)}else U=new f;if(m){M=new f(9+(s?4:0)+(n?4:0));const e=vs(M);Fs(e,0,H),Fs(e,2,As(M)-4),N=1+(s?2:0)+(n?4:0),xs(e,4,N);let t=5;Ds(e,t,i.floor(r.getTime()/1e3)),t+=4,s&&(Ds(e,t,i.floor(s.getTime()/1e3)),t+=4),n&&Ds(e,t,i.floor(n.getTime()/1e3));try{_=new f(36);const e=vs(_),t=bs(r);Fs(e,0,10),Fs(e,2,32),Fs(e,8,1),Fs(e,10,24),ks(e,12,t),ks(e,20,bs(s)||t),ks(e,28,bs(n)||t)}catch{_=new f}}else _=M=new f;v===j&&(v=A?8:0),c&&(E=E>45?E:45),y&&!l&&(E=E>51?E:51,U[9]=v,v=99);const B=T?As(R):0,L=B+As(U,M,_,h),{headerArray:O,headerView:I,rawLastModDate:P}=Rs({version:E,bitFlag:Cs(o,d,u,y,v),compressionMethod:v,uncompressedSize:F,lastModDate:K>r?K:r>q?q:r,rawFilename:t,zip64CompressedSize:z,zip64UncompressedSize:b,extraFieldLength:L});let Z=V;const G=new f(Z+As(t)+L),X=vs(G);return Ds(X,0,W),Es(G,O,4),Es(G,t,Z),Z+=As(t),T&&Es(G,R,Z),Z+=B,Es(G,U,Z),Z+=As(U),Es(G,M,Z),Z+=As(M),Es(G,_,Z),Z+=As(_),Es(G,h,Z),u&&(Ds(X,18,0),Ds(X,22,0)),{localHeaderArray:G,localHeaderView:X,headerArray:O,headerView:I,lastModDate:r,rawLastModDate:P,encrypted:y,compressed:A,version:E,compressionMethod:v,extraFieldExtendedTimestampFlag:N,rawExtraFieldZip64:R,localExtraFieldZip64Length:B,rawExtraFieldExtendedTimestamp:M,rawExtraFieldNTFS:_,rawExtraFieldAES:U,extraFieldLength:L}})(c=r.assign({},c,{rawFilename:b,rawComment:S,version:x,versionMadeBy:u,lastModDate:F,lastAccessDate:k,creationDate:E,rawExtraField:se,zip64:re,zip64UncompressedSize:pe,zip64CompressedSize:fe,zip64Offset:he,zip64DiskNumberStart:we,password:R,rawPassword:C,level:Q,useWebWorkers:I,encryptionStrength:N,extendedTimestamp:L,zipCrypto:B,bufferedWrite:P,keepOrder:O,useUnicodeFileNames:Y,dataDescriptor:te,dataDescriptorSignature:G,signal:X,msDosCompatible:l,internalFileAttribute:v,internalFileAttributes:v,externalFileAttribute:m,externalFileAttributes:m,useCompressionStream:$,passThrough:A,encrypted:!!(R&&As(R)||C&&As(C))||A&&me,signature:c[Tr],compressionMethod:J,uncompressedSize:oe,offset:e.offset-le,diskNumberStart:de})),ye=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:r})=>{let s,n=new f,a=0,i=e?20:12;return r&&(i+=4),t&&(n=new f(i),s=vs(n),r&&(a=4,Ds(s,0,M))),{dataDescriptorArray:n,dataDescriptorView:s,dataDescriptorOffset:a}})(c),be=As(ge.localHeaderArray,ye.dataDescriptorArray);let ze;ie=be+ae,e.options[Vr]&&(ie+=ie+64),e.pendingEntriesSize+=ie;try{ze=await(async(e,s,n,i,o)=>{const{files:c,writer:l}=e,{keepOrder:u,dataDescriptor:h,signal:w}=o,{headerInfo:m}=i,g=e.options[Vr],b=t.from(c.values()).pop();let z,S,x,F,k,E,v,A={};c.set(s,A);try{let t;u&&(t=b&&b.lock,A.lock=new y(e=>x=e)),!(o.bufferedWrite||e.writerLocked||e.bufferedWrites&&u)&&h||g?(E=l,await R()):(E=new D,E.size=0,z=!0,e.bufferedWrites++,await Be(l)),await Be(E);const{writable:S,diskOffset:U}=l;if(e.addSplitZipSignature){delete e.addSplitZipSignature;const t=new f(4);Ds(vs(t),0,_),await ys(l,t),e.offset+=4}g&&((e,t)=>{const{headerInfo:r}=e;let{localHeaderArray:s,extraFieldLength:n}=r,a=vs(s),i=64-(t+As(s))%64;4>i&&(i+=64);const o=new f(i),c=vs(o);Fs(c,0,6534),Fs(c,2,i-2);const l=s;r.localHeaderArray=s=new f(As(l)+i),Es(s,l),Es(s,o,As(l)),a=vs(s),Fs(a,28,n+i),e.metadataSize+=i})(i,e.offset-U);const{localHeaderView:W,localHeaderArray:M}=m;z||(await t,await C(S));const{diskNumber:N}=l;k=!0,A.diskNumberStart=N,z?v=new d(E.readable).blob():await ys(E,M),A=await(async(e,t,{diskNumberStart:s,lock:n},i,o,c)=>{const{headerInfo:l,dataDescriptorInfo:d,metadataSize:u}=i,{headerArray:p,headerView:f,lastModDate:h,rawLastModDate:w,encrypted:m,compressed:g,version:y,compressionMethod:b,rawExtraFieldZip64:z,localExtraFieldZip64Length:S,rawExtraFieldExtendedTimestamp:x,extraFieldExtendedTimestampFlag:F,rawExtraFieldNTFS:D,rawExtraFieldAES:k}=l,{dataDescriptorArray:E}=d,{rawFilename:v,lastAccessDate:A,creationDate:R,password:C,rawPassword:T,level:U,zip64:W,zip64UncompressedSize:_,zip64CompressedSize:M,zip64Offset:N,zip64DiskNumberStart:B,zipCrypto:L,dataDescriptor:O,directory:I,executable:H,versionMadeBy:P,rawComment:Z,rawExtraField:V,useWebWorkers:q,onstart:K,onprogress:G,onend:X,signal:Y,encryptionStrength:J,extendedTimestamp:Q,msDosCompatible:$,internalFileAttributes:te,externalFileAttributes:re,useCompressionStream:se,passThrough:ne}=c,ae={lock:n,versionMadeBy:P,zip64:W,directory:!!I,executable:!!H,filenameUTF8:!0,rawFilename:v,commentUTF8:!0,rawComment:Z,rawExtraFieldZip64:z,localExtraFieldZip64Length:S,rawExtraFieldExtendedTimestamp:x,rawExtraFieldNTFS:D,rawExtraFieldAES:k,rawExtraField:V,extendedTimestamp:Q,msDosCompatible:$,internalFileAttributes:te,externalFileAttributes:re,diskNumberStart:s};let{signature:ie,uncompressedSize:oe}=c,ce=0;ne||(oe=0);const{writable:le}=t;if(e){e.chunkSize=ee(o);const r=e.readable,s=e.size,n={options:{codecType:Zt,level:U,rawPassword:T,password:C,encryptionStrength:J,zipCrypto:m&&L,passwordVerification:m&&L&&w>>8&255,signed:!ne,compressed:g&&!ne,encrypted:m&&!ne,useWebWorkers:q,useCompressionStream:se,transferStreams:!1},config:o,streamOptions:{signal:Y,size:s,onstart:K,onprogress:G,onend:X}};try{const e=await nr({readable:r,writable:le},n);ce=e.outputSize,t.size+=ce,ne||(oe=e.inputSize,ie=e.signature)}catch(e){throw e.outputSize!==j&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:r,headerInfo:s,dataDescriptorInfo:n},{zip64:i,zipCrypto:o,dataDescriptor:c})=>{const{headerView:l,encrypted:d}=s,{dataDescriptorView:u,dataDescriptorOffset:p}=n;d&&!o||e===j||(Ds(l,10,e),c&&Ds(u,p,e)),i?c&&(ks(u,p+4,a(t)),ks(u,p+12,a(r))):(Ds(l,14,t),Ds(l,18,r),c&&(Ds(u,p+4,t),Ds(u,p+8,r)))})({signature:ie,compressedSize:ce,uncompressedSize:oe,headerInfo:l,dataDescriptorInfo:d},c),O&&await ys(t,E),r.assign(ae,{uncompressedSize:oe,compressedSize:ce,lastModDate:h,rawLastModDate:w,creationDate:R,lastAccessDate:A,encrypted:m,zipCrypto:L,size:u+ce,compressionMethod:b,version:y,headerArray:p,headerView:f,signature:ie,extraFieldExtendedTimestampFlag:F,zip64UncompressedSize:_,zip64CompressedSize:M,zip64Offset:N,zip64DiskNumberStart:B}),ae})(n,E,A,i,e.config,o);const{zip64:B}=A;if(k=!1,c.set(s,A),A.filename=s,z){const[r]=await y.all([v,E.writable.getWriter().close(),t]);await R(),F=!0,A.diskNumberStart=l.diskNumber,A.offset=e.offset-l.diskOffset,B&&gs(A),(({rawFilename:e,encrypted:t,zip64:r,localExtraFieldZip64Length:s,signature:n,compressedSize:i,uncompressedSize:o,offset:c,diskNumberStart:l,zip64UncompressedSize:d,zip64CompressedSize:u,zip64Offset:p,zip64DiskNumberStart:f},h,{dataDescriptor:w})=>{if(w||(t||Ds(h,14,n),r||(Ds(h,18,i),Ds(h,22,o))),r&&s){let t=V+As(e)+4;d&&(ks(h,t,a(o)),t+=8),u&&(ks(h,t,a(i)),t+=8),p&&(ks(h,t,a(c)),t+=8),f&&Ds(h,t,l)}})(A,W,o),await C(S),await ys(l,M),await r.stream().pipeTo(S,{preventClose:!0,preventAbort:!0,signal:w}),l.size+=E.size,F=!1}else A.offset=e.offset-U,B&&gs(A);if(A.offset>T&&!B)throw new p(ps);return e.offset+=A.size,A}catch(t){if(z&&F||!z&&k){if(e.hasCorruptedEntries=!0,t)try{t.corruptedEntry=!0}catch{}z?e.offset+=E.size:e.offset=E.size}throw c.delete(s),t}finally{z&&e.bufferedWrites--,x&&x(),S&&S()}async function R(){e.writerLocked=!0;const{lockWriter:t}=e;e.lockWriter=new y(t=>S=()=>{e.writerLocked=!1,t()}),await t}async function C(e){As(m.localHeaderArray)>l.availableSize&&(l.availableSize=0,await ys(e,new f))}})(e,s,n,{headerInfo:ge,dataDescriptorInfo:ye,metadataSize:be},c)}finally{e.pendingEntriesSize-=ie}return r.assign(ze,{name:s,comment:z,extraField:ne}),new _r(ze)})(c,e,s,n),l.add(w),await w}catch(t){throw c.filenames.delete(e),t}finally{l.delete(w);const e=ws.shift();e?e():hs--}}remove(e){const{filenames:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==j){const{filename:s}=e;if(t.has(s)&&r.has(s))return t.delete(s),r.delete(s),!0}return!1}async close(e=new f,r={}){const{pendingAddFileCalls:s,writer:n}=this,{writable:o}=n;for(;s.size;)await y.allSettled(t.from(s));return await(async(e,r,s)=>{const{files:n,writer:o}=e,{diskOffset:c}=o;let{diskNumber:l}=o,d=0,u=0,h=e.offset-c,w=n.size;for(const[,e]of n){const{rawFilename:t,rawExtraFieldZip64:r,rawExtraFieldAES:s,rawComment:n,rawExtraFieldNTFS:a,rawExtraField:o,extendedTimestamp:c,extraFieldExtendedTimestampFlag:l,lastModDate:d}=e;let p;if(c){p=new f(9);const e=vs(p);Fs(e,0,H),Fs(e,2,5),xs(e,4,l),Ds(e,5,i.floor(d.getTime()/1e3))}else p=new f;e.rawExtraFieldExtendedTimestamp=p,u+=46+As(t,n,r,s,a,p,o)}const m=new f(u),g=vs(m);await Be(o);let y=0;for(const[e,r]of t.from(n.values()).entries()){const{offset:t,rawFilename:a,rawExtraFieldZip64:i,rawExtraFieldAES:c,rawExtraFieldExtendedTimestamp:l,rawExtraFieldNTFS:u,rawExtraField:p,rawComment:f,versionMadeBy:h,headerArray:w,headerView:b,zip64:z,zip64UncompressedSize:S,zip64CompressedSize:x,zip64DiskNumberStart:F,zip64Offset:D,internalFileAttributes:k,externalFileAttributes:E,diskNumberStart:v,uncompressedSize:A,compressedSize:R}=r,C=As(i,c,l,u,p);Ds(g,d,N),Fs(g,d+4,h),S||Ds(b,18,A),x||Ds(b,14,R),Es(m,w,d+6);let W=d+V;if(Fs(g,W,C),W+=2,Fs(g,W,As(f)),W+=2,Fs(g,W,z&&F?U:v),W+=2,Fs(g,W,k),W+=2,E&&Ds(g,W,E),W+=4,Ds(g,W,z&&D?T:t),W+=4,Es(m,a,W),W+=As(a),Es(m,i,W),W+=As(i),Es(m,c,W),W+=As(c),Es(m,l,W),W+=As(l),Es(m,u,W),W+=As(u),Es(m,p,W),W+=As(p),Es(m,f,W),d-y>o.availableSize&&(o.availableSize=0,await ys(o,m.slice(y,d)),y=d),d=W,s.onprogress)try{await s.onprogress(e+1,n.size,new _r(r))}catch{}}await ys(o,y?m.slice(y):m);let b=o.diskNumber;const{availableSize:z}=o;I>z&&b++;let S=zs(e,s,Fr);if(h>T||u>T||w>U||b>U){if(!1===S)throw new p(ps);S=!0}const x=new f(S?98:I),F=vs(x);d=0,S&&(Ds(F,0,L),ks(F,4,a(44)),Fs(F,12,45),Fs(F,14,45),Ds(F,16,b),Ds(F,20,l),ks(F,24,a(w)),ks(F,32,a(w)),ks(F,40,a(u)),ks(F,48,a(h)),Ds(F,56,O),ks(F,64,a(h)+a(u)),Ds(F,72,b+1),zs(e,s,Pr,!0)&&(b=U,l=U),w=U,h=T,u=T,d+=76),Ds(F,d,B),Fs(F,d+4,b),Fs(F,d+6,l),Fs(F,d+8,w),Fs(F,d+10,w),Ds(F,d+12,u),Ds(F,d+16,h);const D=As(r);if(D){if(D>U)throw new p("Zip file comment exceeds 64KB");Fs(F,d+20,D)}await ys(o,x),D&&await ys(o,r)})(this,e,r),zs(this,r,Hr)||await o.getWriter().close(),n.getData?n.getData():o}}function gs({compressedSize:e,uncompressedSize:t,offset:r,diskNumberStart:s,zip64UncompressedSize:n,zip64CompressedSize:i,zip64Offset:o,zip64DiskNumberStart:c,rawExtraFieldZip64:l}){const d=vs(l);let u=4;n&&(ks(d,u,a(t)),u+=8),i&&(ks(d,u,a(e)),u+=8),o&&(ks(d,u,a(r)),u+=8),c&&Ds(d,u,s)}async function ys(e,t){const{writable:r}=e,s=r.getWriter();try{await s.ready,e.size+=As(t),await s.write(t)}finally{s.releaseLock()}}function bs(e){if(e)return(a(e.getTime())+a(116444736e5))*a(1e4)}function zs(e,t,r,s){const n=t[r]===j?e.options[r]:t[r];return n===j?s:n}function Ss(e){return e+5*(i.floor(e/16383)+1)}function xs(e,t,r){e.setUint8(t,r)}function Fs(e,t,r){e.setUint16(t,r,!0)}function Ds(e,t,r){e.setUint32(t,r,!0)}function ks(e,t,r){e.setBigUint64(t,r,!0)}function Es(e,t,r){e.set(t,r)}function vs(e){return new m(e.buffer)}function As(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function Rs({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:s,compressedSize:n,lastModDate:a,rawFilename:i,zip64CompressedSize:o,zip64UncompressedSize:c,extraFieldLength:l}){const d=new f(26),u=vs(d);Fs(u,0,e),Fs(u,2,t),Fs(u,4,r);const p=new w(1),h=vs(p);Fs(h,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),Fs(h,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate());const m=p[0];return Ds(u,6,m),(o||n!==j)&&Ds(u,14,o?T:n),(c||s!==j)&&Ds(u,18,c?T:s),Fs(u,22,As(i)),Fs(u,24,l),{headerArray:d,headerView:u,rawLastModDate:m}}function Cs(e,t,r,s,n){let a=0;return t&&(a|=P),r&&(a|=8),8!=n&&9!=n||(0>e||e>3||(a|=6),e>3&&5>=e&&(a|=4),9==e&&(a|=2)),s&&(a|=1),a}class Ts{constructor(e,t,s,n){const a=this;if(e.root&&n&&n.getChildByName(t))throw new p("Entry filename already exists");s||(s={}),r.assign(a,{fs:e,name:t,data:s.data,options:s.options,id:e.entries.length,parent:n,children:[],uncompressedSize:s.uncompressedSize||0,passThrough:s.passThrough}),e.entries.push(a),n&&a.parent.children.push(a)}moveTo(e){this.fs.move(this,e)}getFullname(){return this.getRelativeName()}getRelativeName(e=this.fs.root){let t=this.name,r=this.parent;for(;r&&r!=e;)t=(r.name?r.name+"/":"")+t,r=r.parent;return t}isDescendantOf(e){let t=this.parent;for(;t&&t.id!=e.id;)t=t.parent;return!!t}rename(e){const t=this.parent;if(t&&t.getChildByName(e))throw new p("Entry filename already exists");this.name=e}}class Us extends Ts{constructor(e,t,r,s){super(e,t,r,s);const n=this;n.Reader=r.Reader,n.Writer=r.Writer,r.getData&&(n.getData=r.getData)}clone(){return new Us(this.fs,this.name,this)}async getData(e,t={}){const r=this;if(!e||e.constructor==r.Writer&&r.data)return r.data;{const s=r.reader=new r.Reader(r.data,t),n=r.data?r.data.uncompressedSize:s.size;await y.all([Be(s),Be(e,n)]);const{readable:a}=s;return r.uncompressedSize=s.size,await a.pipeTo(e.writable),e.getData?e.getData():e.writable}}isPasswordProtected(){return this.data.encrypted}async checkPassword(e,t={}){const r=this;if(!r.isPasswordProtected())return!0;t.password=e,t.checkPasswordOnly=!0;try{return await r.data.getData(null,t),!0}catch(e){if(e.message==Xe)return!1;throw e}}getText(e,t){return this.getData(new me(e),t)}getBlob(e,t){return this.getData(new he(e),t)}getData64URI(e,t){return this.getData(new pe(e),t)}getUint8Array(e){return this.getData(new Ue,e)}getWritable(e=new E,t){return this.getData({writable:e},t)}getArrayBuffer(e){return this.data.arrayBuffer(e)}replaceBlob(e){r.assign(this,{data:e,Reader:fe,Writer:he,reader:null})}replaceText(e){r.assign(this,{data:e,Reader:we,Writer:me,reader:null})}replaceData64URI(e){r.assign(this,{data:e,Reader:ue,Writer:pe,reader:null})}replaceUint8Array(e){r.assign(this,{data:e,Reader:Te,Writer:Ue,reader:null})}replaceReadable(e){r.assign(this,{data:null,Reader:()=>({readable:e}),Writer:null,reader:null})}}class Ws extends Ts{constructor(e,t,r,s){super(e,t,r,s),this.directory=!0}clone(e){const t=this,r=new Ws(t.fs,t.name);return e&&(r.children=t.children.map(t=>{const s=t.clone(e);return s.parent=r,s})),r}addDirectory(e,t){return Hs(this,e,{options:t},!0)}addText(e,t,r={}){return Hs(this,e,{data:t,Reader:we,Writer:me,options:r,uncompressedSize:t.length})}addBlob(e,t,r={}){return Hs(this,e,{data:t,Reader:fe,Writer:he,options:r,uncompressedSize:t.size})}addData64URI(e,t,r={}){let s=t.length;for(;"="==t.charAt(s-1);)s--;const n=t.indexOf(",")+1;return Hs(this,e,{data:t,Reader:ue,Writer:pe,options:r,uncompressedSize:i.floor(.75*(s-n))})}addUint8Array(e,t,r={}){return Hs(this,e,{data:t,Reader:Te,Writer:Ue,options:r,uncompressedSize:t.length})}addHttpContent(e,t,r={}){return Hs(this,e,{data:t,Reader:class extends Ce{constructor(e){super(e,r)}},options:r})}addReadable(e,t,r={}){return Hs(this,e,{Reader:()=>({readable:t}),options:r})}addFileSystemEntry(e,t={}){return Ls(this,e,t)}addFileSystemHandle(e,t={}){return Ls(this,e,t)}addFile(e,t={}){return t.lastModDate||(t.lastModDate=new o(e.lastModified)),Hs(this,e.name,{data:e,Reader:()=>({readable:e.stream(),size:e.size}),options:t,uncompressedSize:e.size})}addData(e,t){return Hs(this,e,t)}importBlob(e,t){return this.importZip(new fe(e),t)}importData64URI(e,t){return this.importZip(new ue(e),t)}importUint8Array(e,t){return this.importZip(new Te(e),t)}importHttpContent(e,t){return this.importZip(new Ce(e,t),t)}importReadable(e,t){return this.importZip({readable:e},t)}exportBlob(e={}){return this.exportZip(new he(e.mimeType||"application/zip"),e)}exportData64URI(e={}){return this.exportZip(new pe(e.mimeType||"application/zip"),e)}exportUint8Array(e={}){return this.exportZip(new Ue,e)}async exportWritable(e=new E,t={}){return await this.exportZip({writable:e},t),e}async importZip(e,t={}){await Be(e);const s=new Qr(e,t),n=[],a=await s.getEntries();for(const e of a){let s=this;try{const a=e.filename.split("/"),i=a.pop();a.forEach((t,r)=>{const i=s;s=s.getChildByName(t),s||(s=new Ws(this.fs,t,{data:r==a.length-1?e:null},i),n.push(s))}),e.directory||n.push(Hs(s,i,{data:e,Reader:Ms(r.assign({},t)),uncompressedSize:e.uncompressedSize,passThrough:t.passThrough}))}catch(t){try{t.cause={entry:e}}catch{}throw t}}return n}async exportZip(e,s){const n=this;s.bufferedWrite===j&&(s.bufferedWrite=!0),await y.all([Ns(n,s.readerOptions),Be(e)]);const a=new ms(e,s);return await(async(e,s,n,a)=>{const i=s,o=new c;await async function e(s,c){async function l(c){const l=a.relativePath?c.getRelativeName(i):c.getFullname(),d=c.options||{};let u={};if(c.data instanceof _r){const{externalFileAttributes:e,versionMadeBy:t,comment:s,lastModDate:n,creationDate:a,lastAccessDate:i,uncompressedSize:o,encrypted:l,zipCrypto:d,signature:p,compressionMethod:f,extraFieldAES:h}=c.data;if(u={externalFileAttributes:e,versionMadeBy:t,comment:s,lastModDate:n,creationDate:a,lastAccessDate:i},c.passThrough){let e,t;0===f&&(e=0),h&&(t=h.strength),u=r.assign(u,{passThrough:!0,encrypted:l,zipCrypto:d,signature:p,uncompressedSize:o,level:e,encryptionStrength:t,compressionMethod:f})}}await s.add(l,c.reader,r.assign({},a,u,d,{directory:c.directory,onprogress:async e=>{if(a.onprogress){o.set(l,e);try{await a.onprogress(t.from(o.values()).reduce((e,t)=>e+t),n)}catch{}}}})),await e(s,c)}await(async()=>{if(a.bufferedWrite)await y.allSettled(c.children.map(l));else for(const e of c.children)await l(e)})()}(e,s)})(a,n,(e=>{let t=0;return e.forEach(function e(r){t+=r.uncompressedSize,r.children&&r.children.forEach(e)}),t})([n]),s),await a.close(),e.getData?e.getData():e.writable}getChildByName(e){const t=this.children;for(let r=0;r<t.length;r++){const s=t[r];if(s.name==e)return s}}isPasswordProtected(){const e=this.children;for(let t=0;t<e.length;t++)if(e[t].isPasswordProtected())return!0;return!1}async checkPassword(e,t={}){const r=this.children;return!(await y.all(r.map(r=>r.checkPassword(e,t)))).includes(!1)}}const _s={FS:class{constructor(){Is(this)}get children(){return this.root.children}remove(e){Bs(e),this.entries[e.id]=null}move(e,t){if(e==this.root)throw new p("Root directory cannot be moved");if(!t.directory)throw new p("Target entry is not a directory");if(t.isDescendantOf(e))throw new p("Entry is a ancestor of target entry");if(e!=t){if(t.getChildByName(e.name))throw new p("Entry filename already exists");Bs(e),e.parent=t,t.children.push(e)}}find(e){const t=e.split("/");let r=this.root;for(let e=0;r&&e<t.length;e++)r=r.getChildByName(t[e]);return r}getById(e){return this.entries[e]}getChildByName(e){return this.root.getChildByName(e)}addDirectory(e,t){return this.root.addDirectory(e,t)}addText(e,t,r){return this.root.addText(e,t,r)}addBlob(e,t,r){return this.root.addBlob(e,t,r)}addData64URI(e,t,r){return this.root.addData64URI(e,t,r)}addUint8Array(e,t,r){return this.root.addUint8Array(e,t,r)}addHttpContent(e,t,r){return this.root.addHttpContent(e,t,r)}addReadable(e,t,r){return this.root.addReadable(e,t,r)}addFileSystemEntry(e,t){return this.root.addFileSystemEntry(e,t)}addFileSystemHandle(e,t){return this.root.addFileSystemHandle(e,t)}addFile(e,t){return this.root.addFile(e,t)}addData(e,t){return this.root.addData(e,t)}importBlob(e,t){return Is(this),this.root.importBlob(e,t)}importData64URI(e,t){return Is(this),this.root.importData64URI(e,t)}importUint8Array(e,t){return Is(this),this.root.importUint8Array(e,t)}importHttpContent(e,t){return Is(this),this.root.importHttpContent(e,t)}importReadable(e,t){return Is(this),this.root.importReadable(e,t)}importZip(e,t){return this.root.importZip(e,t)}exportBlob(e){return this.root.exportBlob(e)}exportData64URI(e){return this.root.exportData64URI(e)}exportUint8Array(e){return this.root.exportUint8Array(e)}exportWritable(e,t){return this.root.exportWritable(e,t)}isPasswordProtected(){return this.root.isPasswordProtected()}checkPassword(e,t){return this.root.checkPassword(e,t)}},ZipDirectoryEntry:Ws,ZipFileEntry:Us};function Ms(e){return class extends le{constructor(e,t={}){super(),this.entry=e,this.options=t}async init(){const t=this;t.size=t.entry.uncompressedSize;const s=await t.entry.getData(new he,r.assign({},t.options,e));t.data=s,t.blobReader=new fe(s),super.init()}readUint8Array(e,t){return this.blobReader.readUint8Array(e,t)}}}async function Ns(e,t){e.children.length&&await y.all(e.children.map(async e=>{if(e.directory)await Ns(e,t);else{const r=e.reader=new e.Reader(e.data,t);try{await Be(r)}catch(t){try{t.entryId=e.id,t.cause={entry:e}}catch{}throw t}e.uncompressedSize=r.size}}))}function Bs(e){if(e.parent){const t=e.parent.children;t.forEach((r,s)=>{r.id==e.id&&t.splice(s,1)})}}function Ls(e,t,s){return async function e(t,n,a){if(n)try{if((n.isFile||n.isDirectory)&&(n=await Os(n)),"file"==n.kind){const e=await n.getFile();a.push(t.addData(e.name,{Reader:()=>({readable:e.stream(),size:e.size}),options:r.assign({},{lastModDate:new o(e.lastModified)},s),uncompressedSize:e.size}))}else if("directory"==n.kind){const r=t.addDirectory(n.name);a.push(r);for await(const t of n.values())await e(r,t,a)}}catch(e){const t=e.message+(n?" ("+n.name+")":"");throw new p(t)}return a}(e,t,[])}async function Os(e){const t={name:e.name};if(e.isFile&&(t.kind="file",t.getFile=()=>new y((t,r)=>e.file(t,r))),e.isDirectory){t.kind="directory";const r=await(async e=>{const t=[];function r(e,s,n){e.readEntries(async a=>{if(a.length){for(const e of a)t.push(await Os(e));r(e,s,n)}else s(t)},n)}return await new y((t,s)=>r(e.createReader(),t,s)),{[Symbol.iterator](){let e=0;return{next(){const r={value:t[e],done:e==t.length};return e++,r}}}}})(e);t.values=()=>r}return t}function Is(e){e.entries=[],e.root=new Ws(e)}function Hs(e,t,r,s){if(e.directory)return s?new Ws(e.fs,t,r,e):new Us(e.fs,t,r,e);throw new p("Parent entry is not a directory")}e.fs=_s});
|
|
1
|
+
((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).zip={})})(this,function(e){"use strict";const{Array:t,Object:r,String:s,Number:n,BigInt:a,Math:i,Date:o,Map:c,Set:l,Response:d,URL:u,Error:p,Uint8Array:f,Uint16Array:h,Uint32Array:w,DataView:m,Blob:g,Promise:y,TextEncoder:b,TextDecoder:z,document:S,crypto:x,btoa:F,TransformStream:D,ReadableStream:k,WritableStream:E,CompressionStream:v,DecompressionStream:A,navigator:R,Worker:C}="undefined"!=typeof globalThis?globalThis:this||self,T=4294967295,U=65535,W=67324752,_=134695760,M=_,N=33639248,B=101010256,O=101075792,I=117853008,L=22,H=21589,P=2048,Z="/",V=30,q=new o(2107,11,31),K=new o(1980,0,1),j=void 0,G="undefined",X="function";let Y=2;try{typeof R!=G&&R.hardwareConcurrency&&(Y=R.hardwareConcurrency)}catch{}const J={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:Y,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,CompressionStream:typeof v!=G&&v,DecompressionStream:typeof A!=G&&A},Q=r.assign({},J);function $(){return Q}function ee(e){return i.max(e.chunkSize,64)}const te="HTTP error ",re="HTTP Range not supported",se="Range",ne="GET",ae="bytes",ie=65536,oe="writable";class ce{constructor(){this.size=0}init(){this.initialized=!0}}class le extends ce{get readable(){const e=this,{chunkSize:t=ie}=e,r=new k({start(){this.chunkOffset=0},async pull(s){const{offset:n=0,size:a,diskNumberStart:o}=r,{chunkOffset:c}=this,l=a===j?t:i.min(t,a-c),d=await Oe(e,n+c,l,o);s.enqueue(d),c+t>a||a===j&&!d.length&&l?s.close():this.chunkOffset+=t}});return r}}class de extends ce{constructor(){super();const e=this,t=new E({write(t){if(!e.initialized)throw new p("Writer not initialized");return e.writeUint8Array(t)}});r.defineProperty(e,oe,{get:()=>t})}writeUint8Array(){}}class ue extends le{constructor(e){super();let t=e.length;for(;"="==e.charAt(t-1);)t--;const s=e.indexOf(",")+1;r.assign(this,{dataURI:e,dataStart:s,size:i.floor(.75*(t-s))})}readUint8Array(e,t){const{dataStart:r,dataURI:s}=this,n=new f(t),a=4*i.floor(e/3),o=atob(s.substring(a+r,4*i.ceil((e+t)/3)+r)),c=e-3*i.floor(a/4);let l=0;for(let e=c;c+t>e&&e<o.length;e++)n[e-c]=o.charCodeAt(e),l++;return l<n.length?n.subarray(0,l):n}}class pe extends de{constructor(e){super(),r.assign(this,{data:"data:"+(e||"")+";base64,",pending:[]})}writeUint8Array(e){const t=this;let r=0,n=t.pending;const a=t.pending.length;for(t.pending="",r=0;r<3*i.floor((a+e.length)/3)-a;r++)n+=s.fromCharCode(e[r]);for(;r<e.length;r++)t.pending+=s.fromCharCode(e[r]);n.length&&(n.length>2?t.data+=F(n):t.pending+=n)}getData(){return this.data+F(this.pending)}}class fe extends le{constructor(e){super(),r.assign(this,{blob:e,size:e.size})}async readUint8Array(e,t){const r=this,s=e+t,n=e||s<r.size?r.blob.slice(e,s):r.blob;let a=await n.arrayBuffer();return a.byteLength>t&&(a=a.slice(e,s)),new f(a)}}class he extends ce{constructor(e){super();const t=new D,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(this,oe,{get:()=>t.writable}),this.blob=new d(t.readable,{headers:s}).blob()}getData(){return this.blob}}class we extends fe{constructor(e){super(new g([e],{type:"text/plain"}))}}class me extends he{constructor(e){super(e),r.assign(this,{encoding:e,utf8:!e||"utf-8"==e.toLowerCase()})}async getData(){const{encoding:e,utf8:t}=this,s=await super.getData();if(s.text&&t)return s.text();{const t=new FileReader;return new y((n,a)=>{r.assign(t,{onload:({target:e})=>n(e.result),onerror:()=>a(t.error)}),t.readAsText(s,e)})}}}class ge extends le{constructor(e,t){super(),be(this,e,t)}async init(){await ze(this,Ae,De),super.init()}readUint8Array(e,t){return Se(this,e,t,Ae,De)}}class ye extends le{constructor(e,t){super(),be(this,e,t)}async init(){await ze(this,Re,ke),super.init()}readUint8Array(e,t){return Se(this,e,t,Re,ke)}}function be(e,t,s){const{preventHeadRequest:n,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o}=s;delete(s=r.assign({},s)).preventHeadRequest,delete s.useRangeHeader,delete s.forceRangeRequests,delete s.combineSizeEocd,delete s.useXHR,r.assign(e,{url:t,options:s,preventHeadRequest:n,useRangeHeader:a,forceRangeRequests:i,combineSizeEocd:o})}async function ze(e,t,r){const{url:s,preventHeadRequest:a,useRangeHeader:i,forceRangeRequests:o,combineSizeEocd:c}=e;if((e=>{const{baseURI:t}=$(),{protocol:r}=new u(e,t);return"http:"==r||"https:"==r})(s)&&(i||o)&&(void 0===a||a)){const s=await t(ne,e,xe(e,c?-22:void 0)),a=s.headers.get("Accept-Ranges");if(!(o||a&&a.toLowerCase()==ae))throw new p(re);{let a;c&&(e.eocdCache=new f(await s.arrayBuffer()));const i=s.headers.get("Content-Range");if(i){const e=i.trim().split(/\s*\/\s*/);if(e.length){const t=e[1];t&&"*"!=t&&(a=n(t))}}a===j?await ve(e,t,r):e.size=a}}else await ve(e,t,r)}async function Se(e,t,r,s,n){const{useRangeHeader:a,forceRangeRequests:i,eocdCache:o,size:c,options:l}=e;if(a||i){if(o&&t==c-L&&r==L)return o;if(c>t){t+r>c&&(r=c-t);const n=await s(ne,e,xe(e,t,r));if(206!=n.status)throw new p(re);return new f(await n.arrayBuffer())}return new f}{const{data:s}=e;return s||await n(e,l),new f(e.data.subarray(t,t+r))}}function xe(e,t=0,s=1){return r.assign({},Fe(e),{[se]:ae+"="+(0>t?t:t+"-"+(t+s-1))})}function Fe({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function De(e){await Ee(e,Ae)}async function ke(e){await Ee(e,Re)}async function Ee(e,t){const r=await t(ne,e,Fe(e));e.data=new f(await r.arrayBuffer()),e.size||(e.size=e.data.length)}async function ve(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const s=(await t("HEAD",e,Fe(e))).headers.get("Content-Length");s?e.size=n(s):await r(e,e.options)}}async function Ae(e,{options:t,url:s},n){const a=await fetch(s,r.assign({},t,{method:e,headers:n}));if(400>a.status)return a;throw 416==a.status?new p(re):new p(te+(a.statusText||a.status))}function Re(e,{url:t},s){return new y((n,a)=>{const i=new XMLHttpRequest;if(i.addEventListener("load",()=>{if(400>i.status){const e=[];i.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(t=>{const r=t.trim().split(/\s*:\s*/);r[0]=r[0].trim().replace(/^[a-z]|-[a-z]/g,e=>e.toUpperCase()),e.push(r)}),n({status:i.status,arrayBuffer:()=>i.response,headers:new c(e)})}else a(416==i.status?new p(re):new p(te+(i.statusText||i.status)))},!1),i.addEventListener("error",e=>a(e.detail?e.detail.error:new p("Network error")),!1),i.open(e,t),s)for(const e of r.entries(s))i.setRequestHeader(e[0],e[1]);i.responseType="arraybuffer",i.send()})}class Ce extends le{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR?new ye(e,t):new ge(e,t)})}set size(e){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(e,t){return this.reader.readUint8Array(e,t)}}class Te extends le{constructor(e){super(),e=new f(e.buffer,e.byteOffset,e.byteLength),r.assign(this,{array:e,size:e.length})}readUint8Array(e,t){return this.array.slice(e,e+t)}}class Ue extends de{init(e=0){r.assign(this,{offset:0,array:new f(e)}),super.init()}writeUint8Array(e){const t=this;if(t.offset+e.length>t.array.length){const r=t.array;t.array=new f(r.length+e.length),t.array.set(r)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.array}}class We extends le{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:t}=e;e.lastDiskNumber=0,e.lastDiskOffset=0,await y.all(t.map(async(r,s)=>{await r.init(),s!=t.length-1&&(e.lastDiskOffset+=r.size),e.size+=r.size})),super.init()}async readUint8Array(e,t,r=0){const s=this,{readers:n}=this;let a,o=r;-1==o&&(o=n.length-1);let c=e;for(;n[o]&&c>=n[o].size;)c-=n[o].size,o++;const l=n[o];if(l){const n=l.size;if(c+t>n){const i=n-c;a=new f(t);const o=await Oe(l,c,i);a.set(o,0);const d=await s.readUint8Array(e+i,t-i,r);a.set(d,i),o.length+d.length<t&&(a=a.subarray(0,o.length+d.length))}else a=await Oe(l,c,t)}else a=new f;return s.lastDiskNumber=i.max(o,s.lastDiskNumber),a}}class _e extends ce{constructor(e,t=4294967295){super();const s=this;let n,a,i;r.assign(s,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new E({async write(t){const{availableSize:r}=s;if(i)t.length<r?await c(t):(await c(t.subarray(0,r)),await l(),s.diskOffset+=n.size,s.diskNumber++,i=null,await this.write(t.subarray(r)));else{const{value:r,done:o}=await e.next();if(o&&!r)throw new p("Writer iterator completed too soon");n=r,n.size=0,n.maxSize&&(s.maxSize=n.maxSize),s.availableSize=s.maxSize,await Be(n),a=r.writable,i=a.getWriter(),await this.write(t)}},async close(){await i.ready,await l()}});async function c(e){const t=e.length;t&&(await i.ready,await i.write(e),n.size+=t,s.size+=t,s.availableSize-=t)}async function l(){await i.close()}r.defineProperty(s,oe,{get:()=>o})}}class Me{constructor(e){return t.isArray(e)&&(e=new We(e)),e instanceof k&&(e={readable:e}),e}}class Ne{constructor(e){return e.writable===j&&typeof e.next==X&&(e=new _e(e)),e instanceof E&&(e={writable:e}),e.size===j&&(e.size=0),e instanceof _e||r.assign(e,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),e}}async function Be(e,t){if(!e.init||e.initialized)return y.resolve();await e.init(t)}function Oe(e,t,r,s){return e.readUint8Array(t,r,s)}const Ie=[];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;Ie[e]=t}class Le{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let r=0,s=0|e.length;s>r;r++)t=t>>>8^Ie[255&(t^e[r])];this.crc=t}get(){return~this.crc}}class He extends D{constructor(){let e;const t=new Le;super({transform(e,r){t.append(e),r.enqueue(e)},flush(){const r=new f(4);new m(r.buffer).setUint32(0,t.get()),e.value=r}}),e=this}}function Pe(e){if(typeof b==G){const t=new f((e=unescape(encodeURIComponent(e))).length);for(let r=0;r<t.length;r++)t[r]=e.charCodeAt(r);return t}return(new b).encode(e)}const Ze={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],s=Ze.getPartial(r);return 32===s?e.concat(t):Ze._shiftRight(t,s,0|r,e.slice(0,e.length-1))},bitLength(e){const t=e.length;if(0===t)return 0;const r=e[t-1];return 32*(t-1)+Ze.getPartial(r)},clamp(e,t){if(32*e.length<t)return e;const r=(e=e.slice(0,i.ceil(t/32))).length;return t&=31,r>0&&t&&(e[r-1]=Ze.partial(t,e[r-1]&2147483648>>t-1,1)),e},partial:(e,t,r)=>32===e?t:(r?0|t:t<<32-e)+1099511627776*e,getPartial:e=>i.round(e/1099511627776)||32,_shiftRight(e,t,r,s){for(void 0===s&&(s=[]);t>=32;t-=32)s.push(r),r=0;if(0===t)return s.concat(e);for(let n=0;n<e.length;n++)s.push(r|e[n]>>>t),r=e[n]<<32-t;const n=e.length?e[e.length-1]:0,a=Ze.getPartial(n);return s.push(Ze.partial(t+a&31,t+a>32?r:s.pop(),1)),s}},Ve={bytes:{fromBits(e){const t=Ze.bitLength(e)/8,r=new f(t);let s;for(let n=0;t>n;n++)3&n||(s=e[n/4]),r[n]=s>>>24,s<<=8;return r},toBits(e){const t=[];let r,s=0;for(r=0;r<e.length;r++)s=s<<8|e[r],3&~r||(t.push(s),s=0);return 3&r&&t.push(Ze.partial(8*(3&r),s)),t}}},qe=class{constructor(e){const t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],e?(t._h=e._h.slice(0),t._buffer=e._buffer.slice(0),t._length=e._length):t.reset()}reset(){const e=this;return e._h=e._init.slice(0),e._buffer=[],e._length=0,e}update(e){const t=this;"string"==typeof e&&(e=Ve.utf8String.toBits(e));const r=t._buffer=Ze.concat(t._buffer,e),s=t._length,n=t._length=s+Ze.bitLength(e);if(n>9007199254740991)throw new p("Cannot hash more than 2^53 - 1 bits");const a=new w(r);let i=0;for(let e=t.blockSize+s-(t.blockSize+s&t.blockSize-1);n>=e;e+=t.blockSize)t._block(a.subarray(16*i,16*(i+1))),i+=1;return r.splice(0,16*i),t}finalize(){const e=this;let t=e._buffer;const r=e._h;t=Ze.concat(t,[Ze.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(i.floor(e._length/4294967296)),t.push(0|e._length);t.length;)e._block(t.splice(0,16));return e.reset(),r}_f(e,t,r,s){return e>19?e>39?e>59?e>79?void 0:t^r^s:t&r|t&s|r&s:t^r^s:t&r|~t&s}_S(e,t){return t<<e|t>>>32-e}_block(e){const r=this,s=r._h,n=t(80);for(let t=0;16>t;t++)n[t]=e[t];let a=s[0],o=s[1],c=s[2],l=s[3],d=s[4];for(let e=0;79>=e;e++){16>e||(n[e]=r._S(1,n[e-3]^n[e-8]^n[e-14]^n[e-16]));const t=r._S(5,a)+r._f(e,o,c,l)+d+n[e]+r._key[i.floor(e/20)]|0;d=l,l=c,c=r._S(30,o),o=a,a=t}s[0]=s[0]+a|0,s[1]=s[1]+o|0,s[2]=s[2]+c|0,s[3]=s[3]+l|0,s[4]=s[4]+d|0}},Ke={getRandomValues(e){const t=new w(e.buffer),r=e=>{let t=987654321;const r=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&r,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&r)&r)/4294967296+.5)*(i.random()>.5?1:-1))};for(let s,n=0;n<e.length;n+=4){const e=r(4294967296*(s||i.random()));s=987654071*e(),t[n/4]=4294967296*e()|0}return e}},je={importKey:e=>new je.hmacSha1(Ve.bytes.toBits(e)),pbkdf2(e,t,r,s){if(r=r||1e4,0>s||0>r)throw new p("invalid params to pbkdf2");const n=1+(s>>5)<<2;let a,i,o,c,l;const d=new ArrayBuffer(n),u=new m(d);let f=0;const h=Ze;for(t=Ve.bytes.toBits(t),l=1;(n||1)>f;l++){for(a=i=e.encrypt(h.concat(t,[l])),o=1;r>o;o++)for(i=e.encrypt(i),c=0;c<i.length;c++)a[c]^=i[c];for(o=0;(n||1)>f&&o<a.length;o++)u.setInt32(f,a[o]),f+=4}return d.slice(0,s/8)},hmacSha1:class{constructor(e){const t=this,r=t._hash=qe,s=[[],[]];t._baseHash=[new r,new r];const n=t._baseHash[0].blockSize/32;e.length>n&&(e=(new r).update(e).finalize());for(let t=0;n>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 r(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(),r=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),r}encrypt(e){if(this._updated)throw new p("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},Ge=typeof x!=G&&typeof x.getRandomValues==X,Xe="Invalid password",Ye="Invalid signature",Je="zipjs-abort-check-password";function Qe(e){return Ge?x.getRandomValues(e):Ke.getRandomValues(e)}const $e=16,et={name:"PBKDF2"},tt=r.assign({hash:{name:"HMAC"}},et),rt=r.assign({iterations:1e3,hash:{name:"SHA-1"}},et),st=["deriveBits"],nt=[8,12,16],at=[16,24,32],it=10,ot=[0,0,0,0],ct=typeof x!=G,lt=ct&&x.subtle,dt=ct&&typeof lt!=G,ut=Ve.bytes,pt=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const r=t._tables[0][4],s=t._tables[1],n=e.length;let a,i,o,c=1;if(4!==n&&6!==n&&8!==n)throw new p("invalid aes key size");for(t._key=[i=e.slice(0),o=[]],a=n;4*n+28>a;a++){let e=i[a-1];(a%n===0||8===n&&a%n===4)&&(e=r[e>>>24]<<24^r[e>>16&255]<<16^r[e>>8&255]<<8^r[255&e],a%n===0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),i[a]=i[a-n]^e}for(let e=0;a;e++,a--){const t=i[3&e?a:a-4];o[e]=4>=a||4>e?t:s[0][r[t>>>24]]^s[1][r[t>>16&255]]^s[2][r[t>>8&255]]^s[3][r[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],r=e[4],s=t[4],n=[],a=[];let i,o,c,l;for(let e=0;256>e;e++)a[(n[e]=e<<1^283*(e>>7))^e]=e;for(let d=i=0;!r[d];d^=o||1,i=a[i]||1){let a=i^i<<1^i<<2^i<<3^i<<4;a=a>>8^255&a^99,r[d]=a,s[a]=d,l=n[c=n[o=n[d]]];let u=16843009*l^65537*c^257*o^16843008*d,p=257*n[a]^16843008*a;for(let r=0;4>r;r++)e[r][d]=p=p<<24^p>>>8,t[r][a]=u=u<<24^u>>>8}for(let r=0;5>r;r++)e[r]=e[r].slice(0),t[r]=t[r].slice(0)}_crypt(e,t){if(4!==e.length)throw new p("invalid aes block size");const r=this._key[t],s=r.length/4-2,n=[0,0,0,0],a=this._tables[t],i=a[0],o=a[1],c=a[2],l=a[3],d=a[4];let u,f,h,w=e[0]^r[0],m=e[t?3:1]^r[1],g=e[2]^r[2],y=e[t?1:3]^r[3],b=4;for(let e=0;s>e;e++)u=i[w>>>24]^o[m>>16&255]^c[g>>8&255]^l[255&y]^r[b],f=i[m>>>24]^o[g>>16&255]^c[y>>8&255]^l[255&w]^r[b+1],h=i[g>>>24]^o[y>>16&255]^c[w>>8&255]^l[255&m]^r[b+2],y=i[y>>>24]^o[w>>16&255]^c[m>>8&255]^l[255&g]^r[b+3],b+=4,w=u,m=f,g=h;for(let e=0;4>e;e++)n[t?3&-e:e]=d[w>>>24]<<24^d[m>>16&255]<<16^d[g>>8&255]<<8^d[255&y]^r[b++],u=w,w=m,m=g,g=y,y=u;return n}},ft=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))e+=1<<24;else{let t=e>>16&255,r=e>>8&255,s=255&e;255===t?(t=0,255===r?(r=0,255===s?s=0:++s):++r):++t,e=0,e+=t<<16,e+=r<<8,e+=s}return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,r){let s;if(!(s=t.length))return[];const n=Ze.bitLength(t);for(let n=0;s>n;n+=4){this.incCounter(r);const s=e.encrypt(r);t[n]^=s[0],t[n+1]^=s[1],t[n+2]^=s[2],t[n+3]^=s[3]}return Ze.clamp(t,n)}},ht=je.hmacSha1;let wt=ct&&dt&&typeof lt.importKey==X,mt=ct&&dt&&typeof lt.deriveBits==X;class gt extends D{constructor({password:e,rawPassword:t,signed:s,encryptionStrength:n,checkPasswordOnly:a}){super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:St(e,t),signed:s,strength:n-1,pending:new f})},async transform(e,t){const r=this,{password:s,strength:n,resolveReady:i,ready:o}=r;s?(await(async(e,t,r,s)=>{const n=await zt(e,t,r,Ft(s,0,nt[t])),a=Ft(s,nt[t]);if(n[0]!=a[0]||n[1]!=a[1])throw new p(Xe)})(r,n,s,Ft(e,0,nt[n]+2)),e=Ft(e,nt[n]+2),a?t.error(new p(Je)):i()):await o;const c=new f(e.length-it-(e.length-it)%$e);t.enqueue(bt(r,e,c,0,it,!0))},async flush(e){const{signed:t,ctr:r,hmac:s,pending:n,ready:a}=this;if(s&&r){await a;const i=Ft(n,0,n.length-it),o=Ft(n,n.length-it);let c=new f;if(i.length){const e=kt(ut,i);s.update(e);const t=r.update(e);c=Dt(ut,t)}if(t){const e=Ft(Dt(ut,s.digest()),0,it);for(let t=0;it>t;t++)if(e[t]!=o[t])throw new p(Ye)}e.enqueue(c)}}})}}class yt extends D{constructor({password:e,rawPassword:t,encryptionStrength:s}){let n;super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:St(e,t),strength:s-1,pending:new f})},async transform(e,t){const r=this,{password:s,strength:n,resolveReady:a,ready:i}=r;let o=new f;s?(o=await(async(e,t,r)=>{const s=Qe(new f(nt[t]));return xt(s,await zt(e,t,r,s))})(r,n,s),a()):await i;const c=new f(o.length+e.length-e.length%$e);c.set(o,0),t.enqueue(bt(r,e,c,o.length,0))},async flush(e){const{ctr:t,hmac:r,pending:s,ready:a}=this;if(r&&t){await a;let i=new f;if(s.length){const e=t.update(kt(ut,s));r.update(e),i=Dt(ut,e)}n.signature=Dt(ut,r.digest()).slice(0,it),e.enqueue(xt(i,n.signature))}}}),n=this}}function bt(e,t,r,s,n,a){const{ctr:i,hmac:o,pending:c}=e,l=t.length-n;let d;for(c.length&&(t=xt(c,t),r=((e,t)=>{if(t&&t>e.length){const r=e;(e=new f(t)).set(r,0)}return e})(r,l-l%$e)),d=0;l-$e>=d;d+=$e){const e=kt(ut,Ft(t,d,d+$e));a&&o.update(e);const n=i.update(e);a||o.update(n),r.set(Dt(ut,n),d+s)}return e.pending=Ft(t,d),r}async function zt(e,s,n,a){e.password=null;const i=await(async(e,t,r,s,n)=>{if(!wt)return je.importKey(t);try{return await lt.importKey("raw",t,r,!1,n)}catch{return wt=!1,je.importKey(t)}})(0,n,tt,0,st),o=await(async(e,t,r)=>{if(!mt)return je.pbkdf2(t,e.salt,rt.iterations,r);try{return await lt.deriveBits(e,t,r)}catch{return mt=!1,je.pbkdf2(t,e.salt,rt.iterations,r)}})(r.assign({salt:a},rt),i,8*(2*at[s]+2)),c=new f(o),l=kt(ut,Ft(c,0,at[s])),d=kt(ut,Ft(c,at[s],2*at[s])),u=Ft(c,2*at[s]);return r.assign(e,{keys:{key:l,authentication:d,passwordVerification:u},ctr:new ft(new pt(l),t.from(ot)),hmac:new ht(d)}),u}function St(e,t){return t===j?Pe(e):t}function xt(e,t){let r=e;return e.length+t.length&&(r=new f(e.length+t.length),r.set(e,0),r.set(t,e.length)),r}function Ft(e,t,r){return e.subarray(t,r)}function Dt(e,t){return e.fromBits(t)}function kt(e,t){return e.toBits(t)}class Et extends D{constructor({password:e,passwordVerification:t,checkPasswordOnly:s}){super({start(){r.assign(this,{password:e,passwordVerification:t}),Ct(this,e)},transform(e,t){const r=this;if(r.password){const t=At(r,e.subarray(0,12));if(r.password=null,t.at(-1)!=r.passwordVerification)throw new p(Xe);e=e.subarray(12)}s?t.error(new p(Je)):t.enqueue(At(r,e))}})}}class vt extends D{constructor({password:e,passwordVerification:t}){super({start(){r.assign(this,{password:e,passwordVerification:t}),Ct(this,e)},transform(e,t){const r=this;let s,n;if(r.password){r.password=null;const t=Qe(new f(12));t[11]=r.passwordVerification,s=new f(e.length+t.length),s.set(Rt(r,t),0),n=12}else s=new f(e.length),n=0;s.set(Rt(r,e),n),t.enqueue(s)}})}}function At(e,t){const r=new f(t.length);for(let s=0;s<t.length;s++)r[s]=Ut(e)^t[s],Tt(e,r[s]);return r}function Rt(e,t){const r=new f(t.length);for(let s=0;s<t.length;s++)r[s]=Ut(e)^t[s],Tt(e,t[s]);return r}function Ct(e,t){const s=[305419896,591751049,878082192];r.assign(e,{keys:s,crcKey0:new Le(s[0]),crcKey2:new Le(s[2])});for(let r=0;r<t.length;r++)Tt(e,t.charCodeAt(r))}function Tt(e,t){let[r,s,n]=e.keys;e.crcKey0.append([t]),r=~e.crcKey0.get(),s=_t(i.imul(_t(s+Wt(r)),134775813)+1),e.crcKey2.append([s>>>24]),n=~e.crcKey2.get(),e.keys=[r,s,n]}function Ut(e){const t=2|e.keys[2];return Wt(i.imul(t,1^t)>>>8)}function Wt(e){return 255&e}function _t(e){return 4294967295&e}const Mt="Invalid uncompressed size";class Nt extends D{constructor(e,{chunkSize:t,CompressionStreamZlib:r,CompressionStream:s}){super({});const{compressed:n,encrypted:a,useCompressionStream:i,zipCrypto:o,signed:c,level:l}=e,d=this;let u,p,f=super.readable;a&&!o||!c||(u=new He,f=Lt(f,u)),n&&(f=It(f,i,{level:l,chunkSize:t},s,r,s)),a&&(o?f=Lt(f,new vt(e)):(p=new yt(e),f=Lt(f,p))),Ot(d,f,()=>{let e;a&&!o&&(e=p.signature),a&&!o||!c||(e=new m(u.value.buffer).getUint32(0)),d.signature=e})}}class Bt extends D{constructor(e,{chunkSize:t,DecompressionStreamZlib:r,DecompressionStream:s}){super({});const{zipCrypto:n,encrypted:a,signed:i,signature:o,compressed:c,useCompressionStream:l,deflate64:d}=e;let u,f,h=super.readable;a&&(n?h=Lt(h,new Et(e)):(f=new gt(e),h=Lt(h,f))),c&&(h=It(h,l,{chunkSize:t,deflate64:d},s,r,s)),a&&!n||!i||(u=new He,h=Lt(h,u)),Ot(this,h,()=>{if((!a||n)&&i){const e=new m(u.value.buffer);if(o!=e.getUint32(0,!1))throw new p(Ye)}})}}function Ot(e,t,s){t=Lt(t,new D({flush:s})),r.defineProperty(e,"readable",{get:()=>t})}function It(e,t,r,s,n,a){const i=t&&s?s:n||a,o=r.deflate64?"deflate64-raw":"deflate-raw";try{e=Lt(e,new i(o,r))}catch(s){if(!t)throw s;if(n)e=Lt(e,new n(o,r));else{if(!a)throw s;e=Lt(e,new a(o,r))}}return e}function Lt(e,t){return e.pipeThrough(t)}const Ht="data",Pt="close",Zt="deflate",Vt="inflate";class qt extends D{constructor(e,t){super({});const s=this,{codecType:n}=e;let a;n.startsWith(Zt)?a=Nt:n.startsWith(Vt)&&(a=Bt),s.outputSize=0;let i=0;const o=new a(e,t),c=super.readable,l=new D({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){r.assign(s,{inputSize:i})}}),d=new D({transform(t,r){if(t&&t.length&&(r.enqueue(t),s.outputSize+=t.length,e.outputSize!==j&&s.outputSize>e.outputSize))throw new p(Mt)},flush(){const{signature:e}=o;r.assign(s,{signature:e,inputSize:i})}});r.defineProperty(s,"readable",{get:()=>c.pipeThrough(l).pipeThrough(o).pipeThrough(d)})}}class Kt extends D{constructor(e){let t;super({transform:function r(s,n){if(t){const e=new f(t.length+s.length);e.set(t),e.set(s,t.length),s=e,t=null}s.length>e?(n.enqueue(s.slice(0,e)),r(s.slice(e),n)):t=s},flush(e){t&&t.length&&e.enqueue(t)}})}}let jt=typeof C!=G;class Gt{constructor(e,{readable:t,writable:s},{options:n,config:a,streamOptions:i,useWebWorkers:o,transferStreams:c,workerURI:l},d){const{signal:u}=i;return r.assign(e,{busy:!0,readable:t.pipeThrough(new Kt(a.chunkSize)).pipeThrough(new Xt(i),{signal:u}),writable:s,options:r.assign({},n),workerURI:l,transferStreams:c,terminate:()=>new y(t=>{const{worker:r,busy:s}=e;r?(s?e.resolveTerminated=t:(r.terminate(),t()),e.interface=null):t()}),onTaskFinished(){const{resolveTerminated:t}=e;t&&(e.resolveTerminated=null,e.terminated=!0,e.worker.terminate(),t()),e.busy=!1,d(e)}}),(o&&jt?Qt:Jt)(e,a)}}class Xt extends D{constructor({onstart:e,onprogress:t,size:r,onend:s}){let n=0;super({async start(){e&&await Yt(e,r)},async transform(e,s){n+=e.length,t&&await Yt(t,n,r),s.enqueue(e)},async flush(){s&&await Yt(s,n)}})}}async function Yt(e,...t){try{await e(...t)}catch{}}function Jt(e,t){return{run:()=>(async({options:e,readable:t,writable:r,onTaskFinished:s},n)=>{let a;try{if(!e.useCompressionStream)try{await void 0}catch{e.useCompressionStream=!0}a=new qt(e,n),await t.pipeThrough(a).pipeTo(r,{preventClose:!0,preventAbort:!0});const{signature:s,inputSize:i,outputSize:o}=a;return{signature:s,inputSize:i,outputSize:o}}catch(e){throw a&&(e.outputSize=a.outputSize),e}finally{s()}})(e,t)}}function Qt(e,t){const{baseURI:s,chunkSize:n}=t;let{wasmURI:a}=t;if(!e.interface){let i;typeof a==X&&(a=a());try{i=((e,t,s)=>{const n={type:"module"};let a,i;if(typeof e==X&&(e=e()),e.startsWith("data:")||e.startsWith("blob:"))try{i=new C(e)}catch{i=new C(e,n)}else{try{a=new u(e,t)}catch{a=e}i=new C(a,n)}return i.addEventListener("message",e=>(async({data:e},t)=>{const{type:s,value:n,messageId:a,result:i,error:o}=e,{reader:c,writer:l,resolveResult:d,rejectResult:u,onTaskFinished:h}=t;try{if(o){const{message:e,stack:t,code:s,name:n,outputSize:a}=o,i=new p(e);r.assign(i,{stack:t,code:s,name:n,outputSize:a}),w(i)}else{if("pull"==s){const{value:e,done:r}=await c.read();er({type:Ht,value:e,done:r,messageId:a},t)}s==Ht&&(await l.ready,await l.write(new f(n)),er({type:"ack",messageId:a},t)),s==Pt&&w(null,i)}}catch(o){er({type:Pt,messageId:a},t),w(o)}function w(e,t){e?u(e):d(t),l&&l.releaseLock(),h()}})(e,s)),i})(e.workerURI,s,e)}catch{return jt=!1,Jt(e,t)}r.assign(e,{worker:i,interface:{run:()=>(async(e,t)=>{let s,n;const a=new y((e,t)=>{s=e,n=t});r.assign(e,{reader:null,writer:null,resolveResult:s,rejectResult:n,result:a});const{readable:i,options:o}=e,{writable:c,closed:l}=(e=>{let t;const r=new y(e=>t=e);return{writable:new E({async write(t){const r=e.getWriter();await r.ready,await r.write(t),r.releaseLock()},close(){t()},abort:t=>e.getWriter().abort(t)}),closed:r}})(e.writable),d=er({type:"start",options:o,config:t,readable:i,writable:c},e);d||r.assign(e,{reader:i.getReader(),writer:c.getWriter()});const u=await a;return d||await c.getWriter().close(),await l,u})(e,{chunkSize:n,wasmURI:a,baseURI:s})}})}return e.interface}let $t=!0;function er(e,{worker:t,writer:r,onTaskFinished:s,transferStreams:n}){try{const{value:r,readable:s,writable:a}=e,i=[];if(r&&(e.value=r,i.push(e.value.buffer)),n&&$t?(s&&i.push(s),a&&i.push(a)):e.readable=e.writable=null,i.length)try{return t.postMessage(e,i),!0}catch{$t=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),s(),e}}let tr=[];const rr=[];let sr=0;async function nr(e,t){const{options:r,config:s}=t,{transferStreams:a,useWebWorkers:i,useCompressionStream:o,compressed:c,signed:l,encrypted:d}=r,{workerURI:u,maxWorkers:p}=s;t.transferStreams=a||a===j;const f=!(c||l||d||t.transferStreams);return t.useWebWorkers=!f&&(i||i===j&&s.useWebWorkers),t.workerURI=t.useWebWorkers&&u?u:j,r.useCompressionStream=o||o===j&&s.useCompressionStream,(await(async()=>{const r=tr.find(e=>!e.busy);if(r)return ar(r),new Gt(r,e,t,h);if(tr.length<p){const r={indexWorker:sr};return sr++,tr.push(r),new Gt(r,e,t,h)}return new y(r=>rr.push({resolve:r,stream:e,workerOptions:t}))})()).run();function h(e){if(rr.length){const[{resolve:t,stream:r,workerOptions:s}]=rr.splice(0,1);t(new Gt(e,r,s,h))}else e.worker?(ar(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:s}=r;n.isFinite(s)&&s>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{tr=tr.filter(t=>t!=e);try{await e.terminate()}catch{}},s))})(e,t)):tr=tr.filter(t=>t!=e)}}function ar(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}const ir="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function or(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=ir[e[r]];return t}})(e):new z(t).decode(e)}const cr="filename",lr="rawFilename",dr="comment",ur="rawComment",pr="uncompressedSize",fr="compressedSize",hr="offset",wr="diskNumberStart",mr="lastModDate",gr="rawLastModDate",yr="lastAccessDate",br="creationDate",zr="internalFileAttributes",Sr="externalFileAttributes",xr="msDosCompatible",Fr="zip64",Dr="encrypted",kr="version",Er="versionMadeBy",vr="zipCrypto",Ar="directory",Rr="executable",Cr="compressionMethod",Tr="signature",Ur="extraField",Wr=[cr,lr,fr,pr,mr,gr,dr,ur,yr,br,hr,wr,wr,zr,Sr,xr,Fr,Dr,kr,Er,vr,Ar,Rr,Cr,Tr,Ur,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class _r{constructor(e){Wr.forEach(t=>this[t]=e[t])}}const Mr="password",Nr="rawPassword",Br="passThrough",Or="signal",Ir="useWebWorkers",Lr="useCompressionStream",Hr="preventClose",Pr="supportZip64SplitFile",Zr="offset",Vr="usdz",qr="File format is not recognized",Kr="Compression method not supported",jr="Split zip file",Gr="utf-8",Xr="cp437",Yr=[[pr,T],[fr,T],[hr,T],[wr,U]],Jr={[U]:{getValue:cs,bytes:4},[T]:{getValue:ls,bytes:8}};class Qr{constructor(e,t={}){r.assign(this,{reader:new Me(e),options:t,config:$(),readRanges:[]})}async*getEntriesGenerator(e={}){const t=this;let{reader:s}=t;const{config:n}=t;if(await Be(s),s.size!==j&&s.readUint8Array||(s=new fe(await new d(s.readable).blob()),await Be(s)),s.size<L)throw new p(qr);s.chunkSize=ee(n);const a=await(async(e,t,r)=>{const s=new f(4);var n;return n=t,ds(s).setUint32(0,n,!0),await a(22)||await a(i.min(1048582,r));async function a(t){const n=r-t,a=await Oe(e,n,t);for(let e=a.length-22;e>=0;e--)if(a[e]==s[0]&&a[e+1]==s[1]&&a[e+2]==s[2]&&a[e+3]==s[3])return{offset:n+e,buffer:a.slice(e,e+22).buffer}}})(s,B,s.size);if(!a)throw cs(ds(await Oe(s,0,4)))==_?new p(jr):new p("End of central directory not found");const o=ds(a);let c=cs(o,12),l=cs(o,16);const u=a.offset,h=os(o,20),w=u+L+h;let m=os(o,4);const g=s.lastDiskNumber||0;let b=os(o,6),z=os(o,8),S=0,x=0;if(l==T||c==T||z==U||b==U){const e=ds(await Oe(s,a.offset-20,20));if(cs(e,0)==I){l=ls(e,8);let t=await Oe(s,l,56,-1),r=ds(t);const n=a.offset-20-56;if(cs(r,0)!=O&&l!=n){const e=l;l=n,l>e&&(S=l-e),t=await Oe(s,l,56,-1),r=ds(t)}if(cs(r,0)!=O)throw new p("End of Zip64 central directory locator not found");m==U&&(m=cs(r,16)),b==U&&(b=cs(r,20)),z==U&&(z=ls(r,32)),c==T&&(c=ls(r,40)),l-=c}}if(l<s.size||(S=s.size-l-c-L,l=s.size-c-L),g!=m)throw new p(jr);if(0>l)throw new p(qr);let F=0,k=await Oe(s,l,c,b),E=ds(k);if(c){const e=a.offset-c;if(cs(E,F)!=N&&l!=e){const t=l;l=e,l>t&&(S+=l-t),k=await Oe(s,l,c,b),E=ds(k)}}const v=a.offset-l-(s.lastDiskOffset||0);if(c==v||0>v||(c=v,k=await Oe(s,l,c,b),E=ds(k)),0>l||l>=s.size)throw new p(qr);const A=ss(t,e,"filenameEncoding"),R=ss(t,e,"commentEncoding");for(let a=0;z>a;a++){const o=new $r(s,n,t.options);if(cs(E,F)!=N)throw new p("Central directory header not found");es(o,E,F+6);const c=!!o.bitFlag.languageEncodingFlag,l=F+46,u=l+o.filenameLength,f=u+o.extraFieldLength,h=os(E,F+4),w=!(h>>8),m=h>>8==3,g=k.subarray(l,u),b=os(E,F+32),v=f+b,C=k.subarray(f,v),T=c,U=c,W=cs(E,F+38),_=w&&!(16&~is(E,F+38))||m&&16384==(W>>16&61440)||g.length&&47==g.at(-1),M=m&&!!(W>>16&73),B=cs(E,F+42)+S;r.assign(o,{versionMadeBy:h,msDosCompatible:w,compressedSize:0,uncompressedSize:0,commentLength:b,directory:_,offset:B,diskNumberStart:os(E,F+34),internalFileAttributes:os(E,F+36),externalFileAttributes:W,rawFilename:g,filenameUTF8:T,commentUTF8:U,rawExtraField:k.subarray(u,f),executable:M}),o.internalFileAttribute=o.internalFileAttributes,o.externalFileAttribute=o.externalFileAttributes;const O=ss(t,e,"decodeText")||or,I=T?Gr:A||Xr,L=U?Gr:R||Xr;let H=O(g,I);H===j&&(H=or(g,I));let P=O(C,L);P===j&&(P=or(C,L)),r.assign(o,{rawComment:C,filename:H,comment:P,directory:_||H.endsWith(Z)}),x=i.max(B,x),ts(o,o,E,F+6),o.zipCrypto=o.encrypted&&!o.extraFieldAES;const V=new _r(o);V.getData=(e,r)=>o.getData(e,V,t.readRanges,r),V.arrayBuffer=async e=>{const r=new D,[s]=await y.all([new d(r.readable).arrayBuffer(),o.getData(r,V,t.readRanges,e)]);return s},F=v;const{onprogress:q}=e;if(q)try{await q(a+1,z,new _r(o))}catch{}yield V}const C=ss(t,e,"extractPrependedData"),W=ss(t,e,"extractAppendedData");return C&&(t.prependedData=x>0?await Oe(s,0,x):new f),t.comment=h?await Oe(s,u+L,h):new f,W&&(t.appendedData=w<s.size?await Oe(s,w,s.size-w):new f),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}let $r=class{constructor(e,t,s){r.assign(this,{reader:e,config:t,options:s})}async getData(e,t,s,n={}){const a=this,{reader:i,offset:o,diskNumberStart:c,extraFieldAES:l,extraFieldZip64:d,compressionMethod:u,config:h,bitFlag:w,signature:m,rawLastModDate:g,uncompressedSize:y,compressedSize:b}=a,{dataDescriptor:z}=w,S=t.localDirectory={},x=ds(await Oe(i,o,V,c));let F=ss(a,n,Mr),D=ss(a,n,Nr);const k=ss(a,n,Br);if(F=F&&F.length&&F,D=D&&D.length&&D,l&&99!=l.originalCompressionMethod)throw new p(Kr);if(0!=u&&8!=u&&9!=u&&!k)throw new p(Kr);if(cs(x,0)!=W)throw new p("Local file header not found");es(S,x,4);const{extraFieldLength:v,filenameLength:A,lastAccessDate:R,creationDate:C}=S;S.rawExtraField=v?await Oe(i,o+V+A,v,c):new f,ts(a,S,x,4,!0),r.assign(t,{lastAccessDate:R,creationDate:C});const T=a.encrypted&&S.encrypted&&!k,U=T&&!l;if(k||(t.zipCrypto=U),T){if(!U&&l.strength===j)throw new p("Encryption method not supported");if(!F&&!D)throw new p("File contains encrypted entry")}const _=o+V+A+v,N=b,B=i.readable;r.assign(B,{diskNumberStart:c,offset:_,size:N});const O=ss(a,n,Or),I=ss(a,n,"checkPasswordOnly");let L=ss(a,n,"checkOverlappingEntry");const H=ss(a,n,"checkOverlappingEntryOnly");H&&(L=!0);const{onstart:P,onprogress:Z,onend:q}=n,K=9==u;let G=ss(a,n,Lr);K&&(G=!1);const X={options:{codecType:Vt,password:F,rawPassword:D,zipCrypto:U,encryptionStrength:l&&l.strength,signed:ss(a,n,"checkSignature")&&!k,passwordVerification:U&&(z?g>>>8&255:m>>>24&255),outputSize:k?b:y,signature:m,compressed:0!=u&&!k,encrypted:a.encrypted&&!k,useWebWorkers:ss(a,n,Ir),useCompressionStream:G,transferStreams:ss(a,n,"transferStreams"),deflate64:K,checkPasswordOnly:I},config:h,streamOptions:{signal:O,size:N,onstart:P,onprogress:Z,onend:q}};let Y;L&&await(async({reader:e,fileEntry:t,offset:r,diskNumberStart:s,signature:n,compressedSize:a,uncompressedSize:i,dataOffset:o,dataDescriptor:c,extraFieldZip64:l,readRanges:d})=>{let u=0;if(s)for(let t=0;s>t;t++)u+=e.readers[t].size;let f=0;if(c&&(f=l?20:12),f){const r=await Oe(e,o+a,f+4,s);if(cs(ds(r),0)==M){const e=cs(ds(r),4);let s,o;l?(s=ls(ds(r),8),o=ls(ds(r),16)):(s=cs(ds(r),8),o=cs(ds(r),12)),(t.encrypted&&!t.zipCrypto||e==n)&&s==a&&o==i&&(f+=4)}}const h={start:u+r,end:u+o+a+f,fileEntry:t};for(const e of d)if(e.fileEntry!=t&&h.start>=e.start&&h.start<e.end){const t=new p("Overlapping entry found");throw t.overlappingEntry=e.fileEntry,t}d.push(h)})({reader:i,fileEntry:t,offset:o,diskNumberStart:c,signature:m,compressedSize:b,uncompressedSize:y,dataOffset:_,dataDescriptor:z||S.bitFlag.dataDescriptor,extraFieldZip64:d||S.extraFieldZip64,readRanges:s});try{if(!H){I&&(e=new E),e=new Ne(e),await Be(e,k?b:y),({writable:Y}=e);const{outputSize:t}=await nr({readable:B,writable:Y},X);if(e.size+=t,t!=(k?b:y))throw new p(Mt)}}catch(t){if(t.outputSize!==j&&(e.size+=t.outputSize),!I||t.message!=Je)throw t}finally{ss(a,n,Hr)||!Y||Y.locked||await Y.getWriter().close()}return I||H?j:e.getData?e.getData():Y}};function es(e,t,s){const n=e.rawBitFlag=os(t,s+2),a=!(1&~n),i=cs(t,s+6);r.assign(e,{encrypted:a,version:os(t,s),bitFlag:{level:(6&n)>>1,dataDescriptor:!(8&~n),languageEncodingFlag:(n&P)==P},rawLastModDate:i,lastModDate:ns(i),filenameLength:os(t,s+22),extraFieldLength:os(t,s+24)})}function ts(e,t,s,n,a){const{rawExtraField:i}=t,l=t.extraField=new c,d=ds(new f(i));let u=0;try{for(;u<i.length;){const e=os(d,u),t=os(d,u+2);l.set(e,{type:e,data:i.slice(u+4,u+4+t)}),u+=4+t}}catch{}const h=os(s,n+4);r.assign(t,{signature:cs(s,n+10),compressedSize:cs(s,n+14),uncompressedSize:cs(s,n+18)});const w=l.get(1);w&&(((e,t)=>{t.zip64=!0;const r=ds(e.data),s=Yr.filter(([e,r])=>t[e]==r);for(let n=0,a=0;n<s.length;n++){const[i,o]=s[n];if(t[i]==o){const s=Jr[o];t[i]=e[i]=s.getValue(r,a),a+=s.bytes}else if(e[i])throw new p("Zip64 extra field not found")}})(w,t),t.extraFieldZip64=w);const m=l.get(28789);m&&(rs(m,cr,lr,t,e),t.extraFieldUnicodePath=m);const g=l.get(25461);g&&(rs(g,dr,ur,t,e),t.extraFieldUnicodeComment=g);const y=l.get(39169);y?(((e,t,s)=>{const n=ds(e.data),a=is(n,4);r.assign(e,{vendorVersion:is(n,0),vendorId:is(n,2),strength:a,originalCompressionMethod:s,compressionMethod:os(n,5)}),t.compressionMethod=e.compressionMethod})(y,t,h),t.extraFieldAES=y):t.compressionMethod=h;const b=l.get(10);b&&(((e,t)=>{const s=ds(e.data);let n,a=4;try{for(;a<e.data.length&&!n;){const t=os(s,a),r=os(s,a+2);1==t&&(n=e.data.slice(a+4,a+4+r)),a+=4+r}}catch{}try{if(n&&24==n.length){const s=ds(n),a=s.getBigUint64(0,!0),i=s.getBigUint64(8,!0),o=s.getBigUint64(16,!0);r.assign(e,{rawLastModDate:a,rawLastAccessDate:i,rawCreationDate:o});const c={lastModDate:as(a),lastAccessDate:as(i),creationDate:as(o)};r.assign(e,c),r.assign(t,c)}}catch{}})(b,t),t.extraFieldNTFS=b);const z=l.get(H);z&&(((e,t,r)=>{const s=ds(e.data),n=is(s,0),a=[],i=[];r?(1&~n||(a.push(mr),i.push(gr)),2&~n||(a.push(yr),i.push("rawLastAccessDate")),4&~n||(a.push(br),i.push("rawCreationDate"))):5>e.data.length||(a.push(mr),i.push(gr));let c=1;a.forEach((r,n)=>{if(e.data.length>=c+4){const a=cs(s,c);t[r]=e[r]=new o(1e3*a);const l=i[n];e[l]=a}c+=4})})(z,t,a),t.extraFieldExtendedTimestamp=z);const S=l.get(6534);S&&(t.extraFieldUSDZ=S)}function rs(e,t,s,n,a){const i=ds(e.data),o=new Le;o.append(a[s]);const c=ds(new f(4));c.setUint32(0,o.get(),!0);const l=cs(i,1);r.assign(e,{version:is(i,0),[t]:or(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==cs(c,0)}),e.valid&&(n[t]=e[t],n[t+"UTF8"]=!0)}function ss(e,t,r){return t[r]===j?e.options[r]:t[r]}function ns(e){const t=(4294901760&e)>>16,r=65535&e;try{return new o(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&r)>>11,(2016&r)>>5,2*(31&r),0)}catch{}}function as(e){return new o(n(e/a(1e4)-a(116444736e5)))}function is(e,t){return e.getUint8(t)}function os(e,t){return e.getUint16(t,!0)}function cs(e,t){return e.getUint32(t,!0)}function ls(e,t){return n(e.getBigUint64(t,!0))}function ds(e){return new m(e.buffer)}const us="Version exceeds 65535",ps="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",fs=new f([7,0,2,0,65,69,3,0,0]);let hs=0;const ws=[];class ms{constructor(e,t={}){const s=(e=new Ne(e)).availableSize!==j&&e.availableSize>0&&e.availableSize!==1/0&&e.maxSize!==j&&e.maxSize>0&&e.maxSize!==1/0;r.assign(this,{writer:e,addSplitZipSignature:s,options:t,config:$(),files:new c,filenames:new l,offset:t[Zr]===j?e.size||e.writable.size||0:t[Zr],pendingEntriesSize:0,pendingAddFileCalls:new l,bufferedWrites:0})}async prependZip(e){if(this.filenames.size)throw new p("Zip file not empty");e=new Me(e);const t=new Qr(e.readable),s=await t.getEntries();await t.close(),await e.readable.pipeTo(this.writer.writable,{preventClose:!0,preventAbort:!0}),this.writer.size=this.offset=e.size,this.filenames=new l(s.map(e=>e.filename)),this.files=new c(s.map(e=>{const{version:t,compressionMethod:s,lastModDate:n,lastAccessDate:a,creationDate:i,rawFilename:o,bitFlag:c,encrypted:l,uncompressedSize:d,compressedSize:u,diskOffset:p,diskNumber:h,zip64:w}=e;let{rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraField:z}=e;const{level:S,languageEncodingFlag:x,dataDescriptor:F}=c;m=m||new f,g=g||new f,y=y||new f,b=b||new f,z=z||new f;const D=As(m,g,y,b,z),k=w&&d>T,E=w&&u>T,{headerArray:v,headerView:A}=Rs({version:t,bitFlag:Cs(S,x,F,l,s),compressionMethod:s,uncompressedSize:d,compressedSize:u,lastModDate:n,rawFilename:o,zip64CompressedSize:E,zip64UncompressedSize:k,extraFieldLength:D});return r.assign(e,{zip64UncompressedSize:k,zip64CompressedSize:E,zip64Offset:w&&this.offset-p>T,zip64DiskNumberStart:w&&h>U,rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraField:z,extendedTimestamp:y.length>0||b.length>0,extraFieldExtendedTimestampFlag:1+(a?2:0)+(i?4:0),headerArray:v,headerView:A}),[e.filename,e]}))}async add(e="",s,n={}){const c=this,{pendingAddFileCalls:l,config:u}=c;let w;hs<u.maxWorkers?hs++:await new y(e=>ws.push(e));try{if(e=e.trim(),c.filenames.has(e))throw new p("File already exists");return c.filenames.add(e),w=(async(e,s,n,c)=>{s=s.trim();const l=zs(e,c,xr),u=zs(e,c,Er,l?20:768),w=zs(e,c,Rr);if(u>U)throw new p(us);let m=zs(e,c,Sr,0);!c[Ar]&&s.endsWith(Z)&&(c[Ar]=!0),zs(e,c,Ar)?(s.endsWith(Z)||(s+=Z),0===m&&(m=16,l||(m|=16877<<16))):l||0!==m||(m=w?493<<16:27525120);const g=zs(e,c,"encodeText",Pe);let b=g(s);if(b===j&&(b=Pe(s)),As(b)>U)throw new p("File entry name exceeds 64KB");const z=c[dr]||"";let S=g(z);if(S===j&&(S=Pe(z)),As(S)>U)throw new p("File entry comment exceeds 64KB");const x=zs(e,c,kr,20);if(x>U)throw new p(us);const F=zs(e,c,mr,new o),k=zs(e,c,yr),E=zs(e,c,br),v=zs(e,c,zr,0),A=zs(e,c,Br);let R,C;A||(R=zs(e,c,Mr),C=zs(e,c,Nr));const N=zs(e,c,"encryptionStrength",3),B=zs(e,c,vr),O=zs(e,c,"extendedTimestamp",!0),I=zs(e,c,"keepOrder",!0),L=zs(e,c,Ir),P=zs(e,c,"bufferedWrite"),G=zs(e,c,"dataDescriptorSignature",!1),X=zs(e,c,Or),Y=zs(e,c,"useUnicodeFileNames",!0),J=zs(e,c,Cr);let Q=zs(e,c,"level"),$=zs(e,c,Lr),te=zs(e,c,"dataDescriptor");P&&te===j&&(te=!1),(te===j||B)&&(te=!0),Q!==j&&6!=Q&&($=!1),$||e.config.CompressionStream!==j||e.config.CompressionStreamZlib!==j||(Q=0);let re=zs(e,c,Fr);if(!B&&(R!==j||C!==j)&&(1>N||N>3))throw new p("The strength must equal 1, 2, or 3");let se=new f;const ne=c[Ur];if(ne){let e=0,t=0;ne.forEach(t=>e+=4+As(t)),se=new f(e),ne.forEach((e,r)=>{if(r>U)throw new p("Extra field type exceeds 65535");if(As(e)>U)throw new p("Extra field data exceeds 64KB");Es(se,new h([r]),t),Es(se,new h([As(e)]),t+2),Es(se,e,t+4),t+=4+As(e)})}let ae=0,ie=0,oe=0;if(A&&(oe=c[pr],oe===j))throw new p("Undefined uncompressed size");const ce=!0===re;n&&(n=new Me(n),await Be(n),A?(c.uncompressedSize=oe,ae=Ss(oe)):n.size===j?(te=!0,(re||re===j)&&(re=!0,oe=ae=4294967296)):(c.uncompressedSize=oe=n.size,ae=Ss(oe)));const{diskOffset:le,diskNumber:de,maxSize:ue}=e.writer,pe=ce||oe>T,fe=ce||ae>T,he=ce||e.offset+e.pendingEntriesSize-le>T,we=zs(e,c,Pr,!0)&&ce||de+i.ceil(e.pendingEntriesSize/ue)>U;if(he||pe||fe||we){if(!1===re||!I)throw new p(ps);re=!0}re=re||!1;const me=zs(e,c,Dr),ge=(e=>{const{rawFilename:t,lastModDate:r,lastAccessDate:s,creationDate:n,level:o,zip64:c,zipCrypto:l,useUnicodeFileNames:d,dataDescriptor:u,directory:p,rawExtraField:h,encryptionStrength:w,extendedTimestamp:m,passThrough:g,encrypted:y,zip64UncompressedSize:b,zip64CompressedSize:z,zip64Offset:S,zip64DiskNumberStart:x,uncompressedSize:F,offset:D,diskNumberStart:k}=e;let{version:E,compressionMethod:v}=e;const A=!p&&(o>0||o===j&&0!==v);let R;const C=g||!A,T=c&&(e.bufferedWrite||!b&&!z||C);if(c){let e=4;b&&(e+=8),z&&(e+=8),S&&(e+=8),x&&(e+=4),R=new f(e);const t=vs(R);if(Fs(t,0,1),Fs(t,2,As(R)-4),T){const e=vs(R);let t=4;b&&(ks(e,t,a(F)),t+=8),z&&C&&(ks(e,t,a(F)),t+=8),S&&(ks(e,t,a(D)),t+=8),x&&(Ds(e,t,k),t+=4)}}else R=new f;let U,_,M,N;if(y&&!l){U=new f(As(fs)+2);const e=vs(U);Fs(e,0,39169),Es(U,fs,2),xs(e,8,w)}else U=new f;if(m){M=new f(9+(s?4:0)+(n?4:0));const e=vs(M);Fs(e,0,H),Fs(e,2,As(M)-4),N=1+(s?2:0)+(n?4:0),xs(e,4,N);let t=5;Ds(e,t,i.floor(r.getTime()/1e3)),t+=4,s&&(Ds(e,t,i.floor(s.getTime()/1e3)),t+=4),n&&Ds(e,t,i.floor(n.getTime()/1e3));try{_=new f(36);const e=vs(_),t=bs(r);Fs(e,0,10),Fs(e,2,32),Fs(e,8,1),Fs(e,10,24),ks(e,12,t),ks(e,20,bs(s)||t),ks(e,28,bs(n)||t)}catch{_=new f}}else _=M=new f;v===j&&(v=A?8:0),c&&(E=E>45?E:45),y&&!l&&(E=E>51?E:51,U[9]=v,v=99);const B=T?As(R):0,O=B+As(U,M,_,h),{headerArray:I,headerView:L,rawLastModDate:P}=Rs({version:E,bitFlag:Cs(o,d,u,y,v),compressionMethod:v,uncompressedSize:F,lastModDate:K>r?K:r>q?q:r,rawFilename:t,zip64CompressedSize:z,zip64UncompressedSize:b,extraFieldLength:O});let Z=V;const G=new f(Z+As(t)+O),X=vs(G);return Ds(X,0,W),Es(G,I,4),Es(G,t,Z),Z+=As(t),T&&Es(G,R,Z),Z+=B,Es(G,U,Z),Z+=As(U),Es(G,M,Z),Z+=As(M),Es(G,_,Z),Z+=As(_),Es(G,h,Z),u&&(Ds(X,18,0),Ds(X,22,0)),{localHeaderArray:G,localHeaderView:X,headerArray:I,headerView:L,lastModDate:r,rawLastModDate:P,encrypted:y,compressed:A,version:E,compressionMethod:v,extraFieldExtendedTimestampFlag:N,rawExtraFieldZip64:R,localExtraFieldZip64Length:B,rawExtraFieldExtendedTimestamp:M,rawExtraFieldNTFS:_,rawExtraFieldAES:U,extraFieldLength:O}})(c=r.assign({},c,{rawFilename:b,rawComment:S,version:x,versionMadeBy:u,lastModDate:F,lastAccessDate:k,creationDate:E,rawExtraField:se,zip64:re,zip64UncompressedSize:pe,zip64CompressedSize:fe,zip64Offset:he,zip64DiskNumberStart:we,password:R,rawPassword:C,level:Q,useWebWorkers:L,encryptionStrength:N,extendedTimestamp:O,zipCrypto:B,bufferedWrite:P,keepOrder:I,useUnicodeFileNames:Y,dataDescriptor:te,dataDescriptorSignature:G,signal:X,msDosCompatible:l,internalFileAttribute:v,internalFileAttributes:v,externalFileAttribute:m,externalFileAttributes:m,useCompressionStream:$,passThrough:A,encrypted:!!(R&&As(R)||C&&As(C))||A&&me,signature:c[Tr],compressionMethod:J,uncompressedSize:oe,offset:e.offset-le,diskNumberStart:de})),ye=(({zip64:e,dataDescriptor:t,dataDescriptorSignature:r})=>{let s,n=new f,a=0,i=e?20:12;return r&&(i+=4),t&&(n=new f(i),s=vs(n),r&&(a=4,Ds(s,0,M))),{dataDescriptorArray:n,dataDescriptorView:s,dataDescriptorOffset:a}})(c),be=As(ge.localHeaderArray,ye.dataDescriptorArray);let ze;ie=be+ae,e.options[Vr]&&(ie+=ie+64),e.pendingEntriesSize+=ie;try{ze=await(async(e,s,n,i,o)=>{const{files:c,writer:l}=e,{keepOrder:u,dataDescriptor:h,signal:w}=o,{headerInfo:m}=i,g=e.options[Vr],b=t.from(c.values()).pop();let z,S,x,F,k,E,v,A={};c.set(s,A);try{let t;u&&(t=b&&b.lock,A.lock=new y(e=>x=e)),!(o.bufferedWrite||e.writerLocked||e.bufferedWrites&&u)&&h||g?(E=l,await R()):(E=new D,E.size=0,z=!0,e.bufferedWrites++,await Be(l)),await Be(E);const{writable:S,diskOffset:U}=l;if(e.addSplitZipSignature){delete e.addSplitZipSignature;const t=new f(4);Ds(vs(t),0,_),await ys(l,t),e.offset+=4}g&&((e,t)=>{const{headerInfo:r}=e;let{localHeaderArray:s,extraFieldLength:n}=r,a=vs(s),i=64-(t+As(s))%64;4>i&&(i+=64);const o=new f(i),c=vs(o);Fs(c,0,6534),Fs(c,2,i-2);const l=s;r.localHeaderArray=s=new f(As(l)+i),Es(s,l),Es(s,o,As(l)),a=vs(s),Fs(a,28,n+i),e.metadataSize+=i})(i,e.offset-U);const{localHeaderView:W,localHeaderArray:M}=m;z||(await t,await C(S));const{diskNumber:N}=l;k=!0,A.diskNumberStart=N,z?v=new d(E.readable).blob():await ys(E,M),A=await(async(e,t,{diskNumberStart:s,lock:n},i,o,c)=>{const{headerInfo:l,dataDescriptorInfo:d,metadataSize:u}=i,{headerArray:p,headerView:f,lastModDate:h,rawLastModDate:w,encrypted:m,compressed:g,version:y,compressionMethod:b,rawExtraFieldZip64:z,localExtraFieldZip64Length:S,rawExtraFieldExtendedTimestamp:x,extraFieldExtendedTimestampFlag:F,rawExtraFieldNTFS:D,rawExtraFieldAES:k}=l,{dataDescriptorArray:E}=d,{rawFilename:v,lastAccessDate:A,creationDate:R,password:C,rawPassword:T,level:U,zip64:W,zip64UncompressedSize:_,zip64CompressedSize:M,zip64Offset:N,zip64DiskNumberStart:B,zipCrypto:O,dataDescriptor:I,directory:L,executable:H,versionMadeBy:P,rawComment:Z,rawExtraField:V,useWebWorkers:q,onstart:K,onprogress:G,onend:X,signal:Y,encryptionStrength:J,extendedTimestamp:Q,msDosCompatible:$,internalFileAttributes:te,externalFileAttributes:re,useCompressionStream:se,passThrough:ne}=c,ae={lock:n,versionMadeBy:P,zip64:W,directory:!!L,executable:!!H,filenameUTF8:!0,rawFilename:v,commentUTF8:!0,rawComment:Z,rawExtraFieldZip64:z,localExtraFieldZip64Length:S,rawExtraFieldExtendedTimestamp:x,rawExtraFieldNTFS:D,rawExtraFieldAES:k,rawExtraField:V,extendedTimestamp:Q,msDosCompatible:$,internalFileAttributes:te,externalFileAttributes:re,diskNumberStart:s};let{signature:ie,uncompressedSize:oe}=c,ce=0;ne||(oe=0);const{writable:le}=t;if(e){e.chunkSize=ee(o);const r=e.readable,s=e.size,n={options:{codecType:Zt,level:U,rawPassword:T,password:C,encryptionStrength:J,zipCrypto:m&&O,passwordVerification:m&&O&&w>>8&255,signed:!ne,compressed:g&&!ne,encrypted:m&&!ne,useWebWorkers:q,useCompressionStream:se,transferStreams:!1},config:o,streamOptions:{signal:Y,size:s,onstart:K,onprogress:G,onend:X}};try{const e=await nr({readable:r,writable:le},n);ce=e.outputSize,t.size+=ce,ne||(oe=e.inputSize,ie=e.signature)}catch(e){throw e.outputSize!==j&&(t.size+=e.outputSize),e}}return(({signature:e,compressedSize:t,uncompressedSize:r,headerInfo:s,dataDescriptorInfo:n},{zip64:i,zipCrypto:o,dataDescriptor:c})=>{const{headerView:l,encrypted:d}=s,{dataDescriptorView:u,dataDescriptorOffset:p}=n;d&&!o||e===j||(Ds(l,10,e),c&&Ds(u,p,e)),i?c&&(ks(u,p+4,a(t)),ks(u,p+12,a(r))):(Ds(l,14,t),Ds(l,18,r),c&&(Ds(u,p+4,t),Ds(u,p+8,r)))})({signature:ie,compressedSize:ce,uncompressedSize:oe,headerInfo:l,dataDescriptorInfo:d},c),I&&await ys(t,E),r.assign(ae,{uncompressedSize:oe,compressedSize:ce,lastModDate:h,rawLastModDate:w,creationDate:R,lastAccessDate:A,encrypted:m,zipCrypto:O,size:u+ce,compressionMethod:b,version:y,headerArray:p,headerView:f,signature:ie,extraFieldExtendedTimestampFlag:F,zip64UncompressedSize:_,zip64CompressedSize:M,zip64Offset:N,zip64DiskNumberStart:B}),ae})(n,E,A,i,e.config,o);const{zip64:B}=A;if(k=!1,c.set(s,A),A.filename=s,z){const[r]=await y.all([v,E.writable.getWriter().close(),t]);await R(),F=!0,A.diskNumberStart=l.diskNumber,A.offset=e.offset-l.diskOffset,B&&gs(A),(({rawFilename:e,encrypted:t,zip64:r,localExtraFieldZip64Length:s,signature:n,compressedSize:i,uncompressedSize:o,offset:c,diskNumberStart:l,zip64UncompressedSize:d,zip64CompressedSize:u,zip64Offset:p,zip64DiskNumberStart:f},h,{dataDescriptor:w})=>{if(w||(t||Ds(h,14,n),r||(Ds(h,18,i),Ds(h,22,o))),r&&s){let t=V+As(e)+4;d&&(ks(h,t,a(o)),t+=8),u&&(ks(h,t,a(i)),t+=8),p&&(ks(h,t,a(c)),t+=8),f&&Ds(h,t,l)}})(A,W,o),await C(S),await ys(l,M),await r.stream().pipeTo(S,{preventClose:!0,preventAbort:!0,signal:w}),l.size+=E.size,F=!1}else A.offset=e.offset-U,B&&gs(A);if(A.offset>T&&!B)throw new p(ps);return e.offset+=A.size,A}catch(t){if(z&&F||!z&&k){if(e.hasCorruptedEntries=!0,t)try{t.corruptedEntry=!0}catch{}z?e.offset+=E.size:e.offset=E.size}throw c.delete(s),t}finally{z&&e.bufferedWrites--,x&&x(),S&&S()}async function R(){e.writerLocked=!0;const{lockWriter:t}=e;e.lockWriter=new y(t=>S=()=>{e.writerLocked=!1,t()}),await t}async function C(e){As(m.localHeaderArray)>l.availableSize&&(l.availableSize=0,await ys(e,new f))}})(e,s,n,{headerInfo:ge,dataDescriptorInfo:ye,metadataSize:be},c)}finally{e.pendingEntriesSize-=ie}return r.assign(ze,{name:s,comment:z,extraField:ne}),new _r(ze)})(c,e,s,n),l.add(w),await w}catch(t){throw c.filenames.delete(e),t}finally{l.delete(w);const e=ws.shift();e?e():hs--}}remove(e){const{filenames:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==j){const{filename:s}=e;if(t.has(s)&&r.has(s))return t.delete(s),r.delete(s),!0}return!1}async close(e=new f,r={}){const{pendingAddFileCalls:s,writer:n}=this,{writable:o}=n;for(;s.size;)await y.allSettled(t.from(s));return await(async(e,r,s)=>{const{files:n,writer:o}=e,{diskOffset:c}=o;let{diskNumber:l}=o,d=0,u=0,h=e.offset-c,w=n.size;for(const[,e]of n){const{rawFilename:t,rawExtraFieldZip64:r,rawExtraFieldAES:s,rawComment:n,rawExtraFieldNTFS:a,rawExtraField:o,extendedTimestamp:c,extraFieldExtendedTimestampFlag:l,lastModDate:d}=e;let p;if(c){p=new f(9);const e=vs(p);Fs(e,0,H),Fs(e,2,5),xs(e,4,l),Ds(e,5,i.floor(d.getTime()/1e3))}else p=new f;e.rawExtraFieldExtendedTimestamp=p,u+=46+As(t,n,r,s,a,p,o)}const m=new f(u),g=vs(m);await Be(o);let y=0;for(const[e,r]of t.from(n.values()).entries()){const{offset:t,rawFilename:a,rawExtraFieldZip64:i,rawExtraFieldAES:c,rawExtraFieldExtendedTimestamp:l,rawExtraFieldNTFS:u,rawExtraField:p,rawComment:f,versionMadeBy:h,headerArray:w,headerView:b,zip64:z,zip64UncompressedSize:S,zip64CompressedSize:x,zip64DiskNumberStart:F,zip64Offset:D,internalFileAttributes:k,externalFileAttributes:E,diskNumberStart:v,uncompressedSize:A,compressedSize:R}=r,C=As(i,c,l,u,p);Ds(g,d,N),Fs(g,d+4,h),S||Ds(b,18,A),x||Ds(b,14,R),Es(m,w,d+6);let W=d+V;if(Fs(g,W,C),W+=2,Fs(g,W,As(f)),W+=2,Fs(g,W,z&&F?U:v),W+=2,Fs(g,W,k),W+=2,E&&Ds(g,W,E),W+=4,Ds(g,W,z&&D?T:t),W+=4,Es(m,a,W),W+=As(a),Es(m,i,W),W+=As(i),Es(m,c,W),W+=As(c),Es(m,l,W),W+=As(l),Es(m,u,W),W+=As(u),Es(m,p,W),W+=As(p),Es(m,f,W),d-y>o.availableSize&&(o.availableSize=0,await ys(o,m.slice(y,d)),y=d),d=W,s.onprogress)try{await s.onprogress(e+1,n.size,new _r(r))}catch{}}await ys(o,y?m.slice(y):m);let b=o.diskNumber;const{availableSize:z}=o;L>z&&b++;let S=zs(e,s,Fr);if(h>T||u>T||w>U||b>U){if(!1===S)throw new p(ps);S=!0}const x=new f(S?98:L),F=vs(x);d=0,S&&(Ds(F,0,O),ks(F,4,a(44)),Fs(F,12,45),Fs(F,14,45),Ds(F,16,b),Ds(F,20,l),ks(F,24,a(w)),ks(F,32,a(w)),ks(F,40,a(u)),ks(F,48,a(h)),Ds(F,56,I),ks(F,64,a(h)+a(u)),Ds(F,72,b+1),zs(e,s,Pr,!0)&&(b=U,l=U),w=U,h=T,u=T,d+=76),Ds(F,d,B),Fs(F,d+4,b),Fs(F,d+6,l),Fs(F,d+8,w),Fs(F,d+10,w),Ds(F,d+12,u),Ds(F,d+16,h);const D=As(r);if(D){if(D>U)throw new p("Zip file comment exceeds 64KB");Fs(F,d+20,D)}await ys(o,x),D&&await ys(o,r)})(this,e,r),zs(this,r,Hr)||await o.getWriter().close(),n.getData?n.getData():o}}function gs({compressedSize:e,uncompressedSize:t,offset:r,diskNumberStart:s,zip64UncompressedSize:n,zip64CompressedSize:i,zip64Offset:o,zip64DiskNumberStart:c,rawExtraFieldZip64:l}){const d=vs(l);let u=4;n&&(ks(d,u,a(t)),u+=8),i&&(ks(d,u,a(e)),u+=8),o&&(ks(d,u,a(r)),u+=8),c&&Ds(d,u,s)}async function ys(e,t){const{writable:r}=e,s=r.getWriter();try{await s.ready,e.size+=As(t),await s.write(t)}finally{s.releaseLock()}}function bs(e){if(e)return(a(e.getTime())+a(116444736e5))*a(1e4)}function zs(e,t,r,s){const n=t[r]===j?e.options[r]:t[r];return n===j?s:n}function Ss(e){return e+5*(i.floor(e/16383)+1)}function xs(e,t,r){e.setUint8(t,r)}function Fs(e,t,r){e.setUint16(t,r,!0)}function Ds(e,t,r){e.setUint32(t,r,!0)}function ks(e,t,r){e.setBigUint64(t,r,!0)}function Es(e,t,r){e.set(t,r)}function vs(e){return new m(e.buffer)}function As(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function Rs({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:s,compressedSize:n,lastModDate:a,rawFilename:i,zip64CompressedSize:o,zip64UncompressedSize:c,extraFieldLength:l}){const d=new f(26),u=vs(d);Fs(u,0,e),Fs(u,2,t),Fs(u,4,r);const p=new w(1),h=vs(p);Fs(h,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),Fs(h,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate());const m=p[0];return Ds(u,6,m),(o||n!==j)&&Ds(u,14,o?T:n),(c||s!==j)&&Ds(u,18,c?T:s),Fs(u,22,As(i)),Fs(u,24,l),{headerArray:d,headerView:u,rawLastModDate:m}}function Cs(e,t,r,s,n){let a=0;return t&&(a|=P),r&&(a|=8),8!=n&&9!=n||(0>e||e>3||(a|=6),e>3&&5>=e&&(a|=4),9==e&&(a|=2)),s&&(a|=1),a}class Ts{constructor(e,t,s,n){const a=this;if(e.root&&n&&n.getChildByName(t))throw new p("Entry filename already exists");s||(s={}),r.assign(a,{fs:e,name:t,data:s.data,options:s.options,id:e.entries.length,parent:n,children:[],uncompressedSize:s.uncompressedSize||0,passThrough:s.passThrough}),e.entries.push(a),n&&a.parent.children.push(a)}moveTo(e){this.fs.move(this,e)}getFullname(){return this.getRelativeName()}getRelativeName(e=this.fs.root){let t=this.name,r=this.parent;for(;r&&r!=e;)t=(r.name?r.name+"/":"")+t,r=r.parent;return t}isDescendantOf(e){let t=this.parent;for(;t&&t.id!=e.id;)t=t.parent;return!!t}rename(e){const t=this.parent;if(t&&t.getChildByName(e))throw new p("Entry filename already exists");this.name=e}}class Us extends Ts{constructor(e,t,r,s){super(e,t,r,s);const n=this;n.Reader=r.Reader,n.Writer=r.Writer,r.getData&&(n.getData=r.getData)}clone(){return new Us(this.fs,this.name,this)}async getData(e,t={}){const r=this;if(!e||e.constructor==r.Writer&&r.data)return r.data;{const s=r.reader=new r.Reader(r.data,t),n=r.data?r.data.uncompressedSize:s.size;await y.all([Be(s),Be(e,n)]);const{readable:a}=s;return r.uncompressedSize=s.size,await a.pipeTo(e.writable),e.getData?e.getData():e.writable}}isPasswordProtected(){return this.data.encrypted}async checkPassword(e,t={}){const r=this;if(!r.isPasswordProtected())return!0;t.password=e,t.checkPasswordOnly=!0;try{return await r.data.getData(null,t),!0}catch(e){if(e.message==Xe)return!1;throw e}}getText(e,t){return this.getData(new me(e),t)}getBlob(e,t){return this.getData(new he(e),t)}getData64URI(e,t){return this.getData(new pe(e),t)}getUint8Array(e){return this.getData(new Ue,e)}getWritable(e=new E,t){return this.getData({writable:e},t)}getArrayBuffer(e){return this.data.arrayBuffer(e)}replaceBlob(e){r.assign(this,{data:e,Reader:fe,Writer:he,reader:null})}replaceText(e){r.assign(this,{data:e,Reader:we,Writer:me,reader:null})}replaceData64URI(e){r.assign(this,{data:e,Reader:ue,Writer:pe,reader:null})}replaceUint8Array(e){r.assign(this,{data:e,Reader:Te,Writer:Ue,reader:null})}replaceReadable(e){r.assign(this,{data:null,Reader:()=>({readable:e}),Writer:null,reader:null})}}class Ws extends Ts{constructor(e,t,r,s){super(e,t,r,s),this.directory=!0}clone(e){const t=this,r=new Ws(t.fs,t.name);return e&&(r.children=t.children.map(t=>{const s=t.clone(e);return s.parent=r,s})),r}addDirectory(e,t){return Hs(this,e,{options:t},!0)}addText(e,t,r={}){return Hs(this,e,{data:t,Reader:we,Writer:me,options:r,uncompressedSize:t.length})}addBlob(e,t,r={}){return Hs(this,e,{data:t,Reader:fe,Writer:he,options:r,uncompressedSize:t.size})}addData64URI(e,t,r={}){let s=t.length;for(;"="==t.charAt(s-1);)s--;const n=t.indexOf(",")+1;return Hs(this,e,{data:t,Reader:ue,Writer:pe,options:r,uncompressedSize:i.floor(.75*(s-n))})}addUint8Array(e,t,r={}){return Hs(this,e,{data:t,Reader:Te,Writer:Ue,options:r,uncompressedSize:t.length})}addHttpContent(e,t,r={}){return Hs(this,e,{data:t,Reader:class extends Ce{constructor(e){super(e,r)}},options:r})}addReadable(e,t,r={}){return Hs(this,e,{Reader:()=>({readable:t}),options:r})}addFileSystemEntry(e,t={}){return Os(this,e,t)}addFileSystemHandle(e,t={}){return Os(this,e,t)}addFile(e,t={}){return t.lastModDate||(t.lastModDate=new o(e.lastModified)),Hs(this,e.name,{data:e,Reader:()=>({readable:e.stream(),size:e.size}),options:t,uncompressedSize:e.size})}addData(e,t){return Hs(this,e,t)}importBlob(e,t){return this.importZip(new fe(e),t)}importData64URI(e,t){return this.importZip(new ue(e),t)}importUint8Array(e,t){return this.importZip(new Te(e),t)}importHttpContent(e,t){return this.importZip(new Ce(e,t),t)}importReadable(e,t){return this.importZip({readable:e},t)}exportBlob(e={}){return this.exportZip(new he(e.mimeType||"application/zip"),e)}exportData64URI(e={}){return this.exportZip(new pe(e.mimeType||"application/zip"),e)}exportUint8Array(e={}){return this.exportZip(new Ue,e)}async exportWritable(e=new E,t={}){return await this.exportZip({writable:e},t),e}async importZip(e,t={}){await Be(e);const s=new Qr(e,t),n=[],a=await s.getEntries();for(const e of a){let s=this;try{const a=e.filename.split("/"),i=a.pop();a.forEach((t,r)=>{const i=s;s=s.getChildByName(t),s||(s=new Ws(this.fs,t,{data:r==a.length-1?e:null},i),n.push(s))}),e.directory||n.push(Hs(s,i,{data:e,Reader:Ms(r.assign({},t)),uncompressedSize:e.uncompressedSize,passThrough:t.passThrough}))}catch(t){try{t.cause={entry:e}}catch{}throw t}}return n}async exportZip(e,s){const n=this;s.bufferedWrite===j&&(s.bufferedWrite=!0),await y.all([Ns(n,s.readerOptions),Be(e)]);const a=new ms(e,s);return await(async(e,s,n,a)=>{const i=s,o=new c;await async function e(s,c){async function l(c){const l=a.relativePath?c.getRelativeName(i):c.getFullname(),d=c.options||{};let u={};if(c.data instanceof _r){const{externalFileAttributes:e,versionMadeBy:t,comment:s,lastModDate:n,creationDate:a,lastAccessDate:i,uncompressedSize:o,encrypted:l,zipCrypto:d,signature:p,compressionMethod:f,extraFieldAES:h}=c.data;if(u={externalFileAttributes:e,versionMadeBy:t,comment:s,lastModDate:n,creationDate:a,lastAccessDate:i},c.passThrough){let e,t;0===f&&(e=0),h&&(t=h.strength),u=r.assign(u,{passThrough:!0,encrypted:l,zipCrypto:d,signature:p,uncompressedSize:o,level:e,encryptionStrength:t,compressionMethod:f})}}await s.add(l,c.reader,r.assign({},a,u,d,{directory:c.directory,onprogress:async e=>{if(a.onprogress){o.set(l,e);try{await a.onprogress(t.from(o.values()).reduce((e,t)=>e+t),n)}catch{}}}})),await e(s,c)}await(async()=>{if(a.bufferedWrite)await y.allSettled(c.children.map(l));else for(const e of c.children)await l(e)})()}(e,s)})(a,n,(e=>{let t=0;return e.forEach(function e(r){t+=r.uncompressedSize,r.children&&r.children.forEach(e)}),t})([n]),s),await a.close(),e.getData?e.getData():e.writable}getChildByName(e){const t=this.children;for(let r=0;r<t.length;r++){const s=t[r];if(s.name==e)return s}}isPasswordProtected(){const e=this.children;for(let t=0;t<e.length;t++)if(e[t].isPasswordProtected())return!0;return!1}async checkPassword(e,t={}){const r=this.children;return!(await y.all(r.map(r=>r.checkPassword(e,t)))).includes(!1)}}const _s={FS:class{constructor(){Ls(this)}get children(){return this.root.children}remove(e){Bs(e),this.entries[e.id]=null}move(e,t){if(e==this.root)throw new p("Root directory cannot be moved");if(!t.directory)throw new p("Target entry is not a directory");if(t.isDescendantOf(e))throw new p("Entry is a ancestor of target entry");if(e!=t){if(t.getChildByName(e.name))throw new p("Entry filename already exists");Bs(e),e.parent=t,t.children.push(e)}}find(e){const t=e.split("/");let r=this.root;for(let e=0;r&&e<t.length;e++)r=r.getChildByName(t[e]);return r}getById(e){return this.entries[e]}getChildByName(e){return this.root.getChildByName(e)}addDirectory(e,t){return this.root.addDirectory(e,t)}addText(e,t,r){return this.root.addText(e,t,r)}addBlob(e,t,r){return this.root.addBlob(e,t,r)}addData64URI(e,t,r){return this.root.addData64URI(e,t,r)}addUint8Array(e,t,r){return this.root.addUint8Array(e,t,r)}addHttpContent(e,t,r){return this.root.addHttpContent(e,t,r)}addReadable(e,t,r){return this.root.addReadable(e,t,r)}addFileSystemEntry(e,t){return this.root.addFileSystemEntry(e,t)}addFileSystemHandle(e,t){return this.root.addFileSystemHandle(e,t)}addFile(e,t){return this.root.addFile(e,t)}addData(e,t){return this.root.addData(e,t)}importBlob(e,t){return Ls(this),this.root.importBlob(e,t)}importData64URI(e,t){return Ls(this),this.root.importData64URI(e,t)}importUint8Array(e,t){return Ls(this),this.root.importUint8Array(e,t)}importHttpContent(e,t){return Ls(this),this.root.importHttpContent(e,t)}importReadable(e,t){return Ls(this),this.root.importReadable(e,t)}importZip(e,t){return this.root.importZip(e,t)}exportBlob(e){return this.root.exportBlob(e)}exportData64URI(e){return this.root.exportData64URI(e)}exportUint8Array(e){return this.root.exportUint8Array(e)}exportWritable(e,t){return this.root.exportWritable(e,t)}isPasswordProtected(){return this.root.isPasswordProtected()}checkPassword(e,t){return this.root.checkPassword(e,t)}},ZipDirectoryEntry:Ws,ZipFileEntry:Us};function Ms(e){return class extends le{constructor(e,t={}){super(),this.entry=e,this.options=t}async init(){const t=this;t.size=t.entry.uncompressedSize;const s=await t.entry.getData(new he,r.assign({},t.options,e));t.data=s,t.blobReader=new fe(s),super.init()}readUint8Array(e,t){return this.blobReader.readUint8Array(e,t)}}}async function Ns(e,t){e.children.length&&await y.all(e.children.map(async e=>{if(e.directory)await Ns(e,t);else{const r=e.reader=new e.Reader(e.data,t);try{await Be(r)}catch(t){try{t.entryId=e.id,t.cause={entry:e}}catch{}throw t}e.uncompressedSize=r.size}}))}function Bs(e){if(e.parent){const t=e.parent.children;t.forEach((r,s)=>{r.id==e.id&&t.splice(s,1)})}}function Os(e,t,s){return async function e(t,n,a){if(n)try{if((n.isFile||n.isDirectory)&&(n=await Is(n)),"file"==n.kind){const e=await n.getFile();a.push(t.addData(e.name,{Reader:()=>({readable:e.stream(),size:e.size}),options:r.assign({},{lastModDate:new o(e.lastModified)},s),uncompressedSize:e.size}))}else if("directory"==n.kind){const r=t.addDirectory(n.name);a.push(r);for await(const t of n.values())await e(r,t,a)}}catch(e){const t=e.message+(n?" ("+n.name+")":"");throw new p(t)}return a}(e,t,[])}async function Is(e){const t={name:e.name};if(e.isFile&&(t.kind="file",t.getFile=()=>new y((t,r)=>e.file(t,r))),e.isDirectory){t.kind="directory";const r=await(async e=>{const t=[];function r(e,s,n){e.readEntries(async a=>{if(a.length){for(const e of a)t.push(await Is(e));r(e,s,n)}else s(t)},n)}return await new y((t,s)=>r(e.createReader(),t,s)),{[Symbol.iterator](){let e=0;return{next(){const r={value:t[e],done:e==t.length};return e++,r}}}}})(e);t.values=()=>r}return t}function Ls(e){e.entries=[],e.root=new Ws(e)}function Hs(e,t,r,s){if(e.directory)return s?new Ws(e.fs,t,r,e):new Us(e.fs,t,r,e);throw new p("Parent entry is not a directory")}e.fs=_s});
|
package/dist/zip-fs-native.js
CHANGED
|
@@ -2189,13 +2189,8 @@
|
|
|
2189
2189
|
const { value, readable, writable } = message;
|
|
2190
2190
|
const transferables = [];
|
|
2191
2191
|
if (value) {
|
|
2192
|
-
|
|
2193
|
-
|
|
2194
|
-
}
|
|
2195
|
-
else {
|
|
2196
|
-
message.value = value.buffer;
|
|
2197
|
-
}
|
|
2198
|
-
transferables.push(message.value);
|
|
2192
|
+
message.value = value;
|
|
2193
|
+
transferables.push(message.value.buffer);
|
|
2199
2194
|
}
|
|
2200
2195
|
if (transferStreams && transferStreamsSupported) {
|
|
2201
2196
|
if (readable) {
|