@zip.js/zip.js 2.7.50 → 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.
@@ -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", "encrypted", "signature", "filenameUTF8", "commentUTF8", "compressionMethod", "version", "versionMadeBy",
55
- "extraField", "rawExtraField", "extraFieldZip64", "extraFieldUnicodePath", "extraFieldUnicodeComment", "extraFieldAES", "extraFieldNTFS",
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
  };
@@ -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
  }
@@ -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, "version", VERSION_DEFLATE);
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, "versionMadeBy", 20);
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, "zipCrypto");
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) && encryptionStrength !== UNDEFINED_VALUE && (encryptionStrength < 1 || encryptionStrength > 3)) {
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, "encrypted");
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, "zip64");
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
@@ -3,7 +3,7 @@
3
3
  "description": "A JavaScript library to zip and unzip files in the browser, Deno and Node.js",
4
4
  "author": "Gildas Lormeau",
5
5
  "license": "BSD-3-Clause",
6
- "version": "2.7.50",
6
+ "version": "2.7.51",
7
7
  "type": "module",
8
8
  "keywords": [
9
9
  "zip",