@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/.github/workflows/publish.yml +19 -2
- package/deno.json +1 -1
- package/dist/zip-fs-full.js +19 -33
- package/dist/zip-fs-full.min.js +1 -1
- package/dist/zip-fs.js +19 -33
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-full.js +19 -33
- package/dist/zip-full.min.js +1 -1
- package/dist/zip-no-worker-deflate.min.js +1 -1
- package/dist/zip-no-worker.min.js +1 -1
- package/dist/zip.js +19 -33
- package/dist/zip.min.js +1 -1
- package/index.cjs +19 -33
- package/index.d.ts +1 -1
- package/index.min.js +1 -1
- package/lib/core/constants.js +2 -0
- package/lib/core/zip-writer.js +20 -34
- package/package.json +2 -2
package/dist/zip-full.js
CHANGED
|
@@ -4253,6 +4253,7 @@
|
|
|
4253
4253
|
const MAX_32_BITS = 0xffffffff;
|
|
4254
4254
|
const MAX_16_BITS = 0xffff;
|
|
4255
4255
|
const COMPRESSION_METHOD_DEFLATE = 0x08;
|
|
4256
|
+
const COMPRESSION_METHOD_DEFLATE_64 = 0x09;
|
|
4256
4257
|
const COMPRESSION_METHOD_STORE = 0x00;
|
|
4257
4258
|
const COMPRESSION_METHOD_AES = 0x63;
|
|
4258
4259
|
|
|
@@ -8411,27 +8412,11 @@
|
|
|
8411
8412
|
if (this.filenames.size) {
|
|
8412
8413
|
throw new Error(ERR_ZIP_NOT_EMPTY);
|
|
8413
8414
|
}
|
|
8414
|
-
|
|
8415
|
-
const
|
|
8416
|
-
const zipReader = new ZipReader(new ReadableStream({
|
|
8417
|
-
async start(controller) {
|
|
8418
|
-
const reader = zipEntriesReader.getReader();
|
|
8419
|
-
await readChunk();
|
|
8420
|
-
|
|
8421
|
-
async function readChunk() {
|
|
8422
|
-
const { done, value } = await reader.read();
|
|
8423
|
-
if (done) {
|
|
8424
|
-
controller.close();
|
|
8425
|
-
} else {
|
|
8426
|
-
controller.enqueue(value);
|
|
8427
|
-
await readChunk();
|
|
8428
|
-
}
|
|
8429
|
-
}
|
|
8430
|
-
}
|
|
8431
|
-
}));
|
|
8415
|
+
reader = new GenericReader(reader);
|
|
8416
|
+
const zipReader = new ZipReader(reader.readable);
|
|
8432
8417
|
const entries = await zipReader.getEntries();
|
|
8433
8418
|
await zipReader.close();
|
|
8434
|
-
await
|
|
8419
|
+
await reader.readable.pipeTo(this.writer.writable, { preventClose: true, preventAbort: true });
|
|
8435
8420
|
this.writer.size = this.offset = reader.size;
|
|
8436
8421
|
this.filenames = new Set(entries.map(entry => entry.filename));
|
|
8437
8422
|
this.files = new Map(entries.map(entry => {
|
|
@@ -8471,7 +8456,7 @@
|
|
|
8471
8456
|
headerView
|
|
8472
8457
|
} = getHeaderArrayData({
|
|
8473
8458
|
version,
|
|
8474
|
-
|
|
8459
|
+
bitFlag: getBitFlag(level, languageEncodingFlag, dataDescriptor, encrypted, compressionMethod),
|
|
8475
8460
|
compressionMethod,
|
|
8476
8461
|
uncompressedSize,
|
|
8477
8462
|
compressedSize,
|
|
@@ -9257,7 +9242,7 @@
|
|
|
9257
9242
|
rawLastModDate
|
|
9258
9243
|
} = getHeaderArrayData({
|
|
9259
9244
|
version,
|
|
9260
|
-
|
|
9245
|
+
bitFlag: getBitFlag(level, useUnicodeFileNames, dataDescriptor, encrypted, compressionMethod),
|
|
9261
9246
|
compressionMethod,
|
|
9262
9247
|
uncompressedSize,
|
|
9263
9248
|
lastModDate: lastModDate < MIN_DATE ? MIN_DATE : lastModDate > MAX_DATE ? MAX_DATE : lastModDate,
|
|
@@ -9709,7 +9694,7 @@
|
|
|
9709
9694
|
|
|
9710
9695
|
function getHeaderArrayData({
|
|
9711
9696
|
version,
|
|
9712
|
-
|
|
9697
|
+
bitFlag,
|
|
9713
9698
|
compressionMethod,
|
|
9714
9699
|
uncompressedSize,
|
|
9715
9700
|
compressedSize,
|
|
@@ -9722,7 +9707,7 @@
|
|
|
9722
9707
|
const headerArray = new Uint8Array(HEADER_SIZE);
|
|
9723
9708
|
const headerView = getDataView(headerArray);
|
|
9724
9709
|
setUint16(headerView, 0, version);
|
|
9725
|
-
setUint16(headerView, 2,
|
|
9710
|
+
setUint16(headerView, 2, bitFlag);
|
|
9726
9711
|
setUint16(headerView, 4, compressionMethod);
|
|
9727
9712
|
const dateArray = new Uint32Array(1);
|
|
9728
9713
|
const dateView = getDataView(dateArray);
|
|
@@ -9745,8 +9730,7 @@
|
|
|
9745
9730
|
};
|
|
9746
9731
|
}
|
|
9747
9732
|
|
|
9748
|
-
|
|
9749
|
-
function getBitflag(level, useUnicodeFileNames, dataDescriptor, encrypted) {
|
|
9733
|
+
function getBitFlag(level, useUnicodeFileNames, dataDescriptor, encrypted, compressionMethod) {
|
|
9750
9734
|
let bitFlag = 0;
|
|
9751
9735
|
if (useUnicodeFileNames) {
|
|
9752
9736
|
bitFlag = bitFlag | BITFLAG_LANG_ENCODING_FLAG;
|
|
@@ -9754,14 +9738,16 @@
|
|
|
9754
9738
|
if (dataDescriptor) {
|
|
9755
9739
|
bitFlag = bitFlag | BITFLAG_DATA_DESCRIPTOR;
|
|
9756
9740
|
}
|
|
9757
|
-
if (
|
|
9758
|
-
|
|
9759
|
-
|
|
9760
|
-
|
|
9761
|
-
|
|
9762
|
-
|
|
9763
|
-
|
|
9764
|
-
|
|
9741
|
+
if (compressionMethod == COMPRESSION_METHOD_DEFLATE || compressionMethod == COMPRESSION_METHOD_DEFLATE_64) {
|
|
9742
|
+
if (level >= 0 && level <= 3) {
|
|
9743
|
+
bitFlag = bitFlag | BITFLAG_LEVEL_SUPER_FAST_MASK;
|
|
9744
|
+
}
|
|
9745
|
+
if (level > 3 && level <= 5) {
|
|
9746
|
+
bitFlag = bitFlag | BITFLAG_LEVEL_FAST_MASK;
|
|
9747
|
+
}
|
|
9748
|
+
if (level == 9) {
|
|
9749
|
+
bitFlag = bitFlag | BITFLAG_LEVEL_MAX_MASK;
|
|
9750
|
+
}
|
|
9765
9751
|
}
|
|
9766
9752
|
if (encrypted) {
|
|
9767
9753
|
bitFlag = bitFlag | BITFLAG_ENCRYPTED;
|