@zip.js/zip.js 2.7.49 → 2.7.51
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-fs-full.js +22 -14
- package/dist/zip-fs-full.min.js +1 -1
- package/dist/zip-fs.js +22 -14
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-full.js +14 -11
- package/dist/zip-full.min.js +1 -1
- package/dist/zip-no-worker-deflate.min.js +1 -1
- package/dist/zip-no-worker-inflate.min.js +1 -1
- package/dist/zip-no-worker.min.js +1 -1
- package/dist/zip.js +14 -11
- package/dist/zip.min.js +1 -1
- package/index.cjs +22 -14
- package/index.min.js +1 -1
- package/lib/core/zip-entry.js +11 -4
- package/lib/core/zip-fs-core.js +8 -3
- package/lib/core/zip-writer.js +10 -6
- package/package.json +1 -1
package/lib/core/zip-entry.js
CHANGED
|
@@ -44,16 +44,19 @@ const PROPERTY_NAME_INTERNAL_FILE_ATTRIBUTE = "internalFileAttribute";
|
|
|
44
44
|
const PROPERTY_NAME_EXTERNAL_FILE_ATTRIBUTE = "externalFileAttribute";
|
|
45
45
|
const PROPERTY_NAME_MS_DOS_COMPATIBLE = "msDosCompatible";
|
|
46
46
|
const PROPERTY_NAME_ZIP64 = "zip64";
|
|
47
|
+
const PROPERTY_NAME_ENCRYPTED = "encrypted";
|
|
48
|
+
const PROPERTY_NAME_VERSION = "version";
|
|
49
|
+
const PROPERTY_NAME_VERSION_MADE_BY = "versionMadeBy";
|
|
50
|
+
const PROPERTY_NAME_ZIPCRYPTO = "zipCrypto";
|
|
47
51
|
|
|
48
52
|
const PROPERTY_NAMES = [
|
|
49
53
|
PROPERTY_NAME_FILENAME, PROPERTY_NAME_RAW_FILENAME, PROPERTY_NAME_COMPPRESSED_SIZE, PROPERTY_NAME_UNCOMPPRESSED_SIZE,
|
|
50
54
|
PROPERTY_NAME_LAST_MODIFICATION_DATE, PROPERTY_NAME_RAW_LAST_MODIFICATION_DATE, PROPERTY_NAME_COMMENT, PROPERTY_NAME_RAW_COMMENT,
|
|
51
55
|
PROPERTY_NAME_LAST_ACCESS_DATE, PROPERTY_NAME_CREATION_DATE, PROPERTY_NAME_OFFSET, PROPERTY_NAME_DISK_NUMBER_START,
|
|
52
56
|
PROPERTY_NAME_DISK_NUMBER_START, PROPERTY_NAME_INTERNAL_FILE_ATTRIBUTE, PROPERTY_NAME_EXTERNAL_FILE_ATTRIBUTE,
|
|
53
|
-
PROPERTY_NAME_MS_DOS_COMPATIBLE, PROPERTY_NAME_ZIP64,
|
|
54
|
-
"directory", "bitFlag", "
|
|
55
|
-
"
|
|
56
|
-
"extraFieldExtendedTimestamp", "zipCrypto"];
|
|
57
|
+
PROPERTY_NAME_MS_DOS_COMPATIBLE, PROPERTY_NAME_ZIP64, PROPERTY_NAME_ENCRYPTED, PROPERTY_NAME_VERSION, PROPERTY_NAME_VERSION_MADE_BY,
|
|
58
|
+
PROPERTY_NAME_ZIPCRYPTO, "directory", "bitFlag", "signature", "filenameUTF8", "commentUTF8", "compressionMethod", "extraField", "rawExtraField",
|
|
59
|
+
"extraFieldZip64", "extraFieldUnicodePath", "extraFieldUnicodeComment", "extraFieldAES", "extraFieldNTFS", "extraFieldExtendedTimestamp"];
|
|
57
60
|
|
|
58
61
|
class Entry {
|
|
59
62
|
|
|
@@ -82,5 +85,9 @@ export {
|
|
|
82
85
|
PROPERTY_NAME_EXTERNAL_FILE_ATTRIBUTE,
|
|
83
86
|
PROPERTY_NAME_MS_DOS_COMPATIBLE,
|
|
84
87
|
PROPERTY_NAME_ZIP64,
|
|
88
|
+
PROPERTY_NAME_ENCRYPTED,
|
|
89
|
+
PROPERTY_NAME_VERSION,
|
|
90
|
+
PROPERTY_NAME_VERSION_MADE_BY,
|
|
91
|
+
PROPERTY_NAME_ZIPCRYPTO,
|
|
85
92
|
Entry
|
|
86
93
|
};
|
package/lib/core/zip-fs-core.js
CHANGED
|
@@ -739,12 +739,16 @@ async function exportZip(zipWriter, entry, totalSize, options) {
|
|
|
739
739
|
encrypted,
|
|
740
740
|
zipCrypto,
|
|
741
741
|
signature,
|
|
742
|
-
compressionMethod
|
|
742
|
+
compressionMethod,
|
|
743
|
+
extraFieldAES
|
|
743
744
|
} = child.data;
|
|
744
|
-
let level;
|
|
745
|
+
let level, encryptionStrength;
|
|
745
746
|
if (compressionMethod === 0) {
|
|
746
747
|
level = 0;
|
|
747
748
|
}
|
|
749
|
+
if (extraFieldAES) {
|
|
750
|
+
encryptionStrength = extraFieldAES.strength;
|
|
751
|
+
}
|
|
748
752
|
zipEntryOptions = {
|
|
749
753
|
externalFileAttribute,
|
|
750
754
|
versionMadeBy,
|
|
@@ -760,7 +764,8 @@ async function exportZip(zipWriter, entry, totalSize, options) {
|
|
|
760
764
|
zipCrypto,
|
|
761
765
|
signature,
|
|
762
766
|
uncompressedSize,
|
|
763
|
-
level
|
|
767
|
+
level,
|
|
768
|
+
encryptionStrength
|
|
764
769
|
});
|
|
765
770
|
}
|
|
766
771
|
}
|
package/lib/core/zip-writer.js
CHANGED
|
@@ -86,6 +86,10 @@ import {
|
|
|
86
86
|
PROPERTY_NAME_EXTERNAL_FILE_ATTRIBUTE,
|
|
87
87
|
PROPERTY_NAME_MS_DOS_COMPATIBLE,
|
|
88
88
|
PROPERTY_NAME_ZIP64,
|
|
89
|
+
PROPERTY_NAME_ENCRYPTED,
|
|
90
|
+
PROPERTY_NAME_VERSION,
|
|
91
|
+
PROPERTY_NAME_VERSION_MADE_BY,
|
|
92
|
+
PROPERTY_NAME_ZIPCRYPTO,
|
|
89
93
|
Entry
|
|
90
94
|
} from "./zip-entry.js";
|
|
91
95
|
|
|
@@ -242,11 +246,11 @@ async function addFile(zipWriter, name, reader, options) {
|
|
|
242
246
|
if (getLength(rawComment) > MAX_16_BITS) {
|
|
243
247
|
throw new Error(ERR_INVALID_ENTRY_COMMENT);
|
|
244
248
|
}
|
|
245
|
-
const version = getOptionValue(zipWriter, options,
|
|
249
|
+
const version = getOptionValue(zipWriter, options, PROPERTY_NAME_VERSION, VERSION_DEFLATE);
|
|
246
250
|
if (version > MAX_16_BITS) {
|
|
247
251
|
throw new Error(ERR_INVALID_VERSION);
|
|
248
252
|
}
|
|
249
|
-
const versionMadeBy = getOptionValue(zipWriter, options,
|
|
253
|
+
const versionMadeBy = getOptionValue(zipWriter, options, PROPERTY_NAME_VERSION_MADE_BY, 20);
|
|
250
254
|
if (versionMadeBy > MAX_16_BITS) {
|
|
251
255
|
throw new Error(ERR_INVALID_VERSION);
|
|
252
256
|
}
|
|
@@ -263,7 +267,7 @@ async function addFile(zipWriter, name, reader, options) {
|
|
|
263
267
|
rawPassword = getOptionValue(zipWriter, options, "rawPassword");
|
|
264
268
|
}
|
|
265
269
|
const encryptionStrength = getOptionValue(zipWriter, options, "encryptionStrength", 3);
|
|
266
|
-
const zipCrypto = getOptionValue(zipWriter, options,
|
|
270
|
+
const zipCrypto = getOptionValue(zipWriter, options, PROPERTY_NAME_ZIPCRYPTO);
|
|
267
271
|
const extendedTimestamp = getOptionValue(zipWriter, options, "extendedTimestamp", true);
|
|
268
272
|
const keepOrder = getOptionValue(zipWriter, options, "keepOrder", true);
|
|
269
273
|
const level = getOptionValue(zipWriter, options, "level");
|
|
@@ -275,7 +279,7 @@ async function addFile(zipWriter, name, reader, options) {
|
|
|
275
279
|
const useCompressionStream = getOptionValue(zipWriter, options, "useCompressionStream");
|
|
276
280
|
let dataDescriptor = getOptionValue(zipWriter, options, "dataDescriptor", true);
|
|
277
281
|
let zip64 = getOptionValue(zipWriter, options, PROPERTY_NAME_ZIP64);
|
|
278
|
-
if ((password !== UNDEFINED_VALUE || rawPassword !== UNDEFINED_VALUE) &&
|
|
282
|
+
if (!zipCrypto && (password !== UNDEFINED_VALUE || rawPassword !== UNDEFINED_VALUE) && !(encryptionStrength >= 1 && encryptionStrength <= 3)) {
|
|
279
283
|
throw new Error(ERR_INVALID_ENCRYPTION_STRENGTH);
|
|
280
284
|
}
|
|
281
285
|
let rawExtraField = new Uint8Array();
|
|
@@ -340,7 +344,7 @@ async function addFile(zipWriter, name, reader, options) {
|
|
|
340
344
|
}
|
|
341
345
|
}
|
|
342
346
|
zip64 = zip64 || false;
|
|
343
|
-
const encrypted = getOptionValue(zipWriter, options,
|
|
347
|
+
const encrypted = getOptionValue(zipWriter, options, PROPERTY_NAME_ENCRYPTED);
|
|
344
348
|
const { signature } = options;
|
|
345
349
|
options = Object.assign({}, options, {
|
|
346
350
|
rawFilename,
|
|
@@ -1116,7 +1120,7 @@ async function closeFile(zipWriter, comment, options) {
|
|
|
1116
1120
|
if (availableSize < END_OF_CENTRAL_DIR_LENGTH) {
|
|
1117
1121
|
lastDiskNumber++;
|
|
1118
1122
|
}
|
|
1119
|
-
let zip64 = getOptionValue(zipWriter, options,
|
|
1123
|
+
let zip64 = getOptionValue(zipWriter, options, PROPERTY_NAME_ZIP64);
|
|
1120
1124
|
if (directoryOffset > MAX_32_BITS || directoryDataLength > MAX_32_BITS || filesLength > MAX_16_BITS || lastDiskNumber > MAX_16_BITS) {
|
|
1121
1125
|
if (zip64 === false) {
|
|
1122
1126
|
throw new Error(ERR_UNSUPPORTED_FORMAT);
|
package/package.json
CHANGED