- Add support for Node 20
- Drop support for Node 14
- Add support for Node 18
- Drop support for Node 12
- Fix: while sending treat all errors as premature close errors (fix for NodeJS 17.3.0)
- Fix: set more precise optional property types
- Refactor: small enhancements
- Fix: add explicit errors for 405/412/416 statuses
- Docs: add CONTRIBUTING.md file
- Docs: add issue / pull request templates
- Docs: enhance examples
- Build: run linting after tests
- Fix: differentiate optional properties and undefined properties
- Docs: add LICENCE and CODE_OF_CONDUCT.md file
- Docs: simplify fastify examples
- Docs: add json and buffer examples
- Docs: enhance contentEncodingMappings documentation
- Fix: do not log errors coming from dynamic compression pipeline (errors should be managed by the stream itself)
- Bump typescript from 4.2.x to 4.3.x
- Use typescript override keyword and incremental option
- Feature: add send method in Storage to send directly a file without having to prepare the response before
- Feature: add dispose method in StreamResponse to dispose stream response resources
- Refactor: rename BufferOrStreamRange as Uint8ArrayOrStreamRange
- Fix: call super._destroy in BufferStream._destroy
- Docs: add better path example
- Docs: add missing ignorePrematureClose documentation
- Docs: add some missing jsdocs
- Docs: enhance doc display
- Feature: add abstract class GenericFileSystemStorage as intermediate implementation for file system storage
- Docs: Revert use of fastify send in example (not safe to use)
- Docs: Fix onDirectory parameter documentation
- Fix: NodeJS 12 sometimes not destroyed
- Feature: send method is now returning a promise and is not anymore an event emitter
- Feature: send method have a new option to ignore premature close errors (true by default)
- Test: test all frameworks instead of only koa
- Docs: update/fix examples
- Fix: node 15.x on dynamic compression error
- Fix: remove useless destroyed checks
- Refactor: merge EmptyStream into BufferStream
- Refactor: add/update lint rules
- Feature: Add dynamicCompressionMinLength option
- Fix: Add missing documentation on
dynamicCompression
andmimeTypeCompressible
- Breaking change: rename
contentType
prepare option tomimeType
andcontentTypeCharset
tomimeTypeCharset
- Breaking change: rename storage option
defaultContentType
todefaultMimeType
- Breaking change: replace
defaultCharsets
andmimeModule
storage options withmimeTypeLookup
andmimeTypeDefaultCharset
functions - Breaking change:
contentEncoding
in storage information is now (and needs to be) undefined when identity is used - Feature:
mime
package is replaced bymime-types
for charset lookups - Feature: Add
dynamicCompression
andmimeTypeCompressible
storage options - Feature: Add
cacheControl
,contentDispositionType
andcontentDispositionType
in storage information - Use fastify v3 in examples
- Use typescript project references
- Bump typescript from 3.9.x to 4.0.x
- Feature: Add a way to define ETag and Last-Modified headers directly from the storage
- Breaking change: Each error now have a specific class instead of a code
- Breaking change: Encoded path must start with / now
- Breaking change: contentType values are now splitted into contentType (without charset) and contentTypeCharset
- Not normalized paths are now a 404 instead of 301 like other errors (redirects was unsafe depending on use)
- Fix some content encoding edge cases
- Multiple refactoring
- Feature: add onDirectory option
- Feature: storages can now emit contentType/contentTypeCharset values directly
- Enhance CI ans tests
- Replace
tslint
witheslint
- Enhance documentation and examples
- Change default ignore pattern from
/^\../
to/^\./
- Rename error code
forbidden_characters
toforbidden_character
- Rename error code
ignored_files
toignored_file
- Restore
malformed_path
error - Throw
ignored_file
error beforetrailing_slash
- Drop
responseClose
event - Add textual regexp support in options
- Fix multi-range streams on error
- Create multi-range streams when needed only
- Fix mongodb example
- Update dependencies
- Remove node 10 support
- Breaking change: storage now takes a range object (which can be undefined) instead of start/end parameter
- File size/modification date/name are now optional in storage result
- 100% code coverage
- All file opening errors are now 404
- A parameter have been added to allow http methods different than GET and HEAD
- Add new linting rules
- Update dependencies
- Remove 1 minute freshness condition
- Add badges in documentation
- Fix some examples
- Enhance code coverage
- Fix minor issues
- Remove max-age on error
- Enhance examples
- Add some documentation on response and errors
- Change fullReponse option to statusCode option
- Add clarification on query params in path
- Enhance mongodb/gridfs example
- Change default charset from utf-8 to UTF-8
- Add public in cache control by default
- Remove options method handling
- Add weakEtags option
- Add path parts documentation
- Add pre compressed example
- Fix content-encoding when pre-compressed files do not exist
- Fix crypto warning
- Keep compatibility with disabled allowSyntheticDefaultImports
- Relax StreamResponse typings
- Add fullResponse option
- First release