BiancoRoyal / node-red-contrib-modbus

maintained by PLUS for Node-RED - https://plus4nodered.com
https://www.npmjs.com/package/node-red-contrib-modbus
BSD 3-Clause "New" or "Revised" License
278 stars 107 forks source link

chore(deps): bump bson from 4.7.2 to 6.4.0 #449

Closed dependabot[bot] closed 3 months ago

dependabot[bot] commented 4 months ago

Bumps bson from 4.7.2 to 6.4.0.

Release notes

Sourced from bson's releases.

v6.4.0

6.4.0 (2024-02-29)

The MongoDB Node.js team is pleased to announce version 6.4.0 of the bson package!

Release Notes

BSON short basic latin string writing performance improved!

The BSON library's string encoding logic now attempts to optimize for basic latin (ASCII) characters. This will apply to both BSON keys and BSON values that are or contain strings. If strings are less than 6 bytes we observed approximately 100% increase in speed while around 24 bytes the performance was about 33% better. For any non-basic latin bytes or at 25 bytes or greater the BSON library will continue to use Node.js' Buffer.toString API.

The intent is to generally target the serialization of BSON keys which are often short and only use basic latin.

Fixed objectId symbol property not defined on instances from cross cjs and mjs

We do recommend that users of the driver use the BSON APIs exported from the driver. One reason for this is at this time the driver is only shipped in commonjs format and as a result it will only import the commonjs BSON bundle. If in your application you use import syntax then there will be a commonjs and an es module instance in the current process which prevents things like instanceof from working.

Also, private symbols defined in one package will not be equal to symbols defined in the other. This caused an issue on ObjectId's private symbol property preventing the .equals method from one package from operating on an ObjectId created from another.

Thanks to @​dot-i's contribution we've changed the private symbol to a private string property so that the .equals() method works across module types.

Deserialization performance increased

If BSON data does not contain Doubles and UTF8 validation is disabled the deserializer is careful to not allocate data structures needed to support that functionality. This has shown to greatly increase (2x-1.3x) the performance of the deserializer.

Thank you @​billouboq for this contribution!

Improve the performance of small byte copies

When serializing ObjectIds, Decimal128, and UUID values we can get better performance by writing the byte-copying logic in Javascript for loops rather than using the TypedArray.set API. ObjectId serialization performance is 1.5x-2x faster.

Improved the performance of serializing and deserializing doubles and bigints

We now use bit shifting and multiplication operators in place of DataView getX/setX calls to parse and serialize bigints and a Float64Array to convert a double to bytes. This change has been shown to increase deserializing performance ~1.3x and serializing performance ~1.75x.

Use allocUnsafe for ObjectIds and Decimal128

For small allocations Node.js performance can be improved by using pre-allocated pooled memory. ObjectIds and Decimal128 instance will now use allocUnsafe on Node.js.

Features

  • NODE-5909: optimize writing basic latin strings (#645) (ec51256)

Bug Fixes

  • NODE-5873: objectId symbol property not defined on instances from cross cjs and mjs (#643) (4d9884d)

... (truncated)

Changelog

Sourced from bson's changelog.

6.4.0 (2024-02-29)

Features

  • NODE-5909: optimize writing basic latin strings (#645) (ec51256)

Bug Fixes

  • NODE-5873: objectId symbol property not defined on instances from cross cjs and mjs (#643) (4d9884d)

Performance Improvements

  • NODE-5557: move DataView and Set allocation used for double parsing and utf8 validation to nested path (#611) (9a150e1)
  • NODE-5910: optimize small byte copies (#651) (24d035e)
  • NODE-5934: replace DataView uses with bit math (#649) (6d343ab)
  • NODE-5955: use pooled memory when possible (#653) (78c4264)

6.3.0 (2024-01-31)

Features

  • NODE-3034: deprecate number as an input to ObjectId constructor (#640) (44bec19)
  • NODE-5861: optimize parsing basic latin strings (#642) (cdb779b)

6.2.0 (2023-10-16)

Features

  • NODE-5040: add color to BSON inspect (#635) (7802c66)

Bug Fixes

  • NODE-5640: BsonVersionError improve message clarity (#629) (eb98b8c)

6.1.0 (2023-09-12)

Features

  • NODE-5594: add Decimal128.fromStringWithRounding() static method (#617) (6fee2d5)

Bug Fixes

... (truncated)

Commits
  • b64e912 chore(main): release 6.4.0 [skip-ci] (#644)
  • 78c4264 perf(NODE-5955): use pooled memory when possible (#653)
  • 6d343ab perf(NODE-5934): replace DataView uses with bit math (#649)
  • 24d035e perf(NODE-5910): optimize small byte copies (#651)
  • f53db84 chore(NODE-5830): update js-bson dependencies (#648)
  • 9a150e1 perf(NODE-5557): move DataView and Set allocation used for double parsing and...
  • ec51256 feat(NODE-5909): optimize writing basic latin strings (#645)
  • 22e9b6e test(NODE-5922): replace hardcoded reference to bson#main (#647)
  • e18b774 ci(NODE-5899): remove unneeded stats from benchmark results (#646)
  • 4d9884d fix(NODE-5873): objectId symbol property not defined on instances from cross ...
  • Additional commits viewable in compare view
Maintainer changes

This version was pushed to npm by dbx-node, a new releaser for bson since your current version.


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
dependabot[bot] commented 3 months ago

Superseded by #454.