@zip.js/zip.js 2.7.65 → 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,
@@ -11335,7 +11320,7 @@ function getLength(...arrayLikes) {
11335
11320
 
11336
11321
  function getHeaderArrayData({
11337
11322
  version,
11338
- bitflag,
11323
+ bitFlag,
11339
11324
  compressionMethod,
11340
11325
  uncompressedSize,
11341
11326
  compressedSize,
@@ -11348,7 +11333,7 @@ function getHeaderArrayData({
11348
11333
  const headerArray = new Uint8Array(HEADER_SIZE);
11349
11334
  const headerView = getDataView(headerArray);
11350
11335
  setUint16(headerView, 0, version);
11351
- setUint16(headerView, 2, bitflag);
11336
+ setUint16(headerView, 2, bitFlag);
11352
11337
  setUint16(headerView, 4, compressionMethod);
11353
11338
  const dateArray = new Uint32Array(1);
11354
11339
  const dateView = getDataView(dateArray);
@@ -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 < 2) {
11384
- bitFlag = bitFlag | BITFLAG_LEVEL_SUPER_FAST_MASK;
11385
- }
11386
- if (level >= 3 && level < 6) {
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;
package/index.d.ts CHANGED
@@ -1475,7 +1475,7 @@ export interface ZipWriterConstructorOptions {
1475
1475
  *
1476
1476
  * The minimum value is 0 and means that no compression is applied. The maximum value is 9.
1477
1477
  *
1478
- * @defaultValue 5
1478
+ * @defaultValue 6
1479
1479
  */
1480
1480
  level?: number;
1481
1481
  /**