Overview of Endo Zip
masterEndo Zip is a specialized, modernized version of JSZip implemented entirely with ECMAScript modules. It is designed for environments requiring zero dependencies on built-in modules, making it suitable for embedding in XS binaries, bundling with Rollup, or running via node -r esm.
Key characteristics include:
- Security-focused: Treats file name spoofing as an integrity error and requires explicit date provision to avoid issues in locked-down environments (like constructed compartments) where the ambient
Dateconstructor is absent. - Modern Data Handling: Uses
TypedArraysand UTF-8 without reservation. - TypeScript Support: Uses TypeScript JSDoc comments for information flow verification.
Note on Limitations: To maintain security and simplicity, this version intentionally omits several features found in standard JSZip:
- No Zip64 support: To prevent vulnerabilities related to scanning for magic numbers in specially crafted files.
- No variable-width archive comments: To prevent potential prefix-based attacks.
- No INFLATE compression: Support for compression has been dropped for expedience.
- No asynchronous mode: The non-concurrent async mode from JSZip is omitted.
- No streaming compression: Support for streaming and data descriptors is omitted.
- No explicit directory records: These are ignored on read and omitted on write.
- No enumeration API: There is currently no API for enumerating the contents of the archive.