@matter/protocol 0.16.0-alpha.0-20250809-ee8375bcb → 0.16.0-alpha.0-20250812-285b75d83
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/ble/BleConsts.d.ts +2 -1
- package/dist/cjs/ble/BleConsts.d.ts.map +1 -1
- package/dist/cjs/ble/BleConsts.js +3 -1
- package/dist/cjs/ble/BleConsts.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 +53 -150
- 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/protocol/ProtocolHandler.d.ts +4 -0
- package/dist/cjs/protocol/ProtocolHandler.d.ts.map +1 -1
- package/dist/cjs/protocol/ProtocolStatusMessage.d.ts +8 -4
- package/dist/cjs/protocol/ProtocolStatusMessage.d.ts.map +1 -1
- package/dist/cjs/protocol/ProtocolStatusMessage.js +23 -8
- package/dist/cjs/protocol/ProtocolStatusMessage.js.map +1 -1
- package/dist/cjs/securechannel/SecureChannelMessenger.js +2 -2
- package/dist/cjs/securechannel/SecureChannelMessenger.js.map +1 -1
- package/dist/cjs/securechannel/SecureChannelProtocol.js +1 -1
- package/dist/cjs/securechannel/SecureChannelProtocol.js.map +1 -1
- package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.d.ts +3 -3
- package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.d.ts.map +1 -1
- package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.js +3 -3
- package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.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/ble/BleConsts.d.ts +2 -1
- package/dist/esm/ble/BleConsts.d.ts.map +1 -1
- package/dist/esm/ble/BleConsts.js +3 -1
- package/dist/esm/ble/BleConsts.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 +55 -155
- 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/protocol/ProtocolHandler.d.ts +4 -0
- package/dist/esm/protocol/ProtocolHandler.d.ts.map +1 -1
- package/dist/esm/protocol/ProtocolStatusMessage.d.ts +8 -4
- package/dist/esm/protocol/ProtocolStatusMessage.d.ts.map +1 -1
- package/dist/esm/protocol/ProtocolStatusMessage.js +24 -9
- package/dist/esm/protocol/ProtocolStatusMessage.js.map +1 -1
- package/dist/esm/securechannel/SecureChannelMessenger.js +3 -3
- package/dist/esm/securechannel/SecureChannelMessenger.js.map +1 -1
- package/dist/esm/securechannel/SecureChannelProtocol.js +2 -2
- package/dist/esm/securechannel/SecureChannelProtocol.js.map +1 -1
- package/dist/esm/securechannel/SecureChannelStatusMessageSchema.d.ts +3 -3
- package/dist/esm/securechannel/SecureChannelStatusMessageSchema.d.ts.map +1 -1
- package/dist/esm/securechannel/SecureChannelStatusMessageSchema.js +3 -3
- package/dist/esm/securechannel/SecureChannelStatusMessageSchema.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 +6 -6
- 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/ble/BleConsts.ts +2 -1
- 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 +76 -198
- 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/protocol/ProtocolHandler.ts +7 -0
- package/src/protocol/ProtocolStatusMessage.ts +26 -10
- package/src/securechannel/SecureChannelMessenger.ts +3 -3
- package/src/securechannel/SecureChannelProtocol.ts +2 -2
- package/src/securechannel/SecureChannelStatusMessageSchema.ts +3 -3
- 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
|
@@ -3,29 +3,56 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
const MDNS_BROADCAST_IPV4 = "224.0.0.251";
|
|
7
|
+
const MDNS_BROADCAST_IPV6 = "ff02::fb";
|
|
8
|
+
const MDNS_BROADCAST_PORT = 5353;
|
|
6
9
|
const SERVICE_DISCOVERY_QNAME = "_services._dns-sd._udp.local";
|
|
7
10
|
const MATTER_COMMISSION_SERVICE_QNAME = "_matterc._udp.local";
|
|
8
11
|
const MATTER_COMMISSIONER_SERVICE_QNAME = "_matterd._udp.local";
|
|
9
12
|
const MATTER_SERVICE_QNAME = "_matter._tcp.local";
|
|
13
|
+
const DEFAULT_PAIRING_HINT = {
|
|
14
|
+
powerCycle: true,
|
|
15
|
+
deviceManual: true
|
|
16
|
+
};
|
|
17
|
+
const PAIRING_HINTS_REQUIRING_INSTRUCTION = Array(
|
|
18
|
+
"customInstruction",
|
|
19
|
+
"pressRestButtonForNumberOfSeconds",
|
|
20
|
+
"pressResetButtonUntilLightBlinks",
|
|
21
|
+
"pressResetButtonForNumberOfSecondsWithApplicationOfPower",
|
|
22
|
+
"pressResetButtonUntilLightBlinksWithApplicationOfPower",
|
|
23
|
+
"pressResetButtonNumberOfTimes",
|
|
24
|
+
"pressSetupButtonForNumberOfSeconds",
|
|
25
|
+
"pressSetupButtonUntilLightBlinks",
|
|
26
|
+
"pressSetupButtonForNumberOfSecondsWithApplicationOfPower",
|
|
27
|
+
"pressSetupButtonUntilLightBlinksWithApplicationOfPower",
|
|
28
|
+
"pressSetupButtonNumberOfTimes"
|
|
29
|
+
);
|
|
10
30
|
const getFabricQname = (operationalIdString) => `_I${operationalIdString}._sub.${MATTER_SERVICE_QNAME}`;
|
|
11
|
-
const
|
|
31
|
+
const getOperationalDeviceQname = (operationalIdString, nodeIdString) => `${operationalIdString}-${nodeIdString}.${MATTER_SERVICE_QNAME}`;
|
|
12
32
|
const getVendorQname = (vendorId) => `_V${vendorId}._sub.${MATTER_COMMISSION_SERVICE_QNAME}`;
|
|
13
33
|
const getDeviceTypeQname = (deviceType) => `_T${deviceType}._sub.${MATTER_COMMISSION_SERVICE_QNAME}`;
|
|
14
34
|
const getShortDiscriminatorQname = (shortDiscriminator) => `_S${shortDiscriminator}._sub.${MATTER_COMMISSION_SERVICE_QNAME}`;
|
|
15
35
|
const getLongDiscriminatorQname = (longDiscriminator) => `_L${longDiscriminator}._sub.${MATTER_COMMISSION_SERVICE_QNAME}`;
|
|
16
36
|
const getCommissioningModeQname = () => `_CM._sub.${MATTER_COMMISSION_SERVICE_QNAME}`;
|
|
17
|
-
const
|
|
37
|
+
const getCommissionableDeviceQname = (instanceId) => `${instanceId}.${MATTER_COMMISSION_SERVICE_QNAME}`;
|
|
38
|
+
const getCommissionerDeviceQname = (instanceId) => `${instanceId}.${MATTER_COMMISSIONER_SERVICE_QNAME}`;
|
|
18
39
|
export {
|
|
40
|
+
DEFAULT_PAIRING_HINT,
|
|
19
41
|
MATTER_COMMISSIONER_SERVICE_QNAME,
|
|
20
42
|
MATTER_COMMISSION_SERVICE_QNAME,
|
|
21
43
|
MATTER_SERVICE_QNAME,
|
|
44
|
+
MDNS_BROADCAST_IPV4,
|
|
45
|
+
MDNS_BROADCAST_IPV6,
|
|
46
|
+
MDNS_BROADCAST_PORT,
|
|
47
|
+
PAIRING_HINTS_REQUIRING_INSTRUCTION,
|
|
22
48
|
SERVICE_DISCOVERY_QNAME,
|
|
49
|
+
getCommissionableDeviceQname,
|
|
50
|
+
getCommissionerDeviceQname,
|
|
23
51
|
getCommissioningModeQname,
|
|
24
|
-
getDeviceInstanceQname,
|
|
25
|
-
getDeviceMatterQname,
|
|
26
52
|
getDeviceTypeQname,
|
|
27
53
|
getFabricQname,
|
|
28
54
|
getLongDiscriminatorQname,
|
|
55
|
+
getOperationalDeviceQname,
|
|
29
56
|
getShortDiscriminatorQname,
|
|
30
57
|
getVendorQname
|
|
31
58
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/mdns/MdnsConsts.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AASO,MAAM,sBAAsB;AAC5B,MAAM,sBAAsB;AAC5B,MAAM,sBAAsB;AAE5B,MAAM,0BAA0B;AAChC,MAAM,kCAAkC;AACxC,MAAM,oCAAoC;AAC1C,MAAM,uBAAuB;AAE7B,MAAM,uBAAuB;AAAA,EAChC,YAAY;AAAA,EACZ,cAAc;AAClB;AAEO,MAAM,sCAAsC;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AAEO,MAAM,iBAAiB,CAAC,wBAAgC,KAAK,mBAAmB,SAAS,oBAAoB;AAC7G,MAAM,4BAA4B,CAAC,qBAA6B,iBACnE,GAAG,mBAAmB,IAAI,YAAY,IAAI,oBAAoB;AAC3D,MAAM,iBAAiB,CAAC,aAAuB,KAAK,QAAQ,SAAS,+BAA+B;AACpG,MAAM,qBAAqB,CAAC,eAAuB,KAAK,UAAU,SAAS,+BAA+B;AAC1G,MAAM,6BAA6B,CAAC,uBACvC,KAAK,kBAAkB,SAAS,+BAA+B;AAC5D,MAAM,4BAA4B,CAAC,sBACtC,KAAK,iBAAiB,SAAS,+BAA+B;AAC3D,MAAM,4BAA4B,MAAM,YAAY,+BAA+B;AACnF,MAAM,+BAA+B,CAAC,eAAuB,GAAG,UAAU,IAAI,+BAA+B;AAC7G,MAAM,6BAA6B,CAAC,eAAuB,GAAG,UAAU,IAAI,iCAAiC;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -3,31 +3,22 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { DnsRecord,
|
|
7
|
-
|
|
8
|
-
export declare const MDNS_BROADCAST_IPV6 = "ff02::fb";
|
|
9
|
-
export declare const MDNS_BROADCAST_PORT = 5353;
|
|
10
|
-
export declare enum AnnouncementType {
|
|
11
|
-
Commissionable = 0,
|
|
12
|
-
Operative = 1
|
|
13
|
-
}
|
|
6
|
+
import { DnsRecord, NetworkInterfaceDetails } from "#general";
|
|
7
|
+
import { MdnsSocket } from "./MdnsSocket.js";
|
|
14
8
|
export declare class MdnsServer {
|
|
15
9
|
#private;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}): Promise<MdnsServer>;
|
|
20
|
-
constructor(network: Network, multicastServer: UdpMulticastServer, netInterface: string | undefined);
|
|
10
|
+
constructor(socket: MdnsSocket);
|
|
11
|
+
get network(): import("#general").Network;
|
|
12
|
+
get supportsIpv4(): boolean;
|
|
21
13
|
buildDnsRecordKey(record: DnsRecord<any>, netInterface?: string, unicastTarget?: string): string;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
expireAnnouncements(options?: {
|
|
26
|
-
announcedNetPort?: number;
|
|
27
|
-
type?: AnnouncementType;
|
|
28
|
-
forInstance?: string;
|
|
29
|
-
}): Promise<void>;
|
|
30
|
-
setRecordsGenerator(hostPort: number, type: AnnouncementType, generator: (netInterface: string) => Promise<DnsRecord<any>[]>): Promise<void>;
|
|
14
|
+
broadcast(...services: string[]): Promise<void>;
|
|
15
|
+
expireAnnouncements(...services: string[]): Promise<void>;
|
|
16
|
+
setRecordsGenerator(service: string, generator: MdnsServer.RecordGenerator): Promise<void>;
|
|
31
17
|
close(): Promise<void>;
|
|
32
18
|
}
|
|
19
|
+
export declare namespace MdnsServer {
|
|
20
|
+
interface RecordGenerator {
|
|
21
|
+
(intf: string, addrs: NetworkInterfaceDetails): DnsRecord[];
|
|
22
|
+
}
|
|
23
|
+
}
|
|
33
24
|
//# sourceMappingURL=MdnsServer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MdnsServer.d.ts","sourceRoot":"","sources":["../../../src/mdns/MdnsServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"MdnsServer.d.ts","sourceRoot":"","sources":["../../../src/mdns/MdnsServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAGH,SAAS,EAKT,uBAAuB,EAG1B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C,qBAAa,UAAU;;gBAwBP,MAAM,EAAE,UAAU;IAK9B,IAAI,OAAO,+BAEV;IAED,IAAI,YAAY,YAEf;IAED,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;IAgGjF,SAAS,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE;IAgB/B,mBAAmB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE;IAyBzC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,eAAe;IAW1E,KAAK;CAkBd;AAED,yBAAiB,UAAU,CAAC;IACxB,UAAiB,eAAe;QAC5B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,GAAG,SAAS,EAAE,CAAC;KAC/D;CACJ"}
|
|
@@ -5,82 +5,52 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import {
|
|
7
7
|
AsyncCache,
|
|
8
|
-
Diagnostic,
|
|
9
|
-
DnsCodec,
|
|
10
8
|
DnsMessageType,
|
|
11
9
|
DnsRecordType,
|
|
12
10
|
isDeepEqual,
|
|
13
11
|
Logger,
|
|
14
12
|
MatterAggregateError,
|
|
15
|
-
|
|
16
|
-
Time
|
|
17
|
-
UdpMulticastServer
|
|
13
|
+
ObserverGroup,
|
|
14
|
+
Time
|
|
18
15
|
} from "#general";
|
|
19
16
|
const logger = Logger.get("MdnsServer");
|
|
20
|
-
const MDNS_BROADCAST_IPV4 = "224.0.0.251";
|
|
21
|
-
const MDNS_BROADCAST_IPV6 = "ff02::fb";
|
|
22
|
-
const MDNS_BROADCAST_PORT = 5353;
|
|
23
|
-
var AnnouncementType = /* @__PURE__ */ ((AnnouncementType2) => {
|
|
24
|
-
AnnouncementType2[AnnouncementType2["Commissionable"] = 0] = "Commissionable";
|
|
25
|
-
AnnouncementType2[AnnouncementType2["Operative"] = 1] = "Operative";
|
|
26
|
-
return AnnouncementType2;
|
|
27
|
-
})(AnnouncementType || {});
|
|
28
17
|
class MdnsServer {
|
|
29
|
-
|
|
30
|
-
const { enableIpv4 = true, netInterface } = options ?? {};
|
|
31
|
-
return new MdnsServer(
|
|
32
|
-
network,
|
|
33
|
-
await UdpMulticastServer.create({
|
|
34
|
-
network,
|
|
35
|
-
netInterface,
|
|
36
|
-
broadcastAddressIpv4: enableIpv4 ? MDNS_BROADCAST_IPV4 : void 0,
|
|
37
|
-
broadcastAddressIpv6: MDNS_BROADCAST_IPV6,
|
|
38
|
-
listeningPort: MDNS_BROADCAST_PORT
|
|
39
|
-
}),
|
|
40
|
-
netInterface
|
|
41
|
-
);
|
|
42
|
-
}
|
|
18
|
+
#observers = new ObserverGroup();
|
|
43
19
|
#recordsGenerator = /* @__PURE__ */ new Map();
|
|
44
20
|
#records = new AsyncCache(
|
|
45
21
|
"MDNS discovery",
|
|
46
22
|
async (multicastInterface) => {
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
23
|
+
const serviceRecords = /* @__PURE__ */ new Map();
|
|
24
|
+
const addrs = await this.network.getIpMac(multicastInterface);
|
|
25
|
+
if (addrs === void 0) {
|
|
26
|
+
return serviceRecords;
|
|
27
|
+
}
|
|
28
|
+
for (const [service, generator] of this.#recordsGenerator) {
|
|
29
|
+
serviceRecords.set(service, generator(multicastInterface, addrs));
|
|
50
30
|
}
|
|
51
|
-
return
|
|
31
|
+
return serviceRecords;
|
|
52
32
|
},
|
|
53
33
|
15 * 60 * 1e3
|
|
54
34
|
);
|
|
55
35
|
#recordLastSentAsMulticastAnswer = /* @__PURE__ */ new Map();
|
|
56
|
-
#
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
constructor(network, multicastServer, netInterface) {
|
|
61
|
-
multicastServer.onMessage(
|
|
62
|
-
(message, remoteIp, netInterface2) => void this.#handleDnsMessage(message, remoteIp, netInterface2)
|
|
63
|
-
);
|
|
64
|
-
this.#network = network;
|
|
65
|
-
this.#multicastServer = multicastServer;
|
|
66
|
-
this.#netInterface = netInterface;
|
|
36
|
+
#socket;
|
|
37
|
+
constructor(socket) {
|
|
38
|
+
this.#socket = socket;
|
|
39
|
+
this.#observers.on(this.#socket.receipt, this.#handleMessage.bind(this));
|
|
67
40
|
}
|
|
68
|
-
|
|
69
|
-
return
|
|
41
|
+
get network() {
|
|
42
|
+
return this.#socket.network;
|
|
70
43
|
}
|
|
71
|
-
|
|
72
|
-
return
|
|
44
|
+
get supportsIpv4() {
|
|
45
|
+
return this.#socket.supportsIpv4;
|
|
73
46
|
}
|
|
74
|
-
|
|
75
|
-
return
|
|
47
|
+
buildDnsRecordKey(record, netInterface, unicastTarget) {
|
|
48
|
+
return `${record.name}-${record.recordClass}-${record.recordType}-${netInterface}-${unicastTarget}`;
|
|
76
49
|
}
|
|
77
|
-
async #
|
|
78
|
-
|
|
79
|
-
const records = await this.#records.get(netInterface);
|
|
50
|
+
async #handleMessage(message) {
|
|
51
|
+
const records = await this.#records.get(message.sourceIntf);
|
|
80
52
|
if (records.size === 0) return;
|
|
81
|
-
const
|
|
82
|
-
if (message === void 0) return;
|
|
83
|
-
const { transactionId, messageType, queries, answers: knownAnswers } = message;
|
|
53
|
+
const { sourceIntf, sourceIp, transactionId, messageType, queries, answers: knownAnswers } = message;
|
|
84
54
|
if (messageType !== DnsMessageType.Query && messageType !== DnsMessageType.TruncatedQuery) return;
|
|
85
55
|
if (queries.length === 0) return;
|
|
86
56
|
for (const portRecords of records.values()) {
|
|
@@ -106,42 +76,33 @@ class MdnsServer {
|
|
|
106
76
|
const now = Time.nowMs();
|
|
107
77
|
let uniCastResponse = queries.filter((query) => !query.uniCastResponse).length === 0;
|
|
108
78
|
const answersTimeSinceLastSent = answers.map((answer) => ({
|
|
109
|
-
timeSinceLastMultiCast: now - (this.#recordLastSentAsMulticastAnswer.get(this.buildDnsRecordKey(answer,
|
|
110
|
-
|
|
111
|
-
ttl: answer.ttl
|
|
79
|
+
timeSinceLastMultiCast: now - (this.#recordLastSentAsMulticastAnswer.get(this.buildDnsRecordKey(answer, sourceIntf)) ?? 0),
|
|
80
|
+
ttl: answer.ttl * 1e3
|
|
112
81
|
}));
|
|
113
|
-
if (uniCastResponse && answersTimeSinceLastSent.some(
|
|
114
|
-
({ timeSinceLastMultiCast, ttl }) => timeSinceLastMultiCast > ttl / 4 * 1e3
|
|
115
|
-
)) {
|
|
82
|
+
if (uniCastResponse && answersTimeSinceLastSent.some(({ timeSinceLastMultiCast, ttl }) => timeSinceLastMultiCast > ttl / 4)) {
|
|
116
83
|
uniCastResponse = false;
|
|
117
84
|
}
|
|
118
85
|
if (!uniCastResponse) {
|
|
119
|
-
answers = answers.filter(
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
(answer) => this.#recordLastSentAsMulticastAnswer.set(this.buildDnsRecordKey(answer, netInterface), now)
|
|
86
|
+
answers = answers.filter(
|
|
87
|
+
(_, index) => answersTimeSinceLastSent[index].timeSinceLastMultiCast >= 900
|
|
88
|
+
// The last time sent as multicast was more than 900 ms ago
|
|
123
89
|
);
|
|
124
|
-
} else {
|
|
125
|
-
answers = answers.filter((_, index) => answersTimeSinceLastSent[index].timeSinceLastUniCast > 1e3);
|
|
126
90
|
if (answers.length === 0) continue;
|
|
127
91
|
answers.forEach(
|
|
128
|
-
(answer) => this.#
|
|
129
|
-
this.buildDnsRecordKey(answer, netInterface, remoteIp),
|
|
130
|
-
now
|
|
131
|
-
)
|
|
92
|
+
(answer) => this.#recordLastSentAsMulticastAnswer.set(this.buildDnsRecordKey(answer, sourceIntf), now)
|
|
132
93
|
);
|
|
133
94
|
}
|
|
134
|
-
this.#
|
|
95
|
+
this.#socket.send(
|
|
135
96
|
{
|
|
136
97
|
messageType: DnsMessageType.Response,
|
|
137
98
|
transactionId,
|
|
138
99
|
answers,
|
|
139
100
|
additionalRecords
|
|
140
101
|
},
|
|
141
|
-
|
|
142
|
-
uniCastResponse ?
|
|
102
|
+
sourceIntf,
|
|
103
|
+
uniCastResponse ? sourceIp : void 0
|
|
143
104
|
).catch((error) => {
|
|
144
|
-
logger.warn(`Failed to send mDNS response to ${
|
|
105
|
+
logger.warn(`Failed to send mDNS response to ${sourceIp}`, error);
|
|
145
106
|
});
|
|
146
107
|
await Time.sleep("MDNS delay", 20 + Math.floor(Math.random() * 100));
|
|
147
108
|
}
|
|
@@ -149,7 +110,7 @@ class MdnsServer {
|
|
|
149
110
|
async #announceRecordsForInterface(netInterface, records) {
|
|
150
111
|
const answers = records.filter(({ recordType }) => recordType === DnsRecordType.PTR);
|
|
151
112
|
const additionalRecords = records.filter(({ recordType }) => recordType !== DnsRecordType.PTR);
|
|
152
|
-
await this.#
|
|
113
|
+
await this.#socket.send(
|
|
153
114
|
{
|
|
154
115
|
messageType: DnsMessageType.Response,
|
|
155
116
|
answers,
|
|
@@ -158,115 +119,58 @@ class MdnsServer {
|
|
|
158
119
|
netInterface
|
|
159
120
|
);
|
|
160
121
|
}
|
|
161
|
-
async
|
|
162
|
-
const { answers = [], additionalRecords = [] } = dnsMessageData;
|
|
163
|
-
const answersToSend = [...answers];
|
|
164
|
-
const additionalRecordsToSend = [...additionalRecords];
|
|
165
|
-
const dnsMessageDataToSend = {
|
|
166
|
-
...dnsMessageData,
|
|
167
|
-
answers: [],
|
|
168
|
-
additionalRecords: []
|
|
169
|
-
};
|
|
170
|
-
const emptyDnsMessage = DnsCodec.encode(dnsMessageDataToSend);
|
|
171
|
-
let dnsMessageSize = emptyDnsMessage.length;
|
|
172
|
-
while (true) {
|
|
173
|
-
if (answersToSend.length > 0) {
|
|
174
|
-
const nextAnswer = answersToSend.shift();
|
|
175
|
-
if (nextAnswer === void 0) {
|
|
176
|
-
break;
|
|
177
|
-
}
|
|
178
|
-
const nextAnswerEncoded = DnsCodec.encodeRecord(nextAnswer);
|
|
179
|
-
dnsMessageSize += nextAnswerEncoded.length;
|
|
180
|
-
if (dnsMessageSize > MAX_MDNS_MESSAGE_SIZE) {
|
|
181
|
-
await this.#multicastServer.send(
|
|
182
|
-
DnsCodec.encode(dnsMessageDataToSend),
|
|
183
|
-
netInterface,
|
|
184
|
-
unicastTarget
|
|
185
|
-
);
|
|
186
|
-
dnsMessageDataToSend.answers.length = 0;
|
|
187
|
-
dnsMessageSize = emptyDnsMessage.length + nextAnswerEncoded.length;
|
|
188
|
-
}
|
|
189
|
-
dnsMessageDataToSend.answers.push(nextAnswerEncoded);
|
|
190
|
-
} else {
|
|
191
|
-
break;
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
for (const additionalRecord of additionalRecordsToSend) {
|
|
195
|
-
const additionalRecordEncoded = DnsCodec.encodeRecord(additionalRecord);
|
|
196
|
-
dnsMessageSize += additionalRecordEncoded.length;
|
|
197
|
-
if (dnsMessageSize > MAX_MDNS_MESSAGE_SIZE) {
|
|
198
|
-
break;
|
|
199
|
-
}
|
|
200
|
-
dnsMessageDataToSend.additionalRecords.push(additionalRecordEncoded);
|
|
201
|
-
}
|
|
202
|
-
await this.#multicastServer.send(DnsCodec.encode(dnsMessageDataToSend), netInterface, unicastTarget);
|
|
203
|
-
}
|
|
204
|
-
async announce(announcedNetPort) {
|
|
122
|
+
async broadcast(...services) {
|
|
205
123
|
await MatterAggregateError.allSettled(
|
|
206
124
|
(await this.#getMulticastInterfacesForAnnounce()).map(async ({ name: netInterface }) => {
|
|
207
125
|
const records = await this.#records.get(netInterface);
|
|
208
|
-
for (const [
|
|
209
|
-
if (
|
|
210
|
-
await this.#announceRecordsForInterface(netInterface,
|
|
126
|
+
for (const [service, serviceRecords] of records) {
|
|
127
|
+
if (services.length && !services.includes(service)) continue;
|
|
128
|
+
await this.#announceRecordsForInterface(netInterface, serviceRecords);
|
|
211
129
|
await Time.sleep("MDNS delay", 20 + Math.floor(Math.random() * 100));
|
|
212
130
|
}
|
|
213
131
|
}),
|
|
214
|
-
"Error
|
|
132
|
+
"Error announcing MDNS messages"
|
|
215
133
|
).catch((error) => logger.error(error));
|
|
216
134
|
}
|
|
217
|
-
async expireAnnouncements(
|
|
218
|
-
const { announcedNetPort, type, forInstance: instanceToExpire } = options ?? {};
|
|
135
|
+
async expireAnnouncements(...services) {
|
|
219
136
|
await MatterAggregateError.allSettled(
|
|
220
137
|
this.#records.keys().map(async (netInterface) => {
|
|
221
138
|
const records = await this.#records.get(netInterface);
|
|
222
|
-
for (const [
|
|
223
|
-
if (
|
|
224
|
-
if (announcedNetPort !== void 0 && type !== void 0 && portType !== this.buildTypePortKey(type, announcedNetPort))
|
|
225
|
-
continue;
|
|
226
|
-
const recordsToProcess = instanceToExpire !== void 0 ? portTypeRecords.filter(
|
|
227
|
-
({ forInstance }) => forInstance !== void 0 && instanceToExpire === forInstance
|
|
228
|
-
) : portTypeRecords;
|
|
139
|
+
for (const [service, serviceRecords] of records) {
|
|
140
|
+
if (services.length && !services.includes(service)) continue;
|
|
229
141
|
const instanceSet = /* @__PURE__ */ new Set();
|
|
230
|
-
|
|
142
|
+
serviceRecords.forEach((record) => {
|
|
231
143
|
record.ttl = 0;
|
|
232
144
|
if (record.recordType === DnsRecordType.TXT) {
|
|
233
145
|
instanceSet.add(record.name);
|
|
234
146
|
}
|
|
235
147
|
});
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
`Expiring records`,
|
|
239
|
-
Diagnostic.dict({
|
|
240
|
-
instanceName,
|
|
241
|
-
port: announcedNetPort,
|
|
242
|
-
netInterface
|
|
243
|
-
})
|
|
244
|
-
);
|
|
245
|
-
await this.#announceRecordsForInterface(netInterface, portTypeRecords);
|
|
246
|
-
this.#recordsGenerator.delete(portType);
|
|
148
|
+
await this.#announceRecordsForInterface(netInterface, serviceRecords);
|
|
149
|
+
this.#recordsGenerator.delete(service);
|
|
247
150
|
await Time.sleep("MDNS delay", 20 + Math.floor(Math.random() * 100));
|
|
248
151
|
}
|
|
249
152
|
}),
|
|
250
153
|
"Error happened when expiring MDNS announcements"
|
|
251
154
|
).catch((error) => logger.error(error));
|
|
155
|
+
await this.#resetServices();
|
|
156
|
+
}
|
|
157
|
+
async setRecordsGenerator(service, generator) {
|
|
252
158
|
await this.#records.clear();
|
|
253
159
|
this.#recordLastSentAsMulticastAnswer.clear();
|
|
254
|
-
this.#
|
|
160
|
+
this.#recordsGenerator.set(service, generator);
|
|
255
161
|
}
|
|
256
|
-
async
|
|
162
|
+
async #resetServices() {
|
|
257
163
|
await this.#records.clear();
|
|
258
164
|
this.#recordLastSentAsMulticastAnswer.clear();
|
|
259
|
-
this.#recordLastSentAsUnicastAnswer.clear();
|
|
260
|
-
this.#recordsGenerator.set(this.buildTypePortKey(type, hostPort), generator);
|
|
261
165
|
}
|
|
262
166
|
async close() {
|
|
167
|
+
this.#observers.close();
|
|
263
168
|
await this.#records.close();
|
|
264
169
|
this.#recordLastSentAsMulticastAnswer.clear();
|
|
265
|
-
this.#recordLastSentAsUnicastAnswer.clear();
|
|
266
|
-
await this.#multicastServer.close();
|
|
267
170
|
}
|
|
268
171
|
#getMulticastInterfacesForAnnounce() {
|
|
269
|
-
|
|
172
|
+
const { netInterface } = this.#socket;
|
|
173
|
+
return netInterface === void 0 ? this.network.getNetInterfaces() : [{ name: netInterface }];
|
|
270
174
|
}
|
|
271
175
|
#queryRecords({ name, recordType }, records) {
|
|
272
176
|
if (recordType === DnsRecordType.ANY) {
|
|
@@ -277,10 +181,6 @@ class MdnsServer {
|
|
|
277
181
|
}
|
|
278
182
|
}
|
|
279
183
|
export {
|
|
280
|
-
AnnouncementType,
|
|
281
|
-
MDNS_BROADCAST_IPV4,
|
|
282
|
-
MDNS_BROADCAST_IPV6,
|
|
283
|
-
MDNS_BROADCAST_PORT,
|
|
284
184
|
MdnsServer
|
|
285
185
|
};
|
|
286
186
|
//# sourceMappingURL=MdnsServer.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/mdns/MdnsServer.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EACI;AAAA,EACA;AAAA,
|
|
5
|
-
"names": [
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EACI;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,OACG;AAGP,MAAM,SAAS,OAAO,IAAI,YAAY;AAE/B,MAAM,WAAW;AAAA,EACpB,aAAa,IAAI,cAAc;AAAA,EAC/B,oBAAoB,oBAAI,IAAwC;AAAA,EACvD,WAAW,IAAI;AAAA,IACpB;AAAA,IACA,OAAO,uBAA+B;AAClC,YAAM,iBAAiB,oBAAI,IAA8B;AACzD,YAAM,QAAQ,MAAM,KAAK,QAAQ,SAAS,kBAAkB;AAC5D,UAAI,UAAU,QAAW;AACrB,eAAO;AAAA,MACX;AAEA,iBAAW,CAAC,SAAS,SAAS,KAAK,KAAK,mBAAmB;AACvD,uBAAe,IAAI,SAAS,UAAU,oBAAoB,KAAK,CAAC;AAAA,MACpE;AAEA,aAAO;AAAA,IACX;AAAA,IACA,KAAK,KAAK;AAAA,EACd;AAAA,EACS,mCAAmC,oBAAI,IAAoB;AAAA,EAE3D;AAAA,EAET,YAAY,QAAoB;AAC5B,SAAK,UAAU;AACf,SAAK,WAAW,GAAG,KAAK,QAAQ,SAAS,KAAK,eAAe,KAAK,IAAI,CAAC;AAAA,EAC3E;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,KAAK,QAAQ;AAAA,EACxB;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,KAAK,QAAQ;AAAA,EACxB;AAAA,EAEA,kBAAkB,QAAwB,cAAuB,eAAwB;AACrF,WAAO,GAAG,OAAO,IAAI,IAAI,OAAO,WAAW,IAAI,OAAO,UAAU,IAAI,YAAY,IAAI,aAAa;AAAA,EACrG;AAAA,EAEA,MAAM,eAAe,SAA6B;AAC9C,UAAM,UAAU,MAAM,KAAK,SAAS,IAAI,QAAQ,UAAU;AAG1D,QAAI,QAAQ,SAAS,EAAG;AAExB,UAAM,EAAE,YAAY,UAAU,eAAe,aAAa,SAAS,SAAS,aAAa,IAAI;AAC7F,QAAI,gBAAgB,eAAe,SAAS,gBAAgB,eAAe,eAAgB;AAC3F,QAAI,QAAQ,WAAW,EAAG;AAC1B,eAAW,eAAe,QAAQ,OAAO,GAAG;AACxC,UAAI,UAAU,QAAQ,QAAQ,WAAS,KAAK,cAAc,OAAO,WAAW,CAAC;AAC7E,UAAI,QAAQ,WAAW,EAAG;AAG1B,UAAI,oBACA,QAAQ;AAAA,QACJ,WAAS,MAAM,eAAe,cAAc,KAAK,MAAM,eAAe,cAAc;AAAA,MACxF,MAAM,SACA,YAAY,OAAO,YAAU,CAAC,QAAQ,SAAS,MAAM,KAAK,OAAO,eAAe,cAAc,GAAG,IACjG,CAAC;AACX,UAAI,aAAa,SAAS,GAAG;AACzB,mBAAW,sBAAsB,cAAc;AAC3C,oBAAU,QAAQ,OAAO,YAAU,CAAC,YAAY,QAAQ,oBAAoB,IAAI,CAAC;AACjF,cAAI,QAAQ,WAAW,EAAG;AAAA,QAC9B;AACA,YAAI,QAAQ,WAAW,EAAG;AAC1B,YAAI,kBAAkB,SAAS,GAAG;AAC9B,qBAAW,sBAAsB,cAAc;AAC3C,gCAAoB,kBAAkB;AAAA,cAClC,YAAU,CAAC,YAAY,QAAQ,oBAAoB,IAAI;AAAA,YAC3D;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAEA,YAAM,MAAM,KAAK,MAAM;AACvB,UAAI,kBAAkB,QAAQ,OAAO,WAAS,CAAC,MAAM,eAAe,EAAE,WAAW;AACjF,YAAM,2BAA2B,QAAQ,IAAI,aAAW;AAAA,QACpD,wBACI,OAAO,KAAK,iCAAiC,IAAI,KAAK,kBAAkB,QAAQ,UAAU,CAAC,KAAK;AAAA,QACpG,KAAK,OAAO,MAAM;AAAA,MACtB,EAAE;AACF,UACI,mBACA,yBAAyB,KAAK,CAAC,EAAE,wBAAwB,IAAI,MAAM,yBAAyB,MAAM,CAAC,GACrG;AAEE,0BAAkB;AAAA,MACtB;AACA,UAAI,CAAC,iBAAiB;AAClB,kBAAU,QAAQ;AAAA,UACd,CAAC,GAAG,UAAU,yBAAyB,KAAK,EAAE,0BAA0B;AAAA;AAAA,QAC5E;AACA,YAAI,QAAQ,WAAW,EAAG;AAE1B,gBAAQ;AAAA,UAAQ,YACZ,KAAK,iCAAiC,IAAI,KAAK,kBAAkB,QAAQ,UAAU,GAAG,GAAG;AAAA,QAC7F;AAAA,MACJ;AAEA,WAAK,QACA;AAAA,QACG;AAAA,UACI,aAAa,eAAe;AAAA,UAC5B;AAAA,UACA;AAAA,UACA;AAAA,QACJ;AAAA,QACA;AAAA,QACA,kBAAkB,WAAW;AAAA,MACjC,EACC,MAAM,WAAS;AACZ,eAAO,KAAK,mCAAmC,QAAQ,IAAI,KAAK;AAAA,MACpE,CAAC;AACL,YAAM,KAAK,MAAM,cAAc,KAAK,KAAK,MAAM,KAAK,OAAO,IAAI,GAAG,CAAC;AAAA,IACvE;AAAA,EACJ;AAAA,EAEA,MAAM,6BAA6B,cAAsB,SAA2B;AAChF,UAAM,UAAU,QAAQ,OAAO,CAAC,EAAE,WAAW,MAAM,eAAe,cAAc,GAAG;AACnF,UAAM,oBAAoB,QAAQ,OAAO,CAAC,EAAE,WAAW,MAAM,eAAe,cAAc,GAAG;AAE7F,UAAM,KAAK,QAAQ;AAAA,MACf;AAAA,QACI,aAAa,eAAe;AAAA,QAC5B;AAAA,QACA;AAAA,MACJ;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,aAAa,UAAoB;AACnC,UAAM,qBAAqB;AAAA,OACtB,MAAM,KAAK,mCAAmC,GAAG,IAAI,OAAO,EAAE,MAAM,aAAa,MAAM;AACpF,cAAM,UAAU,MAAM,KAAK,SAAS,IAAI,YAAY;AACpD,mBAAW,CAAC,SAAS,cAAc,KAAK,SAAS;AAC7C,cAAI,SAAS,UAAU,CAAC,SAAS,SAAS,OAAO,EAAG;AAGpD,gBAAM,KAAK,6BAA6B,cAAc,cAAc;AACpE,gBAAM,KAAK,MAAM,cAAc,KAAK,KAAK,MAAM,KAAK,OAAO,IAAI,GAAG,CAAC;AAAA,QACvE;AAAA,MACJ,CAAC;AAAA,MACD;AAAA,IACJ,EAAE,MAAM,WAAS,OAAO,MAAM,KAAK,CAAC;AAAA,EACxC;AAAA,EAEA,MAAM,uBAAuB,UAAoB;AAC7C,UAAM,qBAAqB;AAAA,MACvB,KAAK,SAAS,KAAK,EAAE,IAAI,OAAM,iBAAgB;AAC3C,cAAM,UAAU,MAAM,KAAK,SAAS,IAAI,YAAY;AACpD,mBAAW,CAAC,SAAS,cAAc,KAAK,SAAS;AAC7C,cAAI,SAAS,UAAU,CAAC,SAAS,SAAS,OAAO,EAAG;AACpD,gBAAM,cAAc,oBAAI,IAAY;AACpC,yBAAe,QAAQ,YAAU;AAC7B,mBAAO,MAAM;AACb,gBAAI,OAAO,eAAe,cAAc,KAAK;AACzC,0BAAY,IAAI,OAAO,IAAI;AAAA,YAC/B;AAAA,UACJ,CAAC;AAGD,gBAAM,KAAK,6BAA6B,cAAc,cAAc;AACpE,eAAK,kBAAkB,OAAO,OAAO;AACrC,gBAAM,KAAK,MAAM,cAAc,KAAK,KAAK,MAAM,KAAK,OAAO,IAAI,GAAG,CAAC;AAAA,QACvE;AAAA,MACJ,CAAC;AAAA,MACD;AAAA,IACJ,EAAE,MAAM,WAAS,OAAO,MAAM,KAAK,CAAC;AACpC,UAAM,KAAK,eAAe;AAAA,EAC9B;AAAA,EAEA,MAAM,oBAAoB,SAAiB,WAAuC;AAC9E,UAAM,KAAK,SAAS,MAAM;AAC1B,SAAK,iCAAiC,MAAM;AAC5C,SAAK,kBAAkB,IAAI,SAAS,SAAS;AAAA,EACjD;AAAA,EAEA,MAAM,iBAAiB;AACnB,UAAM,KAAK,SAAS,MAAM;AAC1B,SAAK,iCAAiC,MAAM;AAAA,EAChD;AAAA,EAEA,MAAM,QAAQ;AACV,SAAK,WAAW,MAAM;AACtB,UAAM,KAAK,SAAS,MAAM;AAC1B,SAAK,iCAAiC,MAAM;AAAA,EAChD;AAAA,EAEA,qCAAqC;AACjC,UAAM,EAAE,aAAa,IAAI,KAAK;AAC9B,WAAO,iBAAiB,SAAY,KAAK,QAAQ,iBAAiB,IAAI,CAAC,EAAE,MAAM,aAAa,CAAC;AAAA,EACjG;AAAA,EAEA,cAAc,EAAE,MAAM,WAAW,GAAgD,SAA2B;AACxG,QAAI,eAAe,cAAc,KAAK;AAClC,aAAO,QAAQ,OAAO,YAAU,OAAO,SAAS,IAAI;AAAA,IACxD,OAAO;AACH,aAAO,QAAQ,OAAO,YAAU,OAAO,SAAS,QAAQ,OAAO,eAAe,UAAU;AAAA,IAC5F;AAAA,EACJ;AACJ;",
|
|
5
|
+
"names": []
|
|
6
6
|
}
|
|
@@ -4,17 +4,16 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { Construction, Diagnostic, Environment, Environmental } from "#general";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
7
|
+
import { MdnsServer } from "../mdns/MdnsServer.js";
|
|
8
|
+
import { MdnsClient } from "./MdnsClient.js";
|
|
9
9
|
export declare class MdnsService {
|
|
10
10
|
#private;
|
|
11
11
|
readonly limitedToNetInterface?: string;
|
|
12
12
|
get enableIpv4(): boolean;
|
|
13
13
|
constructor(environment: Environment, options?: MdnsService.Options);
|
|
14
14
|
static [Environmental.create](environment: Environment): MdnsService;
|
|
15
|
-
|
|
16
|
-
get
|
|
17
|
-
get scanner(): MdnsScanner;
|
|
15
|
+
get server(): MdnsServer;
|
|
16
|
+
get client(): MdnsClient;
|
|
18
17
|
get [Diagnostic.value](): string;
|
|
19
18
|
get construction(): Construction<MdnsService>;
|
|
20
19
|
[Symbol.asyncDispose](): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MdnsService.d.ts","sourceRoot":"","sources":["../../../src/mdns/MdnsService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,YAAY,
|
|
1
|
+
{"version":3,"file":"MdnsService.d.ts","sourceRoot":"","sources":["../../../src/mdns/MdnsService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,YAAY,EACZ,UAAU,EACV,WAAW,EACX,aAAa,EAMhB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAK7C,qBAAa,WAAW;;IAOpB,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAExC,IAAI,UAAU,YAEb;gBAEW,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,OAAO;IAsBnE,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,WAAW;IAItD,IAAI,MAAM,eAET;IAED,IAAI,MAAM,eAET;IAED,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,WAErB;IAED,IAAI,YAAY,8BAEf;IAEK,CAAC,MAAM,CAAC,YAAY,CAAC;CAwB9B;AAED,yBAAiB,WAAW,CAAC;IACzB,UAAiB,OAAO;QACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;KAClB;CACJ"}
|
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import {
|
|
7
7
|
Construction,
|
|
8
|
-
Crypto,
|
|
9
8
|
Diagnostic,
|
|
10
9
|
Environmental,
|
|
11
10
|
Logger,
|
|
@@ -14,12 +13,14 @@ import {
|
|
|
14
13
|
Network,
|
|
15
14
|
VariableService
|
|
16
15
|
} from "#general";
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
16
|
+
import { MdnsServer } from "../mdns/MdnsServer.js";
|
|
17
|
+
import { MdnsClient } from "./MdnsClient.js";
|
|
18
|
+
import { MdnsSocket } from "./MdnsSocket.js";
|
|
19
19
|
const logger = Logger.get("MDNS");
|
|
20
20
|
class MdnsService {
|
|
21
|
-
#
|
|
22
|
-
#
|
|
21
|
+
#socket;
|
|
22
|
+
#server;
|
|
23
|
+
#client;
|
|
23
24
|
#env;
|
|
24
25
|
#construction;
|
|
25
26
|
#enableIpv4;
|
|
@@ -29,6 +30,7 @@ class MdnsService {
|
|
|
29
30
|
}
|
|
30
31
|
constructor(environment, options) {
|
|
31
32
|
this.#env = environment;
|
|
33
|
+
const network = environment.get(Network);
|
|
32
34
|
const rootEnvironment = environment.root;
|
|
33
35
|
rootEnvironment.set(MdnsService, this);
|
|
34
36
|
rootEnvironment.runtime.add(this);
|
|
@@ -36,29 +38,22 @@ class MdnsService {
|
|
|
36
38
|
this.#enableIpv4 = vars.boolean("mdns.ipv4") ?? options?.ipv4 ?? true;
|
|
37
39
|
this.limitedToNetInterface = vars.get("mdns.networkInterface", options?.networkInterface);
|
|
38
40
|
this.#construction = Construction(this, async () => {
|
|
39
|
-
|
|
40
|
-
const network = environment.get(Network);
|
|
41
|
-
this.#broadcaster = await MdnsBroadcaster.create(crypto, network, {
|
|
42
|
-
enableIpv4: this.enableIpv4,
|
|
43
|
-
multicastInterface: this.limitedToNetInterface
|
|
44
|
-
});
|
|
45
|
-
this.#scanner = await MdnsScanner.create(network, {
|
|
41
|
+
this.#socket = await MdnsSocket.create(network, {
|
|
46
42
|
enableIpv4: this.enableIpv4,
|
|
47
43
|
netInterface: this.limitedToNetInterface
|
|
48
44
|
});
|
|
45
|
+
this.#server = new MdnsServer(this.#socket);
|
|
46
|
+
this.#client = new MdnsClient(this.#socket);
|
|
49
47
|
});
|
|
50
48
|
}
|
|
51
49
|
static [Environmental.create](environment) {
|
|
52
50
|
return new this(environment);
|
|
53
51
|
}
|
|
54
|
-
|
|
55
|
-
return this.
|
|
56
|
-
}
|
|
57
|
-
get broadcaster() {
|
|
58
|
-
return this.#construction.assert("MDNS service", this.#broadcaster);
|
|
52
|
+
get server() {
|
|
53
|
+
return this.#construction.assert("MDNS service", this.#server);
|
|
59
54
|
}
|
|
60
|
-
get
|
|
61
|
-
return this.#construction.assert("MDNS service", this.#
|
|
55
|
+
get client() {
|
|
56
|
+
return this.#construction.assert("MDNS service", this.#client);
|
|
62
57
|
}
|
|
63
58
|
get [Diagnostic.value]() {
|
|
64
59
|
return "MDNS";
|
|
@@ -70,20 +65,23 @@ class MdnsService {
|
|
|
70
65
|
this.#env.delete(MdnsService, this);
|
|
71
66
|
await this.#construction.close(async () => {
|
|
72
67
|
const broadcasterDisposal = MaybePromise.then(
|
|
73
|
-
this.#
|
|
68
|
+
this.#server?.close(),
|
|
74
69
|
void 0,
|
|
75
|
-
(e) => logger.error("Error disposing of MDNS
|
|
70
|
+
(e) => logger.error("Error disposing of MDNS server", e)
|
|
76
71
|
);
|
|
77
72
|
const scannerDisposal = MaybePromise.then(
|
|
78
|
-
this.#
|
|
73
|
+
this.#client?.close(),
|
|
79
74
|
void 0,
|
|
80
|
-
(e) => logger.error("Error disposing of MDNS
|
|
75
|
+
(e) => logger.error("Error disposing of MDNS client", e)
|
|
81
76
|
);
|
|
82
77
|
await MatterAggregateError.allSettled(
|
|
83
78
|
[broadcasterDisposal, scannerDisposal],
|
|
84
79
|
"Error disposing MDNS services"
|
|
85
80
|
).catch((error) => logger.error(error));
|
|
86
|
-
|
|
81
|
+
if (this.#socket) {
|
|
82
|
+
await this.#socket?.close();
|
|
83
|
+
}
|
|
84
|
+
this.#server = this.#client = void 0;
|
|
87
85
|
});
|
|
88
86
|
}
|
|
89
87
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/mdns/MdnsService.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EACI;AAAA,EACA;AAAA,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EACI;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,kBAAkB;AAC3B,SAAS,kBAAkB;AAC3B,SAAS,kBAAkB;AAE3B,MAAM,SAAS,OAAO,IAAI,MAAM;AAEzB,MAAM,YAAY;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACS;AAAA,EACA;AAAA,EACA;AAAA,EAET,IAAI,aAAa;AACb,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,YAAY,aAA0B,SAA+B;AACjE,SAAK,OAAO;AACZ,UAAM,UAAU,YAAY,IAAI,OAAO;AACvC,UAAM,kBAAkB,YAAY;AACpC,oBAAgB,IAAI,aAAa,IAAI;AACrC,oBAAgB,QAAQ,IAAI,IAAI;AAEhC,UAAM,OAAO,YAAY,IAAI,eAAe;AAC5C,SAAK,cAAc,KAAK,QAAQ,WAAW,KAAK,SAAS,QAAQ;AACjE,SAAK,wBAAwB,KAAK,IAAI,yBAAyB,SAAS,gBAAgB;AAExF,SAAK,gBAAgB,aAAa,MAAM,YAAY;AAChD,WAAK,UAAU,MAAM,WAAW,OAAO,SAAS;AAAA,QAC5C,YAAY,KAAK;AAAA,QACjB,cAAc,KAAK;AAAA,MACvB,CAAC;AAED,WAAK,UAAU,IAAI,WAAW,KAAK,OAAO;AAC1C,WAAK,UAAU,IAAI,WAAW,KAAK,OAAO;AAAA,IAC9C,CAAC;AAAA,EACL;AAAA,EAEA,QAAQ,cAAc,MAAM,EAAE,aAA0B;AACpD,WAAO,IAAI,KAAK,WAAW;AAAA,EAC/B;AAAA,EAEA,IAAI,SAAS;AACT,WAAO,KAAK,cAAc,OAAO,gBAAgB,KAAK,OAAO;AAAA,EACjE;AAAA,EAEA,IAAI,SAAS;AACT,WAAO,KAAK,cAAc,OAAO,gBAAgB,KAAK,OAAO;AAAA,EACjE;AAAA,EAEA,KAAK,WAAW,KAAK,IAAI;AACrB,WAAO;AAAA,EACX;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,OAAO,OAAO,YAAY,IAAI;AAC1B,SAAK,KAAK,OAAO,aAAa,IAAI;AAElC,UAAM,KAAK,cAAc,MAAM,YAAY;AACvC,YAAM,sBAAsB,aAAa;AAAA,QAAK,KAAK,SAAS,MAAM;AAAA,QAAG;AAAA,QAAW,OAC5E,OAAO,MAAM,kCAAkC,CAAC;AAAA,MACpD;AAEA,YAAM,kBAAkB,aAAa;AAAA,QAAK,KAAK,SAAS,MAAM;AAAA,QAAG;AAAA,QAAW,OACxE,OAAO,MAAM,kCAAkC,CAAC;AAAA,MACpD;AAEA,YAAM,qBAAqB;AAAA,QACvB,CAAC,qBAAqB,eAAe;AAAA,QACrC;AAAA,MACJ,EAAE,MAAM,WAAS,OAAO,MAAM,KAAK,CAAC;AAEpC,UAAI,KAAK,SAAS;AACd,cAAM,KAAK,SAAS,MAAM;AAAA,MAC9B;AAEA,WAAK,UAAU,KAAK,UAAU;AAAA,IAClC,CAAC;AAAA,EACL;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|