@ai-matrx/vault 0.1.40 → 0.1.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.
@@ -13,10 +13,10 @@ var __export = (target, all) => {
13
13
  __defProp(target, name, { get: all[name], enumerable: true });
14
14
  };
15
15
 
16
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/constants.js
17
- var MAX_32_BITS, MAX_16_BITS, MAX_8_BITS, COMPRESSION_METHOD_DEFLATE, COMPRESSION_METHOD_DEFLATE_64, COMPRESSION_METHOD_STORE, COMPRESSION_METHOD_AES, LOCAL_FILE_HEADER_SIGNATURE, SPLIT_ZIP_FILE_SIGNATURE, TEMPORARY_SPLIT_ZIP_FILE_SIGNATURE, DATA_DESCRIPTOR_RECORD_SIGNATURE, ARCHIVE_EXTRA_DATA_SIGNATURE, DIGITAL_SIGNATURE_RECORD_SIGNATURE, CENTRAL_FILE_HEADER_SIGNATURE, END_OF_CENTRAL_DIR_SIGNATURE, ZIP64_END_OF_CENTRAL_DIR_SIGNATURE, ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIGNATURE, CENTRAL_FILE_HEADER_LENGTH, END_OF_CENTRAL_DIR_LENGTH, ZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH, ZIP64_END_OF_CENTRAL_DIR_LENGTH, ZIP64_END_OF_CENTRAL_DIR_TOTAL_LENGTH, DATA_DESCRIPTOR_RECORD_LENGTH, DATA_DESCRIPTOR_RECORD_ZIP_64_LENGTH, DATA_DESCRIPTOR_RECORD_SIGNATURE_LENGTH, SPLIT_ZIP_FILE_SIGNATURE_LENGTH, EXTRAFIELD_TYPE_ZIP64, EXTRAFIELD_TYPE_AES, EXTRAFIELD_TYPE_NTFS, EXTRAFIELD_TYPE_NTFS_TAG1, EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP, EXTRAFIELD_TYPE_UNICODE_PATH, EXTRAFIELD_TYPE_UNICODE_COMMENT, EXTRAFIELD_TYPE_USDZ, EXTRAFIELD_TYPE_INFOZIP, EXTRAFIELD_TYPE_UNIX, EXTRAFIELD_TYPE_UNIX_TYPE1, EXTRAFIELD_TYPE_PKWARE_UNIX, BITFLAG_ENCRYPTED, BITFLAG_LEVEL, BITFLAG_LEVEL_MAX_MASK, BITFLAG_LEVEL_FAST_MASK, BITFLAG_LEVEL_SUPER_FAST_MASK, BITFLAG_DATA_DESCRIPTOR, BITFLAG_COMPRESSED_PATCHED_DATA, BITFLAG_STRONG_ENCRYPTION, BITFLAG_LANG_ENCODING_FLAG, BITFLAG_MASKED_LOCAL_HEADERS, FILE_ATTR_MSDOS_DIR_MASK, FILE_ATTR_MSDOS_READONLY_MASK, FILE_ATTR_MSDOS_HIDDEN_MASK, FILE_ATTR_MSDOS_SYSTEM_MASK, FILE_ATTR_MSDOS_ARCHIVE_MASK, FILE_ATTR_UNIX_TYPE_MASK, FILE_ATTR_UNIX_TYPE_DIR, FILE_ATTR_UNIX_TYPE_SYMLINK, FILE_ATTR_UNIX_TYPE_FILE, FILE_ATTR_UNIX_EXECUTABLE_MASK, FILE_ATTR_UNIX_DEFAULT_MASK, FILE_ATTR_UNIX_SETUID_MASK, FILE_ATTR_UNIX_SETGID_MASK, FILE_ATTR_UNIX_STICKY_MASK, VERSION_STORE, VERSION_DEFLATE, VERSION_ZIP64, VERSION_AES, VERSION_MADE_BY_MSDOS, VERSION_MADE_BY_UNIX, DIRECTORY_SIGNATURE, HEADER_SIZE, HEADER_OFFSET_VERSION, HEADER_OFFSET_SIGNATURE, HEADER_OFFSET_COMPRESSED_SIZE, HEADER_OFFSET_UNCOMPRESSED_SIZE, HEADER_OFFSET_FILENAME_LENGTH, HEADER_OFFSET_EXTRAFIELD_LENGTH, LOCAL_HEADER_COMMON_OFFSET, MAX_DATE, MIN_DATE, UNDEFINED_VALUE, INFINITY_VALUE, UNDEFINED_TYPE, FUNCTION_TYPE, OBJECT_TYPE, STRING_TYPE, NUMBER_TYPE, BOOLEAN_TYPE, EMPTY_UINT8_ARRAY, SYMBOL_ASYNC_DISPOSE;
16
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/constants.js
17
+ var MAX_32_BITS, MAX_16_BITS, MAX_8_BITS, COMPRESSION_METHOD_DEFLATE, COMPRESSION_METHOD_DEFLATE_64, COMPRESSION_METHOD_STORE, COMPRESSION_METHOD_AES, LOCAL_FILE_HEADER_SIGNATURE, SPLIT_ZIP_FILE_SIGNATURE, TEMPORARY_SPLIT_ZIP_FILE_SIGNATURE, DATA_DESCRIPTOR_RECORD_SIGNATURE, ARCHIVE_EXTRA_DATA_SIGNATURE, DIGITAL_SIGNATURE_RECORD_SIGNATURE, CENTRAL_FILE_HEADER_SIGNATURE, END_OF_CENTRAL_DIR_SIGNATURE, ZIP64_END_OF_CENTRAL_DIR_SIGNATURE, ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIGNATURE, CENTRAL_FILE_HEADER_LENGTH, END_OF_CENTRAL_DIR_LENGTH, ZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH, ZIP64_END_OF_CENTRAL_DIR_LENGTH, ZIP64_END_OF_CENTRAL_DIR_TOTAL_LENGTH, DATA_DESCRIPTOR_RECORD_LENGTH, DATA_DESCRIPTOR_RECORD_ZIP_64_LENGTH, DATA_DESCRIPTOR_RECORD_SIGNATURE_LENGTH, SPLIT_ZIP_FILE_SIGNATURE_LENGTH, EXTRAFIELD_TYPE_ZIP64, EXTRAFIELD_TYPE_AES, EXTRAFIELD_TYPE_NTFS, EXTRAFIELD_TYPE_NTFS_TAG1, EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP, EXTRAFIELD_TYPE_UNICODE_PATH, EXTRAFIELD_TYPE_UNICODE_COMMENT, EXTRAFIELD_TYPE_USDZ, EXTRAFIELD_TYPE_INFOZIP, EXTRAFIELD_TYPE_UNIX, EXTRAFIELD_TYPE_UNIX_TYPE1, EXTRAFIELD_TYPE_PKWARE_UNIX, BITFLAG_ENCRYPTED, BITFLAG_LEVEL, BITFLAG_LEVEL_MAX_MASK, BITFLAG_LEVEL_FAST_MASK, BITFLAG_LEVEL_SUPER_FAST_MASK, BITFLAG_DATA_DESCRIPTOR, BITFLAG_COMPRESSED_PATCHED_DATA, BITFLAG_STRONG_ENCRYPTION, BITFLAG_LANG_ENCODING_FLAG, BITFLAG_MASKED_LOCAL_HEADERS, FILE_ATTR_MSDOS_DIR_MASK, FILE_ATTR_MSDOS_READONLY_MASK, FILE_ATTR_MSDOS_HIDDEN_MASK, FILE_ATTR_MSDOS_SYSTEM_MASK, FILE_ATTR_MSDOS_ARCHIVE_MASK, FILE_ATTR_UNIX_TYPE_MASK, FILE_ATTR_UNIX_TYPE_DIR, FILE_ATTR_UNIX_TYPE_SYMLINK, FILE_ATTR_UNIX_TYPE_FILE, FILE_ATTR_UNIX_EXECUTABLE_MASK, FILE_ATTR_UNIX_DEFAULT_MASK, FILE_ATTR_UNIX_SETUID_MASK, FILE_ATTR_UNIX_SETGID_MASK, FILE_ATTR_UNIX_STICKY_MASK, VERSION_STORE, VERSION_DEFLATE, VERSION_ZIP64, VERSION_AES, VERSION_MADE_BY_MSDOS, VERSION_MADE_BY_UNIX, DIRECTORY_SIGNATURE, HEADER_SIZE, HEADER_OFFSET_VERSION, HEADER_OFFSET_SIGNATURE, HEADER_OFFSET_COMPRESSED_SIZE, HEADER_OFFSET_UNCOMPRESSED_SIZE, HEADER_OFFSET_FILENAME_LENGTH, HEADER_OFFSET_EXTRAFIELD_LENGTH, LOCAL_HEADER_COMMON_OFFSET, MAX_DATE, MIN_DATE, UNDEFINED_VALUE, INFINITY_VALUE, ERR_LOCAL_FILE_HEADER_NOT_FOUND, ERR_OVERLAPPING_ENTRY, ERR_EXTRAFIELD_ZIP64_NOT_FOUND, UNDEFINED_TYPE, FUNCTION_TYPE, OBJECT_TYPE, STRING_TYPE, NUMBER_TYPE, BOOLEAN_TYPE, EMPTY_UINT8_ARRAY, SYMBOL_ASYNC_DISPOSE;
18
18
  var init_constants = __esm({
19
- "../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/constants.js"() {
19
+ "../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/constants.js"() {
20
20
  "use strict";
21
21
  MAX_32_BITS = 4294967295;
22
22
  MAX_16_BITS = 65535;
@@ -99,6 +99,9 @@ var init_constants = __esm({
99
99
  MIN_DATE = new Date(1980, 0, 1);
100
100
  UNDEFINED_VALUE = void 0;
101
101
  INFINITY_VALUE = Infinity;
102
+ ERR_LOCAL_FILE_HEADER_NOT_FOUND = "Local file header not found";
103
+ ERR_OVERLAPPING_ENTRY = "Overlapping entry found";
104
+ ERR_EXTRAFIELD_ZIP64_NOT_FOUND = "Zip64 extra field not found";
102
105
  UNDEFINED_TYPE = "undefined";
103
106
  FUNCTION_TYPE = "function";
104
107
  OBJECT_TYPE = "object";
@@ -110,13 +113,19 @@ var init_constants = __esm({
110
113
  }
111
114
  });
112
115
 
113
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/options.js
116
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/options.js
114
117
  function checkFunctionOption(value) {
115
118
  if (value && typeof value != FUNCTION_TYPE) {
116
119
  throw new Error(ERR_INVALID_FUNCTION_OPTION);
117
120
  }
118
121
  return value;
119
122
  }
123
+ function checkReaderOptionsObject(readerOptions) {
124
+ if (readerOptions && (typeof readerOptions != OBJECT_TYPE || Array.isArray(readerOptions))) {
125
+ throw new Error(ERR_INVALID_READER_OPTIONS);
126
+ }
127
+ return readerOptions;
128
+ }
120
129
  function checkSignalOption(signal) {
121
130
  if (signal && (typeof signal.addEventListener != FUNCTION_TYPE || typeof signal.aborted != BOOLEAN_TYPE)) {
122
131
  throw new Error(ERR_INVALID_SIGNAL);
@@ -152,9 +161,9 @@ function checkIntegerOption(value, maxValue, errorMessage) {
152
161
  function toNumber(value) {
153
162
  return typeof value == STRING_TYPE && value.trim() ? Number(value) : value;
154
163
  }
155
- var OPTION_FILENAME_ENCODING, OPTION_COMMENT_ENCODING, OPTION_DECODE_TEXT, OPTION_EXTRACT_PREPENDED_DATA, OPTION_EXTRACT_APPENDED_DATA, OPTION_PASSWORD, OPTION_RAW_PASSWORD, OPTION_PASS_THROUGH, OPTION_SIGNAL, OPTION_CHECK_PASSWORD_ONLY, OPTION_CHECK_OVERLAPPING_ENTRY_ONLY, OPTION_CHECK_OVERLAPPING_ENTRY, OPTION_CHECK_AMBIGUITY, OPTION_CHECK_LOCAL_DIRECTORY, OPTION_CHECK_LOCAL_FILENAME, OPTION_CHECK_SIGNATURE, OPTION_CHECK_CRC32, OPTION_CHECK_AUTHENTICATION_CODE, OPTION_USE_WEB_WORKERS, OPTION_USE_COMPRESSION_STREAM, OPTION_TRANSFER_STREAMS, OPTION_PREVENT_CLOSE, OPTION_ENCRYPTION_STRENGTH, OPTION_EXTENDED_TIMESTAMP, OPTION_NTFS_TIMESTAMP, OPTION_KEEP_ORDER, OPTION_LEVEL, OPTION_BUFFERED_WRITE, OPTION_CREATE_TEMP_STREAM, OPTION_DATA_DESCRIPTOR_SIGNATURE, OPTION_USE_UNICODE_FILE_NAMES, OPTION_DATA_DESCRIPTOR, OPTION_SUPPORT_ZIP64_SPLIT_FILE, OPTION_ENCODE_TEXT, OPTION_OFFSET, OPTION_USDZ, OPTION_UNIX_EXTRA_FIELD_TYPE, OPTION_LOCAL_EXTRA_FIELD, OPTION_CENTRAL_EXTRA_FIELD, OPTION_STRICTNESS, OPTION_FILENAME_VALIDATION, OPTION_NORMALIZE_FILENAME, OPTION_MAX_APPENDED_DATA_SIZE, OPTION_DECRYPT_CENTRAL_DIRECTORY, OPTION_SIGN_CENTRAL_DIRECTORY, OPTION_ENTRY, TEXT_TYPE_FILENAME, TEXT_TYPE_COMMENT, STRICTNESS_STRICT, STRICTNESS_BALANCED, STRICTNESS_TOLERANT, PASS_THROUGH_COMPRESSED, ERR_INVALID_FUNCTION_OPTION, ERR_INVALID_SIGNAL, ERR_INVALID_PASSWORD_TYPE, ERR_INVALID_PASS_THROUGH_VALUE, ERR_ABORTED, ABORT_ERROR_NAME;
164
+ var OPTION_FILENAME_ENCODING, OPTION_COMMENT_ENCODING, OPTION_DECODE_TEXT, OPTION_EXTRACT_PREPENDED_DATA, OPTION_EXTRACT_APPENDED_DATA, OPTION_PASSWORD, OPTION_RAW_PASSWORD, OPTION_PASS_THROUGH, OPTION_SIGNAL, OPTION_CHECK_PASSWORD_ONLY, OPTION_CHECK_OVERLAPPING_ENTRY_ONLY, OPTION_CHECK_OVERLAPPING_ENTRY, OPTION_CHECK_AMBIGUITY, OPTION_CHECK_LOCAL_DIRECTORY, OPTION_CHECK_LOCAL_FILENAME, OPTION_CHECK_SIGNATURE, OPTION_CHECK_CRC32, OPTION_CHECK_AUTHENTICATION_CODE, OPTION_USE_WEB_WORKERS, OPTION_USE_COMPRESSION_STREAM, OPTION_PREVENT_CLOSE, OPTION_ENCRYPTION_STRENGTH, OPTION_EXTENDED_TIMESTAMP, OPTION_NTFS_TIMESTAMP, OPTION_KEEP_ORDER, OPTION_LEVEL, OPTION_BUFFERED_WRITE, OPTION_CREATE_TEMP_STREAM, OPTION_DATA_DESCRIPTOR_SIGNATURE, OPTION_USE_UNICODE_FILE_NAMES, OPTION_DATA_DESCRIPTOR, OPTION_SUPPORT_ZIP64_SPLIT_FILE, OPTION_ENCODE_TEXT, OPTION_OFFSET, OPTION_USDZ, OPTION_UNIX_EXTRA_FIELD_TYPE, OPTION_LOCAL_EXTRA_FIELD, OPTION_CENTRAL_EXTRA_FIELD, OPTION_STRICTNESS, OPTION_FILENAME_VALIDATION, OPTION_NORMALIZE_FILENAME, OPTION_MAX_APPENDED_DATA_SIZE, OPTION_DECRYPT_CENTRAL_DIRECTORY, OPTION_SIGN_CENTRAL_DIRECTORY, OPTION_ENTRY, TEXT_TYPE_FILENAME, TEXT_TYPE_COMMENT, STRICTNESS_STRICT, STRICTNESS_BALANCED, STRICTNESS_TOLERANT, PASS_THROUGH_COMPRESSED, ERR_INVALID_FUNCTION_OPTION, ERR_INVALID_SIGNAL, ERR_INVALID_PASSWORD_TYPE, ERR_INVALID_PASS_THROUGH_VALUE, ERR_INVALID_READER_OPTIONS, ERR_ABORTED, ABORT_ERROR_NAME;
156
165
  var init_options = __esm({
157
- "../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/options.js"() {
166
+ "../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/options.js"() {
158
167
  "use strict";
159
168
  init_constants();
160
169
  OPTION_FILENAME_ENCODING = "filenameEncoding";
@@ -177,7 +186,6 @@ var init_options = __esm({
177
186
  OPTION_CHECK_AUTHENTICATION_CODE = "checkAuthenticationCode";
178
187
  OPTION_USE_WEB_WORKERS = "useWebWorkers";
179
188
  OPTION_USE_COMPRESSION_STREAM = "useCompressionStream";
180
- OPTION_TRANSFER_STREAMS = "transferStreams";
181
189
  OPTION_PREVENT_CLOSE = "preventClose";
182
190
  OPTION_ENCRYPTION_STRENGTH = "encryptionStrength";
183
191
  OPTION_EXTENDED_TIMESTAMP = "extendedTimestamp";
@@ -213,12 +221,13 @@ var init_options = __esm({
213
221
  ERR_INVALID_SIGNAL = "Invalid signal (must be an AbortSignal instance)";
214
222
  ERR_INVALID_PASSWORD_TYPE = "Invalid password (password must be a string, rawPassword must be a Uint8Array)";
215
223
  ERR_INVALID_PASS_THROUGH_VALUE = "Invalid passThrough option (must be a boolean or 'compressed')";
224
+ ERR_INVALID_READER_OPTIONS = "Invalid readerOptions (must be an object)";
216
225
  ERR_ABORTED = "The operation was aborted";
217
226
  ABORT_ERROR_NAME = "AbortError";
218
227
  }
219
228
  });
220
229
 
221
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/configuration.js
230
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/configuration.js
222
231
  function getConfiguration() {
223
232
  return config2;
224
233
  }
@@ -280,11 +289,11 @@ function setDefaultConfiguration(configuration) {
280
289
  }
281
290
  var DEFAULT_CHUNK_SIZE, MINIMUM_CHUNK_SIZE, MINIMUM_PROPERTY_VALUE, ERR_INVALID_MAX_WORKERS, ERR_INVALID_BASE_URI, ERR_INVALID_URI, maxWorkers, DEFAULT_CONFIGURATION, PROPERTY_NAME_MAX_WORKERS, PROPERTY_NAME_BASE_URI, URI_PROPERTY_NAMES, BOOLEAN_PROPERTY_NAMES, NUMBER_PROPERTY_NAMES, FUNCTION_PROPERTY_NAMES, CONFIGURABLE_PROPERTY_NAMES, config2;
282
291
  var init_configuration = __esm({
283
- "../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/configuration.js"() {
292
+ "../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/configuration.js"() {
284
293
  "use strict";
285
294
  init_constants();
286
295
  init_options();
287
- DEFAULT_CHUNK_SIZE = 64 * 1024;
296
+ DEFAULT_CHUNK_SIZE = 256 * 1024;
288
297
  MINIMUM_CHUNK_SIZE = 64;
289
298
  MINIMUM_PROPERTY_VALUE = 1;
290
299
  ERR_INVALID_MAX_WORKERS = "Invalid maxWorkers (must be an integer greater than 0)";
@@ -307,7 +316,6 @@ var init_configuration = __esm({
307
316
  workerStartupTimeout: 5e3,
308
317
  useWebWorkers: true,
309
318
  useCompressionStream: true,
310
- transferStreams: true,
311
319
  CompressionStream: typeof CompressionStream != UNDEFINED_TYPE && CompressionStream,
312
320
  DecompressionStream: typeof DecompressionStream != UNDEFINED_TYPE && DecompressionStream
313
321
  };
@@ -319,8 +327,7 @@ var init_configuration = __esm({
319
327
  ];
320
328
  BOOLEAN_PROPERTY_NAMES = [
321
329
  "useCompressionStream",
322
- "useWebWorkers",
323
- "transferStreams"
330
+ "useWebWorkers"
324
331
  ];
325
332
  NUMBER_PROPERTY_NAMES = [
326
333
  "chunkSize",
@@ -347,7 +354,7 @@ var init_configuration = __esm({
347
354
  }
348
355
  });
349
356
 
350
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/util/array.js
357
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/util/array.js
351
358
  function concat(first, second) {
352
359
  const result = new Uint8Array(first.length + second.length);
353
360
  result.set(first);
@@ -361,25 +368,25 @@ function getDataView(array) {
361
368
  return new DataView(array.buffer, array.byteOffset, array.byteLength);
362
369
  }
363
370
  var init_array = __esm({
364
- "../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/util/array.js"() {
371
+ "../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/util/array.js"() {
365
372
  "use strict";
366
373
  }
367
374
  });
368
375
 
369
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/util/error.js
376
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/util/error.js
370
377
  function isErrorObject(error) {
371
378
  return Boolean(error) && typeof error == "object";
372
379
  }
373
380
  var init_error = __esm({
374
- "../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/util/error.js"() {
381
+ "../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/util/error.js"() {
375
382
  "use strict";
376
383
  }
377
384
  });
378
385
 
379
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/streams/codecs/crc32.js
386
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/streams/codecs/crc32.js
380
387
  var T, T0, T1, T2, T3, T4, T5, T6, T7, Crc32;
381
388
  var init_crc32 = __esm({
382
- "../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/streams/codecs/crc32.js"() {
389
+ "../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/streams/codecs/crc32.js"() {
383
390
  "use strict";
384
391
  T = [[], [], [], [], [], [], [], []];
385
392
  for (let n4 = 0; n4 < 256; n4++) {
@@ -425,10 +432,10 @@ var init_crc32 = __esm({
425
432
  }
426
433
  });
427
434
 
428
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/streams/crc32-stream.js
435
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/streams/crc32-stream.js
429
436
  var Crc32Stream;
430
437
  var init_crc32_stream = __esm({
431
- "../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/streams/crc32-stream.js"() {
438
+ "../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/streams/crc32-stream.js"() {
432
439
  "use strict";
433
440
  init_crc32();
434
441
  Crc32Stream = class extends TransformStream {
@@ -453,7 +460,7 @@ var init_crc32_stream = __esm({
453
460
  }
454
461
  });
455
462
 
456
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/util/encode-text.js
463
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/util/encode-text.js
457
464
  function encodeText(value) {
458
465
  if (typeof TextEncoder == UNDEFINED_TYPE) {
459
466
  value = unescape(encodeURIComponent(value));
@@ -467,13 +474,13 @@ function encodeText(value) {
467
474
  }
468
475
  }
469
476
  var init_encode_text = __esm({
470
- "../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/util/encode-text.js"() {
477
+ "../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/util/encode-text.js"() {
471
478
  "use strict";
472
479
  init_constants();
473
480
  }
474
481
  });
475
482
 
476
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/streams/codecs/aes-hmac-sha1.js
483
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/streams/codecs/aes-hmac-sha1.js
477
484
  function createEngine(key, authenticationKey) {
478
485
  initTables();
479
486
  const roundKeys = new Int32Array(ROUND_KEYS_LENGTH);
@@ -897,7 +904,7 @@ function multiplyByTwo(value) {
897
904
  }
898
905
  var BLOCK_LENGTH, ROUND_KEYS_LENGTH, SHA1_BLOCK_LENGTH, SHA1_DIGEST_LENGTH, SHA1_SCHEDULE_LENGTH, SHA1_LENGTH_OFFSET, SHA1_PADDING, SHA1_ZERO, SHA1_INITIAL_STATE, HMAC_INNER_PADDING, HMAC_OUTER_PADDING, S_BOX, T02, T12, T22, T32, tablesInitialized;
899
906
  var init_aes_hmac_sha1 = __esm({
900
- "../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/streams/codecs/aes-hmac-sha1.js"() {
907
+ "../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/streams/codecs/aes-hmac-sha1.js"() {
901
908
  "use strict";
902
909
  BLOCK_LENGTH = 16;
903
910
  ROUND_KEYS_LENGTH = 60;
@@ -919,7 +926,7 @@ var init_aes_hmac_sha1 = __esm({
919
926
  }
920
927
  });
921
928
 
922
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/streams/common-crypto.js
929
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/streams/common-crypto.js
923
930
  function getRandomValues(array) {
924
931
  if (GET_RANDOM_VALUES_SUPPORTED) {
925
932
  return crypto.getRandomValues(array);
@@ -929,7 +936,7 @@ function getRandomValues(array) {
929
936
  }
930
937
  var GET_RANDOM_VALUES_SUPPORTED, ERR_INVALID_PASSWORD, ERR_INVALID_AUTHENTICATION_CODE, ERR_ABORT_CHECK_PASSWORD, ERR_UNSUPPORTED_CRYPTO_API;
931
938
  var init_common_crypto = __esm({
932
- "../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/streams/common-crypto.js"() {
939
+ "../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/streams/common-crypto.js"() {
933
940
  "use strict";
934
941
  init_constants();
935
942
  GET_RANDOM_VALUES_SUPPORTED = typeof crypto != UNDEFINED_TYPE && typeof crypto.getRandomValues == FUNCTION_TYPE;
@@ -940,7 +947,7 @@ var init_common_crypto = __esm({
940
947
  }
941
948
  });
942
949
 
943
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/streams/aes-crypto-stream.js
950
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/streams/aes-crypto-stream.js
944
951
  function setAESEngine(createEngineFunction) {
945
952
  createEngine2 = createEngineFunction || createEngine;
946
953
  }
@@ -1062,7 +1069,7 @@ function subarray(array, begin, end) {
1062
1069
  }
1063
1070
  var BLOCK_LENGTH2, RAW_FORMAT, PBKDF2_ALGORITHM, HASH_ALGORITHM, HASH_FUNCTION, PBKDF2_ITERATIONS, BASE_KEY_ALGORITHM, DERIVED_BITS_ALGORITHM, DERIVED_BITS_USAGE, SALT_LENGTH, KEY_LENGTH, AUTHENTICATION_CODE_LENGTH, PASSWORD_VERIFICATION_LENGTH, CRYPTO_API_SUPPORTED, subtle, SUBTLE_API_SUPPORTED, DERIVE_BITS_SUPPORTED, createEngine2, AESDecryptionStream, AESEncryptionStream;
1064
1071
  var init_aes_crypto_stream = __esm({
1065
- "../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/streams/aes-crypto-stream.js"() {
1072
+ "../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/streams/aes-crypto-stream.js"() {
1066
1073
  "use strict";
1067
1074
  init_constants();
1068
1075
  init_encode_text();
@@ -1201,7 +1208,7 @@ var init_aes_crypto_stream = __esm({
1201
1208
  }
1202
1209
  });
1203
1210
 
1204
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/streams/zip-crypto-stream.js
1211
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/streams/zip-crypto-stream.js
1205
1212
  function initZipCrypto(zipCrypto, password, rawPassword, passwordVerification) {
1206
1213
  Object.assign(zipCrypto, {
1207
1214
  password,
@@ -1264,7 +1271,7 @@ function getInt32(number) {
1264
1271
  }
1265
1272
  var HEADER_LENGTH, ZipCryptoDecryptionStream, ZipCryptoEncryptionStream;
1266
1273
  var init_zip_crypto_stream = __esm({
1267
- "../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/streams/zip-crypto-stream.js"() {
1274
+ "../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/streams/zip-crypto-stream.js"() {
1268
1275
  "use strict";
1269
1276
  init_crc32();
1270
1277
  init_common_crypto();
@@ -1324,7 +1331,7 @@ var init_zip_crypto_stream = __esm({
1324
1331
  }
1325
1332
  });
1326
1333
 
1327
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/util/compatible-streams.js
1334
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/util/compatible-streams.js
1328
1335
  function toCompatibleReadable(readable) {
1329
1336
  if (readable instanceof ReadableStream) {
1330
1337
  return readable;
@@ -1384,13 +1391,13 @@ function toCompatibleWritable(writable) {
1384
1391
  });
1385
1392
  }
1386
1393
  var init_compatible_streams = __esm({
1387
- "../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/util/compatible-streams.js"() {
1394
+ "../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/util/compatible-streams.js"() {
1388
1395
  "use strict";
1389
1396
  init_constants();
1390
1397
  }
1391
1398
  });
1392
1399
 
1393
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/codec-registry.js
1400
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/codec-registry.js
1394
1401
  function getRegisteredCodec(compressionMethod) {
1395
1402
  return registeredCodecs.get(compressionMethod);
1396
1403
  }
@@ -1415,7 +1422,7 @@ async function ensureCodecStreams(format, codecURI) {
1415
1422
  }
1416
1423
  var ERR_INVALID_CODEC_MODULE, ERR_UNSUPPORTED_COMPRESSION, registeredCodecs, codecStreams;
1417
1424
  var init_codec_registry = __esm({
1418
- "../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/codec-registry.js"() {
1425
+ "../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/codec-registry.js"() {
1419
1426
  "use strict";
1420
1427
  init_constants();
1421
1428
  ERR_INVALID_CODEC_MODULE = "Invalid codec module";
@@ -1425,7 +1432,7 @@ var init_codec_registry = __esm({
1425
1432
  }
1426
1433
  });
1427
1434
 
1428
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/streams/zip-entry-stream.js
1435
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/streams/zip-entry-stream.js
1429
1436
  function pipeThroughGzipDecompressionStream(readable, gzipStream, outputSize, crc32, sourceErrors) {
1430
1437
  const writer = gzipStream.writable.getWriter();
1431
1438
  const reader = gzipStream.readable.getReader();
@@ -1686,7 +1693,7 @@ function mapInflateStreamError(readable, sourceErrors) {
1686
1693
  }
1687
1694
  var ERR_INVALID_UNCOMPRESSED_SIZE, ERR_INVALID_COMPRESSED_DATA, ERR_CODEC_OUT_OF_MEMORY, ERR_INVALID_CRC32, Z_MEM_ERROR_CODE, FORMAT_DEFLATE_RAW, FORMAT_DEFLATE64_RAW, FORMAT_GZIP, GZIP_HEADER_LENGTH, GZIP_TRAILER_LENGTH, GZIP_HEADER_BYTES, DeflateStream, GzipToRawDeflateStream, InflateStream, formatSupportByStream;
1688
1695
  var init_zip_entry_stream = __esm({
1689
- "../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/streams/zip-entry-stream.js"() {
1696
+ "../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/streams/zip-entry-stream.js"() {
1690
1697
  "use strict";
1691
1698
  init_crc32();
1692
1699
  init_crc32_stream();
@@ -1872,14 +1879,14 @@ var init_zip_entry_stream = __esm({
1872
1879
  }
1873
1880
  });
1874
1881
 
1875
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/streams/codec-stream.js
1882
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/streams/codec-stream.js
1876
1883
  var DEFAULT_CHUNK_SIZE2, MESSAGE_EVENT_TYPE, MESSAGE_START, MESSAGE_PULL, MESSAGE_DATA, MESSAGE_ACK_DATA, MESSAGE_CLOSE, CODEC_DEFLATE, CODEC_INFLATE, CodecStream, ChunkStream;
1877
1884
  var init_codec_stream = __esm({
1878
- "../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/streams/codec-stream.js"() {
1885
+ "../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/streams/codec-stream.js"() {
1879
1886
  "use strict";
1880
1887
  init_constants();
1881
1888
  init_zip_entry_stream();
1882
- DEFAULT_CHUNK_SIZE2 = 64 * 1024;
1889
+ DEFAULT_CHUNK_SIZE2 = 256 * 1024;
1883
1890
  MESSAGE_EVENT_TYPE = "message";
1884
1891
  MESSAGE_START = "start";
1885
1892
  MESSAGE_PULL = "pull";
@@ -2001,7 +2008,7 @@ var init_codec_stream = __esm({
2001
2008
  }
2002
2009
  });
2003
2010
 
2004
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/codec-worker.js
2011
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/codec-worker.js
2005
2012
  function configureWorker({ initModule: initModuleFunction }) {
2006
2013
  initModule = initModuleFunction;
2007
2014
  }
@@ -2105,7 +2112,7 @@ async function runWorker({ options, readable, writable, onTaskFinished, workerOp
2105
2112
  }
2106
2113
  var ERR_WORKER_STARTUP_TIMEOUT, webWorkerSupported, createWorkerFailed, webWorkerBackend, initModule, CodecWorker, ProgressWatcherStream;
2107
2114
  var init_codec_worker = __esm({
2108
- "../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/codec-worker.js"() {
2115
+ "../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/codec-worker.js"() {
2109
2116
  "use strict";
2110
2117
  init_constants();
2111
2118
  init_configuration();
@@ -2116,7 +2123,7 @@ var init_codec_worker = __esm({
2116
2123
  };
2117
2124
  CodecWorker = class {
2118
2125
  constructor(workerData, { readable, writable }, workerOptions, onTaskFinished) {
2119
- const { options, config: config3, streamOptions, useWebWorkers, transferStreams, workerURI } = workerOptions;
2126
+ const { options, config: config3, streamOptions, useWebWorkers, workerURI } = workerOptions;
2120
2127
  let { createWorker } = workerOptions;
2121
2128
  const { signal } = streamOptions;
2122
2129
  if (createWorkerFailed) {
@@ -2131,7 +2138,6 @@ var init_codec_worker = __esm({
2131
2138
  workerOptions,
2132
2139
  workerURI,
2133
2140
  createWorker,
2134
- transferStreams,
2135
2141
  terminate() {
2136
2142
  return new Promise((resolve) => {
2137
2143
  const { worker, busy } = workerData;
@@ -2199,10 +2205,10 @@ var init_codec_worker = __esm({
2199
2205
  }
2200
2206
  });
2201
2207
 
2202
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/codec-pool.js
2208
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/codec-pool.js
2203
2209
  async function runWorker2(stream, workerOptions) {
2204
2210
  const { options, config: config3 } = workerOptions;
2205
- const { transferStreams, useWebWorkers, useCompressionStream, compressed, checkCrc32, computeCrc32, encrypted, format, codecURI } = options;
2211
+ const { useWebWorkers, useCompressionStream, compressed, checkCrc32, computeCrc32, encrypted, format, codecURI } = options;
2206
2212
  const { workerURI, createWorker, maxWorkers: maxWorkers2 } = config3;
2207
2213
  if (format) {
2208
2214
  if (codecURI) {
@@ -2210,7 +2216,6 @@ async function runWorker2(stream, workerOptions) {
2210
2216
  }
2211
2217
  await ensureCodecStreams(format, options.codecURI);
2212
2218
  }
2213
- workerOptions.transferStreams = !format && (transferStreams || transferStreams === UNDEFINED_VALUE && config3.transferStreams);
2214
2219
  const streamCopy = !compressed && !checkCrc32 && !computeCrc32 && !encrypted;
2215
2220
  const workerSupported = format === UNDEFINED_VALUE || Boolean(options.codecURI);
2216
2221
  workerOptions.useWebWorkers = !streamCopy && workerSupported && (useWebWorkers || useWebWorkers === UNDEFINED_VALUE && config3.useWebWorkers);
@@ -2318,7 +2323,7 @@ function clearTerminateTimeout(workerData) {
2318
2323
  }
2319
2324
  var pool, pendingRequests, starvationTimeout, starvationDelay, indexWorker;
2320
2325
  var init_codec_pool = __esm({
2321
- "../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/codec-pool.js"() {
2326
+ "../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/codec-pool.js"() {
2322
2327
  "use strict";
2323
2328
  init_constants();
2324
2329
  init_codec_stream();
@@ -2330,7 +2335,7 @@ var init_codec_pool = __esm({
2330
2335
  }
2331
2336
  });
2332
2337
 
2333
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/util/decode-cp437.js
2338
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/util/decode-cp437.js
2334
2339
  function decodeCP437(stringValue) {
2335
2340
  let result = "";
2336
2341
  for (let indexCharacter = 0; indexCharacter < stringValue.length; indexCharacter++) {
@@ -2340,13 +2345,13 @@ function decodeCP437(stringValue) {
2340
2345
  }
2341
2346
  var CP437;
2342
2347
  var init_decode_cp437 = __esm({
2343
- "../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/util/decode-cp437.js"() {
2348
+ "../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/util/decode-cp437.js"() {
2344
2349
  "use strict";
2345
2350
  CP437 = "\0\u263A\u263B\u2665\u2666\u2663\u2660\u2022\u25D8\u25CB\u25D9\u2642\u2640\u266A\u266B\u263C\u25BA\u25C4\u2195\u203C\xB6\xA7\u25AC\u21A8\u2191\u2193\u2192\u2190\u221F\u2194\u25B2\u25BC !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\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\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0".split("");
2346
2351
  }
2347
2352
  });
2348
2353
 
2349
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/util/decode-text.js
2354
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/util/decode-text.js
2350
2355
  function decodeText(value, encoding) {
2351
2356
  return decode(value, encoding, true);
2352
2357
  }
@@ -2370,13 +2375,13 @@ function decode(value, encoding, ignoreBOM) {
2370
2375
  }
2371
2376
  }
2372
2377
  var init_decode_text = __esm({
2373
- "../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/util/decode-text.js"() {
2378
+ "../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/util/decode-text.js"() {
2374
2379
  "use strict";
2375
2380
  init_decode_cp437();
2376
2381
  }
2377
2382
  });
2378
2383
 
2379
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/io.js
2384
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/io.js
2380
2385
  function probeBlobSliceReliability() {
2381
2386
  blobSliceProbe = (async () => {
2382
2387
  try {
@@ -2427,7 +2432,7 @@ function createReadable(reader, options) {
2427
2432
  }
2428
2433
  var ERR_ITERATOR_COMPLETED_TOO_SOON, ERR_WRITER_SIZE_NOT_WRITABLE, DEFAULT_BUFFER_SIZE, DEFAULT_MAXIMUM_RANGE_SIZE, END_OF_CENTRAL_DIR_SEARCH_LENGTH, PROPERTY_NAME_WRITABLE, DISK_BOUNDARY, Stream, Reader, blobSliceReliable, blobSliceProbe, BlobReader, SplitDataReader, SplitDataWriter, GenericReader, GenericWriter;
2429
2434
  var init_io = __esm({
2430
- "../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/io.js"() {
2435
+ "../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/io.js"() {
2431
2436
  "use strict";
2432
2437
  init_constants();
2433
2438
  init_configuration();
@@ -2687,7 +2692,7 @@ var init_io = __esm({
2687
2692
  }
2688
2693
  });
2689
2694
 
2690
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/util/warnings.js
2695
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/util/warnings.js
2691
2696
  function addWarning(warnings, reason, filename) {
2692
2697
  if (!warnings.some((warning) => warning.reason == reason)) {
2693
2698
  const warning = { reason };
@@ -2698,13 +2703,13 @@ function addWarning(warnings, reason, filename) {
2698
2703
  }
2699
2704
  }
2700
2705
  var init_warnings = __esm({
2701
- "../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/util/warnings.js"() {
2706
+ "../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/util/warnings.js"() {
2702
2707
  "use strict";
2703
2708
  init_constants();
2704
2709
  }
2705
2710
  });
2706
2711
 
2707
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/zip-entry.js
2712
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/zip-entry.js
2708
2713
  function getUserExtraField(extraField) {
2709
2714
  if (extraField) {
2710
2715
  const userExtraField = /* @__PURE__ */ new Map();
@@ -2723,7 +2728,7 @@ function getEncryptionOverhead(encrypted, zipCrypto, encryptionStrength) {
2723
2728
  }
2724
2729
  var PROPERTY_NAME_FILENAME, PROPERTY_NAME_RAW_FILENAME, PROPERTY_NAME_COMMENT, PROPERTY_NAME_RAW_COMMENT, PROPERTY_NAME_UNCOMPRESSED_SIZE, PROPERTY_NAME_COMPRESSED_SIZE, PROPERTY_NAME_OFFSET, PROPERTY_NAME_DISK_NUMBER_START, PROPERTY_NAME_LAST_MODIFICATION_DATE, PROPERTY_NAME_RAW_LAST_MODIFICATION_DATE, PROPERTY_NAME_LAST_ACCESS_DATE, PROPERTY_NAME_RAW_LAST_ACCESS_DATE, PROPERTY_NAME_CREATION_DATE, PROPERTY_NAME_RAW_CREATION_DATE, PROPERTY_NAME_INTERNAL_FILE_ATTRIBUTES, PROPERTY_NAME_EXTERNAL_FILE_ATTRIBUTES, PROPERTY_NAME_MSDOS_ATTRIBUTES_RAW, PROPERTY_NAME_MSDOS_ATTRIBUTES, PROPERTY_NAME_MS_DOS_COMPATIBLE, PROPERTY_NAME_ZIP64, PROPERTY_NAME_ENCRYPTED, PROPERTY_NAME_VERSION, PROPERTY_NAME_VERSION_MADE_BY, PROPERTY_NAME_ZIPCRYPTO, PROPERTY_NAME_DIRECTORY, PROPERTY_NAME_EXECUTABLE, PROPERTY_NAME_SYMLINK, PROPERTY_NAME_COMPRESSION_METHOD, PROPERTY_NAME_SIGNATURE, PROPERTY_NAME_CRC32, PROPERTY_NAME_EXTRA_FIELD, PROPERTY_NAME_EXTRA_FIELD_INFOZIP, PROPERTY_NAME_EXTRA_FIELD_UNIX, PROPERTY_NAME_EXTRA_FIELD_UNIX_TYPE1, PROPERTY_NAME_EXTRA_FIELD_PKWARE_UNIX, PROPERTY_NAME_UID, PROPERTY_NAME_GID, PROPERTY_NAME_UNIX_MODE, PROPERTY_NAME_SETUID, PROPERTY_NAME_SETGID, PROPERTY_NAME_STICKY, PROPERTY_NAME_BITFLAG, PROPERTY_NAME_RAW_BITFLAG, PROPERTY_NAME_FILENAME_LENGTH, PROPERTY_NAME_EXTRA_FIELD_LENGTH, PROPERTY_NAME_UNIX_EXTERNAL_UPPER, PROPERTY_NAME_FILENAME_UTF8, PROPERTY_NAME_COMMENT_UTF8, PROPERTY_NAME_RAW_EXTRA_FIELD, PROPERTY_NAME_EXTRA_FIELD_ZIP64, PROPERTY_NAME_EXTRA_FIELD_UNICODE_PATH, PROPERTY_NAME_EXTRA_FIELD_UNICODE_COMMENT, PROPERTY_NAME_EXTRA_FIELD_AES, PROPERTY_NAME_EXTRA_FIELD_NTFS, PROPERTY_NAME_EXTRA_FIELD_EXTENDED_TIMESTAMP, PROPERTY_NAME_EXTRA_FIELD_USDZ, PROPERTY_NAMES, Entry, INTERPRETED_EXTRA_FIELD_TYPES;
2725
2730
  var init_zip_entry = __esm({
2726
- "../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/zip-entry.js"() {
2731
+ "../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/zip-entry.js"() {
2727
2732
  "use strict";
2728
2733
  init_constants();
2729
2734
  PROPERTY_NAME_FILENAME = "filename";
@@ -2861,7 +2866,7 @@ var init_zip_entry = __esm({
2861
2866
  }
2862
2867
  });
2863
2868
 
2864
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/zip-reader.js
2869
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/zip-reader.js
2865
2870
  var zip_reader_exports = {};
2866
2871
  __export(zip_reader_exports, {
2867
2872
  ERR_AMBIGUOUS_ARCHIVE: () => ERR_AMBIGUOUS_ARCHIVE,
@@ -2894,11 +2899,13 @@ __export(zip_reader_exports, {
2894
2899
  WARNING_COMPRESSED_PATCHED_DATA: () => WARNING_COMPRESSED_PATCHED_DATA,
2895
2900
  WARNING_DUPLICATE_FILENAME: () => WARNING_DUPLICATE_FILENAME,
2896
2901
  WARNING_MALFORMED_EXTRA_FIELD: () => WARNING_MALFORMED_EXTRA_FIELD,
2902
+ WARNING_MISMATCHED_CENTRAL_DIRECTORY_OFFSET: () => WARNING_MISMATCHED_CENTRAL_DIRECTORY_OFFSET,
2897
2903
  WARNING_MISMATCHED_LOCAL_FILE_HEADER_BIT_FLAG: () => WARNING_MISMATCHED_LOCAL_FILE_HEADER_BIT_FLAG,
2898
2904
  WARNING_MISMATCHED_LOCAL_FILE_HEADER_COMPRESSION_METHOD: () => WARNING_MISMATCHED_LOCAL_FILE_HEADER_COMPRESSION_METHOD,
2899
2905
  WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES: () => WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES,
2900
2906
  WARNING_MISMATCHED_LOCAL_FILE_HEADER_FILENAME: () => WARNING_MISMATCHED_LOCAL_FILE_HEADER_FILENAME,
2901
2907
  WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY: () => WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY,
2908
+ WARNING_MISSING_ZIP64_EXTRA_FIELD: () => WARNING_MISSING_ZIP64_EXTRA_FIELD,
2902
2909
  WARNING_MULTIPLE_END_OF_CENTRAL_DIRECTORY: () => WARNING_MULTIPLE_END_OF_CENTRAL_DIRECTORY,
2903
2910
  WARNING_PREPENDED_CENTRAL_DIRECTORY: () => WARNING_PREPENDED_CENTRAL_DIRECTORY,
2904
2911
  WARNING_PREPENDED_DATA: () => WARNING_PREPENDED_DATA,
@@ -2909,6 +2916,7 @@ __export(zip_reader_exports, {
2909
2916
  WARNING_WRAPPED_ENTRIES_COUNT: () => WARNING_WRAPPED_ENTRIES_COUNT,
2910
2917
  ZipReader: () => ZipReader,
2911
2918
  ZipReaderStream: () => ZipReaderStream,
2919
+ getEntryDataDescriptorLength: () => getEntryDataDescriptorLength,
2912
2920
  isZipFile: () => isZipFile
2913
2921
  });
2914
2922
  function createEntryStream(entry, pendingEntries2) {
@@ -2972,13 +2980,7 @@ async function isZipFile(reader, options = {}) {
2972
2980
  return reader.size - appendedDataOffset <= maxAppendedDataSize;
2973
2981
  }
2974
2982
  function detectEncryptedCentralDirectory(directoryView) {
2975
- const maxOffset = Math.min(directoryView.byteLength, 1024) - 3;
2976
- for (let offset = 0; offset < maxOffset; offset++) {
2977
- if (getUint32(directoryView, offset) == ARCHIVE_EXTRA_DATA_SIGNATURE) {
2978
- return true;
2979
- }
2980
- }
2981
- return false;
2983
+ return directoryView.byteLength >= 4 && getUint32(directoryView, 0) == ARCHIVE_EXTRA_DATA_SIGNATURE;
2982
2984
  }
2983
2985
  function getWrappedFilesLength(directoryView, directoryArray, offset) {
2984
2986
  let wrappedFilesLength = 0;
@@ -2988,6 +2990,79 @@ function getWrappedFilesLength(directoryView, directoryArray, offset) {
2988
2990
  }
2989
2991
  return wrappedFilesLength % (MAX_16_BITS + 1) ? 0 : wrappedFilesLength;
2990
2992
  }
2993
+ function pointsAtDirectory(reader, offset) {
2994
+ return startsWithSignature(reader, offset, CENTRAL_FILE_HEADER_SIGNATURE);
2995
+ }
2996
+ async function startsWithSignature(reader, offset, signature) {
2997
+ if (offset < 0 || offset + 4 > reader.size) {
2998
+ return false;
2999
+ }
3000
+ const signatureArray = await readUint8Array(reader, offset, 4);
3001
+ return getUint32(getDataView(signatureArray), 0) == signature;
3002
+ }
3003
+ async function findDigitalSignatureRecordOffset(reader, endOffset) {
3004
+ const startOffset = Math.max(0, endOffset - (6 + MAX_16_BITS));
3005
+ const tailArray = await readUint8Array(reader, startOffset, endOffset - startOffset);
3006
+ const tailView = getDataView(tailArray);
3007
+ for (let indexByte = tailArray.length - 6; indexByte >= 0; indexByte--) {
3008
+ if (getUint32(tailView, indexByte) == DIGITAL_SIGNATURE_RECORD_SIGNATURE && indexByte + 6 + getUint16(tailView, indexByte + 4) == tailArray.length) {
3009
+ return startOffset + indexByte;
3010
+ }
3011
+ }
3012
+ }
3013
+ async function findZip64EndOfDirectoryOffset(reader, endOffset) {
3014
+ const startOffset = Math.max(0, endOffset - (ZIP64_END_OF_CENTRAL_DIR_LENGTH + MAX_16_BITS));
3015
+ const tailArray = await readUint8Array(reader, startOffset, endOffset - startOffset);
3016
+ const tailView = getDataView(tailArray);
3017
+ for (let indexByte = tailArray.length - ZIP64_END_OF_CENTRAL_DIR_LENGTH; indexByte >= 0; indexByte--) {
3018
+ if (getUint32(tailView, indexByte) == ZIP64_END_OF_CENTRAL_DIR_SIGNATURE && indexByte + 12 + Number(tailView.getBigUint64(indexByte + 4, true)) == tailArray.length) {
3019
+ return startOffset + indexByte;
3020
+ }
3021
+ }
3022
+ }
3023
+ async function probeLocalHeaders(reader, directoryArray, directoryView, offsetDelta) {
3024
+ let result = { localHeaderFound: false, shiftedLocalHeaderFound: false };
3025
+ let recordOffset = 0;
3026
+ while (recordOffset + CENTRAL_FILE_HEADER_LENGTH <= directoryArray.length && getUint32(directoryView, recordOffset) == CENTRAL_FILE_HEADER_SIGNATURE) {
3027
+ const localHeaderOffset = getLocalHeaderOffset(directoryArray, directoryView, recordOffset);
3028
+ if (localHeaderOffset !== UNDEFINED_VALUE) {
3029
+ const localHeaderFound = await startsWithSignature(reader, localHeaderOffset, LOCAL_FILE_HEADER_SIGNATURE);
3030
+ const shiftedLocalHeaderFound = await startsWithSignature(reader, localHeaderOffset + offsetDelta, LOCAL_FILE_HEADER_SIGNATURE);
3031
+ if (!recordOffset) {
3032
+ result = { localHeaderFound, shiftedLocalHeaderFound };
3033
+ }
3034
+ if (localHeaderFound != shiftedLocalHeaderFound) {
3035
+ return { localHeaderFound, shiftedLocalHeaderFound };
3036
+ }
3037
+ }
3038
+ recordOffset += CENTRAL_FILE_HEADER_LENGTH + getUint16(directoryView, recordOffset + 28) + getUint16(directoryView, recordOffset + 30) + getUint16(directoryView, recordOffset + 32);
3039
+ }
3040
+ return result;
3041
+ }
3042
+ function getLocalHeaderOffset(directoryArray, directoryView, recordOffset) {
3043
+ const localHeaderOffset = getUint32(directoryView, recordOffset + 42);
3044
+ if (localHeaderOffset != MAX_32_BITS) {
3045
+ return localHeaderOffset;
3046
+ }
3047
+ let offsetExtraField = recordOffset + CENTRAL_FILE_HEADER_LENGTH + getUint16(directoryView, recordOffset + 28);
3048
+ const endExtraField = Math.min(offsetExtraField + getUint16(directoryView, recordOffset + 30), directoryArray.length);
3049
+ while (offsetExtraField + 4 <= endExtraField) {
3050
+ const type = getUint16(directoryView, offsetExtraField);
3051
+ const size = getUint16(directoryView, offsetExtraField + 2);
3052
+ if (type == EXTRAFIELD_TYPE_ZIP64) {
3053
+ let offsetValue = offsetExtraField + 4;
3054
+ if (getUint32(directoryView, recordOffset + 24) == MAX_32_BITS) {
3055
+ offsetValue += 8;
3056
+ }
3057
+ if (getUint32(directoryView, recordOffset + 20) == MAX_32_BITS) {
3058
+ offsetValue += 8;
3059
+ }
3060
+ return offsetValue + 8 <= endExtraField ? getBigUint64(directoryView, offsetValue) : UNDEFINED_VALUE;
3061
+ }
3062
+ offsetExtraField += 4 + size;
3063
+ }
3064
+ return UNDEFINED_VALUE;
3065
+ }
2991
3066
  function readDigitalSignature(signatureRecordArray) {
2992
3067
  if (signatureRecordArray.length >= 6) {
2993
3068
  const signatureRecordView = getDataView(signatureRecordArray);
@@ -3069,6 +3144,7 @@ function readCommonFooter(fileEntry, directory, dataView, offset, localDirectory
3069
3144
  uncompressedSize: getUint32(dataView, offset + HEADER_OFFSET_UNCOMPRESSED_SIZE)
3070
3145
  });
3071
3146
  const extraFieldZip64 = extraField.get(EXTRAFIELD_TYPE_ZIP64);
3147
+ let extraFieldZip64Missing;
3072
3148
  if (extraFieldZip64) {
3073
3149
  if (!readExtraFieldZip64(extraFieldZip64, directory, localDirectory)) {
3074
3150
  malformedExtraField = true;
@@ -3078,7 +3154,7 @@ function readCommonFooter(fileEntry, directory, dataView, offset, localDirectory
3078
3154
  if (localDirectory) {
3079
3155
  malformedExtraField = true;
3080
3156
  } else {
3081
- throw new Error(ERR_EXTRAFIELD_ZIP64_NOT_FOUND);
3157
+ extraFieldZip64Missing = true;
3082
3158
  }
3083
3159
  }
3084
3160
  const extraFieldUnicodePath = extraField.get(EXTRAFIELD_TYPE_UNICODE_PATH);
@@ -3111,33 +3187,34 @@ function readCommonFooter(fileEntry, directory, dataView, offset, localDirectory
3111
3187
  readExtraFieldUnixDates(extraFieldUnixType1, directory);
3112
3188
  directory.extraFieldUnixType1 = extraFieldUnixType1;
3113
3189
  }
3190
+ const extraFieldExtendedTimestamp = extraField.get(EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP);
3191
+ if (extraFieldExtendedTimestamp) {
3192
+ readExtraFieldExtendedTimestamp(extraFieldExtendedTimestamp, directory, localDirectory);
3193
+ directory.extraFieldExtendedTimestamp = extraFieldExtendedTimestamp;
3194
+ }
3114
3195
  const extraFieldNTFS = extraField.get(EXTRAFIELD_TYPE_NTFS);
3115
3196
  if (extraFieldNTFS) {
3116
3197
  readExtraFieldNTFS(extraFieldNTFS, directory);
3117
3198
  directory.extraFieldNTFS = extraFieldNTFS;
3118
3199
  }
3119
- const extraFieldUnix = extraField.get(EXTRAFIELD_TYPE_UNIX);
3200
+ const extraFieldInfoZip = extraField.get(EXTRAFIELD_TYPE_INFOZIP);
3120
3201
  let unixIdsRead;
3202
+ if (extraFieldInfoZip) {
3203
+ unixIdsRead = readExtraFieldUnix(extraFieldInfoZip, directory, true);
3204
+ directory.extraFieldInfoZip = extraFieldInfoZip;
3205
+ }
3206
+ const extraFieldUnix = extraField.get(EXTRAFIELD_TYPE_UNIX);
3121
3207
  if (extraFieldUnix) {
3122
- unixIdsRead = readExtraFieldUnix(extraFieldUnix, directory, false);
3208
+ readExtraFieldUnix(extraFieldUnix, unixIdsRead ? {} : directory, false);
3123
3209
  directory.extraFieldUnix = extraFieldUnix;
3124
3210
  }
3125
- if (!unixIdsRead) {
3126
- const extraFieldInfoZip = extraField.get(EXTRAFIELD_TYPE_INFOZIP);
3127
- if (extraFieldInfoZip) {
3128
- readExtraFieldUnix(extraFieldInfoZip, directory, true);
3129
- directory.extraFieldInfoZip = extraFieldInfoZip;
3130
- }
3131
- }
3132
- const extraFieldExtendedTimestamp = extraField.get(EXTRAFIELD_TYPE_EXTENDED_TIMESTAMP);
3133
- if (extraFieldExtendedTimestamp) {
3134
- readExtraFieldExtendedTimestamp(extraFieldExtendedTimestamp, directory, localDirectory);
3135
- directory.extraFieldExtendedTimestamp = extraFieldExtendedTimestamp;
3136
- }
3137
3211
  const extraFieldUSDZ = extraField.get(EXTRAFIELD_TYPE_USDZ);
3138
3212
  if (extraFieldUSDZ) {
3139
3213
  directory.extraFieldUSDZ = extraFieldUSDZ;
3140
3214
  }
3215
+ if (extraFieldZip64Missing) {
3216
+ throw new Error(ERR_EXTRAFIELD_ZIP64_NOT_FOUND);
3217
+ }
3141
3218
  return malformedExtraField;
3142
3219
  }
3143
3220
  function readExtraFieldZip64(extraFieldZip64, directory, localDirectory) {
@@ -3341,10 +3418,7 @@ async function detectOverlappingEntry({
3341
3418
  let dataDescriptorLength = 0;
3342
3419
  if (dataDescriptor) {
3343
3420
  const zip64 = Boolean(extraFieldZip64);
3344
- const dataDescriptorArray = await readUint8Array(reader, dataOffset + compressedSize, DATA_DESCRIPTOR_RECORD_ZIP_64_LENGTH + DATA_DESCRIPTOR_RECORD_SIGNATURE_LENGTH);
3345
- const dataDescriptorView = getDataView(dataDescriptorArray);
3346
- const candidates = [[zip64, true], [zip64, false], [!zip64, true], [!zip64, false]].map(([zip64Layout, signature]) => readDataDescriptor(dataDescriptorView, zip64Layout, signature)).filter((candidate) => candidate && candidate.compressedSize == compressedSize && candidate.uncompressedSize == uncompressedSize);
3347
- const localDataDescriptor = candidates.find((candidate) => candidate.crc32 == crc32) || candidates[0] || readDataDescriptor(dataDescriptorView, zip64, true) || readDataDescriptor(dataDescriptorView, zip64, false);
3421
+ const localDataDescriptor = await readLocalDataDescriptor(reader, dataOffset + compressedSize, { crc32, compressedSize, uncompressedSize, zip64 });
3348
3422
  if (localDataDescriptor) {
3349
3423
  fileEntry.localDirectory.dataDescriptor = localDataDescriptor;
3350
3424
  dataDescriptorLength = getDataDescriptorLength(localDataDescriptor.zip64, localDataDescriptor.signature);
@@ -3410,6 +3484,20 @@ function mergeRanges(sortedRanges, pendingRanges) {
3410
3484
  }
3411
3485
  return mergedRanges;
3412
3486
  }
3487
+ async function readLocalDataDescriptor(reader, offset, { crc32, compressedSize, uncompressedSize, zip64 }) {
3488
+ const maxLength = DATA_DESCRIPTOR_RECORD_ZIP_64_LENGTH + DATA_DESCRIPTOR_RECORD_SIGNATURE_LENGTH;
3489
+ const length = Math.min(maxLength, Math.max(0, reader.size - offset));
3490
+ const dataDescriptorArray = length ? await readUint8Array(reader, offset, length) : EMPTY_UINT8_ARRAY;
3491
+ const dataDescriptorView = getDataView(dataDescriptorArray);
3492
+ const candidates = [[zip64, true], [zip64, false], [!zip64, true], [!zip64, false]].map(([zip64Layout, signature]) => readDataDescriptor(dataDescriptorView, zip64Layout, signature)).filter((candidate) => candidate && candidate.compressedSize == compressedSize && candidate.uncompressedSize == uncompressedSize);
3493
+ return candidates.find((candidate) => candidate.crc32 == crc32) || candidates[0] || readDataDescriptor(dataDescriptorView, zip64, true) || readDataDescriptor(dataDescriptorView, zip64, false);
3494
+ }
3495
+ async function getEntryDataDescriptorLength(reader, offset, { crc32, compressedSize, uncompressedSize, extraFieldZip64 }) {
3496
+ const dataDescriptor = await readLocalDataDescriptor(reader, offset, { crc32, compressedSize, uncompressedSize, zip64: Boolean(extraFieldZip64) });
3497
+ if (dataDescriptor && dataDescriptor.compressedSize == compressedSize && dataDescriptor.uncompressedSize == uncompressedSize) {
3498
+ return getDataDescriptorLength(dataDescriptor.zip64, dataDescriptor.signature);
3499
+ }
3500
+ }
3413
3501
  function readDataDescriptor(dataDescriptorView, zip64, signature) {
3414
3502
  const offset = signature ? DATA_DESCRIPTOR_RECORD_SIGNATURE_LENGTH : 0;
3415
3503
  if (dataDescriptorView.byteLength < getDataDescriptorLength(zip64, signature) || signature && getUint32(dataDescriptorView, 0) != DATA_DESCRIPTOR_RECORD_SIGNATURE) {
@@ -3638,6 +3726,13 @@ function validateLocalDirectory(zipEntry, localDirectory, rawLocalFilename, chec
3638
3726
  reportAmbiguity(reject2, warnings, WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES);
3639
3727
  }
3640
3728
  }
3729
+ function validateDataDescriptor(zipEntry, localDirectory, warnings) {
3730
+ const { dataDescriptor } = localDirectory;
3731
+ const maskedLocalDirectory = zipEntry.decryptedDirectory && (localDirectory.rawBitFlag & BITFLAG_MASKED_LOCAL_HEADERS) == BITFLAG_MASKED_LOCAL_HEADERS;
3732
+ if (dataDescriptor && !maskedLocalDirectory && (zipEntry.crc32 !== UNDEFINED_VALUE && dataDescriptor.crc32 != zipEntry.crc32 || dataDescriptor.compressedSize != zipEntry.compressedSize || dataDescriptor.uncompressedSize != zipEntry.uncompressedSize)) {
3733
+ reportAmbiguity(!warnings, warnings, WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES);
3734
+ }
3735
+ }
3641
3736
  function reportAmbiguity(reject2, warnings, reason) {
3642
3737
  if (reject2) {
3643
3738
  throwAmbiguousArchive(reason);
@@ -3680,9 +3775,9 @@ function getBigUint64(view, offset) {
3680
3775
  }
3681
3776
  return Number(value);
3682
3777
  }
3683
- var ERR_BAD_FORMAT, ERR_EOCDR_NOT_FOUND, ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND, ERR_CENTRAL_DIRECTORY_NOT_FOUND, ERR_LOCAL_FILE_HEADER_NOT_FOUND, ERR_EXTRAFIELD_ZIP64_NOT_FOUND, ERR_ENCRYPTED, ERR_UNSUPPORTED_ENCRYPTION, ERR_SPLIT_ZIP_FILE, ERR_OVERLAPPING_ENTRY, ERR_ENTRY_DATA_OUT_OF_BOUNDS, ERR_AMBIGUOUS_ARCHIVE, ERR_ENCRYPTED_CENTRAL_DIRECTORY, ERR_UNSAFE_FILENAME, ERR_INVALID_STRICTNESS, ERR_INVALID_FILENAME_VALIDATION, ERR_INVALID_MAX_APPENDED_DATA_SIZE, ERR_UNSUPPORTED_UINT64, WARNING_UNSORTED_CENTRAL_DIRECTORY, WARNING_UNKNOWN_VERSION, WARNING_COMPRESSED_PATCHED_DATA, WARNING_MALFORMED_EXTRA_FIELD, WARNING_UNKNOWN_ZIP64_EXTENSIBLE_DATA, WARNING_WRAPPED_ENTRIES_COUNT, WARNING_APPENDED_DATA, WARNING_PREPENDED_DATA, WARNING_PREPENDED_CENTRAL_DIRECTORY, WARNING_TRAILING_CENTRAL_DIRECTORY_DATA, WARNING_DUPLICATE_FILENAME, WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY, WARNING_MULTIPLE_END_OF_CENTRAL_DIRECTORY, WARNING_MISMATCHED_LOCAL_FILE_HEADER_FILENAME, WARNING_MISMATCHED_LOCAL_FILE_HEADER_BIT_FLAG, WARNING_MISMATCHED_LOCAL_FILE_HEADER_COMPRESSION_METHOD, WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES, MAX_KNOWN_VERSION, DRIVE_LETTER_REGEXP, PARENT_DIRECTORY_REGEXP, CHARSET_UTF8, PROPERTY_NAME_UTF8_SUFFIX, CHARSET_CP437, BITFLAG_AMBIGUITY_MASK, VENDOR_VERSION_AE_1, ZIP64_PROPERTIES, ZIP64_EXTRACTION, MAX_SAFE_UINT64, MAX_END_OF_CENTRAL_DIR_PROBES, MAX_DEFLATE_EXPANSION_RATIO, CENTRAL_DIRECTORY_UNREACHABLE, CENTRAL_DIRECTORY_PLAUSIBLE, CENTRAL_DIRECTORY_REACHABLE, ZipReader, ZipReaderStream, ZipEntry;
3778
+ var ERR_BAD_FORMAT, ERR_EOCDR_NOT_FOUND, ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND, ERR_CENTRAL_DIRECTORY_NOT_FOUND, ERR_ENCRYPTED, ERR_UNSUPPORTED_ENCRYPTION, ERR_SPLIT_ZIP_FILE, ERR_ENTRY_DATA_OUT_OF_BOUNDS, ERR_AMBIGUOUS_ARCHIVE, ERR_ENCRYPTED_CENTRAL_DIRECTORY, ERR_UNSAFE_FILENAME, ERR_INVALID_STRICTNESS, ERR_INVALID_FILENAME_VALIDATION, ERR_INVALID_MAX_APPENDED_DATA_SIZE, ERR_UNSUPPORTED_UINT64, WARNING_UNSORTED_CENTRAL_DIRECTORY, WARNING_UNKNOWN_VERSION, WARNING_COMPRESSED_PATCHED_DATA, WARNING_MALFORMED_EXTRA_FIELD, WARNING_UNKNOWN_ZIP64_EXTENSIBLE_DATA, WARNING_WRAPPED_ENTRIES_COUNT, WARNING_APPENDED_DATA, WARNING_PREPENDED_DATA, WARNING_PREPENDED_CENTRAL_DIRECTORY, WARNING_TRAILING_CENTRAL_DIRECTORY_DATA, WARNING_MISMATCHED_CENTRAL_DIRECTORY_OFFSET, WARNING_MISSING_ZIP64_EXTRA_FIELD, WARNING_DUPLICATE_FILENAME, WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY, WARNING_MULTIPLE_END_OF_CENTRAL_DIRECTORY, WARNING_MISMATCHED_LOCAL_FILE_HEADER_FILENAME, WARNING_MISMATCHED_LOCAL_FILE_HEADER_BIT_FLAG, WARNING_MISMATCHED_LOCAL_FILE_HEADER_COMPRESSION_METHOD, WARNING_MISMATCHED_LOCAL_FILE_HEADER_CRC32_OR_SIZES, MAX_KNOWN_VERSION, DRIVE_LETTER_REGEXP, PARENT_DIRECTORY_REGEXP, CHARSET_UTF8, PROPERTY_NAME_UTF8_SUFFIX, CHARSET_CP437, BITFLAG_AMBIGUITY_MASK, VENDOR_VERSION_AE_1, ZIP64_PROPERTIES, ZIP64_EXTRACTION, MAX_SAFE_UINT64, MAX_END_OF_CENTRAL_DIR_PROBES, MAX_DEFLATE_EXPANSION_RATIO, CENTRAL_DIRECTORY_UNREACHABLE, CENTRAL_DIRECTORY_PLAUSIBLE, CENTRAL_DIRECTORY_REACHABLE, ZipReader, ZipReaderStream, ZipEntry;
3684
3779
  var init_zip_reader = __esm({
3685
- "../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/zip-reader.js"() {
3780
+ "../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/zip-reader.js"() {
3686
3781
  "use strict";
3687
3782
  init_constants();
3688
3783
  init_configuration();
@@ -3701,12 +3796,9 @@ var init_zip_reader = __esm({
3701
3796
  ERR_EOCDR_NOT_FOUND = "End of central directory not found";
3702
3797
  ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND = "End of Zip64 central directory locator not found";
3703
3798
  ERR_CENTRAL_DIRECTORY_NOT_FOUND = "Central directory header not found";
3704
- ERR_LOCAL_FILE_HEADER_NOT_FOUND = "Local file header not found";
3705
- ERR_EXTRAFIELD_ZIP64_NOT_FOUND = "Zip64 extra field not found";
3706
3799
  ERR_ENCRYPTED = "File contains encrypted entry";
3707
3800
  ERR_UNSUPPORTED_ENCRYPTION = "Encryption method not supported";
3708
3801
  ERR_SPLIT_ZIP_FILE = "Split zip file";
3709
- ERR_OVERLAPPING_ENTRY = "Overlapping entry found";
3710
3802
  ERR_ENTRY_DATA_OUT_OF_BOUNDS = "Entry data out of bounds";
3711
3803
  ERR_AMBIGUOUS_ARCHIVE = "Ambiguous archive";
3712
3804
  ERR_ENCRYPTED_CENTRAL_DIRECTORY = "Encrypted central directory is not supported";
@@ -3725,6 +3817,8 @@ var init_zip_reader = __esm({
3725
3817
  WARNING_PREPENDED_DATA = "prepended data";
3726
3818
  WARNING_PREPENDED_CENTRAL_DIRECTORY = "prepended central directory";
3727
3819
  WARNING_TRAILING_CENTRAL_DIRECTORY_DATA = "trailing central directory data";
3820
+ WARNING_MISMATCHED_CENTRAL_DIRECTORY_OFFSET = "mismatched central directory offset";
3821
+ WARNING_MISSING_ZIP64_EXTRA_FIELD = "missing zip64 extra field";
3728
3822
  WARNING_DUPLICATE_FILENAME = "duplicate filename";
3729
3823
  WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY = "mismatched zip64 end of central directory record";
3730
3824
  WARNING_MULTIPLE_END_OF_CENTRAL_DIRECTORY = "multiple end of central directory records";
@@ -3766,8 +3860,9 @@ var init_zip_reader = __esm({
3766
3860
  constructor(reader, options = {}) {
3767
3861
  Object.assign(this, {
3768
3862
  reader: new GenericReader(reader),
3769
- options,
3770
- readRanges: { indexes: /* @__PURE__ */ new Set(), sortedRanges: [], pendingRanges: [] }
3863
+ options: options || {},
3864
+ readRanges: { indexes: /* @__PURE__ */ new Set(), sortedRanges: [], pendingRanges: [] },
3865
+ entriesMissingZip64ExtraField: /* @__PURE__ */ new WeakSet()
3771
3866
  });
3772
3867
  }
3773
3868
  async *getEntriesGenerator(options = {}) {
@@ -3834,15 +3929,21 @@ var init_zip_reader = __esm({
3834
3929
  directoryDataOffset = getDiskOffset(reader, getUint32(endOfDirectoryLocatorView, 4)) + getBigUint64(endOfDirectoryLocatorView, 8);
3835
3930
  let endOfDirectoryArray = await readUint8Array(reader, directoryDataOffset, ZIP64_END_OF_CENTRAL_DIR_LENGTH);
3836
3931
  let endOfDirectoryView2 = getDataView(endOfDirectoryArray);
3837
- const expectedDirectoryDataOffset = endOfDirectoryInfo.offset - ZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH - ZIP64_END_OF_CENTRAL_DIR_LENGTH;
3838
- if ((endOfDirectoryArray.length < ZIP64_END_OF_CENTRAL_DIR_LENGTH || getUint32(endOfDirectoryView2, 0) != ZIP64_END_OF_CENTRAL_DIR_SIGNATURE) && directoryDataOffset != expectedDirectoryDataOffset && expectedDirectoryDataOffset >= 0) {
3839
- const originalDirectoryDataOffset = directoryDataOffset;
3840
- directoryDataOffset = expectedDirectoryDataOffset;
3841
- if (directoryDataOffset > originalDirectoryDataOffset) {
3842
- prependedDataLength = directoryDataOffset - originalDirectoryDataOffset;
3932
+ if (endOfDirectoryArray.length < ZIP64_END_OF_CENTRAL_DIR_LENGTH || getUint32(endOfDirectoryView2, 0) != ZIP64_END_OF_CENTRAL_DIR_SIGNATURE) {
3933
+ const locatorOffset = endOfDirectoryInfo.offset - ZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH;
3934
+ let expectedDirectoryDataOffset = locatorOffset - ZIP64_END_OF_CENTRAL_DIR_LENGTH;
3935
+ if (!await startsWithSignature(reader, expectedDirectoryDataOffset, ZIP64_END_OF_CENTRAL_DIR_SIGNATURE)) {
3936
+ expectedDirectoryDataOffset = await findZip64EndOfDirectoryOffset(reader, locatorOffset);
3937
+ }
3938
+ if (expectedDirectoryDataOffset !== UNDEFINED_VALUE && expectedDirectoryDataOffset >= 0 && directoryDataOffset != expectedDirectoryDataOffset) {
3939
+ const originalDirectoryDataOffset = directoryDataOffset;
3940
+ directoryDataOffset = expectedDirectoryDataOffset;
3941
+ if (directoryDataOffset > originalDirectoryDataOffset) {
3942
+ prependedDataLength = directoryDataOffset - originalDirectoryDataOffset;
3943
+ }
3944
+ endOfDirectoryArray = await readUint8Array(reader, directoryDataOffset, ZIP64_END_OF_CENTRAL_DIR_LENGTH);
3945
+ endOfDirectoryView2 = getDataView(endOfDirectoryArray);
3843
3946
  }
3844
- endOfDirectoryArray = await readUint8Array(reader, directoryDataOffset, ZIP64_END_OF_CENTRAL_DIR_LENGTH);
3845
- endOfDirectoryView2 = getDataView(endOfDirectoryArray);
3846
3947
  }
3847
3948
  if (endOfDirectoryArray.length < ZIP64_END_OF_CENTRAL_DIR_LENGTH || getUint32(endOfDirectoryView2, 0) != ZIP64_END_OF_CENTRAL_DIR_SIGNATURE) {
3848
3949
  throw new Error(ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND);
@@ -3881,14 +3982,12 @@ var init_zip_reader = __esm({
3881
3982
  reportAmbiguity(checkAmbiguity, warnings, WARNING_MISMATCHED_ZIP64_END_OF_CENTRAL_DIRECTORY);
3882
3983
  }
3883
3984
  directoryDataOffset = getDiskOffset(reader, diskNumber) + getBigUint64(endOfDirectoryView2, 48) + prependedDataLength;
3985
+ } else if (directoryDataOffset == MAX_32_BITS || directoryDataLength == MAX_32_BITS || diskNumber == MAX_16_BITS) {
3986
+ throw new Error(ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND);
3884
3987
  }
3885
3988
  }
3886
3989
  let declaredDirectoryDataLength = directoryDataLength;
3887
3990
  const centralDirectoryEndOffset = endOfDirectoryInfo.offset - (zip64EndOfDirectory ? zip64EndOfDirectoryLength + ZIP64_END_OF_CENTRAL_DIR_LOCATOR_LENGTH : 0);
3888
- if (directoryDataOffset >= reader.size) {
3889
- prependedDataLength = reader.size - directoryDataOffset - directoryDataLength - END_OF_CENTRAL_DIR_LENGTH;
3890
- directoryDataOffset = reader.size - directoryDataLength - END_OF_CENTRAL_DIR_LENGTH;
3891
- }
3892
3991
  if (expectedLastDiskNumber != lastDiskNumber) {
3893
3992
  throw new Error(ERR_SPLIT_ZIP_FILE);
3894
3993
  }
@@ -3896,31 +3995,54 @@ var init_zip_reader = __esm({
3896
3995
  throw new Error(ERR_BAD_FORMAT);
3897
3996
  }
3898
3997
  let offset = 0;
3899
- let directoryArray = await readUint8Array(reader, directoryDataOffset, directoryDataLength);
3998
+ let directoryArray = directoryDataOffset < reader.size ? await readUint8Array(reader, directoryDataOffset, directoryDataLength) : EMPTY_UINT8_ARRAY;
3900
3999
  let directoryView = getDataView(directoryArray);
3901
4000
  if (directoryDataLength) {
3902
- if (directoryArray.length < 4) {
3903
- throw new Error(ERR_BAD_FORMAT);
3904
- }
3905
- const expectedDirectoryDataOffset = centralDirectoryEndOffset - directoryDataLength;
4001
+ let expectedDirectoryDataOffset = centralDirectoryEndOffset - directoryDataLength;
3906
4002
  if (directoryDataOffset != expectedDirectoryDataOffset && diskNumber == lastDiskNumber) {
3907
- const storedPointsAtDirectory = getUint32(directoryView, offset) == CENTRAL_FILE_HEADER_SIGNATURE || Boolean(directoryEncryptionInfo && directoryEncryptionInfo.compressedSize) || detectEncryptedCentralDirectory(directoryView);
4003
+ const storedPointsAtDirectory = directoryArray.length >= 4 && (getUint32(directoryView, offset) == CENTRAL_FILE_HEADER_SIGNATURE || Boolean(directoryEncryptionInfo && directoryEncryptionInfo.compressedSize) || detectEncryptedCentralDirectory(directoryView));
4004
+ if (!storedPointsAtDirectory && expectedDirectoryDataOffset < 0) {
4005
+ throw new Error(ERR_BAD_FORMAT);
4006
+ }
3908
4007
  let reconcile = !storedPointsAtDirectory;
3909
- if (!reconcile && expectedDirectoryDataOffset >= 0 && expectedDirectoryDataOffset + 4 <= reader.size) {
3910
- const expectedSignatureArray = await readUint8Array(reader, expectedDirectoryDataOffset, 4);
3911
- reconcile = getUint32(getDataView(expectedSignatureArray), 0) == CENTRAL_FILE_HEADER_SIGNATURE;
4008
+ if (expectedDirectoryDataOffset >= 0 && expectedDirectoryDataOffset + 4 <= reader.size) {
4009
+ let expectedPointsAtDirectory = await pointsAtDirectory(reader, expectedDirectoryDataOffset);
4010
+ if (!expectedPointsAtDirectory) {
4011
+ const signatureRecordOffset = await findDigitalSignatureRecordOffset(reader, centralDirectoryEndOffset);
4012
+ const signedDirectoryDataOffset = signatureRecordOffset - directoryDataLength;
4013
+ if (signatureRecordOffset !== UNDEFINED_VALUE && signedDirectoryDataOffset >= 0 && await pointsAtDirectory(reader, signedDirectoryDataOffset)) {
4014
+ expectedDirectoryDataOffset = signedDirectoryDataOffset;
4015
+ expectedPointsAtDirectory = true;
4016
+ }
4017
+ }
4018
+ if (storedPointsAtDirectory) {
4019
+ reconcile = expectedPointsAtDirectory;
4020
+ }
3912
4021
  }
3913
- if (reconcile) {
4022
+ if (reconcile && expectedDirectoryDataOffset != directoryDataOffset) {
3914
4023
  const originalDirectoryDataOffset = directoryDataOffset;
3915
4024
  directoryDataOffset = expectedDirectoryDataOffset;
3916
- if (directoryDataOffset > originalDirectoryDataOffset) {
3917
- prependedDataLength += directoryDataOffset - originalDirectoryDataOffset;
3918
- prependedCentralDirectory = storedPointsAtDirectory;
3919
- }
3920
4025
  directoryArray = await readUint8Array(reader, directoryDataOffset, directoryDataLength);
3921
4026
  directoryView = getDataView(directoryArray);
4027
+ const offsetDelta = directoryDataOffset - originalDirectoryDataOffset;
4028
+ const { localHeaderFound, shiftedLocalHeaderFound } = await probeLocalHeaders(reader, directoryArray, directoryView, offsetDelta);
4029
+ if (offsetDelta > 0 && !(localHeaderFound && !shiftedLocalHeaderFound)) {
4030
+ prependedDataLength += offsetDelta;
4031
+ prependedCentralDirectory = storedPointsAtDirectory;
4032
+ } else {
4033
+ reportAmbiguity(checkAmbiguity, warnings, WARNING_MISMATCHED_CENTRAL_DIRECTORY_OFFSET);
4034
+ if (offsetDelta < 0 && !localHeaderFound && shiftedLocalHeaderFound) {
4035
+ prependedDataLength += offsetDelta;
4036
+ }
4037
+ }
3922
4038
  }
3923
4039
  }
4040
+ if (directoryArray.length < 4) {
4041
+ throw new Error(ERR_BAD_FORMAT);
4042
+ }
4043
+ } else if (!filesLength && directoryDataOffset < centralDirectoryEndOffset && diskNumber == lastDiskNumber) {
4044
+ prependedDataLength += centralDirectoryEndOffset - directoryDataOffset;
4045
+ directoryDataOffset = centralDirectoryEndOffset;
3924
4046
  }
3925
4047
  const expectedDirectoryDataLength = centralDirectoryEndOffset - directoryDataOffset;
3926
4048
  if (directoryDataLength != expectedDirectoryDataLength && expectedDirectoryDataLength >= 0 && diskNumber == lastDiskNumber) {
@@ -3951,7 +4073,7 @@ var init_zip_reader = __esm({
3951
4073
  const commentEncoding = getOptionValue(zipReader, options, OPTION_COMMENT_ENCODING);
3952
4074
  const filenames = /* @__PURE__ */ new Set();
3953
4075
  let duplicateFilename;
3954
- let previousEntryPosition = -1;
4076
+ let previousEntryPosition = -Infinity;
3955
4077
  const recoverWrappedFilesLength = !checkAmbiguity && !zip64EndOfDirectory;
3956
4078
  if (!filesLength && recoverWrappedFilesLength) {
3957
4079
  filesLength = getWrappedFilesLength(directoryView, directoryArray, offset);
@@ -3959,8 +4081,10 @@ var init_zip_reader = __esm({
3959
4081
  addWarning(warnings, WARNING_WRAPPED_ENTRIES_COUNT);
3960
4082
  }
3961
4083
  }
4084
+ const entryOptions = Object.assign({}, zipReader.options, options, { [OPTION_STRICTNESS]: strictness });
4085
+ delete entryOptions[OPTION_CHECK_AMBIGUITY];
3962
4086
  for (let indexFile = 0; indexFile < filesLength; indexFile++) {
3963
- const fileEntry = new ZipEntry(reader, zipReader.options);
4087
+ const fileEntry = new ZipEntry(reader, entryOptions);
3964
4088
  if (offset + CENTRAL_FILE_HEADER_LENGTH > directoryArray.length || getUint32(directoryView, offset) != CENTRAL_FILE_HEADER_SIGNATURE) {
3965
4089
  if (indexFile == 0 && !decryptedDirectory && (zip64EndOfDirectoryVersion2 || detectEncryptedCentralDirectory(directoryView))) {
3966
4090
  throw new Error(ERR_ENCRYPTED_CENTRAL_DIRECTORY);
@@ -3999,17 +4123,6 @@ var init_zip_reader = __esm({
3999
4123
  if (filename === UNDEFINED_VALUE) {
4000
4124
  filename = decodeText(rawFilename, rawFilenameEncoding);
4001
4125
  }
4002
- if (normalizeFilename) {
4003
- const normalizedFilename = normalizeFilename(filename);
4004
- if (normalizedFilename !== UNDEFINED_VALUE) {
4005
- filename = normalizedFilename;
4006
- }
4007
- }
4008
- if (isUnsafeFilename(filename, filenameValidation)) {
4009
- const error = new Error(ERR_UNSAFE_FILENAME);
4010
- error.filename = filename;
4011
- throw error;
4012
- }
4013
4126
  let comment = decode2(rawComment, rawCommentEncoding, TEXT_TYPE_COMMENT);
4014
4127
  if (comment === UNDEFINED_VALUE) {
4015
4128
  comment = decodeText(rawComment, rawCommentEncoding);
@@ -4037,16 +4150,42 @@ var init_zip_reader = __esm({
4037
4150
  filename,
4038
4151
  comment
4039
4152
  });
4040
- if (readCommonFooter(fileEntry, fileEntry, directoryView, offset + 6)) {
4153
+ let malformedExtraField;
4154
+ try {
4155
+ malformedExtraField = readCommonFooter(fileEntry, fileEntry, directoryView, offset + 6);
4156
+ } catch (error) {
4157
+ if (checkAmbiguity || error.message != ERR_EXTRAFIELD_ZIP64_NOT_FOUND) {
4158
+ throw error;
4159
+ }
4160
+ fileEntry.zip64ExtraFieldMissing = true;
4161
+ addWarning(warnings, WARNING_MISSING_ZIP64_EXTRA_FIELD, fileEntry.filename);
4162
+ }
4163
+ filename = fileEntry.filename;
4164
+ if (normalizeFilename) {
4165
+ const normalizedFilename = normalizeFilename(filename);
4166
+ if (normalizedFilename !== UNDEFINED_VALUE) {
4167
+ filename = fileEntry.filename = normalizedFilename;
4168
+ }
4169
+ }
4170
+ if (isUnsafeFilename(filename, filenameValidation)) {
4171
+ const error = new Error(ERR_UNSAFE_FILENAME);
4172
+ error.filename = filename;
4173
+ throw error;
4174
+ }
4175
+ if (malformedExtraField) {
4041
4176
  addWarning(warnings, WARNING_MALFORMED_EXTRA_FIELD, filename);
4042
4177
  }
4043
- fileEntry.offset += prependedDataLength;
4044
- const entryPosition = getDiskOffset(reader, fileEntry.diskNumberStart) + fileEntry.offset;
4045
- startOffset = Math.min(entryPosition, startOffset);
4046
- if (entryPosition < previousEntryPosition) {
4047
- addWarning(warnings, WARNING_UNSORTED_CENTRAL_DIRECTORY, filename);
4178
+ if (fileEntry.zip64ExtraFieldMissing && fileEntry.offset == MAX_32_BITS) {
4179
+ startOffset = 0;
4180
+ } else {
4181
+ fileEntry.offset += prependedDataLength;
4182
+ const entryPosition = getDiskOffset(reader, fileEntry.diskNumberStart) + fileEntry.offset;
4183
+ startOffset = Math.min(entryPosition, startOffset);
4184
+ if (entryPosition < previousEntryPosition) {
4185
+ addWarning(warnings, WARNING_UNSORTED_CENTRAL_DIRECTORY, filename);
4186
+ }
4187
+ previousEntryPosition = entryPosition;
4048
4188
  }
4049
- previousEntryPosition = entryPosition;
4050
4189
  if ((fileEntry.version & MAX_8_BITS) > MAX_KNOWN_VERSION) {
4051
4190
  addWarning(warnings, WARNING_UNKNOWN_VERSION, filename);
4052
4191
  }
@@ -4066,9 +4205,10 @@ var init_zip_reader = __esm({
4066
4205
  const sticky = Boolean(fileEntry.unixMode & FILE_ATTR_UNIX_STICKY_MASK);
4067
4206
  const unixType = fileEntry.unixMode === UNDEFINED_VALUE ? unixExternalUpper : fileEntry.unixMode;
4068
4207
  const symlink = (unixType & FILE_ATTR_UNIX_TYPE_MASK) == FILE_ATTR_UNIX_TYPE_SYMLINK;
4069
- const executable = !symlink && (fileEntry.unixMode !== UNDEFINED_VALUE ? (fileEntry.unixMode & FILE_ATTR_UNIX_EXECUTABLE_MASK) != 0 : unixCompatible && (unixExternalUpper & FILE_ATTR_UNIX_EXECUTABLE_MASK) != 0);
4070
4208
  const modeIsDir = fileEntry.unixMode !== UNDEFINED_VALUE && (fileEntry.unixMode & FILE_ATTR_UNIX_TYPE_MASK) == FILE_ATTR_UNIX_TYPE_DIR;
4071
4209
  const upperIsDir = (unixExternalUpper & FILE_ATTR_UNIX_TYPE_MASK) == FILE_ATTR_UNIX_TYPE_DIR;
4210
+ const directory = modeIsDir || upperIsDir || msDosCompatible && msdosAttributes.directory || fileEntry.filename.endsWith(DIRECTORY_SIGNATURE);
4211
+ const executable = !symlink && !directory && (fileEntry.unixMode !== UNDEFINED_VALUE ? (fileEntry.unixMode & FILE_ATTR_UNIX_EXECUTABLE_MASK) != 0 : unixCompatible && (unixExternalUpper & FILE_ATTR_UNIX_EXECUTABLE_MASK) != 0);
4072
4212
  Object.assign(fileEntry, {
4073
4213
  setuid,
4074
4214
  setgid,
@@ -4076,11 +4216,14 @@ var init_zip_reader = __esm({
4076
4216
  symlink,
4077
4217
  unixExternalUpper,
4078
4218
  executable,
4079
- directory: modeIsDir || upperIsDir || msDosCompatible && msdosAttributes.directory || fileEntry.filename.endsWith(DIRECTORY_SIGNATURE),
4219
+ directory,
4080
4220
  zipCrypto: fileEntry.encrypted && !fileEntry.extraFieldAES
4081
4221
  });
4082
4222
  const entry = new Entry(fileEntry);
4083
- entry.getData = (writer, options2) => fileEntry.getData(writer, entry, zipReader.readRanges, options2);
4223
+ if (fileEntry.zip64ExtraFieldMissing) {
4224
+ zipReader.entriesMissingZip64ExtraField.add(entry);
4225
+ }
4226
+ entry.getData = (writer, options2) => fileEntry.getData(writer, entry, zipReader, options2);
4084
4227
  entry.arrayBuffer = async (options2) => {
4085
4228
  const writer = new TransformStream();
4086
4229
  const arrayBufferPromise = streamToBlob(writer.readable).then((blob) => blob.arrayBuffer());
@@ -4089,7 +4232,7 @@ var init_zip_reader = __esm({
4089
4232
  await fileEntry.getData(
4090
4233
  writer,
4091
4234
  entry,
4092
- zipReader.readRanges,
4235
+ zipReader,
4093
4236
  Object.assign({}, options2, { preventClose: false })
4094
4237
  );
4095
4238
  return arrayBufferPromise;
@@ -4133,10 +4276,10 @@ var init_zip_reader = __esm({
4133
4276
  const extractPrependedData = getOptionValue(zipReader, options, OPTION_EXTRACT_PREPENDED_DATA);
4134
4277
  const extractAppendedData = getOptionValue(zipReader, options, OPTION_EXTRACT_APPENDED_DATA);
4135
4278
  const splitZipSignatureLength = (checkAmbiguity || extractPrependedData) && filesLength && startOffset == SPLIT_ZIP_FILE_SIGNATURE_LENGTH && await startsWithSplitZipMarker(reader) ? SPLIT_ZIP_FILE_SIGNATURE_LENGTH : 0;
4136
- if (checkAmbiguity && (prependedDataLength || filesLength && startOffset > splitZipSignatureLength)) {
4279
+ if (checkAmbiguity && (prependedDataLength > 0 || filesLength && startOffset > splitZipSignatureLength)) {
4137
4280
  throwAmbiguousArchive(WARNING_PREPENDED_DATA);
4138
4281
  }
4139
- if (prependedDataLength || filesLength && startOffset > SPLIT_ZIP_FILE_SIGNATURE_LENGTH) {
4282
+ if (prependedDataLength > 0 || filesLength && startOffset > SPLIT_ZIP_FILE_SIGNATURE_LENGTH) {
4140
4283
  addWarning(warnings, WARNING_PREPENDED_DATA);
4141
4284
  }
4142
4285
  if (prependedCentralDirectory) {
@@ -4220,8 +4363,12 @@ var init_zip_reader = __esm({
4220
4363
  options
4221
4364
  });
4222
4365
  }
4223
- async getData(writer, fileEntry, readRanges, options = {}) {
4366
+ async getData(writer, fileEntry, zipReader, options = {}) {
4224
4367
  const zipEntry = this;
4368
+ const { readRanges, directoryOffset } = zipReader;
4369
+ if (zipEntry.zip64ExtraFieldMissing) {
4370
+ throw new Error(ERR_EXTRAFIELD_ZIP64_NOT_FOUND);
4371
+ }
4225
4372
  const config3 = getConfiguration();
4226
4373
  const {
4227
4374
  reader,
@@ -4292,10 +4439,10 @@ var init_zip_reader = __esm({
4292
4439
  }
4293
4440
  validateLocalDirectory(zipEntry, localDirectory, rawLocalFilename, checkLocalFilename, checkLocalDirectory ? UNDEFINED_VALUE : warnings);
4294
4441
  const { lastAccessDate, creationDate, uid, gid } = localDirectory;
4295
- if (lastAccessDate) {
4442
+ if (lastAccessDate && fileEntry.lastAccessDate === UNDEFINED_VALUE) {
4296
4443
  fileEntry.lastAccessDate = lastAccessDate;
4297
4444
  }
4298
- if (creationDate) {
4445
+ if (creationDate && fileEntry.creationDate === UNDEFINED_VALUE) {
4299
4446
  fileEntry.creationDate = creationDate;
4300
4447
  }
4301
4448
  if (uid !== UNDEFINED_VALUE && fileEntry.uid === UNDEFINED_VALUE) {
@@ -4324,7 +4471,7 @@ var init_zip_reader = __esm({
4324
4471
  throw new Error(ERR_ENCRYPTED);
4325
4472
  }
4326
4473
  }
4327
- if (dataOffset + compressedSize > reader.size) {
4474
+ if (dataOffset + compressedSize > Math.min(reader.size, directoryOffset)) {
4328
4475
  throw new Error(ERR_ENTRY_DATA_OUT_OF_BOUNDS);
4329
4476
  }
4330
4477
  const size = compressedSize;
@@ -4361,7 +4508,6 @@ var init_zip_reader = __esm({
4361
4508
  encrypted,
4362
4509
  useWebWorkers: getOptionValue(zipEntry, options, OPTION_USE_WEB_WORKERS),
4363
4510
  useCompressionStream,
4364
- transferStreams: getOptionValue(zipEntry, options, OPTION_TRANSFER_STREAMS),
4365
4511
  deflate64,
4366
4512
  format: registeredCodec ? registeredCodec.format : UNDEFINED_VALUE,
4367
4513
  codecURI: registeredCodec ? registeredCodec.codecURI : UNDEFINED_VALUE,
@@ -4386,6 +4532,7 @@ var init_zip_reader = __esm({
4386
4532
  extraFieldZip64: extraFieldZip64 || localDirectory.extraFieldZip64,
4387
4533
  readRanges
4388
4534
  });
4535
+ validateDataDescriptor(zipEntry, localDirectory, checkLocalDirectory ? UNDEFINED_VALUE : warnings);
4389
4536
  }
4390
4537
  let writable, abortError, aborted;
4391
4538
  try {
@@ -4405,10 +4552,7 @@ var init_zip_reader = __esm({
4405
4552
  writer.size += writtenSize;
4406
4553
  }
4407
4554
  } catch (error) {
4408
- const { outputSize: failedOutputSize } = workerOptions;
4409
- if (failedOutputSize !== UNDEFINED_VALUE) {
4410
- writer.size += failedOutputSize;
4411
- } else if (isErrorObject(error) && error.outputSize !== UNDEFINED_VALUE) {
4555
+ if (isErrorObject(error) && error.outputSize !== UNDEFINED_VALUE) {
4412
4556
  writer.size += error.outputSize;
4413
4557
  }
4414
4558
  if (!checkPasswordOnly || !isErrorObject(error) || error.message != ERR_ABORT_CHECK_PASSWORD) {
@@ -5615,16 +5759,16 @@ function parseProtonPassExport(text, limits, binaryNames) {
5615
5759
  );
5616
5760
  }
5617
5761
 
5618
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/zip-fs-wasm.js
5762
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/zip-fs-wasm.js
5619
5763
  init_configuration();
5620
5764
 
5621
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/web-worker-inline-wasm.js
5765
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/web-worker-inline-wasm.js
5622
5766
  var t = new Uint8Array(288);
5623
5767
  t.fill(8, 0, 144), t.fill(9, 144, 256), t.fill(7, 256, 280), t.fill(8, 280, 288), new Uint8Array(30).fill(5);
5624
5768
  var n2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
5625
5769
  var e = (t3) => t3({ workerURI: (t4) => {
5626
5770
  const e3 = "text/javascript";
5627
- let r2 = '!function(t){"function"==typeof define&&define.amd?define(t):t()}(function(){"use strict";const{Array:t,Object:n,Number:e,Math:o,Error:r,Uint8Array:c,Uint16Array:s,Uint32Array:a,Int32Array:i,Map:f,DataView:u,Promise:w,TextEncoder:l,crypto:d,postMessage:p,TransformStream:h,ReadableStream:y,WritableStream:m,CompressionStream:S,DecompressionStream:g}=self,v=void 0,b="undefined",k="function",z=new c,C=[[],[],[],[],[],[],[],[]];for(let t=0;t<256;t++){let n=t;for(let t=0;t<8;t++)n=1&n?n>>>1^3988292384:n>>>1;C[0][t]=n}for(let t=0;t<256;t++)for(let n=1;n<8;n++){const e=C[n-1][t];C[n][t]=e>>>8^C[0][255&e]}const[I,M,A,E,R,x,P,D]=C;class F{constructor(t){this.o=t||-1}append(t){let n=0|this.o;const e=0|t.length;let o=0;if(e>=8&&t.buffer){const r=new u(t.buffer,t.byteOffset,e),c=e-8;for(;o<=c;o+=8){const t=n^r.getInt32(o,!0),e=r.getInt32(o+4,!0);n=D[255&t]^P[t>>>8&255]^x[t>>>16&255]^R[t>>>24&255]^E[255&e]^A[e>>>8&255]^M[e>>>16&255]^I[e>>>24&255]}}for(;o<e;o++)n=n>>>8^I[255&(n^t[o])];this.o=n}get(){return~this.o}}class U extends h{constructor(){let t;const n=new F;super({transform(t,e){n.append(t),e.enqueue(t)},flush(){const e=new c(4);new u(e.buffer).setUint32(0,n.get()),t.value=e}}),t=this}}function B(t,n){const e=new c(t.length+n.length);return e.set(t),e.set(n,t.length),e}function W(t){return new u(t.buffer,t.byteOffset,t.byteLength)}const O=64,V=20,K=new c([128]),T=new c(1),_=new i([1732584193,4023233417,2562383102,271733878,3285377520]),j=new c(256),H=new i(256),L=new i(256),Z=new i(256),N=new i(256);let q=!1;function G(t,n){!function(){if(!q){let t=1,n=1;do{t=255&(t^t<<1^(128&t?27:0)),n=255&(n^n<<1),n=255&(n^n<<2),n=255&(n^n<<4),128&n&&(n^=9),j[t]=255&(n^(n<<1|n>>7)^(n<<2|n>>6)^(n<<3|n>>5)^(n<<4|n>>4)^99)}while(1!=t);j[0]=99;for(let t=0;t<256;t++){const n=j[t],e=Y(n),o=e<<24|n<<16|n<<8|e^n;H[t]=o,L[t]=o>>>8|o<<24,Z[t]=o>>>16|o<<16,N[t]=o>>>24|o<<8}q=!0}}();const e=new i(60),o=function(t,n){const e=t.length>>2,o=e+6,r=4*(o+1);let c=1;for(let o=0;o<e;o++)n[o]=t[4*o]<<24|t[4*o+1]<<16|t[4*o+2]<<8|t[4*o+3];for(let t=e;t<r;t++){let o=n[t-1];t%e==0?(o=Q(o<<8|o>>>24)^c<<24,c=Y(c)):e>6&&t%e==4&&(o=Q(o)),n[t]=n[t-e]^o}return o}(t,e),r=new i(4),c=J(n);let s=0,a=0,f=0,w=0;return{process(t,n){n&&c.update(t,0,t.length),function(t){const n=new u(t.buffer,t.byteOffset,t.byteLength),e=t.length;let o=0;for(;o+16<=e;o+=16)l(),n.setInt32(o,n.getInt32(o)^r[0]),n.setInt32(o+4,n.getInt32(o+4)^r[1]),n.setInt32(o+8,n.getInt32(o+8)^r[2]),n.setInt32(o+12,n.getInt32(o+12)^r[3]);if(o<e){l();for(let n=0;o<e;o++,n++)t[o]^=r[n>>2]>>>24-8*(3&n)}}(t),n||c.update(t,0,t.length)},digest:()=>c.digest()};function l(){s=s+1|0,s||(a=a+1|0,a||(f=f+1|0,f||(w=w+1|0)));let t=X(s)^e[0],n=X(a)^e[1],c=X(f)^e[2],i=X(w)^e[3],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[4],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[5],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[6],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[7];t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[8],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[9],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[10],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[11],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[12],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[13],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[14],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[15],t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[16],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[17],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[18],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[19],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[20],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[21],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[22],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[23],t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[24],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[25],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[26],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[27],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[28],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[29],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[30],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[31],t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[32],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[33],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[34],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[35],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[36],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[37],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[38],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[39];let h=40;o>10&&(t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[40],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[41],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[42],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[43],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[44],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[45],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[46],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[47],h=48),o>12&&(t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[48],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[49],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[50],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[51],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[52],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[53],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[54],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[55],h=56),r[0]=(j[u>>>24]<<24|j[l>>>16&255]<<16|j[d>>>8&255]<<8|j[255&p])^e[h],r[1]=(j[l>>>24]<<24|j[d>>>16&255]<<16|j[p>>>8&255]<<8|j[255&u])^e[h+1],r[2]=(j[d>>>24]<<24|j[p>>>16&255]<<16|j[u>>>8&255]<<8|j[255&l])^e[h+2],r[3]=(j[p>>>24]<<24|j[u>>>16&255]<<16|j[l>>>8&255]<<8|j[255&d])^e[h+3]}}function J(t){const n=function(){const t=new i(_),n=new i(16),e=new c(O),r=new u(e.buffer),s=new c(8);let a=0,f=0;return{update:w,digest:function(){const n=8*f,e=o.floor(n/4294967296),r=n>>>0;for(w(K,0,1);56!=a;)w(T,0,1);s[0]=e>>>24,s[1]=e>>>16,s[2]=e>>>8,s[3]=e,s[4]=r>>>24,s[5]=r>>>16,s[6]=r>>>8,s[7]=r,w(s,0,8);const i=new c(V),l=new u(i.buffer);for(let n=0;n<t.length;n++)l.setInt32(4*n,t[n]);return t.set(_),a=0,f=0,i}};function w(t,n,o){const c=n+o;if(f+=o,a){for(;n<c&&a<O;)e[a++]=t[n++];a==O&&(l(r,0),a=0)}if(n+O<=c){const e=new u(t.buffer,t.byteOffset,t.byteLength);for(;n+O<=c;n+=O)l(e,n)}for(;n<c;)e[a++]=t[n++]}function l(e,o){for(let t=0;t<16;t++)n[t]=e.getInt32(o+4*t);let r,c=t[0],s=t[1],a=t[2],i=t[3],f=t[4];for(let t=0;t<15;t+=5)f=(c<<5|c>>>27)+((a^i)&s^i)+f+1518500249+n[t]|0,s=s<<30|s>>>2,i=(f<<5|f>>>27)+((s^a)&c^a)+i+1518500249+n[t+1]|0,c=c<<30|c>>>2,a=(i<<5|i>>>27)+((c^s)&f^s)+a+1518500249+n[t+2]|0,f=f<<30|f>>>2,s=(a<<5|a>>>27)+((f^c)&i^c)+s+1518500249+n[t+3]|0,i=i<<30|i>>>2,c=(s<<5|s>>>27)+((i^f)&a^f)+c+1518500249+n[t+4]|0,a=a<<30|a>>>2;f=(c<<5|c>>>27)+((a^i)&s^i)+f+1518500249+n[15]|0,s=s<<30|s>>>2,r=n[13]^n[8]^n[2]^n[0],r=r<<1|r>>>31,n[0]=r,i=(f<<5|f>>>27)+((s^a)&c^a)+i+1518500249+r|0,c=c<<30|c>>>2,r=n[14]^n[9]^n[3]^n[1],r=r<<1|r>>>31,n[1]=r,a=(i<<5|i>>>27)+((c^s)&f^s)+a+1518500249+r|0,f=f<<30|f>>>2,r=n[15]^n[10]^n[4]^n[2],r=r<<1|r>>>31,n[2]=r,s=(a<<5|a>>>27)+((f^c)&i^c)+s+1518500249+r|0,i=i<<30|i>>>2,r=n[0]^n[11]^n[5]^n[3],r=r<<1|r>>>31,n[3]=r,c=(s<<5|s>>>27)+((i^f)&a^f)+c+1518500249+r|0,a=a<<30|a>>>2;for(let t=20;t<40;t+=5)r=n[t-3&15]^n[t-8&15]^n[t-14&15]^n[15&t],r=r<<1|r>>>31,n[15&t]=r,f=(c<<5|c>>>27)+(s^a^i)+f+1859775393+r|0,s=s<<30|s>>>2,r=n[t-2&15]^n[t-7&15]^n[t-13&15]^n[t+1&15],r=r<<1|r>>>31,n[t+1&15]=r,i=(f<<5|f>>>27)+(c^s^a)+i+1859775393+r|0,c=c<<30|c>>>2,r=n[t-1&15]^n[t-6&15]^n[t-12&15]^n[t+2&15],r=r<<1|r>>>31,n[t+2&15]=r,a=(i<<5|i>>>27)+(f^c^s)+a+1859775393+r|0,f=f<<30|f>>>2,r=n[15&t]^n[t-5&15]^n[t-11&15]^n[t+3&15],r=r<<1|r>>>31,n[t+3&15]=r,s=(a<<5|a>>>27)+(i^f^c)+s+1859775393+r|0,i=i<<30|i>>>2,r=n[t+1&15]^n[t-4&15]^n[t-10&15]^n[t+4&15],r=r<<1|r>>>31,n[t+4&15]=r,c=(s<<5|s>>>27)+(a^i^f)+c+1859775393+r|0,a=a<<30|a>>>2;for(let t=40;t<60;t+=5)r=n[t-3&15]^n[t-8&15]^n[t-14&15]^n[15&t],r=r<<1|r>>>31,n[15&t]=r,f=(c<<5|c>>>27)+(s&a|(s|a)&i)+f+2400959708+r|0,s=s<<30|s>>>2,r=n[t-2&15]^n[t-7&15]^n[t-13&15]^n[t+1&15],r=r<<1|r>>>31,n[t+1&15]=r,i=(f<<5|f>>>27)+(c&s|(c|s)&a)+i+2400959708+r|0,c=c<<30|c>>>2,r=n[t-1&15]^n[t-6&15]^n[t-12&15]^n[t+2&15],r=r<<1|r>>>31,n[t+2&15]=r,a=(i<<5|i>>>27)+(f&c|(f|c)&s)+a+2400959708+r|0,f=f<<30|f>>>2,r=n[15&t]^n[t-5&15]^n[t-11&15]^n[t+3&15],r=r<<1|r>>>31,n[t+3&15]=r,s=(a<<5|a>>>27)+(i&f|(i|f)&c)+s+2400959708+r|0,i=i<<30|i>>>2,r=n[t+1&15]^n[t-4&15]^n[t-10&15]^n[t+4&15],r=r<<1|r>>>31,n[t+4&15]=r,c=(s<<5|s>>>27)+(a&i|(a|i)&f)+c+2400959708+r|0,a=a<<30|a>>>2;for(let t=60;t<80;t+=5)r=n[t-3&15]^n[t-8&15]^n[t-14&15]^n[15&t],r=r<<1|r>>>31,n[15&t]=r,f=(c<<5|c>>>27)+(s^a^i)+f+3395469782+r|0,s=s<<30|s>>>2,r=n[t-2&15]^n[t-7&15]^n[t-13&15]^n[t+1&15],r=r<<1|r>>>31,n[t+1&15]=r,i=(f<<5|f>>>27)+(c^s^a)+i+3395469782+r|0,c=c<<30|c>>>2,r=n[t-1&15]^n[t-6&15]^n[t-12&15]^n[t+2&15],r=r<<1|r>>>31,n[t+2&15]=r,a=(i<<5|i>>>27)+(f^c^s)+a+3395469782+r|0,f=f<<30|f>>>2,r=n[15&t]^n[t-5&15]^n[t-11&15]^n[t+3&15],r=r<<1|r>>>31,n[t+3&15]=r,s=(a<<5|a>>>27)+(i^f^c)+s+3395469782+r|0,i=i<<30|i>>>2,r=n[t+1&15]^n[t-4&15]^n[t-10&15]^n[t+4&15],r=r<<1|r>>>31,n[t+4&15]=r,c=(s<<5|s>>>27)+(a^i^f)+c+3395469782+r|0,a=a<<30|a>>>2;t[0]=t[0]+c|0,t[1]=t[1]+s|0,t[2]=t[2]+a|0,t[3]=t[3]+i|0,t[4]=t[4]+f|0}}(),e=new c(O),r=new c(O);t.length>O&&(n.update(t,0,t.length),t=n.digest());for(let n=0;n<O;n++){const o=n<t.length?t[n]:0;e[n]=54^o,r[n]=92^o}return n.update(e,0,O),{update(t,e,o){n.update(t,e,o)},digest(){const t=n.digest();n.update(r,0,O),n.update(t,0,V);const o=n.digest();return n.update(e,0,O),o}}}function Q(t){return j[t>>>24]<<24|j[t>>>16&255]<<16|j[t>>>8&255]<<8|j[255&t]}function X(t){return t<<24|(65280&t)<<8|t>>>8&65280|t>>>24}function Y(t){return 255&(t<<1^27*(t>>7))}const $=typeof d!=b&&typeof d.getRandomValues==k,tt="Invalid password",nt="zipjs-abort-check-password";function et(t){if($)return d.getRandomValues(t);throw new r("Crypto API not supported")}const ot={name:"PBKDF2"},rt=n.assign({hash:{name:"HMAC"}},ot),ct=n.assign({iterations:1e3,hash:{name:"SHA-1"}},ot),st=["deriveBits"],at=[8,12,16],it=[16,24,32],ft=10,ut=typeof d!=b,wt=ut&&d.subtle;let lt=ut&&typeof wt!=b&&typeof wt.importKey==k&&typeof wt.deriveBits==k,dt=G;class pt extends h{constructor({password:t,rawPassword:n,encryptionStrength:e,checkPasswordOnly:o,checkAuthenticationCode:s=!0}){const a={};super({start(){yt(a,t,n,e)},async transform(t,n){const{password:e,strength:s,l:i,ready:f}=a;if(e?(await async function(t,n,e,o){const c=await vt(t,n,e,kt(o,0,at[n])),s=kt(o,at[n]);if(c[0]!=s[0]||c[1]!=s[1])throw gt(t),new r(tt)}(a,s,e,kt(t,0,at[s]+2)),t=kt(t,at[s]+2),o?(gt(a),n.error(new r(nt))):i()):await f,a.h)return;const u=new c(t.length-ft-(t.length-ft)%16);n.enqueue(St(a,t,u,0,ft,!0))},async flush(t){const{m:n,S:e,ready:o}=a;if(n){if(await o,a.h)return;const i=kt(e,e.length-ft),f=new c(kt(e,0,e.length-ft));n.process(f,!0);const u=n.digest();let w=e.length<ft?1:0;for(let t=0;t<ft;t++)w|=u[t]^i[t];if(w&&s)return void t.error(new r("Invalid authentication code"));t.enqueue(f)}}}),mt(this,a)}}class ht extends h{constructor({password:t,rawPassword:n,encryptionStrength:e}){const o={};super({start(){yt(o,t,n,e)},async transform(t,n){const{password:e,strength:r,l:s,ready:a}=o;let i=z;if(e?(i=await async function(t,n,e){const o=et(new c(at[n]));return B(o,await vt(t,n,e,o))}(o,r,e),s()):await a,o.h)return;const f=new c(i.length+t.length-t.length%16);f.set(i,0),n.enqueue(St(o,t,f,i.length,0,!1))},async flush(t){const{m:n,S:e,ready:r}=o;if(n){if(await r,o.h)return;const s=new c(e);n.process(s,!1);const a=kt(n.digest(),0,ft);t.enqueue(B(s,a))}}}),mt(this,o)}}function yt(t,e,o,r){n.assign(t,{ready:new w(n=>t.l=n),password:bt(e,o),strength:r-1,S:z,h:!1})}function mt(t,e){const o=t.readable.getReader(),r=new y({async pull(t){try{const{value:n,done:e}=await o.read();e?t.close():t.enqueue(n)}catch(t){throw gt(e),o.cancel(t).catch(()=>{}),t}},cancel:t=>(gt(e),o.cancel(t))});n.defineProperty(t,"readable",{get:()=>r})}function St(t,n,e,o,r,s){const{m:a,S:i}=t;i.length&&(n=B(i,n));const f=n.length-r,u=f-f%16;if(e=function(t,n){if(n&&n>t.length){const e=t;(t=new c(n)).set(e,0)}return t}(e,o+u),u){const t=kt(e,o,o+u);t.set(kt(n,0,u)),a.process(t,s)}return t.S=kt(n,u),e}function gt(t){const{m:n}=t;t.h=!0,n&&n.dispose&&n.dispose()}async function vt(t,e,r,s){t.password=null;const a=it[e],i=await async function(t,e,r){if(lt)try{const o=await wt.importKey("raw",t,rt,!1,st);return new c(await wt.deriveBits(n.assign({salt:e},ct),o,8*r))}catch{lt=!1}return function(t,n,e,r){const s=J(t),a=new c(r),i=new c(n.length+4),f=new u(i.buffer);i.set(n);for(let t=1,e=0;e<r;t++,e+=V){f.setUint32(n.length,t),s.update(i,0,i.length);let c=s.digest();const u=c.slice();for(let t=1;t<1e3;t++){s.update(c,0,V),c=s.digest();for(let t=0;t<V;t++)u[t]^=c[t]}a.set(u.subarray(0,o.min(V,r-e)),e)}return a}(t,e,0,r)}(r,s,2*a+2);return t.m=dt(kt(i,0,a),kt(i,a,2*a)),t.h&&gt(t),kt(i,2*a)}function bt(t,n){return n===v?function(t){if(typeof l==b){t=unescape(encodeURIComponent(t));const n=new c(t.length);for(let e=0;e<n.length;e++)n[e]=t.charCodeAt(e);return n}return(new l).encode(t)}(t):n}function kt(t,n,e){return t.subarray(n,e)}class zt extends h{constructor({password:t,rawPassword:n,passwordVerification:e,checkPasswordOnly:o}){super({start(){It(this,t,n,e)},transform(t,n){const e=this;if(e.password||e.rawPassword){const n=Mt(e,t.subarray(0,12));if(e.password=e.rawPassword=null,0!=(n[11]^e.passwordVerification))throw new r(tt);t=t.subarray(12)}o?n.error(new r(nt)):n.enqueue(Mt(e,t))}})}}class Ct extends h{constructor({password:t,rawPassword:n,passwordVerification:e}){super({start(){It(this,t,n,e)},transform(t,n){const e=this;let o,r;if(e.password||e.rawPassword){e.password=e.rawPassword=null;const n=et(new c(12));n[11]=e.passwordVerification,o=new c(t.length+n.length),o.set(At(e,n),0),r=12}else o=new c(t.length),r=0;o.set(At(e,t),r),n.enqueue(o)}})}}function It(t,e,o,r){n.assign(t,{password:e,rawPassword:o,passwordVerification:r}),function(t,e,o){const r=[305419896,591751049,878082192];if(n.assign(t,{v:r,C:new F(r[0]),I:new F(r[2])}),o)for(let n=0;n<o.length;n++)Et(t,o[n]);else for(let n=0;n<e.length;n++)Et(t,e.charCodeAt(n))}(t,e,o)}function Mt(t,n){const e=new c(n.length);for(let o=0;o<n.length;o++)e[o]=Rt(t)^n[o],Et(t,e[o]);return e}function At(t,n){const e=new c(n.length);for(let o=0;o<n.length;o++)e[o]=Rt(t)^n[o],Et(t,n[o]);return e}function Et(t,n){let[,e]=t.v;t.C.append([n]);const r=~t.C.get();e=Pt(o.imul(Pt(e+xt(r)),134775813)+1),t.I.append([e>>>24]);const c=~t.I.get();t.v=[r,e,c]}function Rt(t){const n=2|t.v[2];return xt(o.imul(n,1^n)>>>8)}function xt(t){return 255&t}function Pt(t){return 4294967295&t}function Dt(t){if(t instanceof y)return t;const n=t.getReader();return new y({async pull(t){try{const{value:e,done:o}=await n.read();o?t.close():t.enqueue(e)}catch(t){throw n.cancel(t).catch(()=>{}),t}},cancel:t=>n.cancel(t)})}function Ft(t){return Boolean(t)&&"object"==typeof t}const Ut=new f;function Bt(t){return Ut.get(t)}const Wt="Invalid uncompressed size",Ot="Codec out of memory",Vt="Invalid CRC32",Kt="deflate-raw",Tt="gzip",_t=[31,139,8];class jt extends h{constructor(t,{chunkSize:n,CompressionStreamFallback:e,CompressionStream:o}){super({});const{compressed:r,encrypted:c,useCompressionStream:s,zipCrypto:a,computeCrc32:i,level:f,deflate64:w,format:l,compressionMethod:d,inputSize:p}=t,h=this;let y,m,S,g=super.readable;const v=l&&Bt(l),b=Gt(s,o,e),k=i&&r&&!w&&!v&&(!c||a)&&Boolean(b);if(c&&!a||!i||k||(y=new U,g=Qt(g,y)),r)if(v)g=Xt(g,qt(v.CompressionStream,l,{level:f,chunkSize:n,compressionMethod:d,uncompressedSize:p}));else if(k)S=new Ht,g=Xt(g,new b(Tt,{level:f,chunkSize:n})),g=Qt(g,S);else try{g=Jt(g,s,{level:f,chunkSize:n},o,e)}catch(t){if(!s&&e)throw en(t);let n;try{n=new o(Tt)}catch{throw en(t)}g=Xt(g,n),g=Qt(g,new Ht)}c&&(a?g=Qt(g,new Ct(t)):(m=new ht(t),g=Qt(g,m))),Nt(h,g,()=>{c&&!a||!i||(h.crc32=k?S.crc32:new u(y.value.buffer).getUint32(0))})}}class Ht extends h{constructor(){let t,n=10,e=new c(0);super({transform(t,r){if(n){const e=o.min(n,t.length);if(n-=e,!(t=t.subarray(e)).length)return}const c=e.length+t.length;if(c<=8)return void(e=B(e,t));const s=c-8,a=o.min(s,e.length);r.enqueue(B(e.subarray(0,a),t.subarray(0,s-a))),e=B(e.subarray(a),t.subarray(s-a))},flush(){const n=W(e);t.crc32=n.getUint32(0,!0),t.uncompressedSize=n.getUint32(4,!0)}}),t=this}}class Lt extends h{constructor(t,{chunkSize:n,DecompressionStreamFallback:e,DecompressionStream:o}){super({});const{zipCrypto:s,encrypted:a,checkCrc32:i,crc32:f,compressed:l,useCompressionStream:d,deflate64:p,format:h,compressionMethod:m,rawBitFlag:S,outputSize:g}=t;let b,k,z,C=super.readable;if(a&&(s?C=Qt(C,new zt(t)):(k=new pt(t),C=Qt(C,k))),l){const t=new Set,s=h&&Bt(h);let a;if(s)C=Xt(C,qt(s.DecompressionStream,h,{chunkSize:n,compressionMethod:m,rawBitFlag:S,uncompressedSize:g}),t);else{const r=Gt(d,o,e);if(i&&!p&&f!==v&&g!==v&&r)try{a=new r(Tt,{chunkSize:n})}catch{a=v}if(!a)try{C=Jt(C,d,{chunkSize:n,deflate64:p},o,e,t)}catch(t){if(p||g===v||!d&&e)throw en(t);try{a=new o(Tt)}catch{throw en(t)}}}a?(z=!0,C=function(t,n,e,o,s){const a=n.writable.getWriter(),i=n.readable.getReader(),f=o===v?new F:v;let u,l,d=0,p=!1,h=!1;const m=new y({start(t){l=t},pull(){b()},cancel:t=>(h=!0,b(),i.cancel(t))});return async function(){const n=t.getReader();try{const t=new c(10);for(t.set(_t),await a.write(t);;){await g(),await a.ready;const{value:t,done:e}=await tn(n,s);if(e)break;await a.write(t)}f&&await a.write(new c(0));const r=new c(8),i=W(r);i.setUint32(0,f?f.get():o,!0),i.setUint32(4,e,!0),p=!0,await a.write(r),await a.close()}catch(t){await Yt(a,t),await $t(n,t)}}(),async function(){try{for(;;){const{value:t,done:n}=await S();if(n)break;if(d+=t.length,d>e)throw new r(Wt);f&&f.append(t),l.enqueue(t)}h||(h=!0,l.close())}catch(t){!function(t){h||(h=!0,l.error(t),b())}(t),await $t(i,t)}}(),m;function S(){return i.read().catch(t=>{if(p){if(!f)throw rn(t,Vt);if(d!=e)throw rn(t,Wt);return{done:!0}}throw nn(t,s)})}function g(){if(!h&&l.desiredSize<=0)return new w(t=>u=t)}function b(){if(u){const t=u;u=v,t()}}}(C,a,g,f,t)):C=function(t,n){const e=t.getReader();return new y({async pull(t){try{const{value:n,done:o}=await e.read();o?t.close():t.enqueue(n)}catch(t){throw await $t(e,t),nn(t,n)}},cancel:t=>e.cancel(t)})}(C,t)}i&&!z&&(b=new U,C=Qt(C,b)),Nt(this,C,()=>{if(b){const t=new u(b.value.buffer).getUint32(0,!1);if(f!=t)throw new r(Vt)}})}}const Zt=new f;function Nt(t,e,o){e=Qt(e,new h({flush:o})),n.defineProperty(t,"readable",{get:()=>e})}function qt(t,n,e){if(!t)throw new r("Compression method not supported");return new t(n,e)}function Gt(t,n,e){return t&&n?n:e&&e.requiresModule?e:void 0}function Jt(t,n,e,o,r,c){const s=n&&o?o:r||o,a=e.deflate64?"deflate64-raw":Kt;let i;try{i=new s(a,e)}catch(t){if(!n||!r||s==r)throw t;i=new r(a,e)}return Xt(t,i,c)}function Qt(t,n){return Dt(t).pipeThrough(n)}function Xt(t,n,e){const o=n.writable.getWriter(),r=t.getReader();return async function(){try{for(;;){await o.ready;const t=await tn(r,e);if(t.done){await o.close();break}await o.write(t.value)}}catch(t){await Yt(o,t),await $t(r,t)}}(),n.readable}async function Yt(t,n){try{await t.abort(n)}catch{}}async function $t(t,n){try{await t.cancel(n)}catch{}}function tn(t,n){const e=t.read();return n?e.catch(t=>{throw n.add(t),t}):e}function nn(t,n){return n.has(t)?t:rn(t,on(t)?Ot:"Invalid compressed data")}function en(t){return on(t)?rn(t,Ot):t}function on(t){return Ft(t)&&"Z_MEM_ERROR"==t.code}function rn(t,n){const e=new r(n);return e.cause=t,e}const cn="data",sn="deflate";class an extends h{constructor(t,e){super({});const o=this,{codecType:c}=t;let s;c.startsWith(sn)?s=jt:c.startsWith("inflate")&&(s=Lt),o.outputSize=0;let a=0;const i=new s(t,e),f=super.readable,u=new h({transform(t,n){t&&t.length&&(a+=t.length,n.enqueue(t))},flush(){n.assign(o,{inputSize:a})}}),w=new h({transform(n,e){if(n&&n.length&&(e.enqueue(n),o.outputSize+=n.length,t.outputSize!==v&&o.outputSize>t.outputSize))throw new r(Wt)},flush(){const{crc32:t}=i;n.assign(o,{crc32:t,inputSize:a})}});n.defineProperty(o,"readable",{get:()=>f.pipeThrough(u).pipeThrough(i).pipeThrough(w)})}}class fn extends h{constructor(t){const o=[];let r=0,s=0;function a(){const n=new c(t);let e=0;for(;e<t;){const r=o[0],c=t-e;r.length<=c?(n.set(r,e),e+=r.length,o.shift()):(n.set(r.subarray(0,c),e),o[0]=r.subarray(c),e+=c)}return r-=t,n}(!e.isFinite(t)||t<1)&&(t=65536),super({transform(n,e){for(o.push(n),r+=n.length;r>t;)s+=t,e.enqueue(a())},flush(t){r&&(s+=r,t.enqueue(function(t,n){const e=new c(n);let o=0;for(const n of t)e.set(n,o),o+=n.length;return e}(o,r)))}}),n.defineProperty(this,"outputSize",{get:()=>s})}}let un=2;try{typeof navigator!=b&&navigator.hardwareConcurrency&&(un=navigator.hardwareConcurrency)}catch{}const wn=new f,ln=new f,dn=function(){try{return structuredClone(new r)instanceof r}catch{return!1}}();let pn=0;async function hn(t){let n,c,s;try{const{options:a,config:i}=t;if(a.format)try{await async function(t,n){!Ut.has(t)&&n&&function(t,n){const{CompressionStream:e,DecompressionStream:o}=n;if(typeof e!=k&&typeof o!=k)throw new r("Invalid codec module");Ut.set(t,{CompressionStream:e,DecompressionStream:o})}(t,await(import(n)))}(a.format,a.codecURI)}catch(t){if(Ft(t))try{t.codecImportFailed=!0}catch{}throw t}if(i.CompressionStream=self.CompressionStream,i.DecompressionStream=self.DecompressionStream,a.compressed&&!a.format)if(a.useCompressionStream){if(!function(t,n){if(!t)return!1;let e=Zt.get(t);e||(e=new f,Zt.set(t,e));let o=e.get(n);if(o===v){try{new t(n),o=!0}catch{o=!1}e.set(n,o)}return o}(a.codecType.startsWith(sn)?i.CompressionStream:i.DecompressionStream,Kt))try{await self.initModule(t.config)}catch{}}else try{await self.initModule(t.config)}catch{a.useCompressionStream=!0}if(a.encrypted&&!a.zipCrypto)try{await self.initModule(t.config)}catch{}!i.CompressionStreamFallback&&i.CompressionStreamZlib&&(i.CompressionStreamFallback=i.CompressionStreamZlib),!i.DecompressionStreamFallback&&i.DecompressionStreamZlib&&(i.DecompressionStreamFallback=i.DecompressionStreamZlib);const u={highWaterMark:1},l=t.readable?Dt(t.readable):new y({async pull(t){const n=new w(t=>wn.set(pn,t));yn({type:"pull",messageId:pn}),pn=(pn+1)%e.MAX_SAFE_INTEGER;const{value:o,done:r}=await n;t.enqueue(o),r&&t.close()}},u);s=t.writable?function(t){if(t instanceof m)return t;const n=t.getWriter();return new m({write:t=>n.write(t),close:()=>n.close(),abort:t=>n.abort(t)})}(t.writable):new m({async write(t){let n;const o=new w(t=>n=t);ln.set(pn,n),yn({type:cn,value:t,messageId:pn}),pn=(pn+1)%e.MAX_SAFE_INTEGER,await o}},u),n=new an(a,i),c=new fn(function(t){return r="string"==typeof(n=r=t.chunkSize)&&n.trim()?e(n):n,e.isInteger(r)&&r>=1?o.max(r,64):65536;var n,r}(i)),await l.pipeThrough(n).pipeThrough(c).pipeTo(s,{preventClose:!0,preventAbort:!0}),await s.getWriter().close();const{crc32:d,inputSize:p,outputSize:h}=n;yn({type:"close",result:{crc32:d,inputSize:p,outputSize:h}})}catch(t){const n=c?c.outputSize:0;if(Ft(t))try{t.outputSize=n}catch{}if(s&&!s.locked)try{await s.getWriter().close()}catch{}mn(t,n)}}function yn(t){const{value:n}=t;if(n)if(n.length)try{t.value=(e=n,e.byteOffset||e.byteLength!=e.buffer.byteLength?new c(e):e).buffer,p(t,[t.value])}catch{p(t)}else p(t);else p(t);var e}function mn(t,n){const{message:e,stack:o,code:c,name:s,outputSize:a,cause:i,codecImportFailed:f}=function(t=new r("Unknown error")){return Ft(t)?t:new r(String(t))}(t),u={message:e,stack:o,code:c,name:s,outputSize:a===v?n:a};if(Ft(i)&&(u.cause={name:i.name,message:i.message,code:i.code}),f&&(u.codecImportFailed=!0),dn)try{return void p({error:u,errorValue:{value:t}})}catch{}p({error:u})}addEventListener("message",({data:t})=>{const{type:n,messageId:e,value:o,done:r}=t;try{if("start"==n&&hn(t),n==cn){const t=wn.get(e);wn.delete(e),t({value:o||new c,done:r})}if("ack"==n){const t=ln.get(e);ln.delete(e),t()}}catch(t){mn(t)}}),p({type:"ready"});const Sn="deflate",gn="deflate-raw",vn="deflate64-raw",bn="gzip",kn=[Sn,gn,bn],zn=[Sn,gn,bn,vn];let Cn,In,Mn,An,En;function Rn(t,n){return-4===n&&(t.code="Z_MEM_ERROR"),t}function xn(t,n,e={}){if(!(t?kn:zn).includes(n))throw new TypeError("Unsupported format: "+n);if(!Cn){const t=new r("WASM module not loaded");throw t.cause=En,t}const s="number"==typeof e.level?e.level:-1,a="number"==typeof e.outBuffer?e.outBuffer:65536,i="number"==typeof e.inBufferSize?e.inBufferSize:65536,f={M:0,in:0,inBufferSize:0,A:0,R:!1};let u,l,d,p,h=!0,S=!1;return function(){try{let e;if(f.M=In(a),f.in=In(i),f.inBufferSize=i,!f.M||!f.in)throw Rn(new r("allocation failed"),-4);if(t?(f.P=Cn.deflate_process,f.D=Cn.deflate_last_consumed,f.F=Cn.deflate_end,f.A=Cn.deflate_new(),e=n===bn?Cn.deflate_init_gzip(f.A,s):n===gn?Cn.deflate_init_raw(f.A,s):Cn.deflate_init(f.A,s)):n===vn?(f.P=Cn.inflate9_process,f.D=Cn.inflate9_last_consumed,f.F=Cn.inflate9_end,f.A=Cn.inflate9_new(),e=Cn.inflate9_init_raw(f.A)):(f.P=Cn.inflate_process,f.D=Cn.inflate_last_consumed,f.F=Cn.inflate_end,f.A=Cn.inflate_new(),e=n===gn?Cn.inflate_init_raw(f.A):n===bn?Cn.inflate_init_gzip(f.A):Cn.inflate_init(f.A)),0!==e)throw Rn(new r("init failed:"+e),e)}catch(t){throw b(f),t}}(),{readable:new y({start(t){u=t},pull(){h=!1,v()},cancel(t){S=!0,p=t,b(f),l.error(t),v()}},{highWaterMark:0}),writable:new m({start(t){l=t},async write(t){if(h&&await new w(t=>d=t),S)throw p;try{!function(t){const n=new c(An.buffer),e=f.P,s=f.D,i=f.M;let u=0;for(;u<t.length;){if(f.R)throw new r("trailing data after the end of the stream");const c=o.min(t.length-u,32768);if((!f.in||f.inBufferSize<c)&&(f.in&&Mn&&(Mn(f.in),f.in=0),f.in=In(c),f.inBufferSize=c,!f.in))throw Rn(new r("allocation failed"),-4);n.set(t.subarray(u,u+c),f.in);const w=e(f.A,f.in,c,i,a,0),l=w>>24&255,d=128&l?l-256:l;if(d<0)throw Rn(new r("process error:"+d),d);const p=16777215&w;p&&g(n.slice(i,i+p));const h=s(f.A);if(1===l)f.R=!0;else if(0===h&&0===p)break;u+=h}}(t)}catch(t){throw b(f),u.error(t),t}},close(){if(S)return;try{!function(){const t=new c(An.buffer),n=f.P,e=f.M;for(;;){const o=n(f.A,0,0,e,a,4),c=o>>24&255,s=128&c?c-256:c;if(s<0)throw Rn(new r("process error:"+s),s);const i=16777215&o;if(i&&g(t.slice(e,e+i)),1===c||0===i)break}}()}catch(t){throw b(f),u.error(t),t}const t=b(f);if(0!==t){const n=Rn(new r("end error:"+t),t);throw u.error(n),n}u.close()},abort(t){b(f),u.error(t)}},{highWaterMark:1})};function g(t){h=!0,u.enqueue(t)}function v(){if(d){const t=d;d=null,t()}}function b(t){let n=0;return t.A&&t.F&&(n=t.F(t.A)),t.A=0,t.in&&Mn&&Mn(t.in),t.in=0,t.M&&Mn&&Mn(t.M),t.M=0,n}}class Pn{constructor(t=Sn,n){return xn(!0,t,n)}}class Dn{constructor(t=Sn,n){return xn(!1,t,n)}}Pn.requiresModule=!0,Dn.requiresModule=!0,Pn.supportedFormats=kn,Dn.supportedFormats=zn;const Fn=65536;let Un,Bn;function Wn(t){return new c(t.memory.buffer)}let On=!1;!function(t={}){const{init:n,U:e}=t,o=t.CompressionStreamFallback||t.CompressionStreamZlib,r=t.DecompressionStreamFallback||t.DecompressionStreamZlib;e&&(dt=e||G),self.initModule=async t=>{n&&await n(t),o&&(t.CompressionStreamFallback=o),r&&(t.DecompressionStreamFallback=r)}}({CompressionStreamFallback:Pn,DecompressionStreamFallback:Dn,U:function(t,n){const e=Un;let o=e?function(t,n,e){Bn||(Bn=t.malloc(Fn));const o=Bn?t.aes_hmac_new():0;if(o){const r=Wn(t);if(r.set(n,Bn),r.set(e,Bn+n.length),t.aes_hmac_init(o,Bn,n.length,Bn+n.length,e.length))return t.aes_hmac_end(o,0),0}return o}(e,t,n):0;if(!o)return G(t,n);const r=Bn;return{process(t,n){for(let c=0;c<t.length;c+=Fn){const s=t.subarray(c,c+Fn),a=Wn(e);a.set(s,r),e.aes_hmac_process(o,r,s.length,n?1:0),s.set(a.subarray(r,r+s.length))}},digest:()=>(e.aes_hmac_end(o,r),o=0,Wn(e).slice(r,r+20)),dispose(){o&&(e.aes_hmac_end(o,0),o=0)}}},init:t=>async function(t,{baseURI:n}){if(!On)try{await async function(t,n){let e,o;try{try{o=new URL(t,n)}catch{}const r=await fetch(o);e=await r.arrayBuffer()}catch(n){if(!t.startsWith("data:application/wasm;base64,"))throw n;e=function(t){const n=t.split(",")[1],e=atob(n),o=e.length,r=new c(o);for(let t=0;t<o;++t)r[t]=e.charCodeAt(t);return r.buffer}(t)}const s=await WebAssembly.instantiate(e);var a;(function(t){if(Cn=t,({malloc:In,free:Mn,memory:An}=Cn),"function"!=typeof In||"function"!=typeof Mn||!An)throw Cn=In=Mn=An=null,new r("Invalid WASM module")})(s.instance.exports),typeof(a=s.instance.exports).aes_hmac_new==k&&(Un=a,Bn=0)}(t,n),On=!0}catch(t){throw function(t){En=t}(t),t}}(t.wasmURI,t)})});\n';
5771
+ let r2 = '!function(t){"function"==typeof define&&define.amd?define(t):t()}(function(){"use strict";const{Array:t,Object:n,Number:e,Math:o,Error:r,Uint8Array:c,Uint16Array:s,Uint32Array:a,Int32Array:i,Map:f,DataView:u,Promise:w,TextEncoder:l,crypto:d,postMessage:p,TransformStream:h,ReadableStream:y,WritableStream:m,CompressionStream:S,DecompressionStream:g}=self,v=void 0,b="undefined",k="function",z=new c,C=[[],[],[],[],[],[],[],[]];for(let t=0;t<256;t++){let n=t;for(let t=0;t<8;t++)n=1&n?n>>>1^3988292384:n>>>1;C[0][t]=n}for(let t=0;t<256;t++)for(let n=1;n<8;n++){const e=C[n-1][t];C[n][t]=e>>>8^C[0][255&e]}const[I,M,A,E,R,x,P,D]=C;class F{constructor(t){this.o=t||-1}append(t){let n=0|this.o;const e=0|t.length;let o=0;if(e>=8&&t.buffer){const r=new u(t.buffer,t.byteOffset,e),c=e-8;for(;o<=c;o+=8){const t=n^r.getInt32(o,!0),e=r.getInt32(o+4,!0);n=D[255&t]^P[t>>>8&255]^x[t>>>16&255]^R[t>>>24&255]^E[255&e]^A[e>>>8&255]^M[e>>>16&255]^I[e>>>24&255]}}for(;o<e;o++)n=n>>>8^I[255&(n^t[o])];this.o=n}get(){return~this.o}}class U extends h{constructor(){let t;const n=new F;super({transform(t,e){n.append(t),e.enqueue(t)},flush(){const e=new c(4);new u(e.buffer).setUint32(0,n.get()),t.value=e}}),t=this}}function B(t,n){const e=new c(t.length+n.length);return e.set(t),e.set(n,t.length),e}function W(t){return new u(t.buffer,t.byteOffset,t.byteLength)}const O=64,V=20,K=new c([128]),T=new c(1),_=new i([1732584193,4023233417,2562383102,271733878,3285377520]),j=new c(256),H=new i(256),L=new i(256),Z=new i(256),N=new i(256);let q=!1;function G(t,n){!function(){if(!q){let t=1,n=1;do{t=255&(t^t<<1^(128&t?27:0)),n=255&(n^n<<1),n=255&(n^n<<2),n=255&(n^n<<4),128&n&&(n^=9),j[t]=255&(n^(n<<1|n>>7)^(n<<2|n>>6)^(n<<3|n>>5)^(n<<4|n>>4)^99)}while(1!=t);j[0]=99;for(let t=0;t<256;t++){const n=j[t],e=Y(n),o=e<<24|n<<16|n<<8|e^n;H[t]=o,L[t]=o>>>8|o<<24,Z[t]=o>>>16|o<<16,N[t]=o>>>24|o<<8}q=!0}}();const e=new i(60),o=function(t,n){const e=t.length>>2,o=e+6,r=4*(o+1);let c=1;for(let o=0;o<e;o++)n[o]=t[4*o]<<24|t[4*o+1]<<16|t[4*o+2]<<8|t[4*o+3];for(let t=e;t<r;t++){let o=n[t-1];t%e==0?(o=Q(o<<8|o>>>24)^c<<24,c=Y(c)):e>6&&t%e==4&&(o=Q(o)),n[t]=n[t-e]^o}return o}(t,e),r=new i(4),c=J(n);let s=0,a=0,f=0,w=0;return{process(t,n){n&&c.update(t,0,t.length),function(t){const n=new u(t.buffer,t.byteOffset,t.byteLength),e=t.length;let o=0;for(;o+16<=e;o+=16)l(),n.setInt32(o,n.getInt32(o)^r[0]),n.setInt32(o+4,n.getInt32(o+4)^r[1]),n.setInt32(o+8,n.getInt32(o+8)^r[2]),n.setInt32(o+12,n.getInt32(o+12)^r[3]);if(o<e){l();for(let n=0;o<e;o++,n++)t[o]^=r[n>>2]>>>24-8*(3&n)}}(t),n||c.update(t,0,t.length)},digest:()=>c.digest()};function l(){s=s+1|0,s||(a=a+1|0,a||(f=f+1|0,f||(w=w+1|0)));let t=X(s)^e[0],n=X(a)^e[1],c=X(f)^e[2],i=X(w)^e[3],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[4],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[5],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[6],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[7];t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[8],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[9],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[10],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[11],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[12],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[13],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[14],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[15],t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[16],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[17],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[18],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[19],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[20],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[21],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[22],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[23],t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[24],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[25],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[26],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[27],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[28],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[29],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[30],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[31],t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[32],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[33],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[34],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[35],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[36],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[37],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[38],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[39];let h=40;o>10&&(t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[40],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[41],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[42],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[43],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[44],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[45],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[46],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[47],h=48),o>12&&(t=H[u>>>24]^L[l>>>16&255]^Z[d>>>8&255]^N[255&p]^e[48],n=H[l>>>24]^L[d>>>16&255]^Z[p>>>8&255]^N[255&u]^e[49],c=H[d>>>24]^L[p>>>16&255]^Z[u>>>8&255]^N[255&l]^e[50],i=H[p>>>24]^L[u>>>16&255]^Z[l>>>8&255]^N[255&d]^e[51],u=H[t>>>24]^L[n>>>16&255]^Z[c>>>8&255]^N[255&i]^e[52],l=H[n>>>24]^L[c>>>16&255]^Z[i>>>8&255]^N[255&t]^e[53],d=H[c>>>24]^L[i>>>16&255]^Z[t>>>8&255]^N[255&n]^e[54],p=H[i>>>24]^L[t>>>16&255]^Z[n>>>8&255]^N[255&c]^e[55],h=56),r[0]=(j[u>>>24]<<24|j[l>>>16&255]<<16|j[d>>>8&255]<<8|j[255&p])^e[h],r[1]=(j[l>>>24]<<24|j[d>>>16&255]<<16|j[p>>>8&255]<<8|j[255&u])^e[h+1],r[2]=(j[d>>>24]<<24|j[p>>>16&255]<<16|j[u>>>8&255]<<8|j[255&l])^e[h+2],r[3]=(j[p>>>24]<<24|j[u>>>16&255]<<16|j[l>>>8&255]<<8|j[255&d])^e[h+3]}}function J(t){const n=function(){const t=new i(_),n=new i(16),e=new c(O),r=new u(e.buffer),s=new c(8);let a=0,f=0;return{update:w,digest:function(){const n=8*f,e=o.floor(n/4294967296),r=n>>>0;for(w(K,0,1);56!=a;)w(T,0,1);s[0]=e>>>24,s[1]=e>>>16,s[2]=e>>>8,s[3]=e,s[4]=r>>>24,s[5]=r>>>16,s[6]=r>>>8,s[7]=r,w(s,0,8);const i=new c(V),l=new u(i.buffer);for(let n=0;n<t.length;n++)l.setInt32(4*n,t[n]);return t.set(_),a=0,f=0,i}};function w(t,n,o){const c=n+o;if(f+=o,a){for(;n<c&&a<O;)e[a++]=t[n++];a==O&&(l(r,0),a=0)}if(n+O<=c){const e=new u(t.buffer,t.byteOffset,t.byteLength);for(;n+O<=c;n+=O)l(e,n)}for(;n<c;)e[a++]=t[n++]}function l(e,o){for(let t=0;t<16;t++)n[t]=e.getInt32(o+4*t);let r,c=t[0],s=t[1],a=t[2],i=t[3],f=t[4];for(let t=0;t<15;t+=5)f=(c<<5|c>>>27)+((a^i)&s^i)+f+1518500249+n[t]|0,s=s<<30|s>>>2,i=(f<<5|f>>>27)+((s^a)&c^a)+i+1518500249+n[t+1]|0,c=c<<30|c>>>2,a=(i<<5|i>>>27)+((c^s)&f^s)+a+1518500249+n[t+2]|0,f=f<<30|f>>>2,s=(a<<5|a>>>27)+((f^c)&i^c)+s+1518500249+n[t+3]|0,i=i<<30|i>>>2,c=(s<<5|s>>>27)+((i^f)&a^f)+c+1518500249+n[t+4]|0,a=a<<30|a>>>2;f=(c<<5|c>>>27)+((a^i)&s^i)+f+1518500249+n[15]|0,s=s<<30|s>>>2,r=n[13]^n[8]^n[2]^n[0],r=r<<1|r>>>31,n[0]=r,i=(f<<5|f>>>27)+((s^a)&c^a)+i+1518500249+r|0,c=c<<30|c>>>2,r=n[14]^n[9]^n[3]^n[1],r=r<<1|r>>>31,n[1]=r,a=(i<<5|i>>>27)+((c^s)&f^s)+a+1518500249+r|0,f=f<<30|f>>>2,r=n[15]^n[10]^n[4]^n[2],r=r<<1|r>>>31,n[2]=r,s=(a<<5|a>>>27)+((f^c)&i^c)+s+1518500249+r|0,i=i<<30|i>>>2,r=n[0]^n[11]^n[5]^n[3],r=r<<1|r>>>31,n[3]=r,c=(s<<5|s>>>27)+((i^f)&a^f)+c+1518500249+r|0,a=a<<30|a>>>2;for(let t=20;t<40;t+=5)r=n[t-3&15]^n[t-8&15]^n[t-14&15]^n[15&t],r=r<<1|r>>>31,n[15&t]=r,f=(c<<5|c>>>27)+(s^a^i)+f+1859775393+r|0,s=s<<30|s>>>2,r=n[t-2&15]^n[t-7&15]^n[t-13&15]^n[t+1&15],r=r<<1|r>>>31,n[t+1&15]=r,i=(f<<5|f>>>27)+(c^s^a)+i+1859775393+r|0,c=c<<30|c>>>2,r=n[t-1&15]^n[t-6&15]^n[t-12&15]^n[t+2&15],r=r<<1|r>>>31,n[t+2&15]=r,a=(i<<5|i>>>27)+(f^c^s)+a+1859775393+r|0,f=f<<30|f>>>2,r=n[15&t]^n[t-5&15]^n[t-11&15]^n[t+3&15],r=r<<1|r>>>31,n[t+3&15]=r,s=(a<<5|a>>>27)+(i^f^c)+s+1859775393+r|0,i=i<<30|i>>>2,r=n[t+1&15]^n[t-4&15]^n[t-10&15]^n[t+4&15],r=r<<1|r>>>31,n[t+4&15]=r,c=(s<<5|s>>>27)+(a^i^f)+c+1859775393+r|0,a=a<<30|a>>>2;for(let t=40;t<60;t+=5)r=n[t-3&15]^n[t-8&15]^n[t-14&15]^n[15&t],r=r<<1|r>>>31,n[15&t]=r,f=(c<<5|c>>>27)+(s&a|(s|a)&i)+f+2400959708+r|0,s=s<<30|s>>>2,r=n[t-2&15]^n[t-7&15]^n[t-13&15]^n[t+1&15],r=r<<1|r>>>31,n[t+1&15]=r,i=(f<<5|f>>>27)+(c&s|(c|s)&a)+i+2400959708+r|0,c=c<<30|c>>>2,r=n[t-1&15]^n[t-6&15]^n[t-12&15]^n[t+2&15],r=r<<1|r>>>31,n[t+2&15]=r,a=(i<<5|i>>>27)+(f&c|(f|c)&s)+a+2400959708+r|0,f=f<<30|f>>>2,r=n[15&t]^n[t-5&15]^n[t-11&15]^n[t+3&15],r=r<<1|r>>>31,n[t+3&15]=r,s=(a<<5|a>>>27)+(i&f|(i|f)&c)+s+2400959708+r|0,i=i<<30|i>>>2,r=n[t+1&15]^n[t-4&15]^n[t-10&15]^n[t+4&15],r=r<<1|r>>>31,n[t+4&15]=r,c=(s<<5|s>>>27)+(a&i|(a|i)&f)+c+2400959708+r|0,a=a<<30|a>>>2;for(let t=60;t<80;t+=5)r=n[t-3&15]^n[t-8&15]^n[t-14&15]^n[15&t],r=r<<1|r>>>31,n[15&t]=r,f=(c<<5|c>>>27)+(s^a^i)+f+3395469782+r|0,s=s<<30|s>>>2,r=n[t-2&15]^n[t-7&15]^n[t-13&15]^n[t+1&15],r=r<<1|r>>>31,n[t+1&15]=r,i=(f<<5|f>>>27)+(c^s^a)+i+3395469782+r|0,c=c<<30|c>>>2,r=n[t-1&15]^n[t-6&15]^n[t-12&15]^n[t+2&15],r=r<<1|r>>>31,n[t+2&15]=r,a=(i<<5|i>>>27)+(f^c^s)+a+3395469782+r|0,f=f<<30|f>>>2,r=n[15&t]^n[t-5&15]^n[t-11&15]^n[t+3&15],r=r<<1|r>>>31,n[t+3&15]=r,s=(a<<5|a>>>27)+(i^f^c)+s+3395469782+r|0,i=i<<30|i>>>2,r=n[t+1&15]^n[t-4&15]^n[t-10&15]^n[t+4&15],r=r<<1|r>>>31,n[t+4&15]=r,c=(s<<5|s>>>27)+(a^i^f)+c+3395469782+r|0,a=a<<30|a>>>2;t[0]=t[0]+c|0,t[1]=t[1]+s|0,t[2]=t[2]+a|0,t[3]=t[3]+i|0,t[4]=t[4]+f|0}}(),e=new c(O),r=new c(O);t.length>O&&(n.update(t,0,t.length),t=n.digest());for(let n=0;n<O;n++){const o=n<t.length?t[n]:0;e[n]=54^o,r[n]=92^o}return n.update(e,0,O),{update(t,e,o){n.update(t,e,o)},digest(){const t=n.digest();n.update(r,0,O),n.update(t,0,V);const o=n.digest();return n.update(e,0,O),o}}}function Q(t){return j[t>>>24]<<24|j[t>>>16&255]<<16|j[t>>>8&255]<<8|j[255&t]}function X(t){return t<<24|(65280&t)<<8|t>>>8&65280|t>>>24}function Y(t){return 255&(t<<1^27*(t>>7))}const $=typeof d!=b&&typeof d.getRandomValues==k,tt="Invalid password",nt="zipjs-abort-check-password";function et(t){if($)return d.getRandomValues(t);throw new r("Crypto API not supported")}const ot={name:"PBKDF2"},rt=n.assign({hash:{name:"HMAC"}},ot),ct=n.assign({iterations:1e3,hash:{name:"SHA-1"}},ot),st=["deriveBits"],at=[8,12,16],it=[16,24,32],ft=10,ut=typeof d!=b,wt=ut&&d.subtle;let lt=ut&&typeof wt!=b&&typeof wt.importKey==k&&typeof wt.deriveBits==k,dt=G;class pt extends h{constructor({password:t,rawPassword:n,encryptionStrength:e,checkPasswordOnly:o,checkAuthenticationCode:s=!0}){const a={};super({start(){yt(a,t,n,e)},async transform(t,n){const{password:e,strength:s,l:i,ready:f}=a;if(e?(await async function(t,n,e,o){const c=await vt(t,n,e,kt(o,0,at[n])),s=kt(o,at[n]);if(c[0]!=s[0]||c[1]!=s[1])throw gt(t),new r(tt)}(a,s,e,kt(t,0,at[s]+2)),t=kt(t,at[s]+2),o?(gt(a),n.error(new r(nt))):i()):await f,a.h)return;const u=new c(t.length-ft-(t.length-ft)%16);n.enqueue(St(a,t,u,0,ft,!0))},async flush(t){const{m:n,S:e,ready:o}=a;if(n){if(await o,a.h)return;const i=kt(e,e.length-ft),f=new c(kt(e,0,e.length-ft));n.process(f,!0);const u=n.digest();let w=e.length<ft?1:0;for(let t=0;t<ft;t++)w|=u[t]^i[t];if(w&&s)return void t.error(new r("Invalid authentication code"));t.enqueue(f)}}}),mt(this,a)}}class ht extends h{constructor({password:t,rawPassword:n,encryptionStrength:e}){const o={};super({start(){yt(o,t,n,e)},async transform(t,n){const{password:e,strength:r,l:s,ready:a}=o;let i=z;if(e?(i=await async function(t,n,e){const o=et(new c(at[n]));return B(o,await vt(t,n,e,o))}(o,r,e),s()):await a,o.h)return;const f=new c(i.length+t.length-t.length%16);f.set(i,0),n.enqueue(St(o,t,f,i.length,0,!1))},async flush(t){const{m:n,S:e,ready:r}=o;if(n){if(await r,o.h)return;const s=new c(e);n.process(s,!1);const a=kt(n.digest(),0,ft);t.enqueue(B(s,a))}}}),mt(this,o)}}function yt(t,e,o,r){n.assign(t,{ready:new w(n=>t.l=n),password:bt(e,o),strength:r-1,S:z,h:!1})}function mt(t,e){const o=t.readable.getReader(),r=new y({async pull(t){try{const{value:n,done:e}=await o.read();e?t.close():t.enqueue(n)}catch(t){throw gt(e),o.cancel(t).catch(()=>{}),t}},cancel:t=>(gt(e),o.cancel(t))});n.defineProperty(t,"readable",{get:()=>r})}function St(t,n,e,o,r,s){const{m:a,S:i}=t;i.length&&(n=B(i,n));const f=n.length-r,u=f-f%16;if(e=function(t,n){if(n&&n>t.length){const e=t;(t=new c(n)).set(e,0)}return t}(e,o+u),u){const t=kt(e,o,o+u);t.set(kt(n,0,u)),a.process(t,s)}return t.S=kt(n,u),e}function gt(t){const{m:n}=t;t.h=!0,n&&n.dispose&&n.dispose()}async function vt(t,e,r,s){t.password=null;const a=it[e],i=await async function(t,e,r){if(lt)try{const o=await wt.importKey("raw",t,rt,!1,st);return new c(await wt.deriveBits(n.assign({salt:e},ct),o,8*r))}catch{lt=!1}return function(t,n,e,r){const s=J(t),a=new c(r),i=new c(n.length+4),f=new u(i.buffer);i.set(n);for(let t=1,e=0;e<r;t++,e+=V){f.setUint32(n.length,t),s.update(i,0,i.length);let c=s.digest();const u=c.slice();for(let t=1;t<1e3;t++){s.update(c,0,V),c=s.digest();for(let t=0;t<V;t++)u[t]^=c[t]}a.set(u.subarray(0,o.min(V,r-e)),e)}return a}(t,e,0,r)}(r,s,2*a+2);return t.m=dt(kt(i,0,a),kt(i,a,2*a)),t.h&&gt(t),kt(i,2*a)}function bt(t,n){return n===v?function(t){if(typeof l==b){t=unescape(encodeURIComponent(t));const n=new c(t.length);for(let e=0;e<n.length;e++)n[e]=t.charCodeAt(e);return n}return(new l).encode(t)}(t):n}function kt(t,n,e){return t.subarray(n,e)}class zt extends h{constructor({password:t,rawPassword:n,passwordVerification:e,checkPasswordOnly:o}){super({start(){It(this,t,n,e)},transform(t,n){const e=this;if(e.password||e.rawPassword){const n=Mt(e,t.subarray(0,12));if(e.password=e.rawPassword=null,0!=(n[11]^e.passwordVerification))throw new r(tt);t=t.subarray(12)}o?n.error(new r(nt)):n.enqueue(Mt(e,t))}})}}class Ct extends h{constructor({password:t,rawPassword:n,passwordVerification:e}){super({start(){It(this,t,n,e)},transform(t,n){const e=this;let o,r;if(e.password||e.rawPassword){e.password=e.rawPassword=null;const n=et(new c(12));n[11]=e.passwordVerification,o=new c(t.length+n.length),o.set(At(e,n),0),r=12}else o=new c(t.length),r=0;o.set(At(e,t),r),n.enqueue(o)}})}}function It(t,e,o,r){n.assign(t,{password:e,rawPassword:o,passwordVerification:r}),function(t,e,o){const r=[305419896,591751049,878082192];if(n.assign(t,{v:r,C:new F(r[0]),I:new F(r[2])}),o)for(let n=0;n<o.length;n++)Et(t,o[n]);else for(let n=0;n<e.length;n++)Et(t,e.charCodeAt(n))}(t,e,o)}function Mt(t,n){const e=new c(n.length);for(let o=0;o<n.length;o++)e[o]=Rt(t)^n[o],Et(t,e[o]);return e}function At(t,n){const e=new c(n.length);for(let o=0;o<n.length;o++)e[o]=Rt(t)^n[o],Et(t,n[o]);return e}function Et(t,n){let[,e]=t.v;t.C.append([n]);const r=~t.C.get();e=Pt(o.imul(Pt(e+xt(r)),134775813)+1),t.I.append([e>>>24]);const c=~t.I.get();t.v=[r,e,c]}function Rt(t){const n=2|t.v[2];return xt(o.imul(n,1^n)>>>8)}function xt(t){return 255&t}function Pt(t){return 4294967295&t}function Dt(t){return Boolean(t)&&"object"==typeof t}const Ft=new f;function Ut(t){return Ft.get(t)}const Bt="Invalid uncompressed size",Wt="Codec out of memory",Ot="Invalid CRC32",Vt="deflate-raw",Kt="gzip",Tt=[31,139,8];class _t extends h{constructor(t,{chunkSize:n,CompressionStreamFallback:e,CompressionStream:o}){super({});const{compressed:r,encrypted:c,useCompressionStream:s,zipCrypto:a,computeCrc32:i,level:f,deflate64:w,format:l,compressionMethod:d,inputSize:p}=t,h=this;let y,m,S,g=super.readable;const v=l&&Ut(l),b=qt(s,o,e),k=i&&r&&!w&&!v&&(!c||a)&&Boolean(b);if(c&&!a||!i||k||(y=new U,g=Jt(g,y)),r)if(v)g=Qt(g,Nt(v.CompressionStream,l,{level:f,chunkSize:n,compressionMethod:d,uncompressedSize:p}));else if(k)S=new jt,g=Qt(g,new b(Kt,{level:f,chunkSize:n})),g=Jt(g,S);else try{g=Gt(g,s,{level:f,chunkSize:n},o,e)}catch(t){if(!s&&e)throw nn(t);let n;try{n=new o(Kt)}catch{throw nn(t)}g=Qt(g,n),g=Jt(g,new jt)}c&&(a?g=Jt(g,new Ct(t)):(m=new ht(t),g=Jt(g,m))),Zt(h,g,()=>{c&&!a||!i||(h.crc32=k?S.crc32:new u(y.value.buffer).getUint32(0))})}}class jt extends h{constructor(){let t,n=10,e=new c(0);super({transform(t,r){if(n){const e=o.min(n,t.length);if(n-=e,!(t=t.subarray(e)).length)return}const c=e.length+t.length;if(c<=8)return void(e=B(e,t));const s=c-8,a=o.min(s,e.length);r.enqueue(B(e.subarray(0,a),t.subarray(0,s-a))),e=B(e.subarray(a),t.subarray(s-a))},flush(){const n=W(e);t.crc32=n.getUint32(0,!0),t.uncompressedSize=n.getUint32(4,!0)}}),t=this}}class Ht extends h{constructor(t,{chunkSize:n,DecompressionStreamFallback:e,DecompressionStream:o}){super({});const{zipCrypto:s,encrypted:a,checkCrc32:i,crc32:f,compressed:l,useCompressionStream:d,deflate64:p,format:h,compressionMethod:m,rawBitFlag:S,outputSize:g}=t;let b,k,z,C=super.readable;if(a&&(s?C=Jt(C,new zt(t)):(k=new pt(t),C=Jt(C,k))),l){const t=new Set,s=h&&Ut(h);let a;if(s)C=Qt(C,Nt(s.DecompressionStream,h,{chunkSize:n,compressionMethod:m,rawBitFlag:S,uncompressedSize:g}),t);else{const r=qt(d,o,e);if(i&&!p&&f!==v&&g!==v&&r)try{a=new r(Kt,{chunkSize:n})}catch{a=v}if(!a)try{C=Gt(C,d,{chunkSize:n,deflate64:p},o,e,t)}catch(t){if(p||g===v||!d&&e)throw nn(t);try{a=new o(Kt)}catch{throw nn(t)}}}a?(z=!0,C=function(t,n,e,o,s){const a=n.writable.getWriter(),i=n.readable.getReader(),f=o===v?new F:v;let u,l,d=0,p=!1,h=!1;const m=new y({start(t){l=t},pull(){b()},cancel:t=>(h=!0,b(),i.cancel(t))});return async function(){const n=t.getReader();try{const t=new c(10);for(t.set(Tt),await a.write(t);;){await g(),await a.ready;const{value:t,done:e}=await $t(n,s);if(e)break;await a.write(t)}f&&await a.write(new c(0));const r=new c(8),i=W(r);i.setUint32(0,f?f.get():o,!0),i.setUint32(4,e,!0),p=!0,await a.write(r),await a.close()}catch(t){await Xt(a,t),await Yt(n,t)}}(),async function(){try{for(;;){const{value:t,done:n}=await S();if(n)break;if(d+=t.length,d>e)throw new r(Bt);f&&f.append(t),l.enqueue(t)}h||(h=!0,l.close())}catch(t){!function(t){h||(h=!0,l.error(t),b())}(t),await Yt(i,t)}}(),m;function S(){return i.read().catch(t=>{if(p){if(!f)throw on(t,Ot);if(d!=e)throw on(t,Bt);return{done:!0}}throw tn(t,s)})}function g(){if(!h&&l.desiredSize<=0)return new w(t=>u=t)}function b(){if(u){const t=u;u=v,t()}}}(C,a,g,f,t)):C=function(t,n){const e=t.getReader();return new y({async pull(t){try{const{value:n,done:o}=await e.read();o?t.close():t.enqueue(n)}catch(t){throw await Yt(e,t),tn(t,n)}},cancel:t=>e.cancel(t)})}(C,t)}i&&!z&&(b=new U,C=Jt(C,b)),Zt(this,C,()=>{if(b){const t=new u(b.value.buffer).getUint32(0,!1);if(f!=t)throw new r(Ot)}})}}const Lt=new f;function Zt(t,e,o){e=Jt(e,new h({flush:o})),n.defineProperty(t,"readable",{get:()=>e})}function Nt(t,n,e){if(!t)throw new r("Compression method not supported");return new t(n,e)}function qt(t,n,e){return t&&n?n:e&&e.requiresModule?e:void 0}function Gt(t,n,e,o,r,c){const s=n&&o?o:r||o,a=e.deflate64?"deflate64-raw":Vt;let i;try{i=new s(a,e)}catch(t){if(!n||!r||s==r)throw t;i=new r(a,e)}return Qt(t,i,c)}function Jt(t,n){return function(t){if(t instanceof y)return t;const n=t.getReader();return new y({async pull(t){try{const{value:e,done:o}=await n.read();o?t.close():t.enqueue(e)}catch(t){throw n.cancel(t).catch(()=>{}),t}},cancel:t=>n.cancel(t)})}(t).pipeThrough(n)}function Qt(t,n,e){const o=n.writable.getWriter(),r=t.getReader();return async function(){try{for(;;){await o.ready;const t=await $t(r,e);if(t.done){await o.close();break}await o.write(t.value)}}catch(t){await Xt(o,t),await Yt(r,t)}}(),n.readable}async function Xt(t,n){try{await t.abort(n)}catch{}}async function Yt(t,n){try{await t.cancel(n)}catch{}}function $t(t,n){const e=t.read();return n?e.catch(t=>{throw n.add(t),t}):e}function tn(t,n){return n.has(t)?t:on(t,en(t)?Wt:"Invalid compressed data")}function nn(t){return en(t)?on(t,Wt):t}function en(t){return Dt(t)&&"Z_MEM_ERROR"==t.code}function on(t,n){const e=new r(n);return e.cause=t,e}const rn="data",cn="deflate";class sn extends h{constructor(t,e){super({});const o=this,{codecType:c}=t;let s;c.startsWith(cn)?s=_t:c.startsWith("inflate")&&(s=Ht),o.outputSize=0;let a=0;const i=new s(t,e),f=super.readable,u=new h({transform(t,n){t&&t.length&&(a+=t.length,n.enqueue(t))},flush(){n.assign(o,{inputSize:a})}}),w=new h({transform(n,e){if(n&&n.length&&(e.enqueue(n),o.outputSize+=n.length,t.outputSize!==v&&o.outputSize>t.outputSize))throw new r(Bt)},flush(){const{crc32:t}=i;n.assign(o,{crc32:t,inputSize:a})}});n.defineProperty(o,"readable",{get:()=>f.pipeThrough(u).pipeThrough(i).pipeThrough(w)})}}class an extends h{constructor(t){const o=[];let r=0,s=0;function a(){const n=new c(t);let e=0;for(;e<t;){const r=o[0],c=t-e;r.length<=c?(n.set(r,e),e+=r.length,o.shift()):(n.set(r.subarray(0,c),e),o[0]=r.subarray(c),e+=c)}return r-=t,n}(!e.isFinite(t)||t<1)&&(t=262144),super({transform(n,e){for(o.push(n),r+=n.length;r>t;)s+=t,e.enqueue(a())},flush(t){r&&(s+=r,t.enqueue(function(t,n){const e=new c(n);let o=0;for(const n of t)e.set(n,o),o+=n.length;return e}(o,r)))}}),n.defineProperty(this,"outputSize",{get:()=>s})}}let fn=2;try{typeof navigator!=b&&navigator.hardwareConcurrency&&(fn=navigator.hardwareConcurrency)}catch{}const un=new f,wn=new f,ln=function(){try{return structuredClone(new r)instanceof r}catch{return!1}}();let dn=0;async function pn(t){let n,c,s;try{const{options:a,config:i}=t;if(a.format)try{await async function(t,n){!Ft.has(t)&&n&&function(t,n){const{CompressionStream:e,DecompressionStream:o}=n;if(typeof e!=k&&typeof o!=k)throw new r("Invalid codec module");Ft.set(t,{CompressionStream:e,DecompressionStream:o})}(t,await(import(n)))}(a.format,a.codecURI)}catch(t){if(Dt(t))try{t.codecImportFailed=!0}catch{}throw t}if(i.CompressionStream=self.CompressionStream,i.DecompressionStream=self.DecompressionStream,a.compressed&&!a.format)if(a.useCompressionStream){if(!function(t,n){if(!t)return!1;let e=Lt.get(t);e||(e=new f,Lt.set(t,e));let o=e.get(n);if(o===v){try{new t(n),o=!0}catch{o=!1}e.set(n,o)}return o}(a.codecType.startsWith(cn)?i.CompressionStream:i.DecompressionStream,Vt))try{await self.initModule(t.config)}catch{}}else try{await self.initModule(t.config)}catch{a.useCompressionStream=!0}if(a.encrypted&&!a.zipCrypto)try{await self.initModule(t.config)}catch{}!i.CompressionStreamFallback&&i.CompressionStreamZlib&&(i.CompressionStreamFallback=i.CompressionStreamZlib),!i.DecompressionStreamFallback&&i.DecompressionStreamZlib&&(i.DecompressionStreamFallback=i.DecompressionStreamZlib);const u={highWaterMark:1},l=new y({async pull(t){const n=new w(t=>un.set(dn,t));hn({type:"pull",messageId:dn}),dn=(dn+1)%e.MAX_SAFE_INTEGER;const{value:o,done:r}=await n;t.enqueue(o),r&&t.close()}},u);s=new m({async write(t){let n;const o=new w(t=>n=t);wn.set(dn,n),hn({type:rn,value:t,messageId:dn}),dn=(dn+1)%e.MAX_SAFE_INTEGER,await o}},u),n=new sn(a,i),c=new an(function(t){return r="string"==typeof(n=r=t.chunkSize)&&n.trim()?e(n):n,e.isInteger(r)&&r>=1?o.max(r,64):262144;var n,r}(i)),await l.pipeThrough(n).pipeThrough(c).pipeTo(s,{preventClose:!0,preventAbort:!0}),await s.getWriter().close();const{crc32:d,inputSize:p,outputSize:h}=n;hn({type:"close",result:{crc32:d,inputSize:p,outputSize:h}})}catch(t){const n=c?c.outputSize:0;if(Dt(t))try{t.outputSize=n}catch{}if(s&&!s.locked)try{await s.getWriter().close()}catch{}yn(t,n)}}function hn(t){const{value:n}=t;if(n)if(n.length)try{t.value=(e=n,e.byteOffset||e.byteLength!=e.buffer.byteLength?new c(e):e).buffer,p(t,[t.value])}catch{p(t)}else p(t);else p(t);var e}function yn(t,n){const{message:e,stack:o,code:c,name:s,outputSize:a,cause:i,codecImportFailed:f}=function(t=new r("Unknown error")){return Dt(t)?t:new r(String(t))}(t),u={message:e,stack:o,code:c,name:s,outputSize:a===v?n:a};if(Dt(i)&&(u.cause={name:i.name,message:i.message,code:i.code}),f&&(u.codecImportFailed=!0),ln)try{return void p({error:u,errorValue:{value:t}})}catch{}p({error:u})}addEventListener("message",({data:t})=>{const{type:n,messageId:e,value:o,done:r}=t;try{if("start"==n&&pn(t),n==rn){const t=un.get(e);un.delete(e),t({value:o||new c,done:r})}if("ack"==n){const t=wn.get(e);wn.delete(e),t()}}catch(t){yn(t)}}),p({type:"ready"});const mn="deflate",Sn="deflate-raw",gn="deflate64-raw",vn="gzip",bn=[mn,Sn,vn],kn=[mn,Sn,vn,gn];let zn,Cn,In,Mn,An;function En(t,n){return-4===n&&(t.code="Z_MEM_ERROR"),t}function Rn(t,n,e={}){if(!(t?bn:kn).includes(n))throw new TypeError("Unsupported format: "+n);if(!zn){const t=new r("WASM module not loaded");throw t.cause=An,t}const s="number"==typeof e.level?e.level:-1,a="number"==typeof e.outBuffer?e.outBuffer:65536,i="number"==typeof e.inBufferSize?e.inBufferSize:65536,f={M:0,in:0,inBufferSize:0,A:0,R:!1};let u,l,d,p,h=!0,S=!1;return function(){try{let e;if(f.M=Cn(a),f.in=Cn(i),f.inBufferSize=i,!f.M||!f.in)throw En(new r("allocation failed"),-4);if(t?(f.P=zn.deflate_process,f.D=zn.deflate_last_consumed,f.F=zn.deflate_end,f.A=zn.deflate_new(),e=n===vn?zn.deflate_init_gzip(f.A,s):n===Sn?zn.deflate_init_raw(f.A,s):zn.deflate_init(f.A,s)):n===gn?(f.P=zn.inflate9_process,f.D=zn.inflate9_last_consumed,f.F=zn.inflate9_end,f.A=zn.inflate9_new(),e=zn.inflate9_init_raw(f.A)):(f.P=zn.inflate_process,f.D=zn.inflate_last_consumed,f.F=zn.inflate_end,f.A=zn.inflate_new(),e=n===Sn?zn.inflate_init_raw(f.A):n===vn?zn.inflate_init_gzip(f.A):zn.inflate_init(f.A)),0!==e)throw En(new r("init failed:"+e),e)}catch(t){throw b(f),t}}(),{readable:new y({start(t){u=t},pull(){h=!1,v()},cancel(t){S=!0,p=t,b(f),l.error(t),v()}},{highWaterMark:0}),writable:new m({start(t){l=t},async write(t){if(h&&await new w(t=>d=t),S)throw p;try{!function(t){const n=new c(Mn.buffer),e=f.P,s=f.D,i=f.M;let u=0;for(;u<t.length;){if(f.R)throw new r("trailing data after the end of the stream");const c=o.min(t.length-u,32768);if((!f.in||f.inBufferSize<c)&&(f.in&&In&&(In(f.in),f.in=0),f.in=Cn(c),f.inBufferSize=c,!f.in))throw En(new r("allocation failed"),-4);n.set(t.subarray(u,u+c),f.in);const w=e(f.A,f.in,c,i,a,0),l=w>>24&255,d=128&l?l-256:l;if(d<0)throw En(new r("process error:"+d),d);const p=16777215&w;p&&g(n.slice(i,i+p));const h=s(f.A);if(1===l)f.R=!0;else if(0===h&&0===p)break;u+=h}}(t)}catch(t){throw b(f),u.error(t),t}},close(){if(S)return;try{!function(){const t=new c(Mn.buffer),n=f.P,e=f.M;for(;;){const o=n(f.A,0,0,e,a,4),c=o>>24&255,s=128&c?c-256:c;if(s<0)throw En(new r("process error:"+s),s);const i=16777215&o;if(i&&g(t.slice(e,e+i)),1===c||0===i)break}}()}catch(t){throw b(f),u.error(t),t}const t=b(f);if(0!==t){const n=En(new r("end error:"+t),t);throw u.error(n),n}u.close()},abort(t){b(f),u.error(t)}},{highWaterMark:1})};function g(t){h=!0,u.enqueue(t)}function v(){if(d){const t=d;d=null,t()}}function b(t){let n=0;return t.A&&t.F&&(n=t.F(t.A)),t.A=0,t.in&&In&&In(t.in),t.in=0,t.M&&In&&In(t.M),t.M=0,n}}class xn{constructor(t=mn,n){return Rn(!0,t,n)}}class Pn{constructor(t=mn,n){return Rn(!1,t,n)}}xn.requiresModule=!0,Pn.requiresModule=!0,xn.supportedFormats=bn,Pn.supportedFormats=kn;const Dn=65536;let Fn,Un;function Bn(t){return new c(t.memory.buffer)}let Wn=!1;!function(t={}){const{init:n,U:e}=t,o=t.CompressionStreamFallback||t.CompressionStreamZlib,r=t.DecompressionStreamFallback||t.DecompressionStreamZlib;e&&(dt=e||G),self.initModule=async t=>{n&&await n(t),o&&(t.CompressionStreamFallback=o),r&&(t.DecompressionStreamFallback=r)}}({CompressionStreamFallback:xn,DecompressionStreamFallback:Pn,U:function(t,n){const e=Fn;let o=e?function(t,n,e){Un||(Un=t.malloc(Dn));const o=Un?t.aes_hmac_new():0;if(o){const r=Bn(t);if(r.set(n,Un),r.set(e,Un+n.length),t.aes_hmac_init(o,Un,n.length,Un+n.length,e.length))return t.aes_hmac_end(o,0),0}return o}(e,t,n):0;if(!o)return G(t,n);const r=Un;return{process(t,n){for(let c=0;c<t.length;c+=Dn){const s=t.subarray(c,c+Dn),a=Bn(e);a.set(s,r),e.aes_hmac_process(o,r,s.length,n?1:0),s.set(a.subarray(r,r+s.length))}},digest:()=>(e.aes_hmac_end(o,r),o=0,Bn(e).slice(r,r+20)),dispose(){o&&(e.aes_hmac_end(o,0),o=0)}}},init:t=>async function(t,{baseURI:n}){if(!Wn)try{await async function(t,n){let e,o;try{try{o=new URL(t,n)}catch{}const r=await fetch(o);e=await r.arrayBuffer()}catch(n){if(!t.startsWith("data:application/wasm;base64,"))throw n;e=function(t){const n=t.split(",")[1],e=atob(n),o=e.length,r=new c(o);for(let t=0;t<o;++t)r[t]=e.charCodeAt(t);return r.buffer}(t)}const s=await WebAssembly.instantiate(e);var a;(function(t){if(zn=t,({malloc:Cn,free:In,memory:Mn}=zn),"function"!=typeof Cn||"function"!=typeof In||!Mn)throw zn=Cn=In=Mn=null,new r("Invalid WASM module")})(s.instance.exports),typeof(a=s.instance.exports).aes_hmac_new==k&&(Fn=a,Un=0)}(t,n),Wn=!0}catch(t){throw function(t){An=t}(t),t}}(t.wasmURI,t)})});\n';
5628
5772
  if ("string" == typeof r2 && (r2 = new TextEncoder().encode(r2)), t4) {
5629
5773
  const t5 = new Blob([r2], { type: e3 });
5630
5774
  return URL.createObjectURL(t5);
@@ -5649,10 +5793,10 @@ var e = (t3) => t3({ workerURI: (t4) => {
5649
5793
  })(r2);
5650
5794
  } });
5651
5795
 
5652
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/zip-core-base.js
5796
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/zip-core-base.js
5653
5797
  init_configuration();
5654
5798
 
5655
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/codec-worker-web.js
5799
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/codec-worker-web.js
5656
5800
  init_constants();
5657
5801
  init_array();
5658
5802
  init_error();
@@ -5665,11 +5809,6 @@ var ABORT_EVENT_TYPE = "abort";
5665
5809
  var webWorkerSource;
5666
5810
  var webWorkerURI;
5667
5811
  var webWorkerOptions;
5668
- var transferStreamsSupported = true;
5669
- try {
5670
- transferStreamsSupported = typeof structuredClone == FUNCTION_TYPE && structuredClone(new DOMException("", "AbortError")).code !== UNDEFINED_VALUE;
5671
- } catch {
5672
- }
5673
5812
  setWebWorkerBackend(createWebWorkerInterface);
5674
5813
  function createWebWorkerInterface(workerData, config3) {
5675
5814
  const { baseURI, chunkSize, workerStartupTimeout } = config3;
@@ -5750,14 +5889,11 @@ async function runWebWorker(workerData, config3) {
5750
5889
  });
5751
5890
  const { readable, options } = workerData;
5752
5891
  const { writable, closed, abortPipe } = watchClosedStream(workerData.writable, workerData);
5753
- let streamsTransferred;
5754
5892
  try {
5755
- streamsTransferred = sendMessage({
5893
+ sendMessage({
5756
5894
  type: MESSAGE_START,
5757
5895
  options,
5758
- config: config3,
5759
- readable,
5760
- writable
5896
+ config: config3
5761
5897
  }, workerData);
5762
5898
  } catch (error) {
5763
5899
  abortPipe();
@@ -5768,12 +5904,10 @@ async function runWebWorker(workerData, config3) {
5768
5904
  workerData.onTaskFinished();
5769
5905
  throw error;
5770
5906
  }
5771
- if (!streamsTransferred) {
5772
- Object.assign(workerData, {
5773
- reader: readable.getReader(),
5774
- writer: writable.getWriter()
5775
- });
5776
- }
5907
+ Object.assign(workerData, {
5908
+ reader: readable.getReader(),
5909
+ writer: writable.getWriter()
5910
+ });
5777
5911
  const { workerStartupTimeout } = config3;
5778
5912
  if (!workerData.workerAlive && Number.isFinite(workerStartupTimeout) && workerStartupTimeout >= 0) {
5779
5913
  workerData.startupTimeout = setTimeout(() => onStartupTimeout(workerData), workerStartupTimeout);
@@ -5803,7 +5937,7 @@ async function runWebWorker(workerData, config3) {
5803
5937
  throw reportedError;
5804
5938
  }
5805
5939
  async function closeWritable() {
5806
- if (!streamsTransferred && !writable.locked) {
5940
+ if (!writable.locked) {
5807
5941
  try {
5808
5942
  await writable.getWriter().close();
5809
5943
  } catch {
@@ -5983,31 +6117,14 @@ function onWorkerError(event, workerData) {
5983
6117
  }
5984
6118
  }
5985
6119
  }
5986
- function sendMessage(message, { worker, writer, transferStreams, workerAlive }) {
6120
+ function sendMessage(message, { worker, writer }) {
5987
6121
  try {
5988
- const { value, readable, writable } = message;
5989
- const transferables = [];
6122
+ const { value } = message;
5990
6123
  if (value) {
5991
6124
  message.value = toExactUint8Array(value);
5992
- transferables.push(message.value.buffer);
5993
- }
5994
- if (transferStreams && transferStreamsSupported && workerAlive) {
5995
- if (readable) {
5996
- transferables.push(readable);
5997
- }
5998
- if (writable) {
5999
- transferables.push(writable);
6000
- }
6001
- } else {
6002
- message.readable = message.writable = null;
6003
- }
6004
- if (transferables.length) {
6005
6125
  try {
6006
- worker.postMessage(message, transferables);
6007
- return true;
6126
+ worker.postMessage(message, [message.value.buffer]);
6008
6127
  } catch {
6009
- transferStreamsSupported = false;
6010
- message.readable = message.writable = null;
6011
6128
  worker.postMessage(message);
6012
6129
  }
6013
6130
  } else {
@@ -6112,10 +6229,10 @@ function getResponseError(errorData, errorValue) {
6112
6229
  return responseError;
6113
6230
  }
6114
6231
 
6115
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/zip-core-reader.js
6232
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/zip-core-reader.js
6116
6233
  init_zip_reader();
6117
6234
 
6118
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/zip-writer.js
6235
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/zip-writer.js
6119
6236
  init_constants();
6120
6237
  init_configuration();
6121
6238
  init_codec_registry();
@@ -6164,6 +6281,7 @@ var ERR_INVALID_UNIX_ID_SIZE = "uid/gid must be 0..65535 for unixExtraFieldType
6164
6281
  var ERR_INVALID_MSDOS_ATTRIBUTES = "Invalid msdosAttributesRaw (must be integer 0..255)";
6165
6282
  var ERR_INVALID_MSDOS_DATA = "Invalid msdosAttributes (must be an object with boolean flags)";
6166
6283
  var ERR_INVALID_LEVEL = "Invalid level (must be integer 0..9)";
6284
+ var ERR_INVALID_UNCOMPRESSED_SIZE_OPTION = "Invalid uncompressedSize option (must be a non-negative integer)";
6167
6285
  var ERR_INVALID_SIGNATURE_DATA = "Signature data exceeds 64KB";
6168
6286
  var ERR_INVALID_ENTRY = "Invalid entry option (must be an entry returned by ZipReader#getEntries())";
6169
6287
  var ERR_ZIP_CRYPTO_LAST_MOD_DATE = "The last modification date of an entry encrypted with ZipCrypto cannot be changed when passThrough is set";
@@ -6210,128 +6328,8 @@ var ZipWriter = class {
6210
6328
  prependZip(reader) {
6211
6329
  return watchPromiseError(this, prependZipEntries(this, reader));
6212
6330
  }
6213
- appendZip(reader) {
6214
- return watchPromiseError(this, this.appendZipEntries(reader));
6215
- }
6216
- async appendZipEntries(reader) {
6217
- const zipWriter = this;
6218
- const { pendingAddFileCalls, filenames, fileEntries } = zipWriter;
6219
- while (pendingAddFileCalls.size) {
6220
- await Promise.allSettled(Array.from(pendingAddFileCalls));
6221
- }
6222
- let resolveAppendZip;
6223
- const promiseAppendZip = new Promise((resolve) => resolveAppendZip = resolve);
6224
- pendingAddFileCalls.add(promiseAppendZip);
6225
- const appendedFilenames = [];
6226
- let releaseLockWriter;
6227
- try {
6228
- reader = new GenericReader(reader);
6229
- await initStream(reader);
6230
- if (reader.size === UNDEFINED_VALUE || !reader.readUint8Array) {
6231
- reader = new BlobReader(await streamToBlob(reader.readable));
6232
- await initStream(reader);
6233
- }
6234
- const { ZipReader: ZipReader2 } = await Promise.resolve().then(() => (init_zip_reader(), zip_reader_exports));
6235
- const zipReader = new ZipReader2(reader);
6236
- const entries = await zipReader.getEntries();
6237
- await zipReader.close();
6238
- await initStream(zipWriter.writer);
6239
- const { directoryOffset } = zipReader;
6240
- entries.forEach(({ filename }) => {
6241
- if (filenames.has(filename)) {
6242
- throw new Error(ERR_DUPLICATED_NAME);
6243
- }
6244
- filenames.add(filename);
6245
- appendedFilenames.push(filename);
6246
- });
6247
- zipWriter.writerLocked = true;
6248
- const { lockWriter } = zipWriter;
6249
- zipWriter.lockWriter = new Promise((resolve) => releaseLockWriter = () => {
6250
- zipWriter.writerLocked = false;
6251
- resolve();
6252
- });
6253
- await lockWriter;
6254
- if (zipWriter.addSplitZipSignature) {
6255
- delete zipWriter.addSplitZipSignature;
6256
- if (!await startsWithSplitZipSignature2(reader)) {
6257
- await writeData(zipWriter.writer, getSplitZipSignatureArray());
6258
- zipWriter.offset += SPLIT_ZIP_FILE_SIGNATURE_LENGTH;
6259
- }
6260
- }
6261
- const entryPositions = await copyZipData(zipWriter, reader, entries, directoryOffset);
6262
- entries.forEach((entry) => {
6263
- const {
6264
- version,
6265
- rawLastModDate,
6266
- rawFilename,
6267
- bitFlag,
6268
- encrypted,
6269
- uncompressedSize,
6270
- compressedSize,
6271
- extraFieldZip64
6272
- } = entry;
6273
- let {
6274
- compressionMethod,
6275
- rawExtraField
6276
- } = entry;
6277
- const { level, languageEncodingFlag, dataDescriptor } = bitFlag;
6278
- rawExtraField = removeExtraFieldZip64(rawExtraField || EMPTY_UINT8_ARRAY);
6279
- if (entry.extraFieldAES) {
6280
- compressionMethod = COMPRESSION_METHOD_AES;
6281
- }
6282
- const extraFieldLength = getLength(rawExtraField);
6283
- const zip64UncompressedSize = Boolean(extraFieldZip64) && extraFieldZip64.uncompressedSize !== UNDEFINED_VALUE;
6284
- const zip64CompressedSize = Boolean(extraFieldZip64) && extraFieldZip64.compressedSize !== UNDEFINED_VALUE;
6285
- const bitFlagValue = getBitFlag(level, languageEncodingFlag, dataDescriptor, encrypted, compressionMethod) & ~BITFLAG_LEVEL | level << 1;
6286
- const {
6287
- headerArray,
6288
- headerView
6289
- } = getHeaderArrayData({
6290
- version,
6291
- bitFlag: bitFlagValue,
6292
- compressionMethod,
6293
- uncompressedSize,
6294
- compressedSize,
6295
- rawLastModDate,
6296
- rawFilename,
6297
- zip64CompressedSize,
6298
- zip64UncompressedSize,
6299
- extraFieldLength
6300
- });
6301
- const { crc32 } = entry;
6302
- if (crc32 !== UNDEFINED_VALUE) {
6303
- setUint32(headerView, HEADER_OFFSET_SIGNATURE, crc32);
6304
- }
6305
- const { offset, diskNumberStart } = entryPositions.get(entry);
6306
- Object.assign(entry, {
6307
- zip64Enabled: true,
6308
- zip64UncompressedSize,
6309
- zip64CompressedSize,
6310
- offset,
6311
- diskNumberStart,
6312
- zip64DiskNumberStart: false,
6313
- rawExtraFieldZip64: EMPTY_UINT8_ARRAY,
6314
- rawExtraFieldAES: EMPTY_UINT8_ARRAY,
6315
- rawExtraFieldExtendedTimestamp: EMPTY_UINT8_ARRAY,
6316
- rawExtraFieldNTFS: EMPTY_UINT8_ARRAY,
6317
- rawExtraFieldUnix: EMPTY_UINT8_ARRAY,
6318
- rawExtraField,
6319
- rawCentralExtraField: EMPTY_UINT8_ARRAY,
6320
- headerArray,
6321
- headerView
6322
- });
6323
- fileEntries.set(entry.filename, entry);
6324
- });
6325
- } catch (error) {
6326
- appendedFilenames.forEach((filename) => filenames.delete(filename));
6327
- throw error;
6328
- } finally {
6329
- resolveAppendZip();
6330
- pendingAddFileCalls.delete(promiseAppendZip);
6331
- if (releaseLockWriter) {
6332
- releaseLockWriter();
6333
- }
6334
- }
6331
+ appendZip(reader, options = {}) {
6332
+ return watchPromiseError(this, appendZipEntries(this, reader, options));
6335
6333
  }
6336
6334
  add(name = "", reader, options = {}) {
6337
6335
  const zipWriter = this;
@@ -6421,11 +6419,147 @@ function watchPromiseError(zipWriter, promise) {
6421
6419
  zipWriter.pendingErrors.push(watcher);
6422
6420
  return watchedPromise;
6423
6421
  }
6422
+ async function appendZipEntries(zipWriter, reader, options = {}) {
6423
+ const { pendingAddFileCalls, filenames, fileEntries } = zipWriter;
6424
+ const filter = checkFunctionOption(options.filter);
6425
+ const readerOptions = checkReaderOptionsObject(options.readerOptions);
6426
+ while (pendingAddFileCalls.size) {
6427
+ await Promise.allSettled(Array.from(pendingAddFileCalls));
6428
+ }
6429
+ let resolveAppendZip;
6430
+ const promiseAppendZip = new Promise((resolve) => resolveAppendZip = resolve);
6431
+ pendingAddFileCalls.add(promiseAppendZip);
6432
+ const appendedFilenames = [];
6433
+ let releaseLockWriter;
6434
+ try {
6435
+ reader = new GenericReader(reader);
6436
+ await initStream(reader);
6437
+ if (reader.size === UNDEFINED_VALUE || !reader.readUint8Array) {
6438
+ reader = new BlobReader(await streamToBlob(reader.readable));
6439
+ await initStream(reader);
6440
+ }
6441
+ const { ZipReader: ZipReader2, getEntryDataDescriptorLength: getEntryDataDescriptorLength2 } = await Promise.resolve().then(() => (init_zip_reader(), zip_reader_exports));
6442
+ const zipReader = new ZipReader2(reader, readerOptions);
6443
+ const keptEntries = [];
6444
+ let entries;
6445
+ try {
6446
+ entries = await zipReader.getEntries();
6447
+ for (const entry of entries) {
6448
+ if (!filter || await filter(entry, getExistingEntry(fileEntries, entry.filename))) {
6449
+ keptEntries.push(entry);
6450
+ }
6451
+ }
6452
+ } finally {
6453
+ await zipReader.close();
6454
+ }
6455
+ await initStream(zipWriter.writer);
6456
+ const { directoryOffset, entriesMissingZip64ExtraField } = zipReader;
6457
+ keptEntries.forEach((entry) => {
6458
+ const { filename } = entry;
6459
+ if (entriesMissingZip64ExtraField.has(entry)) {
6460
+ throw new Error(ERR_EXTRAFIELD_ZIP64_NOT_FOUND);
6461
+ }
6462
+ if (filenames.has(filename)) {
6463
+ throw new Error(ERR_DUPLICATED_NAME);
6464
+ }
6465
+ filenames.add(filename);
6466
+ appendedFilenames.push(filename);
6467
+ });
6468
+ zipWriter.writerLocked = true;
6469
+ const { lockWriter } = zipWriter;
6470
+ zipWriter.lockWriter = new Promise((resolve) => releaseLockWriter = () => {
6471
+ zipWriter.writerLocked = false;
6472
+ resolve();
6473
+ });
6474
+ await lockWriter;
6475
+ if (zipWriter.addSplitZipSignature) {
6476
+ delete zipWriter.addSplitZipSignature;
6477
+ if (filter || !await startsWithSplitZipSignature2(reader)) {
6478
+ await writeData(zipWriter.writer, getSplitZipSignatureArray());
6479
+ zipWriter.offset += SPLIT_ZIP_FILE_SIGNATURE_LENGTH;
6480
+ }
6481
+ }
6482
+ const entryPositions = await copyZipData(zipWriter, reader, entries, keptEntries, directoryOffset, Boolean(filter), getEntryDataDescriptorLength2);
6483
+ keptEntries.forEach((entry) => {
6484
+ const {
6485
+ version,
6486
+ rawLastModDate,
6487
+ rawFilename,
6488
+ rawBitFlag,
6489
+ uncompressedSize,
6490
+ compressedSize,
6491
+ extraFieldZip64
6492
+ } = entry;
6493
+ let {
6494
+ compressionMethod,
6495
+ rawExtraField
6496
+ } = entry;
6497
+ rawExtraField = removeExtraFieldZip64(rawExtraField || EMPTY_UINT8_ARRAY);
6498
+ if (entry.extraFieldAES) {
6499
+ compressionMethod = COMPRESSION_METHOD_AES;
6500
+ }
6501
+ const extraFieldLength = getLength(rawExtraField);
6502
+ const zip64UncompressedSize = Boolean(extraFieldZip64) && extraFieldZip64.uncompressedSize !== UNDEFINED_VALUE;
6503
+ const zip64CompressedSize = Boolean(extraFieldZip64) && extraFieldZip64.compressedSize !== UNDEFINED_VALUE;
6504
+ const {
6505
+ headerArray,
6506
+ headerView
6507
+ } = getHeaderArrayData({
6508
+ version,
6509
+ bitFlag: rawBitFlag,
6510
+ compressionMethod,
6511
+ uncompressedSize,
6512
+ compressedSize,
6513
+ rawLastModDate,
6514
+ rawFilename,
6515
+ zip64CompressedSize,
6516
+ zip64UncompressedSize,
6517
+ extraFieldLength
6518
+ });
6519
+ const { crc32 } = entry;
6520
+ if (crc32 !== UNDEFINED_VALUE) {
6521
+ setUint32(headerView, HEADER_OFFSET_SIGNATURE, crc32);
6522
+ }
6523
+ const { offset, diskNumberStart } = entryPositions.get(entry);
6524
+ fileEntries.set(entry.filename, Object.assign({}, entry, {
6525
+ zip64Enabled: true,
6526
+ zip64UncompressedSize,
6527
+ zip64CompressedSize,
6528
+ offset,
6529
+ diskNumberStart,
6530
+ zip64DiskNumberStart: false,
6531
+ rawExtraFieldZip64: EMPTY_UINT8_ARRAY,
6532
+ rawExtraFieldAES: EMPTY_UINT8_ARRAY,
6533
+ rawExtraFieldExtendedTimestamp: EMPTY_UINT8_ARRAY,
6534
+ rawExtraFieldNTFS: EMPTY_UINT8_ARRAY,
6535
+ rawExtraFieldUnix: EMPTY_UINT8_ARRAY,
6536
+ rawCentralExtraFieldUnix: EMPTY_UINT8_ARRAY,
6537
+ rawExtraField,
6538
+ rawCentralExtraField: EMPTY_UINT8_ARRAY,
6539
+ headerArray,
6540
+ headerView
6541
+ }));
6542
+ });
6543
+ } catch (error) {
6544
+ appendedFilenames.forEach((filename) => filenames.delete(filename));
6545
+ throw error;
6546
+ } finally {
6547
+ resolveAppendZip();
6548
+ pendingAddFileCalls.delete(promiseAppendZip);
6549
+ if (releaseLockWriter) {
6550
+ releaseLockWriter();
6551
+ }
6552
+ }
6553
+ }
6554
+ function getExistingEntry(fileEntries, filename) {
6555
+ const fileEntry = fileEntries.get(filename);
6556
+ return fileEntry ? new Entry(fileEntry) : UNDEFINED_VALUE;
6557
+ }
6424
6558
  async function prependZipEntries(zipWriter, reader) {
6425
6559
  if (zipWriter.filenames.size) {
6426
6560
  throw new Error(ERR_ZIP_NOT_EMPTY);
6427
6561
  }
6428
- await zipWriter.appendZipEntries(reader);
6562
+ await appendZipEntries(zipWriter, reader);
6429
6563
  }
6430
6564
  async function addFileEntry(zipWriter, name, reader, options) {
6431
6565
  options = Object.assign({}, options);
@@ -6783,7 +6917,6 @@ function resolveMetadata(zipWriter, name, options) {
6783
6917
  const ntfsTimestamp = getOptionValue2(zipWriter, options, OPTION_NTFS_TIMESTAMP);
6784
6918
  const keepOrder = getOptionValue2(zipWriter, options, OPTION_KEEP_ORDER, true);
6785
6919
  const useWebWorkers = getOptionValue2(zipWriter, options, OPTION_USE_WEB_WORKERS);
6786
- const transferStreams = getOptionValue2(zipWriter, options, OPTION_TRANSFER_STREAMS);
6787
6920
  const bufferedWrite = getOptionValue2(zipWriter, options, OPTION_BUFFERED_WRITE);
6788
6921
  const createTempStream = getFunctionOptionValue2(zipWriter, options, OPTION_CREATE_TEMP_STREAM);
6789
6922
  const dataDescriptorSignature = getOptionValue2(zipWriter, options, OPTION_DATA_DESCRIPTOR_SIGNATURE, true);
@@ -6852,7 +6985,6 @@ function resolveMetadata(zipWriter, name, options) {
6852
6985
  ntfsTimestamp,
6853
6986
  keepOrder,
6854
6987
  useWebWorkers,
6855
- transferStreams,
6856
6988
  bufferedWrite,
6857
6989
  createTempStream,
6858
6990
  dataDescriptorSignature,
@@ -6909,7 +7041,7 @@ async function resolveSizes(zipWriter, reader, { resolvedOptions: metadata }, op
6909
7041
  if (reader) {
6910
7042
  reader = new GenericReader(reader);
6911
7043
  await initStream(reader);
6912
- if (!reader.readable && !reader.readUint8Array) {
7044
+ if (!reader.readUint8Array && !reader.readable) {
6913
7045
  throw new Error(ERR_INVALID_READER);
6914
7046
  }
6915
7047
  ({ size: contentSize } = reader);
@@ -6922,8 +7054,10 @@ function resolveEntrySizes(zipWriter, hasContent, contentSize, metadata, options
6922
7054
  let maximumCompressedSize = 0;
6923
7055
  let uncompressedSize = 0;
6924
7056
  let unknownSize = false;
7057
+ const uncompressedSizeOption = toNumber(options[PROPERTY_NAME_UNCOMPRESSED_SIZE]);
7058
+ checkIntegerOption(uncompressedSizeOption, Number.MAX_SAFE_INTEGER, ERR_INVALID_UNCOMPRESSED_SIZE_OPTION);
6925
7059
  if (passThroughCompression && hasContent) {
6926
- uncompressedSize = options[PROPERTY_NAME_UNCOMPRESSED_SIZE];
7060
+ uncompressedSize = uncompressedSizeOption;
6927
7061
  if (uncompressedSize === UNDEFINED_VALUE) {
6928
7062
  throw new Error(ERR_UNDEFINED_UNCOMPRESSED_SIZE);
6929
7063
  }
@@ -6944,14 +7078,14 @@ function resolveEntrySizes(zipWriter, hasContent, contentSize, metadata, options
6944
7078
  const encryptionOverhead = getEncryptionOverhead(encryptedEntry, zipCrypto, encryptionStrength);
6945
7079
  if (hasContent) {
6946
7080
  if (!passThroughCompression) {
6947
- if (contentSize === UNDEFINED_VALUE) {
6948
- dataDescriptor = true;
7081
+ const expectedSize = contentSize === UNDEFINED_VALUE ? uncompressedSizeOption : contentSize;
7082
+ if (expectedSize === UNDEFINED_VALUE) {
6949
7083
  if (zip64 || zip64 === UNDEFINED_VALUE) {
6950
7084
  zip64 = unknownSize = true;
6951
7085
  maximumCompressedSize = MAX_32_BITS + 1;
6952
7086
  }
6953
7087
  } else {
6954
- options.uncompressedSize = uncompressedSize = contentSize;
7088
+ options.uncompressedSize = uncompressedSize = expectedSize;
6955
7089
  maximumCompressedSize = (isCompressed(compressionMethod, level) ? getMaximumCompressedSize(uncompressedSize) : uncompressedSize) + encryptionOverhead;
6956
7090
  }
6957
7091
  } else {
@@ -6960,7 +7094,9 @@ function resolveEntrySizes(zipWriter, hasContent, contentSize, metadata, options
6960
7094
  }
6961
7095
  }
6962
7096
  const emptyEntry = !encryptedEntry && (!hasContent || contentSize === 0 && !passThroughCompression) && !isCompressed(compressionMethod, level);
6963
- if (emptyEntry && getOptionValue2(zipWriter, options, OPTION_DATA_DESCRIPTOR) === UNDEFINED_VALUE) {
7097
+ const crc32Provided = options.crc32 !== UNDEFINED_VALUE || options[PROPERTY_NAME_SIGNATURE] !== UNDEFINED_VALUE;
7098
+ const completeHeader = passThroughCompression && hasContent && contentSize !== UNDEFINED_VALUE && !(encryptedEntry && zipCrypto) && (crc32Provided || encryptedEntry && !zipCrypto);
7099
+ if ((emptyEntry || completeHeader) && getOptionValue2(zipWriter, options, OPTION_DATA_DESCRIPTOR) === UNDEFINED_VALUE) {
6964
7100
  dataDescriptor = false;
6965
7101
  }
6966
7102
  const zip64UncompressedSize = zip64Enabled || unknownSize || uncompressedSize >= MAX_32_BITS;
@@ -6978,6 +7114,8 @@ function resolveEntrySizes(zipWriter, hasContent, contentSize, metadata, options
6978
7114
  resolvedOptions: {
6979
7115
  dataDescriptor,
6980
7116
  emptyEntry,
7117
+ completeHeader,
7118
+ knownCompressedSize: completeHeader ? maximumCompressedSize : UNDEFINED_VALUE,
6981
7119
  zip64,
6982
7120
  zip64Enabled,
6983
7121
  unknownSize,
@@ -6999,6 +7137,7 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
6999
7137
  keepOrder,
7000
7138
  dataDescriptor,
7001
7139
  emptyEntry,
7140
+ completeHeader,
7002
7141
  signal
7003
7142
  } = options;
7004
7143
  const {
@@ -7020,7 +7159,7 @@ async function getFileEntry(zipWriter, name, reader, entryInfo, options) {
7020
7159
  const lockPreviousFileEntry = keepOrder && previousFileEntry ? previousFileEntry.lockFileEntry : UNDEFINED_VALUE;
7021
7160
  fileEntries.set(name, fileEntry);
7022
7161
  try {
7023
- if (options.bufferedWrite || !keepOrder || zipWriter.writerLocked || zipWriter.bufferedWrites || zipWriter.directWrites || !dataDescriptor && !emptyEntry) {
7162
+ if (options.bufferedWrite || !keepOrder || zipWriter.writerLocked || zipWriter.bufferedWrites || zipWriter.directWrites || !dataDescriptor && !emptyEntry && !completeHeader) {
7024
7163
  bufferedWrite = true;
7025
7164
  zipWriter.bufferedWrites++;
7026
7165
  if (options.createTempStream) {
@@ -7163,6 +7302,7 @@ async function createFileEntry(reader, writer, { diskNumberStart, lockFileEntry
7163
7302
  extraFieldExtendedTimestampTime,
7164
7303
  rawExtraFieldNTFS,
7165
7304
  rawExtraFieldUnix,
7305
+ rawCentralExtraFieldUnix,
7166
7306
  rawExtraFieldAES
7167
7307
  } = headerInfo;
7168
7308
  const { dataDescriptorArray } = dataDescriptorInfo;
@@ -7187,7 +7327,6 @@ async function createFileEntry(reader, writer, { diskNumberStart, lockFileEntry
7187
7327
  rawExtraField,
7188
7328
  rawCentralExtraField,
7189
7329
  useWebWorkers,
7190
- transferStreams,
7191
7330
  onstart,
7192
7331
  onprogress,
7193
7332
  onend,
@@ -7229,6 +7368,7 @@ async function createFileEntry(reader, writer, { diskNumberStart, lockFileEntry
7229
7368
  rawExtraFieldExtendedTimestamp,
7230
7369
  rawExtraFieldNTFS,
7231
7370
  rawExtraFieldUnix,
7371
+ rawCentralExtraFieldUnix,
7232
7372
  rawExtraFieldAES,
7233
7373
  rawExtraField,
7234
7374
  rawCentralExtraField,
@@ -7275,7 +7415,6 @@ async function createFileEntry(reader, writer, { diskNumberStart, lockFileEntry
7275
7415
  encrypted: encrypted && !passThroughEncryption,
7276
7416
  useWebWorkers,
7277
7417
  useCompressionStream,
7278
- transferStreams,
7279
7418
  format,
7280
7419
  codecURI,
7281
7420
  compressionMethod
@@ -7363,10 +7502,12 @@ function getHeaderInfo(options) {
7363
7502
  zip64UncompressedSize,
7364
7503
  zip64CompressedSize,
7365
7504
  uncompressedSize,
7505
+ knownCompressedSize,
7366
7506
  unknownSize,
7367
7507
  crc32
7368
7508
  } = options;
7369
7509
  let { version, compressionMethod } = options;
7510
+ const compressedSize = dataDescriptor ? UNDEFINED_VALUE : knownCompressedSize;
7370
7511
  const compressed = !directory && isCompressed(compressionMethod, level);
7371
7512
  let rawLocalExtraFieldZip64;
7372
7513
  const uncompressedFile = passThroughCompression || !compressed;
@@ -7382,7 +7523,7 @@ function getHeaderInfo(options) {
7382
7523
  extraFieldZip64.writeUint64(uncompressedSize);
7383
7524
  if (uncompressedFile) {
7384
7525
  const encryptionOverhead = getEncryptionOverhead(encrypted, zipCrypto, encryptionStrength);
7385
- extraFieldZip64.writeUint64(passThroughCompression ? 0 : uncompressedSize + encryptionOverhead);
7526
+ extraFieldZip64.writeUint64(passThroughCompression ? compressedSize === UNDEFINED_VALUE ? 0 : compressedSize : uncompressedSize + encryptionOverhead);
7386
7527
  }
7387
7528
  }
7388
7529
  } else {
@@ -7448,6 +7589,7 @@ function getHeaderInfo(options) {
7448
7589
  rawExtraFieldNTFS = rawExtraFieldExtendedTimestamp = EMPTY_UINT8_ARRAY;
7449
7590
  }
7450
7591
  let rawExtraFieldUnix;
7592
+ let rawCentralExtraFieldUnix;
7451
7593
  try {
7452
7594
  const { uid, gid, unixExtraFieldType } = options;
7453
7595
  if (unixExtraFieldType == INFOZIP_EXTRA_FIELD_TYPE && (uid !== UNDEFINED_VALUE || gid !== UNDEFINED_VALUE)) {
@@ -7462,7 +7604,7 @@ function getHeaderInfo(options) {
7462
7604
  extraFieldUnix.writeBytes(uidBytes);
7463
7605
  extraFieldUnix.writeUint8(gidBytes.length);
7464
7606
  extraFieldUnix.writeBytes(gidBytes);
7465
- rawExtraFieldUnix = extraFieldUnix.array;
7607
+ rawExtraFieldUnix = rawCentralExtraFieldUnix = extraFieldUnix.array;
7466
7608
  } else if (unixExtraFieldType == UNIX_EXTRA_FIELD_TYPE && (uid !== UNDEFINED_VALUE || gid !== UNDEFINED_VALUE)) {
7467
7609
  const extraFieldUnix = createRecordWriter(8);
7468
7610
  extraFieldUnix.writeUint16(EXTRAFIELD_TYPE_UNIX);
@@ -7470,11 +7612,15 @@ function getHeaderInfo(options) {
7470
7612
  extraFieldUnix.writeUint16((uid === UNDEFINED_VALUE ? 0 : uid) & MAX_16_BITS);
7471
7613
  extraFieldUnix.writeUint16((gid === UNDEFINED_VALUE ? 0 : gid) & MAX_16_BITS);
7472
7614
  rawExtraFieldUnix = extraFieldUnix.array;
7615
+ const centralExtraFieldUnix = createRecordWriter(4);
7616
+ centralExtraFieldUnix.writeUint16(EXTRAFIELD_TYPE_UNIX);
7617
+ centralExtraFieldUnix.writeUint16(0);
7618
+ rawCentralExtraFieldUnix = centralExtraFieldUnix.array;
7473
7619
  } else {
7474
- rawExtraFieldUnix = EMPTY_UINT8_ARRAY;
7620
+ rawExtraFieldUnix = rawCentralExtraFieldUnix = EMPTY_UINT8_ARRAY;
7475
7621
  }
7476
7622
  } catch {
7477
- rawExtraFieldUnix = EMPTY_UINT8_ARRAY;
7623
+ rawExtraFieldUnix = rawCentralExtraFieldUnix = EMPTY_UINT8_ARRAY;
7478
7624
  }
7479
7625
  if (compressionMethod === UNDEFINED_VALUE) {
7480
7626
  compressionMethod = compressed ? COMPRESSION_METHOD_DEFLATE : COMPRESSION_METHOD_STORE;
@@ -7515,6 +7661,7 @@ function getHeaderInfo(options) {
7515
7661
  bitFlag: getBitFlag(level, useUnicodeFileNames, dataDescriptor, encrypted, compressionMethod),
7516
7662
  compressionMethod,
7517
7663
  uncompressedSize,
7664
+ compressedSize,
7518
7665
  lastModDate: clampedLastModDate,
7519
7666
  rawLastModDate: rawLastModDateOption,
7520
7667
  rawFilename,
@@ -7522,6 +7669,9 @@ function getHeaderInfo(options) {
7522
7669
  zip64UncompressedSize,
7523
7670
  extraFieldLength
7524
7671
  });
7672
+ if (compressedSize !== UNDEFINED_VALUE && passThroughCompression && crc32 !== UNDEFINED_VALUE) {
7673
+ setUint32(headerView, HEADER_OFFSET_SIGNATURE, crc32);
7674
+ }
7525
7675
  const localHeader = createRecordWriter(HEADER_SIZE + getLength(rawFilename) + extraFieldLength);
7526
7676
  const localHeaderArray = localHeader.array;
7527
7677
  const localHeaderView = getDataView(localHeaderArray);
@@ -7564,6 +7714,7 @@ function getHeaderInfo(options) {
7564
7714
  rawExtraFieldExtendedTimestamp,
7565
7715
  rawExtraFieldNTFS,
7566
7716
  rawExtraFieldUnix,
7717
+ rawCentralExtraFieldUnix,
7567
7718
  rawExtraFieldAES,
7568
7719
  extraFieldLength
7569
7720
  };
@@ -7730,7 +7881,7 @@ function createDirectoryRecords(files) {
7730
7881
  rawExtraFieldAES,
7731
7882
  rawComment,
7732
7883
  rawExtraFieldNTFS,
7733
- rawExtraFieldUnix,
7884
+ rawCentralExtraFieldUnix,
7734
7885
  rawExtraField,
7735
7886
  rawCentralExtraField,
7736
7887
  extraFieldExtendedTimestampFlag,
@@ -7792,7 +7943,7 @@ function createDirectoryRecords(files) {
7792
7943
  rawExtraFieldZip64,
7793
7944
  rawExtraFieldAES,
7794
7945
  rawExtraFieldNTFS,
7795
- rawExtraFieldUnix,
7946
+ rawCentralExtraFieldUnix,
7796
7947
  rawExtraFieldTimestamp,
7797
7948
  rawExtraField,
7798
7949
  rawCentralExtraField
@@ -7821,7 +7972,7 @@ async function writeDirectoryRecords(zipWriter, directoryDataLength, options) {
7821
7972
  rawExtraFieldAES,
7822
7973
  rawExtraFieldExtendedTimestamp,
7823
7974
  rawExtraFieldNTFS,
7824
- rawExtraFieldUnix,
7975
+ rawCentralExtraFieldUnix,
7825
7976
  rawExtraField,
7826
7977
  rawCentralExtraField,
7827
7978
  rawComment,
@@ -7838,7 +7989,7 @@ async function writeDirectoryRecords(zipWriter, directoryDataLength, options) {
7838
7989
  uncompressedSize,
7839
7990
  compressedSize
7840
7991
  } = fileEntry;
7841
- const extraFieldLength = getLength(rawExtraFieldZip64, rawExtraFieldAES, rawExtraFieldExtendedTimestamp, rawExtraFieldNTFS, rawExtraFieldUnix, rawExtraField, rawCentralExtraField);
7992
+ const extraFieldLength = getLength(rawExtraFieldZip64, rawExtraFieldAES, rawExtraFieldExtendedTimestamp, rawExtraFieldNTFS, rawCentralExtraFieldUnix, rawExtraField, rawCentralExtraField);
7842
7993
  const directoryRecordLength = CENTRAL_FILE_HEADER_LENGTH + getLength(rawFilename, rawComment) + extraFieldLength;
7843
7994
  if (exceedsAvailableSize(writer, offset + directoryRecordLength - directoryDiskOffset)) {
7844
7995
  await writeData(writer, directoryArray.slice(directoryDiskOffset, offset));
@@ -7874,7 +8025,7 @@ async function writeDirectoryRecords(zipWriter, directoryDataLength, options) {
7874
8025
  directoryRecord.writeBytes(rawExtraFieldAES);
7875
8026
  directoryRecord.writeBytes(rawExtraFieldExtendedTimestamp);
7876
8027
  directoryRecord.writeBytes(rawExtraFieldNTFS);
7877
- directoryRecord.writeBytes(rawExtraFieldUnix);
8028
+ directoryRecord.writeBytes(rawCentralExtraFieldUnix);
7878
8029
  directoryRecord.writeBytes(rawExtraField);
7879
8030
  directoryRecord.writeBytes(rawCentralExtraField);
7880
8031
  directoryRecord.writeBytes(rawComment);
@@ -8048,25 +8199,62 @@ function removeExtraFieldZip64(rawExtraField) {
8048
8199
  }
8049
8200
  return rawExtraField;
8050
8201
  }
8051
- async function copyZipData(zipWriter, reader, entries, directoryOffset) {
8202
+ async function copyZipData(zipWriter, reader, entries, keptEntries, directoryOffset, compact, getEntryDataDescriptorLength2) {
8052
8203
  const { writer } = zipWriter;
8053
8204
  const entryPositions = /* @__PURE__ */ new Map();
8054
- if (writer.closeDisk) {
8205
+ if (writer.closeDisk || compact) {
8055
8206
  const sortedEntries = Array.from(entries).sort((firstEntry, secondEntry) => getSourceOffset(reader, firstEntry) - getSourceOffset(reader, secondEntry));
8056
- let copiedLength = 0;
8057
- for (const entry of sortedEntries) {
8058
- const sourceOffset = getSourceOffset(reader, entry);
8059
- await copyData(zipWriter, reader, copiedLength, sourceOffset - copiedLength);
8060
- if (exceedsAvailableSize(writer, await getLocalHeaderLength(reader, sourceOffset))) {
8061
- await writer.closeDisk();
8062
- }
8063
- entryPositions.set(entry, {
8064
- offset: getSegmentOffset(zipWriter, writer),
8065
- diskNumberStart: getDiskNumber(writer)
8066
- });
8067
- copiedLength = sourceOffset;
8207
+ const regionEnds = getRegionEnds(reader, sortedEntries, directoryOffset);
8208
+ const keptEntrySet = new Set(keptEntries);
8209
+ const localHeaderLengths = /* @__PURE__ */ new Map();
8210
+ for (let indexEntry = 0; indexEntry < sortedEntries.length; indexEntry++) {
8211
+ const entry = sortedEntries[indexEntry];
8212
+ if (keptEntrySet.has(entry)) {
8213
+ const sourceOffset = getSourceOffset(reader, entry);
8214
+ const localHeaderLength = await getLocalHeaderLength(reader, sourceOffset);
8215
+ if (localHeaderLength === UNDEFINED_VALUE) {
8216
+ throw new Error(ERR_LOCAL_FILE_HEADER_NOT_FOUND);
8217
+ }
8218
+ let entryEnd = sourceOffset + localHeaderLength + entry.compressedSize;
8219
+ if (entry.bitFlag.dataDescriptor) {
8220
+ const dataDescriptorLength = await getEntryDataDescriptorLength2(reader, entryEnd, entry);
8221
+ entryEnd = dataDescriptorLength === UNDEFINED_VALUE ? Math.max(entryEnd, regionEnds[indexEntry]) : entryEnd + dataDescriptorLength;
8222
+ }
8223
+ if (entryEnd > regionEnds[indexEntry]) {
8224
+ throw new Error(ERR_OVERLAPPING_ENTRY);
8225
+ }
8226
+ regionEnds[indexEntry] = entryEnd;
8227
+ localHeaderLengths.set(entry, localHeaderLength);
8228
+ }
8229
+ }
8230
+ let copiedOffset = 0;
8231
+ let lastPosition;
8232
+ for (let indexEntry = 0; indexEntry < sortedEntries.length; indexEntry++) {
8233
+ const entry = sortedEntries[indexEntry];
8234
+ if (keptEntrySet.has(entry)) {
8235
+ const sourceOffset = getSourceOffset(reader, entry);
8236
+ if (sourceOffset < copiedOffset) {
8237
+ entryPositions.set(entry, lastPosition);
8238
+ } else {
8239
+ if (!compact) {
8240
+ await copyData(zipWriter, reader, copiedOffset, sourceOffset - copiedOffset);
8241
+ }
8242
+ if (writer.closeDisk && exceedsAvailableSize(writer, localHeaderLengths.get(entry))) {
8243
+ await writer.closeDisk();
8244
+ }
8245
+ lastPosition = {
8246
+ offset: getSegmentOffset(zipWriter, writer),
8247
+ diskNumberStart: getDiskNumber(writer)
8248
+ };
8249
+ entryPositions.set(entry, lastPosition);
8250
+ await copyData(zipWriter, reader, sourceOffset, regionEnds[indexEntry] - sourceOffset);
8251
+ copiedOffset = regionEnds[indexEntry];
8252
+ }
8253
+ }
8254
+ }
8255
+ if (!compact) {
8256
+ await copyData(zipWriter, reader, copiedOffset, directoryOffset - copiedOffset);
8068
8257
  }
8069
- await copyData(zipWriter, reader, copiedLength, directoryOffset - copiedLength);
8070
8258
  } else {
8071
8259
  const baseOffset = zipWriter.offset;
8072
8260
  await copyData(zipWriter, reader, 0, directoryOffset);
@@ -8077,6 +8265,19 @@ async function copyZipData(zipWriter, reader, entries, directoryOffset) {
8077
8265
  }
8078
8266
  return entryPositions;
8079
8267
  }
8268
+ function getRegionEnds(reader, sortedEntries, directoryOffset) {
8269
+ const regionEnds = new Array(sortedEntries.length);
8270
+ let regionEnd = directoryOffset;
8271
+ for (let indexEntry = sortedEntries.length - 1; indexEntry >= 0; indexEntry--) {
8272
+ const sourceOffset = getSourceOffset(reader, sortedEntries[indexEntry]);
8273
+ const nextEntry = sortedEntries[indexEntry + 1];
8274
+ if (nextEntry && getSourceOffset(reader, nextEntry) > sourceOffset) {
8275
+ regionEnd = Math.min(getSourceOffset(reader, nextEntry), directoryOffset);
8276
+ }
8277
+ regionEnds[indexEntry] = regionEnd;
8278
+ }
8279
+ return regionEnds;
8280
+ }
8080
8281
  async function copyData(zipWriter, reader, offset, size) {
8081
8282
  if (size > 0) {
8082
8283
  const { writer } = zipWriter;
@@ -8084,10 +8285,12 @@ async function copyData(zipWriter, reader, offset, size) {
8084
8285
  try {
8085
8286
  await flushBufferedData(createReadable(reader, { offset, size }), writer, UNDEFINED_VALUE, (chunkLength) => copiedLength += chunkLength);
8086
8287
  } catch (error) {
8087
- zipWriter.hasCorruptedEntries = true;
8088
- try {
8089
- error.corruptedEntry = true;
8090
- } catch {
8288
+ if (copiedLength) {
8289
+ zipWriter.hasCorruptedEntries = true;
8290
+ try {
8291
+ error.corruptedEntry = true;
8292
+ } catch {
8293
+ }
8091
8294
  }
8092
8295
  throw error;
8093
8296
  } finally {
@@ -8097,11 +8300,14 @@ async function copyData(zipWriter, reader, offset, size) {
8097
8300
  }
8098
8301
  }
8099
8302
  async function getLocalHeaderLength(reader, offset) {
8100
- const headerArray = await readUint8Array(reader, offset, HEADER_SIZE);
8303
+ const headerArray = offset >= 0 && offset + HEADER_SIZE <= reader.size ? await readUint8Array(reader, offset, HEADER_SIZE) : EMPTY_UINT8_ARRAY;
8101
8304
  if (getLength(headerArray) < HEADER_SIZE) {
8102
- return HEADER_SIZE;
8305
+ return UNDEFINED_VALUE;
8103
8306
  }
8104
8307
  const headerView = getDataView(headerArray);
8308
+ if (getUint322(headerView, 0) != LOCAL_FILE_HEADER_SIGNATURE) {
8309
+ return UNDEFINED_VALUE;
8310
+ }
8105
8311
  return HEADER_SIZE + getUint162(headerView, HEADER_OFFSET_FILENAME_LENGTH + LOCAL_HEADER_COMMON_OFFSET) + getUint162(headerView, HEADER_OFFSET_EXTRAFIELD_LENGTH + LOCAL_HEADER_COMMON_OFFSET);
8106
8312
  }
8107
8313
  function getSourceOffset(reader, { offset, diskNumberStart }) {
@@ -8283,39 +8489,39 @@ function getBitFlag(level, useUnicodeFileNames, dataDescriptor, encrypted, compr
8283
8489
  return bitFlag;
8284
8490
  }
8285
8491
 
8286
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/zip-core-base.js
8492
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/zip-core-base.js
8287
8493
  init_io();
8288
8494
  init_options();
8289
8495
  init_configuration();
8290
8496
  init_codec_registry();
8291
8497
 
8292
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/compression-methods.js
8498
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/compression-methods.js
8293
8499
  init_constants();
8294
8500
  init_configuration();
8295
8501
  init_codec_registry();
8296
8502
  init_zip_entry_stream();
8297
8503
 
8298
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/util/opfs-temp-stream.js
8504
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/util/opfs-temp-stream.js
8299
8505
  var DEFAULT_THRESHOLD = 1024 * 1024;
8300
8506
 
8301
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/util/blob-temp-stream.js
8507
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/util/blob-temp-stream.js
8302
8508
  init_compatible_streams();
8303
8509
  var DEFAULT_THRESHOLD2 = 1024 * 1024;
8304
8510
 
8305
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/util/sync-access-handle-temp-stream.js
8511
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/util/sync-access-handle-temp-stream.js
8306
8512
  var DEFAULT_THRESHOLD3 = 1024 * 1024;
8307
8513
  var READ_CHUNK_SIZE = 512 * 1024;
8308
8514
 
8309
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/zip-core-base.js
8515
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/zip-core-base.js
8310
8516
  try {
8311
8517
  setDefaultConfiguration({ baseURI: import.meta.url });
8312
8518
  } catch {
8313
8519
  }
8314
8520
 
8315
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/zip-module-wasm.js
8521
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/zip-module-wasm.js
8316
8522
  init_configuration();
8317
8523
 
8318
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/zlib-streams-inline.js
8524
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/zlib-streams-inline.js
8319
8525
  var n3 = [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258];
8320
8526
  var t2 = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0];
8321
8527
  var r = [1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577];
@@ -8440,14 +8646,14 @@ function s(s2) {
8440
8646
  })("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")))), X) });
8441
8647
  }
8442
8648
 
8443
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/zip-module-wasm-base.js
8649
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/zip-module-wasm-base.js
8444
8650
  init_constants();
8445
8651
  init_configuration();
8446
8652
  init_codec_worker();
8447
8653
  init_codec_pool();
8448
8654
  init_aes_crypto_stream();
8449
8655
 
8450
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/streams/zlib-wasm/zlib-streams.js
8656
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/streams/zlib-wasm/zlib-streams.js
8451
8657
  var FORMAT_DEFLATE = "deflate";
8452
8658
  var FORMAT_DEFLATE_RAW2 = "deflate-raw";
8453
8659
  var FORMAT_DEFLATE64_RAW2 = "deflate64-raw";
@@ -8710,7 +8916,7 @@ DecompressionStreamZlib.requiresModule = true;
8710
8916
  CompressionStreamZlib.supportedFormats = COMPRESSION_FORMATS;
8711
8917
  DecompressionStreamZlib.supportedFormats = DECOMPRESSION_FORMATS;
8712
8918
 
8713
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/streams/zlib-wasm/aes-hmac-sha1-wasm.js
8919
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/streams/zlib-wasm/aes-hmac-sha1-wasm.js
8714
8920
  init_constants();
8715
8921
  init_aes_hmac_sha1();
8716
8922
  var BUFFER_LENGTH = 64 * 1024;
@@ -8773,7 +8979,7 @@ function getHeap(exports) {
8773
8979
  return new Uint8Array(exports.memory.buffer);
8774
8980
  }
8775
8981
 
8776
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/streams/zlib-wasm/zlib-streams-loader.js
8982
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/streams/zlib-wasm/zlib-streams-loader.js
8777
8983
  var initializedModule = false;
8778
8984
  async function initModule2(wasmURI, { baseURI }) {
8779
8985
  if (!initializedModule) {
@@ -8817,7 +9023,7 @@ function arrayBufferFromDataURI(dataURI) {
8817
9023
  return bytes2.buffer;
8818
9024
  }
8819
9025
 
8820
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/zip-module-wasm-base.js
9026
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/zip-module-wasm-base.js
8821
9027
  var modulePromise;
8822
9028
  setAESEngine(createEngine3);
8823
9029
  configureWorker({
@@ -8840,10 +9046,10 @@ setDefaultConfiguration({
8840
9046
  DecompressionStreamFallback: DecompressionStreamZlib
8841
9047
  });
8842
9048
 
8843
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/zip-module-wasm.js
9049
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/zip-module-wasm.js
8844
9050
  s(setDefaultConfiguration);
8845
9051
 
8846
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/core/zip-fs.js
9052
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/core/zip-fs.js
8847
9053
  init_io();
8848
9054
  init_zip_reader();
8849
9055
  init_zip_entry();
@@ -8855,7 +9061,7 @@ init_compatible_streams();
8855
9061
  init_error();
8856
9062
  var EMPTY_RAW_PASSWORD = new Uint8Array(0);
8857
9063
 
8858
- // ../../node_modules/.pnpm/@zip.js+zip.js@2.18.2/node_modules/@zip.js/zip.js/lib/zip-fs-wasm.js
9064
+ // ../../node_modules/.pnpm/@zip.js+zip.js@2.24.0/node_modules/@zip.js/zip.js/lib/zip-fs-wasm.js
8859
9065
  e(setDefaultConfiguration);
8860
9066
 
8861
9067
  // src/io/bounded-zip.ts