@matter/protocol 0.16.0-alpha.0-20250807-37b08c9bb → 0.16.0-alpha.0-20250810-5c91a95d2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/advertisement/Advertisement.d.ts +119 -0
- package/dist/cjs/advertisement/Advertisement.d.ts.map +1 -0
- package/dist/cjs/advertisement/Advertisement.js +267 -0
- package/dist/cjs/advertisement/Advertisement.js.map +6 -0
- package/dist/cjs/advertisement/Advertiser.d.ts +50 -0
- package/dist/cjs/advertisement/Advertiser.d.ts.map +1 -0
- package/dist/cjs/advertisement/Advertiser.js +81 -0
- package/dist/cjs/advertisement/Advertiser.js.map +6 -0
- package/dist/cjs/advertisement/CommissioningMode.d.ts +11 -0
- package/dist/cjs/advertisement/CommissioningMode.d.ts.map +1 -0
- package/dist/cjs/advertisement/CommissioningMode.js +35 -0
- package/dist/cjs/advertisement/CommissioningMode.js.map +6 -0
- package/dist/cjs/{common/InstanceBroadcaster.d.ts → advertisement/PairingHintBitmap.d.ts} +3 -69
- package/dist/cjs/advertisement/PairingHintBitmap.d.ts.map +1 -0
- package/dist/cjs/{common/InstanceBroadcaster.js → advertisement/PairingHintBitmap.js} +5 -12
- package/dist/cjs/advertisement/PairingHintBitmap.js.map +6 -0
- package/dist/cjs/advertisement/ServiceDescription.d.ts +70 -0
- package/dist/cjs/advertisement/ServiceDescription.d.ts.map +1 -0
- package/dist/cjs/advertisement/ServiceDescription.js +61 -0
- package/dist/cjs/advertisement/ServiceDescription.js.map +6 -0
- package/dist/cjs/advertisement/ble/BleAdvertisement.d.ts +16 -0
- package/dist/cjs/advertisement/ble/BleAdvertisement.d.ts.map +1 -0
- package/dist/cjs/advertisement/ble/BleAdvertisement.js +85 -0
- package/dist/cjs/advertisement/ble/BleAdvertisement.js.map +6 -0
- package/dist/cjs/advertisement/ble/BleAdvertiser.d.ts +66 -0
- package/dist/cjs/advertisement/ble/BleAdvertiser.d.ts.map +1 -0
- package/dist/cjs/advertisement/ble/BleAdvertiser.js +83 -0
- package/dist/cjs/advertisement/ble/BleAdvertiser.js.map +6 -0
- package/dist/cjs/advertisement/ble/index.d.ts +8 -0
- package/dist/cjs/advertisement/ble/index.d.ts.map +1 -0
- package/dist/cjs/advertisement/ble/index.js +25 -0
- package/dist/cjs/advertisement/ble/index.js.map +6 -0
- package/dist/cjs/advertisement/index.d.ts +13 -0
- package/dist/cjs/advertisement/index.d.ts.map +1 -0
- package/dist/cjs/advertisement/index.js +30 -0
- package/dist/cjs/advertisement/index.js.map +6 -0
- package/dist/cjs/advertisement/mdns/CommissionableMdnsAdvertisement.d.ts +21 -0
- package/dist/cjs/advertisement/mdns/CommissionableMdnsAdvertisement.d.ts.map +1 -0
- package/dist/cjs/advertisement/mdns/CommissionableMdnsAdvertisement.js +104 -0
- package/dist/cjs/advertisement/mdns/CommissionableMdnsAdvertisement.js.map +6 -0
- package/dist/cjs/advertisement/mdns/CommissionerMdnsAdvertisement.d.ts +20 -0
- package/dist/cjs/advertisement/mdns/CommissionerMdnsAdvertisement.d.ts.map +1 -0
- package/dist/cjs/advertisement/mdns/CommissionerMdnsAdvertisement.js +70 -0
- package/dist/cjs/advertisement/mdns/CommissionerMdnsAdvertisement.js.map +6 -0
- package/dist/cjs/advertisement/mdns/MdnsAdvertisement.d.ts +40 -0
- package/dist/cjs/advertisement/mdns/MdnsAdvertisement.d.ts.map +1 -0
- package/dist/cjs/advertisement/mdns/MdnsAdvertisement.js +145 -0
- package/dist/cjs/advertisement/mdns/MdnsAdvertisement.js.map +6 -0
- package/dist/cjs/advertisement/mdns/MdnsAdvertiser.d.ts +99 -0
- package/dist/cjs/advertisement/mdns/MdnsAdvertiser.d.ts.map +1 -0
- package/dist/cjs/advertisement/mdns/MdnsAdvertiser.js +166 -0
- package/dist/cjs/advertisement/mdns/MdnsAdvertiser.js.map +6 -0
- package/dist/cjs/advertisement/mdns/OperationalMdnsAdvertisement.d.ts +18 -0
- package/dist/cjs/advertisement/mdns/OperationalMdnsAdvertisement.d.ts.map +1 -0
- package/dist/cjs/advertisement/mdns/OperationalMdnsAdvertisement.js +55 -0
- package/dist/cjs/advertisement/mdns/OperationalMdnsAdvertisement.js.map +6 -0
- package/dist/cjs/advertisement/mdns/index.d.ts +11 -0
- package/dist/cjs/advertisement/mdns/index.d.ts.map +1 -0
- package/dist/cjs/advertisement/mdns/index.js +28 -0
- package/dist/cjs/advertisement/mdns/index.js.map +6 -0
- package/dist/cjs/ble/Ble.d.ts +7 -5
- package/dist/cjs/ble/Ble.d.ts.map +1 -1
- package/dist/cjs/ble/Ble.js.map +1 -1
- package/dist/cjs/codec/BtpCodec.d.ts +1 -1
- package/dist/cjs/codec/BtpCodec.d.ts.map +1 -1
- package/dist/cjs/codec/BtpCodec.js +4 -4
- package/dist/cjs/codec/BtpCodec.js.map +1 -1
- package/dist/cjs/common/Scanner.d.ts +1 -25
- package/dist/cjs/common/Scanner.d.ts.map +1 -1
- package/dist/cjs/common/Scanner.js +1 -18
- package/dist/cjs/common/Scanner.js.map +1 -1
- package/dist/cjs/common/SupportedTransportsBitmap.d.ts +33 -0
- package/dist/cjs/common/SupportedTransportsBitmap.d.ts.map +1 -0
- package/dist/cjs/common/SupportedTransportsBitmap.js +45 -0
- package/dist/cjs/common/SupportedTransportsBitmap.js.map +6 -0
- package/dist/cjs/common/index.d.ts +1 -1
- package/dist/cjs/common/index.d.ts.map +1 -1
- package/dist/cjs/common/index.js +1 -1
- package/dist/cjs/common/index.js.map +1 -1
- package/dist/cjs/fabric/Fabric.d.ts +1 -0
- package/dist/cjs/fabric/Fabric.d.ts.map +1 -1
- package/dist/cjs/fabric/Fabric.js +7 -0
- package/dist/cjs/fabric/Fabric.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/{esm/mdns/MdnsScanner.d.ts → cjs/mdns/MdnsClient.d.ts} +11 -14
- package/dist/cjs/mdns/MdnsClient.d.ts.map +1 -0
- package/dist/cjs/mdns/{MdnsScanner.js → MdnsClient.js} +35 -90
- package/dist/cjs/mdns/MdnsClient.js.map +6 -0
- package/dist/cjs/mdns/MdnsConsts.d.ts +11 -2
- package/dist/cjs/mdns/MdnsConsts.d.ts.map +1 -1
- package/dist/cjs/mdns/MdnsConsts.js +31 -4
- package/dist/cjs/mdns/MdnsConsts.js.map +1 -1
- package/dist/cjs/mdns/MdnsServer.d.ts +13 -22
- package/dist/cjs/mdns/MdnsServer.d.ts.map +1 -1
- package/dist/cjs/mdns/MdnsServer.js +55 -140
- package/dist/cjs/mdns/MdnsServer.js.map +2 -2
- package/dist/cjs/mdns/MdnsService.d.ts +4 -5
- package/dist/cjs/mdns/MdnsService.d.ts.map +1 -1
- package/dist/cjs/mdns/MdnsService.js +22 -23
- package/dist/cjs/mdns/MdnsService.js.map +1 -1
- package/dist/cjs/mdns/MdnsSocket.d.ts +32 -0
- package/dist/cjs/mdns/MdnsSocket.d.ts.map +1 -0
- package/dist/cjs/mdns/MdnsSocket.js +144 -0
- package/dist/cjs/mdns/MdnsSocket.js.map +6 -0
- package/dist/cjs/mdns/index.d.ts +2 -3
- package/dist/cjs/mdns/index.d.ts.map +1 -1
- package/dist/cjs/mdns/index.js +2 -3
- package/dist/cjs/mdns/index.js.map +1 -1
- package/dist/cjs/peer/ControllerCommissioner.js +2 -2
- package/dist/cjs/peer/ControllerCommissioner.js.map +1 -1
- package/dist/cjs/peer/ControllerDiscovery.d.ts +3 -3
- package/dist/cjs/peer/ControllerDiscovery.d.ts.map +1 -1
- package/dist/cjs/peer/ControllerDiscovery.js.map +1 -1
- package/dist/cjs/peer/PeerSet.d.ts.map +1 -1
- package/dist/cjs/peer/PeerSet.js +10 -5
- package/dist/cjs/peer/PeerSet.js.map +1 -1
- package/dist/cjs/protocol/DeviceAdvertiser.d.ts +23 -18
- package/dist/cjs/protocol/DeviceAdvertiser.d.ts.map +1 -1
- package/dist/cjs/protocol/DeviceAdvertiser.js +130 -129
- package/dist/cjs/protocol/DeviceAdvertiser.js.map +1 -1
- package/dist/cjs/protocol/DeviceCommissioner.d.ts +0 -1
- package/dist/cjs/protocol/DeviceCommissioner.d.ts.map +1 -1
- package/dist/cjs/protocol/DeviceCommissioner.js +44 -44
- package/dist/cjs/protocol/DeviceCommissioner.js.map +1 -1
- package/dist/cjs/protocol/ExchangeManager.js +1 -1
- package/dist/cjs/protocol/ExchangeManager.js.map +1 -1
- package/dist/cjs/protocol/MessageExchange.d.ts +1 -1
- package/dist/cjs/protocol/MessageExchange.d.ts.map +1 -1
- package/dist/cjs/protocol/MessageExchange.js +6 -8
- package/dist/cjs/protocol/MessageExchange.js.map +1 -1
- package/dist/cjs/session/NodeSession.d.ts +1 -0
- package/dist/cjs/session/NodeSession.d.ts.map +1 -1
- package/dist/cjs/session/NodeSession.js +3 -0
- package/dist/cjs/session/NodeSession.js.map +1 -1
- package/dist/cjs/session/Session.d.ts +3 -33
- package/dist/cjs/session/Session.d.ts.map +1 -1
- package/dist/cjs/session/Session.js +4 -9
- package/dist/cjs/session/Session.js.map +1 -1
- package/dist/cjs/session/SessionIntervals.d.ts +36 -0
- package/dist/cjs/session/SessionIntervals.d.ts.map +1 -0
- package/dist/cjs/session/SessionIntervals.js +51 -0
- package/dist/cjs/session/SessionIntervals.js.map +6 -0
- package/dist/cjs/session/SessionManager.d.ts +1 -1
- package/dist/cjs/session/SessionManager.d.ts.map +1 -1
- package/dist/cjs/session/SessionManager.js +11 -12
- package/dist/cjs/session/SessionManager.js.map +1 -1
- package/dist/cjs/session/pase/PaseMessages.js +2 -2
- package/dist/cjs/session/pase/PaseMessages.js.map +1 -1
- package/dist/esm/advertisement/Advertisement.d.ts +119 -0
- package/dist/esm/advertisement/Advertisement.d.ts.map +1 -0
- package/dist/esm/advertisement/Advertisement.js +247 -0
- package/dist/esm/advertisement/Advertisement.js.map +6 -0
- package/dist/esm/advertisement/Advertiser.d.ts +50 -0
- package/dist/esm/advertisement/Advertiser.d.ts.map +1 -0
- package/dist/esm/advertisement/Advertiser.js +61 -0
- package/dist/esm/advertisement/Advertiser.js.map +6 -0
- package/dist/esm/advertisement/CommissioningMode.d.ts +11 -0
- package/dist/esm/advertisement/CommissioningMode.d.ts.map +1 -0
- package/dist/esm/advertisement/CommissioningMode.js +15 -0
- package/dist/esm/advertisement/CommissioningMode.js.map +6 -0
- package/dist/esm/{common/InstanceBroadcaster.d.ts → advertisement/PairingHintBitmap.d.ts} +3 -69
- package/dist/esm/advertisement/PairingHintBitmap.d.ts.map +1 -0
- package/dist/esm/{common/InstanceBroadcaster.js → advertisement/PairingHintBitmap.js} +2 -9
- package/dist/esm/{common/InstanceBroadcaster.js.map → advertisement/PairingHintBitmap.js.map} +3 -3
- package/dist/esm/advertisement/ServiceDescription.d.ts +70 -0
- package/dist/esm/advertisement/ServiceDescription.d.ts.map +1 -0
- package/dist/esm/advertisement/ServiceDescription.js +41 -0
- package/dist/esm/advertisement/ServiceDescription.js.map +6 -0
- package/dist/esm/advertisement/ble/BleAdvertisement.d.ts +16 -0
- package/dist/esm/advertisement/ble/BleAdvertisement.d.ts.map +1 -0
- package/dist/esm/advertisement/ble/BleAdvertisement.js +65 -0
- package/dist/esm/advertisement/ble/BleAdvertisement.js.map +6 -0
- package/dist/esm/advertisement/ble/BleAdvertiser.d.ts +66 -0
- package/dist/esm/advertisement/ble/BleAdvertiser.d.ts.map +1 -0
- package/dist/esm/advertisement/ble/BleAdvertiser.js +63 -0
- package/dist/esm/advertisement/ble/BleAdvertiser.js.map +6 -0
- package/dist/esm/advertisement/ble/index.d.ts +8 -0
- package/dist/esm/advertisement/ble/index.d.ts.map +1 -0
- package/dist/esm/advertisement/ble/index.js +8 -0
- package/dist/esm/advertisement/ble/index.js.map +6 -0
- package/dist/esm/advertisement/index.d.ts +13 -0
- package/dist/esm/advertisement/index.d.ts.map +1 -0
- package/dist/esm/advertisement/index.js +13 -0
- package/dist/esm/advertisement/index.js.map +6 -0
- package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.d.ts +21 -0
- package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.d.ts.map +1 -0
- package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.js +95 -0
- package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.js.map +6 -0
- package/dist/esm/advertisement/mdns/CommissionerMdnsAdvertisement.d.ts +20 -0
- package/dist/esm/advertisement/mdns/CommissionerMdnsAdvertisement.d.ts.map +1 -0
- package/dist/esm/advertisement/mdns/CommissionerMdnsAdvertisement.js +54 -0
- package/dist/esm/advertisement/mdns/CommissionerMdnsAdvertisement.js.map +6 -0
- package/dist/esm/advertisement/mdns/MdnsAdvertisement.d.ts +40 -0
- package/dist/esm/advertisement/mdns/MdnsAdvertisement.d.ts.map +1 -0
- package/dist/esm/advertisement/mdns/MdnsAdvertisement.js +125 -0
- package/dist/esm/advertisement/mdns/MdnsAdvertisement.js.map +6 -0
- package/dist/esm/advertisement/mdns/MdnsAdvertiser.d.ts +99 -0
- package/dist/esm/advertisement/mdns/MdnsAdvertiser.d.ts.map +1 -0
- package/dist/esm/advertisement/mdns/MdnsAdvertiser.js +146 -0
- package/dist/esm/advertisement/mdns/MdnsAdvertiser.js.map +6 -0
- package/dist/esm/advertisement/mdns/OperationalMdnsAdvertisement.d.ts +18 -0
- package/dist/esm/advertisement/mdns/OperationalMdnsAdvertisement.d.ts.map +1 -0
- package/dist/esm/advertisement/mdns/OperationalMdnsAdvertisement.js +40 -0
- package/dist/esm/advertisement/mdns/OperationalMdnsAdvertisement.js.map +6 -0
- package/dist/esm/advertisement/mdns/index.d.ts +11 -0
- package/dist/esm/advertisement/mdns/index.d.ts.map +1 -0
- package/dist/esm/advertisement/mdns/index.js +11 -0
- package/dist/esm/advertisement/mdns/index.js.map +6 -0
- package/dist/esm/ble/Ble.d.ts +7 -5
- package/dist/esm/ble/Ble.d.ts.map +1 -1
- package/dist/esm/ble/Ble.js.map +1 -1
- package/dist/esm/codec/BtpCodec.d.ts +1 -1
- package/dist/esm/codec/BtpCodec.d.ts.map +1 -1
- package/dist/esm/codec/BtpCodec.js +4 -4
- package/dist/esm/codec/BtpCodec.js.map +1 -1
- package/dist/esm/common/Scanner.d.ts +1 -25
- package/dist/esm/common/Scanner.d.ts.map +1 -1
- package/dist/esm/common/Scanner.js +1 -18
- package/dist/esm/common/Scanner.js.map +1 -1
- package/dist/esm/common/SupportedTransportsBitmap.d.ts +33 -0
- package/dist/esm/common/SupportedTransportsBitmap.d.ts.map +1 -0
- package/dist/esm/common/SupportedTransportsBitmap.js +25 -0
- package/dist/esm/common/SupportedTransportsBitmap.js.map +6 -0
- package/dist/esm/common/index.d.ts +1 -1
- package/dist/esm/common/index.d.ts.map +1 -1
- package/dist/esm/common/index.js +1 -1
- package/dist/esm/fabric/Fabric.d.ts +1 -0
- package/dist/esm/fabric/Fabric.d.ts.map +1 -1
- package/dist/esm/fabric/Fabric.js +7 -0
- package/dist/esm/fabric/Fabric.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/{cjs/mdns/MdnsScanner.d.ts → esm/mdns/MdnsClient.d.ts} +11 -14
- package/dist/esm/mdns/MdnsClient.d.ts.map +1 -0
- package/dist/esm/mdns/{MdnsScanner.js → MdnsClient.js} +34 -92
- package/dist/esm/mdns/MdnsClient.js.map +6 -0
- package/dist/esm/mdns/MdnsConsts.d.ts +11 -2
- package/dist/esm/mdns/MdnsConsts.d.ts.map +1 -1
- package/dist/esm/mdns/MdnsConsts.js +31 -4
- package/dist/esm/mdns/MdnsConsts.js.map +1 -1
- package/dist/esm/mdns/MdnsServer.d.ts +13 -22
- package/dist/esm/mdns/MdnsServer.d.ts.map +1 -1
- package/dist/esm/mdns/MdnsServer.js +57 -145
- package/dist/esm/mdns/MdnsServer.js.map +2 -2
- package/dist/esm/mdns/MdnsService.d.ts +4 -5
- package/dist/esm/mdns/MdnsService.d.ts.map +1 -1
- package/dist/esm/mdns/MdnsService.js +22 -24
- package/dist/esm/mdns/MdnsService.js.map +1 -1
- package/dist/esm/mdns/MdnsSocket.d.ts +32 -0
- package/dist/esm/mdns/MdnsSocket.d.ts.map +1 -0
- package/dist/esm/mdns/MdnsSocket.js +133 -0
- package/dist/esm/mdns/MdnsSocket.js.map +6 -0
- package/dist/esm/mdns/index.d.ts +2 -3
- package/dist/esm/mdns/index.d.ts.map +1 -1
- package/dist/esm/mdns/index.js +2 -3
- package/dist/esm/mdns/index.js.map +1 -1
- package/dist/esm/peer/ControllerCommissioner.js +2 -2
- package/dist/esm/peer/ControllerCommissioner.js.map +1 -1
- package/dist/esm/peer/ControllerDiscovery.d.ts +3 -3
- package/dist/esm/peer/ControllerDiscovery.d.ts.map +1 -1
- package/dist/esm/peer/ControllerDiscovery.js.map +1 -1
- package/dist/esm/peer/PeerSet.d.ts.map +1 -1
- package/dist/esm/peer/PeerSet.js +10 -5
- package/dist/esm/peer/PeerSet.js.map +1 -1
- package/dist/esm/protocol/DeviceAdvertiser.d.ts +23 -18
- package/dist/esm/protocol/DeviceAdvertiser.d.ts.map +1 -1
- package/dist/esm/protocol/DeviceAdvertiser.js +131 -139
- package/dist/esm/protocol/DeviceAdvertiser.js.map +1 -1
- package/dist/esm/protocol/DeviceCommissioner.d.ts +0 -1
- package/dist/esm/protocol/DeviceCommissioner.d.ts.map +1 -1
- package/dist/esm/protocol/DeviceCommissioner.js +47 -47
- package/dist/esm/protocol/DeviceCommissioner.js.map +1 -1
- package/dist/esm/protocol/ExchangeManager.js +1 -1
- package/dist/esm/protocol/ExchangeManager.js.map +1 -1
- package/dist/esm/protocol/MessageExchange.d.ts +1 -1
- package/dist/esm/protocol/MessageExchange.d.ts.map +1 -1
- package/dist/esm/protocol/MessageExchange.js +6 -12
- package/dist/esm/protocol/MessageExchange.js.map +1 -1
- package/dist/esm/session/NodeSession.d.ts +1 -0
- package/dist/esm/session/NodeSession.d.ts.map +1 -1
- package/dist/esm/session/NodeSession.js +3 -0
- package/dist/esm/session/NodeSession.js.map +1 -1
- package/dist/esm/session/Session.d.ts +3 -33
- package/dist/esm/session/Session.d.ts.map +1 -1
- package/dist/esm/session/Session.js +4 -9
- package/dist/esm/session/Session.js.map +1 -1
- package/dist/esm/session/SessionIntervals.d.ts +36 -0
- package/dist/esm/session/SessionIntervals.d.ts.map +1 -0
- package/dist/esm/session/SessionIntervals.js +31 -0
- package/dist/esm/session/SessionIntervals.js.map +6 -0
- package/dist/esm/session/SessionManager.d.ts +1 -1
- package/dist/esm/session/SessionManager.d.ts.map +1 -1
- package/dist/esm/session/SessionManager.js +10 -14
- package/dist/esm/session/SessionManager.js.map +1 -1
- package/dist/esm/session/pase/PaseMessages.js +1 -1
- package/package.json +9 -9
- package/src/advertisement/Advertisement.ts +348 -0
- package/src/advertisement/Advertiser.ts +83 -0
- package/src/advertisement/CommissioningMode.ts +11 -0
- package/src/{common/InstanceBroadcaster.ts → advertisement/PairingHintBitmap.ts} +1 -92
- package/src/advertisement/ServiceDescription.ts +110 -0
- package/src/advertisement/ble/BleAdvertisement.ts +90 -0
- package/src/advertisement/ble/BleAdvertiser.ts +116 -0
- package/src/advertisement/ble/index.ts +8 -0
- package/src/advertisement/index.ts +13 -0
- package/src/advertisement/mdns/CommissionableMdnsAdvertisement.ts +118 -0
- package/src/advertisement/mdns/CommissionerMdnsAdvertisement.ts +73 -0
- package/src/advertisement/mdns/MdnsAdvertisement.ts +167 -0
- package/src/advertisement/mdns/MdnsAdvertiser.ts +248 -0
- package/src/advertisement/mdns/OperationalMdnsAdvertisement.ts +50 -0
- package/src/advertisement/mdns/index.ts +11 -0
- package/src/ble/Ble.ts +8 -5
- package/src/codec/BtpCodec.ts +4 -3
- package/src/common/Scanner.ts +1 -17
- package/src/common/SupportedTransportsBitmap.ts +25 -0
- package/src/common/index.ts +1 -1
- package/src/fabric/Fabric.ts +8 -0
- package/src/index.ts +1 -0
- package/src/mdns/{MdnsScanner.ts → MdnsClient.ts} +34 -103
- package/src/mdns/MdnsConsts.ts +27 -2
- package/src/mdns/MdnsServer.ts +79 -184
- package/src/mdns/MdnsService.ts +24 -27
- package/src/mdns/MdnsSocket.ts +179 -0
- package/src/mdns/index.ts +2 -3
- package/src/peer/ControllerCommissioner.ts +2 -2
- package/src/peer/ControllerDiscovery.ts +3 -3
- package/src/peer/PeerSet.ts +15 -9
- package/src/protocol/DeviceAdvertiser.ts +161 -151
- package/src/protocol/DeviceCommissioner.ts +65 -75
- package/src/protocol/ExchangeManager.ts +1 -1
- package/src/protocol/MessageExchange.ts +8 -14
- package/src/session/NodeSession.ts +4 -0
- package/src/session/Session.ts +6 -42
- package/src/session/SessionIntervals.ts +57 -0
- package/src/session/SessionManager.ts +9 -13
- package/src/session/pase/PaseMessages.ts +1 -1
- package/dist/cjs/common/InstanceBroadcaster.d.ts.map +0 -1
- package/dist/cjs/common/InstanceBroadcaster.js.map +0 -6
- package/dist/cjs/mdns/MdnsBroadcaster.d.ts +0 -34
- package/dist/cjs/mdns/MdnsBroadcaster.d.ts.map +0 -1
- package/dist/cjs/mdns/MdnsBroadcaster.js +0 -365
- package/dist/cjs/mdns/MdnsBroadcaster.js.map +0 -6
- package/dist/cjs/mdns/MdnsInstanceBroadcaster.d.ts +0 -28
- package/dist/cjs/mdns/MdnsInstanceBroadcaster.d.ts.map +0 -1
- package/dist/cjs/mdns/MdnsInstanceBroadcaster.js +0 -87
- package/dist/cjs/mdns/MdnsInstanceBroadcaster.js.map +0 -6
- package/dist/cjs/mdns/MdnsScanner.d.ts.map +0 -1
- package/dist/cjs/mdns/MdnsScanner.js.map +0 -6
- package/dist/esm/common/InstanceBroadcaster.d.ts.map +0 -1
- package/dist/esm/mdns/MdnsBroadcaster.d.ts +0 -34
- package/dist/esm/mdns/MdnsBroadcaster.d.ts.map +0 -1
- package/dist/esm/mdns/MdnsBroadcaster.js +0 -378
- package/dist/esm/mdns/MdnsBroadcaster.js.map +0 -6
- package/dist/esm/mdns/MdnsInstanceBroadcaster.d.ts +0 -28
- package/dist/esm/mdns/MdnsInstanceBroadcaster.d.ts.map +0 -1
- package/dist/esm/mdns/MdnsInstanceBroadcaster.js +0 -67
- package/dist/esm/mdns/MdnsInstanceBroadcaster.js.map +0 -6
- package/dist/esm/mdns/MdnsScanner.d.ts.map +0 -1
- package/dist/esm/mdns/MdnsScanner.js.map +0 -6
- package/src/mdns/MdnsBroadcaster.ts +0 -451
- package/src/mdns/MdnsInstanceBroadcaster.ts +0 -88
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { Advertiser } from "#advertisement/Advertiser.js";
|
|
8
|
+
import { ServiceDescription } from "#advertisement/ServiceDescription.js";
|
|
9
|
+
import { Bytes, Crypto, ImplementationError, InternalError, RetrySchedule, STANDARD_MATTER_PORT } from "#general";
|
|
10
|
+
import type { MdnsServer } from "#mdns/MdnsServer.js";
|
|
11
|
+
import { DatatypeModel, FieldElement } from "#model";
|
|
12
|
+
import { MAXIMUM_COMMISSIONING_TIMEOUT_S } from "#types";
|
|
13
|
+
import { CommissionableMdnsAdvertisement } from "./CommissionableMdnsAdvertisement.js";
|
|
14
|
+
import { CommissionerMdnsAdvertisement } from "./CommissionerMdnsAdvertisement.js";
|
|
15
|
+
import type { MdnsAdvertisement } from "./MdnsAdvertisement.js";
|
|
16
|
+
import { OperationalMdnsAdvertisement } from "./OperationalMdnsAdvertisement.js";
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* An {@link Advertiser} that advertises using an in-process MDNS implementation.
|
|
20
|
+
*/
|
|
21
|
+
export class MdnsAdvertiser extends Advertiser {
|
|
22
|
+
readonly port: number;
|
|
23
|
+
readonly omitPrivateDetails: boolean;
|
|
24
|
+
|
|
25
|
+
#schedules = new Array<{ config: MdnsAdvertiser.BroadcastSchedule; schedule?: RetrySchedule }>();
|
|
26
|
+
|
|
27
|
+
constructor(
|
|
28
|
+
readonly crypto: Crypto,
|
|
29
|
+
readonly server: MdnsServer,
|
|
30
|
+
options?: MdnsAdvertiser.Options,
|
|
31
|
+
) {
|
|
32
|
+
super();
|
|
33
|
+
|
|
34
|
+
this.port = options?.port ?? STANDARD_MATTER_PORT;
|
|
35
|
+
this.omitPrivateDetails = options?.omitPrivateDetails ?? false;
|
|
36
|
+
|
|
37
|
+
let hasDefaultSchedule = false;
|
|
38
|
+
let hasRetransmitSchedule = false;
|
|
39
|
+
if (options?.schedules) {
|
|
40
|
+
for (const schedule of options.schedules) {
|
|
41
|
+
if (schedule.serviceKind === undefined) {
|
|
42
|
+
if (schedule.event === undefined) {
|
|
43
|
+
hasDefaultSchedule = true;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
if (schedule.event === "retransmit") {
|
|
47
|
+
hasRetransmitSchedule = true;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
this.#schedules.push({ config: schedule });
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
if (!hasRetransmitSchedule) {
|
|
56
|
+
this.#schedules.push({ config: MdnsAdvertiser.RetransmissionBroadcastSchedule });
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
if (!hasDefaultSchedule) {
|
|
60
|
+
this.#schedules.push({ config: MdnsAdvertiser.DefaultBroadcastSchedule });
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Create an advertisement for the specific service.
|
|
66
|
+
*/
|
|
67
|
+
override getAdvertisement(description: ServiceDescription): MdnsAdvertisement | undefined {
|
|
68
|
+
switch (description.kind) {
|
|
69
|
+
case "operational":
|
|
70
|
+
return (
|
|
71
|
+
(this.advertisementForFabric(description.fabric) as MdnsAdvertisement | undefined) ??
|
|
72
|
+
new OperationalMdnsAdvertisement(this, description)
|
|
73
|
+
);
|
|
74
|
+
|
|
75
|
+
case "commissionable":
|
|
76
|
+
return new CommissionableMdnsAdvertisement(this, description);
|
|
77
|
+
|
|
78
|
+
case "commissioner":
|
|
79
|
+
return new CommissionerMdnsAdvertisement(this, description);
|
|
80
|
+
|
|
81
|
+
default:
|
|
82
|
+
throw new ImplementationError(
|
|
83
|
+
`Unsupported service description kind "${(description as ServiceDescription).kind}`,
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Generate a random 8-byte Matter instance identifier.
|
|
90
|
+
*/
|
|
91
|
+
createInstanceId() {
|
|
92
|
+
return Bytes.toHex(this.crypto.randomBytes(8)).toUpperCase();
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Retrieve the broadcast schedule for a specific advertisement.
|
|
97
|
+
*/
|
|
98
|
+
broadcastScheduleFor(advertisement: MdnsAdvertisement, event?: Advertiser.BroadcastEvent) {
|
|
99
|
+
const entry = this.#scheduleFor(advertisement, event);
|
|
100
|
+
|
|
101
|
+
if (entry.schedule === undefined) {
|
|
102
|
+
entry.schedule = new RetrySchedule(
|
|
103
|
+
this.crypto,
|
|
104
|
+
RetrySchedule.Configuration(MdnsAdvertiser.DefaultBroadcastSchedule, entry.config),
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
return entry.schedule;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Retrieve broadcast configuration for a specific advertisement.
|
|
113
|
+
*/
|
|
114
|
+
broadcastConfigFor(advertisement: MdnsAdvertisement, event?: Advertiser.BroadcastEvent) {
|
|
115
|
+
return this.#scheduleFor(advertisement, event).config;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
#scheduleFor(advertisement: MdnsAdvertisement, event?: Advertiser.BroadcastEvent) {
|
|
119
|
+
if (!event) {
|
|
120
|
+
event = "startup";
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
for (const entry of this.#schedules) {
|
|
124
|
+
const { serviceKind, event: event2 } = entry.config;
|
|
125
|
+
|
|
126
|
+
if (serviceKind !== undefined && serviceKind !== advertisement.description.kind) {
|
|
127
|
+
continue;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
if (event2 !== undefined && event2 !== event) {
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
return entry;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
throw new InternalError("Default retry schedule not present");
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
export namespace MdnsAdvertiser {
|
|
142
|
+
/**
|
|
143
|
+
* MDNS advertisement configuration options.
|
|
144
|
+
*/
|
|
145
|
+
export interface Options {
|
|
146
|
+
/**
|
|
147
|
+
* The port of the Matter service to advertise.
|
|
148
|
+
*
|
|
149
|
+
* Defaults to 5540.
|
|
150
|
+
*/
|
|
151
|
+
readonly port?: number;
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Omit the vendor and product ID from announcements for privacy reasons.
|
|
155
|
+
*/
|
|
156
|
+
readonly omitPrivateDetails?: boolean;
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Broadcast schedule.
|
|
160
|
+
*
|
|
161
|
+
* These control the intervals at which the server broadcasts the advertisement. Note that order is important;
|
|
162
|
+
* more specific schedules should appear first.
|
|
163
|
+
*
|
|
164
|
+
* By default all broadcasts are configured using {@link DefaultBroadcastSchedule}.
|
|
165
|
+
*/
|
|
166
|
+
readonly schedules?: readonly BroadcastSchedule[];
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Schedule for automatic broadcasts.
|
|
171
|
+
*
|
|
172
|
+
* Schedules apply conditionally with {@link DefaultBroadcastSchedule} as the fallback.
|
|
173
|
+
*/
|
|
174
|
+
export interface BroadcastSchedule extends RetrySchedule.Configuration {
|
|
175
|
+
/**
|
|
176
|
+
* Limit this schedule to a particular service kind.
|
|
177
|
+
*/
|
|
178
|
+
readonly serviceKind?: ServiceDescription["kind"];
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Limit this schedule to initial broadcast or broadcast when reconnecting.
|
|
182
|
+
*/
|
|
183
|
+
readonly event?: Advertiser.BroadcastEvent;
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Extra time to broadcast after establishing an operational connection.
|
|
187
|
+
*
|
|
188
|
+
* Set to zero to terminate broadcast immediately after connection. If undefined broadcasts will continue until
|
|
189
|
+
* terminated by {@link timeout} or {@link maximumCount}.
|
|
190
|
+
*/
|
|
191
|
+
readonly broadcastAfterConnection?: number;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Default schedule for automatic broadcast.
|
|
196
|
+
*/
|
|
197
|
+
export const DefaultBroadcastSchedule: BroadcastSchedule = {
|
|
198
|
+
// Mandated by MDNS specification
|
|
199
|
+
initialInterval: 1_000,
|
|
200
|
+
|
|
201
|
+
// Maximum commissioning timeout per Matter specification 5.4.2.3.1, although
|
|
202
|
+
timeout: MAXIMUM_COMMISSIONING_TIMEOUT_S * 1000,
|
|
203
|
+
|
|
204
|
+
// Minimum per MDNS specification
|
|
205
|
+
backoffFactor: 2,
|
|
206
|
+
|
|
207
|
+
// Technically this may result in us emitting more than 8 packets which is the maximum per the MDNS
|
|
208
|
+
// specification but extra packets will only come every 90 seconds
|
|
209
|
+
maximumInterval: 90_000,
|
|
210
|
+
|
|
211
|
+
// Not in any specification AFAIK but common sense to reduce thundering herd
|
|
212
|
+
jitterFactor: 0.25,
|
|
213
|
+
|
|
214
|
+
// Generally operational broadcast is unnecessary once an operational connection is established
|
|
215
|
+
broadcastAfterConnection: 0,
|
|
216
|
+
};
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* Default schedule for retransmission broadcast.
|
|
220
|
+
*/
|
|
221
|
+
export const RetransmissionBroadcastSchedule: BroadcastSchedule = {
|
|
222
|
+
event: "retransmit",
|
|
223
|
+
|
|
224
|
+
// Retransmission events occur for every packet retry so limit count to 1
|
|
225
|
+
maximumCount: 1,
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Data model for MDNS advertiser configuration.
|
|
230
|
+
*/
|
|
231
|
+
export const OptionsSchema = new DatatypeModel(
|
|
232
|
+
{ name: "MdnsAdvertiserOptions", type: "struct" },
|
|
233
|
+
FieldElement({ name: "omitPrivateDetails", type: "bool" }),
|
|
234
|
+
FieldElement(
|
|
235
|
+
{ name: "schedules", type: "list" },
|
|
236
|
+
FieldElement(
|
|
237
|
+
{ name: "entry", type: "struct" },
|
|
238
|
+
FieldElement({ name: "initialInterval", type: "uint32" }),
|
|
239
|
+
FieldElement({ name: "timeout", type: "uint32" }),
|
|
240
|
+
FieldElement({ name: "backoffFactor", type: "uint8" }),
|
|
241
|
+
FieldElement({ name: "maximumInterval", type: "uint32" }),
|
|
242
|
+
FieldElement({ name: "jitterFactor", type: "single" }),
|
|
243
|
+
FieldElement({ name: "serviceKind", type: "string" }),
|
|
244
|
+
FieldElement({ name: "event", type: "string" }),
|
|
245
|
+
),
|
|
246
|
+
),
|
|
247
|
+
);
|
|
248
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import type { Advertisement } from "#advertisement/Advertisement.js";
|
|
8
|
+
import { ServiceDescription } from "#advertisement/ServiceDescription.js";
|
|
9
|
+
import { Bytes, PtrRecord } from "#general";
|
|
10
|
+
import {
|
|
11
|
+
getFabricQname,
|
|
12
|
+
getOperationalDeviceQname,
|
|
13
|
+
MATTER_SERVICE_QNAME,
|
|
14
|
+
SERVICE_DISCOVERY_QNAME,
|
|
15
|
+
} from "#mdns/MdnsConsts.js";
|
|
16
|
+
import { NodeId } from "#types";
|
|
17
|
+
import { MdnsAdvertisement } from "./MdnsAdvertisement.js";
|
|
18
|
+
import type { MdnsAdvertiser } from "./MdnsAdvertiser.js";
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Advertise a node as a fabric member.
|
|
22
|
+
*/
|
|
23
|
+
export class OperationalMdnsAdvertisement extends MdnsAdvertisement<ServiceDescription.Operational> {
|
|
24
|
+
constructor(advertiser: MdnsAdvertiser, description: ServiceDescription.Operational) {
|
|
25
|
+
const {
|
|
26
|
+
fabric: { operationalId, nodeId },
|
|
27
|
+
} = description;
|
|
28
|
+
|
|
29
|
+
const qname = getOperationalDeviceQname(Bytes.toHex(operationalId).toUpperCase(), NodeId.toHexString(nodeId));
|
|
30
|
+
|
|
31
|
+
super(advertiser, qname, description);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
override get ptrRecords() {
|
|
35
|
+
const operationalIdString = Bytes.toHex(this.description.fabric.operationalId).toUpperCase();
|
|
36
|
+
const fabricQname = getFabricQname(operationalIdString);
|
|
37
|
+
|
|
38
|
+
return [
|
|
39
|
+
PtrRecord(SERVICE_DISCOVERY_QNAME, MATTER_SERVICE_QNAME),
|
|
40
|
+
PtrRecord(SERVICE_DISCOVERY_QNAME, fabricQname),
|
|
41
|
+
PtrRecord(MATTER_SERVICE_QNAME, this.qname),
|
|
42
|
+
PtrRecord(fabricQname, this.qname),
|
|
43
|
+
];
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
override isDuplicate(other: Advertisement) {
|
|
47
|
+
// There may only be one operational advertisement per service per advertiser
|
|
48
|
+
return other.isOperational() && other.service === this.service;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export * from "./CommissionableMdnsAdvertisement.js";
|
|
8
|
+
export * from "./CommissionerMdnsAdvertisement.js";
|
|
9
|
+
export * from "./MdnsAdvertisement.js";
|
|
10
|
+
export * from "./MdnsAdvertiser.js";
|
|
11
|
+
export * from "./OperationalMdnsAdvertisement.js";
|
package/src/ble/Ble.ts
CHANGED
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { Channel, ChannelType, MatterError, NetInterface, NoProviderError, TransportInterface } from "#general";
|
|
8
|
-
import { InstanceBroadcaster } from "../common/InstanceBroadcaster.js";
|
|
9
8
|
import { Scanner } from "../common/Scanner.js";
|
|
10
9
|
import { BLE_MAX_MATTER_PAYLOAD_SIZE } from "./BleConsts.js";
|
|
11
10
|
|
|
@@ -23,10 +22,14 @@ export abstract class Ble {
|
|
|
23
22
|
return this.get !== BleDisabled;
|
|
24
23
|
}
|
|
25
24
|
|
|
26
|
-
abstract
|
|
27
|
-
abstract
|
|
28
|
-
abstract
|
|
29
|
-
|
|
25
|
+
abstract get peripheralInterface(): BlePeripheralInterface;
|
|
26
|
+
abstract get centralInterface(): NetInterface;
|
|
27
|
+
abstract get scanner(): Scanner;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface BlePeripheralInterface extends TransportInterface {
|
|
31
|
+
advertise(advertiseData: Uint8Array, additionalAdvertisementData?: Uint8Array, intervalMs?: number): Promise<void>;
|
|
32
|
+
stopAdvertising(): Promise<void>;
|
|
30
33
|
}
|
|
31
34
|
|
|
32
35
|
export abstract class BleChannel<T> implements Channel<T> {
|
package/src/codec/BtpCodec.ts
CHANGED
|
@@ -283,6 +283,7 @@ export class BtpCodec {
|
|
|
283
283
|
vendorId: number,
|
|
284
284
|
productId: number,
|
|
285
285
|
hasAdditionalAdvertisementData = false,
|
|
286
|
+
isExtendedAnnouncement = false,
|
|
286
287
|
) {
|
|
287
288
|
const writer = new DataWriter(Endian.Little);
|
|
288
289
|
writer.writeUInt8(0x02);
|
|
@@ -293,9 +294,9 @@ export class BtpCodec {
|
|
|
293
294
|
writer.writeUInt16(0xfff6);
|
|
294
295
|
writer.writeUInt8(0x00);
|
|
295
296
|
writer.writeUInt16(discriminator);
|
|
296
|
-
writer.writeUInt16(vendorId);
|
|
297
|
-
writer.writeUInt16(productId);
|
|
298
|
-
writer.writeUInt8(hasAdditionalAdvertisementData ?
|
|
297
|
+
writer.writeUInt16(isExtendedAnnouncement ? 0 : vendorId);
|
|
298
|
+
writer.writeUInt16(isExtendedAnnouncement ? 0 : productId);
|
|
299
|
+
writer.writeUInt8((hasAdditionalAdvertisementData ? 1 : 0) | (isExtendedAnnouncement ? 2 : 0));
|
|
299
300
|
return writer.toByteArray();
|
|
300
301
|
}
|
|
301
302
|
|
package/src/common/Scanner.ts
CHANGED
|
@@ -5,25 +5,9 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { BasicSet, ChannelType, Environment, Environmental, Lifespan, ServerAddress, ServerAddressIp } from "#general";
|
|
8
|
-
import {
|
|
8
|
+
import { DiscoveryCapabilitiesBitmap, NodeId, TypeFromPartialBitSchema, VendorId } from "#types";
|
|
9
9
|
import { Fabric } from "../fabric/Fabric.js";
|
|
10
10
|
|
|
11
|
-
export const SupportedTransportsBitmap = {
|
|
12
|
-
// Bit 0 is reserved
|
|
13
|
-
/**
|
|
14
|
-
* TCP Client
|
|
15
|
-
* The advertising Node implements the TCP Client mode and MAY connect to a peer Node that is a TCP Server.
|
|
16
|
-
*/
|
|
17
|
-
tcpClient: BitFlag(1),
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* TCP Server
|
|
21
|
-
* The advertising Node implements the TCP Server mode and SHALL listen for incoming TCP connections.
|
|
22
|
-
*/
|
|
23
|
-
tcpServer: BitFlag(2),
|
|
24
|
-
};
|
|
25
|
-
export const SupportedTransportsSchema = BitmapSchema(SupportedTransportsBitmap);
|
|
26
|
-
|
|
27
11
|
/**
|
|
28
12
|
* All information exposed by a commissionable device via announcements.
|
|
29
13
|
* The properties are named identical as in the Matter specification.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { BitFlag, BitmapSchema, TypeFromBitSchema } from "@matter/types";
|
|
8
|
+
|
|
9
|
+
export const SupportedTransportsBitmap = {
|
|
10
|
+
// Bit 0 is reserved
|
|
11
|
+
/**
|
|
12
|
+
* TCP Client
|
|
13
|
+
* The advertising Node implements the TCP Client mode and MAY connect to a peer Node that is a TCP Server.
|
|
14
|
+
*/
|
|
15
|
+
tcpClient: BitFlag(1),
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* TCP Server
|
|
19
|
+
* The advertising Node implements the TCP Server mode and SHALL listen for incoming TCP connections.
|
|
20
|
+
*/
|
|
21
|
+
tcpServer: BitFlag(2),
|
|
22
|
+
};
|
|
23
|
+
export const SupportedTransportsSchema = BitmapSchema(SupportedTransportsBitmap);
|
|
24
|
+
|
|
25
|
+
export interface SupportedTransportsBitmap extends TypeFromBitSchema<typeof SupportedTransportsBitmap> {}
|
package/src/common/index.ts
CHANGED
|
@@ -8,6 +8,6 @@ export * from "../peer/PeerAddress.js";
|
|
|
8
8
|
export * from "./ExpandedPath.js";
|
|
9
9
|
export * from "./FailsafeContext.js";
|
|
10
10
|
export * from "./FailsafeTimer.js";
|
|
11
|
-
export * from "./InstanceBroadcaster.js";
|
|
12
11
|
export * from "./OperationalCredentialsTypes.js";
|
|
13
12
|
export * from "./Scanner.js";
|
|
13
|
+
export * from "./SupportedTransportsBitmap.js";
|
package/src/fabric/Fabric.ts
CHANGED
|
@@ -214,6 +214,14 @@ export class Fabric {
|
|
|
214
214
|
this.#sessions.delete(session);
|
|
215
215
|
}
|
|
216
216
|
|
|
217
|
+
hasSessionForPeer(peerNodeId: NodeId) {
|
|
218
|
+
for (const session of this.#sessions) {
|
|
219
|
+
if (session.peerNodeId === peerNodeId) {
|
|
220
|
+
return true;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
|
|
217
225
|
addRemoveCallback(callback: () => MaybePromise<void>) {
|
|
218
226
|
this.#removeCallbacks.push(callback);
|
|
219
227
|
}
|