@zip.js/zip.js 2.8.11 → 2.8.14
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/README.md +19 -7
- package/deno.json +1 -1
- package/dist/zip-core.js +33 -26
- package/dist/zip-core.min.js +1 -1
- package/dist/zip-fs-core.js +33 -26
- package/dist/zip-fs-core.min.js +1 -1
- package/dist/zip-fs-native.js +33 -26
- package/dist/zip-fs-native.min.js +1 -1
- package/dist/zip-fs.js +33 -26
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-legacy.js +33 -26
- package/dist/zip-legacy.min.js +1 -1
- package/dist/zip-native.js +33 -26
- package/dist/zip-native.min.js +1 -1
- package/dist/zip.js +33 -26
- package/dist/zip.min.js +1 -1
- package/index-native.cjs +33 -26
- package/index-native.min.js +1 -1
- package/index.cjs +33 -26
- package/index.d.ts +13 -2
- package/index.min.js +1 -1
- package/lib/core/zip-writer.js +33 -26
- package/package.json +4 -4
package/dist/zip-fs-core.js
CHANGED
|
@@ -5083,15 +5083,19 @@
|
|
|
5083
5083
|
let { version, compressionMethod } = options;
|
|
5084
5084
|
const compressed = !directory && (level > 0 || (level === UNDEFINED_VALUE && compressionMethod !== 0));
|
|
5085
5085
|
let rawExtraFieldZip64;
|
|
5086
|
+
let rawLocalExtraFieldZip64;
|
|
5086
5087
|
const uncompressedFile = passThrough || !compressed;
|
|
5087
5088
|
const zip64ExtraFieldComplete = zip64 && (options.bufferedWrite || ((!zip64UncompressedSize && !zip64CompressedSize) || uncompressedFile));
|
|
5088
5089
|
if (zip64) {
|
|
5089
5090
|
let rawExtraFieldZip64Length = 4;
|
|
5091
|
+
let rawLocalExtraFieldZip64Length = 4;
|
|
5090
5092
|
if (zip64UncompressedSize) {
|
|
5091
5093
|
rawExtraFieldZip64Length += 8;
|
|
5094
|
+
rawLocalExtraFieldZip64Length += 8;
|
|
5092
5095
|
}
|
|
5093
5096
|
if (zip64CompressedSize) {
|
|
5094
5097
|
rawExtraFieldZip64Length += 8;
|
|
5098
|
+
rawLocalExtraFieldZip64Length += 8;
|
|
5095
5099
|
}
|
|
5096
5100
|
if (zip64Offset) {
|
|
5097
5101
|
rawExtraFieldZip64Length += 8;
|
|
@@ -5101,18 +5105,28 @@
|
|
|
5101
5105
|
}
|
|
5102
5106
|
rawExtraFieldZip64 = new Uint8Array(rawExtraFieldZip64Length);
|
|
5103
5107
|
const rawExtraFieldZip64View = getDataView(rawExtraFieldZip64);
|
|
5108
|
+
rawLocalExtraFieldZip64 = new Uint8Array(rawLocalExtraFieldZip64Length);
|
|
5109
|
+
const rawLocalExtraFieldZip64View = getDataView(rawLocalExtraFieldZip64);
|
|
5104
5110
|
setUint16(rawExtraFieldZip64View, 0, EXTRAFIELD_TYPE_ZIP64);
|
|
5105
5111
|
setUint16(rawExtraFieldZip64View, 2, getLength(rawExtraFieldZip64) - 4);
|
|
5112
|
+
setUint16(rawLocalExtraFieldZip64View, 0, EXTRAFIELD_TYPE_ZIP64);
|
|
5113
|
+
setUint16(rawLocalExtraFieldZip64View, 2, getLength(rawLocalExtraFieldZip64) - 4);
|
|
5106
5114
|
if (zip64ExtraFieldComplete) {
|
|
5107
5115
|
const rawExtraFieldZip64View = getDataView(rawExtraFieldZip64);
|
|
5116
|
+
const rawLocalExtraFieldZip64View = getDataView(rawLocalExtraFieldZip64);
|
|
5108
5117
|
let rawExtraFieldZip64Offset = 4;
|
|
5118
|
+
let rawLocalExtraFieldZip64Offset = 4;
|
|
5109
5119
|
if (zip64UncompressedSize) {
|
|
5110
5120
|
setBigUint64(rawExtraFieldZip64View, rawExtraFieldZip64Offset, BigInt(uncompressedSize));
|
|
5111
5121
|
rawExtraFieldZip64Offset += 8;
|
|
5122
|
+
setBigUint64(rawLocalExtraFieldZip64View, rawLocalExtraFieldZip64Offset, BigInt(uncompressedSize));
|
|
5123
|
+
rawLocalExtraFieldZip64Offset += 8;
|
|
5112
5124
|
}
|
|
5113
5125
|
if (zip64CompressedSize && uncompressedFile) {
|
|
5114
5126
|
setBigUint64(rawExtraFieldZip64View, rawExtraFieldZip64Offset, BigInt(uncompressedSize));
|
|
5115
5127
|
rawExtraFieldZip64Offset += 8;
|
|
5128
|
+
setBigUint64(rawLocalExtraFieldZip64View, rawLocalExtraFieldZip64Offset, BigInt(uncompressedSize));
|
|
5129
|
+
rawLocalExtraFieldZip64Offset += 8;
|
|
5116
5130
|
}
|
|
5117
5131
|
if (zip64Offset) {
|
|
5118
5132
|
setBigUint64(rawExtraFieldZip64View, rawExtraFieldZip64Offset, BigInt(offset));
|
|
@@ -5122,9 +5136,13 @@
|
|
|
5122
5136
|
setUint32(rawExtraFieldZip64View, rawExtraFieldZip64Offset, diskNumberStart);
|
|
5123
5137
|
rawExtraFieldZip64Offset += 4;
|
|
5124
5138
|
}
|
|
5139
|
+
if (rawLocalExtraFieldZip64Offset == 4) {
|
|
5140
|
+
rawLocalExtraFieldZip64 = new Uint8Array();
|
|
5141
|
+
}
|
|
5125
5142
|
}
|
|
5126
5143
|
} else {
|
|
5127
5144
|
rawExtraFieldZip64 = new Uint8Array();
|
|
5145
|
+
rawLocalExtraFieldZip64 = new Uint8Array();
|
|
5128
5146
|
}
|
|
5129
5147
|
let rawExtraFieldAES;
|
|
5130
5148
|
if (encrypted && !zipCrypto) {
|
|
@@ -5227,7 +5245,7 @@
|
|
|
5227
5245
|
rawExtraFieldAES[9] = compressionMethod;
|
|
5228
5246
|
compressionMethod = COMPRESSION_METHOD_AES;
|
|
5229
5247
|
}
|
|
5230
|
-
const localExtraFieldZip64Length = zip64ExtraFieldComplete ? getLength(
|
|
5248
|
+
const localExtraFieldZip64Length = zip64ExtraFieldComplete ? getLength(rawLocalExtraFieldZip64) : 0;
|
|
5231
5249
|
const extraFieldLength = localExtraFieldZip64Length + getLength(rawExtraFieldAES, rawExtraFieldExtendedTimestamp, rawExtraFieldNTFS, rawExtraFieldUnix, rawExtraField);
|
|
5232
5250
|
const {
|
|
5233
5251
|
headerArray,
|
|
@@ -5252,7 +5270,7 @@
|
|
|
5252
5270
|
arraySet(localHeaderArray, rawFilename, localHeaderOffset);
|
|
5253
5271
|
localHeaderOffset += getLength(rawFilename);
|
|
5254
5272
|
if (zip64ExtraFieldComplete) {
|
|
5255
|
-
arraySet(localHeaderArray,
|
|
5273
|
+
arraySet(localHeaderArray, rawLocalExtraFieldZip64, localHeaderOffset);
|
|
5256
5274
|
}
|
|
5257
5275
|
localHeaderOffset += localExtraFieldZip64Length;
|
|
5258
5276
|
arraySet(localHeaderArray, rawExtraFieldAES, localHeaderOffset);
|
|
@@ -5425,40 +5443,29 @@
|
|
|
5425
5443
|
signature,
|
|
5426
5444
|
compressedSize,
|
|
5427
5445
|
uncompressedSize,
|
|
5428
|
-
offset,
|
|
5429
|
-
diskNumberStart,
|
|
5430
5446
|
zip64UncompressedSize,
|
|
5431
|
-
zip64CompressedSize
|
|
5432
|
-
zip64Offset,
|
|
5433
|
-
zip64DiskNumberStart
|
|
5447
|
+
zip64CompressedSize
|
|
5434
5448
|
}, localHeaderView, { dataDescriptor }) {
|
|
5435
5449
|
if (!dataDescriptor) {
|
|
5436
5450
|
if (!encrypted) {
|
|
5437
5451
|
setUint32(localHeaderView, HEADER_OFFSET_SIGNATURE + 4, signature);
|
|
5438
5452
|
}
|
|
5439
|
-
if (!
|
|
5453
|
+
if (!zip64CompressedSize) {
|
|
5440
5454
|
setUint32(localHeaderView, HEADER_OFFSET_COMPRESSED_SIZE + 4, compressedSize);
|
|
5455
|
+
}
|
|
5456
|
+
if (!zip64UncompressedSize) {
|
|
5441
5457
|
setUint32(localHeaderView, HEADER_OFFSET_UNCOMPRESSED_SIZE + 4, uncompressedSize);
|
|
5442
5458
|
}
|
|
5443
5459
|
}
|
|
5444
|
-
if (zip64) {
|
|
5445
|
-
|
|
5446
|
-
|
|
5447
|
-
|
|
5448
|
-
|
|
5449
|
-
|
|
5450
|
-
|
|
5451
|
-
|
|
5452
|
-
|
|
5453
|
-
localHeaderOffset += 8;
|
|
5454
|
-
}
|
|
5455
|
-
if (zip64Offset) {
|
|
5456
|
-
setBigUint64(localHeaderView, localHeaderOffset, BigInt(offset));
|
|
5457
|
-
localHeaderOffset += 8;
|
|
5458
|
-
}
|
|
5459
|
-
if (zip64DiskNumberStart) {
|
|
5460
|
-
setUint32(localHeaderView, localHeaderOffset, diskNumberStart);
|
|
5461
|
-
}
|
|
5460
|
+
if (zip64 && localExtraFieldZip64Length) {
|
|
5461
|
+
let localHeaderOffset = HEADER_SIZE + getLength(rawFilename) + 4;
|
|
5462
|
+
if (zip64UncompressedSize) {
|
|
5463
|
+
setBigUint64(localHeaderView, localHeaderOffset, BigInt(uncompressedSize));
|
|
5464
|
+
localHeaderOffset += 8;
|
|
5465
|
+
}
|
|
5466
|
+
if (zip64CompressedSize) {
|
|
5467
|
+
setBigUint64(localHeaderView, localHeaderOffset, BigInt(compressedSize));
|
|
5468
|
+
localHeaderOffset += 8;
|
|
5462
5469
|
}
|
|
5463
5470
|
}
|
|
5464
5471
|
}
|
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=typeof R!=$;class $t{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 er(i),{signal:u}),writable:s,options:r.assign({},n),workerURI:l,transferStreams:c,terminate:()=>new y(t=>{const{worker:r,busy:s}=e;r?(s?e.resolveTerminated=t:(r.terminate(),t()),e.interface=null):t()}),onTaskFinished(){const{resolveTerminated:t}=e;t&&(e.resolveTerminated=null,e.terminated=!0,e.worker.terminate(),t()),e.busy=!1,d(e)}}),(o&&Qt?sr:rr)(e,a)}}class er extends k{constructor({onstart:e,onprogress:t,size:r,onend:s}){let n=0;super({async start(){e&&await tr(e,r)},async transform(e,s){n+=e.length,t&&await tr(t,n,r),s.enqueue(e)},async flush(){s&&await tr(s,n)}})}}async function tr(e,...t){try{await e(...t)}catch{}}function rr(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 sr(e,t){const{baseURI:s,chunkSize:n}=t;let{wasmURI:a}=t;if(!e.interface){let i;typeof a==ee&&(a=a());try{i=((e,t,s)=>{const n={type:"module"};let a,i;if(typeof e==ee&&(e=e()),e.startsWith("data:")||e.startsWith("blob:"))try{i=new R(e)}catch{i=new R(e,n)}else{try{a=new u(e,t)}catch{a=e}i=new R(a,n)}return i.addEventListener("message",e=>(async({data:e},t)=>{const{type:s,value:n,messageId:a,result:i,error:o}=e,{reader:c,writer:l,resolveResult:d,rejectResult:u,onTaskFinished:h}=t;try{if(o){const{message:e,stack:t,code:s,name:n,outputSize:a}=o,i=new p(e);r.assign(i,{stack:t,code:s,name:n,outputSize:a}),w(i)}else{if("pull"==s){const{value:e,done:r}=await c.read();ar({type:Kt,value:e,done:r,messageId:a},t)}s==Kt&&(await l.ready,await l.write(new f(n)),ar({type:"ack",messageId:a},t)),s==jt&&w(null,i)}}catch(o){ar({type:jt,messageId:a},t),w(o)}function w(e,t){e?u(e):d(t),l&&l.releaseLock(),h()}})(e,s)),i})(e.workerURI,s,e)}catch{return Qt=!1,rr(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=ar({type:"start",options:o,config:t,readable:i,writable:c},e);d||r.assign(e,{reader:i.getReader(),writer:c.getWriter()});const u=await a;return d||await c.getWriter().close(),await l,u})(e,{chunkSize:n,wasmURI:a,baseURI:s})}})}return e.interface}let nr=!0;function ar(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&&nr?(s&&i.push(s),a&&i.push(a)):e.readable=e.writable=null,i.length)try{return t.postMessage(e,i),!0}catch{nr=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),s(),e}}let ir=[];const or=[];let cr=0;async function lr(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=ir.find(e=>!e.busy);if(r)return dr(r),new $t(r,e,t,h);if(ir.length<p){const r={indexWorker:cr};return cr++,ir.push(r),new $t(r,e,t,h)}return new y(r=>or.push({resolve:r,stream:e,workerOptions:t}))})()).run();function h(e){if(or.length){const[{resolve:t,stream:r,workerOptions:s}]=or.splice(0,1);t(new $t(e,r,s,h))}else e.worker?(dr(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:s}=r;n.isFinite(s)&&s>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{ir=ir.filter(t=>t!=e);try{await e.terminate()}catch{}},s))})(e,t)):ir=ir.filter(t=>t!=e)}}function dr(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}const ur="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function pr(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=ur[e[r]];return t}})(e):new z(t).decode(e)}const fr="filename",hr="rawFilename",wr="comment",mr="rawComment",gr="uncompressedSize",yr="compressedSize",br="offset",zr="diskNumberStart",Sr="lastModDate",xr="rawLastModDate",Fr="lastAccessDate",kr="creationDate",Dr="rawCreationDate",Er="internalFileAttributes",vr="externalFileAttributes",Ar="msdosAttributesRaw",Ur="msdosAttributes",Rr="msDosCompatible",Tr="zip64",Cr="encrypted",Mr="version",Wr="versionMadeBy",_r="zipCrypto",Br="directory",Nr="executable",Ir="compressionMethod",Or="signature",Lr="extraField",Hr="unixMode",Zr="setuid",Pr="setgid",Vr="sticky",qr=[fr,hr,gr,yr,Sr,xr,wr,mr,Fr,kr,Dr,br,zr,Er,vr,Ar,Ur,Rr,Tr,Cr,Mr,Wr,_r,Br,Nr,Ir,Or,Lr,"extraFieldUnix","extraFieldInfoZip","uid","gid",Hr,Zr,Pr,Vr,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Kr{constructor(e){qr.forEach(t=>this[t]=e[t])}}const jr="password",Xr="rawPassword",Gr="passThrough",Yr="signal",Jr="useWebWorkers",Qr="useCompressionStream",$r="preventClose",es="supportZip64SplitFile",ts="offset",rs="usdz",ss="File format is not recognized",ns="Compression method not supported",as="Split zip file",is="utf-8",os="cp437",cs=[[gr,T],[yr,T],[br,T],[zr,C]],ls={[C]:{getValue:xs,bytes:4},[T]:{getValue:Fs,bytes:8}};class ds{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(ss);s.chunkSize=ae(n);const a=await(async(e,t,r)=>{const s=new f(4);var n;return n=t,ks(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 xs(ks(await Pe(s,0,4)))==_?new p(as):new p("End of central directory not found");const o=ks(a);let c=xs(o,12),l=xs(o,16);const u=a.offset,h=Ss(o,20),w=u+H+h;let m=Ss(o,4);const g=s.lastDiskNumber||0;let b=Ss(o,6),z=Ss(o,8),S=0,x=0;if(l==T||c==T||z==C||b==C){const e=ks(await Pe(s,a.offset-20,20));if(xs(e,0)==L){l=Fs(e,8);let t=await Pe(s,l,56,-1),r=ks(t);const n=a.offset-20-56;if(xs(r,0)!=O&&l!=n){const e=l;l=n,l>e&&(S=l-e),t=await Pe(s,l,56,-1),r=ks(t)}if(xs(r,0)!=O)throw new p("End of Zip64 central directory locator not found");m==C&&(m=xs(r,16)),b==C&&(b=xs(r,20)),z==C&&(z=Fs(r,32)),c==T&&(c=Fs(r,40)),l-=c}}if(l<s.size||(S=s.size-l-c-H,l=s.size-c-H),g!=m)throw new p(as);if(0>l)throw new p(ss);let F=0,D=await Pe(s,l,c,b),E=ks(D);if(c){const e=a.offset-c;if(xs(E,F)!=N&&l!=e){const t=l;l=e,l>t&&(S+=l-t),D=await Pe(s,l,c,b),E=ks(D)}}const v=a.offset-l-(s.lastDiskOffset||0);if(c==v||0>v||(c=v,D=await Pe(s,l,c,b),E=ks(D)),0>l||l>=s.size)throw new p(ss);const A=gs(t,e,"filenameEncoding"),U=gs(t,e,"commentEncoding");for(let a=0;z>a;a++){const o=new us(s,n,t.options);if(xs(E,F)!=N)throw new p("Central directory header not found");ps(o,E,F+6);const c=!!o.bitFlag.languageEncodingFlag,l=F+46,u=l+o.filenameLength,f=u+o.extraFieldLength,h=Ss(E,F+4),w=!(h>>8),m=h>>8==3,g=D.subarray(l,u),b=Ss(E,F+32),v=f+b,R=D.subarray(f,v),T=c,W=c,_=xs(E,F+38),B=_&M,I={readOnly:!!(1&B),hidden:!!(2&B),system:!!(4&B),directory:!!(16&B),archive:!!(32&B)},O=xs(E,F+42)+S,L=gs(t,e,"decodeText")||pr,H=T?is:A||os,Z=W?is:U||os;let P=L(g,H);P===Q&&(P=pr(g,H));let G=L(R,Z);G===Q&&(G=pr(R,Z)),r.assign(o,{versionMadeBy:h,msDosCompatible:w,compressedSize:0,uncompressedSize:0,commentLength:b,offset:O,diskNumberStart:Ss(E,F+34),internalFileAttributes:Ss(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),fs(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 Kr(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 Kr(o))}catch{}yield ne}const R=gs(t,e,"extractPrependedData"),W=gs(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 us=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=ks(await Pe(i,o,G,c));let F=gs(a,n,jr),k=gs(a,n,Xr);const D=gs(a,n,Gr);if(F=F&&F.length&&F,k=k&&k.length&&k,l&&99!=l.originalCompressionMethod)throw new p(ns);if(0!=u&&8!=u&&9!=u&&!D)throw new p(ns);if(xs(x,0)!=W)throw new p("Local file header not found");ps(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,fs(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=gs(a,n,Yr),L=gs(a,n,"checkPasswordOnly");let H=gs(a,n,"checkOverlappingEntry");const Z=gs(a,n,"checkOverlappingEntryOnly");Z&&(H=!0);const{onstart:P,onprogress:V,onend:q}=n,K=9==u;let j=gs(a,n,Qr);K&&(j=!1);const X={options:{codecType:Gt,password:F,rawPassword:k,zipCrypto:C,encryptionStrength:l&&l.strength,signed:gs(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:gs(a,n,Jr),useCompressionStream:j,transferStreams:gs(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(xs(ks(r),0)==B){const e=xs(ks(r),4);let s,o;l?(s=Fs(ks(r),8),o=Fs(ks(r),16)):(s=xs(ks(r),8),o=xs(ks(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 lr({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{gs(a,n,$r)||!Y||Y.locked||await Y.getWriter().close()}return L||Z?Q:e.getData?e.getData():Y}};function ps(e,t,s){const n=e.rawBitFlag=Ss(t,s+2),a=!(1&~n),i=xs(t,s+6);r.assign(e,{encrypted:a,version:Ss(t,s),bitFlag:{level:(6&n)>>1,dataDescriptor:!(8&~n),languageEncodingFlag:(n&P)==P},rawLastModDate:i,lastModDate:ys(i),filenameLength:Ss(t,s+22),extraFieldLength:Ss(t,s+24)})}function fs(e,t,s,n,a){const{rawExtraField:i}=t,l=t.extraField=new c,d=ks(new f(i));let u=0;try{for(;u<i.length;){const e=Ss(d,u),t=Ss(d,u+2);l.set(e,{type:e,data:i.slice(u+4,u+4+t)}),u+=4+t}}catch{}const h=Ss(s,n+4);r.assign(t,{signature:xs(s,n+10),compressedSize:xs(s,n+14),uncompressedSize:xs(s,n+18)});const w=l.get(1);w&&(((e,t)=>{t.zip64=!0;const r=ks(e.data),s=cs.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=ls[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&&(hs(m,fr,hr,t,e),t.extraFieldUnicodePath=m);const g=l.get(25461);g&&(hs(g,wr,mr,t,e),t.extraFieldUnicodeComment=g);const y=l.get(39169);y?(((e,t,s)=>{const n=ks(e.data),a=zs(n,4);r.assign(e,{vendorVersion:zs(n,0),vendorId:zs(n,2),strength:a,originalCompressionMethod:s,compressionMethod:Ss(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=ks(e.data);let n,a=4;try{for(;a<e.data.length&&!n;){const t=Ss(s,a),r=Ss(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=ks(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:bs(a),lastAccessDate:bs(i),creationDate:bs(o)};r.assign(e,c),r.assign(t,c)}}catch{}})(b,t),t.extraFieldNTFS=b);const z=l.get(30805);if(z)ws(z,t,!1),t.extraFieldUnix=z;else{const e=l.get(30837);e&&(ws(e,t,!0),t.extraFieldInfoZip=e)}const S=l.get(Z);S&&(((e,t,r)=>{const s=ks(e.data),n=zs(s,0),a=[],i=[];r?(1&~n||(a.push(Sr),i.push(xr)),2&~n||(a.push(Fr),i.push("rawLastAccessDate")),4&~n||(a.push(kr),i.push(Dr))):5>e.data.length||(a.push(Sr),i.push(xr));let c=1;a.forEach((r,n)=>{if(e.data.length>=c+4){const a=xs(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 hs(e,t,s,n,a){const i=ks(e.data),o=new qe;o.append(a[s]);const c=ks(new f(4));c.setUint32(0,o.get(),!0);const l=xs(i,1);r.assign(e,{version:zs(i,0),[t]:pr(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==xs(c,0)}),e.valid&&(n[t]=e[t],n[t+"UTF8"]=!0)}function ws(e,t,s){try{const n=ks(new f(e.data));let a=0;const i=zs(n,a++),o=zs(n,a++),c=e.data.subarray(a,a+o);a+=o;const l=ms(c),d=zs(n,a++),u=e.data.subarray(a,a+d);a+=d;const p=ms(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 ms(e){const t=new f(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function gs(e,t,r){return t[r]===Q?e.options[r]:t[r]}function ys(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 bs(e){return new o(n(e/a(1e4)-a(116444736e5)))}function zs(e,t){return e.getUint8(t)}function Ss(e,t){return e.getUint16(t,!0)}function xs(e,t){return e.getUint32(t,!0)}function Fs(e,t){return n(e.getBigUint64(t,!0))}function ks(e){return new m(e.buffer)}const Ds="Version exceeds 65535",Es="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",vs=new f([7,0,2,0,65,69,3,0,0]),As="infozip",Us="unix";let Rs=0;const Ts=[];class Cs{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[ts]===Q?e.size||e.writable.size||0:t[ts],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 ds(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=qs(m,g,y,b,z,S),E=w&&d>T,v=w&&u>T,{headerArray:A,headerView:U}=Ks({version:t,bitFlag:js(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;Rs<u.maxWorkers?Rs++:await new y(e=>Ts.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=Ns(e,c,Rr),u=Ns(e,c,Wr,l?20:768);const w=Ns(e,c,Nr),g=Ns(e,c,"uid"),b=Ns(e,c,"gid");let z=Ns(e,c,Hr);const S=Ns(e,c,"unixExtraFieldType");let x=Ns(e,c,Zr),F=Ns(e,c,Pr),D=Ns(e,c,Vr);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!==As&&S!==Us)throw new p("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");let E=Ns(e,c,Ar),v=Ns(e,c,Ur);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(Ds);let U=Ns(e,c,vr,0);!c[Br]&&s.endsWith(X)&&(c[Br]=!0);const R=Ns(e,c,Br);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=Ns(e,c,"encodeText",je);let O=I(s);if(O===Q&&(O=je(s)),qs(O)>C)throw new p("File entry name exceeds 64KB");const L=c[wr]||"";let H=I(L);if(H===Q&&(H=je(L)),qs(H)>C)throw new p("File entry comment exceeds 64KB");const P=Ns(e,c,Mr,20);if(P>C)throw new p(Ds);const $=Ns(e,c,Sr,new o),ee=Ns(e,c,Fr),te=Ns(e,c,kr),re=Ns(e,c,Er,0),se=Ns(e,c,Gr);let ne,ie;se||(ne=Ns(e,c,jr),ie=Ns(e,c,Xr));const oe=Ns(e,c,"encryptionStrength",3),ce=Ns(e,c,_r),le=Ns(e,c,"extendedTimestamp",!0),de=Ns(e,c,"keepOrder",!0),ue=Ns(e,c,Jr),pe=Ns(e,c,"bufferedWrite"),fe=Ns(e,c,"dataDescriptorSignature",!1),he=Ns(e,c,Yr),we=Ns(e,c,"useUnicodeFileNames",!0),me=Ns(e,c,Ir);let ge=Ns(e,c,"level"),ye=Ns(e,c,Qr),be=Ns(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=Ns(e,c,Tr);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[Lr];if(xe){let e=0,t=0;xe.forEach(t=>e+=4+qs(t)),Se=new f(e),xe.forEach((e,r)=>{if(r>C)throw new p("Extra field type exceeds 65535");if(qs(e)>C)throw new p("Extra field data exceeds 64KB");Ps(Se,new h([r]),t),Ps(Se,new h([qs(e)]),t+2),Ps(Se,e,t+4),t+=4+qs(e)})}let Fe=0,ke=0,De=0;if(se&&(De=c[gr],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=Is(De)):n.size===Q?(be=!0,(ze||ze===Q)&&(ze=!0,De=Fe=4294967296)):(c.uncompressedSize=De=n.size,Fe=Is(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=Ns(e,c,es,!0)&&Ee||Ae+i.ceil(e.pendingEntriesSize/Ue)>C;if(Ce||Re||Te||Me){if(!1===ze||!de)throw new p(Es);ze=!0}ze=ze||!1;const We=Ns(e,c,Cr),_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;const T=y||!U,M=c&&(e.bufferedWrite||!z&&!S||T);if(c){let e=4;z&&(e+=8),S&&(e+=8),x&&(e+=8),F&&(e+=4),R=new f(e);const t=Vs(R);if(Ls(t,0,1),Ls(t,2,qs(R)-4),M){const e=Vs(R);let t=4;z&&(Zs(e,t,a(k)),t+=8),S&&T&&(Zs(e,t,a(k)),t+=8),x&&(Zs(e,t,a(D)),t+=8),F&&(Hs(e,t,E),t+=4)}}else R=new f;let _,B,N,I,O;if(b&&!l){_=new f(qs(vs)+2);const e=Vs(_);Ls(e,0,39169),Ps(_,vs,2),Os(e,8,w)}else _=new f;if(g){N=new f(9+(s?4:0)+(n?4:0));const e=Vs(N);Ls(e,0,Z),Ls(e,2,qs(N)-4),I=1+(s?2:0)+(n?4:0),Os(e,4,I);let t=5;Hs(e,t,i.floor(r.getTime()/1e3)),t+=4,s&&(Hs(e,t,i.floor(s.getTime()/1e3)),t+=4),n&&Hs(e,t,i.floor(n.getTime()/1e3));try{B=new f(36);const e=Vs(B),t=Bs(r);Ls(e,0,10),Ls(e,2,32),Ls(e,8,1),Ls(e,10,24),Zs(e,12,t),Zs(e,20,Bs(s)||t),Zs(e,28,Bs(n)||t)}catch{B=new f}}else B=N=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)O=new f;else{const e=Ms(t),c=Ms(r);let l=new f;if(o==Us&&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;O=new f(4+d);const u=Vs(O);Ls(u,0,o==As?30837:30805),Ls(u,2,d),Os(u,4,1),Os(u,5,e.length);let p=6;Ps(O,e,p),p+=e.length,Os(u,p,c.length),p++,Ps(O,c,p),p+=c.length,Ps(O,l,p)}}catch{O=new f}A===Q&&(A=U?8:0),c&&(v=v>45?v:45),b&&!l&&(v=v>51?v:51,_[9]=A,A=99);const L=M?qs(R):0,H=L+qs(_,N,B,O,h),{headerArray:P,headerView:V,rawLastModDate:X}=Ks({version:v,bitFlag:js(o,d,u,b,A),compressionMethod:A,uncompressedSize:k,lastModDate:J>r?J:r>Y?Y:r,rawFilename:t,zip64CompressedSize:S,zip64UncompressedSize:z,extraFieldLength:H});let $=G;const ee=new f($+qs(t)+H),te=Vs(ee);return Hs(te,0,W),Ps(ee,P,4),Ps(ee,t,$),$+=qs(t),M&&Ps(ee,R,$),$+=L,Ps(ee,_,$),$+=qs(_),Ps(ee,N,$),$+=qs(N),Ps(ee,B,$),$+=qs(B),Ps(ee,O,$),$+=qs(O),Ps(ee,h,$),u&&(Hs(te,18,0),Hs(te,22,0)),{localHeaderArray:ee,localHeaderView:te,headerArray:P,headerView:V,lastModDate:r,rawLastModDate:X,encrypted:b,compressed:U,version:v,compressionMethod:A,extraFieldExtendedTimestampFlag:I,rawExtraFieldZip64:R,localExtraFieldZip64Length:L,rawExtraFieldExtendedTimestamp:N,rawExtraFieldNTFS:B,rawExtraFieldUnix:O,rawExtraFieldAES:_,extraFieldLength:H}})(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&&qs(ne)||ie&&qs(ie))||se&&We,signature:c[Or],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=Vs(n),r&&(a=4,Hs(s,0,B))),{dataDescriptorArray:n,dataDescriptorView:s,dataDescriptorOffset:a}})(c),Ne=qs(_e.localHeaderArray,Be.dataDescriptorArray);let Ie;ke=Ne+Fe,e.options[rs]&&(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[rs],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);Hs(Vs(t),0,_),await _s(l,t),e.offset+=4}g&&((e,t)=>{const{headerInfo:r}=e;let{localHeaderArray:s,extraFieldLength:n}=r,a=Vs(s),i=64-(t+qs(s))%64;4>i&&(i+=64);const o=new f(i),c=Vs(o);Ls(c,0,6534),Ls(c,2,i-2);const l=s;r.localHeaderArray=s=new f(qs(l)+i),Ps(s,l),Ps(s,o,qs(l)),a=Vs(s),Ls(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 _s(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 lr({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||(Hs(l,10,e),c&&Hs(u,p,e)),i?c&&(Zs(u,p+4,a(t)),Zs(u,p+12,a(r))):(Hs(l,14,t),Hs(l,18,r),c&&(Hs(u,p+4,t),Hs(u,p+8,r)))})({signature:ge,compressedSize:be,uncompressedSize:ye,headerInfo:l,dataDescriptorInfo:d},c),H&&await _s(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&&Ws(A),(({rawFilename:e,encrypted:t,zip64:r,localExtraFieldZip64Length:s,signature:n,compressedSize:i,uncompressedSize:o,offset:c,diskNumberStart:l,zip64UncompressedSize:d,zip64CompressedSize:u,zip64Offset:p,zip64DiskNumberStart:f},h,{dataDescriptor:w})=>{if(w||(t||Hs(h,14,n),r||(Hs(h,18,i),Hs(h,22,o))),r&&s){let t=G+qs(e)+4;d&&(Zs(h,t,a(o)),t+=8),u&&(Zs(h,t,a(i)),t+=8),p&&(Zs(h,t,a(c)),t+=8),f&&Hs(h,t,l)}})(A,W,o),await R(S),await _s(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&&Ws(A);if(A.offset>T&&!I)throw new p(Es);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){qs(m.localHeaderArray)>l.availableSize&&(l.availableSize=0,await _s(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 Kr(Ie)})(c,e,s,n),l.add(w),await w}catch(t){throw c.filenames.delete(e),t}finally{l.delete(w);const e=Ts.shift();e?e():Rs--}}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=Vs(h);Ls(e,0,Z),Ls(e,2,5),Os(e,4,d),Hs(e,5,i.floor(p.getTime()/1e3))}else h=new f;e.rawExtraFieldExtendedTimestamp=h,u+=46+qs(t,n,r,s,a,o,h,c)}const m=new f(u),g=Vs(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=qs(i,c,l,u,p,f);Hs(g,d,N),Ls(g,d+4,w),x||Hs(z,18,U),F||Hs(z,14,R),Ps(m,b,d+6);let W=d+G;if(Ls(g,W,M),W+=2,Ls(g,W,qs(h)),W+=2,Ls(g,W,S&&k?C:A),W+=2,Ls(g,W,E),W+=2,v&&Hs(g,W,v),W+=4,Hs(g,W,S&&D?T:t),W+=4,Ps(m,a,W),W+=qs(a),Ps(m,i,W),W+=qs(i),Ps(m,c,W),W+=qs(c),Ps(m,l,W),W+=qs(l),Ps(m,u,W),W+=qs(u),Ps(m,p,W),W+=qs(p),Ps(m,f,W),W+=qs(f),Ps(m,h,W),W+=qs(h),d-y>o.availableSize&&(o.availableSize=0,await _s(o,m.slice(y,d)),y=d),d=W,s.onprogress)try{await s.onprogress(e+1,n.size,new Kr(r))}catch{}}await _s(o,y?m.slice(y):m);let b=o.diskNumber;const{availableSize:z}=o;H>z&&b++;let S=Ns(e,s,Tr);if(h>T||u>T||w>C||b>C){if(!1===S)throw new p(Es);S=!0}const x=new f(S?98:H),F=Vs(x);d=0,S&&(Hs(F,0,O),Zs(F,4,a(44)),Ls(F,12,45),Ls(F,14,45),Hs(F,16,b),Hs(F,20,l),Zs(F,24,a(w)),Zs(F,32,a(w)),Zs(F,40,a(u)),Zs(F,48,a(h)),Hs(F,56,L),Zs(F,64,a(h)+a(u)),Hs(F,72,b+1),Ns(e,s,es,!0)&&(b=C,l=C),w=C,h=T,u=T,d+=76),Hs(F,d,I),Ls(F,d+4,b),Ls(F,d+6,l),Ls(F,d+8,w),Ls(F,d+10,w),Hs(F,d+12,u),Hs(F,d+16,h);const k=qs(r);if(k){if(k>C)throw new p("Zip file comment exceeds 64KB");Ls(F,d+20,k)}await _s(o,x),k&&await _s(o,r)})(this,e,r),Ns(this,r,$r)||await o.getWriter().close(),n.getData?n.getData():o}}function Ms(e){if(e===Q)return new f;{const t=new f(4);Vs(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}function Ws({compressedSize:e,uncompressedSize:t,offset:r,diskNumberStart:s,zip64UncompressedSize:n,zip64CompressedSize:i,zip64Offset:o,zip64DiskNumberStart:c,rawExtraFieldZip64:l}){const d=Vs(l);let u=4;n&&(Zs(d,u,a(t)),u+=8),i&&(Zs(d,u,a(e)),u+=8),o&&(Zs(d,u,a(r)),u+=8),c&&Hs(d,u,s)}async function _s(e,t){const{writable:r}=e,s=r.getWriter();try{await s.ready,e.size+=qs(t),await s.write(t)}finally{s.releaseLock()}}function Bs(e){if(e)return(a(e.getTime())+a(116444736e5))*a(1e4)}function Ns(e,t,r,s){const n=t[r]===Q?e.options[r]:t[r];return n===Q?s:n}function Is(e){return e+5*(i.floor(e/16383)+1)}function Os(e,t,r){e.setUint8(t,r)}function Ls(e,t,r){e.setUint16(t,r,!0)}function Hs(e,t,r){e.setUint32(t,r,!0)}function Zs(e,t,r){e.setBigUint64(t,r,!0)}function Ps(e,t,r){e.set(t,r)}function Vs(e){return new m(e.buffer)}function qs(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function Ks({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:s,compressedSize:n,lastModDate:a,rawFilename:i,zip64CompressedSize:o,zip64UncompressedSize:c,extraFieldLength:l}){const d=new f(26),u=Vs(d);Ls(u,0,e),Ls(u,2,t),Ls(u,4,r);const p=new w(1),h=Vs(p);Ls(h,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),Ls(h,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate());const m=p[0];return Hs(u,6,m),(o||n!==Q)&&Hs(u,14,o?T:n),(c||s!==Q)&&Hs(u,18,c?T:s),Ls(u,22,qs(i)),Ls(u,24,l),{headerArray:d,headerView:u,rawLastModDate:m}}function js(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 Xs{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 Gs extends Xs{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 Gs(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 Ys extends Xs{constructor(e,t,r,s){super(e,t,r,s),this.directory=!0}clone(e){const t=this,r=new Ys(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 nn(this,e,{options:t},!0)}addText(e,t,r={}){return nn(this,e,{data:t,Reader:ze,Writer:Se,options:r,uncompressedSize:t.length})}addBlob(e,t,r={}){return nn(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 nn(this,e,{data:t,Reader:me,Writer:ge,options:r,uncompressedSize:i.floor(.75*(s-n))})}addUint8Array(e,t,r={}){return nn(this,e,{data:t,Reader:Be,Writer:Ne,options:r,uncompressedSize:t.length})}addHttpContent(e,t,r={}){return nn(this,e,{data:t,Reader:class extends _e{constructor(e){super(e,r)}},options:r})}addReadable(e,t,r={}){return nn(this,e,{Reader:()=>({readable:t}),options:r})}addFileSystemEntry(e,t={}){return tn(this,e,t)}addFileSystemHandle(e,t={}){return tn(this,e,t)}addFile(e,t={}){return t.lastModDate||(t.lastModDate=new o(e.lastModified)),nn(this,e.name,{data:e,Reader:()=>({readable:e.stream(),size:e.size}),options:t,uncompressedSize:e.size})}addData(e,t){return nn(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 ds(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 Ys(this.fs,t,{data:r==a.length-1?e:null},i),n.push(s))}),e.directory||n.push(nn(s,i,{data:e,Reader:Qs(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([$s(n,s.readerOptions),Ze(e)]);const a=new Cs(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 Kr){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 Js={FS:class{constructor(){sn(this)}get children(){return this.root.children}remove(e){en(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");en(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 sn(this),this.root.importBlob(e,t)}importData64URI(e,t){return sn(this),this.root.importData64URI(e,t)}importUint8Array(e,t){return sn(this),this.root.importUint8Array(e,t)}importHttpContent(e,t){return sn(this),this.root.importHttpContent(e,t)}importReadable(e,t){return sn(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:Ys,ZipFileEntry:Gs};function Qs(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 $s(e,t){e.children.length&&await y.all(e.children.map(async e=>{if(e.directory)await $s(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 en(e){if(e.parent){const t=e.parent.children;t.forEach((r,s)=>{r.id==e.id&&t.splice(s,1)})}}function tn(e,t,s){return async function e(t,n,a){if(n)try{if((n.isFile||n.isDirectory)&&(n=await rn(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 rn(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 rn(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 sn(e){e.entries=[],e.root=new Ys(e)}function nn(e,t,r,s){if(e.directory)return s?new Ys(e.fs,t,r,e):new Gs(e.fs,t,r,e);throw new p("Parent entry is not a directory")}e.fs=Js});
|
|
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=typeof R!=$;class $t{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 er(i),{signal:u}),writable:s,options:r.assign({},n),workerURI:l,transferStreams:c,terminate:()=>new y(t=>{const{worker:r,busy:s}=e;r?(s?e.resolveTerminated=t:(r.terminate(),t()),e.interface=null):t()}),onTaskFinished(){const{resolveTerminated:t}=e;t&&(e.resolveTerminated=null,e.terminated=!0,e.worker.terminate(),t()),e.busy=!1,d(e)}}),(o&&Qt?sr:rr)(e,a)}}class er extends k{constructor({onstart:e,onprogress:t,size:r,onend:s}){let n=0;super({async start(){e&&await tr(e,r)},async transform(e,s){n+=e.length,t&&await tr(t,n,r),s.enqueue(e)},async flush(){s&&await tr(s,n)}})}}async function tr(e,...t){try{await e(...t)}catch{}}function rr(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 sr(e,t){const{baseURI:s,chunkSize:n}=t;let{wasmURI:a}=t;if(!e.interface){let i;typeof a==ee&&(a=a());try{i=((e,t,s)=>{const n={type:"module"};let a,i;if(typeof e==ee&&(e=e()),e.startsWith("data:")||e.startsWith("blob:"))try{i=new R(e)}catch{i=new R(e,n)}else{try{a=new u(e,t)}catch{a=e}i=new R(a,n)}return i.addEventListener("message",e=>(async({data:e},t)=>{const{type:s,value:n,messageId:a,result:i,error:o}=e,{reader:c,writer:l,resolveResult:d,rejectResult:u,onTaskFinished:h}=t;try{if(o){const{message:e,stack:t,code:s,name:n,outputSize:a}=o,i=new p(e);r.assign(i,{stack:t,code:s,name:n,outputSize:a}),w(i)}else{if("pull"==s){const{value:e,done:r}=await c.read();ar({type:Kt,value:e,done:r,messageId:a},t)}s==Kt&&(await l.ready,await l.write(new f(n)),ar({type:"ack",messageId:a},t)),s==jt&&w(null,i)}}catch(o){ar({type:jt,messageId:a},t),w(o)}function w(e,t){e?u(e):d(t),l&&l.releaseLock(),h()}})(e,s)),i})(e.workerURI,s,e)}catch{return Qt=!1,rr(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=ar({type:"start",options:o,config:t,readable:i,writable:c},e);d||r.assign(e,{reader:i.getReader(),writer:c.getWriter()});const u=await a;return d||await c.getWriter().close(),await l,u})(e,{chunkSize:n,wasmURI:a,baseURI:s})}})}return e.interface}let nr=!0;function ar(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&&nr?(s&&i.push(s),a&&i.push(a)):e.readable=e.writable=null,i.length)try{return t.postMessage(e,i),!0}catch{nr=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(e){throw r&&r.releaseLock(),s(),e}}let ir=[];const or=[];let cr=0;async function lr(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=ir.find(e=>!e.busy);if(r)return dr(r),new $t(r,e,t,h);if(ir.length<p){const r={indexWorker:cr};return cr++,ir.push(r),new $t(r,e,t,h)}return new y(r=>or.push({resolve:r,stream:e,workerOptions:t}))})()).run();function h(e){if(or.length){const[{resolve:t,stream:r,workerOptions:s}]=or.splice(0,1);t(new $t(e,r,s,h))}else e.worker?(dr(e),((e,t)=>{const{config:r}=t,{terminateWorkerTimeout:s}=r;n.isFinite(s)&&s>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{ir=ir.filter(t=>t!=e);try{await e.terminate()}catch{}},s))})(e,t)):ir=ir.filter(t=>t!=e)}}function dr(e){const{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}const ur="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");function pr(e,t){return t&&"cp437"==t.trim().toLowerCase()?(e=>{{let t="";for(let r=0;r<e.length;r++)t+=ur[e[r]];return t}})(e):new z(t).decode(e)}const fr="filename",hr="rawFilename",wr="comment",mr="rawComment",gr="uncompressedSize",yr="compressedSize",br="offset",zr="diskNumberStart",Sr="lastModDate",xr="rawLastModDate",Fr="lastAccessDate",kr="creationDate",Dr="rawCreationDate",Er="internalFileAttributes",vr="externalFileAttributes",Ar="msdosAttributesRaw",Ur="msdosAttributes",Rr="msDosCompatible",Tr="zip64",Cr="encrypted",Mr="version",Wr="versionMadeBy",_r="zipCrypto",Br="directory",Nr="executable",Ir="compressionMethod",Or="signature",Lr="extraField",Hr="unixMode",Zr="setuid",Pr="setgid",Vr="sticky",qr=[fr,hr,gr,yr,Sr,xr,wr,mr,Fr,kr,Dr,br,zr,Er,vr,Ar,Ur,Rr,Tr,Cr,Mr,Wr,_r,Br,Nr,Ir,Or,Lr,"extraFieldUnix","extraFieldInfoZip","uid","gid",Hr,Zr,Pr,Vr,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Kr{constructor(e){qr.forEach(t=>this[t]=e[t])}}const jr="password",Xr="rawPassword",Gr="passThrough",Yr="signal",Jr="useWebWorkers",Qr="useCompressionStream",$r="preventClose",es="supportZip64SplitFile",ts="offset",rs="usdz",ss="File format is not recognized",ns="Compression method not supported",as="Split zip file",is="utf-8",os="cp437",cs=[[gr,T],[yr,T],[br,T],[zr,C]],ls={[C]:{getValue:xs,bytes:4},[T]:{getValue:Fs,bytes:8}};class ds{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(ss);s.chunkSize=ae(n);const a=await(async(e,t,r)=>{const s=new f(4);var n;return n=t,ks(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 xs(ks(await Pe(s,0,4)))==_?new p(as):new p("End of central directory not found");const o=ks(a);let c=xs(o,12),l=xs(o,16);const u=a.offset,h=Ss(o,20),w=u+H+h;let m=Ss(o,4);const g=s.lastDiskNumber||0;let b=Ss(o,6),z=Ss(o,8),S=0,x=0;if(l==T||c==T||z==C||b==C){const e=ks(await Pe(s,a.offset-20,20));if(xs(e,0)==L){l=Fs(e,8);let t=await Pe(s,l,56,-1),r=ks(t);const n=a.offset-20-56;if(xs(r,0)!=O&&l!=n){const e=l;l=n,l>e&&(S=l-e),t=await Pe(s,l,56,-1),r=ks(t)}if(xs(r,0)!=O)throw new p("End of Zip64 central directory locator not found");m==C&&(m=xs(r,16)),b==C&&(b=xs(r,20)),z==C&&(z=Fs(r,32)),c==T&&(c=Fs(r,40)),l-=c}}if(l<s.size||(S=s.size-l-c-H,l=s.size-c-H),g!=m)throw new p(as);if(0>l)throw new p(ss);let F=0,D=await Pe(s,l,c,b),E=ks(D);if(c){const e=a.offset-c;if(xs(E,F)!=N&&l!=e){const t=l;l=e,l>t&&(S+=l-t),D=await Pe(s,l,c,b),E=ks(D)}}const v=a.offset-l-(s.lastDiskOffset||0);if(c==v||0>v||(c=v,D=await Pe(s,l,c,b),E=ks(D)),0>l||l>=s.size)throw new p(ss);const A=gs(t,e,"filenameEncoding"),U=gs(t,e,"commentEncoding");for(let a=0;z>a;a++){const o=new us(s,n,t.options);if(xs(E,F)!=N)throw new p("Central directory header not found");ps(o,E,F+6);const c=!!o.bitFlag.languageEncodingFlag,l=F+46,u=l+o.filenameLength,f=u+o.extraFieldLength,h=Ss(E,F+4),w=!(h>>8),m=h>>8==3,g=D.subarray(l,u),b=Ss(E,F+32),v=f+b,R=D.subarray(f,v),T=c,W=c,_=xs(E,F+38),B=_&M,I={readOnly:!!(1&B),hidden:!!(2&B),system:!!(4&B),directory:!!(16&B),archive:!!(32&B)},O=xs(E,F+42)+S,L=gs(t,e,"decodeText")||pr,H=T?is:A||os,Z=W?is:U||os;let P=L(g,H);P===Q&&(P=pr(g,H));let G=L(R,Z);G===Q&&(G=pr(R,Z)),r.assign(o,{versionMadeBy:h,msDosCompatible:w,compressedSize:0,uncompressedSize:0,commentLength:b,offset:O,diskNumberStart:Ss(E,F+34),internalFileAttributes:Ss(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),fs(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 Kr(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 Kr(o))}catch{}yield ne}const R=gs(t,e,"extractPrependedData"),W=gs(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 us=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=ks(await Pe(i,o,G,c));let F=gs(a,n,jr),k=gs(a,n,Xr);const D=gs(a,n,Gr);if(F=F&&F.length&&F,k=k&&k.length&&k,l&&99!=l.originalCompressionMethod)throw new p(ns);if(0!=u&&8!=u&&9!=u&&!D)throw new p(ns);if(xs(x,0)!=W)throw new p("Local file header not found");ps(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,fs(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=gs(a,n,Yr),L=gs(a,n,"checkPasswordOnly");let H=gs(a,n,"checkOverlappingEntry");const Z=gs(a,n,"checkOverlappingEntryOnly");Z&&(H=!0);const{onstart:P,onprogress:V,onend:q}=n,K=9==u;let j=gs(a,n,Qr);K&&(j=!1);const X={options:{codecType:Gt,password:F,rawPassword:k,zipCrypto:C,encryptionStrength:l&&l.strength,signed:gs(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:gs(a,n,Jr),useCompressionStream:j,transferStreams:gs(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(xs(ks(r),0)==B){const e=xs(ks(r),4);let s,o;l?(s=Fs(ks(r),8),o=Fs(ks(r),16)):(s=xs(ks(r),8),o=xs(ks(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 lr({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{gs(a,n,$r)||!Y||Y.locked||await Y.getWriter().close()}return L||Z?Q:e.getData?e.getData():Y}};function ps(e,t,s){const n=e.rawBitFlag=Ss(t,s+2),a=!(1&~n),i=xs(t,s+6);r.assign(e,{encrypted:a,version:Ss(t,s),bitFlag:{level:(6&n)>>1,dataDescriptor:!(8&~n),languageEncodingFlag:(n&P)==P},rawLastModDate:i,lastModDate:ys(i),filenameLength:Ss(t,s+22),extraFieldLength:Ss(t,s+24)})}function fs(e,t,s,n,a){const{rawExtraField:i}=t,l=t.extraField=new c,d=ks(new f(i));let u=0;try{for(;u<i.length;){const e=Ss(d,u),t=Ss(d,u+2);l.set(e,{type:e,data:i.slice(u+4,u+4+t)}),u+=4+t}}catch{}const h=Ss(s,n+4);r.assign(t,{signature:xs(s,n+10),compressedSize:xs(s,n+14),uncompressedSize:xs(s,n+18)});const w=l.get(1);w&&(((e,t)=>{t.zip64=!0;const r=ks(e.data),s=cs.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=ls[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&&(hs(m,fr,hr,t,e),t.extraFieldUnicodePath=m);const g=l.get(25461);g&&(hs(g,wr,mr,t,e),t.extraFieldUnicodeComment=g);const y=l.get(39169);y?(((e,t,s)=>{const n=ks(e.data),a=zs(n,4);r.assign(e,{vendorVersion:zs(n,0),vendorId:zs(n,2),strength:a,originalCompressionMethod:s,compressionMethod:Ss(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=ks(e.data);let n,a=4;try{for(;a<e.data.length&&!n;){const t=Ss(s,a),r=Ss(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=ks(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:bs(a),lastAccessDate:bs(i),creationDate:bs(o)};r.assign(e,c),r.assign(t,c)}}catch{}})(b,t),t.extraFieldNTFS=b);const z=l.get(30805);if(z)ws(z,t,!1),t.extraFieldUnix=z;else{const e=l.get(30837);e&&(ws(e,t,!0),t.extraFieldInfoZip=e)}const S=l.get(Z);S&&(((e,t,r)=>{const s=ks(e.data),n=zs(s,0),a=[],i=[];r?(1&~n||(a.push(Sr),i.push(xr)),2&~n||(a.push(Fr),i.push("rawLastAccessDate")),4&~n||(a.push(kr),i.push(Dr))):5>e.data.length||(a.push(Sr),i.push(xr));let c=1;a.forEach((r,n)=>{if(e.data.length>=c+4){const a=xs(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 hs(e,t,s,n,a){const i=ks(e.data),o=new qe;o.append(a[s]);const c=ks(new f(4));c.setUint32(0,o.get(),!0);const l=xs(i,1);r.assign(e,{version:zs(i,0),[t]:pr(e.data.subarray(5)),valid:!a.bitFlag.languageEncodingFlag&&l==xs(c,0)}),e.valid&&(n[t]=e[t],n[t+"UTF8"]=!0)}function ws(e,t,s){try{const n=ks(new f(e.data));let a=0;const i=zs(n,a++),o=zs(n,a++),c=e.data.subarray(a,a+o);a+=o;const l=ms(c),d=zs(n,a++),u=e.data.subarray(a,a+d);a+=d;const p=ms(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 ms(e){const t=new f(4);return t.set(e,0),new m(t.buffer,t.byteOffset,4).getUint32(0,!0)}function gs(e,t,r){return t[r]===Q?e.options[r]:t[r]}function ys(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 bs(e){return new o(n(e/a(1e4)-a(116444736e5)))}function zs(e,t){return e.getUint8(t)}function Ss(e,t){return e.getUint16(t,!0)}function xs(e,t){return e.getUint32(t,!0)}function Fs(e,t){return n(e.getBigUint64(t,!0))}function ks(e){return new m(e.buffer)}const Ds="Version exceeds 65535",Es="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",vs=new f([7,0,2,0,65,69,3,0,0]),As="infozip",Us="unix";let Rs=0;const Ts=[];class Cs{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[ts]===Q?e.size||e.writable.size||0:t[ts],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 ds(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=qs(m,g,y,b,z,S),E=w&&d>T,v=w&&u>T,{headerArray:A,headerView:U}=Ks({version:t,bitFlag:js(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;Rs<u.maxWorkers?Rs++:await new y(e=>Ts.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=Ns(e,c,Rr),u=Ns(e,c,Wr,l?20:768);const w=Ns(e,c,Nr),g=Ns(e,c,"uid"),b=Ns(e,c,"gid");let z=Ns(e,c,Hr);const S=Ns(e,c,"unixExtraFieldType");let x=Ns(e,c,Zr),F=Ns(e,c,Pr),D=Ns(e,c,Vr);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!==As&&S!==Us)throw new p("Invalid unixExtraFieldType (must be 'infozip' or 'unix')");let E=Ns(e,c,Ar),v=Ns(e,c,Ur);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(Ds);let U=Ns(e,c,vr,0);!c[Br]&&s.endsWith(X)&&(c[Br]=!0);const R=Ns(e,c,Br);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=Ns(e,c,"encodeText",je);let O=I(s);if(O===Q&&(O=je(s)),qs(O)>C)throw new p("File entry name exceeds 64KB");const L=c[wr]||"";let H=I(L);if(H===Q&&(H=je(L)),qs(H)>C)throw new p("File entry comment exceeds 64KB");const P=Ns(e,c,Mr,20);if(P>C)throw new p(Ds);const $=Ns(e,c,Sr,new o),ee=Ns(e,c,Fr),te=Ns(e,c,kr),re=Ns(e,c,Er,0),se=Ns(e,c,Gr);let ne,ie;se||(ne=Ns(e,c,jr),ie=Ns(e,c,Xr));const oe=Ns(e,c,"encryptionStrength",3),ce=Ns(e,c,_r),le=Ns(e,c,"extendedTimestamp",!0),de=Ns(e,c,"keepOrder",!0),ue=Ns(e,c,Jr),pe=Ns(e,c,"bufferedWrite"),fe=Ns(e,c,"dataDescriptorSignature",!1),he=Ns(e,c,Yr),we=Ns(e,c,"useUnicodeFileNames",!0),me=Ns(e,c,Ir);let ge=Ns(e,c,"level"),ye=Ns(e,c,Qr),be=Ns(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=Ns(e,c,Tr);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[Lr];if(xe){let e=0,t=0;xe.forEach(t=>e+=4+qs(t)),Se=new f(e),xe.forEach((e,r)=>{if(r>C)throw new p("Extra field type exceeds 65535");if(qs(e)>C)throw new p("Extra field data exceeds 64KB");Ps(Se,new h([r]),t),Ps(Se,new h([qs(e)]),t+2),Ps(Se,e,t+4),t+=4+qs(e)})}let Fe=0,ke=0,De=0;if(se&&(De=c[gr],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=Is(De)):n.size===Q?(be=!0,(ze||ze===Q)&&(ze=!0,De=Fe=4294967296)):(c.uncompressedSize=De=n.size,Fe=Is(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=Ns(e,c,es,!0)&&Ee||Ae+i.ceil(e.pendingEntriesSize/Ue)>C;if(Ce||Re||Te||Me){if(!1===ze||!de)throw new p(Es);ze=!0}ze=ze||!1;const We=Ns(e,c,Cr),_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=Vs(R);T=new f(t);const s=Vs(T);if(Ls(r,0,1),Ls(r,2,qs(R)-4),Ls(s,0,1),Ls(s,2,qs(T)-4),_){const e=Vs(R),t=Vs(T);let r=4,s=4;z&&(Zs(e,r,a(k)),r+=8,Zs(t,s,a(k)),s+=8),S&&M&&(Zs(e,r,a(k)),r+=8,Zs(t,s,a(k)),s+=8),x&&(Zs(e,r,a(D)),r+=8),F&&(Hs(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(qs(vs)+2);const e=Vs(B);Ls(e,0,39169),Ps(B,vs,2),Os(e,8,w)}else B=new f;if(g){I=new f(9+(s?4:0)+(n?4:0));const e=Vs(I);Ls(e,0,Z),Ls(e,2,qs(I)-4),O=1+(s?2:0)+(n?4:0),Os(e,4,O);let t=5;Hs(e,t,i.floor(r.getTime()/1e3)),t+=4,s&&(Hs(e,t,i.floor(s.getTime()/1e3)),t+=4),n&&Hs(e,t,i.floor(n.getTime()/1e3));try{N=new f(36);const e=Vs(N),t=Bs(r);Ls(e,0,10),Ls(e,2,32),Ls(e,8,1),Ls(e,10,24),Zs(e,12,t),Zs(e,20,Bs(s)||t),Zs(e,28,Bs(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=Ms(t),c=Ms(r);let l=new f;if(o==Us&&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=Vs(L);Ls(u,0,o==As?30837:30805),Ls(u,2,d),Os(u,4,1),Os(u,5,e.length);let p=6;Ps(L,e,p),p+=e.length,Os(u,p,c.length),p++,Ps(L,c,p),p+=c.length,Ps(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=_?qs(T):0,P=H+qs(B,I,N,L,h),{headerArray:V,headerView:X,rawLastModDate:$}=Ks({version:v,bitFlag:js(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+qs(t)+P),re=Vs(te);return Hs(re,0,W),Ps(te,V,4),Ps(te,t,ee),ee+=qs(t),_&&Ps(te,T,ee),ee+=H,Ps(te,B,ee),ee+=qs(B),Ps(te,I,ee),ee+=qs(I),Ps(te,N,ee),ee+=qs(N),Ps(te,L,ee),ee+=qs(L),Ps(te,h,ee),u&&(Hs(re,18,0),Hs(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&&qs(ne)||ie&&qs(ie))||se&&We,signature:c[Or],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=Vs(n),r&&(a=4,Hs(s,0,B))),{dataDescriptorArray:n,dataDescriptorView:s,dataDescriptorOffset:a}})(c),Ne=qs(_e.localHeaderArray,Be.dataDescriptorArray);let Ie;ke=Ne+Fe,e.options[rs]&&(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[rs],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);Hs(Vs(t),0,_),await _s(l,t),e.offset+=4}g&&((e,t)=>{const{headerInfo:r}=e;let{localHeaderArray:s,extraFieldLength:n}=r,a=Vs(s),i=64-(t+qs(s))%64;4>i&&(i+=64);const o=new f(i),c=Vs(o);Ls(c,0,6534),Ls(c,2,i-2);const l=s;r.localHeaderArray=s=new f(qs(l)+i),Ps(s,l),Ps(s,o,qs(l)),a=Vs(s),Ls(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 _s(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 lr({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||(Hs(l,10,e),c&&Hs(u,p,e)),i?c&&(Zs(u,p+4,a(t)),Zs(u,p+12,a(r))):(Hs(l,14,t),Hs(l,18,r),c&&(Hs(u,p+4,t),Hs(u,p+8,r)))})({signature:ge,compressedSize:be,uncompressedSize:ye,headerInfo:l,dataDescriptorInfo:d},c),H&&await _s(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&&Ws(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||Hs(d,14,n),l||Hs(d,18,i),c||Hs(d,22,o)),r&&s){let t=G+qs(e)+4;c&&(Zs(d,t,a(o)),t+=8),l&&(Zs(d,t,a(i)),t+=8)}})(A,W,o),await R(S),await _s(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&&Ws(A);if(A.offset>T&&!I)throw new p(Es);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){qs(m.localHeaderArray)>l.availableSize&&(l.availableSize=0,await _s(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 Kr(Ie)})(c,e,s,n),l.add(w),await w}catch(t){throw c.filenames.delete(e),t}finally{l.delete(w);const e=Ts.shift();e?e():Rs--}}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=Vs(h);Ls(e,0,Z),Ls(e,2,5),Os(e,4,d),Hs(e,5,i.floor(p.getTime()/1e3))}else h=new f;e.rawExtraFieldExtendedTimestamp=h,u+=46+qs(t,n,r,s,a,o,h,c)}const m=new f(u),g=Vs(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=qs(i,c,l,u,p,f);Hs(g,d,N),Ls(g,d+4,w),x||Hs(z,18,U),F||Hs(z,14,R),Ps(m,b,d+6);let W=d+G;if(Ls(g,W,M),W+=2,Ls(g,W,qs(h)),W+=2,Ls(g,W,S&&k?C:A),W+=2,Ls(g,W,E),W+=2,v&&Hs(g,W,v),W+=4,Hs(g,W,S&&D?T:t),W+=4,Ps(m,a,W),W+=qs(a),Ps(m,i,W),W+=qs(i),Ps(m,c,W),W+=qs(c),Ps(m,l,W),W+=qs(l),Ps(m,u,W),W+=qs(u),Ps(m,p,W),W+=qs(p),Ps(m,f,W),W+=qs(f),Ps(m,h,W),W+=qs(h),d-y>o.availableSize&&(o.availableSize=0,await _s(o,m.slice(y,d)),y=d),d=W,s.onprogress)try{await s.onprogress(e+1,n.size,new Kr(r))}catch{}}await _s(o,y?m.slice(y):m);let b=o.diskNumber;const{availableSize:z}=o;H>z&&b++;let S=Ns(e,s,Tr);if(h>T||u>T||w>C||b>C){if(!1===S)throw new p(Es);S=!0}const x=new f(S?98:H),F=Vs(x);d=0,S&&(Hs(F,0,O),Zs(F,4,a(44)),Ls(F,12,45),Ls(F,14,45),Hs(F,16,b),Hs(F,20,l),Zs(F,24,a(w)),Zs(F,32,a(w)),Zs(F,40,a(u)),Zs(F,48,a(h)),Hs(F,56,L),Zs(F,64,a(h)+a(u)),Hs(F,72,b+1),Ns(e,s,es,!0)&&(b=C,l=C),w=C,h=T,u=T,d+=76),Hs(F,d,I),Ls(F,d+4,b),Ls(F,d+6,l),Ls(F,d+8,w),Ls(F,d+10,w),Hs(F,d+12,u),Hs(F,d+16,h);const k=qs(r);if(k){if(k>C)throw new p("Zip file comment exceeds 64KB");Ls(F,d+20,k)}await _s(o,x),k&&await _s(o,r)})(this,e,r),Ns(this,r,$r)||await o.getWriter().close(),n.getData?n.getData():o}}function Ms(e){if(e===Q)return new f;{const t=new f(4);Vs(t).setUint32(0,e,!0);let r=4;for(;r>1&&0===t[r-1];)r--;return t.subarray(0,r)}}function Ws({compressedSize:e,uncompressedSize:t,offset:r,diskNumberStart:s,zip64UncompressedSize:n,zip64CompressedSize:i,zip64Offset:o,zip64DiskNumberStart:c,rawExtraFieldZip64:l}){const d=Vs(l);let u=4;n&&(Zs(d,u,a(t)),u+=8),i&&(Zs(d,u,a(e)),u+=8),o&&(Zs(d,u,a(r)),u+=8),c&&Hs(d,u,s)}async function _s(e,t){const{writable:r}=e,s=r.getWriter();try{await s.ready,e.size+=qs(t),await s.write(t)}finally{s.releaseLock()}}function Bs(e){if(e)return(a(e.getTime())+a(116444736e5))*a(1e4)}function Ns(e,t,r,s){const n=t[r]===Q?e.options[r]:t[r];return n===Q?s:n}function Is(e){return e+5*(i.floor(e/16383)+1)}function Os(e,t,r){e.setUint8(t,r)}function Ls(e,t,r){e.setUint16(t,r,!0)}function Hs(e,t,r){e.setUint32(t,r,!0)}function Zs(e,t,r){e.setBigUint64(t,r,!0)}function Ps(e,t,r){e.set(t,r)}function Vs(e){return new m(e.buffer)}function qs(...e){let t=0;return e.forEach(e=>e&&(t+=e.length)),t}function Ks({version:e,bitFlag:t,compressionMethod:r,uncompressedSize:s,compressedSize:n,lastModDate:a,rawFilename:i,zip64CompressedSize:o,zip64UncompressedSize:c,extraFieldLength:l}){const d=new f(26),u=Vs(d);Ls(u,0,e),Ls(u,2,t),Ls(u,4,r);const p=new w(1),h=Vs(p);Ls(h,0,(a.getHours()<<6|a.getMinutes())<<5|a.getSeconds()/2),Ls(h,2,(a.getFullYear()-1980<<4|a.getMonth()+1)<<5|a.getDate());const m=p[0];return Hs(u,6,m),(o||n!==Q)&&Hs(u,14,o?T:n),(c||s!==Q)&&Hs(u,18,c?T:s),Ls(u,22,qs(i)),Ls(u,24,l),{headerArray:d,headerView:u,rawLastModDate:m}}function js(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 Xs{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 Gs extends Xs{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 Gs(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 Ys extends Xs{constructor(e,t,r,s){super(e,t,r,s),this.directory=!0}clone(e){const t=this,r=new Ys(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 nn(this,e,{options:t},!0)}addText(e,t,r={}){return nn(this,e,{data:t,Reader:ze,Writer:Se,options:r,uncompressedSize:t.length})}addBlob(e,t,r={}){return nn(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 nn(this,e,{data:t,Reader:me,Writer:ge,options:r,uncompressedSize:i.floor(.75*(s-n))})}addUint8Array(e,t,r={}){return nn(this,e,{data:t,Reader:Be,Writer:Ne,options:r,uncompressedSize:t.length})}addHttpContent(e,t,r={}){return nn(this,e,{data:t,Reader:class extends _e{constructor(e){super(e,r)}},options:r})}addReadable(e,t,r={}){return nn(this,e,{Reader:()=>({readable:t}),options:r})}addFileSystemEntry(e,t={}){return tn(this,e,t)}addFileSystemHandle(e,t={}){return tn(this,e,t)}addFile(e,t={}){return t.lastModDate||(t.lastModDate=new o(e.lastModified)),nn(this,e.name,{data:e,Reader:()=>({readable:e.stream(),size:e.size}),options:t,uncompressedSize:e.size})}addData(e,t){return nn(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 ds(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 Ys(this.fs,t,{data:r==a.length-1?e:null},i),n.push(s))}),e.directory||n.push(nn(s,i,{data:e,Reader:Qs(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([$s(n,s.readerOptions),Ze(e)]);const a=new Cs(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 Kr){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 Js={FS:class{constructor(){sn(this)}get children(){return this.root.children}remove(e){en(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");en(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 sn(this),this.root.importBlob(e,t)}importData64URI(e,t){return sn(this),this.root.importData64URI(e,t)}importUint8Array(e,t){return sn(this),this.root.importUint8Array(e,t)}importHttpContent(e,t){return sn(this),this.root.importHttpContent(e,t)}importReadable(e,t){return sn(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:Ys,ZipFileEntry:Gs};function Qs(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 $s(e,t){e.children.length&&await y.all(e.children.map(async e=>{if(e.directory)await $s(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 en(e){if(e.parent){const t=e.parent.children;t.forEach((r,s)=>{r.id==e.id&&t.splice(s,1)})}}function tn(e,t,s){return async function e(t,n,a){if(n)try{if((n.isFile||n.isDirectory)&&(n=await rn(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 rn(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 rn(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 sn(e){e.entries=[],e.root=new Ys(e)}function nn(e,t,r,s){if(e.directory)return s?new Ys(e.fs,t,r,e):new Gs(e.fs,t,r,e);throw new p("Parent entry is not a directory")}e.fs=Js});
|
package/dist/zip-fs-native.js
CHANGED
|
@@ -5191,15 +5191,19 @@
|
|
|
5191
5191
|
let { version, compressionMethod } = options;
|
|
5192
5192
|
const compressed = !directory && (level > 0 || (level === UNDEFINED_VALUE && compressionMethod !== 0));
|
|
5193
5193
|
let rawExtraFieldZip64;
|
|
5194
|
+
let rawLocalExtraFieldZip64;
|
|
5194
5195
|
const uncompressedFile = passThrough || !compressed;
|
|
5195
5196
|
const zip64ExtraFieldComplete = zip64 && (options.bufferedWrite || ((!zip64UncompressedSize && !zip64CompressedSize) || uncompressedFile));
|
|
5196
5197
|
if (zip64) {
|
|
5197
5198
|
let rawExtraFieldZip64Length = 4;
|
|
5199
|
+
let rawLocalExtraFieldZip64Length = 4;
|
|
5198
5200
|
if (zip64UncompressedSize) {
|
|
5199
5201
|
rawExtraFieldZip64Length += 8;
|
|
5202
|
+
rawLocalExtraFieldZip64Length += 8;
|
|
5200
5203
|
}
|
|
5201
5204
|
if (zip64CompressedSize) {
|
|
5202
5205
|
rawExtraFieldZip64Length += 8;
|
|
5206
|
+
rawLocalExtraFieldZip64Length += 8;
|
|
5203
5207
|
}
|
|
5204
5208
|
if (zip64Offset) {
|
|
5205
5209
|
rawExtraFieldZip64Length += 8;
|
|
@@ -5209,18 +5213,28 @@
|
|
|
5209
5213
|
}
|
|
5210
5214
|
rawExtraFieldZip64 = new Uint8Array(rawExtraFieldZip64Length);
|
|
5211
5215
|
const rawExtraFieldZip64View = getDataView(rawExtraFieldZip64);
|
|
5216
|
+
rawLocalExtraFieldZip64 = new Uint8Array(rawLocalExtraFieldZip64Length);
|
|
5217
|
+
const rawLocalExtraFieldZip64View = getDataView(rawLocalExtraFieldZip64);
|
|
5212
5218
|
setUint16(rawExtraFieldZip64View, 0, EXTRAFIELD_TYPE_ZIP64);
|
|
5213
5219
|
setUint16(rawExtraFieldZip64View, 2, getLength(rawExtraFieldZip64) - 4);
|
|
5220
|
+
setUint16(rawLocalExtraFieldZip64View, 0, EXTRAFIELD_TYPE_ZIP64);
|
|
5221
|
+
setUint16(rawLocalExtraFieldZip64View, 2, getLength(rawLocalExtraFieldZip64) - 4);
|
|
5214
5222
|
if (zip64ExtraFieldComplete) {
|
|
5215
5223
|
const rawExtraFieldZip64View = getDataView(rawExtraFieldZip64);
|
|
5224
|
+
const rawLocalExtraFieldZip64View = getDataView(rawLocalExtraFieldZip64);
|
|
5216
5225
|
let rawExtraFieldZip64Offset = 4;
|
|
5226
|
+
let rawLocalExtraFieldZip64Offset = 4;
|
|
5217
5227
|
if (zip64UncompressedSize) {
|
|
5218
5228
|
setBigUint64(rawExtraFieldZip64View, rawExtraFieldZip64Offset, BigInt(uncompressedSize));
|
|
5219
5229
|
rawExtraFieldZip64Offset += 8;
|
|
5230
|
+
setBigUint64(rawLocalExtraFieldZip64View, rawLocalExtraFieldZip64Offset, BigInt(uncompressedSize));
|
|
5231
|
+
rawLocalExtraFieldZip64Offset += 8;
|
|
5220
5232
|
}
|
|
5221
5233
|
if (zip64CompressedSize && uncompressedFile) {
|
|
5222
5234
|
setBigUint64(rawExtraFieldZip64View, rawExtraFieldZip64Offset, BigInt(uncompressedSize));
|
|
5223
5235
|
rawExtraFieldZip64Offset += 8;
|
|
5236
|
+
setBigUint64(rawLocalExtraFieldZip64View, rawLocalExtraFieldZip64Offset, BigInt(uncompressedSize));
|
|
5237
|
+
rawLocalExtraFieldZip64Offset += 8;
|
|
5224
5238
|
}
|
|
5225
5239
|
if (zip64Offset) {
|
|
5226
5240
|
setBigUint64(rawExtraFieldZip64View, rawExtraFieldZip64Offset, BigInt(offset));
|
|
@@ -5230,9 +5244,13 @@
|
|
|
5230
5244
|
setUint32(rawExtraFieldZip64View, rawExtraFieldZip64Offset, diskNumberStart);
|
|
5231
5245
|
rawExtraFieldZip64Offset += 4;
|
|
5232
5246
|
}
|
|
5247
|
+
if (rawLocalExtraFieldZip64Offset == 4) {
|
|
5248
|
+
rawLocalExtraFieldZip64 = new Uint8Array();
|
|
5249
|
+
}
|
|
5233
5250
|
}
|
|
5234
5251
|
} else {
|
|
5235
5252
|
rawExtraFieldZip64 = new Uint8Array();
|
|
5253
|
+
rawLocalExtraFieldZip64 = new Uint8Array();
|
|
5236
5254
|
}
|
|
5237
5255
|
let rawExtraFieldAES;
|
|
5238
5256
|
if (encrypted && !zipCrypto) {
|
|
@@ -5335,7 +5353,7 @@
|
|
|
5335
5353
|
rawExtraFieldAES[9] = compressionMethod;
|
|
5336
5354
|
compressionMethod = COMPRESSION_METHOD_AES;
|
|
5337
5355
|
}
|
|
5338
|
-
const localExtraFieldZip64Length = zip64ExtraFieldComplete ? getLength(
|
|
5356
|
+
const localExtraFieldZip64Length = zip64ExtraFieldComplete ? getLength(rawLocalExtraFieldZip64) : 0;
|
|
5339
5357
|
const extraFieldLength = localExtraFieldZip64Length + getLength(rawExtraFieldAES, rawExtraFieldExtendedTimestamp, rawExtraFieldNTFS, rawExtraFieldUnix, rawExtraField);
|
|
5340
5358
|
const {
|
|
5341
5359
|
headerArray,
|
|
@@ -5360,7 +5378,7 @@
|
|
|
5360
5378
|
arraySet(localHeaderArray, rawFilename, localHeaderOffset);
|
|
5361
5379
|
localHeaderOffset += getLength(rawFilename);
|
|
5362
5380
|
if (zip64ExtraFieldComplete) {
|
|
5363
|
-
arraySet(localHeaderArray,
|
|
5381
|
+
arraySet(localHeaderArray, rawLocalExtraFieldZip64, localHeaderOffset);
|
|
5364
5382
|
}
|
|
5365
5383
|
localHeaderOffset += localExtraFieldZip64Length;
|
|
5366
5384
|
arraySet(localHeaderArray, rawExtraFieldAES, localHeaderOffset);
|
|
@@ -5533,40 +5551,29 @@
|
|
|
5533
5551
|
signature,
|
|
5534
5552
|
compressedSize,
|
|
5535
5553
|
uncompressedSize,
|
|
5536
|
-
offset,
|
|
5537
|
-
diskNumberStart,
|
|
5538
5554
|
zip64UncompressedSize,
|
|
5539
|
-
zip64CompressedSize
|
|
5540
|
-
zip64Offset,
|
|
5541
|
-
zip64DiskNumberStart
|
|
5555
|
+
zip64CompressedSize
|
|
5542
5556
|
}, localHeaderView, { dataDescriptor }) {
|
|
5543
5557
|
if (!dataDescriptor) {
|
|
5544
5558
|
if (!encrypted) {
|
|
5545
5559
|
setUint32(localHeaderView, HEADER_OFFSET_SIGNATURE + 4, signature);
|
|
5546
5560
|
}
|
|
5547
|
-
if (!
|
|
5561
|
+
if (!zip64CompressedSize) {
|
|
5548
5562
|
setUint32(localHeaderView, HEADER_OFFSET_COMPRESSED_SIZE + 4, compressedSize);
|
|
5563
|
+
}
|
|
5564
|
+
if (!zip64UncompressedSize) {
|
|
5549
5565
|
setUint32(localHeaderView, HEADER_OFFSET_UNCOMPRESSED_SIZE + 4, uncompressedSize);
|
|
5550
5566
|
}
|
|
5551
5567
|
}
|
|
5552
|
-
if (zip64) {
|
|
5553
|
-
|
|
5554
|
-
|
|
5555
|
-
|
|
5556
|
-
|
|
5557
|
-
|
|
5558
|
-
|
|
5559
|
-
|
|
5560
|
-
|
|
5561
|
-
localHeaderOffset += 8;
|
|
5562
|
-
}
|
|
5563
|
-
if (zip64Offset) {
|
|
5564
|
-
setBigUint64(localHeaderView, localHeaderOffset, BigInt(offset));
|
|
5565
|
-
localHeaderOffset += 8;
|
|
5566
|
-
}
|
|
5567
|
-
if (zip64DiskNumberStart) {
|
|
5568
|
-
setUint32(localHeaderView, localHeaderOffset, diskNumberStart);
|
|
5569
|
-
}
|
|
5568
|
+
if (zip64 && localExtraFieldZip64Length) {
|
|
5569
|
+
let localHeaderOffset = HEADER_SIZE + getLength(rawFilename) + 4;
|
|
5570
|
+
if (zip64UncompressedSize) {
|
|
5571
|
+
setBigUint64(localHeaderView, localHeaderOffset, BigInt(uncompressedSize));
|
|
5572
|
+
localHeaderOffset += 8;
|
|
5573
|
+
}
|
|
5574
|
+
if (zip64CompressedSize) {
|
|
5575
|
+
setBigUint64(localHeaderView, localHeaderOffset, BigInt(compressedSize));
|
|
5576
|
+
localHeaderOffset += 8;
|
|
5570
5577
|
}
|
|
5571
5578
|
}
|
|
5572
5579
|
}
|