@zip.js/zip.js 2.7.66 → 2.7.67

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
@@ -4247,6 +4247,7 @@ function ZipInflate(options) {
4247
4247
  const MAX_32_BITS = 0xffffffff;
4248
4248
  const MAX_16_BITS = 0xffff;
4249
4249
  const COMPRESSION_METHOD_DEFLATE = 0x08;
4250
+ const COMPRESSION_METHOD_DEFLATE_64 = 0x09;
4250
4251
  const COMPRESSION_METHOD_STORE = 0x00;
4251
4252
  const COMPRESSION_METHOD_AES = 0x63;
4252
4253
 
@@ -10037,27 +10038,11 @@ class ZipWriter {
10037
10038
  if (this.filenames.size) {
10038
10039
  throw new Error(ERR_ZIP_NOT_EMPTY);
10039
10040
  }
10040
- ({ reader } = new GenericReader(reader));
10041
- const [zipEntriesReader, zipDataReader] = reader.readable.tee();
10042
- const zipReader = new ZipReader(new ReadableStream({
10043
- async start(controller) {
10044
- const reader = zipEntriesReader.getReader();
10045
- await readChunk();
10046
-
10047
- async function readChunk() {
10048
- const { done, value } = await reader.read();
10049
- if (done) {
10050
- controller.close();
10051
- } else {
10052
- controller.enqueue(value);
10053
- await readChunk();
10054
- }
10055
- }
10056
- }
10057
- }));
10041
+ reader = new GenericReader(reader);
10042
+ const zipReader = new ZipReader(reader.readable);
10058
10043
  const entries = await zipReader.getEntries();
10059
10044
  await zipReader.close();
10060
- await zipDataReader.pipeTo(this.writer.writable, { preventClose: true, preventAbort: true });
10045
+ await reader.readable.pipeTo(this.writer.writable, { preventClose: true, preventAbort: true });
10061
10046
  this.writer.size = this.offset = reader.size;
10062
10047
  this.filenames = new Set(entries.map(entry => entry.filename));
10063
10048
  this.files = new Map(entries.map(entry => {
@@ -10097,7 +10082,7 @@ class ZipWriter {
10097
10082
  headerView
10098
10083
  } = getHeaderArrayData({
10099
10084
  version,
10100
- bitFlag: getBitFlag(level, languageEncodingFlag, dataDescriptor, encrypted),
10085
+ bitFlag: getBitFlag(level, languageEncodingFlag, dataDescriptor, encrypted, compressionMethod),
10101
10086
  compressionMethod,
10102
10087
  uncompressedSize,
10103
10088
  compressedSize,
@@ -10883,7 +10868,7 @@ function getHeaderInfo(options) {
10883
10868
  rawLastModDate
10884
10869
  } = getHeaderArrayData({
10885
10870
  version,
10886
- bitFlag: getBitFlag(level, useUnicodeFileNames, dataDescriptor, encrypted),
10871
+ bitFlag: getBitFlag(level, useUnicodeFileNames, dataDescriptor, encrypted, compressionMethod),
10887
10872
  compressionMethod,
10888
10873
  uncompressedSize,
10889
10874
  lastModDate: lastModDate < MIN_DATE ? MIN_DATE : lastModDate > MAX_DATE ? MAX_DATE : lastModDate,
@@ -11371,8 +11356,7 @@ function getHeaderArrayData({
11371
11356
  };
11372
11357
  }
11373
11358
 
11374
-
11375
- function getBitFlag(level, useUnicodeFileNames, dataDescriptor, encrypted) {
11359
+ function getBitFlag(level, useUnicodeFileNames, dataDescriptor, encrypted, compressionMethod) {
11376
11360
  let bitFlag = 0;
11377
11361
  if (useUnicodeFileNames) {
11378
11362
  bitFlag = bitFlag | BITFLAG_LANG_ENCODING_FLAG;
@@ -11380,14 +11364,16 @@ function getBitFlag(level, useUnicodeFileNames, dataDescriptor, encrypted) {
11380
11364
  if (dataDescriptor) {
11381
11365
  bitFlag = bitFlag | BITFLAG_DATA_DESCRIPTOR;
11382
11366
  }
11383
- if (level > 0 && level <= 3) {
11384
- bitFlag = bitFlag | BITFLAG_LEVEL_SUPER_FAST_MASK;
11385
- }
11386
- if (level > 3 && level <= 5) {
11387
- bitFlag = bitFlag | BITFLAG_LEVEL_FAST_MASK;
11388
- }
11389
- if (level == 9) {
11390
- bitFlag = bitFlag | BITFLAG_LEVEL_MAX_MASK;
11367
+ if (compressionMethod == COMPRESSION_METHOD_DEFLATE || compressionMethod == COMPRESSION_METHOD_DEFLATE_64) {
11368
+ if (level >= 0 && level <= 3) {
11369
+ bitFlag = bitFlag | BITFLAG_LEVEL_SUPER_FAST_MASK;
11370
+ }
11371
+ if (level > 3 && level <= 5) {
11372
+ bitFlag = bitFlag | BITFLAG_LEVEL_FAST_MASK;
11373
+ }
11374
+ if (level == 9) {
11375
+ bitFlag = bitFlag | BITFLAG_LEVEL_MAX_MASK;
11376
+ }
11391
11377
  }
11392
11378
  if (encrypted) {
11393
11379
  bitFlag = bitFlag | BITFLAG_ENCRYPTED;