@zip.js/zip.js 2.7.67 → 2.7.69

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zip-js/zip-js",
3
- "version": "2.7.67",
3
+ "version": "2.7.69",
4
4
  "exports": {
5
5
  ".": "./index.js",
6
6
  "./data-uri": "./lib/zip-data-uri.js"
@@ -8752,11 +8752,18 @@
8752
8752
  if (eocdCache && index == size - END_OF_CENTRAL_DIR_LENGTH && length == END_OF_CENTRAL_DIR_LENGTH) {
8753
8753
  return eocdCache;
8754
8754
  }
8755
- const response = await sendRequest(HTTP_METHOD_GET, httpReader, getRangeHeaders(httpReader, index, length));
8756
- if (response.status != 206) {
8757
- throw new Error(ERR_HTTP_RANGE);
8755
+ if (index >= size) {
8756
+ return new Uint8Array();
8757
+ } else {
8758
+ if (index + length > size) {
8759
+ length = size - index;
8760
+ }
8761
+ const response = await sendRequest(HTTP_METHOD_GET, httpReader, getRangeHeaders(httpReader, index, length));
8762
+ if (response.status != 206) {
8763
+ throw new Error(ERR_HTTP_RANGE);
8764
+ }
8765
+ return new Uint8Array(await response.arrayBuffer());
8758
8766
  }
8759
- return new Uint8Array(await response.arrayBuffer());
8760
8767
  } else {
8761
8768
  const { data } = httpReader;
8762
8769
  if (!data) {
@@ -10507,7 +10514,7 @@
10507
10514
  if (zip64) {
10508
10515
  updateZip64ExtraField(fileEntry);
10509
10516
  }
10510
- updateLocalHeader(fileEntry, localHeaderView);
10517
+ updateLocalHeader(fileEntry, localHeaderView, options);
10511
10518
  await skipDiskIfNeeded(writable);
10512
10519
  await writeData(writer, localHeaderArray);
10513
10520
  await blob.stream().pipeTo(writable, { preventClose: true, preventAbort: true, signal });
@@ -10901,6 +10908,10 @@
10901
10908
  arraySet(localHeaderArray, rawExtraFieldNTFS, localHeaderOffset);
10902
10909
  localHeaderOffset += getLength(rawExtraFieldNTFS);
10903
10910
  arraySet(localHeaderArray, rawExtraField, localHeaderOffset);
10911
+ if (dataDescriptor) {
10912
+ setUint32(localHeaderView, HEADER_OFFSET_COMPRESSED_SIZE + 4, 0);
10913
+ setUint32(localHeaderView, HEADER_OFFSET_UNCOMPRESSED_SIZE + 4, 0);
10914
+ }
10904
10915
  return {
10905
10916
  localHeaderArray,
10906
10917
  localHeaderView,
@@ -11007,7 +11018,6 @@
11007
11018
 
11008
11019
  function updateLocalHeader({
11009
11020
  rawFilename,
11010
- dataDescriptor,
11011
11021
  encrypted,
11012
11022
  zip64,
11013
11023
  localExtraFieldZip64Length,
@@ -11020,7 +11030,7 @@
11020
11030
  zip64CompressedSize,
11021
11031
  zip64Offset,
11022
11032
  zip64DiskNumberStart
11023
- }, localHeaderView) {
11033
+ }, localHeaderView, { dataDescriptor }) {
11024
11034
  if (!dataDescriptor) {
11025
11035
  if (!encrypted) {
11026
11036
  setUint32(localHeaderView, HEADER_OFFSET_SIGNATURE + 4, signature);