@zip.js/zip.js 2.7.39 → 2.7.41
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/deno.json +1 -1
- package/dist/zip-fs-full.js +21 -8
- package/dist/zip-fs-full.min.js +1 -1
- package/dist/zip-fs.js +21 -8
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-full.js +21 -8
- 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 +21 -8
- package/dist/zip.min.js +1 -1
- package/index.cjs +21 -8
- package/index.d.ts +7 -0
- package/index.min.js +1 -1
- package/lib/core/io.js +23 -9
- package/package.json +1 -1
package/deno.json
CHANGED
package/dist/zip-fs-full.js
CHANGED
|
@@ -8633,35 +8633,43 @@
|
|
|
8633
8633
|
const {
|
|
8634
8634
|
preventHeadRequest,
|
|
8635
8635
|
useRangeHeader,
|
|
8636
|
-
forceRangeRequests
|
|
8636
|
+
forceRangeRequests,
|
|
8637
|
+
combineSizeEocd
|
|
8637
8638
|
} = options;
|
|
8638
8639
|
options = Object.assign({}, options);
|
|
8639
8640
|
delete options.preventHeadRequest;
|
|
8640
8641
|
delete options.useRangeHeader;
|
|
8641
8642
|
delete options.forceRangeRequests;
|
|
8643
|
+
delete options.combineSizeEocd;
|
|
8642
8644
|
delete options.useXHR;
|
|
8643
8645
|
Object.assign(httpReader, {
|
|
8644
8646
|
url,
|
|
8645
8647
|
options,
|
|
8646
8648
|
preventHeadRequest,
|
|
8647
8649
|
useRangeHeader,
|
|
8648
|
-
forceRangeRequests
|
|
8650
|
+
forceRangeRequests,
|
|
8651
|
+
combineSizeEocd
|
|
8649
8652
|
});
|
|
8650
8653
|
}
|
|
8651
8654
|
|
|
8652
8655
|
async function initHttpReader(httpReader, sendRequest, getRequestData) {
|
|
8653
8656
|
const {
|
|
8654
8657
|
url,
|
|
8658
|
+
preventHeadRequest,
|
|
8655
8659
|
useRangeHeader,
|
|
8656
|
-
forceRangeRequests
|
|
8660
|
+
forceRangeRequests,
|
|
8661
|
+
combineSizeEocd
|
|
8657
8662
|
} = httpReader;
|
|
8658
|
-
if (isHttpFamily(url) && (useRangeHeader || forceRangeRequests)) {
|
|
8659
|
-
const
|
|
8660
|
-
if (!forceRangeRequests && headers.get(HTTP_HEADER_ACCEPT_RANGES) != HTTP_RANGE_UNIT) {
|
|
8663
|
+
if (isHttpFamily(url) && (useRangeHeader || forceRangeRequests) && (typeof preventHeadRequest == "undefined" || preventHeadRequest)) {
|
|
8664
|
+
const response = await sendRequest(HTTP_METHOD_GET, httpReader, getRangeHeaders(httpReader, combineSizeEocd ? -END_OF_CENTRAL_DIR_LENGTH : undefined));
|
|
8665
|
+
if (!forceRangeRequests && response.headers.get(HTTP_HEADER_ACCEPT_RANGES) != HTTP_RANGE_UNIT) {
|
|
8661
8666
|
throw new Error(ERR_HTTP_RANGE);
|
|
8662
8667
|
} else {
|
|
8668
|
+
if (combineSizeEocd) {
|
|
8669
|
+
httpReader.eocdCache = new Uint8Array(await response.arrayBuffer());
|
|
8670
|
+
}
|
|
8663
8671
|
let contentSize;
|
|
8664
|
-
const contentRangeHeader = headers.get(HTTP_HEADER_CONTENT_RANGE);
|
|
8672
|
+
const contentRangeHeader = response.headers.get(HTTP_HEADER_CONTENT_RANGE);
|
|
8665
8673
|
if (contentRangeHeader) {
|
|
8666
8674
|
const splitHeader = contentRangeHeader.trim().split(/\s*\/\s*/);
|
|
8667
8675
|
if (splitHeader.length) {
|
|
@@ -8686,9 +8694,14 @@
|
|
|
8686
8694
|
const {
|
|
8687
8695
|
useRangeHeader,
|
|
8688
8696
|
forceRangeRequests,
|
|
8697
|
+
eocdCache,
|
|
8698
|
+
size,
|
|
8689
8699
|
options
|
|
8690
8700
|
} = httpReader;
|
|
8691
8701
|
if (useRangeHeader || forceRangeRequests) {
|
|
8702
|
+
if (eocdCache && index == size - END_OF_CENTRAL_DIR_LENGTH && length == END_OF_CENTRAL_DIR_LENGTH) {
|
|
8703
|
+
return eocdCache;
|
|
8704
|
+
}
|
|
8692
8705
|
const response = await sendRequest(HTTP_METHOD_GET, httpReader, getRangeHeaders(httpReader, index, length));
|
|
8693
8706
|
if (response.status != 206) {
|
|
8694
8707
|
throw new Error(ERR_HTTP_RANGE);
|
|
@@ -8704,7 +8717,7 @@
|
|
|
8704
8717
|
}
|
|
8705
8718
|
|
|
8706
8719
|
function getRangeHeaders(httpReader, index = 0, length = 1) {
|
|
8707
|
-
return Object.assign({}, getHeaders(httpReader), { [HTTP_HEADER_RANGE]: HTTP_RANGE_UNIT + "=" + index + "-" + (index + length - 1) });
|
|
8720
|
+
return Object.assign({}, getHeaders(httpReader), { [HTTP_HEADER_RANGE]: HTTP_RANGE_UNIT + "=" + (index < 0 ? index : index + "-" + (index + length - 1)) });
|
|
8708
8721
|
}
|
|
8709
8722
|
|
|
8710
8723
|
function getHeaders({ options }) {
|