Releases: vapor/multipart-kit
Redesign FormDataEncoder and FormDataDecoder
This patch was authored and released by @siemensikkema.
Redesign FormDataEncoder and FormDataDecoder to better align with Codable's intended behavior.
- Support decoding top level optionals (fixes #68)
- Adds a
userInfo
property toFormDataDecoder
andFormDataEncoder
- More correct handling of "superDecoder" and "superEncoder"
- When nesting depth is exceeded we first fail when we’re actually trying to grab data from beyond the nesting limit
- Add some missing API docs
Fix regression that broke falling back to Codable
This patch was authored and released by @siemensikkema.
Fixes regression that broke falling back to Codable
for types not conforming to MultipartPartConvertible
(#66, fixes #65)
Note: this removes conformance of UUID
to MultipartPartConvertible
introduced in 4.2.0 because it is no longer needed.
Add support for encoding/decoding UUIDs
This patch was authored and released by @siemensikkema.
Add support for encoding and decoding UUID
s (#64)
Support nested multipart encoding
This patch was authored and released by @siemensikkema.
Add encoding and decoding support for nested objects (#57)
In order to avoid overflows by malicious actors there is a maximum nesting depth associated with FormDataDecoder
. It defaults to 8
but is configurable in the initializer like so: FormDataEncoder(nestingDepth: 8)
.
This update also deprecates MultipartError
.
Fix: MultipartParser cannot decode Non-ASCII header correctly
This patch was authored by @t-ae and released by @siemensikkema.
Fix the bug that MultipartParser
cannot decode headers that contains non-ASCII characters correctly.
Optimize and simplify parser
This patch was authored by @siemensikkema and released by @0xTim.
Use more efficient parsing of multipart bodies to improve performance to near the level of the old C parser (~8% slower). Resolves #58 and replaces #59. Thanks to @edwellbrook for the initial test case and @weissi for help on parser performance 🙏🏻
Rewrite multipart parser in Swift
This patch was authored and released by @siemensikkema.
Rewrites parser in Swift and removes dependency on C library.
This also fixes an existing parsing bug where a nested multipart body would see its boundaries stripped of the "\r\n--" prefix. (replaces #56)
MultipartKit 4.0.0
With this release, MultipartKit is again extracted from Vapor itself so it can be used independently.
Docs:
https://docs.vapor.codes/4.0/content/
https://api.vapor.codes/multipart-kit/master/MultipartKit/
BUG FIX: Multipart/form-data crashed if data was missing
This patch was authored by @JaapWijnen and released by @siemensikkema.
Fix a crash in FormDataDecoderContext when the offset doesn't exist when parsing multipart form data ( vapor/vapor#2548 )
Fix date formatter availability in iOS
Adds iOS 10.0
to availability check for using ISO8601DateFormatter
(#48).