@zip.js/zip.js 2.6.41 → 2.6.43

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/dist/zip-fs.js CHANGED
@@ -3119,14 +3119,34 @@
3119
3119
  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3120
3120
  */
3121
3121
 
3122
+ const PROPERTY_NAME_FILENAME = "filename";
3123
+ const PROPERTY_NAME_RAW_FILENAME = "rawFilename";
3124
+ const PROPERTY_NAME_COMMENT = "comment";
3125
+ const PROPERTY_NAME_RAW_COMMENT = "rawComment";
3126
+ const PROPERTY_NAME_UNCOMPPRESSED_SIZE = "uncompressedSize";
3127
+ const PROPERTY_NAME_COMPPRESSED_SIZE = "compressedSize";
3128
+ const PROPERTY_NAME_OFFSET = "offset";
3129
+ const PROPERTY_NAME_DISK_NUMBER_START = "diskNumberStart";
3130
+ const PROPERTY_NAME_LAST_MODIFICATION_DATE = "lastModDate";
3131
+ const PROPERTY_NAME_RAW_LAST_MODIFICATION_DATE = "rawLastModDate";
3132
+ const PROPERTY_NAME_LAST_ACCESS_DATE = "lastAccessDate";
3133
+ const PROPERTY_NAME_RAW_LAST_ACCESS_DATE = "rawLastAccessDate";
3134
+ const PROPERTY_NAME_CREATION_DATE = "creationDate";
3135
+ const PROPERTY_NAME_RAW_CREATION_DATE = "rawCreationDate";
3136
+ const PROPERTY_NAME_INTERNAL_FILE_ATTRIBUTE = "internalFileAttribute";
3137
+ const PROPERTY_NAME_EXTERNAL_FILE_ATTRIBUTE = "externalFileAttribute";
3138
+ const PROPERTY_NAME_MS_DOS_COMPATIBLE = "msDosCompatible";
3139
+ const PROPERTY_NAME_ZIP64 = "zip64";
3140
+
3122
3141
  const PROPERTY_NAMES = [
3123
- "filename", "rawFilename", "directory", "encrypted", "compressedSize", "uncompressedSize",
3124
- "lastModDate", "rawLastModDate", "comment", "rawComment", "signature", "extraField",
3125
- "rawExtraField", "bitFlag", "extraFieldZip64", "extraFieldUnicodePath", "extraFieldUnicodeComment",
3126
- "extraFieldAES", "filenameUTF8", "commentUTF8", "offset", "zip64", "compressionMethod",
3127
- "extraFieldNTFS", "lastAccessDate", "creationDate", "extraFieldExtendedTimestamp",
3128
- "version", "versionMadeBy", "msDosCompatible", "internalFileAttribute", "externalFileAttribute",
3129
- "diskNumberStart"];
3142
+ PROPERTY_NAME_FILENAME, PROPERTY_NAME_RAW_FILENAME, PROPERTY_NAME_COMPPRESSED_SIZE, PROPERTY_NAME_UNCOMPPRESSED_SIZE,
3143
+ PROPERTY_NAME_LAST_MODIFICATION_DATE, PROPERTY_NAME_RAW_LAST_MODIFICATION_DATE, PROPERTY_NAME_COMMENT, PROPERTY_NAME_RAW_COMMENT,
3144
+ PROPERTY_NAME_LAST_ACCESS_DATE, PROPERTY_NAME_CREATION_DATE, PROPERTY_NAME_OFFSET, PROPERTY_NAME_DISK_NUMBER_START,
3145
+ PROPERTY_NAME_DISK_NUMBER_START, PROPERTY_NAME_INTERNAL_FILE_ATTRIBUTE, PROPERTY_NAME_EXTERNAL_FILE_ATTRIBUTE,
3146
+ PROPERTY_NAME_MS_DOS_COMPATIBLE, PROPERTY_NAME_ZIP64,
3147
+ "directory", "bitFlag", "encrypted", "signature", "filenameUTF8", "commentUTF8", "compressionMethod", "version", "versionMadeBy",
3148
+ "extraField", "rawExtraField", "extraFieldZip64", "extraFieldUnicodePath", "extraFieldUnicodeComment", "extraFieldAES", "extraFieldNTFS",
3149
+ "extraFieldExtendedTimestamp"];
3130
3150
 
3131
3151
  class Entry {
3132
3152
 
@@ -3178,10 +3198,10 @@
3178
3198
  const CHARSET_UTF8 = "utf-8";
3179
3199
  const CHARSET_CP437 = "cp437";
3180
3200
  const ZIP64_PROPERTIES = [
3181
- ["uncompressedSize", MAX_32_BITS],
3182
- ["compressedSize", MAX_32_BITS],
3183
- ["offset", MAX_32_BITS],
3184
- ["diskNumberStart", MAX_16_BITS]
3201
+ [PROPERTY_NAME_UNCOMPPRESSED_SIZE, MAX_32_BITS],
3202
+ [PROPERTY_NAME_COMPPRESSED_SIZE, MAX_32_BITS],
3203
+ [PROPERTY_NAME_OFFSET, MAX_32_BITS],
3204
+ [PROPERTY_NAME_DISK_NUMBER_START, MAX_16_BITS]
3185
3205
  ];
3186
3206
  const ZIP64_EXTRACTION = {
3187
3207
  [MAX_16_BITS]: {
@@ -3541,12 +3561,12 @@
3541
3561
  }
3542
3562
  const extraFieldUnicodePath = extraField.get(EXTRAFIELD_TYPE_UNICODE_PATH);
3543
3563
  if (extraFieldUnicodePath) {
3544
- await readExtraFieldUnicode(extraFieldUnicodePath, "filename", "rawFilename", directory, fileEntry);
3564
+ await readExtraFieldUnicode(extraFieldUnicodePath, PROPERTY_NAME_FILENAME, PROPERTY_NAME_RAW_FILENAME, directory, fileEntry);
3545
3565
  directory.extraFieldUnicodePath = extraFieldUnicodePath;
3546
3566
  }
3547
3567
  const extraFieldUnicodeComment = extraField.get(EXTRAFIELD_TYPE_UNICODE_COMMENT);
3548
3568
  if (extraFieldUnicodeComment) {
3549
- await readExtraFieldUnicode(extraFieldUnicodeComment, "comment", "rawComment", directory, fileEntry);
3569
+ await readExtraFieldUnicode(extraFieldUnicodeComment, PROPERTY_NAME_COMMENT, PROPERTY_NAME_RAW_COMMENT, directory, fileEntry);
3550
3570
  directory.extraFieldUnicodeComment = extraFieldUnicodeComment;
3551
3571
  }
3552
3572
  const extraFieldAES = extraField.get(EXTRAFIELD_TYPE_AES);
@@ -3660,16 +3680,16 @@
3660
3680
  const timeProperties = [];
3661
3681
  const timeRawProperties = [];
3662
3682
  if ((flags & 0x1) == 0x1) {
3663
- timeProperties.push("lastModDate");
3664
- timeRawProperties.push("rawLastModDate");
3683
+ timeProperties.push(PROPERTY_NAME_LAST_MODIFICATION_DATE);
3684
+ timeRawProperties.push(PROPERTY_NAME_RAW_LAST_MODIFICATION_DATE);
3665
3685
  }
3666
3686
  if ((flags & 0x2) == 0x2) {
3667
- timeProperties.push("lastAccessDate");
3668
- timeRawProperties.push("rawLastAccessDate");
3687
+ timeProperties.push(PROPERTY_NAME_LAST_ACCESS_DATE);
3688
+ timeRawProperties.push(PROPERTY_NAME_RAW_LAST_ACCESS_DATE);
3669
3689
  }
3670
3690
  if ((flags & 0x4) == 0x4) {
3671
- timeProperties.push("creationDate");
3672
- timeRawProperties.push("rawCreationDate");
3691
+ timeProperties.push(PROPERTY_NAME_CREATION_DATE);
3692
+ timeRawProperties.push(PROPERTY_NAME_RAW_CREATION_DATE);
3673
3693
  }
3674
3694
  let offset = 1;
3675
3695
  timeProperties.forEach((propertyName, indexProperty) => {
@@ -3896,9 +3916,9 @@
3896
3916
  if (versionMadeBy > MAX_16_BITS) {
3897
3917
  throw new Error(ERR_INVALID_VERSION);
3898
3918
  }
3899
- const lastModDate = getOptionValue(zipWriter, options, "lastModDate") || new Date();
3900
- const lastAccessDate = getOptionValue(zipWriter, options, "lastAccessDate");
3901
- const creationDate = getOptionValue(zipWriter, options, "creationDate");
3919
+ const lastModDate = getOptionValue(zipWriter, options, PROPERTY_NAME_LAST_MODIFICATION_DATE) || new Date();
3920
+ const lastAccessDate = getOptionValue(zipWriter, options, PROPERTY_NAME_LAST_ACCESS_DATE);
3921
+ const creationDate = getOptionValue(zipWriter, options, PROPERTY_NAME_CREATION_DATE);
3902
3922
  const password = getOptionValue(zipWriter, options, "password");
3903
3923
  const encryptionStrength = getOptionValue(zipWriter, options, "encryptionStrength") || 3;
3904
3924
  const zipCrypto = getOptionValue(zipWriter, options, "zipCrypto");
@@ -3936,13 +3956,13 @@
3936
3956
  keepOrder = true;
3937
3957
  }
3938
3958
  let uncompressedSize = 0;
3939
- let msDosCompatible = getOptionValue(zipWriter, options, "msDosCompatible");
3959
+ let msDosCompatible = getOptionValue(zipWriter, options, PROPERTY_NAME_MS_DOS_COMPATIBLE);
3940
3960
  if (msDosCompatible === UNDEFINED_VALUE) {
3941
3961
  msDosCompatible = true;
3942
3962
  }
3943
- const internalFileAttribute = getOptionValue(zipWriter, options, "internalFileAttribute") || 0;
3944
- const externalFileAttribute = getOptionValue(zipWriter, options, "externalFileAttribute") || 0;
3945
- let zip64 = getOptionValue(zipWriter, options, "zip64");
3963
+ const internalFileAttribute = getOptionValue(zipWriter, options, PROPERTY_NAME_INTERNAL_FILE_ATTRIBUTE) || 0;
3964
+ const externalFileAttribute = getOptionValue(zipWriter, options, PROPERTY_NAME_EXTERNAL_FILE_ATTRIBUTE) || 0;
3965
+ let zip64 = getOptionValue(zipWriter, options, PROPERTY_NAME_ZIP64);
3946
3966
  if (reader) {
3947
3967
  if (reader instanceof ReadableStream) {
3948
3968
  reader = {
@@ -4018,11 +4038,8 @@
4018
4038
  let fileEntry;
4019
4039
  try {
4020
4040
  fileEntry = await getFileEntry(zipWriter, name, reader, { headerInfo, dataDescriptorInfo }, options);
4021
- } catch (error) {
4022
- if (!error.corruptedEntry && maximumEntrySize) {
4023
- zipWriter.pendingEntriesSize -= maximumEntrySize;
4024
- }
4025
- throw error;
4041
+ } finally {
4042
+ zipWriter.pendingEntriesSize -= maximumEntrySize;
4026
4043
  }
4027
4044
  Object.assign(fileEntry, { name, comment, extraField });
4028
4045
  return new Entry(fileEntry);
@@ -4069,7 +4086,7 @@
4069
4086
  if (zipWriter.addSplitZipSignature) {
4070
4087
  delete zipWriter.addSplitZipSignature;
4071
4088
  const signatureArray = new Uint8Array(4);
4072
- const signatureArrayView = new DataView(signatureArray.buffer);
4089
+ const signatureArrayView = getDataView(signatureArray);
4073
4090
  setUint32(signatureArrayView, 0, SPLIT_ZIP_FILE_SIGNATURE);
4074
4091
  await writeData(writable, signatureArray);
4075
4092
  zipWriter.offset += 4;
@@ -4207,9 +4224,9 @@
4207
4224
  externalFileAttribute,
4208
4225
  diskNumberStart
4209
4226
  };
4227
+ let compressedSize = 0;
4210
4228
  let uncompressedSize = 0;
4211
4229
  let signature;
4212
- let compressedSize = 0;
4213
4230
  const { writable } = writer;
4214
4231
  if (reader) {
4215
4232
  reader.chunkSize = getChunkSize(config);
@@ -4604,7 +4621,7 @@
4604
4621
  const endOfdirectoryView = getDataView(endOfdirectoryArray);
4605
4622
  let lastDiskNumber = writer.diskNumber;
4606
4623
  const { availableSize } = writer;
4607
- if (availableSize < endOfdirectoryArray.length) {
4624
+ if (availableSize < getLength(endOfdirectoryArray)) {
4608
4625
  lastDiskNumber++;
4609
4626
  }
4610
4627
  offset = 0;