@zip.js/zip.js 2.7.56 → 2.7.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/deno.json +1 -1
- package/dist/zip-fs-full.js +37 -18
- package/dist/zip-fs-full.min.js +1 -1
- package/dist/zip-fs.js +37 -18
- package/dist/zip-fs.min.js +1 -1
- package/dist/zip-full.js +37 -18
- package/dist/zip-full.min.js +1 -1
- package/dist/zip-no-worker-deflate.min.js +1 -1
- package/dist/zip-no-worker.min.js +1 -1
- package/dist/zip.js +37 -18
- package/dist/zip.min.js +1 -1
- package/index.cjs +37 -18
- package/index.d.ts +7 -1
- package/index.min.js +1 -1
- package/lib/core/constants.js +2 -0
- package/lib/core/zip-entry.js +5 -1
- package/lib/core/zip-writer.js +38 -17
- package/package.json +1 -1
package/deno.json
CHANGED
package/dist/zip-fs-full.js
CHANGED
|
@@ -4284,6 +4284,7 @@
|
|
|
4284
4284
|
const FILE_ATTR_MSDOS_DIR_MASK = 0x10;
|
|
4285
4285
|
const FILE_ATTR_UNIX_DIR_MASK = 0x4000;
|
|
4286
4286
|
const FILE_ATTR_UNIX_EXECUTABLE_MASK = 0o111;
|
|
4287
|
+
const FILE_ATTR_UNIX_DEFAULT_MASK = 0o644;
|
|
4287
4288
|
|
|
4288
4289
|
const VERSION_DEFLATE = 0x14;
|
|
4289
4290
|
const VERSION_ZIP64 = 0x2D;
|
|
@@ -9223,12 +9224,14 @@
|
|
|
9223
9224
|
const PROPERTY_NAME_VERSION = "version";
|
|
9224
9225
|
const PROPERTY_NAME_VERSION_MADE_BY = "versionMadeBy";
|
|
9225
9226
|
const PROPERTY_NAME_ZIPCRYPTO = "zipCrypto";
|
|
9227
|
+
const PROPERTY_NAME_DIRECTORY = "directory";
|
|
9228
|
+
const PROPERTY_NAME_EXECUTABLE = "executable";
|
|
9226
9229
|
|
|
9227
9230
|
const PROPERTY_NAMES = [
|
|
9228
9231
|
PROPERTY_NAME_FILENAME, PROPERTY_NAME_RAW_FILENAME, PROPERTY_NAME_COMPPRESSED_SIZE, PROPERTY_NAME_UNCOMPPRESSED_SIZE,
|
|
9229
9232
|
PROPERTY_NAME_LAST_MODIFICATION_DATE, PROPERTY_NAME_RAW_LAST_MODIFICATION_DATE, PROPERTY_NAME_COMMENT, PROPERTY_NAME_RAW_COMMENT,
|
|
9230
9233
|
PROPERTY_NAME_LAST_ACCESS_DATE, PROPERTY_NAME_CREATION_DATE, PROPERTY_NAME_OFFSET, PROPERTY_NAME_DISK_NUMBER_START,
|
|
9231
|
-
PROPERTY_NAME_DISK_NUMBER_START, PROPERTY_NAME_INTERNAL_FILE_ATTRIBUTE, PROPERTY_NAME_INTERNAL_FILE_ATTRIBUTES, PROPERTY_NAME_EXTERNAL_FILE_ATTRIBUTE, PROPERTY_NAME_EXTERNAL_FILE_ATTRIBUTES, PROPERTY_NAME_MS_DOS_COMPATIBLE, PROPERTY_NAME_ZIP64, PROPERTY_NAME_ENCRYPTED, PROPERTY_NAME_VERSION, PROPERTY_NAME_VERSION_MADE_BY, PROPERTY_NAME_ZIPCRYPTO,
|
|
9234
|
+
PROPERTY_NAME_DISK_NUMBER_START, PROPERTY_NAME_INTERNAL_FILE_ATTRIBUTE, PROPERTY_NAME_INTERNAL_FILE_ATTRIBUTES, PROPERTY_NAME_EXTERNAL_FILE_ATTRIBUTE, PROPERTY_NAME_EXTERNAL_FILE_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, "bitFlag", "signature", "filenameUTF8", "commentUTF8", "compressionMethod", "extraField", "rawExtraField", "extraFieldZip64", "extraFieldUnicodePath", "extraFieldUnicodeComment", "extraFieldAES", "extraFieldNTFS", "extraFieldExtendedTimestamp"];
|
|
9232
9235
|
|
|
9233
9236
|
class Entry {
|
|
9234
9237
|
|
|
@@ -10073,10 +10076,37 @@
|
|
|
10073
10076
|
|
|
10074
10077
|
async function addFile(zipWriter, name, reader, options) {
|
|
10075
10078
|
name = name.trim();
|
|
10076
|
-
|
|
10077
|
-
|
|
10078
|
-
|
|
10079
|
-
|
|
10079
|
+
const msDosCompatible = getOptionValue(zipWriter, options, PROPERTY_NAME_MS_DOS_COMPATIBLE);
|
|
10080
|
+
const versionMadeBy = getOptionValue(zipWriter, options, PROPERTY_NAME_VERSION_MADE_BY, msDosCompatible ? 20 : 768);
|
|
10081
|
+
const executable = getOptionValue(zipWriter, options, PROPERTY_NAME_EXECUTABLE);
|
|
10082
|
+
if (versionMadeBy > MAX_16_BITS) {
|
|
10083
|
+
throw new Error(ERR_INVALID_VERSION);
|
|
10084
|
+
}
|
|
10085
|
+
let externalFileAttributes = getOptionValue(zipWriter, options, PROPERTY_NAME_EXTERNAL_FILE_ATTRIBUTES, 0);
|
|
10086
|
+
if (externalFileAttributes === 0) {
|
|
10087
|
+
externalFileAttributes = getOptionValue(zipWriter, options, PROPERTY_NAME_EXTERNAL_FILE_ATTRIBUTE, 0);
|
|
10088
|
+
}
|
|
10089
|
+
if (!options.directory && name.endsWith(DIRECTORY_SIGNATURE)) {
|
|
10090
|
+
options.directory = true;
|
|
10091
|
+
}
|
|
10092
|
+
const directory = getOptionValue(zipWriter, options, PROPERTY_NAME_DIRECTORY);
|
|
10093
|
+
if (directory) {
|
|
10094
|
+
if (!name.endsWith(DIRECTORY_SIGNATURE)) {
|
|
10095
|
+
name += DIRECTORY_SIGNATURE;
|
|
10096
|
+
}
|
|
10097
|
+
if (externalFileAttributes === 0) {
|
|
10098
|
+
if (msDosCompatible) {
|
|
10099
|
+
externalFileAttributes = FILE_ATTR_MSDOS_DIR_MASK;
|
|
10100
|
+
} else {
|
|
10101
|
+
externalFileAttributes = FILE_ATTR_UNIX_DIR_MASK << 16;
|
|
10102
|
+
}
|
|
10103
|
+
}
|
|
10104
|
+
} else if (!msDosCompatible && externalFileAttributes === 0) {
|
|
10105
|
+
if (executable) {
|
|
10106
|
+
externalFileAttributes = (FILE_ATTR_UNIX_EXECUTABLE_MASK | FILE_ATTR_UNIX_DEFAULT_MASK) << 16;
|
|
10107
|
+
} else {
|
|
10108
|
+
externalFileAttributes = FILE_ATTR_UNIX_DEFAULT_MASK << 16;
|
|
10109
|
+
}
|
|
10080
10110
|
}
|
|
10081
10111
|
const encode = getOptionValue(zipWriter, options, "encodeText", encodeText);
|
|
10082
10112
|
let rawFilename = encode(name);
|
|
@@ -10098,22 +10128,13 @@
|
|
|
10098
10128
|
if (version > MAX_16_BITS) {
|
|
10099
10129
|
throw new Error(ERR_INVALID_VERSION);
|
|
10100
10130
|
}
|
|
10101
|
-
const versionMadeBy = getOptionValue(zipWriter, options, PROPERTY_NAME_VERSION_MADE_BY, 20);
|
|
10102
|
-
if (versionMadeBy > MAX_16_BITS) {
|
|
10103
|
-
throw new Error(ERR_INVALID_VERSION);
|
|
10104
|
-
}
|
|
10105
10131
|
const lastModDate = getOptionValue(zipWriter, options, PROPERTY_NAME_LAST_MODIFICATION_DATE, new Date());
|
|
10106
10132
|
const lastAccessDate = getOptionValue(zipWriter, options, PROPERTY_NAME_LAST_ACCESS_DATE);
|
|
10107
10133
|
const creationDate = getOptionValue(zipWriter, options, PROPERTY_NAME_CREATION_DATE);
|
|
10108
|
-
const msDosCompatible = getOptionValue(zipWriter, options, PROPERTY_NAME_MS_DOS_COMPATIBLE, true);
|
|
10109
10134
|
let internalFileAttributes = getOptionValue(zipWriter, options, PROPERTY_NAME_INTERNAL_FILE_ATTRIBUTES, 0);
|
|
10110
10135
|
if (internalFileAttributes === 0) {
|
|
10111
10136
|
internalFileAttributes = getOptionValue(zipWriter, options, PROPERTY_NAME_INTERNAL_FILE_ATTRIBUTE, 0);
|
|
10112
10137
|
}
|
|
10113
|
-
let externalFileAttributes = getOptionValue(zipWriter, options, PROPERTY_NAME_EXTERNAL_FILE_ATTRIBUTES, 0);
|
|
10114
|
-
if (externalFileAttributes === 0) {
|
|
10115
|
-
externalFileAttributes = getOptionValue(zipWriter, options, PROPERTY_NAME_EXTERNAL_FILE_ATTRIBUTE, 0);
|
|
10116
|
-
}
|
|
10117
10138
|
const passThrough = getOptionValue(zipWriter, options, "passThrough");
|
|
10118
10139
|
let password, rawPassword;
|
|
10119
10140
|
if (!passThrough) {
|
|
@@ -10436,6 +10457,7 @@
|
|
|
10436
10457
|
zipCrypto,
|
|
10437
10458
|
dataDescriptor,
|
|
10438
10459
|
directory,
|
|
10460
|
+
executable,
|
|
10439
10461
|
versionMadeBy,
|
|
10440
10462
|
rawComment,
|
|
10441
10463
|
rawExtraField,
|
|
@@ -10457,6 +10479,7 @@
|
|
|
10457
10479
|
versionMadeBy,
|
|
10458
10480
|
zip64,
|
|
10459
10481
|
directory: Boolean(directory),
|
|
10482
|
+
executable: Boolean(executable),
|
|
10460
10483
|
filenameUTF8: true,
|
|
10461
10484
|
rawFilename,
|
|
10462
10485
|
commentUTF8: true,
|
|
@@ -10917,13 +10940,11 @@
|
|
|
10917
10940
|
rawComment,
|
|
10918
10941
|
versionMadeBy,
|
|
10919
10942
|
headerArray,
|
|
10920
|
-
directory,
|
|
10921
10943
|
zip64,
|
|
10922
10944
|
zip64UncompressedSize,
|
|
10923
10945
|
zip64CompressedSize,
|
|
10924
10946
|
zip64DiskNumberStart,
|
|
10925
10947
|
zip64Offset,
|
|
10926
|
-
msDosCompatible,
|
|
10927
10948
|
internalFileAttributes,
|
|
10928
10949
|
externalFileAttributes,
|
|
10929
10950
|
diskNumberStart,
|
|
@@ -10947,8 +10968,6 @@
|
|
|
10947
10968
|
setUint16(directoryView, offset + 36, internalFileAttributes);
|
|
10948
10969
|
if (externalFileAttributes) {
|
|
10949
10970
|
setUint32(directoryView, offset + 38, externalFileAttributes);
|
|
10950
|
-
} else if (directory && msDosCompatible) {
|
|
10951
|
-
setUint8(directoryView, offset + 38, FILE_ATTR_MSDOS_DIR_MASK);
|
|
10952
10971
|
}
|
|
10953
10972
|
setUint32(directoryView, offset + 42, zip64 && zip64Offset ? MAX_32_BITS : fileEntryOffset);
|
|
10954
10973
|
arraySet(directoryArray, rawFilename, offset + 46);
|