@zip.js/zip.js 2.8.41 → 2.8.43
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 +37 -0
- package/deno.json +6 -2
- package/dist/README.md +10 -1
- package/dist/zip-core-external.js +8261 -0
- package/dist/zip-core-external.min.js +1 -0
- package/dist/zip-core.js +144 -11
- package/dist/zip-core.min.js +1 -1
- package/dist/zip-fs-core-external.js +9277 -0
- package/dist/zip-fs-core-external.min.js +1 -0
- package/dist/zip-fs-core.js +144 -11
- package/dist/zip-fs-core.min.js +1 -1
- package/dist/zip-fs-external.js +10914 -0
- package/dist/zip-fs-external.min.js +1 -0
- package/dist/zip-fs-native.js +146 -13
- package/dist/zip-fs-native.min.js +1 -1
- package/dist/zip-fs.js +220 -32
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-legacy.js +146 -13
- package/dist/zip-legacy.min.js +1 -1
- package/dist/zip-native.js +146 -13
- 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 +220 -32
- package/dist/zip.min.js +1 -1
- package/index-native.cjs +146 -13
- package/index-native.min.js +1 -1
- package/index.cjs +220 -32
- package/index.min.js +1 -1
- package/lib/core/codec-worker.js +27 -3
- package/lib/core/external-assets.js +42 -0
- package/lib/core/streams/codec-stream.js +4 -2
- package/lib/core/streams/zip-entry-stream.js +119 -8
- package/lib/core/streams/zlib-wasm/zlib-streams-loader.js +27 -17
- package/lib/core/streams/zlib-wasm/zlib-streams.js +14 -1
- package/lib/core/web-worker-base.js +6 -2
- package/lib/core/web-worker-inline-native.js +1 -1
- package/lib/core/web-worker-inline-wasm.js +1 -1
- package/lib/core/zip-writer.js +6 -3
- package/lib/zip-core-external.js +34 -0
- package/lib/zip-fs-core-external.js +30 -0
- package/lib/zip-fs-external.js +30 -0
- package/lib/zip-mime-types.js +29 -0
- package/lib/zip-module-wasm-base.js +64 -0
- package/lib/zip-module-wasm.js +1 -31
- package/package.json +63 -2
- package/worker-message-property-names.js +1 -1
package/index-native.cjs
CHANGED
|
@@ -218,7 +218,7 @@ function resetConfiguration() {
|
|
|
218
218
|
Object.assign(config, DEFAULT_CONFIGURATION);
|
|
219
219
|
}
|
|
220
220
|
|
|
221
|
-
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],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],f=[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],n=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],l=new Uint8Array(288);l.fill(8,0,144),l.fill(9,144,256),l.fill(7,256,280),l.fill(8,280,288);const o=new Uint8Array(30).fill(5);function i(t){const e=new Uint16Array(16);for(const f of t)e[f]++;e[0]=0;const f=new Uint16Array(17);for(let t=1;15>=t;t++)f[t+1]=f[t]+e[t];const r=new Uint16Array(t.length);for(let e=0;e<t.length;e++)t[e]&&(r[f[t[e]]++]=e);return {l:e,symbols:r}}const U="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function a(a){a({workerURI:a=>{const c="text/javascript",q=(U=>{let a=0,c=0,q=0,x=new Uint8Array(1024),W=0,h=0;for(;!h;){h=V(1);const t=V(2);if(0==t)s();else if(1==t)u(i(l),i(o));else {if(2!=t)throw Error("invalid deflate block type");u(...z());}}return x.subarray(0,W);function L(){if(a>=U.length)throw Error("unexpected end of deflate data");return U[a++]}function V(t){for(;t>q;)c|=L()<<q,q+=8;const e=c&(1<<t)-1;return c>>>=t,q-=t,e}function s(){c=0,q=0;const t=L()|L()<<8;a+=2,Y(W+t);for(let e=0;t>e;e++)x[W++]=L();}function u(n,l){let o=m(n);for(;256!=o;){if(256>o)Y(W+1),x[W++]=o;else {const n=o-257,i=t[n]+V(e[n]),U=m(l),a=f[U]+V(r[U]);Y(W+i);const c=W-a;for(let t=0;i>t;t++)x[W++]=x[c+t];}o=m(n);}}function z(){const t=V(5)+257,e=V(5)+1,f=V(4)+4,r=new Uint8Array(19);for(let t=0;f>t;t++)r[n[t]]=V(3);const l=i(r),o=new Uint8Array(t+e);let U=0;for(;U<o.length;){const t=m(l);if(16>t)o[U++]=t;else if(16==t){const t=o[U-1];let e=V(2)+3;for(;e--;)o[U++]=t;}else U+=17==t?V(3)+3:V(7)+11;}return [i(o.subarray(0,t)),i(o.subarray(t))]}function m(t){const{l:e,symbols:f}=t;let r=0,n=0,l=0;for(let t=1;15>=t;t++){r|=V(1);const o=e[t];if(o>r-n)return f[l+(r-n)];l+=o,n=n+o<<1,r<<=1;}throw Error("invalid huffman code")}function Y(t){if(x.length<t){let e=2*x.length;for(;t>e;)e*=2;const f=new Uint8Array(e);f.set(x.subarray(0,W)),x=f;}}})((t=>{const e=(t=(t+"").replace(/[^A-Za-z0-9+/=]/g,"")).length,f=[];for(let r=0;e>r;r+=4){const e=U.indexOf(t[r])<<18|U.indexOf(t[r+1])<<12|(63&U.indexOf(t[r+2]))<<6|63&U.indexOf(t[r+3]);f.push(e>>16&255),"="!==t[r+2]&&f.push(e>>8&255),"="!==t[r+3]&&f.push(255&e);}return new Uint8Array(f)})("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"));if(a){const t=new Blob([q],{type:c});return URL.createObjectURL(t)}return "data:"+c+";base64,"+(t=>{let e="";const f=t.length;let r=0;for(;f>r+2;r+=3){const f=t[r]<<16|t[r+1]<<8|t[r+2];e+=U[f>>18&63]+U[f>>12&63]+U[f>>6&63]+U[63&f];}const n=f-r;if(1===n){const f=t[r]<<16;e+=U[f>>18&63]+U[f>>12&63]+"==";}else if(2===n){const f=t[r]<<16|t[r+1]<<8;e+=U[f>>18&63]+U[f>>12&63]+U[f>>6&63]+"=";}return e})(q)}});}
|
|
221
|
+
const r=[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],e=[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],f=[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],i=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],l=new Uint8Array(288);l.fill(8,0,144),l.fill(9,144,256),l.fill(7,256,280),l.fill(8,280,288);const o=new Uint8Array(30).fill(5);function h(r){const n=new Uint16Array(16);for(const e of r)n[e]++;n[0]=0;const e=new Uint16Array(17);for(let r=1;15>=r;r++)e[r+1]=e[r]+n[r];const f=new Uint16Array(r.length);for(let n=0;n<r.length;n++)r[n]&&(f[e[r[n]]++]=n);return {l:n,symbols:f}}const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function q$1(q){q({workerURI:q=>{const s="text/javascript",w=(t=>{let q=0,s=0,w=0,U=new Uint8Array(1024),y=0,c=0;for(;!c;){c=X(1);const r=X(2);if(0==r)j();else if(1==r)x(h(l),h(o));else {if(2!=r)throw Error("invalid deflate block type");x(...M());}}return U.subarray(0,y);function u(){if(q>=t.length)throw Error("unexpected end of deflate data");return t[q++]}function X(r){for(;r>w;)s|=u()<<w,w+=8;const n=s&(1<<r)-1;return s>>>=r,w-=r,n}function j(){s=0,w=0;const r=u()|u()<<8;q+=2,W(y+r);for(let n=0;r>n;n++)U[y++]=u();}function x(i,l){let o=z(i);for(;256!=o;){if(256>o)W(y+1),U[y++]=o;else {const i=o-257,h=r[i]+X(n[i]),t=z(l),q=e[t]+X(f[t]);W(y+h);const s=y-q;for(let r=0;h>r;r++)U[y++]=U[s+r];}o=z(i);}}function M(){const r=X(5)+257,n=X(5)+1,e=X(4)+4,f=new Uint8Array(19);for(let r=0;e>r;r++)f[i[r]]=X(3);const l=h(f),o=new Uint8Array(r+n);let t=0;for(;t<o.length;){const r=z(l);if(16>r)o[t++]=r;else if(16==r){const r=o[t-1];let n=X(2)+3;for(;n--;)o[t++]=r;}else t+=17==r?X(3)+3:X(7)+11;}return [h(o.subarray(0,r)),h(o.subarray(r))]}function z(r){const{l:n,symbols:e}=r;let f=0,i=0,l=0;for(let r=1;15>=r;r++){f|=X(1);const o=n[r];if(o>f-i)return e[l+(f-i)];l+=o,i=i+o<<1,f<<=1;}throw Error("invalid huffman code")}function W(r){if(U.length<r){let n=2*U.length;for(;r>n;)n*=2;const e=new Uint8Array(n);e.set(U.subarray(0,y)),U=e;}}})((r=>{const n=(r=(r+"").replace(/[^A-Za-z0-9+/=]/g,"")).length,e=[];for(let f=0;n>f;f+=4){const n=t.indexOf(r[f])<<18|t.indexOf(r[f+1])<<12|(63&t.indexOf(r[f+2]))<<6|63&t.indexOf(r[f+3]);e.push(n>>16&255),"="!==r[f+2]&&e.push(n>>8&255),"="!==r[f+3]&&e.push(255&n);}return new Uint8Array(e)})("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"));if(q){const r=new Blob([w],{type:s});return URL.createObjectURL(r)}return "data:"+s+";base64,"+(r=>{let n="";const e=r.length;let f=0;for(;e>f+2;f+=3){const e=r[f]<<16|r[f+1]<<8|r[f+2];n+=t[e>>18&63]+t[e>>12&63]+t[e>>6&63]+t[63&e];}const i=e-f;if(1===i){const e=r[f]<<16;n+=t[e>>18&63]+t[e>>12&63]+"==";}else if(2===i){const e=r[f]<<16|r[f+1]<<8;n+=t[e>>18&63]+t[e>>12&63]+t[e>>6&63]+"=";}return n})(w)}});}
|
|
222
222
|
|
|
223
223
|
/*
|
|
224
224
|
Copyright (c) 2025 Gildas Lormeau. All rights reserved.
|
|
@@ -1926,6 +1926,8 @@ const FORMAT_DEFLATE64_RAW = "deflate64-raw";
|
|
|
1926
1926
|
const FORMAT_GZIP = "gzip";
|
|
1927
1927
|
const GZIP_HEADER_LENGTH = 10;
|
|
1928
1928
|
const GZIP_TRAILER_LENGTH = 8;
|
|
1929
|
+
const GZIP_HEADER_BYTES = [0x1f, 0x8b, 0x08];
|
|
1930
|
+
const GZIP_OUTPUT_STALL_TIMEOUT = 5000;
|
|
1929
1931
|
|
|
1930
1932
|
class DeflateStream extends TransformStream {
|
|
1931
1933
|
|
|
@@ -1950,7 +1952,18 @@ class DeflateStream extends TransformStream {
|
|
|
1950
1952
|
readable = pipeThroughBackpressured(readable, new CompressionStream(FORMAT_GZIP));
|
|
1951
1953
|
readable = pipeThrough(readable, gzipCrc32Stream);
|
|
1952
1954
|
} else {
|
|
1953
|
-
|
|
1955
|
+
try {
|
|
1956
|
+
readable = pipeThroughCompressionStream(readable, useCompressionStream, { level, chunkSize }, CompressionStream, CompressionStreamZlib);
|
|
1957
|
+
} catch (error) {
|
|
1958
|
+
let gzipStream;
|
|
1959
|
+
try {
|
|
1960
|
+
gzipStream = new CompressionStream(FORMAT_GZIP);
|
|
1961
|
+
} catch {
|
|
1962
|
+
throw error;
|
|
1963
|
+
}
|
|
1964
|
+
readable = pipeThroughBackpressured(readable, gzipStream);
|
|
1965
|
+
readable = pipeThrough(readable, new GzipToRawDeflateStream());
|
|
1966
|
+
}
|
|
1954
1967
|
}
|
|
1955
1968
|
}
|
|
1956
1969
|
if (encrypted) {
|
|
@@ -2015,6 +2028,76 @@ class GzipToRawDeflateStream extends TransformStream {
|
|
|
2015
2028
|
}
|
|
2016
2029
|
}
|
|
2017
2030
|
|
|
2031
|
+
function pipeThroughGzipDecompressionStream(readable, gzipStream, outputSize) {
|
|
2032
|
+
const crc32 = new Crc32();
|
|
2033
|
+
let outputLength = 0;
|
|
2034
|
+
let inputDone = false;
|
|
2035
|
+
let watchdogTimeout;
|
|
2036
|
+
let resolveTrailerReady, rejectTrailerReady;
|
|
2037
|
+
const trailerReady = new Promise((resolve, reject) => {
|
|
2038
|
+
resolveTrailerReady = resolve;
|
|
2039
|
+
rejectTrailerReady = reject;
|
|
2040
|
+
});
|
|
2041
|
+
trailerReady.catch(() => { });
|
|
2042
|
+
if (!outputSize) {
|
|
2043
|
+
resolveTrailerReady();
|
|
2044
|
+
}
|
|
2045
|
+
const gzipWrapStream = new TransformStream({
|
|
2046
|
+
start(controller) {
|
|
2047
|
+
const header = new Uint8Array(GZIP_HEADER_LENGTH);
|
|
2048
|
+
header.set(GZIP_HEADER_BYTES);
|
|
2049
|
+
controller.enqueue(header);
|
|
2050
|
+
},
|
|
2051
|
+
transform(chunk, controller) {
|
|
2052
|
+
controller.enqueue(chunk);
|
|
2053
|
+
},
|
|
2054
|
+
async flush(controller) {
|
|
2055
|
+
inputDone = true;
|
|
2056
|
+
startWatchdog();
|
|
2057
|
+
try {
|
|
2058
|
+
await trailerReady;
|
|
2059
|
+
} finally {
|
|
2060
|
+
stopWatchdog();
|
|
2061
|
+
}
|
|
2062
|
+
const trailer = new Uint8Array(GZIP_TRAILER_LENGTH);
|
|
2063
|
+
const dataView = getDataView(trailer);
|
|
2064
|
+
dataView.setUint32(0, crc32.get(), true);
|
|
2065
|
+
dataView.setUint32(4, outputSize, true);
|
|
2066
|
+
controller.enqueue(trailer);
|
|
2067
|
+
},
|
|
2068
|
+
cancel(reason) {
|
|
2069
|
+
rejectTrailerReady(reason);
|
|
2070
|
+
}
|
|
2071
|
+
});
|
|
2072
|
+
const outputStream = new TransformStream({
|
|
2073
|
+
transform(chunk, controller) {
|
|
2074
|
+
crc32.append(chunk);
|
|
2075
|
+
outputLength += chunk.length;
|
|
2076
|
+
if (outputLength >= outputSize) {
|
|
2077
|
+
resolveTrailerReady();
|
|
2078
|
+
} else if (inputDone) {
|
|
2079
|
+
startWatchdog();
|
|
2080
|
+
}
|
|
2081
|
+
controller.enqueue(chunk);
|
|
2082
|
+
},
|
|
2083
|
+
cancel(reason) {
|
|
2084
|
+
rejectTrailerReady(reason);
|
|
2085
|
+
}
|
|
2086
|
+
});
|
|
2087
|
+
readable = pipeThrough(readable, gzipWrapStream);
|
|
2088
|
+
readable = pipeThroughBackpressured(readable, gzipStream);
|
|
2089
|
+
return pipeThrough(readable, outputStream);
|
|
2090
|
+
|
|
2091
|
+
function startWatchdog() {
|
|
2092
|
+
stopWatchdog();
|
|
2093
|
+
watchdogTimeout = setTimeout(() => rejectTrailerReady(new Error(ERR_INVALID_UNCOMPRESSED_SIZE)), GZIP_OUTPUT_STALL_TIMEOUT);
|
|
2094
|
+
}
|
|
2095
|
+
|
|
2096
|
+
function stopWatchdog() {
|
|
2097
|
+
clearTimeout(watchdogTimeout);
|
|
2098
|
+
}
|
|
2099
|
+
}
|
|
2100
|
+
|
|
2018
2101
|
class InflateStream extends TransformStream {
|
|
2019
2102
|
|
|
2020
2103
|
constructor(options, { chunkSize, DecompressionStreamZlib, DecompressionStream }) {
|
|
@@ -2035,7 +2118,20 @@ class InflateStream extends TransformStream {
|
|
|
2035
2118
|
if (codecStreams) {
|
|
2036
2119
|
readable = pipeThroughBackpressured(readable, createCodecStream(codecStreams.DecompressionStream, format, { chunkSize, compressionMethod, rawBitFlag, uncompressedSize: outputSize }));
|
|
2037
2120
|
} else {
|
|
2038
|
-
|
|
2121
|
+
try {
|
|
2122
|
+
readable = pipeThroughCompressionStream(readable, useCompressionStream, { chunkSize, deflate64 }, DecompressionStream, DecompressionStreamZlib);
|
|
2123
|
+
} catch (error) {
|
|
2124
|
+
if (deflate64 || outputSize === UNDEFINED_VALUE) {
|
|
2125
|
+
throw error;
|
|
2126
|
+
}
|
|
2127
|
+
let gzipStream;
|
|
2128
|
+
try {
|
|
2129
|
+
gzipStream = new DecompressionStream(FORMAT_GZIP);
|
|
2130
|
+
} catch {
|
|
2131
|
+
throw error;
|
|
2132
|
+
}
|
|
2133
|
+
readable = pipeThroughGzipDecompressionStream(readable, gzipStream, outputSize);
|
|
2134
|
+
}
|
|
2039
2135
|
}
|
|
2040
2136
|
readable = mapInflateStreamError(readable);
|
|
2041
2137
|
}
|
|
@@ -2054,25 +2150,38 @@ class InflateStream extends TransformStream {
|
|
|
2054
2150
|
}
|
|
2055
2151
|
}
|
|
2056
2152
|
|
|
2057
|
-
const
|
|
2153
|
+
const formatSupportByStream = new Map();
|
|
2058
2154
|
|
|
2059
|
-
function
|
|
2155
|
+
function supportsFormat(StreamClass, format) {
|
|
2060
2156
|
if (!StreamClass) {
|
|
2061
2157
|
return false;
|
|
2062
2158
|
}
|
|
2063
|
-
let
|
|
2159
|
+
let supportByFormat = formatSupportByStream.get(StreamClass);
|
|
2160
|
+
if (!supportByFormat) {
|
|
2161
|
+
supportByFormat = new Map();
|
|
2162
|
+
formatSupportByStream.set(StreamClass, supportByFormat);
|
|
2163
|
+
}
|
|
2164
|
+
let supported = supportByFormat.get(format);
|
|
2064
2165
|
if (supported === UNDEFINED_VALUE) {
|
|
2065
2166
|
try {
|
|
2066
|
-
new StreamClass(
|
|
2167
|
+
new StreamClass(format);
|
|
2067
2168
|
supported = true;
|
|
2068
2169
|
} catch {
|
|
2069
2170
|
supported = false;
|
|
2070
2171
|
}
|
|
2071
|
-
|
|
2172
|
+
supportByFormat.set(format, supported);
|
|
2072
2173
|
}
|
|
2073
2174
|
return supported;
|
|
2074
2175
|
}
|
|
2075
2176
|
|
|
2177
|
+
function supportsDeflateRaw(StreamClass) {
|
|
2178
|
+
return supportsFormat(StreamClass, FORMAT_DEFLATE_RAW);
|
|
2179
|
+
}
|
|
2180
|
+
|
|
2181
|
+
function supportsGzip(StreamClass) {
|
|
2182
|
+
return supportsFormat(StreamClass, FORMAT_GZIP);
|
|
2183
|
+
}
|
|
2184
|
+
|
|
2076
2185
|
function setReadable(stream, readable, flush) {
|
|
2077
2186
|
readable = pipeThrough(readable, new TransformStream({ flush }));
|
|
2078
2187
|
Object.defineProperty(stream, "readable", {
|
|
@@ -2371,6 +2480,25 @@ try {
|
|
|
2371
2480
|
}
|
|
2372
2481
|
let initModule = () => { };
|
|
2373
2482
|
|
|
2483
|
+
async function supportsDeflate(config) {
|
|
2484
|
+
const { CompressionStream: NativeStream, CompressionStreamZlib: ZlibStream } = config;
|
|
2485
|
+
if (ZlibStream && !ZlibStream.requiresModule) {
|
|
2486
|
+
return true;
|
|
2487
|
+
}
|
|
2488
|
+
if (supportsDeflateRaw(NativeStream) || supportsGzip(NativeStream)) {
|
|
2489
|
+
return true;
|
|
2490
|
+
}
|
|
2491
|
+
if (ZlibStream) {
|
|
2492
|
+
try {
|
|
2493
|
+
await initModule(config);
|
|
2494
|
+
return true;
|
|
2495
|
+
} catch {
|
|
2496
|
+
return false;
|
|
2497
|
+
}
|
|
2498
|
+
}
|
|
2499
|
+
return false;
|
|
2500
|
+
}
|
|
2501
|
+
|
|
2374
2502
|
function resetWebWorkerSupport() {
|
|
2375
2503
|
webWorkerSupported = UNDEFINED_VALUE;
|
|
2376
2504
|
}
|
|
@@ -2820,9 +2948,12 @@ async function onMessage({ data }, workerData) {
|
|
|
2820
2948
|
const stale = () => workerData.generation != generation;
|
|
2821
2949
|
try {
|
|
2822
2950
|
if (error) {
|
|
2823
|
-
const { message, stack, code, name, outputSize } = error;
|
|
2951
|
+
const { message, stack, code, name, outputSize, cause } = error;
|
|
2824
2952
|
const responseError = new Error(message);
|
|
2825
2953
|
Object.assign(responseError, { stack, code, name, outputSize });
|
|
2954
|
+
if (cause) {
|
|
2955
|
+
responseError.cause = Object.assign(new Error(cause.message), { name: cause.name });
|
|
2956
|
+
}
|
|
2826
2957
|
close(responseError);
|
|
2827
2958
|
} else {
|
|
2828
2959
|
if (type == MESSAGE_PULL) {
|
|
@@ -5741,6 +5872,11 @@ async function addFile(zipWriter, name, reader, options) {
|
|
|
5741
5872
|
zipWriter.files.set(name, UNDEFINED_VALUE);
|
|
5742
5873
|
let fileEntry;
|
|
5743
5874
|
try {
|
|
5875
|
+
const { resolvedOptions } = metadataInfo;
|
|
5876
|
+
if (resolvedOptions.level != 0 && resolvedOptions.compressionMethod === UNDEFINED_VALUE &&
|
|
5877
|
+
!resolvedOptions.passThrough && !(await supportsDeflate(zipWriter.config))) {
|
|
5878
|
+
resolvedOptions.level = 0;
|
|
5879
|
+
}
|
|
5744
5880
|
const sizesInfo = await resolveSizes(zipWriter, reader, metadataInfo, options);
|
|
5745
5881
|
({ reader } = sizesInfo);
|
|
5746
5882
|
const diskOffset = getDiskOffset(zipWriter.writer);
|
|
@@ -5961,9 +6097,6 @@ function resolveMetadata(zipWriter, name, options) {
|
|
|
5961
6097
|
if (level !== UNDEFINED_VALUE && level != 6) {
|
|
5962
6098
|
useCompressionStream = false;
|
|
5963
6099
|
}
|
|
5964
|
-
if (!useCompressionStream && !registeredCodec && (zipWriter.config.CompressionStream === UNDEFINED_VALUE && zipWriter.config.CompressionStreamZlib === UNDEFINED_VALUE)) {
|
|
5965
|
-
level = 0;
|
|
5966
|
-
}
|
|
5967
6100
|
const zip64 = getOptionValue(zipWriter, options, PROPERTY_NAME_ZIP64);
|
|
5968
6101
|
if (!zipCrypto && (password !== UNDEFINED_VALUE || rawPassword !== UNDEFINED_VALUE) && !(encryptionStrength >= 1 && encryptionStrength <= 3)) {
|
|
5969
6102
|
throw new Error(ERR_INVALID_ENCRYPTION_STRENGTH);
|
|
@@ -10409,7 +10542,7 @@ function getMimeTypes() {
|
|
|
10409
10542
|
*/
|
|
10410
10543
|
|
|
10411
10544
|
|
|
10412
|
-
|
|
10545
|
+
q$1(setDefaultConfiguration);
|
|
10413
10546
|
|
|
10414
10547
|
exports.BlobReader = BlobReader;
|
|
10415
10548
|
exports.BlobWriter = BlobWriter;
|