@zip.js/zip.js 2.14.0 → 2.14.1
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/BENCHMARKS.md +342 -454
- package/deno.json +1 -1
- package/dist/zip-core-external.js +262 -81
- package/dist/zip-core-external.min.js +1 -1
- package/dist/zip-core.js +260 -74
- package/dist/zip-core.min.js +1 -1
- package/dist/zip-fs-core-external.js +262 -81
- package/dist/zip-fs-core-external.min.js +1 -1
- package/dist/zip-fs-core.js +260 -74
- package/dist/zip-fs-core.min.js +1 -1
- package/dist/zip-fs-external.js +262 -81
- package/dist/zip-fs-external.min.js +1 -1
- package/dist/zip-fs-native.js +262 -76
- package/dist/zip-fs-native.min.js +1 -1
- package/dist/zip-fs.js +266 -85
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-legacy.js +262 -76
- package/dist/zip-legacy.min.js +1 -1
- package/dist/zip-module.wasm +0 -0
- package/dist/zip-native.js +262 -76
- package/dist/zip-native.min.js +1 -1
- package/dist/zip-web-worker-native.js +1 -1
- package/dist/zip-web-worker.js +1 -1
- package/dist/zip.js +266 -85
- package/dist/zip.min.js +1 -1
- package/index-native.cjs +262 -76
- package/index-native.min.js +1 -1
- package/index.cjs +266 -85
- package/index.min.js +1 -1
- package/lib/core/codec-worker.js +6 -5
- package/lib/core/streams/codecs/aes-hmac-sha1.js +194 -56
- package/lib/core/streams/zlib-wasm/zlib-streams.js +2 -7
- package/lib/core/streams/zlib-wasm/zlib-streams.wasm +0 -0
- package/lib/core/version.js +1 -1
- package/lib/core/web-worker-inline-native.js +1 -1
- package/lib/core/web-worker-inline-wasm.js +1 -1
- package/lib/core/zip-reader.js +53 -6
- package/lib/core/zlib-streams-inline.js +1 -1
- package/package.json +1 -1
package/dist/zip-fs-native.js
CHANGED
|
@@ -445,7 +445,7 @@
|
|
|
445
445
|
Object.assign(config, DEFAULT_CONFIGURATION);
|
|
446
446
|
}
|
|
447
447
|
|
|
448
|
-
const n=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258],e=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],t=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],r=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],f=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],q$1=new Uint8Array(288);q$1.fill(8,0,144),q$1.fill(9,144,256),q$1.fill(7,256,280),q$1.fill(8,280,288);const o=new Uint8Array(30).fill(5);function u(n){const e=new Uint16Array(16);for(const t of n)e[t]++;e[0]=0;const t=new Uint16Array(17);for(let n=1;n<=15;n++)t[n+1]=t[n]+e[n];const r=new Uint16Array(n.length);for(let e=0;e<n.length;e++)n[e]&&(r[t[n[e]]++]=e);return {o:e,symbols:r}}const v="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",c=(a=()=>function(v){let c=0,a=0,y=0,V=new Uint8Array(1024),z=0,i=0;for(;!i;){i=P(1);const n=P(2);if(0==n)j();else if(1==n)T(u(q$1),u(o));else {if(2!=n)throw new Error("invalid deflate block type");T(...O());}}return V.subarray(0,z);function X(){if(c>=v.length)throw new Error("unexpected end of deflate data");return v[c++]}function P(n){for(;y<n;)a|=X()<<y,y+=8;const e=a&(1<<n)-1;return a>>>=n,y-=n,e}function j(){a=0,y=0;const n=X()|X()<<8;c+=2,h(z+n);for(let e=0;e<n;e++)V[z++]=X();}function T(f,q){let o=C(f);for(;256!=o;){if(o<256)h(z+1),V[z++]=o;else {const f=o-257,u=n[f]+P(e[f]),v=C(q),c=t[v]+P(r[v]);h(z+u);const a=z-c;for(let n=0;n<u;n++)V[z++]=V[a+n];}o=C(f);}}function O(){const n=P(5)+257,e=P(5)+1,t=P(4)+4,r=new Uint8Array(19);for(let n=0;n<t;n++)r[f[n]]=P(3);const q=u(r),o=new Uint8Array(n+e);let v=0;for(;v<o.length;){const n=C(q);if(n<16)o[v++]=n;else if(16==n){const n=o[v-1];let e=P(2)+3;for(;e--;)o[v++]=n;}else v+=17==n?P(3)+3:P(7)+11;}return [u(o.subarray(0,n)),u(o.subarray(n))]}function C(n){const{o:e,symbols:t}=n;let r=0,f=0,q=0;for(let n=1;n<=15;n++){r|=P(1);const o=e[n];if(r-f<o)return t[q+(r-f)];q+=o,f=f+o<<1,r<<=1;}throw new Error("invalid huffman code")}function h(n){if(V.length<n){let e=2*V.length;for(;e<n;)e*=2;const t=new Uint8Array(e);t.set(V.subarray(0,z)),V=t;}}}(function(n){const e=(n=String(n).replace(/[^A-Za-z0-9+/=]/g,"")).length,t=[];for(let r=0;r<e;r+=4){const e=v.indexOf(n[r])<<18|v.indexOf(n[r+1])<<12|(63&v.indexOf(n[r+2]))<<6|63&v.indexOf(n[r+3]);t.push(e>>16&255),"="!==n[r+2]&&t.push(e>>8&255),"="!==n[r+3]&&t.push(255&e);}return new Uint8Array(t)}("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")),n=>n({workerURI:n=>{const e="text/javascript";let t=a();if("string"==typeof t&&(t=(new TextEncoder).encode(t)),n){const n=new Blob([t],{type:e});return URL.createObjectURL(n)}return "data:"+e+";base64,"+function(n){let e="";const t=n.length;let r=0;for(;r+2<t;r+=3){const t=n[r]<<16|n[r+1]<<8|n[r+2];e+=v[t>>18&63]+v[t>>12&63]+v[t>>6&63]+v[63&t];}const f=t-r;if(1===f){const t=n[r]<<16;e+=v[t>>18&63]+v[t>>12&63]+"==";}else if(2===f){const t=n[r]<<16|n[r+1]<<8;e+=v[t>>18&63]+v[t>>12&63]+v[t>>6&63]+"=";}return e}(t)}}));var a;
|
|
448
|
+
const t=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258],n=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],r=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],e=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],o=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],u=new Uint8Array(288);u.fill(8,0,144),u.fill(9,144,256),u.fill(7,256,280),u.fill(8,280,288);const s=new Uint8Array(30).fill(5);function c(t){const n=new Uint16Array(16);for(const r of t)n[r]++;n[0]=0;const r=new Uint16Array(17);for(let t=1;t<=15;t++)r[t+1]=r[t]+n[t];const e=new Uint16Array(t.length);for(let n=0;n<t.length;n++)t[n]&&(e[r[t[n]]++]=n);return {o:n,symbols:e}}const z$1="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",f=(w=()=>function(z){let f=0,w=0,W=0,Y=new Uint8Array(1024),a=0,C=0;for(;!C;){C=i(1);const t=i(2);if(0==t)d();else if(1==t)K(c(u),c(s));else {if(2!=t)throw new Error("invalid deflate block type");K(...U());}}return Y.subarray(0,a);function Z(){if(f>=z.length)throw new Error("unexpected end of deflate data");return z[f++]}function i(t){for(;W<t;)w|=Z()<<W,W+=8;const n=w&(1<<t)-1;return w>>>=t,W-=t,n}function d(){w=0,W=0;const t=Z()|Z()<<8;f+=2,l(a+t);for(let n=0;n<t;n++)Y[a++]=Z();}function K(o,u){let s=g(o);for(;256!=s;){if(s<256)l(a+1),Y[a++]=s;else {const o=s-257,c=t[o]+i(n[o]),z=g(u),f=r[z]+i(e[z]);l(a+c);const w=a-f;for(let t=0;t<c;t++)Y[a++]=Y[w+t];}s=g(o);}}function U(){const t=i(5)+257,n=i(5)+1,r=i(4)+4,e=new Uint8Array(19);for(let t=0;t<r;t++)e[o[t]]=i(3);const u=c(e),s=new Uint8Array(t+n);let z=0;for(;z<s.length;){const t=g(u);if(t<16)s[z++]=t;else if(16==t){const t=s[z-1];let n=i(2)+3;for(;n--;)s[z++]=t;}else z+=17==t?i(3)+3:i(7)+11;}return [c(s.subarray(0,t)),c(s.subarray(t))]}function g(t){const{o:n,symbols:r}=t;let e=0,o=0,u=0;for(let t=1;t<=15;t++){e|=i(1);const s=n[t];if(e-o<s)return r[u+(e-o)];u+=s,o=o+s<<1,e<<=1;}throw new Error("invalid huffman code")}function l(t){if(Y.length<t){let n=2*Y.length;for(;n<t;)n*=2;const r=new Uint8Array(n);r.set(Y.subarray(0,a)),Y=r;}}}(function(t){const n=(t=String(t).replace(/[^A-Za-z0-9+/=]/g,"")).length,r=[];for(let e=0;e<n;e+=4){const n=z$1.indexOf(t[e])<<18|z$1.indexOf(t[e+1])<<12|(63&z$1.indexOf(t[e+2]))<<6|63&z$1.indexOf(t[e+3]);r.push(n>>16&255),"="!==t[e+2]&&r.push(n>>8&255),"="!==t[e+3]&&r.push(255&n);}return new Uint8Array(r)}("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")),t=>t({workerURI:t=>{const n="text/javascript";let r=w();if("string"==typeof r&&(r=(new TextEncoder).encode(r)),t){const t=new Blob([r],{type:n});return URL.createObjectURL(t)}return "data:"+n+";base64,"+function(t){let n="";const r=t.length;let e=0;for(;e+2<r;e+=3){const r=t[e]<<16|t[e+1]<<8|t[e+2];n+=z$1[r>>18&63]+z$1[r>>12&63]+z$1[r>>6&63]+z$1[63&r];}const o=r-e;if(1===o){const r=t[e]<<16;n+=z$1[r>>18&63]+z$1[r>>12&63]+"==";}else if(2===o){const r=t[e]<<16|t[e+1]<<8;n+=z$1[r>>18&63]+z$1[r>>12&63]+z$1[r>>6&63]+"=";}return n}(r)}}));var w;
|
|
449
449
|
|
|
450
450
|
/*
|
|
451
451
|
Copyright (c) 2026 Gildas Lormeau. All rights reserved.
|
|
@@ -738,7 +738,7 @@
|
|
|
738
738
|
const ROUND_KEYS_LENGTH = 60;
|
|
739
739
|
const SHA1_BLOCK_LENGTH = 64;
|
|
740
740
|
const SHA1_DIGEST_LENGTH = 20;
|
|
741
|
-
const SHA1_SCHEDULE_LENGTH =
|
|
741
|
+
const SHA1_SCHEDULE_LENGTH = 16;
|
|
742
742
|
const SHA1_LENGTH_OFFSET = 56;
|
|
743
743
|
const SHA1_PADDING = new Uint8Array([0x80]);
|
|
744
744
|
const SHA1_ZERO = new Uint8Array(1);
|
|
@@ -757,9 +757,12 @@
|
|
|
757
757
|
initTables();
|
|
758
758
|
const roundKeys = new Int32Array(ROUND_KEYS_LENGTH);
|
|
759
759
|
const rounds = expandKey(key, roundKeys);
|
|
760
|
-
const counter = new Uint8Array(BLOCK_LENGTH$1);
|
|
761
760
|
const keystream = new Int32Array(BLOCK_LENGTH$1 / 4);
|
|
762
761
|
const hmac = createHmac(authenticationKey);
|
|
762
|
+
let counter0 = 0;
|
|
763
|
+
let counter1 = 0;
|
|
764
|
+
let counter2 = 0;
|
|
765
|
+
let counter3 = 0;
|
|
763
766
|
return {
|
|
764
767
|
process(data, decrypt) {
|
|
765
768
|
if (decrypt) {
|
|
@@ -795,31 +798,83 @@
|
|
|
795
798
|
}
|
|
796
799
|
|
|
797
800
|
function nextKeystream() {
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
let
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
801
|
+
counter0 = (counter0 + 1) | 0;
|
|
802
|
+
if (!counter0) {
|
|
803
|
+
counter1 = (counter1 + 1) | 0;
|
|
804
|
+
if (!counter1) {
|
|
805
|
+
counter2 = (counter2 + 1) | 0;
|
|
806
|
+
if (!counter2) {
|
|
807
|
+
counter3 = (counter3 + 1) | 0;
|
|
808
|
+
}
|
|
809
|
+
}
|
|
810
|
+
}
|
|
811
|
+
let s0 = swapBytes(counter0) ^ roundKeys[0];
|
|
812
|
+
let s1 = swapBytes(counter1) ^ roundKeys[1];
|
|
813
|
+
let s2 = swapBytes(counter2) ^ roundKeys[2];
|
|
814
|
+
let s3 = swapBytes(counter3) ^ roundKeys[3];
|
|
815
|
+
let t0 = T0[s0 >>> 24] ^ T1[(s1 >>> 16) & 255] ^ T2[(s2 >>> 8) & 255] ^ T3[s3 & 255] ^ roundKeys[4];
|
|
816
|
+
let t1 = T0[s1 >>> 24] ^ T1[(s2 >>> 16) & 255] ^ T2[(s3 >>> 8) & 255] ^ T3[s0 & 255] ^ roundKeys[5];
|
|
817
|
+
let t2 = T0[s2 >>> 24] ^ T1[(s3 >>> 16) & 255] ^ T2[(s0 >>> 8) & 255] ^ T3[s1 & 255] ^ roundKeys[6];
|
|
818
|
+
let t3 = T0[s3 >>> 24] ^ T1[(s0 >>> 16) & 255] ^ T2[(s1 >>> 8) & 255] ^ T3[s2 & 255] ^ roundKeys[7];
|
|
819
|
+
s0 = T0[t0 >>> 24] ^ T1[(t1 >>> 16) & 255] ^ T2[(t2 >>> 8) & 255] ^ T3[t3 & 255] ^ roundKeys[8];
|
|
820
|
+
s1 = T0[t1 >>> 24] ^ T1[(t2 >>> 16) & 255] ^ T2[(t3 >>> 8) & 255] ^ T3[t0 & 255] ^ roundKeys[9];
|
|
821
|
+
s2 = T0[t2 >>> 24] ^ T1[(t3 >>> 16) & 255] ^ T2[(t0 >>> 8) & 255] ^ T3[t1 & 255] ^ roundKeys[10];
|
|
822
|
+
s3 = T0[t3 >>> 24] ^ T1[(t0 >>> 16) & 255] ^ T2[(t1 >>> 8) & 255] ^ T3[t2 & 255] ^ roundKeys[11];
|
|
823
|
+
t0 = T0[s0 >>> 24] ^ T1[(s1 >>> 16) & 255] ^ T2[(s2 >>> 8) & 255] ^ T3[s3 & 255] ^ roundKeys[12];
|
|
824
|
+
t1 = T0[s1 >>> 24] ^ T1[(s2 >>> 16) & 255] ^ T2[(s3 >>> 8) & 255] ^ T3[s0 & 255] ^ roundKeys[13];
|
|
825
|
+
t2 = T0[s2 >>> 24] ^ T1[(s3 >>> 16) & 255] ^ T2[(s0 >>> 8) & 255] ^ T3[s1 & 255] ^ roundKeys[14];
|
|
826
|
+
t3 = T0[s3 >>> 24] ^ T1[(s0 >>> 16) & 255] ^ T2[(s1 >>> 8) & 255] ^ T3[s2 & 255] ^ roundKeys[15];
|
|
827
|
+
s0 = T0[t0 >>> 24] ^ T1[(t1 >>> 16) & 255] ^ T2[(t2 >>> 8) & 255] ^ T3[t3 & 255] ^ roundKeys[16];
|
|
828
|
+
s1 = T0[t1 >>> 24] ^ T1[(t2 >>> 16) & 255] ^ T2[(t3 >>> 8) & 255] ^ T3[t0 & 255] ^ roundKeys[17];
|
|
829
|
+
s2 = T0[t2 >>> 24] ^ T1[(t3 >>> 16) & 255] ^ T2[(t0 >>> 8) & 255] ^ T3[t1 & 255] ^ roundKeys[18];
|
|
830
|
+
s3 = T0[t3 >>> 24] ^ T1[(t0 >>> 16) & 255] ^ T2[(t1 >>> 8) & 255] ^ T3[t2 & 255] ^ roundKeys[19];
|
|
831
|
+
t0 = T0[s0 >>> 24] ^ T1[(s1 >>> 16) & 255] ^ T2[(s2 >>> 8) & 255] ^ T3[s3 & 255] ^ roundKeys[20];
|
|
832
|
+
t1 = T0[s1 >>> 24] ^ T1[(s2 >>> 16) & 255] ^ T2[(s3 >>> 8) & 255] ^ T3[s0 & 255] ^ roundKeys[21];
|
|
833
|
+
t2 = T0[s2 >>> 24] ^ T1[(s3 >>> 16) & 255] ^ T2[(s0 >>> 8) & 255] ^ T3[s1 & 255] ^ roundKeys[22];
|
|
834
|
+
t3 = T0[s3 >>> 24] ^ T1[(s0 >>> 16) & 255] ^ T2[(s1 >>> 8) & 255] ^ T3[s2 & 255] ^ roundKeys[23];
|
|
835
|
+
s0 = T0[t0 >>> 24] ^ T1[(t1 >>> 16) & 255] ^ T2[(t2 >>> 8) & 255] ^ T3[t3 & 255] ^ roundKeys[24];
|
|
836
|
+
s1 = T0[t1 >>> 24] ^ T1[(t2 >>> 16) & 255] ^ T2[(t3 >>> 8) & 255] ^ T3[t0 & 255] ^ roundKeys[25];
|
|
837
|
+
s2 = T0[t2 >>> 24] ^ T1[(t3 >>> 16) & 255] ^ T2[(t0 >>> 8) & 255] ^ T3[t1 & 255] ^ roundKeys[26];
|
|
838
|
+
s3 = T0[t3 >>> 24] ^ T1[(t0 >>> 16) & 255] ^ T2[(t1 >>> 8) & 255] ^ T3[t2 & 255] ^ roundKeys[27];
|
|
839
|
+
t0 = T0[s0 >>> 24] ^ T1[(s1 >>> 16) & 255] ^ T2[(s2 >>> 8) & 255] ^ T3[s3 & 255] ^ roundKeys[28];
|
|
840
|
+
t1 = T0[s1 >>> 24] ^ T1[(s2 >>> 16) & 255] ^ T2[(s3 >>> 8) & 255] ^ T3[s0 & 255] ^ roundKeys[29];
|
|
841
|
+
t2 = T0[s2 >>> 24] ^ T1[(s3 >>> 16) & 255] ^ T2[(s0 >>> 8) & 255] ^ T3[s1 & 255] ^ roundKeys[30];
|
|
842
|
+
t3 = T0[s3 >>> 24] ^ T1[(s0 >>> 16) & 255] ^ T2[(s1 >>> 8) & 255] ^ T3[s2 & 255] ^ roundKeys[31];
|
|
843
|
+
s0 = T0[t0 >>> 24] ^ T1[(t1 >>> 16) & 255] ^ T2[(t2 >>> 8) & 255] ^ T3[t3 & 255] ^ roundKeys[32];
|
|
844
|
+
s1 = T0[t1 >>> 24] ^ T1[(t2 >>> 16) & 255] ^ T2[(t3 >>> 8) & 255] ^ T3[t0 & 255] ^ roundKeys[33];
|
|
845
|
+
s2 = T0[t2 >>> 24] ^ T1[(t3 >>> 16) & 255] ^ T2[(t0 >>> 8) & 255] ^ T3[t1 & 255] ^ roundKeys[34];
|
|
846
|
+
s3 = T0[t3 >>> 24] ^ T1[(t0 >>> 16) & 255] ^ T2[(t1 >>> 8) & 255] ^ T3[t2 & 255] ^ roundKeys[35];
|
|
847
|
+
t0 = T0[s0 >>> 24] ^ T1[(s1 >>> 16) & 255] ^ T2[(s2 >>> 8) & 255] ^ T3[s3 & 255] ^ roundKeys[36];
|
|
848
|
+
t1 = T0[s1 >>> 24] ^ T1[(s2 >>> 16) & 255] ^ T2[(s3 >>> 8) & 255] ^ T3[s0 & 255] ^ roundKeys[37];
|
|
849
|
+
t2 = T0[s2 >>> 24] ^ T1[(s3 >>> 16) & 255] ^ T2[(s0 >>> 8) & 255] ^ T3[s1 & 255] ^ roundKeys[38];
|
|
850
|
+
t3 = T0[s3 >>> 24] ^ T1[(s0 >>> 16) & 255] ^ T2[(s1 >>> 8) & 255] ^ T3[s2 & 255] ^ roundKeys[39];
|
|
851
|
+
let indexKey = 40;
|
|
852
|
+
if (rounds > 10) {
|
|
853
|
+
s0 = T0[t0 >>> 24] ^ T1[(t1 >>> 16) & 255] ^ T2[(t2 >>> 8) & 255] ^ T3[t3 & 255] ^ roundKeys[40];
|
|
854
|
+
s1 = T0[t1 >>> 24] ^ T1[(t2 >>> 16) & 255] ^ T2[(t3 >>> 8) & 255] ^ T3[t0 & 255] ^ roundKeys[41];
|
|
855
|
+
s2 = T0[t2 >>> 24] ^ T1[(t3 >>> 16) & 255] ^ T2[(t0 >>> 8) & 255] ^ T3[t1 & 255] ^ roundKeys[42];
|
|
856
|
+
s3 = T0[t3 >>> 24] ^ T1[(t0 >>> 16) & 255] ^ T2[(t1 >>> 8) & 255] ^ T3[t2 & 255] ^ roundKeys[43];
|
|
857
|
+
t0 = T0[s0 >>> 24] ^ T1[(s1 >>> 16) & 255] ^ T2[(s2 >>> 8) & 255] ^ T3[s3 & 255] ^ roundKeys[44];
|
|
858
|
+
t1 = T0[s1 >>> 24] ^ T1[(s2 >>> 16) & 255] ^ T2[(s3 >>> 8) & 255] ^ T3[s0 & 255] ^ roundKeys[45];
|
|
859
|
+
t2 = T0[s2 >>> 24] ^ T1[(s3 >>> 16) & 255] ^ T2[(s0 >>> 8) & 255] ^ T3[s1 & 255] ^ roundKeys[46];
|
|
860
|
+
t3 = T0[s3 >>> 24] ^ T1[(s0 >>> 16) & 255] ^ T2[(s1 >>> 8) & 255] ^ T3[s2 & 255] ^ roundKeys[47];
|
|
861
|
+
indexKey = 48;
|
|
862
|
+
}
|
|
863
|
+
if (rounds > 12) {
|
|
864
|
+
s0 = T0[t0 >>> 24] ^ T1[(t1 >>> 16) & 255] ^ T2[(t2 >>> 8) & 255] ^ T3[t3 & 255] ^ roundKeys[48];
|
|
865
|
+
s1 = T0[t1 >>> 24] ^ T1[(t2 >>> 16) & 255] ^ T2[(t3 >>> 8) & 255] ^ T3[t0 & 255] ^ roundKeys[49];
|
|
866
|
+
s2 = T0[t2 >>> 24] ^ T1[(t3 >>> 16) & 255] ^ T2[(t0 >>> 8) & 255] ^ T3[t1 & 255] ^ roundKeys[50];
|
|
867
|
+
s3 = T0[t3 >>> 24] ^ T1[(t0 >>> 16) & 255] ^ T2[(t1 >>> 8) & 255] ^ T3[t2 & 255] ^ roundKeys[51];
|
|
868
|
+
t0 = T0[s0 >>> 24] ^ T1[(s1 >>> 16) & 255] ^ T2[(s2 >>> 8) & 255] ^ T3[s3 & 255] ^ roundKeys[52];
|
|
869
|
+
t1 = T0[s1 >>> 24] ^ T1[(s2 >>> 16) & 255] ^ T2[(s3 >>> 8) & 255] ^ T3[s0 & 255] ^ roundKeys[53];
|
|
870
|
+
t2 = T0[s2 >>> 24] ^ T1[(s3 >>> 16) & 255] ^ T2[(s0 >>> 8) & 255] ^ T3[s1 & 255] ^ roundKeys[54];
|
|
871
|
+
t3 = T0[s3 >>> 24] ^ T1[(s0 >>> 16) & 255] ^ T2[(s1 >>> 8) & 255] ^ T3[s2 & 255] ^ roundKeys[55];
|
|
872
|
+
indexKey = 56;
|
|
873
|
+
}
|
|
874
|
+
keystream[0] = ((S_BOX[t0 >>> 24] << 24) | (S_BOX[(t1 >>> 16) & 255] << 16) | (S_BOX[(t2 >>> 8) & 255] << 8) | S_BOX[t3 & 255]) ^ roundKeys[indexKey];
|
|
875
|
+
keystream[1] = ((S_BOX[t1 >>> 24] << 24) | (S_BOX[(t2 >>> 16) & 255] << 16) | (S_BOX[(t3 >>> 8) & 255] << 8) | S_BOX[t0 & 255]) ^ roundKeys[indexKey + 1];
|
|
876
|
+
keystream[2] = ((S_BOX[t2 >>> 24] << 24) | (S_BOX[(t3 >>> 16) & 255] << 16) | (S_BOX[(t0 >>> 8) & 255] << 8) | S_BOX[t1 & 255]) ^ roundKeys[indexKey + 2];
|
|
877
|
+
keystream[3] = ((S_BOX[t3 >>> 24] << 24) | (S_BOX[(t0 >>> 16) & 255] << 16) | (S_BOX[(t1 >>> 8) & 255] << 8) | S_BOX[t2 & 255]) ^ roundKeys[indexKey + 3];
|
|
823
878
|
}
|
|
824
879
|
}
|
|
825
880
|
|
|
@@ -943,47 +998,126 @@
|
|
|
943
998
|
for (let index = 0; index < 16; index++) {
|
|
944
999
|
schedule[index] = view.getInt32(offset + 4 * index);
|
|
945
1000
|
}
|
|
946
|
-
for (let index = 16; index < SHA1_SCHEDULE_LENGTH; index++) {
|
|
947
|
-
const word = schedule[index - 3] ^ schedule[index - 8] ^ schedule[index - 14] ^ schedule[index - 16];
|
|
948
|
-
schedule[index] = (word << 1) | (word >>> 31);
|
|
949
|
-
}
|
|
950
1001
|
let a = state[0];
|
|
951
1002
|
let b = state[1];
|
|
952
1003
|
let c = state[2];
|
|
953
1004
|
let d = state[3];
|
|
954
1005
|
let e = state[4];
|
|
955
1006
|
let t;
|
|
956
|
-
for (let index = 0; index <
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
d = c;
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
1007
|
+
for (let index = 0; index < 15; index += 5) {
|
|
1008
|
+
e = (((a << 5) | (a >>> 27)) + (((c ^ d) & b) ^ d) + e + 0x5A827999 + schedule[index]) | 0;
|
|
1009
|
+
b = (b << 30) | (b >>> 2);
|
|
1010
|
+
d = (((e << 5) | (e >>> 27)) + (((b ^ c) & a) ^ c) + d + 0x5A827999 + schedule[index + 1]) | 0;
|
|
1011
|
+
a = (a << 30) | (a >>> 2);
|
|
1012
|
+
c = (((d << 5) | (d >>> 27)) + (((a ^ b) & e) ^ b) + c + 0x5A827999 + schedule[index + 2]) | 0;
|
|
1013
|
+
e = (e << 30) | (e >>> 2);
|
|
1014
|
+
b = (((c << 5) | (c >>> 27)) + (((e ^ a) & d) ^ a) + b + 0x5A827999 + schedule[index + 3]) | 0;
|
|
1015
|
+
d = (d << 30) | (d >>> 2);
|
|
1016
|
+
a = (((b << 5) | (b >>> 27)) + (((d ^ e) & c) ^ e) + a + 0x5A827999 + schedule[index + 4]) | 0;
|
|
1017
|
+
c = (c << 30) | (c >>> 2);
|
|
1018
|
+
}
|
|
1019
|
+
e = (((a << 5) | (a >>> 27)) + (((c ^ d) & b) ^ d) + e + 0x5A827999 + schedule[15]) | 0;
|
|
1020
|
+
b = (b << 30) | (b >>> 2);
|
|
1021
|
+
t = schedule[13] ^ schedule[8] ^ schedule[2] ^ schedule[0];
|
|
1022
|
+
t = (t << 1) | (t >>> 31);
|
|
1023
|
+
schedule[0] = t;
|
|
1024
|
+
d = (((e << 5) | (e >>> 27)) + (((b ^ c) & a) ^ c) + d + 0x5A827999 + t) | 0;
|
|
1025
|
+
a = (a << 30) | (a >>> 2);
|
|
1026
|
+
t = schedule[14] ^ schedule[9] ^ schedule[3] ^ schedule[1];
|
|
1027
|
+
t = (t << 1) | (t >>> 31);
|
|
1028
|
+
schedule[1] = t;
|
|
1029
|
+
c = (((d << 5) | (d >>> 27)) + (((a ^ b) & e) ^ b) + c + 0x5A827999 + t) | 0;
|
|
1030
|
+
e = (e << 30) | (e >>> 2);
|
|
1031
|
+
t = schedule[15] ^ schedule[10] ^ schedule[4] ^ schedule[2];
|
|
1032
|
+
t = (t << 1) | (t >>> 31);
|
|
1033
|
+
schedule[2] = t;
|
|
1034
|
+
b = (((c << 5) | (c >>> 27)) + (((e ^ a) & d) ^ a) + b + 0x5A827999 + t) | 0;
|
|
1035
|
+
d = (d << 30) | (d >>> 2);
|
|
1036
|
+
t = schedule[0] ^ schedule[11] ^ schedule[5] ^ schedule[3];
|
|
1037
|
+
t = (t << 1) | (t >>> 31);
|
|
1038
|
+
schedule[3] = t;
|
|
1039
|
+
a = (((b << 5) | (b >>> 27)) + (((d ^ e) & c) ^ e) + a + 0x5A827999 + t) | 0;
|
|
1040
|
+
c = (c << 30) | (c >>> 2);
|
|
1041
|
+
for (let index = 20; index < 40; index += 5) {
|
|
1042
|
+
t = schedule[(index - 3) & 15] ^ schedule[(index - 8) & 15] ^ schedule[(index - 14) & 15] ^ schedule[(index) & 15];
|
|
1043
|
+
t = (t << 1) | (t >>> 31);
|
|
1044
|
+
schedule[(index) & 15] = t;
|
|
1045
|
+
e = (((a << 5) | (a >>> 27)) + (b ^ c ^ d) + e + 0x6ED9EBA1 + t) | 0;
|
|
1046
|
+
b = (b << 30) | (b >>> 2);
|
|
1047
|
+
t = schedule[(index - 2) & 15] ^ schedule[(index - 7) & 15] ^ schedule[(index - 13) & 15] ^ schedule[(index + 1) & 15];
|
|
1048
|
+
t = (t << 1) | (t >>> 31);
|
|
1049
|
+
schedule[(index + 1) & 15] = t;
|
|
1050
|
+
d = (((e << 5) | (e >>> 27)) + (a ^ b ^ c) + d + 0x6ED9EBA1 + t) | 0;
|
|
1051
|
+
a = (a << 30) | (a >>> 2);
|
|
1052
|
+
t = schedule[(index - 1) & 15] ^ schedule[(index - 6) & 15] ^ schedule[(index - 12) & 15] ^ schedule[(index + 2) & 15];
|
|
1053
|
+
t = (t << 1) | (t >>> 31);
|
|
1054
|
+
schedule[(index + 2) & 15] = t;
|
|
1055
|
+
c = (((d << 5) | (d >>> 27)) + (e ^ a ^ b) + c + 0x6ED9EBA1 + t) | 0;
|
|
1056
|
+
e = (e << 30) | (e >>> 2);
|
|
1057
|
+
t = schedule[(index) & 15] ^ schedule[(index - 5) & 15] ^ schedule[(index - 11) & 15] ^ schedule[(index + 3) & 15];
|
|
1058
|
+
t = (t << 1) | (t >>> 31);
|
|
1059
|
+
schedule[(index + 3) & 15] = t;
|
|
1060
|
+
b = (((c << 5) | (c >>> 27)) + (d ^ e ^ a) + b + 0x6ED9EBA1 + t) | 0;
|
|
1061
|
+
d = (d << 30) | (d >>> 2);
|
|
1062
|
+
t = schedule[(index + 1) & 15] ^ schedule[(index - 4) & 15] ^ schedule[(index - 10) & 15] ^ schedule[(index + 4) & 15];
|
|
1063
|
+
t = (t << 1) | (t >>> 31);
|
|
1064
|
+
schedule[(index + 4) & 15] = t;
|
|
1065
|
+
a = (((b << 5) | (b >>> 27)) + (c ^ d ^ e) + a + 0x6ED9EBA1 + t) | 0;
|
|
1066
|
+
c = (c << 30) | (c >>> 2);
|
|
1067
|
+
}
|
|
1068
|
+
for (let index = 40; index < 60; index += 5) {
|
|
1069
|
+
t = schedule[(index - 3) & 15] ^ schedule[(index - 8) & 15] ^ schedule[(index - 14) & 15] ^ schedule[(index) & 15];
|
|
1070
|
+
t = (t << 1) | (t >>> 31);
|
|
1071
|
+
schedule[(index) & 15] = t;
|
|
1072
|
+
e = (((a << 5) | (a >>> 27)) + ((b & c) | ((b | c) & d)) + e + 0x8F1BBCDC + t) | 0;
|
|
1073
|
+
b = (b << 30) | (b >>> 2);
|
|
1074
|
+
t = schedule[(index - 2) & 15] ^ schedule[(index - 7) & 15] ^ schedule[(index - 13) & 15] ^ schedule[(index + 1) & 15];
|
|
1075
|
+
t = (t << 1) | (t >>> 31);
|
|
1076
|
+
schedule[(index + 1) & 15] = t;
|
|
1077
|
+
d = (((e << 5) | (e >>> 27)) + ((a & b) | ((a | b) & c)) + d + 0x8F1BBCDC + t) | 0;
|
|
1078
|
+
a = (a << 30) | (a >>> 2);
|
|
1079
|
+
t = schedule[(index - 1) & 15] ^ schedule[(index - 6) & 15] ^ schedule[(index - 12) & 15] ^ schedule[(index + 2) & 15];
|
|
1080
|
+
t = (t << 1) | (t >>> 31);
|
|
1081
|
+
schedule[(index + 2) & 15] = t;
|
|
1082
|
+
c = (((d << 5) | (d >>> 27)) + ((e & a) | ((e | a) & b)) + c + 0x8F1BBCDC + t) | 0;
|
|
1083
|
+
e = (e << 30) | (e >>> 2);
|
|
1084
|
+
t = schedule[(index) & 15] ^ schedule[(index - 5) & 15] ^ schedule[(index - 11) & 15] ^ schedule[(index + 3) & 15];
|
|
1085
|
+
t = (t << 1) | (t >>> 31);
|
|
1086
|
+
schedule[(index + 3) & 15] = t;
|
|
1087
|
+
b = (((c << 5) | (c >>> 27)) + ((d & e) | ((d | e) & a)) + b + 0x8F1BBCDC + t) | 0;
|
|
1088
|
+
d = (d << 30) | (d >>> 2);
|
|
1089
|
+
t = schedule[(index + 1) & 15] ^ schedule[(index - 4) & 15] ^ schedule[(index - 10) & 15] ^ schedule[(index + 4) & 15];
|
|
1090
|
+
t = (t << 1) | (t >>> 31);
|
|
1091
|
+
schedule[(index + 4) & 15] = t;
|
|
1092
|
+
a = (((b << 5) | (b >>> 27)) + ((c & d) | ((c | d) & e)) + a + 0x8F1BBCDC + t) | 0;
|
|
1093
|
+
c = (c << 30) | (c >>> 2);
|
|
1094
|
+
}
|
|
1095
|
+
for (let index = 60; index < 80; index += 5) {
|
|
1096
|
+
t = schedule[(index - 3) & 15] ^ schedule[(index - 8) & 15] ^ schedule[(index - 14) & 15] ^ schedule[(index) & 15];
|
|
1097
|
+
t = (t << 1) | (t >>> 31);
|
|
1098
|
+
schedule[(index) & 15] = t;
|
|
1099
|
+
e = (((a << 5) | (a >>> 27)) + (b ^ c ^ d) + e + 0xCA62C1D6 + t) | 0;
|
|
1100
|
+
b = (b << 30) | (b >>> 2);
|
|
1101
|
+
t = schedule[(index - 2) & 15] ^ schedule[(index - 7) & 15] ^ schedule[(index - 13) & 15] ^ schedule[(index + 1) & 15];
|
|
1102
|
+
t = (t << 1) | (t >>> 31);
|
|
1103
|
+
schedule[(index + 1) & 15] = t;
|
|
1104
|
+
d = (((e << 5) | (e >>> 27)) + (a ^ b ^ c) + d + 0xCA62C1D6 + t) | 0;
|
|
1105
|
+
a = (a << 30) | (a >>> 2);
|
|
1106
|
+
t = schedule[(index - 1) & 15] ^ schedule[(index - 6) & 15] ^ schedule[(index - 12) & 15] ^ schedule[(index + 2) & 15];
|
|
1107
|
+
t = (t << 1) | (t >>> 31);
|
|
1108
|
+
schedule[(index + 2) & 15] = t;
|
|
1109
|
+
c = (((d << 5) | (d >>> 27)) + (e ^ a ^ b) + c + 0xCA62C1D6 + t) | 0;
|
|
1110
|
+
e = (e << 30) | (e >>> 2);
|
|
1111
|
+
t = schedule[(index) & 15] ^ schedule[(index - 5) & 15] ^ schedule[(index - 11) & 15] ^ schedule[(index + 3) & 15];
|
|
1112
|
+
t = (t << 1) | (t >>> 31);
|
|
1113
|
+
schedule[(index + 3) & 15] = t;
|
|
1114
|
+
b = (((c << 5) | (c >>> 27)) + (d ^ e ^ a) + b + 0xCA62C1D6 + t) | 0;
|
|
1115
|
+
d = (d << 30) | (d >>> 2);
|
|
1116
|
+
t = schedule[(index + 1) & 15] ^ schedule[(index - 4) & 15] ^ schedule[(index - 10) & 15] ^ schedule[(index + 4) & 15];
|
|
1117
|
+
t = (t << 1) | (t >>> 31);
|
|
1118
|
+
schedule[(index + 4) & 15] = t;
|
|
1119
|
+
a = (((b << 5) | (b >>> 27)) + (c ^ d ^ e) + a + 0xCA62C1D6 + t) | 0;
|
|
1120
|
+
c = (c << 30) | (c >>> 2);
|
|
987
1121
|
}
|
|
988
1122
|
state[0] = (state[0] + a) | 0;
|
|
989
1123
|
state[1] = (state[1] + b) | 0;
|
|
@@ -1046,6 +1180,10 @@
|
|
|
1046
1180
|
return (S_BOX[word >>> 24] << 24) | (S_BOX[(word >>> 16) & 255] << 16) | (S_BOX[(word >>> 8) & 255] << 8) | S_BOX[word & 255];
|
|
1047
1181
|
}
|
|
1048
1182
|
|
|
1183
|
+
function swapBytes(value) {
|
|
1184
|
+
return (value << 24) | ((value & 0xff00) << 8) | ((value >>> 8) & 0xff00) | (value >>> 24);
|
|
1185
|
+
}
|
|
1186
|
+
|
|
1049
1187
|
function multiplyByTwo(value) {
|
|
1050
1188
|
return ((value << 1) ^ ((value >> 7) * 0x1b)) & 255;
|
|
1051
1189
|
}
|
|
@@ -2335,7 +2473,8 @@
|
|
|
2335
2473
|
return new Promise(resolve => {
|
|
2336
2474
|
const { worker, busy } = workerData;
|
|
2337
2475
|
if (busy) {
|
|
2338
|
-
workerData.
|
|
2476
|
+
workerData.terminateResolvers = workerData.terminateResolvers || [];
|
|
2477
|
+
workerData.terminateResolvers.push(resolve);
|
|
2339
2478
|
} else {
|
|
2340
2479
|
if (worker) {
|
|
2341
2480
|
worker.terminate();
|
|
@@ -2348,14 +2487,14 @@
|
|
|
2348
2487
|
},
|
|
2349
2488
|
onTaskFinished() {
|
|
2350
2489
|
if (workerData.busy) {
|
|
2351
|
-
const {
|
|
2352
|
-
if (
|
|
2353
|
-
workerData.
|
|
2490
|
+
const { terminateResolvers, worker } = workerData;
|
|
2491
|
+
if (terminateResolvers) {
|
|
2492
|
+
workerData.terminateResolvers = null;
|
|
2354
2493
|
if (worker) {
|
|
2355
2494
|
workerData.terminated = true;
|
|
2356
2495
|
worker.terminate();
|
|
2357
2496
|
}
|
|
2358
|
-
|
|
2497
|
+
terminateResolvers.forEach(resolve => resolve());
|
|
2359
2498
|
}
|
|
2360
2499
|
workerData.busy = false;
|
|
2361
2500
|
onTaskFinished(workerData);
|
|
@@ -4541,7 +4680,7 @@
|
|
|
4541
4680
|
Object.assign(this, {
|
|
4542
4681
|
reader: new GenericReader(reader),
|
|
4543
4682
|
options,
|
|
4544
|
-
readRanges: new
|
|
4683
|
+
readRanges: { indexes: new Set(), sortedRanges: [], pendingRanges: [] }
|
|
4545
4684
|
});
|
|
4546
4685
|
}
|
|
4547
4686
|
|
|
@@ -5186,7 +5325,6 @@
|
|
|
5186
5325
|
throw new Error(ERR_ENTRY_DATA_OUT_OF_BOUNDS);
|
|
5187
5326
|
}
|
|
5188
5327
|
const size = compressedSize;
|
|
5189
|
-
const readable = toCompatibleReadable(reader.createReadable({ offset: dataOffset, size }));
|
|
5190
5328
|
const signal = checkSignalOption(getOptionValue$1(zipEntry, options, OPTION_SIGNAL));
|
|
5191
5329
|
throwIfAborted(signal);
|
|
5192
5330
|
let checkOverlappingEntry = getOptionValue$1(zipEntry, options, OPTION_CHECK_OVERLAPPING_ENTRY);
|
|
@@ -5260,6 +5398,7 @@
|
|
|
5260
5398
|
writer = new GenericWriter(writer);
|
|
5261
5399
|
await initStream(writer, getDecodableOutputSize(outputSize, compressedSize, compressed));
|
|
5262
5400
|
({ writable } = writer);
|
|
5401
|
+
const readable = toCompatibleReadable(reader.createReadable({ offset: dataOffset, size }));
|
|
5263
5402
|
const { outputSize: writtenSize } = await runWorker({ readable, writable }, workerOptions);
|
|
5264
5403
|
if (writtenSize != outputSize) {
|
|
5265
5404
|
throw Object.assign(new Error(ERR_INVALID_UNCOMPRESSED_SIZE), { outputSize: writtenSize });
|
|
@@ -5695,14 +5834,61 @@
|
|
|
5695
5834
|
end: dataOffset + compressedSize + dataDescriptorLength,
|
|
5696
5835
|
fileEntry
|
|
5697
5836
|
};
|
|
5698
|
-
|
|
5699
|
-
|
|
5837
|
+
const { indexes, sortedRanges, pendingRanges } = readRanges;
|
|
5838
|
+
if (!indexes.has(index)) {
|
|
5839
|
+
const overlappingRange = findOverlappingRange(sortedRanges, range) || pendingRanges.find(otherRange => rangesOverlap(range, otherRange));
|
|
5840
|
+
if (overlappingRange) {
|
|
5700
5841
|
const error = new Error(ERR_OVERLAPPING_ENTRY);
|
|
5701
|
-
error.overlappingEntry =
|
|
5842
|
+
error.overlappingEntry = overlappingRange.fileEntry;
|
|
5702
5843
|
throw error;
|
|
5703
5844
|
}
|
|
5845
|
+
indexes.add(index);
|
|
5846
|
+
pendingRanges.push(range);
|
|
5847
|
+
if (pendingRanges.length * pendingRanges.length > sortedRanges.length) {
|
|
5848
|
+
pendingRanges.sort((range, otherRange) => range.start - otherRange.start);
|
|
5849
|
+
readRanges.sortedRanges = mergeRanges(sortedRanges, pendingRanges);
|
|
5850
|
+
pendingRanges.length = 0;
|
|
5851
|
+
}
|
|
5852
|
+
}
|
|
5853
|
+
}
|
|
5854
|
+
|
|
5855
|
+
function findOverlappingRange(sortedRanges, range) {
|
|
5856
|
+
let low = 0;
|
|
5857
|
+
let high = sortedRanges.length;
|
|
5858
|
+
while (low < high) {
|
|
5859
|
+
const middle = (low + high) >>> 1;
|
|
5860
|
+
if (sortedRanges[middle].start < range.start) {
|
|
5861
|
+
low = middle + 1;
|
|
5862
|
+
} else {
|
|
5863
|
+
high = middle;
|
|
5864
|
+
}
|
|
5865
|
+
}
|
|
5866
|
+
const previousRange = sortedRanges[low - 1];
|
|
5867
|
+
const nextRange = sortedRanges[low];
|
|
5868
|
+
if (previousRange && rangesOverlap(range, previousRange)) {
|
|
5869
|
+
return previousRange;
|
|
5870
|
+
}
|
|
5871
|
+
if (nextRange && rangesOverlap(range, nextRange)) {
|
|
5872
|
+
return nextRange;
|
|
5873
|
+
}
|
|
5874
|
+
}
|
|
5875
|
+
|
|
5876
|
+
function rangesOverlap(range, otherRange) {
|
|
5877
|
+
return range.start < otherRange.end && otherRange.start < range.end;
|
|
5878
|
+
}
|
|
5879
|
+
|
|
5880
|
+
function mergeRanges(sortedRanges, pendingRanges) {
|
|
5881
|
+
const mergedRanges = [];
|
|
5882
|
+
let indexSorted = 0;
|
|
5883
|
+
let indexPending = 0;
|
|
5884
|
+
while (indexSorted < sortedRanges.length || indexPending < pendingRanges.length) {
|
|
5885
|
+
if (indexPending == pendingRanges.length || (indexSorted < sortedRanges.length && sortedRanges[indexSorted].start < pendingRanges[indexPending].start)) {
|
|
5886
|
+
mergedRanges.push(sortedRanges[indexSorted++]);
|
|
5887
|
+
} else {
|
|
5888
|
+
mergedRanges.push(pendingRanges[indexPending++]);
|
|
5889
|
+
}
|
|
5704
5890
|
}
|
|
5705
|
-
|
|
5891
|
+
return mergedRanges;
|
|
5706
5892
|
}
|
|
5707
5893
|
|
|
5708
5894
|
function readDataDescriptor(dataDescriptorView, offset, extraFieldZip64) {
|
|
@@ -8633,7 +8819,7 @@
|
|
|
8633
8819
|
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
8634
8820
|
*/
|
|
8635
8821
|
|
|
8636
|
-
const VERSION = "2.14.
|
|
8822
|
+
const VERSION = "2.14.1";
|
|
8637
8823
|
|
|
8638
8824
|
/*
|
|
8639
8825
|
Copyright (c) 2025 Gildas Lormeau. All rights reserved.
|
|
@@ -10570,7 +10756,7 @@
|
|
|
10570
10756
|
*/
|
|
10571
10757
|
|
|
10572
10758
|
|
|
10573
|
-
|
|
10759
|
+
f(setDefaultConfiguration);
|
|
10574
10760
|
|
|
10575
10761
|
exports.BlobReader = BlobReader;
|
|
10576
10762
|
exports.BlobWriter = BlobWriter;
|