@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.
package/index.cjs CHANGED
@@ -9196,16 +9196,19 @@ const PROPERTY_NAME_INTERNAL_FILE_ATTRIBUTE = "internalFileAttribute";
9196
9196
  const PROPERTY_NAME_EXTERNAL_FILE_ATTRIBUTE = "externalFileAttribute";
9197
9197
  const PROPERTY_NAME_MS_DOS_COMPATIBLE = "msDosCompatible";
9198
9198
  const PROPERTY_NAME_ZIP64 = "zip64";
9199
+ const PROPERTY_NAME_ENCRYPTED = "encrypted";
9200
+ const PROPERTY_NAME_VERSION = "version";
9201
+ const PROPERTY_NAME_VERSION_MADE_BY = "versionMadeBy";
9202
+ const PROPERTY_NAME_ZIPCRYPTO = "zipCrypto";
9199
9203
 
9200
9204
  const PROPERTY_NAMES = [
9201
9205
  PROPERTY_NAME_FILENAME, PROPERTY_NAME_RAW_FILENAME, PROPERTY_NAME_COMPPRESSED_SIZE, PROPERTY_NAME_UNCOMPPRESSED_SIZE,
9202
9206
  PROPERTY_NAME_LAST_MODIFICATION_DATE, PROPERTY_NAME_RAW_LAST_MODIFICATION_DATE, PROPERTY_NAME_COMMENT, PROPERTY_NAME_RAW_COMMENT,
9203
9207
  PROPERTY_NAME_LAST_ACCESS_DATE, PROPERTY_NAME_CREATION_DATE, PROPERTY_NAME_OFFSET, PROPERTY_NAME_DISK_NUMBER_START,
9204
9208
  PROPERTY_NAME_DISK_NUMBER_START, PROPERTY_NAME_INTERNAL_FILE_ATTRIBUTE, PROPERTY_NAME_EXTERNAL_FILE_ATTRIBUTE,
9205
- PROPERTY_NAME_MS_DOS_COMPATIBLE, PROPERTY_NAME_ZIP64,
9206
- "directory", "bitFlag", "encrypted", "signature", "filenameUTF8", "commentUTF8", "compressionMethod", "version", "versionMadeBy",
9207
- "extraField", "rawExtraField", "extraFieldZip64", "extraFieldUnicodePath", "extraFieldUnicodeComment", "extraFieldAES", "extraFieldNTFS",
9208
- "extraFieldExtendedTimestamp", "zipCrypto"];
9209
+ PROPERTY_NAME_MS_DOS_COMPATIBLE, PROPERTY_NAME_ZIP64, PROPERTY_NAME_ENCRYPTED, PROPERTY_NAME_VERSION, PROPERTY_NAME_VERSION_MADE_BY,
9210
+ PROPERTY_NAME_ZIPCRYPTO, "directory", "bitFlag", "signature", "filenameUTF8", "commentUTF8", "compressionMethod", "extraField", "rawExtraField",
9211
+ "extraFieldZip64", "extraFieldUnicodePath", "extraFieldUnicodeComment", "extraFieldAES", "extraFieldNTFS", "extraFieldExtendedTimestamp"];
9209
9212
 
9210
9213
  class Entry {
9211
9214
 
@@ -10057,11 +10060,11 @@ async function addFile(zipWriter, name, reader, options) {
10057
10060
  if (getLength(rawComment) > MAX_16_BITS) {
10058
10061
  throw new Error(ERR_INVALID_ENTRY_COMMENT);
10059
10062
  }
10060
- const version = getOptionValue(zipWriter, options, "version", VERSION_DEFLATE);
10063
+ const version = getOptionValue(zipWriter, options, PROPERTY_NAME_VERSION, VERSION_DEFLATE);
10061
10064
  if (version > MAX_16_BITS) {
10062
10065
  throw new Error(ERR_INVALID_VERSION);
10063
10066
  }
10064
- const versionMadeBy = getOptionValue(zipWriter, options, "versionMadeBy", 20);
10067
+ const versionMadeBy = getOptionValue(zipWriter, options, PROPERTY_NAME_VERSION_MADE_BY, 20);
10065
10068
  if (versionMadeBy > MAX_16_BITS) {
10066
10069
  throw new Error(ERR_INVALID_VERSION);
10067
10070
  }
@@ -10078,7 +10081,7 @@ async function addFile(zipWriter, name, reader, options) {
10078
10081
  rawPassword = getOptionValue(zipWriter, options, "rawPassword");
10079
10082
  }
10080
10083
  const encryptionStrength = getOptionValue(zipWriter, options, "encryptionStrength", 3);
10081
- const zipCrypto = getOptionValue(zipWriter, options, "zipCrypto");
10084
+ const zipCrypto = getOptionValue(zipWriter, options, PROPERTY_NAME_ZIPCRYPTO);
10082
10085
  const extendedTimestamp = getOptionValue(zipWriter, options, "extendedTimestamp", true);
10083
10086
  const keepOrder = getOptionValue(zipWriter, options, "keepOrder", true);
10084
10087
  const level = getOptionValue(zipWriter, options, "level");
@@ -10090,7 +10093,7 @@ async function addFile(zipWriter, name, reader, options) {
10090
10093
  const useCompressionStream = getOptionValue(zipWriter, options, "useCompressionStream");
10091
10094
  let dataDescriptor = getOptionValue(zipWriter, options, "dataDescriptor", true);
10092
10095
  let zip64 = getOptionValue(zipWriter, options, PROPERTY_NAME_ZIP64);
10093
- if ((password !== UNDEFINED_VALUE || rawPassword !== UNDEFINED_VALUE) && encryptionStrength !== UNDEFINED_VALUE && (encryptionStrength < 1 || encryptionStrength > 3)) {
10096
+ if (!zipCrypto && (password !== UNDEFINED_VALUE || rawPassword !== UNDEFINED_VALUE) && !(encryptionStrength >= 1 && encryptionStrength <= 3)) {
10094
10097
  throw new Error(ERR_INVALID_ENCRYPTION_STRENGTH);
10095
10098
  }
10096
10099
  let rawExtraField = new Uint8Array();
@@ -10155,7 +10158,7 @@ async function addFile(zipWriter, name, reader, options) {
10155
10158
  }
10156
10159
  }
10157
10160
  zip64 = zip64 || false;
10158
- const encrypted = getOptionValue(zipWriter, options, "encrypted");
10161
+ const encrypted = getOptionValue(zipWriter, options, PROPERTY_NAME_ENCRYPTED);
10159
10162
  const { signature } = options;
10160
10163
  options = Object.assign({}, options, {
10161
10164
  rawFilename,
@@ -10931,7 +10934,7 @@ async function closeFile(zipWriter, comment, options) {
10931
10934
  if (availableSize < END_OF_CENTRAL_DIR_LENGTH) {
10932
10935
  lastDiskNumber++;
10933
10936
  }
10934
- let zip64 = getOptionValue(zipWriter, options, "zip64");
10937
+ let zip64 = getOptionValue(zipWriter, options, PROPERTY_NAME_ZIP64);
10935
10938
  if (directoryOffset > MAX_32_BITS || directoryDataLength > MAX_32_BITS || filesLength > MAX_16_BITS || lastDiskNumber > MAX_16_BITS) {
10936
10939
  if (zip64 === false) {
10937
10940
  throw new Error(ERR_UNSUPPORTED_FORMAT);
@@ -11756,12 +11759,16 @@ async function exportZip(zipWriter, entry, totalSize, options) {
11756
11759
  encrypted,
11757
11760
  zipCrypto,
11758
11761
  signature,
11759
- compressionMethod
11762
+ compressionMethod,
11763
+ extraFieldAES
11760
11764
  } = child.data;
11761
- let level;
11765
+ let level, encryptionStrength;
11762
11766
  if (compressionMethod === 0) {
11763
11767
  level = 0;
11764
11768
  }
11769
+ if (extraFieldAES) {
11770
+ encryptionStrength = extraFieldAES.strength;
11771
+ }
11765
11772
  zipEntryOptions = {
11766
11773
  externalFileAttribute,
11767
11774
  versionMadeBy,
@@ -11777,7 +11784,8 @@ async function exportZip(zipWriter, entry, totalSize, options) {
11777
11784
  zipCrypto,
11778
11785
  signature,
11779
11786
  uncompressedSize,
11780
- level
11787
+ level,
11788
+ encryptionStrength
11781
11789
  });
11782
11790
  }
11783
11791
  }