@zip.js/zip.js 2.7.66 → 2.7.68
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 +28 -35
- package/dist/zip-fs-full.min.js +1 -1
- package/dist/zip-fs.js +28 -35
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-full.js +28 -35
- package/dist/zip-full.min.js +1 -1
- package/dist/zip-no-worker-deflate.min.js +1 -1
- package/dist/zip-no-worker-inflate.min.js +1 -1
- package/dist/zip-no-worker.min.js +1 -1
- package/dist/zip.js +28 -35
- package/dist/zip.min.js +1 -1
- package/index.cjs +28 -35
- package/index.min.js +1 -1
- package/lib/core/constants.js +2 -0
- package/lib/core/io.js +11 -4
- package/lib/core/zip-writer.js +18 -32
- 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
|
|
|
@@ -7119,11 +7120,18 @@
|
|
|
7119
7120
|
if (eocdCache && index == size - END_OF_CENTRAL_DIR_LENGTH && length == END_OF_CENTRAL_DIR_LENGTH) {
|
|
7120
7121
|
return eocdCache;
|
|
7121
7122
|
}
|
|
7122
|
-
|
|
7123
|
-
|
|
7124
|
-
|
|
7123
|
+
if (index >= size) {
|
|
7124
|
+
return new Uint8Array();
|
|
7125
|
+
} else {
|
|
7126
|
+
if (index + length > size) {
|
|
7127
|
+
length = size - index;
|
|
7128
|
+
}
|
|
7129
|
+
const response = await sendRequest(HTTP_METHOD_GET, httpReader, getRangeHeaders(httpReader, index, length));
|
|
7130
|
+
if (response.status != 206) {
|
|
7131
|
+
throw new Error(ERR_HTTP_RANGE);
|
|
7132
|
+
}
|
|
7133
|
+
return new Uint8Array(await response.arrayBuffer());
|
|
7125
7134
|
}
|
|
7126
|
-
return new Uint8Array(await response.arrayBuffer());
|
|
7127
7135
|
} else {
|
|
7128
7136
|
const { data } = httpReader;
|
|
7129
7137
|
if (!data) {
|
|
@@ -8411,27 +8419,11 @@
|
|
|
8411
8419
|
if (this.filenames.size) {
|
|
8412
8420
|
throw new Error(ERR_ZIP_NOT_EMPTY);
|
|
8413
8421
|
}
|
|
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
|
-
}));
|
|
8422
|
+
reader = new GenericReader(reader);
|
|
8423
|
+
const zipReader = new ZipReader(reader.readable);
|
|
8432
8424
|
const entries = await zipReader.getEntries();
|
|
8433
8425
|
await zipReader.close();
|
|
8434
|
-
await
|
|
8426
|
+
await reader.readable.pipeTo(this.writer.writable, { preventClose: true, preventAbort: true });
|
|
8435
8427
|
this.writer.size = this.offset = reader.size;
|
|
8436
8428
|
this.filenames = new Set(entries.map(entry => entry.filename));
|
|
8437
8429
|
this.files = new Map(entries.map(entry => {
|
|
@@ -8471,7 +8463,7 @@
|
|
|
8471
8463
|
headerView
|
|
8472
8464
|
} = getHeaderArrayData({
|
|
8473
8465
|
version,
|
|
8474
|
-
bitFlag: getBitFlag(level, languageEncodingFlag, dataDescriptor, encrypted),
|
|
8466
|
+
bitFlag: getBitFlag(level, languageEncodingFlag, dataDescriptor, encrypted, compressionMethod),
|
|
8475
8467
|
compressionMethod,
|
|
8476
8468
|
uncompressedSize,
|
|
8477
8469
|
compressedSize,
|
|
@@ -9257,7 +9249,7 @@
|
|
|
9257
9249
|
rawLastModDate
|
|
9258
9250
|
} = getHeaderArrayData({
|
|
9259
9251
|
version,
|
|
9260
|
-
bitFlag: getBitFlag(level, useUnicodeFileNames, dataDescriptor, encrypted),
|
|
9252
|
+
bitFlag: getBitFlag(level, useUnicodeFileNames, dataDescriptor, encrypted, compressionMethod),
|
|
9261
9253
|
compressionMethod,
|
|
9262
9254
|
uncompressedSize,
|
|
9263
9255
|
lastModDate: lastModDate < MIN_DATE ? MIN_DATE : lastModDate > MAX_DATE ? MAX_DATE : lastModDate,
|
|
@@ -9745,8 +9737,7 @@
|
|
|
9745
9737
|
};
|
|
9746
9738
|
}
|
|
9747
9739
|
|
|
9748
|
-
|
|
9749
|
-
function getBitFlag(level, useUnicodeFileNames, dataDescriptor, encrypted) {
|
|
9740
|
+
function getBitFlag(level, useUnicodeFileNames, dataDescriptor, encrypted, compressionMethod) {
|
|
9750
9741
|
let bitFlag = 0;
|
|
9751
9742
|
if (useUnicodeFileNames) {
|
|
9752
9743
|
bitFlag = bitFlag | BITFLAG_LANG_ENCODING_FLAG;
|
|
@@ -9754,14 +9745,16 @@
|
|
|
9754
9745
|
if (dataDescriptor) {
|
|
9755
9746
|
bitFlag = bitFlag | BITFLAG_DATA_DESCRIPTOR;
|
|
9756
9747
|
}
|
|
9757
|
-
if (
|
|
9758
|
-
|
|
9759
|
-
|
|
9760
|
-
|
|
9761
|
-
|
|
9762
|
-
|
|
9763
|
-
|
|
9764
|
-
|
|
9748
|
+
if (compressionMethod == COMPRESSION_METHOD_DEFLATE || compressionMethod == COMPRESSION_METHOD_DEFLATE_64) {
|
|
9749
|
+
if (level >= 0 && level <= 3) {
|
|
9750
|
+
bitFlag = bitFlag | BITFLAG_LEVEL_SUPER_FAST_MASK;
|
|
9751
|
+
}
|
|
9752
|
+
if (level > 3 && level <= 5) {
|
|
9753
|
+
bitFlag = bitFlag | BITFLAG_LEVEL_FAST_MASK;
|
|
9754
|
+
}
|
|
9755
|
+
if (level == 9) {
|
|
9756
|
+
bitFlag = bitFlag | BITFLAG_LEVEL_MAX_MASK;
|
|
9757
|
+
}
|
|
9765
9758
|
}
|
|
9766
9759
|
if (encrypted) {
|
|
9767
9760
|
bitFlag = bitFlag | BITFLAG_ENCRYPTED;
|