Documentation
    Preparing search index...

    Extracting a zip archive.

    The reading side is unzipper's: it reads the central directory up front and then streams each entry from the file, through decryption and inflation, to its destination, so nothing larger than a few buffers is ever held in memory and inflation runs on libuv's thread pool. That is why this does not need the worker thread the writing side uses - the CPU work is already off the event loop.

    What is added here is what unzipper leaves to its caller: entries are checked against the CRC and length the archive claims for them, names that would escape the target directory are refused rather than quietly skipped, and the password errors are turned into something the admin UI can prompt on.

    Functions

    extractZip