| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | const errors = {    /* Header error messages */    INVALID_LOC: "Invalid LOC header (bad signature)",    INVALID_CEN: "Invalid CEN header (bad signature)",    INVALID_END: "Invalid END header (bad signature)",    /* Descriptor */    DESCRIPTOR_NOT_EXIST: "No descriptor present",    DESCRIPTOR_UNKNOWN: "Unknown descriptor format",    DESCRIPTOR_FAULTY: "Descriptor data is malformed",    /* ZipEntry error messages*/    NO_DATA: "Nothing to decompress",    BAD_CRC: "CRC32 checksum failed {0}",    FILE_IN_THE_WAY: "There is a file in the way: {0}",    UNKNOWN_METHOD: "Invalid/unsupported compression method",    /* Inflater error messages */    AVAIL_DATA: "inflate::Available inflate data did not terminate",    INVALID_DISTANCE: "inflate::Invalid literal/length or distance code in fixed or dynamic block",    TO_MANY_CODES: "inflate::Dynamic block code description: too many length or distance codes",    INVALID_REPEAT_LEN: "inflate::Dynamic block code description: repeat more than specified lengths",    INVALID_REPEAT_FIRST: "inflate::Dynamic block code description: repeat lengths with no first length",    INCOMPLETE_CODES: "inflate::Dynamic block code description: code lengths codes incomplete",    INVALID_DYN_DISTANCE: "inflate::Dynamic block code description: invalid distance code lengths",    INVALID_CODES_LEN: "inflate::Dynamic block code description: invalid literal/length code lengths",    INVALID_STORE_BLOCK: "inflate::Stored block length did not match one's complement",    INVALID_BLOCK_TYPE: "inflate::Invalid block type (type == 3)",    /* ADM-ZIP error messages */    CANT_EXTRACT_FILE: "Could not extract the file",    CANT_OVERRIDE: "Target file already exists",    DISK_ENTRY_TOO_LARGE: "Number of disk entries is too large",    NO_ZIP: "No zip file was loaded",    NO_ENTRY: "Entry doesn't exist",    DIRECTORY_CONTENT_ERROR: "A directory cannot have content",    FILE_NOT_FOUND: 'File not found: "{0}"',    NOT_IMPLEMENTED: "Not implemented",    INVALID_FILENAME: "Invalid filename",    INVALID_FORMAT: "Invalid or unsupported zip format. No END header found",    INVALID_PASS_PARAM: "Incompatible password parameter",    WRONG_PASSWORD: "Wrong Password",    /* ADM-ZIP */    COMMENT_TOO_LONG: "Comment is too long", // Comment can be max 65535 bytes long (NOTE: some non-US characters may take more space)    EXTRA_FIELD_PARSE_ERROR: "Extra field parsing error"};// templatefunction E(message) {    return function (...args) {        if (args.length) { // Allow {0} .. {9} arguments in error message, based on argument number            message = message.replace(/\{(\d)\}/g, (_, n) => args[n] || '');        }        return new Error('ADM-ZIP: ' + message);    };}// Init errors with templatefor (const msg of Object.keys(errors)) {    exports[msg] = E(errors[msg]);}
 |