Breaking: Changed ES target from ES5 to ES2018 (affected environments probably already didn't support matter.js)
Feature (vilic): Added project references and additional tsconfigs to support standard tsc development workflows
Enhance: Optimizing build speed
Enhance: matter-node-ble.js is published as CJS/ESM hybrid package
Enhance: matter-node.js-examples is published as ESM module
Matter-Core functionality:
Breaking: QrCodes are not longer pre-rendered, but can be generated by QrCode.get() (from schema export),see examples
Fix: Handles event data correctly on subscription initially and also on updates to trigger the listeners
Fix (vilic): Adjust network interface handling for Windows to use the zone id instead of network interface name
Enhance (vilic): Added MDNS Memberships to sockets for better operation on Windows and other platforms
Enhance: Refactor session management and make sure also controller handle session close requests from devices
Enhance: Refactor close handing for exchanges and channels to make sure they are closed correctly
Feature: Added detection of missing Subscription updates from a device and allow to react to such a timeout with callback
Feature: Added generation method for random passcodes to PaseClient
Feature: Generalized Discovery logic and allow discoveries via different methods (BLE+IP) in parallel
Feature: Added functionality to clear session contexts including data in sub-contexts or not
Feature: Enhance discovery methods to allow continuous discovery for operational devices
matter.js API:
Breaking: Rename resetStorage() on CommissioningServer to factoryReset() and add logic to restart the device if currently running
Breaking: Restructure the CommissioningController to allow pairing with multiple nodes
Adjusts some property and structure namings to be more consistent
Introducing class PairedNode with the High level API for a paired Node
Restructured CommissioningController to handle multiple nodes and offer new high level API
Changed name of the unique storage id for servers or controllers added to MatterServer to "uniqueStorageKey"
Adjusted subscription callbacks to also provide the nodeId of the affected device reporting the changes to allow callbacks to be used generically when connecting to all nodes
Introduces a node state information callback to inform about the connection status but also when the node structure changed (for bridges) or such.
Breaking: Deprecated the option "mdnsAnnounceInterface" and replaced by "mdnsInterface" and now used to limit announcements and scanning to a specific interface
Breaking: Makes sure that also nodes added to a MatterServer after it was started are also started to behave the same. "add" methods are now async.
Feature: Enhanced CommissioningServer API and CommissioningController for improved practical usage
Feature: Makes Port for CommissioningServer optional and add automatic port handling in MatterServer
Feature: Allows removal of Controller or Server instances from Matter server, optionally with deleting the storage
Enhance: Makes passcode and discriminator for CommissioningServer optional and randomly generate them if not provided
matter-node-shell.js
Feature: Completely refactored and enhances shell to support commissioning, identify and many more new commands. See Readme, try it
matter-node.js-examples
Breaking: Rename parameter -announceinterface to -netinterface and use for announcements and scanning