NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #1103 most downloaded on npm
Create, read and edit .zip files with JavaScript http://stuartk.com/jszip
Last release 26 days ago
08 Sep 2026
Ships unpredictably
gaps range from 2 weeks to 4.1 years
Most releases are documented
notes for 32 of 38 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
39 releases · first in 2013
Fix cross-realm binary type detection in getTypeOf . Fixes #759 (see #578 )
Release preparation for 3.10.2
getTypeOf. FixesJSZip.defaults. FixesSigned-off-by: Jon Koops jonkoops@gmail.com
One column per quarter.
If you appreciate the time spent maintaining JSZip then I would really appreciate your sponsorship.
const instead var in example from README.markdown #828Internals:
Change setimmediate dependency to more efficient one. Fixes https://github.com/Stuk/jszip/issues/617 (see #829)
Fix recursive definition of InputFileFormat introduced in 3.9.0.
InputFileFormat introduced in 3.9.0.Update types JSZip#loadAsync to accept a promise for data, and remove arguments from new JSZip() (see #752)
Santize filenames when files are loaded with loadAsync, to avoid "zip slip" attacks. The original filename is available on each zip entry as unsafeOri
loadAsync, to avoid "zip slip" attacks. The original filename is available on each zip entry as unsafeOriginalName. See the documentation. Many thanks to McCaulay Hudson for reporting.Note: this version ensures the changes from 3.7.0 are actually included in the dist files. Thanks to Evan W for reporting.
dist files.
dist files. Thanks to Evan W for reporting.Fix: Use a null prototype object for this.files (see #766)
.files property of a zip object, for example zip.files.toString(). This approach is taken to prevent files in the zip overriding object methods that would exist on a normal object.Fix: redirect main to dist on browsers (see #742)
Nothing published for this version
Fix 'End of data reached' error when file extra field is invalid (see #544).
Add Typescript type definitions (see #601).
Change browser module resolution to support Angular packager (see #614).
No public changes, but a number of testing dependencies have been updated.
- Corrected built dist files
Fix deprecated Buffer constructor usage and add safeguards (see #506).
Handle 2 nodejs deprecations (see #459).
consistently use our own utils object for inheritance (see #395).
instanceof failing in window / iframe contexts (see #350).
fix support of nodejs process.platform in generate* methods (see #335).
Use a hard-coded JSZip.version, fix an issue with webpack (see #328).
utils.delay: use macro tasks instead of micro tasks (see #288).
remove the deprecated API (see #253).
This release changes a lot of methods, please see the upgrade guide.
generate() with async methods (see #195).file() and generateAsync()).file() and loadAsync() (see #275).support.nodestream.type is now mandatory in generateAsync().true).base64 and array as possible output type.Nothing published for this version
update pako to v1.0.2 to fix a DEFLATE bug (see #322).
publish dist/ files in the npm package (see #225).
add support for custom mime-types (see #199).
update pako to 0.2.5 (see #156).
on ZipObject#options, the attributes date and dir have been deprecated and are now on ZipObject (see the upgrade guide).
ZipObject#options, the attributes date and dir have been deprecated and are now on ZipObject (see the upgrade guide).ZipObject#options, the attributes base64 and binary have been deprecated (see the upgrade guide).update pako to v0.2.1, fix an error when decompressing some files (see #126).
fix unreadable generated file on Windows 8 (see #112).
make the new operator optional before the JSZip constructor (see #93).
new operator optional before the JSZip constructor (see #93).use the npm package for zlib.js instead of the github url.
split the files and use Browserify to generate the final file (see #74)
JSZipBase64 has been renamed to JSZip.base64.
The data attribute on the object returned by zip.file(name) has been removed. Use asText(), asBinary(), asUint8Array(), asArrayBuffer() or asNodeBuffer().
The compression/decompression methods now give their input type with the compressInputType and uncompressInputType attributes.
Lazily decompress data when needed and improve performance in general
Package for CommonJS/npm.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →