@zip.js/zip.js 2.8.56 → 2.8.57
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 +1 -1
- package/dist/zip-core-external.js +47 -23
- package/dist/zip-core-external.min.js +1 -1
- package/dist/zip-core.js +47 -22
- package/dist/zip-core.min.js +1 -1
- package/dist/zip-fs-core-external.js +48 -24
- package/dist/zip-fs-core-external.min.js +1 -1
- package/dist/zip-fs-core.js +47 -23
- package/dist/zip-fs-core.min.js +1 -1
- package/dist/zip-fs-external.js +48 -24
- package/dist/zip-fs-external.min.js +1 -1
- package/dist/zip-fs-native.js +48 -23
- package/dist/zip-fs-native.min.js +1 -1
- package/dist/zip-fs.js +48 -23
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-legacy.js +47 -22
- package/dist/zip-legacy.min.js +1 -1
- package/dist/zip-native.js +47 -22
- package/dist/zip-native.min.js +1 -1
- package/dist/zip.js +47 -22
- package/dist/zip.min.js +1 -1
- package/index-native.cjs +48 -23
- package/index-native.min.js +1 -1
- package/index.cjs +48 -23
- package/index.d.cts +13 -1
- package/index.d.ts +13 -1
- package/index.min.js +1 -1
- package/lib/core/zip-fs.js +1 -1
- package/lib/core/zip-reader.js +11 -4
- package/lib/core/zip-writer.js +37 -20
- package/lib/zip-core-reader.js +1 -0
- package/package.json +1 -1
package/deno.json
CHANGED
|
@@ -4738,6 +4738,7 @@ const ERR_UNSAFE_FILENAME = "Unsafe filename";
|
|
|
4738
4738
|
const ERR_INVALID_STRICTNESS = "Invalid strictness (must be 'strict', 'balanced' or 'tolerant')";
|
|
4739
4739
|
const ERR_INVALID_FILENAME_VALIDATION = "Invalid filenameValidation (must be 'strict', 'balanced' or 'tolerant')";
|
|
4740
4740
|
const ERR_INVALID_MAX_APPENDED_DATA_SIZE = "Invalid maxAppendedDataSize (must be a number greater than or equal to 0)";
|
|
4741
|
+
const ERR_UNSUPPORTED_UINT64 = "64-bit value exceeds Number.MAX_SAFE_INTEGER";
|
|
4741
4742
|
const DRIVE_LETTER_REGEXP = /^[a-zA-Z]:/;
|
|
4742
4743
|
const CHARSET_UTF8 = "utf-8";
|
|
4743
4744
|
const PROPERTY_NAME_UTF8_SUFFIX = "UTF8";
|
|
@@ -4760,6 +4761,7 @@ const ZIP64_EXTRACTION = {
|
|
|
4760
4761
|
bytes: 8
|
|
4761
4762
|
}
|
|
4762
4763
|
};
|
|
4764
|
+
const MAX_SAFE_UINT64 = BigInt(Number.MAX_SAFE_INTEGER);
|
|
4763
4765
|
const MAX_END_OF_CENTRAL_DIR_PROBES = 64;
|
|
4764
4766
|
const MAX_DEFLATE_EXPANSION_RATIO = 1032;
|
|
4765
4767
|
const CENTRAL_DIRECTORY_UNREACHABLE = 0;
|
|
@@ -4855,7 +4857,7 @@ class ZipReader {
|
|
|
4855
4857
|
zip64EndOfDirectoryVersion2 = getBigUint64(endOfDirectoryView, 4) > ZIP64_END_OF_CENTRAL_DIR_LENGTH - 12;
|
|
4856
4858
|
if (zip64EndOfDirectoryVersion2) {
|
|
4857
4859
|
const extensibleDataLength = Math.min(
|
|
4858
|
-
|
|
4860
|
+
getBigUint64(endOfDirectoryView, 4) - (ZIP64_END_OF_CENTRAL_DIR_LENGTH - 12),
|
|
4859
4861
|
reader.size - directoryDataOffset - ZIP64_END_OF_CENTRAL_DIR_LENGTH);
|
|
4860
4862
|
if (extensibleDataLength > 0) {
|
|
4861
4863
|
zip64EndOfDirectoryLength += extensibleDataLength;
|
|
@@ -5436,8 +5438,8 @@ function getDirectoryEncryptionInfo(rawExtensibleData) {
|
|
|
5436
5438
|
const hashDataLength = getUint16$1(extensibleDataView, 26);
|
|
5437
5439
|
Object.assign(directoryEncryptionInfo, {
|
|
5438
5440
|
compressionMethod: getUint16$1(extensibleDataView, 0),
|
|
5439
|
-
compressedSize:
|
|
5440
|
-
uncompressedSize:
|
|
5441
|
+
compressedSize: getBigUint64(extensibleDataView, 2),
|
|
5442
|
+
uncompressedSize: getBigUint64(extensibleDataView, 10),
|
|
5441
5443
|
encryptionAlgorithm: getUint16$1(extensibleDataView, 18),
|
|
5442
5444
|
bitLength: getUint16$1(extensibleDataView, 20),
|
|
5443
5445
|
flags: getUint16$1(extensibleDataView, 22),
|
|
@@ -6072,7 +6074,11 @@ function getUint32$1(view, offset) {
|
|
|
6072
6074
|
}
|
|
6073
6075
|
|
|
6074
6076
|
function getBigUint64(view, offset) {
|
|
6075
|
-
|
|
6077
|
+
const value = view.getBigUint64(offset, true);
|
|
6078
|
+
if (value > MAX_SAFE_UINT64) {
|
|
6079
|
+
throw new Error(ERR_UNSUPPORTED_UINT64);
|
|
6080
|
+
}
|
|
6081
|
+
return Number(value);
|
|
6076
6082
|
}
|
|
6077
6083
|
|
|
6078
6084
|
var zipReader = /*#__PURE__*/Object.freeze({
|
|
@@ -6101,6 +6107,7 @@ var zipReader = /*#__PURE__*/Object.freeze({
|
|
|
6101
6107
|
ERR_UNSAFE_FILENAME: ERR_UNSAFE_FILENAME,
|
|
6102
6108
|
ERR_UNSUPPORTED_COMPRESSION: ERR_UNSUPPORTED_COMPRESSION$1,
|
|
6103
6109
|
ERR_UNSUPPORTED_ENCRYPTION: ERR_UNSUPPORTED_ENCRYPTION,
|
|
6110
|
+
ERR_UNSUPPORTED_UINT64: ERR_UNSUPPORTED_UINT64,
|
|
6104
6111
|
ERR_WORKER_STARTUP_TIMEOUT: ERR_WORKER_STARTUP_TIMEOUT,
|
|
6105
6112
|
ZipReader: ZipReader,
|
|
6106
6113
|
ZipReaderStream: ZipReaderStream
|
|
@@ -6241,7 +6248,7 @@ class ZipWriter {
|
|
|
6241
6248
|
encrypted,
|
|
6242
6249
|
uncompressedSize,
|
|
6243
6250
|
compressedSize,
|
|
6244
|
-
|
|
6251
|
+
extraFieldZip64
|
|
6245
6252
|
} = entry;
|
|
6246
6253
|
let {
|
|
6247
6254
|
compressionMethod,
|
|
@@ -6258,13 +6265,13 @@ class ZipWriter {
|
|
|
6258
6265
|
rawExtraFieldExtendedTimestamp = rawExtraFieldExtendedTimestamp || EMPTY_UINT8_ARRAY;
|
|
6259
6266
|
rawExtraFieldNTFS = rawExtraFieldNTFS || EMPTY_UINT8_ARRAY;
|
|
6260
6267
|
rawExtraFieldUnix = rawExtraFieldUnix || EMPTY_UINT8_ARRAY;
|
|
6261
|
-
rawExtraField = rawExtraField || EMPTY_UINT8_ARRAY;
|
|
6268
|
+
rawExtraField = removeExtraFieldZip64(rawExtraField || EMPTY_UINT8_ARRAY);
|
|
6262
6269
|
if (entry.extraFieldAES) {
|
|
6263
6270
|
compressionMethod = COMPRESSION_METHOD_AES;
|
|
6264
6271
|
}
|
|
6265
6272
|
const extraFieldLength = getLength(rawExtraFieldZip64, rawExtraFieldAES, rawExtraFieldExtendedTimestamp, rawExtraFieldNTFS, rawExtraFieldUnix, rawExtraField);
|
|
6266
|
-
const zip64UncompressedSize =
|
|
6267
|
-
const zip64CompressedSize =
|
|
6273
|
+
const zip64UncompressedSize = Boolean(extraFieldZip64) && extraFieldZip64.uncompressedSize !== UNDEFINED_VALUE;
|
|
6274
|
+
const zip64CompressedSize = Boolean(extraFieldZip64) && extraFieldZip64.compressedSize !== UNDEFINED_VALUE;
|
|
6268
6275
|
const bitFlagValue = (getBitFlag(level, languageEncodingFlag, dataDescriptor, encrypted, compressionMethod) & ~BITFLAG_LEVEL) | (level << 1);
|
|
6269
6276
|
const {
|
|
6270
6277
|
headerArray,
|
|
@@ -6820,6 +6827,10 @@ function resolveEntrySizes(zipWriter, hasContent, contentSize, metadata, options
|
|
|
6820
6827
|
maximumCompressedSize = contentSize === UNDEFINED_VALUE ? getMaximumCompressedSize(uncompressedSize) + encryptionOverhead : contentSize;
|
|
6821
6828
|
}
|
|
6822
6829
|
}
|
|
6830
|
+
const emptyEntry = !encryptedEntry && (!hasContent || (contentSize === 0 && !passThrough)) && !isCompressed(compressionMethod, level);
|
|
6831
|
+
if (emptyEntry && !zipCrypto && getOptionValue(zipWriter, options, OPTION_DATA_DESCRIPTOR) === UNDEFINED_VALUE) {
|
|
6832
|
+
dataDescriptor = false;
|
|
6833
|
+
}
|
|
6823
6834
|
const zip64UncompressedSize = zip64Enabled || uncompressedSize >= MAX_32_BITS;
|
|
6824
6835
|
const zip64CompressedSize = zip64Enabled || maximumCompressedSize >= MAX_32_BITS;
|
|
6825
6836
|
if (zip64UncompressedSize || zip64CompressedSize) {
|
|
@@ -6834,6 +6845,7 @@ function resolveEntrySizes(zipWriter, hasContent, contentSize, metadata, options
|
|
|
6834
6845
|
maximumCompressedSize,
|
|
6835
6846
|
resolvedOptions: {
|
|
6836
6847
|
dataDescriptor,
|
|
6848
|
+
emptyEntry,
|
|
6837
6849
|
zip64,
|
|
6838
6850
|
zip64UncompressedSize,
|
|
6839
6851
|
zip64CompressedSize,
|
|
@@ -6853,6 +6865,7 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
|
|
|
6853
6865
|
const {
|
|
6854
6866
|
keepOrder,
|
|
6855
6867
|
dataDescriptor,
|
|
6868
|
+
emptyEntry,
|
|
6856
6869
|
signal
|
|
6857
6870
|
} = options;
|
|
6858
6871
|
const {
|
|
@@ -6877,7 +6890,7 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
|
|
|
6877
6890
|
lockPreviousFileEntry = previousFileEntry && previousFileEntry.lockFileEntry;
|
|
6878
6891
|
requestLockCurrentFileEntry();
|
|
6879
6892
|
}
|
|
6880
|
-
if (options.bufferedWrite || !keepOrder || zipWriter.writerLocked || zipWriter.bufferedWrites || !dataDescriptor) {
|
|
6893
|
+
if (options.bufferedWrite || !keepOrder || zipWriter.writerLocked || zipWriter.bufferedWrites || (!dataDescriptor && !emptyEntry)) {
|
|
6881
6894
|
bufferedWrite = true;
|
|
6882
6895
|
zipWriter.bufferedWrites++;
|
|
6883
6896
|
if (options.createTempStream) {
|
|
@@ -7299,8 +7312,8 @@ function getHeaderInfo(options) {
|
|
|
7299
7312
|
try {
|
|
7300
7313
|
const { uid, gid, unixExtraFieldType } = options;
|
|
7301
7314
|
if (unixExtraFieldType == INFOZIP_EXTRA_FIELD_TYPE && (uid !== UNDEFINED_VALUE || gid !== UNDEFINED_VALUE)) {
|
|
7302
|
-
const uidBytes = packUnixId(uid);
|
|
7303
|
-
const gidBytes = packUnixId(gid);
|
|
7315
|
+
const uidBytes = packUnixId(uid === UNDEFINED_VALUE ? 0 : uid);
|
|
7316
|
+
const gidBytes = packUnixId(gid === UNDEFINED_VALUE ? 0 : gid);
|
|
7304
7317
|
const payloadLength = 3 + uidBytes.length + gidBytes.length;
|
|
7305
7318
|
const extraFieldUnix = createRecordWriter(4 + payloadLength);
|
|
7306
7319
|
extraFieldUnix.writeUint16(EXTRAFIELD_TYPE_INFOZIP);
|
|
@@ -7431,18 +7444,14 @@ function appendExtraFieldUSDZ(entryInfo, zipWriterOffset) {
|
|
|
7431
7444
|
}
|
|
7432
7445
|
|
|
7433
7446
|
function packUnixId(id) {
|
|
7434
|
-
|
|
7435
|
-
|
|
7436
|
-
|
|
7437
|
-
|
|
7438
|
-
|
|
7439
|
-
|
|
7440
|
-
let length = 4;
|
|
7441
|
-
while (length > 1 && dataArray[length - 1] === 0) {
|
|
7442
|
-
length--;
|
|
7443
|
-
}
|
|
7444
|
-
return dataArray.subarray(0, length);
|
|
7447
|
+
const dataArray = new Uint8Array(4);
|
|
7448
|
+
const dataView = getDataView(dataArray);
|
|
7449
|
+
dataView.setUint32(0, id, true);
|
|
7450
|
+
let length = 4;
|
|
7451
|
+
while (length > 1 && dataArray[length - 1] === 0) {
|
|
7452
|
+
length--;
|
|
7445
7453
|
}
|
|
7454
|
+
return dataArray.subarray(0, length);
|
|
7446
7455
|
}
|
|
7447
7456
|
|
|
7448
7457
|
function normalizeMsdosAttributes(msdosAttributesRaw, msdosAttributes) {
|
|
@@ -7861,6 +7870,21 @@ async function startsWithSplitZipSignature(reader) {
|
|
|
7861
7870
|
return getUint32(getDataView(signatureArray), 0) == SPLIT_ZIP_FILE_SIGNATURE;
|
|
7862
7871
|
}
|
|
7863
7872
|
|
|
7873
|
+
function removeExtraFieldZip64(rawExtraField) {
|
|
7874
|
+
const rawExtraFieldView = getDataView(rawExtraField);
|
|
7875
|
+
let offsetExtraField = 0;
|
|
7876
|
+
while (offsetExtraField + 4 <= getLength(rawExtraField)) {
|
|
7877
|
+
const size = 4 + getUint16(rawExtraFieldView, offsetExtraField + 2);
|
|
7878
|
+
if (getUint16(rawExtraFieldView, offsetExtraField) == EXTRAFIELD_TYPE_ZIP64) {
|
|
7879
|
+
return removeExtraFieldZip64(concat(
|
|
7880
|
+
rawExtraField.subarray(0, offsetExtraField),
|
|
7881
|
+
rawExtraField.subarray(Math.min(offsetExtraField + size, getLength(rawExtraField)))));
|
|
7882
|
+
}
|
|
7883
|
+
offsetExtraField += size;
|
|
7884
|
+
}
|
|
7885
|
+
return rawExtraField;
|
|
7886
|
+
}
|
|
7887
|
+
|
|
7864
7888
|
async function copyZipData(zipWriter, reader, entries, directoryOffset) {
|
|
7865
7889
|
const { writer } = zipWriter;
|
|
7866
7890
|
const entryPositions = new Map();
|
|
@@ -8975,4 +8999,4 @@ function terminateWorkersAndModule() {
|
|
|
8975
8999
|
|
|
8976
9000
|
configureExternalAssets();
|
|
8977
9001
|
|
|
8978
|
-
export { BlobReader, BlobWriter, Data64URIReader, Data64URIWriter, 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_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_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_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_WORKER_STARTUP_TIMEOUT, ERR_WRITER_NOT_INITIALIZED, ERR_ZIP_NOT_EMPTY, HttpRangeReader, HttpReader, Reader, SplitDataReader, SplitDataWriter, TextReader, TextWriter, Uint8ArrayReader, Uint8ArrayWriter, Writer, ZipReader, ZipReaderStream, ZipWriter, ZipWriterStream, configure, createBlobTempStream, createOPFSTempStream, createSyncAccessHandleTempStream, getMimeType, registerCodec, resetConfiguration, terminateWorkersAndModule as terminateWorkers, unregisterCodec };
|
|
9002
|
+
export { BlobReader, BlobWriter, Data64URIReader, Data64URIWriter, 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_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_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_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_NOT_EMPTY, HttpRangeReader, HttpReader, Reader, SplitDataReader, SplitDataWriter, TextReader, TextWriter, Uint8ArrayReader, Uint8ArrayWriter, Writer, ZipReader, ZipReaderStream, ZipWriter, ZipWriterStream, configure, createBlobTempStream, createOPFSTempStream, createSyncAccessHandleTempStream, getMimeType, registerCodec, resetConfiguration, terminateWorkersAndModule as terminateWorkers, unregisterCodec };
|