Releases
v0.0.23
Compare
Sorry, something went wrong.
No results found
Feature
Accept any Iterable in write(), not just Arrays/TypedArrays/strings
Report stream-absolute error positions alongside the chunk-local ones
Bugfix
Stop proto keys from polluting parsed-object prototypes (security)
Reassemble multi-byte UTF-8 characters split across more than 2 writes
Reject invalid UTF-8 instead of silently replacing it with U+FFFD
Match JSON.parse's handling of unpaired UTF-16 surrogates
Recognize the UTF-8 BOM by its bytes, not the input's container type
Reject a stream ending mid-way through a multi-byte separator
Reject partial tokens outside VALUE/KEY state in TokenParser
Reject non-integer/negative stringBufferSize and numberBufferSize
Track member count so keepStack:false stops accepting trailing commas
Truncate emitted array elements under keepStack:false instead of delete
Stabilize onValue event metadata in the Node and WHATWG adapters
Don't end the Node writable stream as soon as the root value completes
Let flush() close the WHATWG stream normally instead of terminate()
Stop TokenParser/Tokenizer TransformStreams aborting on end
Export ParsedTokenInfo/ParsedElementInfo as types, not namespaces
Performance
Scan plain-ASCII string runs instead of one appendChar per byte
Decode multi-byte string runs in maximal spans
Fold NonBufferedString incrementally to kill quadratic partial-token emits
Compile selectors into a trie instead of rescanning every path per value
Snapshot onValue metadata lazily in the Node/WHATWG adapters
Build / CI
Replace eslint & prettier with biome
Drop Node 20 from the test matrix
Make npm pack ship a working, minimal tarball
Tests / Benchmarks
Redesign benchmarks as a whole-library throughput suite across engines & JSON types
Make fail()-sentinel negative tests actually assert
Make keepStack:false memory tests reliable (deterministic + forced-GC)
Make the plainjs test runner actually call end()
You can’t perform that action at this time.