@zip.js/zip.js 2.6.14 → 2.6.15

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-full.js CHANGED
@@ -7986,8 +7986,9 @@
7986
7986
  let bufferedWrite;
7987
7987
  let releaseLockWriter;
7988
7988
  let releaseLockCurrentFileEntry;
7989
- let bufferedDataWritten;
7989
+ let writingBufferedData;
7990
7990
  let fileWriter;
7991
+ let fileWriterSize;
7991
7992
  files.set(name, fileEntry);
7992
7993
  try {
7993
7994
  let lockPreviousFileEntry;
@@ -8004,6 +8005,7 @@
8004
8005
  await initStream(writer);
8005
8006
  fileWriter = writer;
8006
8007
  }
8008
+ fileWriterSize = fileWriter.size;
8007
8009
  fileEntry = await createFileEntry(reader, fileEntry, fileWriter.writable, zipWriter.config, options);
8008
8010
  files.set(name, fileEntry);
8009
8011
  fileEntry.filename = name;
@@ -8011,7 +8013,7 @@
8011
8013
  let blob = fileWriter.getData();
8012
8014
  await lockPreviousFileEntry;
8013
8015
  await requestLockWriter();
8014
- bufferedDataWritten = true;
8016
+ writingBufferedData = true;
8015
8017
  const { writable } = writer;
8016
8018
  if (!dataDescriptor) {
8017
8019
  const headerLength = 26;
@@ -8031,7 +8033,7 @@
8031
8033
  blob = blob.slice(headerLength);
8032
8034
  }
8033
8035
  await blob.stream().pipeTo(writable, { preventClose: true, signal });
8034
- bufferedDataWritten = false;
8036
+ writingBufferedData = false;
8035
8037
  }
8036
8038
  fileEntry.offset = zipWriter.offset;
8037
8039
  if (fileEntry.zip64) {
@@ -8043,9 +8045,12 @@
8043
8045
  zipWriter.offset += fileEntry.length;
8044
8046
  return fileEntry;
8045
8047
  } catch (error) {
8046
- if ((bufferedWrite && bufferedDataWritten) || (!bufferedWrite && fileEntry.dataWritten)) {
8047
- error.corruptedEntry = zipWriter.hasCorruptedEntries = true;
8048
- zipWriter.offset += fileWriter.size;
8048
+ if ((bufferedWrite && writingBufferedData) || (!bufferedWrite && fileEntry.writingData)) {
8049
+ zipWriter.hasCorruptedEntries = true;
8050
+ if (error) {
8051
+ error.corruptedEntry = true;
8052
+ }
8053
+ zipWriter.offset += fileWriter.size - fileWriterSize;
8049
8054
  }
8050
8055
  files.delete(name);
8051
8056
  throw error;
@@ -8222,10 +8227,10 @@
8222
8227
  arraySet(localHeaderArray, rawExtraField, 30 + rawFilename.length + rawExtraFieldAES.length + rawExtraFieldExtendedTimestamp.length + rawExtraFieldNTFS.length);
8223
8228
  let result;
8224
8229
  let compressedSize = 0;
8230
+ fileEntry.writingData = pendingFileEntry.writingData = true;
8225
8231
  if (reader) {
8226
8232
  reader.chunkSize = getChunkSize(config);
8227
8233
  await writeData(writable, localHeaderArray);
8228
- fileEntry.dataWritten = pendingFileEntry.dataWritten = true;
8229
8234
  const size = () => reader.size;
8230
8235
  const readable = reader.readable;
8231
8236
  readable.size = size;
@@ -8252,7 +8257,6 @@
8252
8257
  compressedSize = result.size;
8253
8258
  } else {
8254
8259
  await writeData(writable, localHeaderArray);
8255
- fileEntry.dataWritten = pendingFileEntry.dataWritten = true;
8256
8260
  }
8257
8261
  let dataDescriptorArray = new Uint8Array();
8258
8262
  let dataDescriptorView, dataDescriptorOffset = 0;
@@ -8305,7 +8309,8 @@
8305
8309
  creationDate,
8306
8310
  lastAccessDate,
8307
8311
  encrypted,
8308
- length
8312
+ length,
8313
+ writingData: false
8309
8314
  });
8310
8315
  return fileEntry;
8311
8316
  }