unstale

npm / seroval

seroval

What changed in seroval 1, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-28.

8 breaking1 security2 deprecations8 new APIs and options3 behavior and defaults11 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.9 on npm

seroval 133 changes

Breaking changes 8

  • serialize, toJSON, crossSerialize and toCrossJSON now throw for values containing an async iterable or a ReadableStream; use an async or streaming function to send them.

    1.7.1release notes

  • serialize, toJSON, crossSerialize and toCrossJSON now send an ended createStream stream with all its events; open or live streams throw.

    1.7.1release notes

  • Now throws when the value contains a promise, like serialize already did; use an async or streaming function to send promises.

    1.7.0release notes

  • Disposing the stream no longer invokes onDone; disposal abandons output, so callers that close a response in onDone must also close it when disposing.

    1.7.0release notes

  • Raise the supported Node.js floor from >=10 to >=20.

    1.7.0release notes

  • Streams serialized from a live stream in streaming mode now use a receiver that retains history only until its first listener subscribes, then forwards values without retaining them and refuses a second listener.

    1.7.0release notes

  • Now throws when the value contains a promise, like serialize already did; use an async or streaming function to send promises.

    1.7.0release notes

  • Now throws when the value contains a promise, like serialize already did; use an async or streaming function to send promises.

    1.7.0release notes

Security 1

  • Honor depthLimit in every serializer entry point and in fromJSON.

    1.7.0release notes

Deprecations 2

New APIs and options 8

  • Add this option to crossSerialize and crossSerializeAsync to store only values read more than once in $R, shortening output when no later script refers back to them.

    1.7.0release notes

  • Add a session for cross-reference JSON records that tracks unsettled promises and open streams, reports pending counts, and can abort them with a caller-supplied reason.

    1.7.0release notes

  • Add a single-consumer stream that holds one event at a time and resolves producer writes only after the serialized record is accepted.

    1.7.0release notes

  • Export the option type for serializeAsync.

    1.7.0release notes

  • Export the option type for serialize.

    1.7.0release notes

  • Add an optional plugin field; when true, the plugin is not tested against plain objects, speeding parsing when most values are plain objects.

    1.7.0release notes

  • Export the option type for toJSONAsync.

    1.7.0release notes

  • Export the option type for toJSON.

    1.7.0release notes

Behavior and default changes 3

  • Async iterables and ReadableStream values read the next chunk only after the previous record is accepted.

    1.7.0release notes

  • Callbacks may return promises; records are emitted in order with one callback at a time, and completion waits for the last callback. Output failure prevents onDone, while cleanup runs every callback once.

    1.7.0release notes

  • Callbacks may return promises; records are emitted in order with one callback at a time, and completion waits for the last callback. Output failure prevents onDone, while cleanup runs every callback once.

    1.7.0release notes

Fixes and other changes 11

  • Rejected promises that the caller never reads, including promises rejected by abort, no longer cause unhandled rejections; awaiting the promise still receives the rejection.

    1.7.1release notes

  • serialize and serializeAsync no longer add an unused placeholder variable to every payload containing a Map; a plain Map serializes to new Map([...]).

    1.7.0release notes

  • Preserve reserved own property names in cyclic objects and retain Error __proto__ data properties without changing their prototypes.

    1.7.0release notes

  • A failed write stops only that write; sibling streams and subsequent writes remain active.

    1.7.0release notes

  • Report a node id assigned twice with SerovalConflictedNodeIdError.

    1.7.0release notes

  • Failures raised while emitting output are now wrapped in SerovalSerializationError.

    1.7.0release notes

  • Uses the element length for bigint typed array views.

    1.5.5release notes

  • Preserves own __proto__ properties through serialization.

    1.5.5release notes

  • Preserves circular own __proto__ properties through deferred assignment.

    1.5.5release notes

  • Unescapes regexp source in the serialized output.

    1.5.5release notes

  • Fixes cleanup during streaming serialization.

    1.5.5release notes