@zip.js/zip.js 2.8.59 → 2.8.61
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/deno.json +2 -2
- package/dist/zip-core-external.js +167 -37
- package/dist/zip-core-external.min.js +1 -1
- package/dist/zip-core.js +143 -20
- package/dist/zip-core.min.js +1 -1
- package/dist/zip-fs-core-external.js +173 -45
- package/dist/zip-fs-core-external.min.js +1 -1
- package/dist/zip-fs-core.js +5326 -3928
- package/dist/zip-fs-core.min.js +1 -1
- package/dist/zip-fs-external.js +173 -45
- package/dist/zip-fs-external.min.js +1 -1
- package/dist/zip-fs-native.js +151 -30
- package/dist/zip-fs-native.min.js +1 -1
- package/dist/zip-fs.js +176 -45
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-legacy.js +145 -22
- package/dist/zip-legacy.min.js +1 -1
- package/dist/zip-native.js +145 -22
- 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 +170 -37
- package/dist/zip.min.js +1 -1
- package/index-native.cjs +151 -30
- package/index-native.min.js +1 -1
- package/index.cjs +176 -45
- package/index.d.cts +134 -1
- package/index.d.ts +134 -1
- package/index.min.js +1 -1
- package/lib/core/codec-registry.js +5 -0
- package/lib/core/compression-methods.js +93 -0
- package/lib/core/streams/zip-entry-stream.js +7 -3
- package/lib/core/streams/zlib-wasm/zlib-streams.js +18 -8
- package/lib/core/version.js +31 -0
- package/lib/core/web-worker-inline-native.js +1 -1
- package/lib/core/web-worker-inline-wasm.js +1 -1
- package/lib/core/zip-fs.js +5 -4
- package/lib/core/zip-writer.js +38 -31
- package/lib/zip-core-base.js +7 -0
- package/lib/zip-fs-core.js +32 -0
- package/package.json +4 -3
- package/release.sh +47 -0
- package/sync-versions.js +26 -0
package/dist/zip-fs-external.js
CHANGED
|
@@ -2109,6 +2109,10 @@ function getRegisteredCodec(compressionMethod) {
|
|
|
2109
2109
|
return registeredCodecs.get(compressionMethod);
|
|
2110
2110
|
}
|
|
2111
2111
|
|
|
2112
|
+
function getRegisteredCodecs() {
|
|
2113
|
+
return Array.from(registeredCodecs.values(), codec => Object.assign({}, codec, codecStreams.get(codec.format)));
|
|
2114
|
+
}
|
|
2115
|
+
|
|
2112
2116
|
function getCodecStreams(format) {
|
|
2113
2117
|
return codecStreams.get(format);
|
|
2114
2118
|
}
|
|
@@ -2160,9 +2164,9 @@ const ERR_INVALID_UNCOMPRESSED_SIZE = "Invalid uncompressed size";
|
|
|
2160
2164
|
const ERR_INVALID_COMPRESSED_DATA = "Invalid compressed data";
|
|
2161
2165
|
const ERR_INVALID_CRC32 = ERR_INVALID_SIGNATURE;
|
|
2162
2166
|
const ERR_UNSUPPORTED_COMPRESSION$2 = "Compression method not supported";
|
|
2163
|
-
const FORMAT_DEFLATE_RAW = "deflate-raw";
|
|
2164
|
-
const FORMAT_DEFLATE64_RAW = "deflate64-raw";
|
|
2165
|
-
const FORMAT_GZIP = "gzip";
|
|
2167
|
+
const FORMAT_DEFLATE_RAW$1 = "deflate-raw";
|
|
2168
|
+
const FORMAT_DEFLATE64_RAW$1 = "deflate64-raw";
|
|
2169
|
+
const FORMAT_GZIP$1 = "gzip";
|
|
2166
2170
|
const GZIP_HEADER_LENGTH = 10;
|
|
2167
2171
|
const GZIP_TRAILER_LENGTH = 8;
|
|
2168
2172
|
const GZIP_HEADER_BYTES = [0x1f, 0x8b, 0x08];
|
|
@@ -2172,7 +2176,7 @@ class DeflateStream extends TransformStream {
|
|
|
2172
2176
|
|
|
2173
2177
|
constructor(options, { chunkSize, CompressionStreamFallback, CompressionStream }) {
|
|
2174
2178
|
super({});
|
|
2175
|
-
const { compressed, encrypted, useCompressionStream, zipCrypto, computeCrc32, level, deflate64, format, compressionMethod } = options;
|
|
2179
|
+
const { compressed, encrypted, useCompressionStream, zipCrypto, computeCrc32, level, deflate64, format, compressionMethod, inputSize } = options;
|
|
2176
2180
|
const stream = this;
|
|
2177
2181
|
let crc32Stream, encryptionStream, gzipCrc32Stream;
|
|
2178
2182
|
let readable = super.readable;
|
|
@@ -2185,10 +2189,10 @@ class DeflateStream extends TransformStream {
|
|
|
2185
2189
|
}
|
|
2186
2190
|
if (compressed) {
|
|
2187
2191
|
if (codecStreams) {
|
|
2188
|
-
readable = pipeThroughBackpressured(readable, createCodecStream(codecStreams.CompressionStream, format, { level, chunkSize, compressionMethod }));
|
|
2192
|
+
readable = pipeThroughBackpressured(readable, createCodecStream(codecStreams.CompressionStream, format, { level, chunkSize, compressionMethod, uncompressedSize: inputSize }));
|
|
2189
2193
|
} else if (useGzipCrc32) {
|
|
2190
2194
|
gzipCrc32Stream = new GzipToRawDeflateStream();
|
|
2191
|
-
readable = pipeThroughBackpressured(readable, new CompressionStream(FORMAT_GZIP));
|
|
2195
|
+
readable = pipeThroughBackpressured(readable, new CompressionStream(FORMAT_GZIP$1));
|
|
2192
2196
|
readable = pipeThrough(readable, gzipCrc32Stream);
|
|
2193
2197
|
} else {
|
|
2194
2198
|
try {
|
|
@@ -2196,7 +2200,7 @@ class DeflateStream extends TransformStream {
|
|
|
2196
2200
|
} catch (error) {
|
|
2197
2201
|
let gzipStream;
|
|
2198
2202
|
try {
|
|
2199
|
-
gzipStream = new CompressionStream(FORMAT_GZIP);
|
|
2203
|
+
gzipStream = new CompressionStream(FORMAT_GZIP$1);
|
|
2200
2204
|
} catch {
|
|
2201
2205
|
throw error;
|
|
2202
2206
|
}
|
|
@@ -2360,7 +2364,7 @@ class InflateStream extends TransformStream {
|
|
|
2360
2364
|
}
|
|
2361
2365
|
let gzipStream;
|
|
2362
2366
|
try {
|
|
2363
|
-
gzipStream = new DecompressionStream(FORMAT_GZIP);
|
|
2367
|
+
gzipStream = new DecompressionStream(FORMAT_GZIP$1);
|
|
2364
2368
|
} catch {
|
|
2365
2369
|
throw error;
|
|
2366
2370
|
}
|
|
@@ -2409,11 +2413,11 @@ function supportsFormat(StreamClass, format) {
|
|
|
2409
2413
|
}
|
|
2410
2414
|
|
|
2411
2415
|
function supportsDeflateRaw(StreamClass) {
|
|
2412
|
-
return supportsFormat(StreamClass, FORMAT_DEFLATE_RAW);
|
|
2416
|
+
return supportsFormat(StreamClass, FORMAT_DEFLATE_RAW$1);
|
|
2413
2417
|
}
|
|
2414
2418
|
|
|
2415
2419
|
function supportsGzip(StreamClass) {
|
|
2416
|
-
return supportsFormat(StreamClass, FORMAT_GZIP);
|
|
2420
|
+
return supportsFormat(StreamClass, FORMAT_GZIP$1);
|
|
2417
2421
|
}
|
|
2418
2422
|
|
|
2419
2423
|
function setReadable(stream, readable, flush) {
|
|
@@ -2436,7 +2440,7 @@ function pipeThroughCompressionStream(readable, useCompressionStream, options, C
|
|
|
2436
2440
|
const Stream = useCompressionStream && CompressionStreamNative ?
|
|
2437
2441
|
CompressionStreamNative :
|
|
2438
2442
|
CompressionStreamFallback || CompressionStreamNative;
|
|
2439
|
-
const format = options.deflate64 ? FORMAT_DEFLATE64_RAW : FORMAT_DEFLATE_RAW;
|
|
2443
|
+
const format = options.deflate64 ? FORMAT_DEFLATE64_RAW$1 : FORMAT_DEFLATE_RAW$1;
|
|
2440
2444
|
let codecStream;
|
|
2441
2445
|
try {
|
|
2442
2446
|
codecStream = new Stream(format, options);
|
|
@@ -6701,6 +6705,13 @@ async function addFile(zipWriter, name, reader, options) {
|
|
|
6701
6705
|
const { comment } = metadataInfo;
|
|
6702
6706
|
const extraField = options[PROPERTY_NAME_EXTRA_FIELD];
|
|
6703
6707
|
zipWriter.fileEntries.set(name, UNDEFINED_VALUE);
|
|
6708
|
+
const previousFileEntry = zipWriter.lastFileEntry;
|
|
6709
|
+
const pendingFileEntry = {};
|
|
6710
|
+
let releaseLockFileEntry;
|
|
6711
|
+
if (metadataInfo.resolvedOptions.keepOrder) {
|
|
6712
|
+
pendingFileEntry.lockFileEntry = new Promise(resolve => releaseLockFileEntry = resolve);
|
|
6713
|
+
}
|
|
6714
|
+
zipWriter.lastFileEntry = pendingFileEntry;
|
|
6704
6715
|
let fileEntry;
|
|
6705
6716
|
try {
|
|
6706
6717
|
const { resolvedOptions } = metadataInfo;
|
|
@@ -6722,10 +6733,21 @@ async function addFile(zipWriter, name, reader, options) {
|
|
|
6722
6733
|
const headerInfo = getHeaderInfo(options);
|
|
6723
6734
|
const dataDescriptorInfo = getDataDescriptorInfo(options);
|
|
6724
6735
|
const metadataSize = getLength(headerInfo.localHeaderArray, dataDescriptorInfo.dataDescriptorArray);
|
|
6725
|
-
fileEntry = await getFileEntry(zipWriter, name, reader, {
|
|
6736
|
+
fileEntry = await getFileEntry(zipWriter, name, reader, {
|
|
6737
|
+
headerInfo,
|
|
6738
|
+
dataDescriptorInfo,
|
|
6739
|
+
metadataSize,
|
|
6740
|
+
fileEntry: pendingFileEntry,
|
|
6741
|
+
previousFileEntry,
|
|
6742
|
+
releaseLockFileEntry
|
|
6743
|
+
}, options);
|
|
6726
6744
|
} catch (error) {
|
|
6727
6745
|
zipWriter.fileEntries.delete(name);
|
|
6728
6746
|
throw error;
|
|
6747
|
+
} finally {
|
|
6748
|
+
if (releaseLockFileEntry) {
|
|
6749
|
+
releaseLockFileEntry(previousFileEntry && previousFileEntry.lockFileEntry);
|
|
6750
|
+
}
|
|
6729
6751
|
}
|
|
6730
6752
|
Object.assign(fileEntry, {
|
|
6731
6753
|
name,
|
|
@@ -7113,7 +7135,6 @@ async function getEntriesSize(writerOptions, entries, writeOrderGuaranteed, comm
|
|
|
7113
7135
|
}
|
|
7114
7136
|
const usdz = writerOptions[OPTION_USDZ];
|
|
7115
7137
|
const files = new Map();
|
|
7116
|
-
let layoutDependsOnWriteOrder = Boolean(usdz);
|
|
7117
7138
|
const initialOffset = writerOptions[OPTION_OFFSET] === UNDEFINED_VALUE ? 0 : writerOptions[OPTION_OFFSET];
|
|
7118
7139
|
let offset = initialOffset;
|
|
7119
7140
|
let minimumEntrySize = INFINITY_VALUE;
|
|
@@ -7159,9 +7180,7 @@ async function getEntriesSize(writerOptions, entries, writeOrderGuaranteed, comm
|
|
|
7159
7180
|
minimumEntrySize = Math.min(minimumEntrySize, entrySize);
|
|
7160
7181
|
offset += entrySize;
|
|
7161
7182
|
}
|
|
7162
|
-
|
|
7163
|
-
layoutDependsOnWriteOrder = true;
|
|
7164
|
-
}
|
|
7183
|
+
const layoutDependsOnWriteOrder = files.size > 1 && (usdz || offset - minimumEntrySize >= MAX_32_BITS);
|
|
7165
7184
|
if (layoutDependsOnWriteOrder && !writeOrderGuaranteed) {
|
|
7166
7185
|
throw new Error(ERR_UNDETERMINED_SIZE);
|
|
7167
7186
|
}
|
|
@@ -7189,27 +7208,23 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
|
|
|
7189
7208
|
signal
|
|
7190
7209
|
} = options;
|
|
7191
7210
|
const {
|
|
7192
|
-
headerInfo
|
|
7211
|
+
headerInfo,
|
|
7212
|
+
fileEntry: pendingFileEntry,
|
|
7213
|
+
previousFileEntry,
|
|
7214
|
+
releaseLockFileEntry
|
|
7193
7215
|
} = entryInfo;
|
|
7194
7216
|
const usdz = zipWriter.options[OPTION_USDZ];
|
|
7195
|
-
|
|
7196
|
-
let fileEntry = {};
|
|
7217
|
+
let fileEntry = pendingFileEntry;
|
|
7197
7218
|
let bufferedWrite;
|
|
7198
7219
|
let releaseLockWriter;
|
|
7199
|
-
let releaseLockCurrentFileEntry;
|
|
7200
7220
|
let writingBufferedEntryData;
|
|
7201
7221
|
let writingEntryData;
|
|
7202
7222
|
let writerSizeBeforeEntry;
|
|
7203
7223
|
let flushedBufferedSize = 0;
|
|
7204
7224
|
let fileWriter;
|
|
7225
|
+
const lockPreviousFileEntry = keepOrder && previousFileEntry ? previousFileEntry.lockFileEntry : UNDEFINED_VALUE;
|
|
7205
7226
|
fileEntries.set(name, fileEntry);
|
|
7206
|
-
zipWriter.lastFileEntry = fileEntry;
|
|
7207
7227
|
try {
|
|
7208
|
-
let lockPreviousFileEntry;
|
|
7209
|
-
if (keepOrder) {
|
|
7210
|
-
lockPreviousFileEntry = previousFileEntry && previousFileEntry.lockFileEntry;
|
|
7211
|
-
requestLockCurrentFileEntry();
|
|
7212
|
-
}
|
|
7213
7228
|
if (options.bufferedWrite || !keepOrder || zipWriter.writerLocked || zipWriter.bufferedWrites || (!dataDescriptor && !emptyEntry)) {
|
|
7214
7229
|
bufferedWrite = true;
|
|
7215
7230
|
zipWriter.bufferedWrites++;
|
|
@@ -7222,6 +7237,7 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
|
|
|
7222
7237
|
await initStream(writer);
|
|
7223
7238
|
} else {
|
|
7224
7239
|
fileWriter = writer;
|
|
7240
|
+
await lockPreviousFileEntry;
|
|
7225
7241
|
await requestLockWriter();
|
|
7226
7242
|
}
|
|
7227
7243
|
await initStream(fileWriter);
|
|
@@ -7234,7 +7250,6 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
|
|
|
7234
7250
|
}
|
|
7235
7251
|
const { localHeaderArray } = headerInfo;
|
|
7236
7252
|
if (!bufferedWrite) {
|
|
7237
|
-
await lockPreviousFileEntry;
|
|
7238
7253
|
await skipDiskIfNeeded();
|
|
7239
7254
|
}
|
|
7240
7255
|
const diskNumberStart = getDiskNumber(writer);
|
|
@@ -7299,8 +7314,8 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
|
|
|
7299
7314
|
if (bufferedWrite) {
|
|
7300
7315
|
zipWriter.bufferedWrites--;
|
|
7301
7316
|
}
|
|
7302
|
-
if (
|
|
7303
|
-
|
|
7317
|
+
if (releaseLockFileEntry) {
|
|
7318
|
+
releaseLockFileEntry(lockPreviousFileEntry);
|
|
7304
7319
|
}
|
|
7305
7320
|
if (releaseLockWriter) {
|
|
7306
7321
|
releaseLockWriter();
|
|
@@ -7314,10 +7329,6 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
|
|
|
7314
7329
|
}
|
|
7315
7330
|
}
|
|
7316
7331
|
|
|
7317
|
-
function requestLockCurrentFileEntry() {
|
|
7318
|
-
fileEntry.lockFileEntry = new Promise(resolve => releaseLockCurrentFileEntry = resolve);
|
|
7319
|
-
}
|
|
7320
|
-
|
|
7321
7332
|
async function requestLockWriter() {
|
|
7322
7333
|
zipWriter.writerLocked = true;
|
|
7323
7334
|
const { lockWriter } = zipWriter;
|
|
@@ -7452,6 +7463,7 @@ async function createFileEntry(reader, writer, { diskNumberStart, lockFileEntry
|
|
|
7452
7463
|
const workerOptions = {
|
|
7453
7464
|
options: {
|
|
7454
7465
|
codecType: CODEC_DEFLATE,
|
|
7466
|
+
inputSize: size,
|
|
7455
7467
|
level,
|
|
7456
7468
|
rawPassword,
|
|
7457
7469
|
password,
|
|
@@ -8562,6 +8574,111 @@ function getMimeType$1() {
|
|
|
8562
8574
|
*/
|
|
8563
8575
|
|
|
8564
8576
|
|
|
8577
|
+
function getSupportedCompressionMethods() {
|
|
8578
|
+
const { CompressionStream, DecompressionStream, CompressionStreamFallback, DecompressionStreamFallback } = getConfiguration();
|
|
8579
|
+
const supportedMethods = [{
|
|
8580
|
+
compressionMethod: COMPRESSION_METHOD_STORE,
|
|
8581
|
+
compression: true,
|
|
8582
|
+
decompression: true,
|
|
8583
|
+
registered: false
|
|
8584
|
+
}, {
|
|
8585
|
+
compressionMethod: COMPRESSION_METHOD_DEFLATE,
|
|
8586
|
+
compression: formatSupported(CompressionStreamFallback, FORMAT_DEFLATE_RAW$1) ||
|
|
8587
|
+
formatSupported(CompressionStream, FORMAT_DEFLATE_RAW$1) || formatSupported(CompressionStream, FORMAT_GZIP$1),
|
|
8588
|
+
decompression: formatSupported(DecompressionStreamFallback, FORMAT_DEFLATE_RAW$1) ||
|
|
8589
|
+
formatSupported(DecompressionStream, FORMAT_DEFLATE_RAW$1) || formatSupported(DecompressionStream, FORMAT_GZIP$1),
|
|
8590
|
+
registered: false
|
|
8591
|
+
}, {
|
|
8592
|
+
compressionMethod: COMPRESSION_METHOD_DEFLATE_64,
|
|
8593
|
+
compression: false,
|
|
8594
|
+
decompression: formatSupported(DecompressionStreamFallback, FORMAT_DEFLATE64_RAW$1) ||
|
|
8595
|
+
formatSupported(DecompressionStream, FORMAT_DEFLATE64_RAW$1),
|
|
8596
|
+
registered: false
|
|
8597
|
+
}];
|
|
8598
|
+
for (const codec of getRegisteredCodecs()) {
|
|
8599
|
+
const codecStreams = getCodecStreams(codec.format);
|
|
8600
|
+
supportedMethods.push({
|
|
8601
|
+
compressionMethod: codec.compressionMethod,
|
|
8602
|
+
// deno-lint-ignore valid-typeof
|
|
8603
|
+
compression: codecStreams ? typeof codecStreams.CompressionStream == FUNCTION_TYPE : UNDEFINED_VALUE,
|
|
8604
|
+
// deno-lint-ignore valid-typeof
|
|
8605
|
+
decompression: codecStreams ? typeof codecStreams.DecompressionStream == FUNCTION_TYPE : UNDEFINED_VALUE,
|
|
8606
|
+
registered: true
|
|
8607
|
+
});
|
|
8608
|
+
}
|
|
8609
|
+
return supportedMethods;
|
|
8610
|
+
}
|
|
8611
|
+
|
|
8612
|
+
function formatSupported(StreamClass, format) {
|
|
8613
|
+
if (!StreamClass) {
|
|
8614
|
+
return false;
|
|
8615
|
+
}
|
|
8616
|
+
const { supportedFormats } = StreamClass;
|
|
8617
|
+
if (supportedFormats) {
|
|
8618
|
+
return supportedFormats.includes(format);
|
|
8619
|
+
}
|
|
8620
|
+
return supportsFormat(StreamClass, format);
|
|
8621
|
+
}
|
|
8622
|
+
|
|
8623
|
+
/*
|
|
8624
|
+
Copyright (c) 2025 Gildas Lormeau. All rights reserved.
|
|
8625
|
+
|
|
8626
|
+
Redistribution and use in source and binary forms, with or without
|
|
8627
|
+
modification, are permitted provided that the following conditions are met:
|
|
8628
|
+
|
|
8629
|
+
1. Redistributions of source code must retain the above copyright notice,
|
|
8630
|
+
this list of conditions and the following disclaimer.
|
|
8631
|
+
|
|
8632
|
+
2. Redistributions in binary form must reproduce the above copyright
|
|
8633
|
+
notice, this list of conditions and the following disclaimer in
|
|
8634
|
+
the documentation and/or other materials provided with the distribution.
|
|
8635
|
+
|
|
8636
|
+
3. The names of the authors may not be used to endorse or promote products
|
|
8637
|
+
derived from this software without specific prior written permission.
|
|
8638
|
+
|
|
8639
|
+
THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
|
|
8640
|
+
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
8641
|
+
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
|
|
8642
|
+
INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
8643
|
+
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
8644
|
+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
|
8645
|
+
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
8646
|
+
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
8647
|
+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
|
8648
|
+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
8649
|
+
*/
|
|
8650
|
+
|
|
8651
|
+
const VERSION = "2.8.61";
|
|
8652
|
+
|
|
8653
|
+
/*
|
|
8654
|
+
Copyright (c) 2025 Gildas Lormeau. All rights reserved.
|
|
8655
|
+
|
|
8656
|
+
Redistribution and use in source and binary forms, with or without
|
|
8657
|
+
modification, are permitted provided that the following conditions are met:
|
|
8658
|
+
|
|
8659
|
+
1. Redistributions of source code must retain the above copyright notice,
|
|
8660
|
+
this list of conditions and the following disclaimer.
|
|
8661
|
+
|
|
8662
|
+
2. Redistributions in binary form must reproduce the above copyright
|
|
8663
|
+
notice, this list of conditions and the following disclaimer in
|
|
8664
|
+
the documentation and/or other materials provided with the distribution.
|
|
8665
|
+
|
|
8666
|
+
3. The names of the authors may not be used to endorse or promote products
|
|
8667
|
+
derived from this software without specific prior written permission.
|
|
8668
|
+
|
|
8669
|
+
THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
|
|
8670
|
+
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
8671
|
+
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT,
|
|
8672
|
+
INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
8673
|
+
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
8674
|
+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
|
8675
|
+
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
8676
|
+
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
8677
|
+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
|
8678
|
+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
8679
|
+
*/
|
|
8680
|
+
|
|
8681
|
+
|
|
8565
8682
|
const DEFAULT_THRESHOLD$2 = 1024 * 1024;
|
|
8566
8683
|
const DEFAULT_DIRECTORY_NAME$1 = ".zip.js-temp";
|
|
8567
8684
|
|
|
@@ -9010,6 +9127,11 @@ try {
|
|
|
9010
9127
|
|
|
9011
9128
|
/* global TransformStream */
|
|
9012
9129
|
|
|
9130
|
+
const FORMAT_DEFLATE = "deflate";
|
|
9131
|
+
const FORMAT_DEFLATE_RAW = "deflate-raw";
|
|
9132
|
+
const FORMAT_DEFLATE64_RAW = "deflate64-raw";
|
|
9133
|
+
const FORMAT_GZIP = "gzip";
|
|
9134
|
+
|
|
9013
9135
|
let wasm, malloc, free, memory, initError;
|
|
9014
9136
|
|
|
9015
9137
|
function setWasmExports(wasmAPI) {
|
|
@@ -9055,15 +9177,15 @@ function _make(isCompress, type, options = {}) {
|
|
|
9055
9177
|
this._last_consumed = wasm.deflate_last_consumed;
|
|
9056
9178
|
this._end = wasm.deflate_end;
|
|
9057
9179
|
this.streamHandle = wasm.deflate_new();
|
|
9058
|
-
if (type ===
|
|
9180
|
+
if (type === FORMAT_GZIP) {
|
|
9059
9181
|
result = wasm.deflate_init_gzip(this.streamHandle, level);
|
|
9060
|
-
} else if (type ===
|
|
9182
|
+
} else if (type === FORMAT_DEFLATE_RAW) {
|
|
9061
9183
|
result = wasm.deflate_init_raw(this.streamHandle, level);
|
|
9062
9184
|
} else {
|
|
9063
9185
|
result = wasm.deflate_init(this.streamHandle, level);
|
|
9064
9186
|
}
|
|
9065
9187
|
} else {
|
|
9066
|
-
if (type ===
|
|
9188
|
+
if (type === FORMAT_DEFLATE64_RAW) {
|
|
9067
9189
|
this._process = wasm.inflate9_process;
|
|
9068
9190
|
this._last_consumed = wasm.inflate9_last_consumed;
|
|
9069
9191
|
this._end = wasm.inflate9_end;
|
|
@@ -9074,9 +9196,9 @@ function _make(isCompress, type, options = {}) {
|
|
|
9074
9196
|
this._last_consumed = wasm.inflate_last_consumed;
|
|
9075
9197
|
this._end = wasm.inflate_end;
|
|
9076
9198
|
this.streamHandle = wasm.inflate_new();
|
|
9077
|
-
if (type ===
|
|
9199
|
+
if (type === FORMAT_DEFLATE_RAW) {
|
|
9078
9200
|
result = wasm.inflate_init_raw(this.streamHandle);
|
|
9079
|
-
} else if (type ===
|
|
9201
|
+
} else if (type === FORMAT_GZIP) {
|
|
9080
9202
|
result = wasm.inflate_init_gzip(this.streamHandle);
|
|
9081
9203
|
} else {
|
|
9082
9204
|
result = wasm.inflate_init(this.streamHandle);
|
|
@@ -9197,12 +9319,12 @@ function _make(isCompress, type, options = {}) {
|
|
|
9197
9319
|
}
|
|
9198
9320
|
|
|
9199
9321
|
class CompressionStreamZlib {
|
|
9200
|
-
constructor(type =
|
|
9322
|
+
constructor(type = FORMAT_DEFLATE, options) {
|
|
9201
9323
|
return _make(true, type, options);
|
|
9202
9324
|
}
|
|
9203
9325
|
}
|
|
9204
9326
|
class DecompressionStreamZlib {
|
|
9205
|
-
constructor(type =
|
|
9327
|
+
constructor(type = FORMAT_DEFLATE, options) {
|
|
9206
9328
|
return _make(false, type, options);
|
|
9207
9329
|
}
|
|
9208
9330
|
}
|
|
@@ -9211,6 +9333,11 @@ class DecompressionStreamZlib {
|
|
|
9211
9333
|
// module fails to load, rather than discarding a self-contained codec supplied through config.
|
|
9212
9334
|
CompressionStreamZlib.requiresModule = true;
|
|
9213
9335
|
DecompressionStreamZlib.requiresModule = true;
|
|
9336
|
+
// Constructing these classes before the module is loaded throws, so capability probes cannot rely
|
|
9337
|
+
// on trying the constructor; the formats are declared instead, next to the branches implementing
|
|
9338
|
+
// them in _make().
|
|
9339
|
+
CompressionStreamZlib.supportedFormats = [FORMAT_DEFLATE, FORMAT_DEFLATE_RAW, FORMAT_GZIP];
|
|
9340
|
+
DecompressionStreamZlib.supportedFormats = [FORMAT_DEFLATE, FORMAT_DEFLATE_RAW, FORMAT_GZIP, FORMAT_DEFLATE64_RAW];
|
|
9214
9341
|
|
|
9215
9342
|
/*
|
|
9216
9343
|
Copyright (c) 2025 Gildas Lormeau. All rights reserved.
|
|
@@ -9845,12 +9972,13 @@ class ZipDirectoryEntry extends ZipEntry {
|
|
|
9845
9972
|
if (options.bufferedWrite === UNDEFINED_VALUE) {
|
|
9846
9973
|
options.bufferedWrite = true;
|
|
9847
9974
|
}
|
|
9848
|
-
const
|
|
9849
|
-
(options.keepOrder !== false && zipEntry.children.every(child => !child.children.length));
|
|
9850
|
-
return getEntriesSize(options, zipEntry.getChildren({ recursive: true }).filter(child => !isImplicitDirectory(child)).map(child => {
|
|
9975
|
+
const entries = zipEntry.getChildren({ recursive: true }).filter(child => !isImplicitDirectory(child)).map(child => {
|
|
9851
9976
|
const { name, entryOptions } = getChildEntryOptions(child, zipEntry, options);
|
|
9852
9977
|
return { name, size: child.directory ? 0 : getDeterminedSize(child, isPassThrough(child, options)), options: entryOptions };
|
|
9853
|
-
})
|
|
9978
|
+
});
|
|
9979
|
+
const writeOrderGuaranteed = !options.bufferedWrite ||
|
|
9980
|
+
(entries.every(entry => entry.options.keepOrder !== false) && zipEntry.children.every(child => !child.children.length));
|
|
9981
|
+
return getEntriesSize(options, entries, writeOrderGuaranteed, options.globalComment);
|
|
9854
9982
|
}
|
|
9855
9983
|
|
|
9856
9984
|
getChildByName(name) {
|
|
@@ -10736,4 +10864,4 @@ function decodeMimeTypes(data) {
|
|
|
10736
10864
|
return mimeTypes;
|
|
10737
10865
|
}
|
|
10738
10866
|
|
|
10739
|
-
export { BlobReader, BlobWriter, Data64URIReader, Data64URIWriter, ERR_ABORTED, ERR_AMBIGUOUS_ARCHIVE, ERR_BAD_FORMAT, ERR_CENTRAL_DIRECTORY_NOT_FOUND, ERR_DUPLICATED_NAME, ERR_ENCRYPTED, ERR_ENCRYPTED_CENTRAL_DIRECTORY, ERR_ENTRY_DATA_OUT_OF_BOUNDS, ERR_ENTRY_EXISTS, ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND, ERR_EOCDR_NOT_FOUND, ERR_EXTRAFIELD_ZIP64_NOT_FOUND, ERR_HTTP_RANGE, ERR_HTTP_RESOURCE_CHANGED, ERR_INVALID_AUTHENTICATION_CODE, ERR_INVALID_CODEC_DEFINITION, ERR_INVALID_CODEC_MODULE, ERR_INVALID_COMMENT, ERR_INVALID_COMMENT_TYPE, ERR_INVALID_COMPRESSED_DATA, ERR_INVALID_CRC32, ERR_INVALID_DATE, ERR_INVALID_ENCRYPTION_STRENGTH, ERR_INVALID_ENTRY_COMMENT, ERR_INVALID_ENTRY_COMMENT_TYPE, ERR_INVALID_ENTRY_NAME, ERR_INVALID_EXTRAFIELD, ERR_INVALID_EXTRAFIELD_DATA, ERR_INVALID_EXTRAFIELD_DATA_TYPE, ERR_INVALID_EXTRAFIELD_TYPE, ERR_INVALID_FILENAME_VALIDATION, ERR_INVALID_FUNCTION_OPTION, ERR_INVALID_GID, ERR_INVALID_LEVEL, ERR_INVALID_MAX_APPENDED_DATA_SIZE, ERR_INVALID_MAX_WORKERS, ERR_INVALID_MSDOS_ATTRIBUTES, ERR_INVALID_MSDOS_DATA, ERR_INVALID_PASSWORD, ERR_INVALID_PASSWORD_TYPE, ERR_INVALID_PASS_THROUGH, ERR_INVALID_READER_OPTIONS, ERR_INVALID_SIGNAL, ERR_INVALID_SIGNATURE, ERR_INVALID_SIGNATURE_DATA, ERR_INVALID_STRICTNESS, ERR_INVALID_UID, ERR_INVALID_UNCOMPRESSED_SIZE, ERR_INVALID_UNIX_EXTRA_FIELD_TYPE, ERR_INVALID_UNIX_ID_SIZE, ERR_INVALID_UNIX_MODE, ERR_INVALID_VERSION, ERR_ITERATOR_COMPLETED_TOO_SOON, ERR_LOCAL_FILE_HEADER_NOT_FOUND, ERR_OVERLAPPING_ENTRY, ERR_READABLE_CONSUMED, ERR_RESERVED_COMPRESSION_METHOD, ERR_SPLIT_ZIP_FILE, ERR_UNDEFINED_COMPRESSION_METHOD, ERR_UNDEFINED_READER, ERR_UNDEFINED_UNCOMPRESSED_SIZE, ERR_UNDETERMINED_SIZE, ERR_UNSAFE_FILENAME, ERR_UNSUPPORTED_COMPRESSION$1 as ERR_UNSUPPORTED_COMPRESSION, ERR_UNSUPPORTED_CONTEXT, ERR_UNSUPPORTED_CRYPTO_API, ERR_UNSUPPORTED_ENCRYPTION, ERR_UNSUPPORTED_ENCRYPTION_PASS_THROUGH, ERR_UNSUPPORTED_ENCRYPTION_USDZ, ERR_UNSUPPORTED_FORMAT, ERR_UNSUPPORTED_UINT64, ERR_WORKER_STARTUP_TIMEOUT, ERR_WRITER_NOT_INITIALIZED, ERR_ZIP_CRYPTO_LAST_MOD_DATE, ERR_ZIP_NOT_EMPTY, HttpRangeReader, HttpReader, Reader, SplitDataReader, SplitDataWriter, TextReader, TextWriter, Uint8ArrayReader, Uint8ArrayWriter, WARNING_APPENDED_DATA, WARNING_COMPRESSED_PATCHED_DATA, WARNING_DUPLICATE_FILENAME, WARNING_MALFORMED_EXTRA_FIELD, WARNING_MISMATCHED_LOCAL_FILE_HEADER_BIT_FLAG, WARNING_MISMATCHED_LOCAL_FILE_HEADER_COMPRESSION_METHOD, WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES, WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY, WARNING_PREPENDED_DATA, WARNING_TRAILING_CENTRAL_DIRECTORY_DATA, WARNING_UNKNOWN_VERSION, WARNING_UNKNOWN_ZIP64_EXTENSIBLE_DATA, WARNING_UNSORTED_CENTRAL_DIRECTORY, WARNING_WRAPPED_ENTRIES_COUNT, Writer, ZipDirectoryEntry, ZipEntry, ZipFS, ZipFileEntry, ZipReader, ZipReaderStream, ZipWriter, ZipWriterStream, configure, createBlobTempStream, createOPFSTempStream, createSyncAccessHandleTempStream, fs, getMimeType, isZipFile, registerCodec, resetConfiguration, terminateWorkersAndModule as terminateWorkers, unregisterCodec };
|
|
10867
|
+
export { BlobReader, BlobWriter, Data64URIReader, Data64URIWriter, ERR_ABORTED, ERR_AMBIGUOUS_ARCHIVE, ERR_BAD_FORMAT, ERR_CENTRAL_DIRECTORY_NOT_FOUND, ERR_DUPLICATED_NAME, ERR_ENCRYPTED, ERR_ENCRYPTED_CENTRAL_DIRECTORY, ERR_ENTRY_DATA_OUT_OF_BOUNDS, ERR_ENTRY_EXISTS, ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND, ERR_EOCDR_NOT_FOUND, ERR_EXTRAFIELD_ZIP64_NOT_FOUND, ERR_HTTP_RANGE, ERR_HTTP_RESOURCE_CHANGED, ERR_INVALID_AUTHENTICATION_CODE, ERR_INVALID_CODEC_DEFINITION, ERR_INVALID_CODEC_MODULE, ERR_INVALID_COMMENT, ERR_INVALID_COMMENT_TYPE, ERR_INVALID_COMPRESSED_DATA, ERR_INVALID_CRC32, ERR_INVALID_DATE, ERR_INVALID_ENCRYPTION_STRENGTH, ERR_INVALID_ENTRY_COMMENT, ERR_INVALID_ENTRY_COMMENT_TYPE, ERR_INVALID_ENTRY_NAME, ERR_INVALID_EXTRAFIELD, ERR_INVALID_EXTRAFIELD_DATA, ERR_INVALID_EXTRAFIELD_DATA_TYPE, ERR_INVALID_EXTRAFIELD_TYPE, ERR_INVALID_FILENAME_VALIDATION, ERR_INVALID_FUNCTION_OPTION, ERR_INVALID_GID, ERR_INVALID_LEVEL, ERR_INVALID_MAX_APPENDED_DATA_SIZE, ERR_INVALID_MAX_WORKERS, ERR_INVALID_MSDOS_ATTRIBUTES, ERR_INVALID_MSDOS_DATA, ERR_INVALID_PASSWORD, ERR_INVALID_PASSWORD_TYPE, ERR_INVALID_PASS_THROUGH, ERR_INVALID_READER_OPTIONS, ERR_INVALID_SIGNAL, ERR_INVALID_SIGNATURE, ERR_INVALID_SIGNATURE_DATA, ERR_INVALID_STRICTNESS, ERR_INVALID_UID, ERR_INVALID_UNCOMPRESSED_SIZE, ERR_INVALID_UNIX_EXTRA_FIELD_TYPE, ERR_INVALID_UNIX_ID_SIZE, ERR_INVALID_UNIX_MODE, ERR_INVALID_VERSION, ERR_ITERATOR_COMPLETED_TOO_SOON, ERR_LOCAL_FILE_HEADER_NOT_FOUND, ERR_OVERLAPPING_ENTRY, ERR_READABLE_CONSUMED, ERR_RESERVED_COMPRESSION_METHOD, ERR_SPLIT_ZIP_FILE, ERR_UNDEFINED_COMPRESSION_METHOD, ERR_UNDEFINED_READER, ERR_UNDEFINED_UNCOMPRESSED_SIZE, ERR_UNDETERMINED_SIZE, ERR_UNSAFE_FILENAME, ERR_UNSUPPORTED_COMPRESSION$1 as ERR_UNSUPPORTED_COMPRESSION, ERR_UNSUPPORTED_CONTEXT, ERR_UNSUPPORTED_CRYPTO_API, ERR_UNSUPPORTED_ENCRYPTION, ERR_UNSUPPORTED_ENCRYPTION_PASS_THROUGH, ERR_UNSUPPORTED_ENCRYPTION_USDZ, ERR_UNSUPPORTED_FORMAT, ERR_UNSUPPORTED_UINT64, ERR_WORKER_STARTUP_TIMEOUT, ERR_WRITER_NOT_INITIALIZED, ERR_ZIP_CRYPTO_LAST_MOD_DATE, ERR_ZIP_NOT_EMPTY, HttpRangeReader, HttpReader, Reader, SplitDataReader, SplitDataWriter, TextReader, TextWriter, Uint8ArrayReader, Uint8ArrayWriter, VERSION, WARNING_APPENDED_DATA, WARNING_COMPRESSED_PATCHED_DATA, WARNING_DUPLICATE_FILENAME, WARNING_MALFORMED_EXTRA_FIELD, WARNING_MISMATCHED_LOCAL_FILE_HEADER_BIT_FLAG, WARNING_MISMATCHED_LOCAL_FILE_HEADER_COMPRESSION_METHOD, WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES, WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY, WARNING_PREPENDED_DATA, WARNING_TRAILING_CENTRAL_DIRECTORY_DATA, WARNING_UNKNOWN_VERSION, WARNING_UNKNOWN_ZIP64_EXTENSIBLE_DATA, WARNING_UNSORTED_CENTRAL_DIRECTORY, WARNING_WRAPPED_ENTRIES_COUNT, Writer, ZipDirectoryEntry, ZipEntry, ZipFS, ZipFileEntry, ZipReader, ZipReaderStream, ZipWriter, ZipWriterStream, configure, createBlobTempStream, createOPFSTempStream, createSyncAccessHandleTempStream, fs, getMimeType, getRegisteredCodecs, getSupportedCompressionMethods, isZipFile, registerCodec, resetConfiguration, terminateWorkersAndModule as terminateWorkers, unregisterCodec };
|