6.10.4 (2025-06-02)
The MongoDB Node.js team is pleased to announce version 6.10.4 of the bson
package!
Release Notes
Top-Level Await removed from the browser BSON bundle
In versions <6.10.4, BSON uses a top-level await to asynchronously import the crypto
module. This change unintentionally caused headaches for users of webpack, react native, vite and other tools bundlers and tools.
The top-level await has been removed from all BSON bundles. Thanks to @lourd for this contribution.
Prevent the creation of incorrectly sized float32 vectors
This adds validation to our BSON.serialize
and EJSON.stringify
methods that will prevent creating float 32 vectors that are not a multiple of 4. Previously created vectors that do not meet this validation will still be deserialized
and parsed
so they can be fixed.
Additionally, the toFloat32Array()
, toInt8Array()
, and toPackedBits()
methods now perform the same validation that serialize does to prevent use of incorrectly formatted Binary vector values. (For example, a packed bits vector with more than 7 bits of padding)
Vectors of an incorrect length could only be made manually (directly constructing the bytes and calling new Binary
). We recommend using toFloat32Array
and fromFloat32Array
when interacting with Vectors in MongoDB as they handle the proper creation and translation of this data type.
Bug Fixes
- NODE-6074: Removes top-level await in bson with separate node and browser ESM bundles (#749) (4602973)
- NODE-6735, NODE-6711: add BSON vector validation to EJSON stringification, serialization and conversion to native types (#748) (64ff6a2)
Documentation
We invite you to try the bson
library immediately, and report any issues to the NODE project.