Skip to content

Latest commit

 

History

History
123 lines (80 loc) · 4.71 KB

CHANGES.md

File metadata and controls

123 lines (80 loc) · 4.71 KB

2.4.6:

  • bugfix: the filename attribute in a Content-Disposition header is now parsed correctly
    • when it is not the last attribute in the header
    • and when it is the extended filename* attribute

2.4.5:

  • bugfix: the output stream can now be transferred without breaking the central repository.

2.4.4:

  • options argument was missing in makeZip type declaration

2.4.3:

  • bugfix: cancelling the output stream will cause an error in the source iterator FOR REAL NOW

2.4.2:

  • new: filenames can be flagged as UTF-8 using the EFS bit in the file header flags
    • this is configurable with the new buffersAreUTF8 option
  • and it should help the Windows Zip utility read non-ASCII filenames correctly

2.4.1:

  • bugfix: cancelling the output stream will now cause an error in the source iterator

2.4.0:

  • minor: JavaScript CRC32 is now faster than WebAssembly.

2.3.1:

  • new: added type and exports to package.json so client-zip can run in Node.js.

2.3.0:

  • fixed filename extraction from a Response when its URL has a trailing slash.
  • new: allow the creation of empty folders in the archive with { name, lastModified? }.
    • remove trailing slashes from file names and add one to folder names if needed.
  • new: export the makeZip function which returns a ReadableStream without its Response wrapper.

2.2.2:

  • fixed typings (2.2.0 incorrectly excluded ArrayBuffers, Blobs and strings as valid input types)

2.2.1:

  • fixed content-length prediction when some files have a length of zero (previously, this threw an error).

2.2.0:

  • minor: added an options parameter to downloadZip.
  • new: Zip file size can now be predicted:
    • export the predictLength function to compute the size of a Zip file before creating it.
    • options.length can be set to include a "Content-Length" header in the Response.
    • options.metadata can instead be given the same argument as predictLength, as a shortcut to compute and set the Content-Length.

2.1.0:

  • minor: used the start directive in WebAssembly to simplify (very slightly) the CRC32 module.

2.0.1:

  • Fixed a bug where small files requiring a 64-bit offset (but not size) were corrupted.
  • Never use 64-bit sizes in data descriptor for small files, even at large offsets.

2.0.0:

  • breaking: now targets ES2020 because we need BigInts, because…
  • breaking (a little): client-zip now generates ZIP64 archives!
  • minor: the worker IIFE version is now identical (accepts all the input types) ; might be useful with transferable blobs and streams.
  • Zip64 is only used when necessary.

1.3.1:

  • patch: the UNIX part of the external attributes was left at zero, causing some Linux setups to create files with no permissions at all ; now set to 664 (rw-rw-r)

1.3.0:

  • minor: added a Content-Disposition: attachment header to the returned Response ; particularly useful when combined with a form action intercepted by a Service Worker because forms don't have a download attribute like links

1.2.2:

  • patch: added a few missing TypeScript annotations to avoid "Member 'name' implicitly has an 'any' type." errors in strict TypeScript settings

1.2.1

  • patch: fixed typings that made TypeScript complain when you passed an array to downloadZip

1.2.0

  • minor: added a worker script alongside the ES module. It only accepts Responses as input.
  • updated README with results from my "faster-crc" experiments

1.1.1

  • patch: fixed DOS date/time encoding
  • patch: fixed Invalid Date that was attributed to Responses with no Last-Modified header

1.1.0

  • minor: the WebAssembly Memory is now created inside the wasm module, resulting in a module that is easier to import and a small reduction in bundle size
  • typo: removed a little bit of duplicate code in normalizeInput's Response name handling

0.3.0

  • minor: input.lastModification is now optional in all cases
  • minor: when extracting the file name from a Request, consider first the "filename" option from the "Content-Disposition" header

0.2.4 More Fixed

  • patch (critical): fixed infinite loop in a function that was trying to chunk large files for crc32

0.2.3 Fixed!

  • patch (critical): computed file size was NaN when reading from a stream
  • patch: a little mangling and refactoring again

0.2.2

  • patch: update README with recent changes to property names

0.2.1

  • patch: a little refactoring and tweaking of Terser options
  • actually breaking but I didn't notice: renamed input property modDate to lastModification

0.2 more speed!

  • minor: now using WebAssembly for CRC32, yielding a ~10x speed improvement over the JavaScript version
  • minor: polyfill Blob.stream() instead of using a FileReader to process Blobs
  • patch: fix typo in README

0.1 First commit