@zip.js/zip.js 2.8.17 → 2.8.19
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 +30 -19
- package/dist/zip-core.min.js +1 -1
- package/dist/zip-fs-core.js +30 -19
- package/dist/zip-fs-core.min.js +1 -1
- package/dist/zip-fs-native.js +30 -19
- package/dist/zip-fs-native.min.js +1 -1
- package/dist/zip-fs.js +30 -19
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-legacy.js +30 -19
- package/dist/zip-legacy.min.js +1 -1
- package/dist/zip-native.js +30 -19
- package/dist/zip-native.min.js +1 -1
- package/dist/zip.js +30 -19
- package/dist/zip.min.js +1 -1
- package/index-native.cjs +30 -19
- package/index-native.min.js +1 -1
- package/index.cjs +30 -19
- package/index.d.ts +7 -0
- package/index.min.js +1 -1
- package/lib/core/codec-worker.js +16 -5
- package/lib/core/constants.js +2 -0
- package/lib/core/io.js +3 -2
- package/lib/core/options.js +2 -0
- package/lib/core/zip-writer.js +13 -13
- package/package.json +3 -6
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:k,ReadableStream:D,WritableStream:E,CompressionStream:v,DecompressionStream:A,navigator:U,Worker:R}="undefined"!=typeof globalThis?globalThis:this||self,T=4294967295,C=65535,M=255,W=67324752,_=134695760,B=_,N=33639248,I=101010256,O=101075792,L=117853008,H=22,Z=21589,P=2048,V=16384,q=2048,K=1024,j=512,X="/",G=30,Y=new o(2107,11,31),J=new o(1980,0,1),Q=void 0,$="undefined",ee="function";let te=2;try{typeof U!=$&&U.hardwareConcurrency&&(te=U.hardwareConcurrency)}catch{}const re={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:te,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,CompressionStream:typeof v!=$&&v,DecompressionStream:typeof A!=$&&A},se=r.assign({},re);function ne(){return se}function ae(e){return i.max(e.chunkSize,64)}const ie="HTTP error ",oe="HTTP Range not supported",ce="Range",le="GET",de="bytes",ue=65536,pe="writable";class fe{constructor(){this.size=0}init(){this.initialized=!0}}class he extends fe{get readable(){const e=this,{chunkSize:t=ue}=e,r=new D({start(){this.chunkOffset=0},async pull(s){const{offset:n=0,size:a,diskNumberStart:o}=r,{chunkOffset:c}=this,l=a===Q?t:i.min(t,a-c),d=await Pe(e,n+c,l,o);s.enqueue(d),c+t>a||a===Q&&!d.length&&l?s.close():this.chunkOffset+=t}});return r}}class we extends fe{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,pe,{get:()=>t})}writeUint8Array(){}}class me extends he{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 ge extends we{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 ye extends he{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 be extends fe{constructor(e){super();const t=new k,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(this,pe,{get:()=>t.writable}),this.blob=new d(t.readable,{headers:s}).blob()}getData(){return this.blob}}class ze extends ye{constructor(e){super(new g([e],{type:"text/plain"}))}}class Se extends be{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 xe extends he{constructor(e,t){super(),ke(this,e,t)}async init(){await De(this,Me,Ue),super.init()}readUint8Array(e,t){return Ee(this,e,t,Me,Ue)}}class Fe extends he{constructor(e,t){super(),ke(this,e,t)}async init(){await De(this,We,Re),super.init()}readUint8Array(e,t){return Ee(this,e,t,We,Re)}}function ke(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 De(e,t,r){const{url:s,preventHeadRequest:a,useRangeHeader:i,forceRangeRequests:o,combineSizeEocd:c}=e;if((e=>{const{baseURI:t}=ne(),{protocol:r}=new u(e,t);return"http:"==r||"https:"==r})(s)&&(i||o)&&(void 0===a||a)){const s=await t(le,e,ve(e,c?-22:void 0)),a=s.headers.get("Accept-Ranges");if(!(o||a&&a.toLowerCase()==de))throw new p(oe);{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===Q?await Ce(e,t,r):e.size=a}}else await Ce(e,t,r)}async function Ee(e,t,r,s,n){const{useRangeHeader:a,forceRangeRequests:i,eocdCache:o,size:c,options:l}=e;if(a||i){if(o&&t==c-H&&r==H)return o;if(c>t){t+r>c&&(r=c-t);const n=await s(le,e,ve(e,t,r));if(206!=n.status)throw new p(oe);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 ve(e,t=0,s=1){return r.assign({},Ae(e),{[ce]:de+"="+(0>t?t:t+"-"+(t+s-1))})}function Ae({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function Ue(e){await Te(e,Me)}async function Re(e){await Te(e,We)}async function Te(e,t){const r=await t(le,e,Ae(e));e.data=new f(await r.arrayBuffer()),e.size||(e.size=e.data.length)}async function Ce(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const s=(await t("HEAD",e,Ae(e))).headers.get("Content-Length");s?e.size=n(s):await r(e,e.options)}}async function Me(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(oe):new p(ie+(a.statusText||a.status))}function We(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(oe):new p(ie+(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 _e extends he{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR?new Fe(e,t):new xe(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 Be extends he{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 Ne extends we{constructor(e){super(),this.defaultBufferSize=e||262144}init(e=0){r.assign(this,{offset:0,array:new f(e>0?e:this.defaultBufferSize)}),super.init()}writeUint8Array(e){const t=this,r=t.offset+e.length;if(r>t.array.length){let e=t.array.length?2*t.array.length:t.defaultBufferSize;for(;r>e;)e*=2;const s=t.array;t.array=new f(e),t.array.set(s)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.offset===this.array.length?this.array:this.array.slice(0,this.offset)}}class Ie extends he{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 Pe(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 Pe(l,c,t)}else a=new f;return s.lastDiskNumber=i.max(o,s.lastDiskNumber),a}}class Oe extends fe{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 Ze(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,pe,{get:()=>o})}}class Le{constructor(e){return t.isArray(e)&&(e=new Ie(e)),e instanceof D&&(e={readable:e}),e}}class He{constructor(e){return e.writable===Q&&typeof e.next==ee&&(e=new Oe(e)),e instanceof E&&(e={writable:e}),e.size===Q&&(e.size=0),e instanceof Oe||r.assign(e,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),e}}async function Ze(e,t){if(!e.init||e.initialized)return y.resolve();await e.init(t)}function Pe(e,t,r,s){return e.readUint8Array(t,r,s)}const Ve=[];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;Ve[e]=t}class qe{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^Ve[255&(t^e[r])];this.crc=t}get(){return~this.crc}}class Ke extends k{constructor(){let e;const t=new qe;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 je(e){if(typeof b==$){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 Xe={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],s=Xe.getPartial(r);return 32===s?e.concat(t):Xe._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)+Xe.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]=Xe.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=Xe.getPartial(n);return s.push(Xe.partial(t+a&31,t+a>32?r:s.pop(),1)),s}},Ge={bytes:{fromBits(e){const t=Xe.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(Xe.partial(8*(3&r),s)),t}}},Ye=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=Ge.utf8String.toBits(e));const r=t._buffer=Xe.concat(t._buffer,e),s=t._length,n=t._length=s+Xe.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=Xe.concat(t,[Xe.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}},Je={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}},Qe={importKey:e=>new Qe.hmacSha1(Ge.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=Xe;for(t=Ge.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=Ye,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)}}},$e=typeof x!=$&&typeof x.getRandomValues==ee,et="Invalid password",tt="Invalid signature",rt="zipjs-abort-check-password";function st(e){return $e?x.getRandomValues(e):Je.getRandomValues(e)}const nt=16,at={name:"PBKDF2"},it=r.assign({hash:{name:"HMAC"}},at),ot=r.assign({iterations:1e3,hash:{name:"SHA-1"}},at),ct=["deriveBits"],lt=[8,12,16],dt=[16,24,32],ut=10,pt=[0,0,0,0],ft=typeof x!=$,ht=ft&&x.subtle,wt=ft&&typeof ht!=$,mt=Ge.bytes,gt=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}},yt=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=Xe.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 Xe.clamp(t,n)}},bt=Qe.hmacSha1;let zt=ft&&wt&&typeof ht.importKey==ee,St=ft&&wt&&typeof ht.deriveBits==ee;class xt extends k{constructor({password:e,rawPassword:t,signed:s,encryptionStrength:n,checkPasswordOnly:a}){super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:Et(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 Dt(e,t,r,At(s,0,lt[t])),a=At(s,lt[t]);if(n[0]!=a[0]||n[1]!=a[1])throw new p(et)})(r,n,s,At(e,0,lt[n]+2)),e=At(e,lt[n]+2),a?t.error(new p(rt)):i()):await o;const c=new f(e.length-ut-(e.length-ut)%nt);t.enqueue(kt(r,e,c,0,ut,!0))},async flush(e){const{signed:t,ctr:r,hmac:s,pending:n,ready:a}=this;if(s&&r){await a;const i=At(n,0,n.length-ut),o=At(n,n.length-ut);let c=new f;if(i.length){const e=Rt(mt,i);s.update(e);const t=r.update(e);c=Ut(mt,t)}if(t){const e=At(Ut(mt,s.digest()),0,ut);for(let t=0;ut>t;t++)if(e[t]!=o[t])throw new p(tt)}e.enqueue(c)}}})}}class Ft extends k{constructor({password:e,rawPassword:t,encryptionStrength:s}){let n;super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:Et(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=st(new f(lt[t]));return vt(s,await Dt(e,t,r,s))})(r,n,s),a()):await i;const c=new f(o.length+e.length-e.length%nt);c.set(o,0),t.enqueue(kt(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(Rt(mt,s));r.update(e),i=Ut(mt,e)}n.signature=Ut(mt,r.digest()).slice(0,ut),e.enqueue(vt(i,n.signature))}}}),n=this}}function kt(e,t,r,s,n,a){const{ctr:i,hmac:o,pending:c}=e,l=t.length-n;let d;for(c.length&&(t=vt(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%nt)),d=0;l-nt>=d;d+=nt){const e=Rt(mt,At(t,d,d+nt));a&&o.update(e);const n=i.update(e);a||o.update(n),r.set(Ut(mt,n),d+s)}return e.pending=At(t,d),r}async function Dt(e,s,n,a){e.password=null;const i=await(async(e,t,r,s,n)=>{if(!zt)return Qe.importKey(t);try{return await ht.importKey("raw",t,r,!1,n)}catch{return zt=!1,Qe.importKey(t)}})(0,n,it,0,ct),o=await(async(e,t,r)=>{if(!St)return Qe.pbkdf2(t,e.salt,ot.iterations,r);try{return await ht.deriveBits(e,t,r)}catch{return St=!1,Qe.pbkdf2(t,e.salt,ot.iterations,r)}})(r.assign({salt:a},ot),i,8*(2*dt[s]+2)),c=new f(o),l=Rt(mt,At(c,0,dt[s])),d=Rt(mt,At(c,dt[s],2*dt[s])),u=At(c,2*dt[s]);return r.assign(e,{keys:{key:l,authentication:d,passwordVerification:u},ctr:new yt(new gt(l),t.from(pt)),hmac:new bt(d)}),u}function Et(e,t){return t===Q?je(e):t}function vt(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 At(e,t,r){return e.subarray(t,r)}function Ut(e,t){return e.fromBits(t)}function Rt(e,t){return e.toBits(t)}class Tt extends k{constructor({password:e,passwordVerification:t,checkPasswordOnly:s}){super({start(){r.assign(this,{password:e,passwordVerification:t}),_t(this,e)},transform(e,t){const r=this;if(r.password){const t=Mt(r,e.subarray(0,12));if(r.password=null,t.at(-1)!=r.passwordVerification)throw new p(et);e=e.subarray(12)}s?t.error(new p(rt)):t.enqueue(Mt(r,e))}})}}class Ct extends k{constructor({password:e,passwordVerification:t}){super({start(){r.assign(this,{password:e,passwordVerification:t}),_t(this,e)},transform(e,t){const r=this;let s,n;if(r.password){r.password=null;const t=st(new f(12));t[11]=r.passwordVerification,s=new f(e.length+t.length),s.set(Wt(r,t),0),n=12}else s=new f(e.length),n=0;s.set(Wt(r,e),n),t.enqueue(s)}})}}function Mt(e,t){const r=new f(t.length);for(let s=0;s<t.length;s++)r[s]=Nt(e)^t[s],Bt(e,r[s]);return r}function Wt(e,t){const r=new f(t.length);for(let s=0;s<t.length;s++)r[s]=Nt(e)^t[s],Bt(e,t[s]);return r}function _t(e,t){const s=[305419896,591751049,878082192];r.assign(e,{keys:s,crcKey0:new qe(s[0]),crcKey2:new qe(s[2])});for(let r=0;r<t.length;r++)Bt(e,t.charCodeAt(r))}function Bt(e,t){let[r,s,n]=e.keys;e.crcKey0.append([t]),r=~e.crcKey0.get(),s=Ot(i.imul(Ot(s+It(r)),134775813)+1),e.crcKey2.append([s>>>24]),n=~e.crcKey2.get(),e.keys=[r,s,n]}function Nt(e){const t=2|e.keys[2];return It(i.imul(t,1^t)>>>8)}function It(e){return 255&e}function Ot(e){return 4294967295&e}const Lt="Invalid uncompressed size";class Ht extends k{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 Ke,f=qt(f,u)),n&&(f=Vt(f,i,{level:l,chunkSize:t},s,r,s)),a&&(o?f=qt(f,new Ct(e)):(p=new Ft(e),f=qt(f,p))),Pt(d,f,()=>{let e;a&&!o&&(e=p.signature),a&&!o||!c||(e=new m(u.value.buffer).getUint32(0)),d.signature=e})}}class Zt extends k{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=qt(h,new Tt(e)):(f=new xt(e),h=qt(h,f))),c&&(h=Vt(h,l,{chunkSize:t,deflate64:d},s,r,s)),a&&!n||!i||(u=new Ke,h=qt(h,u)),Pt(this,h,()=>{if((!a||n)&&i){const e=new m(u.value.buffer);if(o!=e.getUint32(0,!1))throw new p(tt)}})}}function Pt(e,t,s){t=qt(t,new k({flush:s})),r.defineProperty(e,"readable",{get:()=>t})}function Vt(e,t,r,s,n,a){const i=t&&s?s:n||a,o=r.deflate64?"deflate64-raw":"deflate-raw";try{e=qt(e,new i(o,r))}catch(s){if(!t)throw s;if(n)e=qt(e,new n(o,r));else{if(!a)throw s;e=qt(e,new a(o,r))}}return e}function qt(e,t){return e.pipeThrough(t)}const Kt="data",jt="close",Xt="deflate",Gt="inflate";class Yt extends k{constructor(e,t){super({});const s=this,{codecType:n}=e;let a;n.startsWith(Xt)?a=Ht:n.startsWith(Gt)&&(a=Zt),s.outputSize=0;let i=0;const o=new a(e,t),c=super.readable,l=new k({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){r.assign(s,{inputSize:i})}}),d=new k({transform(t,r){if(t&&t.length&&(r.enqueue(t),s.outputSize+=t.length,e.outputSize!==Q&&s.outputSize>e.outputSize))throw new p(Lt)},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 Jt extends k{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 Qt,$t,er,tr=!0;class rr{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 Jt(a.chunkSize)).pipeThrough(new sr(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)}}),Qt===Q&&(Qt=typeof R!=$),(o&&Qt?ir:ar)(e,a)}}class sr extends k{constructor({onstart:e,onprogress:t,size:r,onend:s}){let n=0;super({async start(){e&&await nr(e,r)},async transform(e,s){n+=e.length,t&&await nr(t,n,r),s.enqueue(e)},async flush(){s&&await nr(s,n)}})}}async function nr(e,...t){try{await e(...t)}catch{}}function ar(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 Yt(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 ir(e,t){const{baseURI:s,chunkSize:n}=t;let{wasmURI:a}=t;if(!e.interface){let i;typeof a==ee&&(a=a());try{i=or(e.workerURI,s,e)}catch{return Qt=!1,ar(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=cr({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}function or(e,t,s,n=!1,a=!0){let i,o,c;if(n&&(c={type:"module"}),$t===Q){const r=typeof e==ee;o=r?e(a):e;const l=o.startsWith("data:"),d=o.startsWith("blob:");if(l||d)try{i=new R(o,c)}catch(a){if(d)try{u.revokeObjectURL(o)}catch{}if(r&&d)return or(e,t,s,n,!1);if(n)throw a;return or(e,t,s,!0,!1)}else{try{o=new u(o,t)}catch{}try{i=new R(o,c)}catch(r){if(n)throw r;return or(e,t,s,!0,a)}}$t=o,er=c}else i=new R($t,er);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();cr({type:Kt,value:e,done:r,messageId:a},t)}s==Kt&&(await l.ready,await l.write(new f(n)),cr({type:"ack",messageId:a},t)),s==jt&&w(null,i)}}catch(o){cr({type:jt,messageId:a},t),w(o)}function w(e,t){e?u(e):d(t),l&&l.releaseLock(),h()}})(e,s)),i}function cr(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&&tr?(s&&i.push(s),a&&i.push(a)):e.readable=e.writable=null,i.length)try{return t.postMessage(e,i),!0}catch{tr=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),s(),e}}let lr=[];const dr=[];let ur=0;async function pr(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===Q;const f=!(c||l||d||t.transferStreams);return t.useWebWorkers=!f&&(i||i===Q&&s.useWebWorkers),t.workerURI=t.useWebWorkers&&u?u:Q,r.useCompressionStream=o||o===Q&&s.useCompressionStream,(await(async()=>{const r=lr.find(e=>!e.busy);if(r)return fr(r),new rr(r,e,t,h);if(lr.length<p){const r={indexWorker:ur};return ur++,lr.push(r),new rr(r,e,t,h)}return new y(r=>dr.push({resolve:r,stream:e,workerOptions:t}))})()).run();function h(e){if(dr.length){const[{resolve:t,stream:r,workerOptions:s}]=dr.splice(0,1);t(new rr(e,r,s,h))}else e.worker?(fr(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:s}=r;n.isFinite(s)&&s>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{lr=lr.filter(t=>t!=e);try{await e.terminate()}catch{}},s))})(e,t)):lr=lr.filter(t=>t!=e)}}function fr(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}const hr="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function wr(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=hr[e[r]];return t}})(e):new z(t).decode(e)}const mr="filename",gr="rawFilename",yr="comment",br="rawComment",zr="uncompressedSize",Sr="compressedSize",xr="offset",Fr="diskNumberStart",kr="lastModDate",Dr="rawLastModDate",Er="lastAccessDate",vr="creationDate",Ar="rawCreationDate",Ur="internalFileAttributes",Rr="externalFileAttributes",Tr="msdosAttributesRaw",Cr="msdosAttributes",Mr="msDosCompatible",Wr="zip64",_r="encrypted",Br="version",Nr="versionMadeBy",Ir="zipCrypto",Or="directory",Lr="executable",Hr="compressionMethod",Zr="signature",Pr="extraField",Vr="unixMode",qr="setuid",Kr="setgid",jr="sticky",Xr=[mr,gr,zr,Sr,kr,Dr,yr,br,Er,vr,Ar,xr,Fr,Ur,Rr,Tr,Cr,Mr,Wr,_r,Br,Nr,Ir,Or,Lr,Hr,Zr,Pr,"extraFieldUnix","extraFieldInfoZip","uid","gid",Vr,qr,Kr,jr,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Gr{constructor(e){Xr.forEach(t=>this[t]=e[t])}}const Yr="password",Jr="rawPassword",Qr="passThrough",$r="signal",es="useWebWorkers",ts="useCompressionStream",rs="preventClose",ss="supportZip64SplitFile",ns="offset",as="usdz",is="File format is not recognized",os="Compression method not supported",cs="Split zip file",ls="utf-8",ds="cp437",us=[[zr,T],[Sr,T],[xr,T],[Fr,C]],ps={[C]:{getValue:Ds,bytes:4},[T]:{getValue:Es,bytes:8}};class fs{constructor(e,t={}){r.assign(this,{reader:new Le(e),options:t,config:ne(),readRanges:[]})}async*getEntriesGenerator(e={}){const t=this;let{reader:s}=t;const{config:n}=t;if(await Ze(s),s.size!==Q&&s.readUint8Array||(s=new ye(await new d(s.readable).blob()),await Ze(s)),s.size<H)throw new p(is);s.chunkSize=ae(n);const a=await(async(e,t,r)=>{const s=new f(4);var n;return n=t,vs(s).setUint32(0,n,!0),await a(22)||await a(i.min(1048582,r));async function a(t){const n=r-t,a=await Pe(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,I,s.size);if(!a)throw Ds(vs(await Pe(s,0,4)))==_?new p(cs):new p("End of central directory not found");const o=vs(a);let c=Ds(o,12),l=Ds(o,16);const u=a.offset,h=ks(o,20),w=u+H+h;let m=ks(o,4);const g=s.lastDiskNumber||0;let b=ks(o,6),z=ks(o,8),S=0,x=0;if(l==T||c==T||z==C||b==C){const e=vs(await Pe(s,a.offset-20,20));if(Ds(e,0)==L){l=Es(e,8);let t=await Pe(s,l,56,-1),r=vs(t);const n=a.offset-20-56;if(Ds(r,0)!=O&&l!=n){const e=l;l=n,l>e&&(S=l-e),t=await Pe(s,l,56,-1),r=vs(t)}if(Ds(r,0)!=O)throw new p("End of Zip64 central directory locator not found");m==C&&(m=Ds(r,16)),b==C&&(b=Ds(r,20)),z==C&&(z=Es(r,32)),c==T&&(c=Es(r,40)),l-=c}}if(l<s.size||(S=s.size-l-c-H,l=s.size-c-H),g!=m)throw new p(cs);if(0>l)throw new p(is);let F=0,D=await Pe(s,l,c,b),E=vs(D);if(c){const e=a.offset-c;if(Ds(E,F)!=N&&l!=e){const t=l;l=e,l>t&&(S+=l-t),D=await Pe(s,l,c,b),E=vs(D)}}const v=a.offset-l-(s.lastDiskOffset||0);if(c==v||0>v||(c=v,D=await Pe(s,l,c,b),E=vs(D)),0>l||l>=s.size)throw new p(is);const A=zs(t,e,"filenameEncoding"),U=zs(t,e,"commentEncoding");for(let a=0;z>a;a++){const o=new hs(s,n,t.options);if(Ds(E,F)!=N)throw new p("Central directory header not found");ws(o,E,F+6);const c=!!o.bitFlag.languageEncodingFlag,l=F+46,u=l+o.filenameLength,f=u+o.extraFieldLength,h=ks(E,F+4),w=!(h>>8),m=h>>8==3,g=D.subarray(l,u),b=ks(E,F+32),v=f+b,R=D.subarray(f,v),T=c,W=c,_=Ds(E,F+38),B=_&M,I={readOnly:!!(1&B),hidden:!!(2&B),system:!!(4&B),directory:!!(16&B),archive:!!(32&B)},O=Ds(E,F+42)+S,L=zs(t,e,"decodeText")||wr,H=T?ls:A||ds,Z=W?ls:U||ds;let P=L(g,H);P===Q&&(P=wr(g,H));let G=L(R,Z);G===Q&&(G=wr(R,Z)),r.assign(o,{versionMadeBy:h,msDosCompatible:w,compressedSize:0,uncompressedSize:0,commentLength:b,offset:O,diskNumberStart:ks(E,F+34),internalFileAttributes:ks(E,F+36),externalFileAttributes:_,msdosAttributesRaw:B,msdosAttributes:I,rawFilename:g,filenameUTF8:T,commentUTF8:W,rawExtraField:D.subarray(u,f),rawComment:R,filename:P,comment:G}),x=i.max(O,x),ms(o,o,E,F+6);const Y=o.externalFileAttributes>>16&C;o.unixMode===Q&&16877&Y&&(o.unixMode=Y);const J=!!(o.unixMode&q),$=!!(o.unixMode&K),ee=!!(o.unixMode&j),te=o.unixMode!==Q?!!(73&o.unixMode):m&&!!(73&Y),re=o.unixMode!==Q&&(61440&o.unixMode)==V,se=(61440&Y)==V;r.assign(o,{setuid:J,setgid:$,sticky:ee,unixExternalUpper:Y,internalFileAttribute:o.internalFileAttributes,externalFileAttribute:o.externalFileAttributes,executable:te,directory:re||se||w&&I.directory||P.endsWith(X)&&!o.uncompressedSize,zipCrypto:o.encrypted&&!o.extraFieldAES});const ne=new Gr(o);ne.getData=(e,r)=>o.getData(e,ne,t.readRanges,r),ne.arrayBuffer=async e=>{const r=new k,[s]=await y.all([new d(r.readable).arrayBuffer(),o.getData(r,ne,t.readRanges,e)]);return s},F=v;const{onprogress:ae}=e;if(ae)try{await ae(a+1,z,new Gr(o))}catch{}yield ne}const R=zs(t,e,"extractPrependedData"),W=zs(t,e,"extractAppendedData");return R&&(t.prependedData=x>0?await Pe(s,0,x):new f),t.comment=h?await Pe(s,u+H,h):new f,W&&(t.appendedData=w<s.size?await Pe(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 hs=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=vs(await Pe(i,o,G,c));let F=zs(a,n,Yr),k=zs(a,n,Jr);const D=zs(a,n,Qr);if(F=F&&F.length&&F,k=k&&k.length&&k,l&&99!=l.originalCompressionMethod)throw new p(os);if(0!=u&&8!=u&&9!=u&&!D)throw new p(os);if(Ds(x,0)!=W)throw new p("Local file header not found");ws(S,x,4);const{extraFieldLength:v,filenameLength:A,lastAccessDate:U,creationDate:R}=S;S.rawExtraField=v?await Pe(i,o+G+A,v,c):new f,ms(a,S,x,4,!0),r.assign(t,{lastAccessDate:U,creationDate:R});const T=a.encrypted&&S.encrypted&&!D,C=T&&!l;if(D||(t.zipCrypto=C),T){if(!C&&l.strength===Q)throw new p("Encryption method not supported");if(!F&&!k)throw new p("File contains encrypted entry")}const _=o+G+A+v,N=b,I=i.readable;r.assign(I,{diskNumberStart:c,offset:_,size:N});const O=zs(a,n,$r),L=zs(a,n,"checkPasswordOnly");let H=zs(a,n,"checkOverlappingEntry");const Z=zs(a,n,"checkOverlappingEntryOnly");Z&&(H=!0);const{onstart:P,onprogress:V,onend:q}=n,K=9==u;let j=zs(a,n,ts);K&&(j=!1);const X={options:{codecType:Gt,password:F,rawPassword:k,zipCrypto:C,encryptionStrength:l&&l.strength,signed:zs(a,n,"checkSignature")&&!D,passwordVerification:C&&(z?g>>>8&M:m>>>24&M),outputSize:D?b:y,signature:m,compressed:0!=u&&!D,encrypted:a.encrypted&&!D,useWebWorkers:zs(a,n,es),useCompressionStream:j,transferStreams:zs(a,n,"transferStreams"),deflate64:K,checkPasswordOnly:L},config:h,streamOptions:{signal:O,size:N,onstart:P,onprogress:V,onend:q}};let Y;H&&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 Pe(e,o+a,f+4,s);if(Ds(vs(r),0)==B){const e=Ds(vs(r),4);let s,o;l?(s=Es(vs(r),8),o=Es(vs(r),16)):(s=Ds(vs(r),8),o=Ds(vs(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(!Z){L&&(e=new E),e=new He(e),await Ze(e,D?b:y),({writable:Y}=e);const{outputSize:t}=await pr({readable:I,writable:Y},X);if(e.size+=t,t!=(D?b:y))throw new p(Lt)}}catch(t){if(t.outputSize!==Q&&(e.size+=t.outputSize),!L||t.message!=rt)throw t}finally{zs(a,n,rs)||!Y||Y.locked||await Y.getWriter().close()}return L||Z?Q:e.getData?e.getData():Y}};function ws(e,t,s){const n=e.rawBitFlag=ks(t,s+2),a=!(1&~n),i=Ds(t,s+6);r.assign(e,{encrypted:a,version:ks(t,s),bitFlag:{level:(6&n)>>1,dataDescriptor:!(8&~n),languageEncodingFlag:(n&P)==P},rawLastModDate:i,lastModDate:Ss(i),filenameLength:ks(t,s+22),extraFieldLength:ks(t,s+24)})}function ms(e,t,s,n,a){const{rawExtraField:i}=t,l=t.extraField=new c,d=vs(new f(i));let u=0;try{for(;u<i.length;){const e=ks(d,u),t=ks(d,u+2);l.set(e,{type:e,data:i.slice(u+4,u+4+t)}),u+=4+t}}catch{}const h=ks(s,n+4);r.assign(t,{signature:Ds(s,n+10),compressedSize:Ds(s,n+14),uncompressedSize:Ds(s,n+18)});const w=l.get(1);w&&(((e,t)=>{t.zip64=!0;const r=vs(e.data),s=us.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=ps[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&&(gs(m,mr,gr,t,e),t.extraFieldUnicodePath=m);const g=l.get(25461);g&&(gs(g,yr,br,t,e),t.extraFieldUnicodeComment=g);const y=l.get(39169);y?(((e,t,s)=>{const n=vs(e.data),a=Fs(n,4);r.assign(e,{vendorVersion:Fs(n,0),vendorId:Fs(n,2),strength:a,originalCompressionMethod:s,compressionMethod:ks(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=vs(e.data);let n,a=4;try{for(;a<e.data.length&&!n;){const t=ks(s,a),r=ks(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=vs(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:xs(a),lastAccessDate:xs(i),creationDate:xs(o)};r.assign(e,c),r.assign(t,c)}}catch{}})(b,t),t.extraFieldNTFS=b);const z=l.get(30805);if(z)ys(z,t,!1),t.extraFieldUnix=z;else{const e=l.get(30837);e&&(ys(e,t,!0),t.extraFieldInfoZip=e)}const S=l.get(Z);S&&(((e,t,r)=>{const s=vs(e.data),n=Fs(s,0),a=[],i=[];r?(1&~n||(a.push(kr),i.push(Dr)),2&~n||(a.push(Er),i.push("rawLastAccessDate")),4&~n||(a.push(vr),i.push(Ar))):5>e.data.length||(a.push(kr),i.push(Dr));let c=1;a.forEach((r,n)=>{if(e.data.length>=c+4){const a=Ds(s,c);t[r]=e[r]=new o(1e3*a);const l=i[n];e[l]=a}c+=4})})(S,t,a),t.extraFieldExtendedTimestamp=S);const x=l.get(6534);x&&(t.extraFieldUSDZ=x)}function gs(e,t,s,n,a){const i=vs(e.data),o=new qe;o.append(a[s]);const c=vs(new f(4));c.setUint32(0,o.get(),!0);const l=Ds(i,1);r.assign(e,{version:Fs(i,0),[t]:wr(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==Ds(c,0)}),e.valid&&(n[t]=e[t],n[t+"UTF8"]=!0)}function ys(e,t,s){try{const n=vs(new f(e.data));let a=0;const i=Fs(n,a++),o=Fs(n,a++),c=e.data.subarray(a,a+o);a+=o;const l=bs(c),d=Fs(n,a++),u=e.data.subarray(a,a+d);a+=d;const p=bs(u);let h=Q;if(!s&&a+2<=e.data.length){const t=e.data;h=new m(t.buffer,t.byteOffset+a,2).getUint16(0,!0)}r.assign(e,{version:i,uid:l,gid:p,unixMode:h}),l!==Q&&(t.uid=l),p!==Q&&(t.gid=p),h!==Q&&(t.unixMode=h)}catch{}}function bs(e){const t=new f(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function zs(e,t,r){return t[r]===Q?e.options[r]:t[r]}function Ss(e){const t=(4294901760&e)>>16,r=e&C;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 xs(e){return new o(n(e/a(1e4)-a(116444736e5)))}function Fs(e,t){return e.getUint8(t)}function ks(e,t){return e.getUint16(t,!0)}function Ds(e,t){return e.getUint32(t,!0)}function Es(e,t){return n(e.getBigUint64(t,!0))}function vs(e){return new m(e.buffer)}const As="Version exceeds 65535",Us="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",Rs=new f([7,0,2,0,65,69,3,0,0]),Ts="infozip",Cs="unix";let Ms=0;const Ws=[];class _s{constructor(e,t={}){const s=(e=new He(e)).availableSize!==Q&&e.availableSize>0&&e.availableSize!==1/0&&e.maxSize!==Q&&e.maxSize>0&&e.maxSize!==1/0;r.assign(this,{writer:e,addSplitZipSignature:s,options:t,config:ne(),files:new c,filenames:new l,offset:t[ns]===Q?e.size||e.writable.size||0:t[ns],pendingEntriesSize:0,pendingAddFileCalls:new l,bufferedWrites:0})}async prependZip(e){if(this.filenames.size)throw new p("Zip file not empty");e=new Le(e);const t=new fs(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,rawExtraFieldUnix:z,rawExtraField:S}=e;const{level:x,languageEncodingFlag:F,dataDescriptor:k}=c;m=m||new f,g=g||new f,y=y||new f,b=b||new f,z=e.rawExtraFieldUnix||new f,S=S||new f;const D=Xs(m,g,y,b,z,S),E=w&&d>T,v=w&&u>T,{headerArray:A,headerView:U}=Gs({version:t,bitFlag:Ys(x,F,k,l,s),compressionMethod:s,uncompressedSize:d,compressedSize:u,lastModDate:n,rawFilename:o,zip64CompressedSize:v,zip64UncompressedSize:E,extraFieldLength:D});return r.assign(e,{zip64UncompressedSize:E,zip64CompressedSize:v,zip64Offset:w&&this.offset-p>T,zip64DiskNumberStart:w&&h>C,rawExtraFieldZip64:m,rawExtraFieldAES:g,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraFieldUnix:z,rawExtraField:S,extendedTimestamp:y.length>0||b.length>0,extraFieldExtendedTimestampFlag:1+(a?2:0)+(i?4:0),headerArray:A,headerView:U}),[e.filename,e]}))}async add(e="",s,n={}){const c=this,{pendingAddFileCalls:l,config:u}=c;let w;Ms<u.maxWorkers?Ms++: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();let l=Ls(e,c,Mr),u=Ls(e,c,Nr,l?20:768);const w=Ls(e,c,Lr),g=Ls(e,c,"uid"),b=Ls(e,c,"gid");let z=Ls(e,c,Vr);const S=Ls(e,c,"unixExtraFieldType");let x=Ls(e,c,qr),F=Ls(e,c,Kr),D=Ls(e,c,jr);if(g!==Q&&(0>g||g>T))throw new p("Invalid uid (must be integer 0..2^32-1)");if(b!==Q&&(0>b||b>T))throw new p("Invalid gid (must be integer 0..2^32-1)");if(z!==Q&&(0>z||z>C))throw new p("Invalid UNIX mode (must be integer 0..65535)");if(S!==Q&&S!==Ts&&S!==Cs)throw new p("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");let E=Ls(e,c,Tr),v=Ls(e,c,Cr);const A=E!==Q||v!==Q;if(g!==Q||b!==Q||z!==Q||S?(l=!1,u=u&C|768):A&&(l=!0,u&=M),E!==Q&&(0>E||E>M))throw new p("Invalid msdosAttributesRaw (must be integer 0..255)");if(v&&"object"!=typeof v)throw new p("Invalid msdosAttributes (must be an object with boolean flags)");if(u>C)throw new p(As);let U=Ls(e,c,Rr,0);!c[Or]&&s.endsWith(X)&&(c[Or]=!0);const R=Ls(e,c,Or);let N;R?(s.endsWith(X)||(s+=X),0===U&&(U=16,l||(U|=16877<<16))):l||0!==U||(U=w?493<<16:27525120),l||(N=U>>16&C,z=z===Q?N:z&C,x?z|=q:x=!!(z&q),F?z|=K:F=!!(z&K),D?z|=j:D=!!(z&j),R&&(z|=V),U=(z&C)<<16|U&M),({msdosAttributesRaw:E,msdosAttributes:v}=((e,t)=>{if(e!==Q)e&=M;else if(t!==Q){const{readOnly:r,hidden:s,system:n,directory:a,archive:i}=t;let o=0;r&&(o|=1),s&&(o|=2),n&&(o|=4),a&&(o|=16),i&&(o|=32),e=o&M}return t===Q&&(t={readOnly:!!(1&e),hidden:!!(2&e),system:!!(4&e),directory:!!(16&e),archive:!!(32&e)}),{msdosAttributesRaw:e,msdosAttributes:t}})(E,v)),A&&(U=U&T|E&M);const I=Ls(e,c,"encodeText",je);let O=I(s);if(O===Q&&(O=je(s)),Xs(O)>C)throw new p("File entry name exceeds 64KB");const L=c[yr]||"";let H=I(L);if(H===Q&&(H=je(L)),Xs(H)>C)throw new p("File entry comment exceeds 64KB");const P=Ls(e,c,Br,20);if(P>C)throw new p(As);const $=Ls(e,c,kr,new o),ee=Ls(e,c,Er),te=Ls(e,c,vr),re=Ls(e,c,Ur,0),se=Ls(e,c,Qr);let ne,ie;se||(ne=Ls(e,c,Yr),ie=Ls(e,c,Jr));const oe=Ls(e,c,"encryptionStrength",3),ce=Ls(e,c,Ir),le=Ls(e,c,"extendedTimestamp",!0),de=Ls(e,c,"keepOrder",!0),ue=Ls(e,c,es),pe=Ls(e,c,"bufferedWrite"),fe=Ls(e,c,"dataDescriptorSignature",!1),he=Ls(e,c,$r),we=Ls(e,c,"useUnicodeFileNames",!0),me=Ls(e,c,Hr);let ge=Ls(e,c,"level"),ye=Ls(e,c,ts),be=Ls(e,c,"dataDescriptor");pe&&be===Q&&(be=!1),(be===Q||ce)&&(be=!0),ge!==Q&&6!=ge&&(ye=!1),ye||e.config.CompressionStream!==Q||e.config.CompressionStreamZlib!==Q||(ge=0);let ze=Ls(e,c,Wr);if(!ce&&(ne!==Q||ie!==Q)&&(1>oe||oe>3))throw new p("The strength must equal 1, 2, or 3");let Se=new f;const xe=c[Pr];if(xe){let e=0,t=0;xe.forEach(t=>e+=4+Xs(t)),Se=new f(e),xe.forEach((e,r)=>{if(r>C)throw new p("Extra field type exceeds 65535");if(Xs(e)>C)throw new p("Extra field data exceeds 64KB");Ks(Se,new h([r]),t),Ks(Se,new h([Xs(e)]),t+2),Ks(Se,e,t+4),t+=4+Xs(e)})}let Fe=0,ke=0,De=0;if(se&&(De=c[zr],De===Q))throw new p("Undefined uncompressed size");const Ee=!0===ze;n&&(n=new Le(n),await Ze(n),se?(c.uncompressedSize=De,Fe=Hs(De)):n.size===Q?(be=!0,(ze||ze===Q)&&(ze=!0,De=Fe=4294967296)):(c.uncompressedSize=De=n.size,Fe=Hs(De)));const{diskOffset:ve,diskNumber:Ae,maxSize:Ue}=e.writer,Re=Ee||De>T,Te=Ee||Fe>T,Ce=Ee||e.offset+e.pendingEntriesSize-ve>T,Me=Ls(e,c,ss,!0)&&Ee||Ae+i.ceil(e.pendingEntriesSize/Ue)>C;if(Ce||Re||Te||Me){if(!1===ze||!de)throw new p(Us);ze=!0}ze=ze||!1;const We=Ls(e,c,_r),_e=(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:g,passThrough:y,encrypted:b,zip64UncompressedSize:z,zip64CompressedSize:S,zip64Offset:x,zip64DiskNumberStart:F,uncompressedSize:k,offset:D,diskNumberStart:E}=e;let{version:v,compressionMethod:A}=e;const U=!p&&(o>0||o===Q&&0!==A);let R,T;const M=y||!U,_=c&&(e.bufferedWrite||!z&&!S||M);if(c){let e=4,t=4;z&&(e+=8,t+=8),S&&(e+=8,t+=8),x&&(e+=8),F&&(e+=4),R=new f(e);const r=js(R);T=new f(t);const s=js(T);if(Ps(r,0,1),Ps(r,2,Xs(R)-4),Ps(s,0,1),Ps(s,2,Xs(T)-4),_){const e=js(R),t=js(T);let r=4,s=4;z&&(qs(e,r,a(k)),r+=8,qs(t,s,a(k)),s+=8),S&&M&&(qs(e,r,a(k)),r+=8,qs(t,s,a(k)),s+=8),x&&(qs(e,r,a(D)),r+=8),F&&(Vs(e,r,E),r+=4),4==s&&(T=new f)}}else R=new f,T=new f;let B,N,I,O,L;if(b&&!l){B=new f(Xs(Rs)+2);const e=js(B);Ps(e,0,39169),Ks(B,Rs,2),Zs(e,8,w)}else B=new f;if(g){I=new f(9+(s?4:0)+(n?4:0));const e=js(I);Ps(e,0,Z),Ps(e,2,Xs(I)-4),O=1+(s?2:0)+(n?4:0),Zs(e,4,O);let t=5;Vs(e,t,i.floor(r.getTime()/1e3)),t+=4,s&&(Vs(e,t,i.floor(s.getTime()/1e3)),t+=4),n&&Vs(e,t,i.floor(n.getTime()/1e3));try{N=new f(36);const e=js(N),t=Os(r);Ps(e,0,10),Ps(e,2,32),Ps(e,8,1),Ps(e,10,24),qs(e,12,t),qs(e,20,Os(s)||t),qs(e,28,Os(n)||t)}catch{N=new f}}else N=I=new f;try{const{uid:t,gid:r,unixMode:s,setuid:n,setgid:a,sticky:i,unixExtraFieldType:o}=e;if(!o||t===Q&&r===Q&&s===Q)L=new f;else{const e=Bs(t),c=Bs(r);let l=new f;if(o==Cs&&s!==Q){let e=s&C;n&&(e|=q),a&&(e|=K),i&&(e|=j),l=new f(2),new m(l.buffer).setUint16(0,e,!0)}const d=3+e.length+c.length+l.length;L=new f(4+d);const u=js(L);Ps(u,0,o==Ts?30837:30805),Ps(u,2,d),Zs(u,4,1),Zs(u,5,e.length);let p=6;Ks(L,e,p),p+=e.length,Zs(u,p,c.length),p++,Ks(L,c,p),p+=c.length,Ks(L,l,p)}}catch{L=new f}A===Q&&(A=U?8:0),c&&(v=v>45?v:45),b&&!l&&(v=v>51?v:51,B[9]=A,A=99);const H=_?Xs(T):0,P=H+Xs(B,I,N,L,h),{headerArray:V,headerView:X,rawLastModDate:$}=Gs({version:v,bitFlag:Ys(o,d,u,b,A),compressionMethod:A,uncompressedSize:k,lastModDate:J>r?J:r>Y?Y:r,rawFilename:t,zip64CompressedSize:S,zip64UncompressedSize:z,extraFieldLength:P});let ee=G;const te=new f(ee+Xs(t)+P),re=js(te);return Vs(re,0,W),Ks(te,V,4),Ks(te,t,ee),ee+=Xs(t),_&&Ks(te,T,ee),ee+=H,Ks(te,B,ee),ee+=Xs(B),Ks(te,I,ee),ee+=Xs(I),Ks(te,N,ee),ee+=Xs(N),Ks(te,L,ee),ee+=Xs(L),Ks(te,h,ee),u&&(Vs(re,18,0),Vs(re,22,0)),{localHeaderArray:te,localHeaderView:re,headerArray:V,headerView:X,lastModDate:r,rawLastModDate:$,encrypted:b,compressed:U,version:v,compressionMethod:A,extraFieldExtendedTimestampFlag:O,rawExtraFieldZip64:R,localExtraFieldZip64Length:H,rawExtraFieldExtendedTimestamp:I,rawExtraFieldNTFS:N,rawExtraFieldUnix:L,rawExtraFieldAES:B,extraFieldLength:P}})(c=r.assign({},c,{rawFilename:O,rawComment:H,version:P,versionMadeBy:u,lastModDate:$,lastAccessDate:ee,creationDate:te,rawExtraField:Se,zip64:ze,zip64UncompressedSize:Re,zip64CompressedSize:Te,zip64Offset:Ce,zip64DiskNumberStart:Me,password:ne,rawPassword:ie,level:ge,useWebWorkers:ue,encryptionStrength:oe,extendedTimestamp:le,zipCrypto:ce,bufferedWrite:pe,keepOrder:de,useUnicodeFileNames:we,dataDescriptor:be,dataDescriptorSignature:fe,signal:he,msDosCompatible:l,internalFileAttribute:re,internalFileAttributes:re,externalFileAttribute:U,externalFileAttributes:U,useCompressionStream:ye,passThrough:se,encrypted:!!(ne&&Xs(ne)||ie&&Xs(ie))||se&&We,signature:c[Zr],compressionMethod:me,uncompressedSize:De,offset:e.offset-ve,diskNumberStart:Ae,uid:g,gid:b,setuid:x,setgid:F,sticky:D,unixMode:z,msdosAttributesRaw:E,msdosAttributes:v,unixExternalUpper:N})),Be=(({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=js(n),r&&(a=4,Vs(s,0,B))),{dataDescriptorArray:n,dataDescriptorView:s,dataDescriptorOffset:a}})(c),Ne=Xs(_e.localHeaderArray,Be.dataDescriptorArray);let Ie;ke=Ne+Fe,e.options[as]&&(ke+=ke+64),e.pendingEntriesSize+=ke;try{Ie=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[as],b=t.from(c.values()).pop();let z,S,x,F,D,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 U()):(E=new k,E.size=0,z=!0,e.bufferedWrites++,await Ze(l)),await Ze(E);const{writable:S,diskOffset:C}=l;if(e.addSplitZipSignature){delete e.addSplitZipSignature;const t=new f(4);Vs(js(t),0,_),await Is(l,t),e.offset+=4}g&&((e,t)=>{const{headerInfo:r}=e;let{localHeaderArray:s,extraFieldLength:n}=r,a=js(s),i=64-(t+Xs(s))%64;4>i&&(i+=64);const o=new f(i),c=js(o);Ps(c,0,6534),Ps(c,2,i-2);const l=s;r.localHeaderArray=s=new f(Xs(l)+i),Ks(s,l),Ks(s,o,Xs(l)),a=js(s),Ps(a,28,n+i),e.metadataSize+=i})(i,e.offset-C);const{localHeaderView:W,localHeaderArray:B}=m;z||(await t,await R(S));const{diskNumber:N}=l;D=!0,A.diskNumberStart=N,z?v=new d(E.readable).blob():await Is(E,B),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:k,rawExtraFieldUnix:D,rawExtraFieldAES:E}=l,{dataDescriptorArray:v}=d,{rawFilename:A,lastAccessDate:U,creationDate:R,password:T,rawPassword:C,level:W,zip64:_,zip64UncompressedSize:B,zip64CompressedSize:N,zip64Offset:I,zip64DiskNumberStart:O,zipCrypto:L,dataDescriptor:H,directory:Z,executable:P,versionMadeBy:V,rawComment:q,rawExtraField:K,useWebWorkers:j,onstart:X,onprogress:G,onend:Y,signal:J,encryptionStrength:$,extendedTimestamp:ee,msDosCompatible:te,internalFileAttributes:re,externalFileAttributes:se,uid:ne,gid:ie,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:ue,msdosAttributesRaw:pe,msdosAttributes:fe,useCompressionStream:he,passThrough:we}=c,me={lock:n,versionMadeBy:V,zip64:_,directory:!!Z,executable:!!P,filenameUTF8:!0,rawFilename:A,commentUTF8:!0,rawComment:q,rawExtraFieldZip64:z,localExtraFieldZip64Length:S,rawExtraFieldExtendedTimestamp:x,rawExtraFieldNTFS:k,rawExtraFieldUnix:D,rawExtraFieldAES:E,rawExtraField:K,extendedTimestamp:ee,msDosCompatible:te,internalFileAttributes:re,externalFileAttributes:se,diskNumberStart:s,uid:ne,gid:ie,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:ue,msdosAttributesRaw:pe,msdosAttributes:fe};let{signature:ge,uncompressedSize:ye}=c,be=0;we||(ye=0);const{writable:ze}=t;if(e){e.chunkSize=ae(o);const r=e.readable,s=e.size,n={options:{codecType:Xt,level:W,rawPassword:C,password:T,encryptionStrength:$,zipCrypto:m&&L,passwordVerification:m&&L&&w>>8&M,signed:!we,compressed:g&&!we,encrypted:m&&!we,useWebWorkers:j,useCompressionStream:he,transferStreams:!1},config:o,streamOptions:{signal:J,size:s,onstart:X,onprogress:G,onend:Y}};try{const e=await pr({readable:r,writable:ze},n);be=e.outputSize,t.size+=be,we||(ye=e.inputSize,ge=e.signature)}catch(e){throw e.outputSize!==Q&&(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===Q||(Vs(l,10,e),c&&Vs(u,p,e)),i?c&&(qs(u,p+4,a(t)),qs(u,p+12,a(r))):(Vs(l,14,t),Vs(l,18,r),c&&(Vs(u,p+4,t),Vs(u,p+8,r)))})({signature:ge,compressedSize:be,uncompressedSize:ye,headerInfo:l,dataDescriptorInfo:d},c),H&&await Is(t,v),r.assign(me,{uncompressedSize:ye,compressedSize:be,lastModDate:h,rawLastModDate:w,creationDate:R,lastAccessDate:U,encrypted:m,zipCrypto:L,size:u+be,compressionMethod:b,version:y,headerArray:p,headerView:f,signature:ge,extraFieldExtendedTimestampFlag:F,zip64UncompressedSize:B,zip64CompressedSize:N,zip64Offset:I,zip64DiskNumberStart:O}),me})(n,E,A,i,e.config,o);const{zip64:I}=A;if(D=!1,c.set(s,A),A.filename=s,z){const[r]=await y.all([v,E.writable.getWriter().close(),t]);await U(),F=!0,A.diskNumberStart=l.diskNumber,A.offset=e.offset-l.diskOffset,I&&Ns(A),(({rawFilename:e,encrypted:t,zip64:r,localExtraFieldZip64Length:s,signature:n,compressedSize:i,uncompressedSize:o,zip64UncompressedSize:c,zip64CompressedSize:l},d,{dataDescriptor:u})=>{if(u||(t||Vs(d,14,n),l||Vs(d,18,i),c||Vs(d,22,o)),r&&s){let t=G+Xs(e)+4;c&&(qs(d,t,a(o)),t+=8),l&&(qs(d,t,a(i)),t+=8)}})(A,W,o),await R(S),await Is(l,B),await r.stream().pipeTo(S,{preventClose:!0,preventAbort:!0,signal:w}),l.size+=E.size,F=!1}else A.offset=e.offset-C,I&&Ns(A);if(A.offset>T&&!I)throw new p(Us);return e.offset+=A.size,A}catch(t){if(z&&F||!z&&D){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 U(){e.writerLocked=!0;const{lockWriter:t}=e;e.lockWriter=new y(t=>S=()=>{e.writerLocked=!1,t()}),await t}async function R(e){Xs(m.localHeaderArray)>l.availableSize&&(l.availableSize=0,await Is(e,new f))}})(e,s,n,{headerInfo:_e,dataDescriptorInfo:Be,metadataSize:Ne},c)}finally{e.pendingEntriesSize-=ke}return r.assign(Ie,{name:s,comment:L,extraField:xe}),new Gr(Ie)})(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():Ms--}}remove(e){const{filenames:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==Q){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,rawExtraFieldUnix:o,rawExtraField:c,extendedTimestamp:l,extraFieldExtendedTimestampFlag:d,lastModDate:p}=e;let h;if(l){h=new f(9);const e=js(h);Ps(e,0,Z),Ps(e,2,5),Zs(e,4,d),Vs(e,5,i.floor(p.getTime()/1e3))}else h=new f;e.rawExtraFieldExtendedTimestamp=h,u+=46+Xs(t,n,r,s,a,o,h,c)}const m=new f(u),g=js(m);await Ze(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,rawExtraFieldUnix:p,rawExtraField:f,rawComment:h,versionMadeBy:w,headerArray:b,headerView:z,zip64:S,zip64UncompressedSize:x,zip64CompressedSize:F,zip64DiskNumberStart:k,zip64Offset:D,internalFileAttributes:E,externalFileAttributes:v,diskNumberStart:A,uncompressedSize:U,compressedSize:R}=r,M=Xs(i,c,l,u,p,f);Vs(g,d,N),Ps(g,d+4,w),x||Vs(z,18,U),F||Vs(z,14,R),Ks(m,b,d+6);let W=d+G;if(Ps(g,W,M),W+=2,Ps(g,W,Xs(h)),W+=2,Ps(g,W,S&&k?C:A),W+=2,Ps(g,W,E),W+=2,v&&Vs(g,W,v),W+=4,Vs(g,W,S&&D?T:t),W+=4,Ks(m,a,W),W+=Xs(a),Ks(m,i,W),W+=Xs(i),Ks(m,c,W),W+=Xs(c),Ks(m,l,W),W+=Xs(l),Ks(m,u,W),W+=Xs(u),Ks(m,p,W),W+=Xs(p),Ks(m,f,W),W+=Xs(f),Ks(m,h,W),W+=Xs(h),d-y>o.availableSize&&(o.availableSize=0,await Is(o,m.slice(y,d)),y=d),d=W,s.onprogress)try{await s.onprogress(e+1,n.size,new Gr(r))}catch{}}await Is(o,y?m.slice(y):m);let b=o.diskNumber;const{availableSize:z}=o;H>z&&b++;let S=Ls(e,s,Wr);if(h>T||u>T||w>C||b>C){if(!1===S)throw new p(Us);S=!0}const x=new f(S?98:H),F=js(x);d=0,S&&(Vs(F,0,O),qs(F,4,a(44)),Ps(F,12,45),Ps(F,14,45),Vs(F,16,b),Vs(F,20,l),qs(F,24,a(w)),qs(F,32,a(w)),qs(F,40,a(u)),qs(F,48,a(h)),Vs(F,56,L),qs(F,64,a(h)+a(u)),Vs(F,72,b+1),Ls(e,s,ss,!0)&&(b=C,l=C),w=C,h=T,u=T,d+=76),Vs(F,d,I),Ps(F,d+4,b),Ps(F,d+6,l),Ps(F,d+8,w),Ps(F,d+10,w),Vs(F,d+12,u),Vs(F,d+16,h);const k=Xs(r);if(k){if(k>C)throw new p("Zip file comment exceeds 64KB");Ps(F,d+20,k)}await Is(o,x),k&&await Is(o,r)})(this,e,r),Ls(this,r,rs)||await o.getWriter().close(),n.getData?n.getData():o}}function Bs(e){if(e===Q)return new f;{const t=new f(4);js(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}function Ns({compressedSize:e,uncompressedSize:t,offset:r,diskNumberStart:s,zip64UncompressedSize:n,zip64CompressedSize:i,zip64Offset:o,zip64DiskNumberStart:c,rawExtraFieldZip64:l}){const d=js(l);let u=4;n&&(qs(d,u,a(t)),u+=8),i&&(qs(d,u,a(e)),u+=8),o&&(qs(d,u,a(r)),u+=8),c&&Vs(d,u,s)}async function Is(e,t){const{writable:r}=e,s=r.getWriter();try{await s.ready,e.size+=Xs(t),await s.write(t)}finally{s.releaseLock()}}function Os(e){if(e)return(a(e.getTime())+a(116444736e5))*a(1e4)}function Ls(e,t,r,s){const n=t[r]===Q?e.options[r]:t[r];return n===Q?s:n}function Hs(e){return e+5*(i.floor(e/16383)+1)}function Zs(e,t,r){e.setUint8(t,r)}function Ps(e,t,r){e.setUint16(t,r,!0)}function Vs(e,t,r){e.setUint32(t,r,!0)}function qs(e,t,r){e.setBigUint64(t,r,!0)}function Ks(e,t,r){e.set(t,r)}function js(e){return new m(e.buffer)}function Xs(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function Gs({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=js(d);Ps(u,0,e),Ps(u,2,t),Ps(u,4,r);const p=new w(1),h=js(p);Ps(h,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),Ps(h,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate());const m=p[0];return Vs(u,6,m),(o||n!==Q)&&Vs(u,14,o?T:n),(c||s!==Q)&&Vs(u,18,c?T:s),Ps(u,22,Xs(i)),Ps(u,24,l),{headerArray:d,headerView:u,rawLastModDate:m}}function Ys(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 Js{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 Qs extends Js{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 Qs(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([Ze(s),Ze(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==et)return!1;throw e}}getText(e,t){return this.getData(new Se(e),t)}getBlob(e,t){return this.getData(new be(e),t)}getData64URI(e,t){return this.getData(new ge(e),t)}getUint8Array(e){return this.getData(new Ne,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:ye,Writer:be,reader:null})}replaceText(e){r.assign(this,{data:e,Reader:ze,Writer:Se,reader:null})}replaceData64URI(e){r.assign(this,{data:e,Reader:me,Writer:ge,reader:null})}replaceUint8Array(e){r.assign(this,{data:e,Reader:Be,Writer:Ne,reader:null})}replaceReadable(e){r.assign(this,{data:null,Reader:()=>({readable:e}),Writer:null,reader:null})}}class $s extends Js{constructor(e,t,r,s){super(e,t,r,s),this.directory=!0}clone(e){const t=this,r=new $s(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 cn(this,e,{options:t},!0)}addText(e,t,r={}){return cn(this,e,{data:t,Reader:ze,Writer:Se,options:r,uncompressedSize:t.length})}addBlob(e,t,r={}){return cn(this,e,{data:t,Reader:ye,Writer:be,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 cn(this,e,{data:t,Reader:me,Writer:ge,options:r,uncompressedSize:i.floor(.75*(s-n))})}addUint8Array(e,t,r={}){return cn(this,e,{data:t,Reader:Be,Writer:Ne,options:r,uncompressedSize:t.length})}addHttpContent(e,t,r={}){return cn(this,e,{data:t,Reader:class extends _e{constructor(e){super(e,r)}},options:r})}addReadable(e,t,r={}){return cn(this,e,{Reader:()=>({readable:t}),options:r})}addFileSystemEntry(e,t={}){return nn(this,e,t)}addFileSystemHandle(e,t={}){return nn(this,e,t)}addFile(e,t={}){return t.lastModDate||(t.lastModDate=new o(e.lastModified)),cn(this,e.name,{data:e,Reader:()=>({readable:e.stream(),size:e.size}),options:t,uncompressedSize:e.size})}addData(e,t){return cn(this,e,t)}importBlob(e,t){return this.importZip(new ye(e),t)}importData64URI(e,t){return this.importZip(new me(e),t)}importUint8Array(e,t){return this.importZip(new Be(e),t)}importHttpContent(e,t){return this.importZip(new _e(e,t),t)}importReadable(e,t){return this.importZip({readable:e},t)}exportBlob(e={}){return this.exportZip(new be(e.mimeType||"application/zip"),e)}exportData64URI(e={}){return this.exportZip(new ge(e.mimeType||"application/zip"),e)}exportUint8Array(e={}){return this.exportZip(new Ne,e)}async exportWritable(e=new E,t={}){return await this.exportZip({writable:e},t),e}async importZip(e,t={}){await Ze(e);const s=new fs(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 $s(this.fs,t,{data:r==a.length-1?e:null},i),n.push(s))}),e.directory||n.push(cn(s,i,{data:e,Reader:tn(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===Q&&(s.bufferedWrite=!0),await y.all([rn(n,s.readerOptions),Ze(e)]);const a=new _s(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 Gr){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 en={FS:class{constructor(){on(this)}get children(){return this.root.children}remove(e){sn(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");sn(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 on(this),this.root.importBlob(e,t)}importData64URI(e,t){return on(this),this.root.importData64URI(e,t)}importUint8Array(e,t){return on(this),this.root.importUint8Array(e,t)}importHttpContent(e,t){return on(this),this.root.importHttpContent(e,t)}importReadable(e,t){return on(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:$s,ZipFileEntry:Qs};function tn(e){return class extends he{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 be,r.assign({},t.options,e));t.data=s,t.blobReader=new ye(s),super.init()}readUint8Array(e,t){return this.blobReader.readUint8Array(e,t)}}}async function rn(e,t){e.children.length&&await y.all(e.children.map(async e=>{if(e.directory)await rn(e,t);else{const r=e.reader=new e.Reader(e.data,t);try{await Ze(r)}catch(t){try{t.entryId=e.id,t.cause={entry:e}}catch{}throw t}e.uncompressedSize=r.size}}))}function sn(e){if(e.parent){const t=e.parent.children;t.forEach((r,s)=>{r.id==e.id&&t.splice(s,1)})}}function nn(e,t,s){return async function e(t,n,a){if(n)try{if((n.isFile||n.isDirectory)&&(n=await an(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 an(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 an(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 on(e){e.entries=[],e.root=new $s(e)}function cn(e,t,r,s){if(e.directory)return s?new $s(e.fs,t,r,e):new Qs(e.fs,t,r,e);throw new p("Parent entry is not a directory")}e.fs=en});
|
|
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:g,Blob:m,Promise:y,TextEncoder:b,TextDecoder:z,document:S,crypto:x,btoa:F,TransformStream:k,ReadableStream:D,WritableStream:E,CompressionStream:v,DecompressionStream:A,navigator:U,Worker:R}="undefined"!=typeof globalThis?globalThis:this||self,T=4294967295,C=65535,M=255,W=67324752,_=134695760,B=_,N=33639248,I=101010256,O=101075792,L=117853008,H=22,Z=21589,P=2048,V=16384,q=2048,K=1024,j=512,X="/",G=30,Y=new o(2107,11,31),J=new o(1980,0,1),Q=void 0,$=1/0,ee="undefined",te="function";let re=2;try{typeof U!=ee&&U.hardwareConcurrency&&(re=U.hardwareConcurrency)}catch{}const se={workerURI:"./core/web-worker-wasm.js",wasmURI:"./core/streams/zlib-wasm/zlib-streams.wasm",chunkSize:65536,maxWorkers:re,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,CompressionStream:typeof v!=ee&&v,DecompressionStream:typeof A!=ee&&A},ne=r.assign({},se);function ae(){return ne}function ie(e){return i.max(e.chunkSize,64)}const oe="HTTP error ",ce="HTTP Range not supported",le="Range",de="GET",ue="bytes",pe=65536,fe="writable";class he{constructor(){this.size=0}init(){this.initialized=!0}}class we extends he{get readable(){const e=this,{chunkSize:t=pe}=e,r=new D({start(){this.chunkOffset=0},async pull(s){const{offset:n=0,size:a,diskNumberStart:o}=r,{chunkOffset:c}=this,l=a===Q?t:i.min(t,a-c),d=await Ve(e,n+c,l,o);s.enqueue(d),c+t>a||a===Q&&!d.length&&l?s.close():this.chunkOffset+=t}});return r}}class ge extends he{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,fe,{get:()=>t})}writeUint8Array(){}}class me extends we{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 ye extends ge{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 be extends we{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 ze extends he{constructor(e){super();const t=new k,s=[];e&&s.push(["Content-Type",e]),r.defineProperty(this,fe,{get:()=>t.writable}),this.blob=new d(t.readable,{headers:s}).blob()}getData(){return this.blob}}class Se extends be{constructor(e){super(new m([e],{type:"text/plain"}))}}class xe extends ze{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 Fe extends we{constructor(e,t){super(),De(this,e,t)}async init(){await Ee(this,We,Re),super.init()}readUint8Array(e,t){return ve(this,e,t,We,Re)}}class ke extends we{constructor(e,t){super(),De(this,e,t)}async init(){await Ee(this,_e,Te),super.init()}readUint8Array(e,t){return ve(this,e,t,_e,Te)}}function De(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 Ee(e,t,r){const{url:s,preventHeadRequest:a,useRangeHeader:i,forceRangeRequests:o,combineSizeEocd:c}=e;if((e=>{const{baseURI:t}=ae(),{protocol:r}=new u(e,t);return"http:"==r||"https:"==r})(s)&&(i||o)&&(void 0===a||a)){const s=await t(de,e,Ae(e,c?-22:void 0)),a=s.headers.get("Accept-Ranges");if(!(o||a&&a.toLowerCase()==ue))throw new p(ce);{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===Q?await Me(e,t,r):e.size=a}}else await Me(e,t,r)}async function ve(e,t,r,s,n){const{useRangeHeader:a,forceRangeRequests:i,eocdCache:o,size:c,options:l}=e;if(a||i){if(o&&t==c-H&&r==H)return o;if(c>t){t+r>c&&(r=c-t);const n=await s(de,e,Ae(e,t,r));if(206!=n.status)throw new p(ce);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 Ae(e,t=0,s=1){return r.assign({},Ue(e),{[le]:ue+"="+(0>t?t:t+"-"+(t+s-1))})}function Ue({options:e}){const{headers:t}=e;if(t)return Symbol.iterator in t?r.fromEntries(t):t}async function Re(e){await Ce(e,We)}async function Te(e){await Ce(e,_e)}async function Ce(e,t){const r=await t(de,e,Ue(e));e.data=new f(await r.arrayBuffer()),e.size||(e.size=e.data.length)}async function Me(e,t,r){if(e.preventHeadRequest)await r(e,e.options);else{const s=(await t("HEAD",e,Ue(e))).headers.get("Content-Length");s?e.size=n(s):await r(e,e.options)}}async function We(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(ce):new p(oe+(a.statusText||a.status))}function _e(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(ce):new p(oe+(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 Be extends we{constructor(e,t={}){super(),r.assign(this,{url:e,reader:t.useXHR?new ke(e,t):new Fe(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 Ne extends we{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 Ie extends ge{constructor(e){super(),this.defaultBufferSize=e||262144}init(e=0){r.assign(this,{offset:0,array:new f(e>0?e:this.defaultBufferSize)}),super.init()}writeUint8Array(e){const t=this,r=t.offset+e.length;if(r>t.array.length){let e=t.array.length?2*t.array.length:t.defaultBufferSize;for(;r>e;)e*=2;const s=t.array;t.array=new f(e),t.array.set(s)}t.array.set(e,t.offset),t.offset+=e.length}getData(){return this.offset===this.array.length?this.array:this.array.slice(0,this.offset)}}class Oe extends we{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 Ve(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 Ve(l,c,t)}else a=new f;return s.lastDiskNumber=i.max(o,s.lastDiskNumber),a}}class Le extends he{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 Pe(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,fe,{get:()=>o})}}class He{constructor(e){return t.isArray(e)&&(e=new Oe(e)),e instanceof D&&(e={readable:e}),e}}class Ze{constructor(e){return e.writable===Q&&typeof e.next==te&&(e=new Le(e)),e instanceof E&&(e={writable:e}),e.size===Q&&(e.size=0),e instanceof Le||r.assign(e,{diskNumber:0,diskOffset:0,availableSize:$,maxSize:$}),e}}async function Pe(e,t){if(!e.init||e.initialized)return y.resolve();await e.init(t)}function Ve(e,t,r,s){return e.readUint8Array(t,r,s)}const qe=[];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;qe[e]=t}class Ke{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^qe[255&(t^e[r])];this.crc=t}get(){return~this.crc}}class je extends k{constructor(){let e;const t=new Ke;super({transform(e,r){t.append(e),r.enqueue(e)},flush(){const r=new f(4);new g(r.buffer).setUint32(0,t.get()),e.value=r}}),e=this}}function Xe(e){if(typeof b==ee){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 Ge={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const r=e[e.length-1],s=Ge.getPartial(r);return 32===s?e.concat(t):Ge._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)+Ge.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]=Ge.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=Ge.getPartial(n);return s.push(Ge.partial(t+a&31,t+a>32?r:s.pop(),1)),s}},Ye={bytes:{fromBits(e){const t=Ge.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(Ge.partial(8*(3&r),s)),t}}},Je=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=Ye.utf8String.toBits(e));const r=t._buffer=Ge.concat(t._buffer,e),s=t._length,n=t._length=s+Ge.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=Ge.concat(t,[Ge.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}},Qe={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}},$e={importKey:e=>new $e.hmacSha1(Ye.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 g(d);let f=0;const h=Ge;for(t=Ye.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=Je,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)}}},et=typeof x!=ee&&typeof x.getRandomValues==te,tt="Invalid password",rt="Invalid signature",st="zipjs-abort-check-password";function nt(e){return et?x.getRandomValues(e):Qe.getRandomValues(e)}const at=16,it={name:"PBKDF2"},ot=r.assign({hash:{name:"HMAC"}},it),ct=r.assign({iterations:1e3,hash:{name:"SHA-1"}},it),lt=["deriveBits"],dt=[8,12,16],ut=[16,24,32],pt=10,ft=[0,0,0,0],ht=typeof x!=ee,wt=ht&&x.subtle,gt=ht&&typeof wt!=ee,mt=Ye.bytes,yt=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],g=e[t?3:1]^r[1],m=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[g>>16&255]^c[m>>8&255]^l[255&y]^r[b],f=i[g>>>24]^o[m>>16&255]^c[y>>8&255]^l[255&w]^r[b+1],h=i[m>>>24]^o[y>>16&255]^c[w>>8&255]^l[255&g]^r[b+2],y=i[y>>>24]^o[w>>16&255]^c[g>>8&255]^l[255&m]^r[b+3],b+=4,w=u,g=f,m=h;for(let e=0;4>e;e++)n[t?3&-e:e]=d[w>>>24]<<24^d[g>>16&255]<<16^d[m>>8&255]<<8^d[255&y]^r[b++],u=w,w=g,g=m,m=y,y=u;return n}},bt=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=Ge.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 Ge.clamp(t,n)}},zt=$e.hmacSha1;let St=ht&>&&typeof wt.importKey==te,xt=ht&>&&typeof wt.deriveBits==te;class Ft extends k{constructor({password:e,rawPassword:t,signed:s,encryptionStrength:n,checkPasswordOnly:a}){super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:vt(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 Et(e,t,r,Ut(s,0,dt[t])),a=Ut(s,dt[t]);if(n[0]!=a[0]||n[1]!=a[1])throw new p(tt)})(r,n,s,Ut(e,0,dt[n]+2)),e=Ut(e,dt[n]+2),a?t.error(new p(st)):i()):await o;const c=new f(e.length-pt-(e.length-pt)%at);t.enqueue(Dt(r,e,c,0,pt,!0))},async flush(e){const{signed:t,ctr:r,hmac:s,pending:n,ready:a}=this;if(s&&r){await a;const i=Ut(n,0,n.length-pt),o=Ut(n,n.length-pt);let c=new f;if(i.length){const e=Tt(mt,i);s.update(e);const t=r.update(e);c=Rt(mt,t)}if(t){const e=Ut(Rt(mt,s.digest()),0,pt);for(let t=0;pt>t;t++)if(e[t]!=o[t])throw new p(rt)}e.enqueue(c)}}})}}class kt extends k{constructor({password:e,rawPassword:t,encryptionStrength:s}){let n;super({start(){r.assign(this,{ready:new y(e=>this.resolveReady=e),password:vt(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=nt(new f(dt[t]));return At(s,await Et(e,t,r,s))})(r,n,s),a()):await i;const c=new f(o.length+e.length-e.length%at);c.set(o,0),t.enqueue(Dt(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(Tt(mt,s));r.update(e),i=Rt(mt,e)}n.signature=Rt(mt,r.digest()).slice(0,pt),e.enqueue(At(i,n.signature))}}}),n=this}}function Dt(e,t,r,s,n,a){const{ctr:i,hmac:o,pending:c}=e,l=t.length-n;let d;for(c.length&&(t=At(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%at)),d=0;l-at>=d;d+=at){const e=Tt(mt,Ut(t,d,d+at));a&&o.update(e);const n=i.update(e);a||o.update(n),r.set(Rt(mt,n),d+s)}return e.pending=Ut(t,d),r}async function Et(e,s,n,a){e.password=null;const i=await(async(e,t,r,s,n)=>{if(!St)return $e.importKey(t);try{return await wt.importKey("raw",t,r,!1,n)}catch{return St=!1,$e.importKey(t)}})(0,n,ot,0,lt),o=await(async(e,t,r)=>{if(!xt)return $e.pbkdf2(t,e.salt,ct.iterations,r);try{return await wt.deriveBits(e,t,r)}catch{return xt=!1,$e.pbkdf2(t,e.salt,ct.iterations,r)}})(r.assign({salt:a},ct),i,8*(2*ut[s]+2)),c=new f(o),l=Tt(mt,Ut(c,0,ut[s])),d=Tt(mt,Ut(c,ut[s],2*ut[s])),u=Ut(c,2*ut[s]);return r.assign(e,{keys:{key:l,authentication:d,passwordVerification:u},ctr:new bt(new yt(l),t.from(ft)),hmac:new zt(d)}),u}function vt(e,t){return t===Q?Xe(e):t}function At(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 Ut(e,t,r){return e.subarray(t,r)}function Rt(e,t){return e.fromBits(t)}function Tt(e,t){return e.toBits(t)}class Ct extends k{constructor({password:e,passwordVerification:t,checkPasswordOnly:s}){super({start(){r.assign(this,{password:e,passwordVerification:t}),Bt(this,e)},transform(e,t){const r=this;if(r.password){const t=Wt(r,e.subarray(0,12));if(r.password=null,t.at(-1)!=r.passwordVerification)throw new p(tt);e=e.subarray(12)}s?t.error(new p(st)):t.enqueue(Wt(r,e))}})}}class Mt extends k{constructor({password:e,passwordVerification:t}){super({start(){r.assign(this,{password:e,passwordVerification:t}),Bt(this,e)},transform(e,t){const r=this;let s,n;if(r.password){r.password=null;const t=nt(new f(12));t[11]=r.passwordVerification,s=new f(e.length+t.length),s.set(_t(r,t),0),n=12}else s=new f(e.length),n=0;s.set(_t(r,e),n),t.enqueue(s)}})}}function Wt(e,t){const r=new f(t.length);for(let s=0;s<t.length;s++)r[s]=It(e)^t[s],Nt(e,r[s]);return r}function _t(e,t){const r=new f(t.length);for(let s=0;s<t.length;s++)r[s]=It(e)^t[s],Nt(e,t[s]);return r}function Bt(e,t){const s=[305419896,591751049,878082192];r.assign(e,{keys:s,crcKey0:new Ke(s[0]),crcKey2:new Ke(s[2])});for(let r=0;r<t.length;r++)Nt(e,t.charCodeAt(r))}function Nt(e,t){let[r,s,n]=e.keys;e.crcKey0.append([t]),r=~e.crcKey0.get(),s=Lt(i.imul(Lt(s+Ot(r)),134775813)+1),e.crcKey2.append([s>>>24]),n=~e.crcKey2.get(),e.keys=[r,s,n]}function It(e){const t=2|e.keys[2];return Ot(i.imul(t,1^t)>>>8)}function Ot(e){return 255&e}function Lt(e){return 4294967295&e}const Ht="Invalid uncompressed size";class Zt extends k{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 je,f=Kt(f,u)),n&&(f=qt(f,i,{level:l,chunkSize:t},s,r,s)),a&&(o?f=Kt(f,new Mt(e)):(p=new kt(e),f=Kt(f,p))),Vt(d,f,()=>{let e;a&&!o&&(e=p.signature),a&&!o||!c||(e=new g(u.value.buffer).getUint32(0)),d.signature=e})}}class Pt extends k{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=Kt(h,new Ct(e)):(f=new Ft(e),h=Kt(h,f))),c&&(h=qt(h,l,{chunkSize:t,deflate64:d},s,r,s)),a&&!n||!i||(u=new je,h=Kt(h,u)),Vt(this,h,()=>{if((!a||n)&&i){const e=new g(u.value.buffer);if(o!=e.getUint32(0,!1))throw new p(rt)}})}}function Vt(e,t,s){t=Kt(t,new k({flush:s})),r.defineProperty(e,"readable",{get:()=>t})}function qt(e,t,r,s,n,a){const i=t&&s?s:n||a,o=r.deflate64?"deflate64-raw":"deflate-raw";try{e=Kt(e,new i(o,r))}catch(s){if(!t)throw s;if(n)e=Kt(e,new n(o,r));else{if(!a)throw s;e=Kt(e,new a(o,r))}}return e}function Kt(e,t){return e.pipeThrough(t)}const jt="data",Xt="close",Gt="deflate",Yt="inflate";class Jt extends k{constructor(e,t){super({});const s=this,{codecType:n}=e;let a;n.startsWith(Gt)?a=Zt:n.startsWith(Yt)&&(a=Pt),s.outputSize=0;let i=0;const o=new a(e,t),c=super.readable,l=new k({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){r.assign(s,{inputSize:i})}}),d=new k({transform(t,r){if(t&&t.length&&(r.enqueue(t),s.outputSize+=t.length,e.outputSize!==Q&&s.outputSize>e.outputSize))throw new p(Ht)},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 Qt extends k{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)}})}}const $t={type:"module"};let er,tr,rr,sr=!0;class nr{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 Qt(a.chunkSize)).pipeThrough(new ar(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)}}),er===Q&&(er=typeof R!=ee),(o&&er?cr:or)(e,a)}}class ar extends k{constructor({onstart:e,onprogress:t,size:r,onend:s}){let n=0;super({async start(){e&&await ir(e,r)},async transform(e,s){n+=e.length,t&&await ir(t,n,r),s.enqueue(e)},async flush(){s&&await ir(s,n)}})}}async function ir(e,...t){try{await e(...t)}catch{}}function or(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 Jt(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 cr(e,t){const{baseURI:s,chunkSize:n}=t;let{wasmURI:a}=t;if(!e.interface){let i;typeof a==te&&(a=a());try{i=lr(e.workerURI,s,e)}catch{return er=!1,or(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=dr({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}function lr(e,t,s,n,a=!0){let i,o,c;if(tr===Q){const r=typeof e==te;o=r?e(a):e;const l=o.startsWith("data:"),d=o.startsWith("blob:");if(l||d){n===Q&&(n=!1),n&&(c=$t);try{i=new R(o,c)}catch(a){if(d)try{u.revokeObjectURL(o)}catch{}if(r&&d)return lr(e,t,s,n,!1);if(n)throw a;return lr(e,t,s,!0,!1)}}else{n===Q&&(n=!0),n&&(c=$t);try{o=new u(o,t)}catch{}try{i=new R(o,c)}catch(r){if(n)throw r;return lr(e,t,s,!1,a)}}tr=o,rr=c}else i=new R(tr,rr);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();dr({type:jt,value:e,done:r,messageId:a},t)}s==jt&&(await l.ready,await l.write(new f(n)),dr({type:"ack",messageId:a},t)),s==Xt&&w(null,i)}}catch(o){dr({type:Xt,messageId:a},t),w(o)}function w(e,t){e?u(e):d(t),l&&l.releaseLock(),h()}})(e,s)),i}function dr(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&&sr?(s&&i.push(s),a&&i.push(a)):e.readable=e.writable=null,i.length)try{return t.postMessage(e,i),!0}catch{sr=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),s(),e}}let ur=[];const pr=[];let fr=0;async function hr(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===Q;const f=!(c||l||d||t.transferStreams);return t.useWebWorkers=!f&&(i||i===Q&&s.useWebWorkers),t.workerURI=t.useWebWorkers&&u?u:Q,r.useCompressionStream=o||o===Q&&s.useCompressionStream,(await(async()=>{const r=ur.find(e=>!e.busy);if(r)return wr(r),new nr(r,e,t,h);if(ur.length<p){const r={indexWorker:fr};return fr++,ur.push(r),new nr(r,e,t,h)}return new y(r=>pr.push({resolve:r,stream:e,workerOptions:t}))})()).run();function h(e){if(pr.length){const[{resolve:t,stream:r,workerOptions:s}]=pr.splice(0,1);t(new nr(e,r,s,h))}else e.worker?(wr(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:s}=r;n.isFinite(s)&&s>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{ur=ur.filter(t=>t!=e);try{await e.terminate()}catch{}},s))})(e,t)):ur=ur.filter(t=>t!=e)}}function wr(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}const gr="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function mr(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=gr[e[r]];return t}})(e):new z(t).decode(e)}const yr="filename",br="rawFilename",zr="comment",Sr="rawComment",xr="uncompressedSize",Fr="compressedSize",kr="offset",Dr="diskNumberStart",Er="lastModDate",vr="rawLastModDate",Ar="lastAccessDate",Ur="creationDate",Rr="rawCreationDate",Tr="internalFileAttributes",Cr="externalFileAttributes",Mr="msdosAttributesRaw",Wr="msdosAttributes",_r="msDosCompatible",Br="zip64",Nr="encrypted",Ir="version",Or="versionMadeBy",Lr="zipCrypto",Hr="directory",Zr="executable",Pr="compressionMethod",Vr="signature",qr="extraField",Kr="unixMode",jr="setuid",Xr="setgid",Gr="sticky",Yr=[yr,br,xr,Fr,Er,vr,zr,Sr,Ar,Ur,Rr,kr,Dr,Tr,Cr,Mr,Wr,_r,Br,Nr,Ir,Or,Lr,Hr,Zr,Pr,Vr,qr,"extraFieldUnix","extraFieldInfoZip","uid","gid",Kr,jr,Xr,Gr,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Jr{constructor(e){Yr.forEach(t=>this[t]=e[t])}}const Qr="password",$r="rawPassword",es="passThrough",ts="signal",rs="useWebWorkers",ss="useCompressionStream",ns="preventClose",as="supportZip64SplitFile",is="offset",os="usdz",cs="File format is not recognized",ls="Compression method not supported",ds="Split zip file",us="utf-8",ps="cp437",fs=[[xr,T],[Fr,T],[kr,T],[Dr,C]],hs={[C]:{getValue:vs,bytes:4},[T]:{getValue:As,bytes:8}};class ws{constructor(e,t={}){r.assign(this,{reader:new He(e),options:t,config:ae(),readRanges:[]})}async*getEntriesGenerator(e={}){const t=this;let{reader:s}=t;const{config:n}=t;if(await Pe(s),s.size!==Q&&s.readUint8Array||(s=new be(await new d(s.readable).blob()),await Pe(s)),s.size<H)throw new p(cs);s.chunkSize=ie(n);const a=await(async(e,t,r)=>{const s=new f(4);var n;return n=t,Us(s).setUint32(0,n,!0),await a(22)||await a(i.min(1048582,r));async function a(t){const n=r-t,a=await Ve(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,I,s.size);if(!a)throw vs(Us(await Ve(s,0,4)))==_?new p(ds):new p("End of central directory not found");const o=Us(a);let c=vs(o,12),l=vs(o,16);const u=a.offset,h=Es(o,20),w=u+H+h;let g=Es(o,4);const m=s.lastDiskNumber||0;let b=Es(o,6),z=Es(o,8),S=0,x=0;if(l==T||c==T||z==C||b==C){const e=Us(await Ve(s,a.offset-20,20));if(vs(e,0)==L){l=As(e,8);let t=await Ve(s,l,56,-1),r=Us(t);const n=a.offset-20-56;if(vs(r,0)!=O&&l!=n){const e=l;l=n,l>e&&(S=l-e),t=await Ve(s,l,56,-1),r=Us(t)}if(vs(r,0)!=O)throw new p("End of Zip64 central directory locator not found");g==C&&(g=vs(r,16)),b==C&&(b=vs(r,20)),z==C&&(z=As(r,32)),c==T&&(c=As(r,40)),l-=c}}if(l<s.size||(S=s.size-l-c-H,l=s.size-c-H),m!=g)throw new p(ds);if(0>l)throw new p(cs);let F=0,D=await Ve(s,l,c,b),E=Us(D);if(c){const e=a.offset-c;if(vs(E,F)!=N&&l!=e){const t=l;l=e,l>t&&(S+=l-t),D=await Ve(s,l,c,b),E=Us(D)}}const v=a.offset-l-(s.lastDiskOffset||0);if(c==v||0>v||(c=v,D=await Ve(s,l,c,b),E=Us(D)),0>l||l>=s.size)throw new p(cs);const A=xs(t,e,"filenameEncoding"),U=xs(t,e,"commentEncoding");for(let a=0;z>a;a++){const o=new gs(s,n,t.options);if(vs(E,F)!=N)throw new p("Central directory header not found");ms(o,E,F+6);const c=!!o.bitFlag.languageEncodingFlag,l=F+46,u=l+o.filenameLength,f=u+o.extraFieldLength,h=Es(E,F+4),w=!(h>>8),g=h>>8==3,m=D.subarray(l,u),b=Es(E,F+32),v=f+b,R=D.subarray(f,v),T=c,W=c,_=vs(E,F+38),B=_&M,I={readOnly:!!(1&B),hidden:!!(2&B),system:!!(4&B),directory:!!(16&B),archive:!!(32&B)},O=vs(E,F+42)+S,L=xs(t,e,"decodeText")||mr,H=T?us:A||ps,Z=W?us:U||ps;let P=L(m,H);P===Q&&(P=mr(m,H));let G=L(R,Z);G===Q&&(G=mr(R,Z)),r.assign(o,{versionMadeBy:h,msDosCompatible:w,compressedSize:0,uncompressedSize:0,commentLength:b,offset:O,diskNumberStart:Es(E,F+34),internalFileAttributes:Es(E,F+36),externalFileAttributes:_,msdosAttributesRaw:B,msdosAttributes:I,rawFilename:m,filenameUTF8:T,commentUTF8:W,rawExtraField:D.subarray(u,f),rawComment:R,filename:P,comment:G}),x=i.max(O,x),ys(o,o,E,F+6);const Y=o.externalFileAttributes>>16&C;o.unixMode===Q&&16877&Y&&(o.unixMode=Y);const J=!!(o.unixMode&q),$=!!(o.unixMode&K),ee=!!(o.unixMode&j),te=o.unixMode!==Q?!!(73&o.unixMode):g&&!!(73&Y),re=o.unixMode!==Q&&(61440&o.unixMode)==V,se=(61440&Y)==V;r.assign(o,{setuid:J,setgid:$,sticky:ee,unixExternalUpper:Y,internalFileAttribute:o.internalFileAttributes,externalFileAttribute:o.externalFileAttributes,executable:te,directory:re||se||w&&I.directory||P.endsWith(X)&&!o.uncompressedSize,zipCrypto:o.encrypted&&!o.extraFieldAES});const ne=new Jr(o);ne.getData=(e,r)=>o.getData(e,ne,t.readRanges,r),ne.arrayBuffer=async e=>{const r=new k,[s]=await y.all([new d(r.readable).arrayBuffer(),o.getData(r,ne,t.readRanges,e)]);return s},F=v;const{onprogress:ae}=e;if(ae)try{await ae(a+1,z,new Jr(o))}catch{}yield ne}const R=xs(t,e,"extractPrependedData"),W=xs(t,e,"extractAppendedData");return R&&(t.prependedData=x>0?await Ve(s,0,x):new f),t.comment=h?await Ve(s,u+H,h):new f,W&&(t.appendedData=w<s.size?await Ve(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 gs=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:g,rawLastModDate:m,uncompressedSize:y,compressedSize:b}=a,{dataDescriptor:z}=w,S=t.localDirectory={},x=Us(await Ve(i,o,G,c));let F=xs(a,n,Qr),k=xs(a,n,$r);const D=xs(a,n,es);if(F=F&&F.length&&F,k=k&&k.length&&k,l&&99!=l.originalCompressionMethod)throw new p(ls);if(0!=u&&8!=u&&9!=u&&!D)throw new p(ls);if(vs(x,0)!=W)throw new p("Local file header not found");ms(S,x,4);const{extraFieldLength:v,filenameLength:A,lastAccessDate:U,creationDate:R}=S;S.rawExtraField=v?await Ve(i,o+G+A,v,c):new f,ys(a,S,x,4,!0),r.assign(t,{lastAccessDate:U,creationDate:R});const T=a.encrypted&&S.encrypted&&!D,C=T&&!l;if(D||(t.zipCrypto=C),T){if(!C&&l.strength===Q)throw new p("Encryption method not supported");if(!F&&!k)throw new p("File contains encrypted entry")}const _=o+G+A+v,N=b,I=i.readable;r.assign(I,{diskNumberStart:c,offset:_,size:N});const O=xs(a,n,ts),L=xs(a,n,"checkPasswordOnly");let H=xs(a,n,"checkOverlappingEntry");const Z=xs(a,n,"checkOverlappingEntryOnly");Z&&(H=!0);const{onstart:P,onprogress:V,onend:q}=n,K=9==u;let j=xs(a,n,ss);K&&(j=!1);const X={options:{codecType:Yt,password:F,rawPassword:k,zipCrypto:C,encryptionStrength:l&&l.strength,signed:xs(a,n,"checkSignature")&&!D,passwordVerification:C&&(z?m>>>8&M:g>>>24&M),outputSize:D?b:y,signature:g,compressed:0!=u&&!D,encrypted:a.encrypted&&!D,useWebWorkers:xs(a,n,rs),useCompressionStream:j,transferStreams:xs(a,n,"transferStreams"),deflate64:K,checkPasswordOnly:L},config:h,streamOptions:{signal:O,size:N,onstart:P,onprogress:V,onend:q}};let Y;H&&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 Ve(e,o+a,f+4,s);if(vs(Us(r),0)==B){const e=vs(Us(r),4);let s,o;l?(s=As(Us(r),8),o=As(Us(r),16)):(s=vs(Us(r),8),o=vs(Us(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:g,compressedSize:b,uncompressedSize:y,dataOffset:_,dataDescriptor:z||S.bitFlag.dataDescriptor,extraFieldZip64:d||S.extraFieldZip64,readRanges:s});try{if(!Z){L&&(e=new E),e=new Ze(e),await Pe(e,D?b:y),({writable:Y}=e);const{outputSize:t}=await hr({readable:I,writable:Y},X);if(e.size+=t,t!=(D?b:y))throw new p(Ht)}}catch(t){if(t.outputSize!==Q&&(e.size+=t.outputSize),!L||t.message!=st)throw t}finally{xs(a,n,ns)||!Y||Y.locked||await Y.getWriter().close()}return L||Z?Q:e.getData?e.getData():Y}};function ms(e,t,s){const n=e.rawBitFlag=Es(t,s+2),a=!(1&~n),i=vs(t,s+6);r.assign(e,{encrypted:a,version:Es(t,s),bitFlag:{level:(6&n)>>1,dataDescriptor:!(8&~n),languageEncodingFlag:(n&P)==P},rawLastModDate:i,lastModDate:Fs(i),filenameLength:Es(t,s+22),extraFieldLength:Es(t,s+24)})}function ys(e,t,s,n,a){const{rawExtraField:i}=t,l=t.extraField=new c,d=Us(new f(i));let u=0;try{for(;u<i.length;){const e=Es(d,u),t=Es(d,u+2);l.set(e,{type:e,data:i.slice(u+4,u+4+t)}),u+=4+t}}catch{}const h=Es(s,n+4);r.assign(t,{signature:vs(s,n+10),compressedSize:vs(s,n+14),uncompressedSize:vs(s,n+18)});const w=l.get(1);w&&(((e,t)=>{t.zip64=!0;const r=Us(e.data),s=fs.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=hs[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 g=l.get(28789);g&&(bs(g,yr,br,t,e),t.extraFieldUnicodePath=g);const m=l.get(25461);m&&(bs(m,zr,Sr,t,e),t.extraFieldUnicodeComment=m);const y=l.get(39169);y?(((e,t,s)=>{const n=Us(e.data),a=Ds(n,4);r.assign(e,{vendorVersion:Ds(n,0),vendorId:Ds(n,2),strength:a,originalCompressionMethod:s,compressionMethod:Es(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=Us(e.data);let n,a=4;try{for(;a<e.data.length&&!n;){const t=Es(s,a),r=Es(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=Us(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:ks(a),lastAccessDate:ks(i),creationDate:ks(o)};r.assign(e,c),r.assign(t,c)}}catch{}})(b,t),t.extraFieldNTFS=b);const z=l.get(30805);if(z)zs(z,t,!1),t.extraFieldUnix=z;else{const e=l.get(30837);e&&(zs(e,t,!0),t.extraFieldInfoZip=e)}const S=l.get(Z);S&&(((e,t,r)=>{const s=Us(e.data),n=Ds(s,0),a=[],i=[];r?(1&~n||(a.push(Er),i.push(vr)),2&~n||(a.push(Ar),i.push("rawLastAccessDate")),4&~n||(a.push(Ur),i.push(Rr))):5>e.data.length||(a.push(Er),i.push(vr));let c=1;a.forEach((r,n)=>{if(e.data.length>=c+4){const a=vs(s,c);t[r]=e[r]=new o(1e3*a);const l=i[n];e[l]=a}c+=4})})(S,t,a),t.extraFieldExtendedTimestamp=S);const x=l.get(6534);x&&(t.extraFieldUSDZ=x)}function bs(e,t,s,n,a){const i=Us(e.data),o=new Ke;o.append(a[s]);const c=Us(new f(4));c.setUint32(0,o.get(),!0);const l=vs(i,1);r.assign(e,{version:Ds(i,0),[t]:mr(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==vs(c,0)}),e.valid&&(n[t]=e[t],n[t+"UTF8"]=!0)}function zs(e,t,s){try{const n=Us(new f(e.data));let a=0;const i=Ds(n,a++),o=Ds(n,a++),c=e.data.subarray(a,a+o);a+=o;const l=Ss(c),d=Ds(n,a++),u=e.data.subarray(a,a+d);a+=d;const p=Ss(u);let h=Q;if(!s&&a+2<=e.data.length){const t=e.data;h=new g(t.buffer,t.byteOffset+a,2).getUint16(0,!0)}r.assign(e,{version:i,uid:l,gid:p,unixMode:h}),l!==Q&&(t.uid=l),p!==Q&&(t.gid=p),h!==Q&&(t.unixMode=h)}catch{}}function Ss(e){const t=new f(4);return t.set(e,0),new g(t.buffer,t.byteOffset,4).getUint32(0,!0)}function xs(e,t,r){return t[r]===Q?e.options[r]:t[r]}function Fs(e){const t=(4294901760&e)>>16,r=e&C;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 ks(e){return new o(n(e/a(1e4)-a(116444736e5)))}function Ds(e,t){return e.getUint8(t)}function Es(e,t){return e.getUint16(t,!0)}function vs(e,t){return e.getUint32(t,!0)}function As(e,t){return n(e.getBigUint64(t,!0))}function Us(e){return new g(e.buffer)}const Rs="Version exceeds 65535",Ts="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",Cs=new f([7,0,2,0,65,69,3,0,0]),Ms="infozip",Ws="unix";let _s=0;const Bs=[];class Ns{constructor(e,t={}){const s=(e=new Ze(e)).availableSize!==Q&&e.availableSize>0&&e.availableSize!==$&&e.maxSize!==Q&&e.maxSize>0&&e.maxSize!==$;r.assign(this,{writer:e,addSplitZipSignature:s,options:t,config:ae(),files:new c,filenames:new l,offset:t[is]===Q?e.size||e.writable.size||0:t[is],pendingEntriesSize:0,pendingAddFileCalls:new l,bufferedWrites:0})}async prependZip(e){if(this.filenames.size)throw new p("Zip file not empty");e=new He(e);const t=new ws(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:g,rawExtraFieldAES:m,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraFieldUnix:z,rawExtraField:S}=e;const{level:x,languageEncodingFlag:F,dataDescriptor:k}=c;g=g||new f,m=m||new f,y=y||new f,b=b||new f,z=e.rawExtraFieldUnix||new f,S=S||new f;const D=Ys(g,m,y,b,z,S),E=w&&d>T,v=w&&u>T,{headerArray:A,headerView:U}=Js({version:t,bitFlag:Qs(x,F,k,l,s),compressionMethod:s,uncompressedSize:d,compressedSize:u,lastModDate:n,rawFilename:o,zip64CompressedSize:v,zip64UncompressedSize:E,extraFieldLength:D});return r.assign(e,{zip64UncompressedSize:E,zip64CompressedSize:v,zip64Offset:w&&this.offset-p>T,zip64DiskNumberStart:w&&h>C,rawExtraFieldZip64:g,rawExtraFieldAES:m,rawExtraFieldExtendedTimestamp:y,rawExtraFieldNTFS:b,rawExtraFieldUnix:z,rawExtraField:S,extendedTimestamp:y.length>0||b.length>0,extraFieldExtendedTimestampFlag:1+(a?2:0)+(i?4:0),headerArray:A,headerView:U}),[e.filename,e]}))}async add(e="",s,n={}){const c=this,{pendingAddFileCalls:l,config:d}=c;let u;_s<d.maxWorkers?_s++:await new y(e=>Bs.push(e));try{if(e=e.trim(),c.filenames.has(e))throw new p("File already exists");return c.filenames.add(e),u=(async(e,s,n,c)=>{s=s.trim();let l=Zs(e,c,_r),d=Zs(e,c,Or,l?20:768);const u=Zs(e,c,Zr),w=Zs(e,c,"uid"),m=Zs(e,c,"gid");let b=Zs(e,c,Kr);const z=Zs(e,c,"unixExtraFieldType");let S=Zs(e,c,jr),x=Zs(e,c,Xr),F=Zs(e,c,Gr);if(w!==Q&&(0>w||w>T))throw new p("Invalid uid (must be integer 0..2^32-1)");if(m!==Q&&(0>m||m>T))throw new p("Invalid gid (must be integer 0..2^32-1)");if(b!==Q&&(0>b||b>C))throw new p("Invalid UNIX mode (must be integer 0..65535)");if(z!==Q&&z!==Ms&&z!==Ws)throw new p("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");let D=Zs(e,c,Mr),E=Zs(e,c,Wr);const v=D!==Q||E!==Q;if(w!==Q||m!==Q||b!==Q||z?(l=!1,d=d&C|768):v&&(l=!0,d&=M),D!==Q&&(0>D||D>M))throw new p("Invalid msdosAttributesRaw (must be integer 0..255)");if(E&&"object"!=typeof E)throw new p("Invalid msdosAttributes (must be an object with boolean flags)");if(d>C)throw new p(Rs);let A=Zs(e,c,Cr,0);!c[Hr]&&s.endsWith(X)&&(c[Hr]=!0);const U=Zs(e,c,Hr);let R;U?(s.endsWith(X)||(s+=X),0===A&&(A=16,l||(A|=16877<<16))):l||0!==A||(A=u?493<<16:27525120),l||(R=A>>16&C,b=b===Q?R:b&C,S?b|=q:S=!!(b&q),x?b|=K:x=!!(b&K),F?b|=j:F=!!(b&j),U&&(b|=V),A=(b&C)<<16|A&M),({msdosAttributesRaw:D,msdosAttributes:E}=((e,t)=>{if(e!==Q)e&=M;else if(t!==Q){const{readOnly:r,hidden:s,system:n,directory:a,archive:i}=t;let o=0;r&&(o|=1),s&&(o|=2),n&&(o|=4),a&&(o|=16),i&&(o|=32),e=o&M}return t===Q&&(t={readOnly:!!(1&e),hidden:!!(2&e),system:!!(4&e),directory:!!(16&e),archive:!!(32&e)}),{msdosAttributesRaw:e,msdosAttributes:t}})(D,E)),v&&(A=A&T|D&M);const N=Zs(e,c,"encodeText",Xe);let I=N(s);if(I===Q&&(I=Xe(s)),Ys(I)>C)throw new p("File entry name exceeds 64KB");const O=c[zr]||"";let L=N(O);if(L===Q&&(L=Xe(O)),Ys(L)>C)throw new p("File entry comment exceeds 64KB");const H=Zs(e,c,Ir,20);if(H>C)throw new p(Rs);const P=Zs(e,c,Er,new o),ee=Zs(e,c,Ar),te=Zs(e,c,Ur),re=Zs(e,c,Tr,0),se=Zs(e,c,es);let ne,ae;se||(ne=Zs(e,c,Qr),ae=Zs(e,c,$r));const oe=Zs(e,c,"encryptionStrength",3),ce=Zs(e,c,Lr),le=Zs(e,c,"extendedTimestamp",!0),de=Zs(e,c,"keepOrder",!0),ue=Zs(e,c,rs),pe=Zs(e,c,"bufferedWrite"),fe=Zs(e,c,"dataDescriptorSignature",!1),he=Zs(e,c,ts),we=Zs(e,c,"useUnicodeFileNames",!0),ge=Zs(e,c,Pr);let me=Zs(e,c,"level"),ye=Zs(e,c,ss),be=Zs(e,c,"dataDescriptor");pe&&be===Q&&(be=!1),(be===Q||ce)&&(be=!0),me!==Q&&6!=me&&(ye=!1),ye||e.config.CompressionStream!==Q||e.config.CompressionStreamZlib!==Q||(me=0);let ze=Zs(e,c,Br);if(!ce&&(ne!==Q||ae!==Q)&&(1>oe||oe>3))throw new p("The strength must equal 1, 2, or 3");let Se=new f;const xe=c[qr];if(xe){let e=0,t=0;xe.forEach(t=>e+=4+Ys(t)),Se=new f(e),xe.forEach((e,r)=>{if(r>C)throw new p("Extra field type exceeds 65535");if(Ys(e)>C)throw new p("Extra field data exceeds 64KB");Xs(Se,new h([r]),t),Xs(Se,new h([Ys(e)]),t+2),Xs(Se,e,t+4),t+=4+Ys(e)})}let Fe=0,ke=0,De=0;if(se&&(De=c[xr],De===Q))throw new p("Undefined uncompressed size");const Ee=!0===ze;n&&(n=new He(n),await Pe(n),se?(c.uncompressedSize=De,Fe=Ps(De)):n.size===Q?(be=!0,(ze||ze===Q)&&(ze=!0,De=Fe=4294967296)):(c.uncompressedSize=De=n.size,Fe=Ps(De)));const{diskOffset:ve,diskNumber:Ae,maxSize:Ue}=e.writer,Re=Ee||De>T,Te=Ee||Fe>T,Ce=Ee||e.offset+e.pendingEntriesSize-ve>T,Me=Zs(e,c,as,!0)&&Ee||Ae+i.ceil(e.pendingEntriesSize/Ue)>C;if(Ce||Re||Te||Me){if(!1===ze||!de)throw new p(Ts);ze=!0}ze=ze||!1;const We=Zs(e,c,Nr),_e=(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:y,encrypted:b,zip64UncompressedSize:z,zip64CompressedSize:S,zip64Offset:x,zip64DiskNumberStart:F,uncompressedSize:k,offset:D,diskNumberStart:E}=e;let{version:v,compressionMethod:A}=e;const U=!p&&(o>0||o===Q&&0!==A);let R,T;const M=y||!U,_=c&&(e.bufferedWrite||!z&&!S||M);if(c){let e=4,t=4;z&&(e+=8,t+=8),S&&(e+=8,t+=8),x&&(e+=8),F&&(e+=4),R=new f(e);const r=Gs(R);T=new f(t);const s=Gs(T);if(qs(r,0,1),qs(r,2,Ys(R)-4),qs(s,0,1),qs(s,2,Ys(T)-4),_){const e=Gs(R),t=Gs(T);let r=4,s=4;z&&(js(e,r,a(k)),r+=8,js(t,s,a(k)),s+=8),S&&M&&(js(e,r,a(k)),r+=8,js(t,s,a(k)),s+=8),x&&(js(e,r,a(D)),r+=8),F&&(Ks(e,r,E),r+=4),4==s&&(T=new f)}}else R=new f,T=new f;let B,N,I,O,L;if(b&&!l){B=new f(Ys(Cs)+2);const e=Gs(B);qs(e,0,39169),Xs(B,Cs,2),Vs(e,8,w)}else B=new f;if(m){I=new f(9+(s?4:0)+(n?4:0));const e=Gs(I);qs(e,0,Z),qs(e,2,Ys(I)-4),O=1+(s?2:0)+(n?4:0),Vs(e,4,O);let t=5;Ks(e,t,i.floor(r.getTime()/1e3)),t+=4,s&&(Ks(e,t,i.floor(s.getTime()/1e3)),t+=4),n&&Ks(e,t,i.floor(n.getTime()/1e3));try{N=new f(36);const e=Gs(N),t=Hs(r);qs(e,0,10),qs(e,2,32),qs(e,8,1),qs(e,10,24),js(e,12,t),js(e,20,Hs(s)||t),js(e,28,Hs(n)||t)}catch{N=new f}}else N=I=new f;try{const{uid:t,gid:r,unixMode:s,setuid:n,setgid:a,sticky:i,unixExtraFieldType:o}=e;if(!o||t===Q&&r===Q&&s===Q)L=new f;else{const e=Is(t),c=Is(r);let l=new f;if(o==Ws&&s!==Q){let e=s&C;n&&(e|=q),a&&(e|=K),i&&(e|=j),l=new f(2),new g(l.buffer).setUint16(0,e,!0)}const d=3+e.length+c.length+l.length;L=new f(4+d);const u=Gs(L);qs(u,0,o==Ms?30837:30805),qs(u,2,d),Vs(u,4,1),Vs(u,5,e.length);let p=6;Xs(L,e,p),p+=e.length,Vs(u,p,c.length),p++,Xs(L,c,p),p+=c.length,Xs(L,l,p)}}catch{L=new f}A===Q&&(A=U?8:0),c&&(v=v>45?v:45),b&&!l&&(v=v>51?v:51,B[9]=A,A=99);const H=_?Ys(T):0,P=H+Ys(B,I,N,L,h),{headerArray:V,headerView:X,rawLastModDate:$}=Js({version:v,bitFlag:Qs(o,d,u,b,A),compressionMethod:A,uncompressedSize:k,lastModDate:J>r?J:r>Y?Y:r,rawFilename:t,zip64CompressedSize:S,zip64UncompressedSize:z,extraFieldLength:P});let ee=G;const te=new f(ee+Ys(t)+P),re=Gs(te);return Ks(re,0,W),Xs(te,V,4),Xs(te,t,ee),ee+=Ys(t),_&&Xs(te,T,ee),ee+=H,Xs(te,B,ee),ee+=Ys(B),Xs(te,I,ee),ee+=Ys(I),Xs(te,N,ee),ee+=Ys(N),Xs(te,L,ee),ee+=Ys(L),Xs(te,h,ee),u&&(Ks(re,18,0),Ks(re,22,0)),{localHeaderArray:te,localHeaderView:re,headerArray:V,headerView:X,lastModDate:r,rawLastModDate:$,encrypted:b,compressed:U,version:v,compressionMethod:A,extraFieldExtendedTimestampFlag:O,rawExtraFieldZip64:R,localExtraFieldZip64Length:H,rawExtraFieldExtendedTimestamp:I,rawExtraFieldNTFS:N,rawExtraFieldUnix:L,rawExtraFieldAES:B,extraFieldLength:P}})(c=r.assign({},c,{rawFilename:I,rawComment:L,version:H,versionMadeBy:d,lastModDate:P,lastAccessDate:ee,creationDate:te,rawExtraField:Se,zip64:ze,zip64UncompressedSize:Re,zip64CompressedSize:Te,zip64Offset:Ce,zip64DiskNumberStart:Me,password:ne,rawPassword:ae,level:me,useWebWorkers:ue,encryptionStrength:oe,extendedTimestamp:le,zipCrypto:ce,bufferedWrite:pe,keepOrder:de,useUnicodeFileNames:we,dataDescriptor:be,dataDescriptorSignature:fe,signal:he,msDosCompatible:l,internalFileAttribute:re,internalFileAttributes:re,externalFileAttribute:A,externalFileAttributes:A,useCompressionStream:ye,passThrough:se,encrypted:!!(ne&&Ys(ne)||ae&&Ys(ae))||se&&We,signature:c[Vr],compressionMethod:ge,uncompressedSize:De,offset:e.offset-ve,diskNumberStart:Ae,uid:w,gid:m,setuid:S,setgid:x,sticky:F,unixMode:b,msdosAttributesRaw:D,msdosAttributes:E,unixExternalUpper:R})),Be=(({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=Gs(n),r&&(a=4,Ks(s,0,B))),{dataDescriptorArray:n,dataDescriptorView:s,dataDescriptorOffset:a}})(c),Ne=Ys(_e.localHeaderArray,Be.dataDescriptorArray);let Ie;ke=Ne+Fe,e.options[os]&&(ke+=ke+64),e.pendingEntriesSize+=ke;try{Ie=await(async(e,s,n,i,o)=>{const{files:c,writer:l}=e,{keepOrder:d,dataDescriptor:u,signal:h}=o,{headerInfo:w}=i,g=e.options[os],m=t.from(c.values()).pop();let b,z,S,x,F,D,E={};c.set(s,E);try{let t;d&&(t=m&&m.lock,E.lock=new y(e=>S=e)),!(o.bufferedWrite||e.writerLocked||e.bufferedWrites&&d)&&u||g?(D=l,await v()):(D=new k(Q,Q,{highWaterMark:$}),D.size=0,b=!0,e.bufferedWrites++,await Pe(l)),await Pe(D);const{writable:z,diskOffset:U}=l;if(e.addSplitZipSignature){delete e.addSplitZipSignature;const t=new f(4);Ks(Gs(t),0,_),await Ls(l,t),e.offset+=4}g&&((e,t)=>{const{headerInfo:r}=e;let{localHeaderArray:s,extraFieldLength:n}=r,a=Gs(s),i=64-(t+Ys(s))%64;4>i&&(i+=64);const o=new f(i),c=Gs(o);qs(c,0,6534),qs(c,2,i-2);const l=s;r.localHeaderArray=s=new f(Ys(l)+i),Xs(s,l),Xs(s,o,Ys(l)),a=Gs(s),qs(a,28,n+i),e.metadataSize+=i})(i,e.offset-U);const{localHeaderView:R,localHeaderArray:C}=w;b||(await t,await A(z));const{diskNumber:W}=l;E.diskNumberStart=W,b||(F=!0,await Ls(D,C)),E=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:g,compressed:m,version:y,compressionMethod:b,rawExtraFieldZip64:z,localExtraFieldZip64Length:S,rawExtraFieldExtendedTimestamp:x,extraFieldExtendedTimestampFlag:F,rawExtraFieldNTFS:k,rawExtraFieldUnix:D,rawExtraFieldAES:E}=l,{dataDescriptorArray:v}=d,{rawFilename:A,lastAccessDate:U,creationDate:R,password:T,rawPassword:C,level:W,zip64:_,zip64UncompressedSize:B,zip64CompressedSize:N,zip64Offset:I,zip64DiskNumberStart:O,zipCrypto:L,dataDescriptor:H,directory:Z,executable:P,versionMadeBy:V,rawComment:q,rawExtraField:K,useWebWorkers:j,onstart:X,onprogress:G,onend:Y,signal:J,encryptionStrength:$,extendedTimestamp:ee,msDosCompatible:te,internalFileAttributes:re,externalFileAttributes:se,uid:ne,gid:ae,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:ue,msdosAttributesRaw:pe,msdosAttributes:fe,useCompressionStream:he,passThrough:we}=c,ge={lock:n,versionMadeBy:V,zip64:_,directory:!!Z,executable:!!P,filenameUTF8:!0,rawFilename:A,commentUTF8:!0,rawComment:q,rawExtraFieldZip64:z,localExtraFieldZip64Length:S,rawExtraFieldExtendedTimestamp:x,rawExtraFieldNTFS:k,rawExtraFieldUnix:D,rawExtraFieldAES:E,rawExtraField:K,extendedTimestamp:ee,msDosCompatible:te,internalFileAttributes:re,externalFileAttributes:se,diskNumberStart:s,uid:ne,gid:ae,unixMode:oe,setuid:ce,setgid:le,sticky:de,unixExternalUpper:ue,msdosAttributesRaw:pe,msdosAttributes:fe};let{signature:me,uncompressedSize:ye}=c,be=0;we||(ye=0);const{writable:ze}=t;if(e){e.chunkSize=ie(o);const r=e.readable,s=e.size,n={options:{codecType:Gt,level:W,rawPassword:C,password:T,encryptionStrength:$,zipCrypto:g&&L,passwordVerification:g&&L&&w>>8&M,signed:!we,compressed:m&&!we,encrypted:g&&!we,useWebWorkers:j,useCompressionStream:he,transferStreams:!1},config:o,streamOptions:{signal:J,size:s,onstart:X,onprogress:G,onend:Y}};try{const e=await hr({readable:r,writable:ze},n);be=e.outputSize,t.size+=be,we||(ye=e.inputSize,me=e.signature)}catch(e){throw e.outputSize!==Q&&(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===Q||(Ks(l,10,e),c&&Ks(u,p,e)),i?c&&(js(u,p+4,a(t)),js(u,p+12,a(r))):(Ks(l,14,t),Ks(l,18,r),c&&(Ks(u,p+4,t),Ks(u,p+8,r)))})({signature:me,compressedSize:be,uncompressedSize:ye,headerInfo:l,dataDescriptorInfo:d},c),H&&await Ls(t,v),r.assign(ge,{uncompressedSize:ye,compressedSize:be,lastModDate:h,rawLastModDate:w,creationDate:R,lastAccessDate:U,encrypted:g,zipCrypto:L,size:u+be,compressionMethod:b,version:y,headerArray:p,headerView:f,signature:me,extraFieldExtendedTimestampFlag:F,zip64UncompressedSize:B,zip64CompressedSize:N,zip64Offset:I,zip64DiskNumberStart:O}),ge})(n,D,E,i,e.config,o);const{zip64:B}=E;if(b||(F=!1),c.set(s,E),E.filename=s,b?(await y.all([D.writable.getWriter().close(),t]),await v(),x=!0,E.diskNumberStart=l.diskNumber,E.offset=e.offset-l.diskOffset,B&&Os(E),(({rawFilename:e,encrypted:t,zip64:r,localExtraFieldZip64Length:s,signature:n,compressedSize:i,uncompressedSize:o,zip64UncompressedSize:c,zip64CompressedSize:l},d,{dataDescriptor:u})=>{if(u||(t||Ks(d,14,n),l||Ks(d,18,i),c||Ks(d,22,o)),r&&s){let t=G+Ys(e)+4;c&&(js(d,t,a(o)),t+=8),l&&(js(d,t,a(i)),t+=8)}})(E,R,o),await A(z),await Ls(l,C),await D.readable.pipeTo(z,{preventClose:!0,preventAbort:!0,signal:h}),l.size+=D.size,x=!1):(E.offset=e.offset-U,B&&Os(E)),E.offset>T&&!B)throw new p(Ts);return e.offset+=E.size,E}catch(t){if(x||F){if(e.hasCorruptedEntries=!0,t)try{t.corruptedEntry=!0}catch{}b?e.offset+=D.size:e.offset=D.size}throw c.delete(s),t}finally{b&&e.bufferedWrites--,S&&S(),z&&z()}async function v(){e.writerLocked=!0;const{lockWriter:t}=e;e.lockWriter=new y(t=>z=()=>{e.writerLocked=!1,t()}),await t}async function A(e){Ys(w.localHeaderArray)>l.availableSize&&(l.availableSize=0,await Ls(e,new f))}})(e,s,n,{headerInfo:_e,dataDescriptorInfo:Be,metadataSize:Ne},c)}finally{e.pendingEntriesSize-=ke}return r.assign(Ie,{name:s,comment:O,extraField:xe}),new Jr(Ie)})(c,e,s,n),l.add(u),await u}catch(t){throw c.filenames.delete(e),t}finally{l.delete(u);const e=Bs.shift();e?e():_s--}}remove(e){const{filenames:t,files:r}=this;if("string"==typeof e&&(e=r.get(e)),e&&e.filename!==Q){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,rawExtraFieldUnix:o,rawExtraField:c,extendedTimestamp:l,extraFieldExtendedTimestampFlag:d,lastModDate:p}=e;let h;if(l){h=new f(9);const e=Gs(h);qs(e,0,Z),qs(e,2,5),Vs(e,4,d),Ks(e,5,i.floor(p.getTime()/1e3))}else h=new f;e.rawExtraFieldExtendedTimestamp=h,u+=46+Ys(t,n,r,s,a,o,h,c)}const g=new f(u),m=Gs(g);await Pe(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,rawExtraFieldUnix:p,rawExtraField:f,rawComment:h,versionMadeBy:w,headerArray:b,headerView:z,zip64:S,zip64UncompressedSize:x,zip64CompressedSize:F,zip64DiskNumberStart:k,zip64Offset:D,internalFileAttributes:E,externalFileAttributes:v,diskNumberStart:A,uncompressedSize:U,compressedSize:R}=r,M=Ys(i,c,l,u,p,f);Ks(m,d,N),qs(m,d+4,w),x||Ks(z,18,U),F||Ks(z,14,R),Xs(g,b,d+6);let W=d+G;if(qs(m,W,M),W+=2,qs(m,W,Ys(h)),W+=2,qs(m,W,S&&k?C:A),W+=2,qs(m,W,E),W+=2,v&&Ks(m,W,v),W+=4,Ks(m,W,S&&D?T:t),W+=4,Xs(g,a,W),W+=Ys(a),Xs(g,i,W),W+=Ys(i),Xs(g,c,W),W+=Ys(c),Xs(g,l,W),W+=Ys(l),Xs(g,u,W),W+=Ys(u),Xs(g,p,W),W+=Ys(p),Xs(g,f,W),W+=Ys(f),Xs(g,h,W),W+=Ys(h),d-y>o.availableSize&&(o.availableSize=0,await Ls(o,g.slice(y,d)),y=d),d=W,s.onprogress)try{await s.onprogress(e+1,n.size,new Jr(r))}catch{}}await Ls(o,y?g.slice(y):g);let b=o.diskNumber;const{availableSize:z}=o;H>z&&b++;let S=Zs(e,s,Br);if(h>T||u>T||w>C||b>C){if(!1===S)throw new p(Ts);S=!0}const x=new f(S?98:H),F=Gs(x);d=0,S&&(Ks(F,0,O),js(F,4,a(44)),qs(F,12,45),qs(F,14,45),Ks(F,16,b),Ks(F,20,l),js(F,24,a(w)),js(F,32,a(w)),js(F,40,a(u)),js(F,48,a(h)),Ks(F,56,L),js(F,64,a(h)+a(u)),Ks(F,72,b+1),Zs(e,s,as,!0)&&(b=C,l=C),w=C,h=T,u=T,d+=76),Ks(F,d,I),qs(F,d+4,b),qs(F,d+6,l),qs(F,d+8,w),qs(F,d+10,w),Ks(F,d+12,u),Ks(F,d+16,h);const k=Ys(r);if(k){if(k>C)throw new p("Zip file comment exceeds 64KB");qs(F,d+20,k)}await Ls(o,x),k&&await Ls(o,r)})(this,e,r),Zs(this,r,ns)||await o.getWriter().close(),n.getData?n.getData():o}}function Is(e){if(e===Q)return new f;{const t=new f(4);Gs(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}function Os({compressedSize:e,uncompressedSize:t,offset:r,diskNumberStart:s,zip64UncompressedSize:n,zip64CompressedSize:i,zip64Offset:o,zip64DiskNumberStart:c,rawExtraFieldZip64:l}){const d=Gs(l);let u=4;n&&(js(d,u,a(t)),u+=8),i&&(js(d,u,a(e)),u+=8),o&&(js(d,u,a(r)),u+=8),c&&Ks(d,u,s)}async function Ls(e,t){const{writable:r}=e,s=r.getWriter();try{await s.ready,e.size+=Ys(t),await s.write(t)}finally{s.releaseLock()}}function Hs(e){if(e)return(a(e.getTime())+a(116444736e5))*a(1e4)}function Zs(e,t,r,s){const n=t[r]===Q?e.options[r]:t[r];return n===Q?s:n}function Ps(e){return e+5*(i.floor(e/16383)+1)}function Vs(e,t,r){e.setUint8(t,r)}function qs(e,t,r){e.setUint16(t,r,!0)}function Ks(e,t,r){e.setUint32(t,r,!0)}function js(e,t,r){e.setBigUint64(t,r,!0)}function Xs(e,t,r){e.set(t,r)}function Gs(e){return new g(e.buffer)}function Ys(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function Js({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=Gs(d);qs(u,0,e),qs(u,2,t),qs(u,4,r);const p=new w(1),h=Gs(p);qs(h,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),qs(h,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate());const g=p[0];return Ks(u,6,g),(o||n!==Q)&&Ks(u,14,o?T:n),(c||s!==Q)&&Ks(u,18,c?T:s),qs(u,22,Ys(i)),qs(u,24,l),{headerArray:d,headerView:u,rawLastModDate:g}}function Qs(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 $s{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 en extends $s{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 en(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([Pe(s),Pe(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==tt)return!1;throw e}}getText(e,t){return this.getData(new xe(e),t)}getBlob(e,t){return this.getData(new ze(e),t)}getData64URI(e,t){return this.getData(new ye(e),t)}getUint8Array(e){return this.getData(new Ie,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:be,Writer:ze,reader:null})}replaceText(e){r.assign(this,{data:e,Reader:Se,Writer:xe,reader:null})}replaceData64URI(e){r.assign(this,{data:e,Reader:me,Writer:ye,reader:null})}replaceUint8Array(e){r.assign(this,{data:e,Reader:Ne,Writer:Ie,reader:null})}replaceReadable(e){r.assign(this,{data:null,Reader:()=>({readable:e}),Writer:null,reader:null})}}class tn extends $s{constructor(e,t,r,s){super(e,t,r,s),this.directory=!0}clone(e){const t=this,r=new tn(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 dn(this,e,{options:t},!0)}addText(e,t,r={}){return dn(this,e,{data:t,Reader:Se,Writer:xe,options:r,uncompressedSize:t.length})}addBlob(e,t,r={}){return dn(this,e,{data:t,Reader:be,Writer:ze,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 dn(this,e,{data:t,Reader:me,Writer:ye,options:r,uncompressedSize:i.floor(.75*(s-n))})}addUint8Array(e,t,r={}){return dn(this,e,{data:t,Reader:Ne,Writer:Ie,options:r,uncompressedSize:t.length})}addHttpContent(e,t,r={}){return dn(this,e,{data:t,Reader:class extends Be{constructor(e){super(e,r)}},options:r})}addReadable(e,t,r={}){return dn(this,e,{Reader:()=>({readable:t}),options:r})}addFileSystemEntry(e,t={}){return on(this,e,t)}addFileSystemHandle(e,t={}){return on(this,e,t)}addFile(e,t={}){return t.lastModDate||(t.lastModDate=new o(e.lastModified)),dn(this,e.name,{data:e,Reader:()=>({readable:e.stream(),size:e.size}),options:t,uncompressedSize:e.size})}addData(e,t){return dn(this,e,t)}importBlob(e,t){return this.importZip(new be(e),t)}importData64URI(e,t){return this.importZip(new me(e),t)}importUint8Array(e,t){return this.importZip(new Ne(e),t)}importHttpContent(e,t){return this.importZip(new Be(e,t),t)}importReadable(e,t){return this.importZip({readable:e},t)}exportBlob(e={}){return this.exportZip(new ze(e.mimeType||"application/zip"),e)}exportData64URI(e={}){return this.exportZip(new ye(e.mimeType||"application/zip"),e)}exportUint8Array(e={}){return this.exportZip(new Ie,e)}async exportWritable(e=new E,t={}){return await this.exportZip({writable:e},t),e}async importZip(e,t={}){await Pe(e);const s=new ws(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 tn(this.fs,t,{data:r==a.length-1?e:null},i),n.push(s))}),e.directory||n.push(dn(s,i,{data:e,Reader:sn(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===Q&&(s.bufferedWrite=!0),await y.all([nn(n,s.readerOptions),Pe(e)]);const a=new Ns(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 Jr){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 rn={FS:class{constructor(){ln(this)}get children(){return this.root.children}remove(e){an(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");an(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 ln(this),this.root.importBlob(e,t)}importData64URI(e,t){return ln(this),this.root.importData64URI(e,t)}importUint8Array(e,t){return ln(this),this.root.importUint8Array(e,t)}importHttpContent(e,t){return ln(this),this.root.importHttpContent(e,t)}importReadable(e,t){return ln(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:tn,ZipFileEntry:en};function sn(e){return class extends we{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 ze,r.assign({},t.options,e));t.data=s,t.blobReader=new be(s),super.init()}readUint8Array(e,t){return this.blobReader.readUint8Array(e,t)}}}async function nn(e,t){e.children.length&&await y.all(e.children.map(async e=>{if(e.directory)await nn(e,t);else{const r=e.reader=new e.Reader(e.data,t);try{await Pe(r)}catch(t){try{t.entryId=e.id,t.cause={entry:e}}catch{}throw t}e.uncompressedSize=r.size}}))}function an(e){if(e.parent){const t=e.parent.children;t.forEach((r,s)=>{r.id==e.id&&t.splice(s,1)})}}function on(e,t,s){return async function e(t,n,a){if(n)try{if((n.isFile||n.isDirectory)&&(n=await cn(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 cn(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 cn(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 ln(e){e.entries=[],e.root=new tn(e)}function dn(e,t,r,s){if(e.directory)return s?new tn(e.fs,t,r,e):new en(e.fs,t,r,e);throw new p("Parent entry is not a directory")}e.fs=rn});
|
package/dist/zip-fs-native.js
CHANGED
|
@@ -105,6 +105,7 @@
|
|
|
105
105
|
const MIN_DATE = new Date(1980, 0, 1);
|
|
106
106
|
|
|
107
107
|
const UNDEFINED_VALUE = undefined;
|
|
108
|
+
const INFINITY_VALUE = Infinity;
|
|
108
109
|
const UNDEFINED_TYPE = "undefined";
|
|
109
110
|
const FUNCTION_TYPE = "function";
|
|
110
111
|
const OBJECT_TYPE = "object";
|
|
@@ -1964,6 +1965,8 @@
|
|
|
1964
1965
|
*/
|
|
1965
1966
|
|
|
1966
1967
|
|
|
1968
|
+
const MODULE_WORKER_OPTIONS = { type: "module" };
|
|
1969
|
+
|
|
1967
1970
|
let webWorkerSupported, webWorkerURI, webWorkerOptions;
|
|
1968
1971
|
let transferStreamsSupported = true;
|
|
1969
1972
|
let initModule = () => { };
|
|
@@ -2172,11 +2175,8 @@
|
|
|
2172
2175
|
return { writable, closed };
|
|
2173
2176
|
}
|
|
2174
2177
|
|
|
2175
|
-
function getWebWorker(url, baseURI, workerData, isModuleType
|
|
2178
|
+
function getWebWorker(url, baseURI, workerData, isModuleType, useBlobURI = true) {
|
|
2176
2179
|
let worker, resolvedURI, resolvedOptions;
|
|
2177
|
-
if (isModuleType) {
|
|
2178
|
-
resolvedOptions = { type: "module" };
|
|
2179
|
-
}
|
|
2180
2180
|
if (webWorkerURI === UNDEFINED_VALUE) {
|
|
2181
2181
|
// deno-lint-ignore valid-typeof
|
|
2182
2182
|
const isFunctionURI = typeof url == FUNCTION_TYPE;
|
|
@@ -2188,6 +2188,12 @@
|
|
|
2188
2188
|
const isDataURI = resolvedURI.startsWith("data:");
|
|
2189
2189
|
const isBlobURI = resolvedURI.startsWith("blob:");
|
|
2190
2190
|
if (isDataURI || isBlobURI) {
|
|
2191
|
+
if (isModuleType === UNDEFINED_VALUE) {
|
|
2192
|
+
isModuleType = false;
|
|
2193
|
+
}
|
|
2194
|
+
if (isModuleType) {
|
|
2195
|
+
resolvedOptions = MODULE_WORKER_OPTIONS;
|
|
2196
|
+
}
|
|
2191
2197
|
try {
|
|
2192
2198
|
worker = new Worker(resolvedURI, resolvedOptions);
|
|
2193
2199
|
} catch (error) {
|
|
@@ -2207,6 +2213,12 @@
|
|
|
2207
2213
|
}
|
|
2208
2214
|
}
|
|
2209
2215
|
} else {
|
|
2216
|
+
if (isModuleType === UNDEFINED_VALUE) {
|
|
2217
|
+
isModuleType = true;
|
|
2218
|
+
}
|
|
2219
|
+
if (isModuleType) {
|
|
2220
|
+
resolvedOptions = MODULE_WORKER_OPTIONS;
|
|
2221
|
+
}
|
|
2210
2222
|
try {
|
|
2211
2223
|
resolvedURI = new URL(resolvedURI, baseURI);
|
|
2212
2224
|
} catch {
|
|
@@ -2216,7 +2228,7 @@
|
|
|
2216
2228
|
worker = new Worker(resolvedURI, resolvedOptions);
|
|
2217
2229
|
} catch (error) {
|
|
2218
2230
|
if (!isModuleType) {
|
|
2219
|
-
return getWebWorker(url, baseURI, workerData,
|
|
2231
|
+
return getWebWorker(url, baseURI, workerData, false, useBlobURI);
|
|
2220
2232
|
} else {
|
|
2221
2233
|
throw error;
|
|
2222
2234
|
}
|
|
@@ -3157,8 +3169,8 @@
|
|
|
3157
3169
|
Object.assign(writer, {
|
|
3158
3170
|
diskNumber: 0,
|
|
3159
3171
|
diskOffset: 0,
|
|
3160
|
-
availableSize:
|
|
3161
|
-
maxSize:
|
|
3172
|
+
availableSize: INFINITY_VALUE,
|
|
3173
|
+
maxSize: INFINITY_VALUE
|
|
3162
3174
|
});
|
|
3163
3175
|
}
|
|
3164
3176
|
return writer;
|
|
@@ -4393,8 +4405,8 @@
|
|
|
4393
4405
|
constructor(writer, options = {}) {
|
|
4394
4406
|
writer = new GenericWriter(writer);
|
|
4395
4407
|
const addSplitZipSignature =
|
|
4396
|
-
writer.availableSize !== UNDEFINED_VALUE && writer.availableSize > 0 && writer.availableSize !==
|
|
4397
|
-
writer.maxSize !== UNDEFINED_VALUE && writer.maxSize > 0 && writer.maxSize !==
|
|
4408
|
+
writer.availableSize !== UNDEFINED_VALUE && writer.availableSize > 0 && writer.availableSize !== INFINITY_VALUE &&
|
|
4409
|
+
writer.maxSize !== UNDEFINED_VALUE && writer.maxSize > 0 && writer.maxSize !== INFINITY_VALUE;
|
|
4398
4410
|
Object.assign(this, {
|
|
4399
4411
|
writer,
|
|
4400
4412
|
addSplitZipSignature,
|
|
@@ -4890,7 +4902,6 @@
|
|
|
4890
4902
|
let writingBufferedEntryData;
|
|
4891
4903
|
let writingEntryData;
|
|
4892
4904
|
let fileWriter;
|
|
4893
|
-
let blobPromise;
|
|
4894
4905
|
files.set(name, fileEntry);
|
|
4895
4906
|
try {
|
|
4896
4907
|
let lockPreviousFileEntry;
|
|
@@ -4899,7 +4910,7 @@
|
|
|
4899
4910
|
requestLockCurrentFileEntry();
|
|
4900
4911
|
}
|
|
4901
4912
|
if ((options.bufferedWrite || zipWriter.writerLocked || (zipWriter.bufferedWrites && keepOrder) || !dataDescriptor) && !usdz) {
|
|
4902
|
-
fileWriter = new TransformStream();
|
|
4913
|
+
fileWriter = new TransformStream(UNDEFINED_VALUE, UNDEFINED_VALUE, { highWaterMark: INFINITY_VALUE });
|
|
4903
4914
|
fileWriter.size = 0;
|
|
4904
4915
|
bufferedWrite = true;
|
|
4905
4916
|
zipWriter.bufferedWrites++;
|
|
@@ -4930,20 +4941,20 @@
|
|
|
4930
4941
|
await skipDiskIfNeeded(writable);
|
|
4931
4942
|
}
|
|
4932
4943
|
const { diskNumber } = writer;
|
|
4933
|
-
writingEntryData = true;
|
|
4934
4944
|
fileEntry.diskNumberStart = diskNumber;
|
|
4935
|
-
if (bufferedWrite) {
|
|
4936
|
-
|
|
4937
|
-
} else {
|
|
4945
|
+
if (!bufferedWrite) {
|
|
4946
|
+
writingEntryData = true;
|
|
4938
4947
|
await writeData(fileWriter, localHeaderArray);
|
|
4939
4948
|
}
|
|
4940
4949
|
fileEntry = await createFileEntry(reader, fileWriter, fileEntry, entryInfo, zipWriter.config, options);
|
|
4941
4950
|
const { zip64 } = fileEntry;
|
|
4942
|
-
|
|
4951
|
+
if (!bufferedWrite) {
|
|
4952
|
+
writingEntryData = false;
|
|
4953
|
+
}
|
|
4943
4954
|
files.set(name, fileEntry);
|
|
4944
4955
|
fileEntry.filename = name;
|
|
4945
4956
|
if (bufferedWrite) {
|
|
4946
|
-
|
|
4957
|
+
await Promise.all([fileWriter.writable.getWriter().close(), lockPreviousFileEntry]);
|
|
4947
4958
|
await requestLockWriter();
|
|
4948
4959
|
writingBufferedEntryData = true;
|
|
4949
4960
|
fileEntry.diskNumberStart = writer.diskNumber;
|
|
@@ -4954,7 +4965,7 @@
|
|
|
4954
4965
|
updateLocalHeader(fileEntry, localHeaderView, options);
|
|
4955
4966
|
await skipDiskIfNeeded(writable);
|
|
4956
4967
|
await writeData(writer, localHeaderArray);
|
|
4957
|
-
await
|
|
4968
|
+
await fileWriter.readable.pipeTo(writable, { preventClose: true, preventAbort: true, signal });
|
|
4958
4969
|
writer.size += fileWriter.size;
|
|
4959
4970
|
writingBufferedEntryData = false;
|
|
4960
4971
|
} else {
|
|
@@ -4969,7 +4980,7 @@
|
|
|
4969
4980
|
zipWriter.offset += fileEntry.size;
|
|
4970
4981
|
return fileEntry;
|
|
4971
4982
|
} catch (error) {
|
|
4972
|
-
if (
|
|
4983
|
+
if (writingBufferedEntryData || writingEntryData) {
|
|
4973
4984
|
zipWriter.hasCorruptedEntries = true;
|
|
4974
4985
|
if (error) {
|
|
4975
4986
|
try {
|