zip-iterator
Version:
Extract contents from zip archive type using an iterator API using streams or paths. Use stream interface and pipe transforms to add decompression algorithms
261 lines • 6.56 kB
JavaScript
/**
* ZIP Format Constants
*
* All values based on PKWARE APPNOTE.TXT specification.
* Byte arrays used for signature detection with bufferEquals().
* Decimal values used instead of octal literals for Node 0.8 compatibility.
*/ // =============================================================================
// Signatures (as byte arrays for bufferEquals - little-endian)
// =============================================================================
/** Local File Header signature: PK\x03\x04 (0x04034b50) */ "use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: Object.getOwnPropertyDescriptor(all, name).get
});
}
_export(exports, {
get DATA_DESCRIPTOR_SIZE () {
return DATA_DESCRIPTOR_SIZE;
},
get DATA_DESCRIPTOR_SIZE_WITH_SIG () {
return DATA_DESCRIPTOR_SIZE_WITH_SIG;
},
get EXTID_ASI () {
return EXTID_ASI;
},
get EXTID_EXTENDED_TIMESTAMP () {
return EXTID_EXTENDED_TIMESTAMP;
},
get EXTID_PKWARE_UNIX () {
return EXTID_PKWARE_UNIX;
},
get EXTID_UNIX_NEW () {
return EXTID_UNIX_NEW;
},
get EXTID_UNIX_OLD () {
return EXTID_UNIX_OLD;
},
get EXTID_ZIP64 () {
return EXTID_ZIP64;
},
get FLAG_DATA_DESCRIPTOR () {
return FLAG_DATA_DESCRIPTOR;
},
get FLAG_ENCRYPTED () {
return FLAG_ENCRYPTED;
},
get FLAG_STRONG_ENCRYPTION () {
return FLAG_STRONG_ENCRYPTION;
},
get FLAG_UTF8 () {
return FLAG_UTF8;
},
get LOCAL_HEADER_FIXED_SIZE () {
return LOCAL_HEADER_FIXED_SIZE;
},
get METHOD_BZIP2 () {
return METHOD_BZIP2;
},
get METHOD_DEFLATE () {
return METHOD_DEFLATE;
},
get METHOD_LZMA () {
return METHOD_LZMA;
},
get METHOD_STORE () {
return METHOD_STORE;
},
get MODE_DEFAULT_DIR () {
return MODE_DEFAULT_DIR;
},
get MODE_DEFAULT_FILE () {
return MODE_DEFAULT_FILE;
},
get MODE_EXEC_ALL () {
return MODE_EXEC_ALL;
},
get MODE_READ_ALL () {
return MODE_READ_ALL;
},
get MODE_WRITE_ALL () {
return MODE_WRITE_ALL;
},
get PLATFORM_MSDOS () {
return PLATFORM_MSDOS;
},
get PLATFORM_NTFS () {
return PLATFORM_NTFS;
},
get PLATFORM_OSX () {
return PLATFORM_OSX;
},
get PLATFORM_UNIX () {
return PLATFORM_UNIX;
},
get SIGNATURE_SIZE () {
return SIGNATURE_SIZE;
},
get SIG_CENTRAL_DIR () {
return SIG_CENTRAL_DIR;
},
get SIG_DATA_DESCRIPTOR () {
return SIG_DATA_DESCRIPTOR;
},
get SIG_END_OF_CENTRAL_DIR () {
return SIG_END_OF_CENTRAL_DIR;
},
get SIG_LOCAL_FILE () {
return SIG_LOCAL_FILE;
},
get SIG_ZIP64_END_OF_CENTRAL_DIR () {
return SIG_ZIP64_END_OF_CENTRAL_DIR;
},
get SIG_ZIP64_EOCD_LOCATOR () {
return SIG_ZIP64_EOCD_LOCATOR;
},
get S_IFDIR () {
return S_IFDIR;
},
get S_IFLNK () {
return S_IFLNK;
},
get S_IFREG () {
return S_IFREG;
},
get UNIX_TYPE_BLOCK () {
return UNIX_TYPE_BLOCK;
},
get UNIX_TYPE_CHAR () {
return UNIX_TYPE_CHAR;
},
get UNIX_TYPE_DIR () {
return UNIX_TYPE_DIR;
},
get UNIX_TYPE_FIFO () {
return UNIX_TYPE_FIFO;
},
get UNIX_TYPE_FILE () {
return UNIX_TYPE_FILE;
},
get UNIX_TYPE_SOCKET () {
return UNIX_TYPE_SOCKET;
},
get UNIX_TYPE_SYMLINK () {
return UNIX_TYPE_SYMLINK;
},
get ZIP64_DATA_DESCRIPTOR_SIZE () {
return ZIP64_DATA_DESCRIPTOR_SIZE;
},
get ZIP64_DATA_DESCRIPTOR_SIZE_WITH_SIG () {
return ZIP64_DATA_DESCRIPTOR_SIZE_WITH_SIG;
},
get ZIP64_MARKER_16 () {
return ZIP64_MARKER_16;
},
get ZIP64_MARKER_32 () {
return ZIP64_MARKER_32;
},
get ZipErrorCode () {
return ZipErrorCode;
},
get createZipError () {
return createZipError;
}
});
var SIG_LOCAL_FILE = [
0x50,
0x4b,
0x03,
0x04
];
var SIG_DATA_DESCRIPTOR = [
0x50,
0x4b,
0x07,
0x08
];
var SIG_CENTRAL_DIR = [
0x50,
0x4b,
0x01,
0x02
];
var SIG_END_OF_CENTRAL_DIR = [
0x50,
0x4b,
0x05,
0x06
];
var SIG_ZIP64_END_OF_CENTRAL_DIR = [
0x50,
0x4b,
0x06,
0x06
];
var SIG_ZIP64_EOCD_LOCATOR = [
0x50,
0x4b,
0x06,
0x07
];
var METHOD_STORE = 0;
var METHOD_DEFLATE = 8;
var METHOD_BZIP2 = 12;
var METHOD_LZMA = 14;
var FLAG_ENCRYPTED = 1;
var FLAG_DATA_DESCRIPTOR = 8;
var FLAG_STRONG_ENCRYPTION = 64;
var FLAG_UTF8 = 2048;
var EXTID_ZIP64 = 0x0001;
var EXTID_UNIX_OLD = 0x5855;
var EXTID_UNIX_NEW = 0x7875;
var EXTID_PKWARE_UNIX = 0x000d;
var EXTID_EXTENDED_TIMESTAMP = 0x5455;
var EXTID_ASI = 0x756e;
var LOCAL_HEADER_FIXED_SIZE = 30;
var SIGNATURE_SIZE = 4;
var DATA_DESCRIPTOR_SIZE = 12;
var DATA_DESCRIPTOR_SIZE_WITH_SIG = 16;
var ZIP64_DATA_DESCRIPTOR_SIZE = 20;
var ZIP64_DATA_DESCRIPTOR_SIZE_WITH_SIG = 24;
var ZIP64_MARKER_32 = 0xffffffff;
var ZIP64_MARKER_16 = 0xffff;
var MODE_READ_ALL = 292;
var MODE_WRITE_ALL = 146;
var MODE_EXEC_ALL = 73;
var MODE_DEFAULT_FILE = 420;
var MODE_DEFAULT_DIR = 493;
var PLATFORM_MSDOS = 0;
var PLATFORM_UNIX = 3;
var PLATFORM_NTFS = 10;
var PLATFORM_OSX = 19;
var S_IFLNK = 0xa000; // Symbolic link
var S_IFDIR = 0x4000; // Directory
var S_IFREG = 0x8000; // Regular file
var UNIX_TYPE_FIFO = 1;
var UNIX_TYPE_CHAR = 2;
var UNIX_TYPE_DIR = 4;
var UNIX_TYPE_BLOCK = 6;
var UNIX_TYPE_FILE = 8;
var UNIX_TYPE_SYMLINK = 10;
var UNIX_TYPE_SOCKET = 12;
var ZipErrorCode = {
INVALID_SIGNATURE: 'ZIP_INVALID_SIGNATURE',
CRC_MISMATCH: 'ZIP_CRC_MISMATCH',
UNSUPPORTED_METHOD: 'ZIP_UNSUPPORTED_METHOD',
ENCRYPTED_ENTRY: 'ZIP_ENCRYPTED_ENTRY',
TRUNCATED_ARCHIVE: 'ZIP_TRUNCATED_ARCHIVE',
SIZE_EXCEEDED: 'ZIP_SIZE_EXCEEDED',
INVALID_SIZE: 'ZIP_INVALID_SIZE',
BUFFER_OVERFLOW: 'ZIP_BUFFER_OVERFLOW'
};
function createZipError(message, code) {
var err = new Error(message);
err.code = code;
return err;
}
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }