@zip.js/zip.js 2.9.0 → 2.11.0
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 +40 -0
- package/deno.json +1 -1
- package/dist/zip-core-external.js +17 -46
- package/dist/zip-core-external.min.js +1 -1
- package/dist/zip-core.js +16 -46
- package/dist/zip-core.min.js +1 -1
- package/dist/zip-fs-core-external.js +170 -88
- package/dist/zip-fs-core-external.min.js +1 -1
- package/dist/zip-fs-core.js +171 -88
- package/dist/zip-fs-core.min.js +1 -1
- package/dist/zip-fs-external.js +170 -88
- package/dist/zip-fs-external.min.js +1 -1
- package/dist/zip-fs-native.js +174 -91
- package/dist/zip-fs-native.min.js +1 -1
- package/dist/zip-fs.js +175 -92
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-legacy.js +18 -48
- package/dist/zip-legacy.min.js +1 -1
- package/dist/zip-module.wasm +0 -0
- package/dist/zip-native.js +19 -49
- 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 +20 -50
- package/dist/zip.min.js +1 -1
- package/index-native.cjs +174 -91
- package/index-native.min.js +1 -1
- package/index.cjs +175 -92
- package/index.d.cts +92 -44
- package/index.d.ts +92 -44
- package/index.min.js +1 -1
- package/lib/core/codec-pool.js +0 -2
- package/lib/core/codec-registry.js +2 -0
- package/lib/core/streams/codec-stream.js +0 -2
- package/lib/core/streams/common-crypto.js +1 -3
- package/lib/core/streams/zip-entry-stream.js +2 -5
- package/lib/core/streams/zlib-js/zlib-streams.min.js +1 -1
- package/lib/core/streams/zlib-wasm/zlib-streams.js +1 -1
- package/lib/core/streams/zlib-wasm/zlib-streams.wasm +0 -0
- package/lib/core/util/decode-cp437.js +4 -11
- 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-entry.js +0 -6
- package/lib/core/zip-fs.js +155 -44
- package/lib/core/zip-reader.js +1 -6
- package/lib/core/zip-writer.js +4 -19
- package/lib/core/zlib-streams-inline.js +1 -1
- package/lib/zip-core-reader.js +0 -1
- package/package.json +1 -1
package/dist/zip-core.js
CHANGED
|
@@ -1461,8 +1461,7 @@
|
|
|
1461
1461
|
const GET_RANDOM_VALUES_SUPPORTED = typeof crypto != UNDEFINED_TYPE && typeof crypto.getRandomValues == FUNCTION_TYPE;
|
|
1462
1462
|
|
|
1463
1463
|
const ERR_INVALID_PASSWORD = "Invalid password";
|
|
1464
|
-
const
|
|
1465
|
-
const ERR_INVALID_AUTHENTICATION_CODE = ERR_INVALID_SIGNATURE;
|
|
1464
|
+
const ERR_INVALID_AUTHENTICATION_CODE = "Invalid authentication code";
|
|
1466
1465
|
const ERR_ABORT_CHECK_PASSWORD = "zipjs-abort-check-password";
|
|
1467
1466
|
const ERR_UNSUPPORTED_CRYPTO_API = "Crypto API not supported";
|
|
1468
1467
|
|
|
@@ -2036,6 +2035,7 @@
|
|
|
2036
2035
|
const ERR_INVALID_CODEC_DEFINITION = "Invalid codec definition";
|
|
2037
2036
|
const ERR_RESERVED_COMPRESSION_METHOD = "Reserved compression method";
|
|
2038
2037
|
const ERR_INVALID_CODEC_MODULE = "Invalid codec module";
|
|
2038
|
+
const ERR_UNSUPPORTED_COMPRESSION = "Compression method not supported";
|
|
2039
2039
|
|
|
2040
2040
|
const RESERVED_COMPRESSION_METHODS = [
|
|
2041
2041
|
COMPRESSION_METHOD_STORE,
|
|
@@ -2135,8 +2135,7 @@
|
|
|
2135
2135
|
|
|
2136
2136
|
const ERR_INVALID_UNCOMPRESSED_SIZE = "Invalid uncompressed size";
|
|
2137
2137
|
const ERR_INVALID_COMPRESSED_DATA = "Invalid compressed data";
|
|
2138
|
-
const ERR_INVALID_CRC32 =
|
|
2139
|
-
const ERR_UNSUPPORTED_COMPRESSION$2 = "Compression method not supported";
|
|
2138
|
+
const ERR_INVALID_CRC32 = "Invalid CRC32";
|
|
2140
2139
|
const FORMAT_DEFLATE_RAW = "deflate-raw";
|
|
2141
2140
|
const FORMAT_DEFLATE64_RAW = "deflate64-raw";
|
|
2142
2141
|
const FORMAT_GZIP = "gzip";
|
|
@@ -2404,7 +2403,7 @@
|
|
|
2404
2403
|
|
|
2405
2404
|
function createCodecStream(CodecStreamClass, format, options) {
|
|
2406
2405
|
if (!CodecStreamClass) {
|
|
2407
|
-
throw new Error(ERR_UNSUPPORTED_COMPRESSION
|
|
2406
|
+
throw new Error(ERR_UNSUPPORTED_COMPRESSION);
|
|
2408
2407
|
}
|
|
2409
2408
|
return new CodecStreamClass(format, options);
|
|
2410
2409
|
}
|
|
@@ -3475,21 +3474,14 @@
|
|
|
3475
3474
|
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
3476
3475
|
*/
|
|
3477
3476
|
|
|
3478
|
-
/* global TextDecoder */
|
|
3479
|
-
|
|
3480
3477
|
const CP437 = "\0\u263A\u263B\u2665\u2666\u2663\u2660\u2022\u25D8\u25CB\u25D9\u2642\u2640\u266A\u266B\u263C\u25BA\u25C4\u2195\u203C\u00B6\u00A7\u25AC\u21A8\u2191\u2193\u2192\u2190\u221F\u2194\u25B2\u25BC !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\u00C7\u00FC\u00E9\u00E2\u00E4\u00E0\u00E5\u00E7\u00EA\u00EB\u00E8\u00EF\u00EE\u00EC\u00C4\u00C5\u00C9\u00E6\u00C6\u00F4\u00F6\u00F2\u00FB\u00F9\u00FF\u00D6\u00DC\u00A2\u00A3\u00A5\u20A7\u0192\u00E1\u00ED\u00F3\u00FA\u00F1\u00D1\u00AA\u00BA\u00BF\u2310\u00AC\u00BD\u00BC\u00A1\u00AB\u00BB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\u00DF\u0393\u03C0\u03A3\u03C3\u00B5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\u00B1\u2265\u2264\u2320\u2321\u00F7\u2248\u00B0\u2219\u00B7\u221A\u207F\u00B2\u25A0\u00A0".split("");
|
|
3481
|
-
const VALID_CP437 = CP437.length == 256;
|
|
3482
3478
|
|
|
3483
3479
|
function decodeCP437(stringValue) {
|
|
3484
|
-
|
|
3485
|
-
|
|
3486
|
-
|
|
3487
|
-
result += CP437[stringValue[indexCharacter]];
|
|
3488
|
-
}
|
|
3489
|
-
return result;
|
|
3490
|
-
} else {
|
|
3491
|
-
return new TextDecoder().decode(stringValue);
|
|
3480
|
+
let result = "";
|
|
3481
|
+
for (let indexCharacter = 0; indexCharacter < stringValue.length; indexCharacter++) {
|
|
3482
|
+
result += CP437[stringValue[indexCharacter]];
|
|
3492
3483
|
}
|
|
3484
|
+
return result;
|
|
3493
3485
|
}
|
|
3494
3486
|
|
|
3495
3487
|
/*
|
|
@@ -4555,8 +4547,6 @@
|
|
|
4555
4547
|
const PROPERTY_NAME_RAW_CREATION_DATE = "rawCreationDate";
|
|
4556
4548
|
const PROPERTY_NAME_INTERNAL_FILE_ATTRIBUTES = "internalFileAttributes";
|
|
4557
4549
|
const PROPERTY_NAME_EXTERNAL_FILE_ATTRIBUTES = "externalFileAttributes";
|
|
4558
|
-
const PROPERTY_NAME_DEPRECATED_INTERNAL_FILE_ATTRIBUTES = "internalFileAttribute";
|
|
4559
|
-
const PROPERTY_NAME_DEPRECATED_EXTERNAL_FILE_ATTRIBUTES = "externalFileAttribute";
|
|
4560
4550
|
const PROPERTY_NAME_MSDOS_ATTRIBUTES_RAW = "msdosAttributesRaw";
|
|
4561
4551
|
const PROPERTY_NAME_MSDOS_ATTRIBUTES = "msdosAttributes";
|
|
4562
4552
|
const PROPERTY_NAME_MS_DOS_COMPATIBLE = "msDosCompatible";
|
|
@@ -4615,8 +4605,6 @@
|
|
|
4615
4605
|
PROPERTY_NAME_DISK_NUMBER_START,
|
|
4616
4606
|
PROPERTY_NAME_INTERNAL_FILE_ATTRIBUTES,
|
|
4617
4607
|
PROPERTY_NAME_EXTERNAL_FILE_ATTRIBUTES,
|
|
4618
|
-
PROPERTY_NAME_DEPRECATED_INTERNAL_FILE_ATTRIBUTES,
|
|
4619
|
-
PROPERTY_NAME_DEPRECATED_EXTERNAL_FILE_ATTRIBUTES,
|
|
4620
4608
|
PROPERTY_NAME_MSDOS_ATTRIBUTES_RAW,
|
|
4621
4609
|
PROPERTY_NAME_MSDOS_ATTRIBUTES,
|
|
4622
4610
|
PROPERTY_NAME_MS_DOS_COMPATIBLE,
|
|
@@ -4704,7 +4692,6 @@
|
|
|
4704
4692
|
const ERR_EXTRAFIELD_ZIP64_NOT_FOUND = "Zip64 extra field not found";
|
|
4705
4693
|
const ERR_ENCRYPTED = "File contains encrypted entry";
|
|
4706
4694
|
const ERR_UNSUPPORTED_ENCRYPTION = "Encryption method not supported";
|
|
4707
|
-
const ERR_UNSUPPORTED_COMPRESSION$1 = "Compression method not supported";
|
|
4708
4695
|
const ERR_SPLIT_ZIP_FILE = "Split zip file";
|
|
4709
4696
|
const ERR_OVERLAPPING_ENTRY = "Overlapping entry found";
|
|
4710
4697
|
const ERR_ENTRY_DATA_OUT_OF_BOUNDS = "Entry data out of bounds";
|
|
@@ -5085,8 +5072,6 @@
|
|
|
5085
5072
|
sticky,
|
|
5086
5073
|
symlink,
|
|
5087
5074
|
unixExternalUpper,
|
|
5088
|
-
internalFileAttribute: fileEntry.internalFileAttributes,
|
|
5089
|
-
externalFileAttribute: fileEntry.externalFileAttributes,
|
|
5090
5075
|
executable,
|
|
5091
5076
|
directory: modeIsDir || upperIsDir || (msDosCompatible && msdosAttributes.directory) || fileEntry.filename.endsWith(DIRECTORY_SIGNATURE),
|
|
5092
5077
|
zipCrypto: fileEntry.encrypted && !fileEntry.extraFieldAES
|
|
@@ -5285,7 +5270,7 @@
|
|
|
5285
5270
|
rawPassword = rawPassword && rawPassword.length && rawPassword;
|
|
5286
5271
|
if (extraFieldAES) {
|
|
5287
5272
|
if (extraFieldAES.originalCompressionMethod != COMPRESSION_METHOD_AES) {
|
|
5288
|
-
throw new Error(ERR_UNSUPPORTED_COMPRESSION
|
|
5273
|
+
throw new Error(ERR_UNSUPPORTED_COMPRESSION);
|
|
5289
5274
|
}
|
|
5290
5275
|
}
|
|
5291
5276
|
if (dataArray.length < HEADER_SIZE || getUint32$1(dataView, 0) != LOCAL_FILE_HEADER_SIGNATURE) {
|
|
@@ -5341,7 +5326,7 @@
|
|
|
5341
5326
|
}
|
|
5342
5327
|
const registeredCodec = passThrough ? UNDEFINED_VALUE : getRegisteredCodec(compressionMethod);
|
|
5343
5328
|
if (compressionMethod != COMPRESSION_METHOD_STORE && compressionMethod != COMPRESSION_METHOD_DEFLATE && compressionMethod != COMPRESSION_METHOD_DEFLATE_64 && !registeredCodec && !passThrough) {
|
|
5344
|
-
throw new Error(ERR_UNSUPPORTED_COMPRESSION
|
|
5329
|
+
throw new Error(ERR_UNSUPPORTED_COMPRESSION);
|
|
5345
5330
|
}
|
|
5346
5331
|
if (encrypted) {
|
|
5347
5332
|
if (!zipCrypto && (extraFieldAES.strength < 1 || extraFieldAES.strength > 3)) {
|
|
@@ -6193,14 +6178,13 @@
|
|
|
6193
6178
|
ERR_INVALID_FILENAME_VALIDATION: ERR_INVALID_FILENAME_VALIDATION,
|
|
6194
6179
|
ERR_INVALID_MAX_APPENDED_DATA_SIZE: ERR_INVALID_MAX_APPENDED_DATA_SIZE,
|
|
6195
6180
|
ERR_INVALID_PASSWORD: ERR_INVALID_PASSWORD,
|
|
6196
|
-
ERR_INVALID_SIGNATURE: ERR_INVALID_SIGNATURE,
|
|
6197
6181
|
ERR_INVALID_STRICTNESS: ERR_INVALID_STRICTNESS,
|
|
6198
6182
|
ERR_INVALID_UNCOMPRESSED_SIZE: ERR_INVALID_UNCOMPRESSED_SIZE,
|
|
6199
6183
|
ERR_LOCAL_FILE_HEADER_NOT_FOUND: ERR_LOCAL_FILE_HEADER_NOT_FOUND,
|
|
6200
6184
|
ERR_OVERLAPPING_ENTRY: ERR_OVERLAPPING_ENTRY,
|
|
6201
6185
|
ERR_SPLIT_ZIP_FILE: ERR_SPLIT_ZIP_FILE,
|
|
6202
6186
|
ERR_UNSAFE_FILENAME: ERR_UNSAFE_FILENAME,
|
|
6203
|
-
ERR_UNSUPPORTED_COMPRESSION: ERR_UNSUPPORTED_COMPRESSION
|
|
6187
|
+
ERR_UNSUPPORTED_COMPRESSION: ERR_UNSUPPORTED_COMPRESSION,
|
|
6204
6188
|
ERR_UNSUPPORTED_ENCRYPTION: ERR_UNSUPPORTED_ENCRYPTION,
|
|
6205
6189
|
ERR_UNSUPPORTED_UINT64: ERR_UNSUPPORTED_UINT64,
|
|
6206
6190
|
ERR_WORKER_STARTUP_TIMEOUT: ERR_WORKER_STARTUP_TIMEOUT,
|
|
@@ -6268,7 +6252,6 @@
|
|
|
6268
6252
|
const ERR_INVALID_EXTRAFIELD_TYPE = "Invalid extra field type (must be integer 0..65535)";
|
|
6269
6253
|
const ERR_INVALID_EXTRAFIELD_DATA_TYPE = "Invalid extra field data (must be a Uint8Array)";
|
|
6270
6254
|
const ERR_INVALID_EXTRAFIELD_DATA = "Extra field data exceeds 64KB";
|
|
6271
|
-
const ERR_UNSUPPORTED_COMPRESSION = "Compression method not supported";
|
|
6272
6255
|
const MIN_UNIX_TIME = -2147483648;
|
|
6273
6256
|
const MAX_UNIX_TIME = 2147483647;
|
|
6274
6257
|
const MIN_NTFS_TIME = BigInt(0);
|
|
@@ -6708,9 +6691,7 @@
|
|
|
6708
6691
|
Object.assign(fileEntry, {
|
|
6709
6692
|
name,
|
|
6710
6693
|
comment,
|
|
6711
|
-
extraField
|
|
6712
|
-
[PROPERTY_NAME_DEPRECATED_INTERNAL_FILE_ATTRIBUTES]: fileEntry.internalFileAttributes,
|
|
6713
|
-
[PROPERTY_NAME_DEPRECATED_EXTERNAL_FILE_ATTRIBUTES]: fileEntry.externalFileAttributes
|
|
6694
|
+
extraField
|
|
6714
6695
|
});
|
|
6715
6696
|
return new Entry(fileEntry);
|
|
6716
6697
|
}
|
|
@@ -6757,7 +6738,7 @@
|
|
|
6757
6738
|
if (versionMadeBy > MAX_16_BITS) {
|
|
6758
6739
|
throw new Error(ERR_INVALID_VERSION);
|
|
6759
6740
|
}
|
|
6760
|
-
let externalFileAttributes =
|
|
6741
|
+
let externalFileAttributes = getOptionValue(zipWriter, options, PROPERTY_NAME_EXTERNAL_FILE_ATTRIBUTES);
|
|
6761
6742
|
const externalFileAttributesProvided = externalFileAttributes !== UNDEFINED_VALUE;
|
|
6762
6743
|
if (!externalFileAttributesProvided) {
|
|
6763
6744
|
externalFileAttributes = 0;
|
|
@@ -6867,7 +6848,7 @@
|
|
|
6867
6848
|
const rawLastModDate = getOptionValue(zipWriter, options, PROPERTY_NAME_RAW_LAST_MODIFICATION_DATE);
|
|
6868
6849
|
const lastAccessDate = getDateOptionValue(zipWriter, options, PROPERTY_NAME_LAST_ACCESS_DATE);
|
|
6869
6850
|
const creationDate = getDateOptionValue(zipWriter, options, PROPERTY_NAME_CREATION_DATE);
|
|
6870
|
-
const internalFileAttributes =
|
|
6851
|
+
const internalFileAttributes = getOptionValue(zipWriter, options, PROPERTY_NAME_INTERNAL_FILE_ATTRIBUTES, 0);
|
|
6871
6852
|
const passThrough = getOptionValue(zipWriter, options, OPTION_PASS_THROUGH);
|
|
6872
6853
|
const password = getOptionValue(zipWriter, options, OPTION_PASSWORD);
|
|
6873
6854
|
const rawPassword = getOptionValue(zipWriter, options, OPTION_RAW_PASSWORD);
|
|
@@ -8261,16 +8242,6 @@
|
|
|
8261
8242
|
return checkFunctionOption(getOptionValue(zipWriter, options, name));
|
|
8262
8243
|
}
|
|
8263
8244
|
|
|
8264
|
-
function getAliasedOptionValue(zipWriter, options, name, deprecatedName, defaultValue) {
|
|
8265
|
-
const value = getAliasedValue(options, name, deprecatedName);
|
|
8266
|
-
const result = value === UNDEFINED_VALUE ? getAliasedValue(zipWriter.options, name, deprecatedName) : value;
|
|
8267
|
-
return result === UNDEFINED_VALUE ? defaultValue : result;
|
|
8268
|
-
}
|
|
8269
|
-
|
|
8270
|
-
function getAliasedValue(options, name, deprecatedName) {
|
|
8271
|
-
return options[name] === UNDEFINED_VALUE ? options[deprecatedName] : options[name];
|
|
8272
|
-
}
|
|
8273
|
-
|
|
8274
8245
|
function getNumberOptionValue(zipWriter, options, name, defaultValue) {
|
|
8275
8246
|
return toNumber(getOptionValue(zipWriter, options, name, defaultValue));
|
|
8276
8247
|
}
|
|
@@ -8529,7 +8500,7 @@
|
|
|
8529
8500
|
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
8530
8501
|
*/
|
|
8531
8502
|
|
|
8532
|
-
const VERSION = "2.
|
|
8503
|
+
const VERSION = "2.11.0";
|
|
8533
8504
|
|
|
8534
8505
|
/*
|
|
8535
8506
|
Copyright (c) 2025 Gildas Lormeau. All rights reserved.
|
|
@@ -9021,7 +8992,6 @@
|
|
|
9021
8992
|
exports.ERR_INVALID_PASSWORD = ERR_INVALID_PASSWORD;
|
|
9022
8993
|
exports.ERR_INVALID_PASSWORD_TYPE = ERR_INVALID_PASSWORD_TYPE;
|
|
9023
8994
|
exports.ERR_INVALID_SIGNAL = ERR_INVALID_SIGNAL;
|
|
9024
|
-
exports.ERR_INVALID_SIGNATURE = ERR_INVALID_SIGNATURE;
|
|
9025
8995
|
exports.ERR_INVALID_SIGNATURE_DATA = ERR_INVALID_SIGNATURE_DATA;
|
|
9026
8996
|
exports.ERR_INVALID_STRICTNESS = ERR_INVALID_STRICTNESS;
|
|
9027
8997
|
exports.ERR_INVALID_UID = ERR_INVALID_UID;
|
|
@@ -9040,7 +9010,7 @@
|
|
|
9040
9010
|
exports.ERR_UNDEFINED_UNCOMPRESSED_SIZE = ERR_UNDEFINED_UNCOMPRESSED_SIZE;
|
|
9041
9011
|
exports.ERR_UNDETERMINED_SIZE = ERR_UNDETERMINED_SIZE;
|
|
9042
9012
|
exports.ERR_UNSAFE_FILENAME = ERR_UNSAFE_FILENAME;
|
|
9043
|
-
exports.ERR_UNSUPPORTED_COMPRESSION = ERR_UNSUPPORTED_COMPRESSION
|
|
9013
|
+
exports.ERR_UNSUPPORTED_COMPRESSION = ERR_UNSUPPORTED_COMPRESSION;
|
|
9044
9014
|
exports.ERR_UNSUPPORTED_CONTEXT = ERR_UNSUPPORTED_CONTEXT;
|
|
9045
9015
|
exports.ERR_UNSUPPORTED_CRYPTO_API = ERR_UNSUPPORTED_CRYPTO_API;
|
|
9046
9016
|
exports.ERR_UNSUPPORTED_ENCRYPTION = ERR_UNSUPPORTED_ENCRYPTION;
|