@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.
- package/CHANGELOG.md +6 -1
- package/dist/identity.d.cts +2 -1
- package/dist/identity.d.ts +2 -1
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/io/onepux.worker.js +583 -377
- package/dist/io/onepux.worker.js.map +1 -1
- package/dist/io/proton-pass.worker.js +583 -377
- package/dist/io/proton-pass.worker.js.map +1 -1
- package/package.json +3 -3
|
@@ -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.
|
|
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.
|
|
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.
|
|
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,
|
|
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.
|
|
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.
|
|
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.
|
|
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 =
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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 =
|
|
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.
|
|
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.
|
|
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,
|
|
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.
|
|
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 {
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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,
|
|
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.
|
|
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
|
-
|
|
3838
|
-
|
|
3839
|
-
|
|
3840
|
-
|
|
3841
|
-
|
|
3842
|
-
|
|
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
|
-
|
|
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 (
|
|
3910
|
-
|
|
3911
|
-
|
|
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 = -
|
|
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,
|
|
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
|
-
|
|
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
|
|
4044
|
-
|
|
4045
|
-
|
|
4046
|
-
|
|
4047
|
-
|
|
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
|
|
4219
|
+
directory,
|
|
4080
4220
|
zipCrypto: fileEntry.encrypted && !fileEntry.extraFieldAES
|
|
4081
4221
|
});
|
|
4082
4222
|
const entry = new Entry(fileEntry);
|
|
4083
|
-
|
|
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
|
|
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,
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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&>(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&>(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.
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
5772
|
-
|
|
5773
|
-
|
|
5774
|
-
|
|
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 (!
|
|
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
|
|
6120
|
+
function sendMessage(message, { worker, writer }) {
|
|
5987
6121
|
try {
|
|
5988
|
-
const { value
|
|
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,
|
|
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.
|
|
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.
|
|
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,
|
|
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
|
|
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.
|
|
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 =
|
|
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
|
-
|
|
6948
|
-
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
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(
|
|
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
|
-
|
|
8057
|
-
|
|
8058
|
-
|
|
8059
|
-
|
|
8060
|
-
|
|
8061
|
-
|
|
8062
|
-
|
|
8063
|
-
|
|
8064
|
-
|
|
8065
|
-
|
|
8066
|
-
|
|
8067
|
-
|
|
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
|
-
|
|
8088
|
-
|
|
8089
|
-
|
|
8090
|
-
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|