@zip.js/zip.js 2.8.61 → 2.10.0

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/dist/zip.js CHANGED
@@ -495,7 +495,7 @@
495
495
  // Every table MUST stay a PACKED_SMI array: build with array literals (not `new Array(n)`,
496
496
  // which is HOLEY) and store the signed int32 XOR result (no `>>> 0`). An unsigned or holey
497
497
  // table becomes a V8 FixedDoubleArray whose every hot-loop lookup unboxes a double (~1.6x
498
- // slower). Signedness is irrelevant to the result — the reads mask/shift it and the final
498
+ // slower). Signedness is irrelevant to the result: the reads mask/shift it and the final
499
499
  // `~crc` normalizes it. Do NOT reintroduce `>>> 0` here or switch to `new Array(256)`.
500
500
  const T = [[], [], [], [], [], [], [], []];
501
501
  for (let n = 0; n < 256; n++) {
@@ -3481,21 +3481,14 @@
3481
3481
  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3482
3482
  */
3483
3483
 
3484
- /* global TextDecoder */
3485
-
3486
- const CP437 = "\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split("");
3487
- const VALID_CP437 = CP437.length == 256;
3484
+ const CP437 = "\0\u263A\u263B\u2665\u2666\u2663\u2660\u2022\u25D8\u25CB\u25D9\u2642\u2640\u266A\u266B\u263C\u25BA\u25C4\u2195\u203C\u00B6\u00A7\u25AC\u21A8\u2191\u2193\u2192\u2190\u221F\u2194\u25B2\u25BC !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\u00C7\u00FC\u00E9\u00E2\u00E4\u00E0\u00E5\u00E7\u00EA\u00EB\u00E8\u00EF\u00EE\u00EC\u00C4\u00C5\u00C9\u00E6\u00C6\u00F4\u00F6\u00F2\u00FB\u00F9\u00FF\u00D6\u00DC\u00A2\u00A3\u00A5\u20A7\u0192\u00E1\u00ED\u00F3\u00FA\u00F1\u00D1\u00AA\u00BA\u00BF\u2310\u00AC\u00BD\u00BC\u00A1\u00AB\u00BB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\u00DF\u0393\u03C0\u03A3\u03C3\u00B5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\u00B1\u2265\u2264\u2320\u2321\u00F7\u2248\u00B0\u2219\u00B7\u221A\u207F\u00B2\u25A0\u00A0".split("");
3488
3485
 
3489
3486
  function decodeCP437(stringValue) {
3490
- if (VALID_CP437) {
3491
- let result = "";
3492
- for (let indexCharacter = 0; indexCharacter < stringValue.length; indexCharacter++) {
3493
- result += CP437[stringValue[indexCharacter]];
3494
- }
3495
- return result;
3496
- } else {
3497
- return new TextDecoder().decode(stringValue);
3487
+ let result = "";
3488
+ for (let indexCharacter = 0; indexCharacter < stringValue.length; indexCharacter++) {
3489
+ result += CP437[stringValue[indexCharacter]];
3498
3490
  }
3491
+ return result;
3499
3492
  }
3500
3493
 
3501
3494
  /*
@@ -4729,6 +4722,7 @@
4729
4722
  const WARNING_WRAPPED_ENTRIES_COUNT = "wrapped entries count";
4730
4723
  const WARNING_APPENDED_DATA = "appended data";
4731
4724
  const WARNING_PREPENDED_DATA = "prepended data";
4725
+ const WARNING_PREPENDED_CENTRAL_DIRECTORY = "prepended central directory";
4732
4726
  const WARNING_TRAILING_CENTRAL_DIRECTORY_DATA = "trailing central directory data";
4733
4727
  const WARNING_DUPLICATE_FILENAME = "duplicate filename";
4734
4728
  const WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY = "mismatched zip64 end of central directory record";
@@ -4822,6 +4816,7 @@
4822
4816
  let diskNumber = getUint16$1(endOfDirectoryView, 6);
4823
4817
  let filesLength = getUint16$1(endOfDirectoryView, 10);
4824
4818
  let prependedDataLength = 0;
4819
+ let prependedCentralDirectory;
4825
4820
  let startOffset;
4826
4821
  let zip64EndOfDirectory;
4827
4822
  let zip64EndOfDirectoryVersion2;
@@ -4925,6 +4920,7 @@
4925
4920
  directoryDataOffset = expectedDirectoryDataOffset;
4926
4921
  if (directoryDataOffset > originalDirectoryDataOffset) {
4927
4922
  prependedDataLength += directoryDataOffset - originalDirectoryDataOffset;
4923
+ prependedCentralDirectory = storedPointsAtDirectory;
4928
4924
  }
4929
4925
  directoryArray = await readUint8Array(reader, directoryDataOffset, directoryDataLength);
4930
4926
  directoryView = getDataView(directoryArray);
@@ -5152,6 +5148,9 @@
5152
5148
  if (prependedDataLength || (filesLength && startOffset > SPLIT_ZIP_FILE_SIGNATURE_LENGTH)) {
5153
5149
  addWarning(warnings, WARNING_PREPENDED_DATA);
5154
5150
  }
5151
+ if (prependedCentralDirectory) {
5152
+ addWarning(warnings, WARNING_PREPENDED_CENTRAL_DIRECTORY);
5153
+ }
5155
5154
  if (extractPrependedData) {
5156
5155
  zipReader.prependedData = startOffset > splitZipSignatureLength ?
5157
5156
  await readUint8Array(reader, splitZipSignatureLength, startOffset - splitZipSignatureLength) :
@@ -6212,6 +6211,7 @@
6212
6211
  WARNING_MISMATCHED_LOCAL_FILE_HEADER_COMPRESSION_METHOD: WARNING_MISMATCHED_LOCAL_FILE_HEADER_COMPRESSION_METHOD,
6213
6212
  WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES: WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES,
6214
6213
  WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY: WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY,
6214
+ WARNING_PREPENDED_CENTRAL_DIRECTORY: WARNING_PREPENDED_CENTRAL_DIRECTORY,
6215
6215
  WARNING_PREPENDED_DATA: WARNING_PREPENDED_DATA,
6216
6216
  WARNING_TRAILING_CENTRAL_DIRECTORY_DATA: WARNING_TRAILING_CENTRAL_DIRECTORY_DATA,
6217
6217
  WARNING_UNKNOWN_VERSION: WARNING_UNKNOWN_VERSION,
@@ -8528,7 +8528,7 @@
8528
8528
  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
8529
8529
  */
8530
8530
 
8531
- const VERSION = "2.8.61";
8531
+ const VERSION = "2.10.0";
8532
8532
 
8533
8533
  /*
8534
8534
  Copyright (c) 2025 Gildas Lormeau. All rights reserved.
@@ -9512,6 +9512,7 @@
9512
9512
  exports.WARNING_MISMATCHED_LOCAL_FILE_HEADER_COMPRESSION_METHOD = WARNING_MISMATCHED_LOCAL_FILE_HEADER_COMPRESSION_METHOD;
9513
9513
  exports.WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES = WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES;
9514
9514
  exports.WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY = WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY;
9515
+ exports.WARNING_PREPENDED_CENTRAL_DIRECTORY = WARNING_PREPENDED_CENTRAL_DIRECTORY;
9515
9516
  exports.WARNING_PREPENDED_DATA = WARNING_PREPENDED_DATA;
9516
9517
  exports.WARNING_TRAILING_CENTRAL_DIRECTORY_DATA = WARNING_TRAILING_CENTRAL_DIRECTORY_DATA;
9517
9518
  exports.WARNING_UNKNOWN_VERSION = WARNING_UNKNOWN_VERSION;