@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.
Files changed (408) hide show
  1. package/dist/cjs/advertisement/Advertisement.d.ts +119 -0
  2. package/dist/cjs/advertisement/Advertisement.d.ts.map +1 -0
  3. package/dist/cjs/advertisement/Advertisement.js +267 -0
  4. package/dist/cjs/advertisement/Advertisement.js.map +6 -0
  5. package/dist/cjs/advertisement/Advertiser.d.ts +50 -0
  6. package/dist/cjs/advertisement/Advertiser.d.ts.map +1 -0
  7. package/dist/cjs/advertisement/Advertiser.js +81 -0
  8. package/dist/cjs/advertisement/Advertiser.js.map +6 -0
  9. package/dist/cjs/advertisement/CommissioningMode.d.ts +11 -0
  10. package/dist/cjs/advertisement/CommissioningMode.d.ts.map +1 -0
  11. package/dist/cjs/advertisement/CommissioningMode.js +35 -0
  12. package/dist/cjs/advertisement/CommissioningMode.js.map +6 -0
  13. package/dist/cjs/{common/InstanceBroadcaster.d.ts → advertisement/PairingHintBitmap.d.ts} +3 -69
  14. package/dist/cjs/advertisement/PairingHintBitmap.d.ts.map +1 -0
  15. package/dist/cjs/{common/InstanceBroadcaster.js → advertisement/PairingHintBitmap.js} +5 -12
  16. package/dist/cjs/advertisement/PairingHintBitmap.js.map +6 -0
  17. package/dist/cjs/advertisement/ServiceDescription.d.ts +70 -0
  18. package/dist/cjs/advertisement/ServiceDescription.d.ts.map +1 -0
  19. package/dist/cjs/advertisement/ServiceDescription.js +61 -0
  20. package/dist/cjs/advertisement/ServiceDescription.js.map +6 -0
  21. package/dist/cjs/advertisement/ble/BleAdvertisement.d.ts +16 -0
  22. package/dist/cjs/advertisement/ble/BleAdvertisement.d.ts.map +1 -0
  23. package/dist/cjs/advertisement/ble/BleAdvertisement.js +85 -0
  24. package/dist/cjs/advertisement/ble/BleAdvertisement.js.map +6 -0
  25. package/dist/cjs/advertisement/ble/BleAdvertiser.d.ts +66 -0
  26. package/dist/cjs/advertisement/ble/BleAdvertiser.d.ts.map +1 -0
  27. package/dist/cjs/advertisement/ble/BleAdvertiser.js +83 -0
  28. package/dist/cjs/advertisement/ble/BleAdvertiser.js.map +6 -0
  29. package/dist/cjs/advertisement/ble/index.d.ts +8 -0
  30. package/dist/cjs/advertisement/ble/index.d.ts.map +1 -0
  31. package/dist/cjs/advertisement/ble/index.js +25 -0
  32. package/dist/cjs/advertisement/ble/index.js.map +6 -0
  33. package/dist/cjs/advertisement/index.d.ts +13 -0
  34. package/dist/cjs/advertisement/index.d.ts.map +1 -0
  35. package/dist/cjs/advertisement/index.js +30 -0
  36. package/dist/cjs/advertisement/index.js.map +6 -0
  37. package/dist/cjs/advertisement/mdns/CommissionableMdnsAdvertisement.d.ts +21 -0
  38. package/dist/cjs/advertisement/mdns/CommissionableMdnsAdvertisement.d.ts.map +1 -0
  39. package/dist/cjs/advertisement/mdns/CommissionableMdnsAdvertisement.js +104 -0
  40. package/dist/cjs/advertisement/mdns/CommissionableMdnsAdvertisement.js.map +6 -0
  41. package/dist/cjs/advertisement/mdns/CommissionerMdnsAdvertisement.d.ts +20 -0
  42. package/dist/cjs/advertisement/mdns/CommissionerMdnsAdvertisement.d.ts.map +1 -0
  43. package/dist/cjs/advertisement/mdns/CommissionerMdnsAdvertisement.js +70 -0
  44. package/dist/cjs/advertisement/mdns/CommissionerMdnsAdvertisement.js.map +6 -0
  45. package/dist/cjs/advertisement/mdns/MdnsAdvertisement.d.ts +40 -0
  46. package/dist/cjs/advertisement/mdns/MdnsAdvertisement.d.ts.map +1 -0
  47. package/dist/cjs/advertisement/mdns/MdnsAdvertisement.js +145 -0
  48. package/dist/cjs/advertisement/mdns/MdnsAdvertisement.js.map +6 -0
  49. package/dist/cjs/advertisement/mdns/MdnsAdvertiser.d.ts +99 -0
  50. package/dist/cjs/advertisement/mdns/MdnsAdvertiser.d.ts.map +1 -0
  51. package/dist/cjs/advertisement/mdns/MdnsAdvertiser.js +166 -0
  52. package/dist/cjs/advertisement/mdns/MdnsAdvertiser.js.map +6 -0
  53. package/dist/cjs/advertisement/mdns/OperationalMdnsAdvertisement.d.ts +18 -0
  54. package/dist/cjs/advertisement/mdns/OperationalMdnsAdvertisement.d.ts.map +1 -0
  55. package/dist/cjs/advertisement/mdns/OperationalMdnsAdvertisement.js +55 -0
  56. package/dist/cjs/advertisement/mdns/OperationalMdnsAdvertisement.js.map +6 -0
  57. package/dist/cjs/advertisement/mdns/index.d.ts +11 -0
  58. package/dist/cjs/advertisement/mdns/index.d.ts.map +1 -0
  59. package/dist/cjs/advertisement/mdns/index.js +28 -0
  60. package/dist/cjs/advertisement/mdns/index.js.map +6 -0
  61. package/dist/cjs/ble/Ble.d.ts +7 -5
  62. package/dist/cjs/ble/Ble.d.ts.map +1 -1
  63. package/dist/cjs/ble/Ble.js.map +1 -1
  64. package/dist/cjs/ble/BleConsts.d.ts +2 -1
  65. package/dist/cjs/ble/BleConsts.d.ts.map +1 -1
  66. package/dist/cjs/ble/BleConsts.js +3 -1
  67. package/dist/cjs/ble/BleConsts.js.map +1 -1
  68. package/dist/cjs/codec/BtpCodec.d.ts +1 -1
  69. package/dist/cjs/codec/BtpCodec.d.ts.map +1 -1
  70. package/dist/cjs/codec/BtpCodec.js +4 -4
  71. package/dist/cjs/codec/BtpCodec.js.map +1 -1
  72. package/dist/cjs/common/Scanner.d.ts +1 -25
  73. package/dist/cjs/common/Scanner.d.ts.map +1 -1
  74. package/dist/cjs/common/Scanner.js +1 -18
  75. package/dist/cjs/common/Scanner.js.map +1 -1
  76. package/dist/cjs/common/SupportedTransportsBitmap.d.ts +33 -0
  77. package/dist/cjs/common/SupportedTransportsBitmap.d.ts.map +1 -0
  78. package/dist/cjs/common/SupportedTransportsBitmap.js +45 -0
  79. package/dist/cjs/common/SupportedTransportsBitmap.js.map +6 -0
  80. package/dist/cjs/common/index.d.ts +1 -1
  81. package/dist/cjs/common/index.d.ts.map +1 -1
  82. package/dist/cjs/common/index.js +1 -1
  83. package/dist/cjs/common/index.js.map +1 -1
  84. package/dist/cjs/fabric/Fabric.d.ts +1 -0
  85. package/dist/cjs/fabric/Fabric.d.ts.map +1 -1
  86. package/dist/cjs/fabric/Fabric.js +7 -0
  87. package/dist/cjs/fabric/Fabric.js.map +1 -1
  88. package/dist/cjs/index.d.ts +1 -0
  89. package/dist/cjs/index.d.ts.map +1 -1
  90. package/dist/cjs/index.js +1 -0
  91. package/dist/cjs/index.js.map +1 -1
  92. package/dist/{esm/mdns/MdnsScanner.d.ts → cjs/mdns/MdnsClient.d.ts} +11 -14
  93. package/dist/cjs/mdns/MdnsClient.d.ts.map +1 -0
  94. package/dist/cjs/mdns/{MdnsScanner.js → MdnsClient.js} +35 -90
  95. package/dist/cjs/mdns/MdnsClient.js.map +6 -0
  96. package/dist/cjs/mdns/MdnsConsts.d.ts +11 -2
  97. package/dist/cjs/mdns/MdnsConsts.d.ts.map +1 -1
  98. package/dist/cjs/mdns/MdnsConsts.js +31 -4
  99. package/dist/cjs/mdns/MdnsConsts.js.map +1 -1
  100. package/dist/cjs/mdns/MdnsServer.d.ts +13 -22
  101. package/dist/cjs/mdns/MdnsServer.d.ts.map +1 -1
  102. package/dist/cjs/mdns/MdnsServer.js +53 -150
  103. package/dist/cjs/mdns/MdnsServer.js.map +2 -2
  104. package/dist/cjs/mdns/MdnsService.d.ts +4 -5
  105. package/dist/cjs/mdns/MdnsService.d.ts.map +1 -1
  106. package/dist/cjs/mdns/MdnsService.js +22 -23
  107. package/dist/cjs/mdns/MdnsService.js.map +1 -1
  108. package/dist/cjs/mdns/MdnsSocket.d.ts +32 -0
  109. package/dist/cjs/mdns/MdnsSocket.d.ts.map +1 -0
  110. package/dist/cjs/mdns/MdnsSocket.js +144 -0
  111. package/dist/cjs/mdns/MdnsSocket.js.map +6 -0
  112. package/dist/cjs/mdns/index.d.ts +2 -3
  113. package/dist/cjs/mdns/index.d.ts.map +1 -1
  114. package/dist/cjs/mdns/index.js +2 -3
  115. package/dist/cjs/mdns/index.js.map +1 -1
  116. package/dist/cjs/peer/ControllerCommissioner.js +2 -2
  117. package/dist/cjs/peer/ControllerCommissioner.js.map +1 -1
  118. package/dist/cjs/peer/ControllerDiscovery.d.ts +3 -3
  119. package/dist/cjs/peer/ControllerDiscovery.d.ts.map +1 -1
  120. package/dist/cjs/peer/ControllerDiscovery.js.map +1 -1
  121. package/dist/cjs/peer/PeerSet.d.ts.map +1 -1
  122. package/dist/cjs/peer/PeerSet.js +10 -5
  123. package/dist/cjs/peer/PeerSet.js.map +1 -1
  124. package/dist/cjs/protocol/DeviceAdvertiser.d.ts +23 -18
  125. package/dist/cjs/protocol/DeviceAdvertiser.d.ts.map +1 -1
  126. package/dist/cjs/protocol/DeviceAdvertiser.js +130 -129
  127. package/dist/cjs/protocol/DeviceAdvertiser.js.map +1 -1
  128. package/dist/cjs/protocol/DeviceCommissioner.d.ts +0 -1
  129. package/dist/cjs/protocol/DeviceCommissioner.d.ts.map +1 -1
  130. package/dist/cjs/protocol/DeviceCommissioner.js +44 -44
  131. package/dist/cjs/protocol/DeviceCommissioner.js.map +1 -1
  132. package/dist/cjs/protocol/ExchangeManager.js +1 -1
  133. package/dist/cjs/protocol/ExchangeManager.js.map +1 -1
  134. package/dist/cjs/protocol/MessageExchange.d.ts +1 -1
  135. package/dist/cjs/protocol/MessageExchange.d.ts.map +1 -1
  136. package/dist/cjs/protocol/MessageExchange.js +6 -8
  137. package/dist/cjs/protocol/MessageExchange.js.map +1 -1
  138. package/dist/cjs/protocol/ProtocolHandler.d.ts +4 -0
  139. package/dist/cjs/protocol/ProtocolHandler.d.ts.map +1 -1
  140. package/dist/cjs/protocol/ProtocolStatusMessage.d.ts +8 -4
  141. package/dist/cjs/protocol/ProtocolStatusMessage.d.ts.map +1 -1
  142. package/dist/cjs/protocol/ProtocolStatusMessage.js +23 -8
  143. package/dist/cjs/protocol/ProtocolStatusMessage.js.map +1 -1
  144. package/dist/cjs/securechannel/SecureChannelMessenger.js +2 -2
  145. package/dist/cjs/securechannel/SecureChannelMessenger.js.map +1 -1
  146. package/dist/cjs/securechannel/SecureChannelProtocol.js +1 -1
  147. package/dist/cjs/securechannel/SecureChannelProtocol.js.map +1 -1
  148. package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.d.ts +3 -3
  149. package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.d.ts.map +1 -1
  150. package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.js +3 -3
  151. package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.js.map +1 -1
  152. package/dist/cjs/session/NodeSession.d.ts +1 -0
  153. package/dist/cjs/session/NodeSession.d.ts.map +1 -1
  154. package/dist/cjs/session/NodeSession.js +3 -0
  155. package/dist/cjs/session/NodeSession.js.map +1 -1
  156. package/dist/cjs/session/Session.d.ts +3 -33
  157. package/dist/cjs/session/Session.d.ts.map +1 -1
  158. package/dist/cjs/session/Session.js +4 -9
  159. package/dist/cjs/session/Session.js.map +1 -1
  160. package/dist/cjs/session/SessionIntervals.d.ts +36 -0
  161. package/dist/cjs/session/SessionIntervals.d.ts.map +1 -0
  162. package/dist/cjs/session/SessionIntervals.js +51 -0
  163. package/dist/cjs/session/SessionIntervals.js.map +6 -0
  164. package/dist/cjs/session/SessionManager.d.ts +1 -1
  165. package/dist/cjs/session/SessionManager.d.ts.map +1 -1
  166. package/dist/cjs/session/SessionManager.js +11 -12
  167. package/dist/cjs/session/SessionManager.js.map +1 -1
  168. package/dist/cjs/session/pase/PaseMessages.js +2 -2
  169. package/dist/cjs/session/pase/PaseMessages.js.map +1 -1
  170. package/dist/esm/advertisement/Advertisement.d.ts +119 -0
  171. package/dist/esm/advertisement/Advertisement.d.ts.map +1 -0
  172. package/dist/esm/advertisement/Advertisement.js +247 -0
  173. package/dist/esm/advertisement/Advertisement.js.map +6 -0
  174. package/dist/esm/advertisement/Advertiser.d.ts +50 -0
  175. package/dist/esm/advertisement/Advertiser.d.ts.map +1 -0
  176. package/dist/esm/advertisement/Advertiser.js +61 -0
  177. package/dist/esm/advertisement/Advertiser.js.map +6 -0
  178. package/dist/esm/advertisement/CommissioningMode.d.ts +11 -0
  179. package/dist/esm/advertisement/CommissioningMode.d.ts.map +1 -0
  180. package/dist/esm/advertisement/CommissioningMode.js +15 -0
  181. package/dist/esm/advertisement/CommissioningMode.js.map +6 -0
  182. package/dist/esm/{common/InstanceBroadcaster.d.ts → advertisement/PairingHintBitmap.d.ts} +3 -69
  183. package/dist/esm/advertisement/PairingHintBitmap.d.ts.map +1 -0
  184. package/dist/esm/{common/InstanceBroadcaster.js → advertisement/PairingHintBitmap.js} +2 -9
  185. package/dist/esm/{common/InstanceBroadcaster.js.map → advertisement/PairingHintBitmap.js.map} +3 -3
  186. package/dist/esm/advertisement/ServiceDescription.d.ts +70 -0
  187. package/dist/esm/advertisement/ServiceDescription.d.ts.map +1 -0
  188. package/dist/esm/advertisement/ServiceDescription.js +41 -0
  189. package/dist/esm/advertisement/ServiceDescription.js.map +6 -0
  190. package/dist/esm/advertisement/ble/BleAdvertisement.d.ts +16 -0
  191. package/dist/esm/advertisement/ble/BleAdvertisement.d.ts.map +1 -0
  192. package/dist/esm/advertisement/ble/BleAdvertisement.js +65 -0
  193. package/dist/esm/advertisement/ble/BleAdvertisement.js.map +6 -0
  194. package/dist/esm/advertisement/ble/BleAdvertiser.d.ts +66 -0
  195. package/dist/esm/advertisement/ble/BleAdvertiser.d.ts.map +1 -0
  196. package/dist/esm/advertisement/ble/BleAdvertiser.js +63 -0
  197. package/dist/esm/advertisement/ble/BleAdvertiser.js.map +6 -0
  198. package/dist/esm/advertisement/ble/index.d.ts +8 -0
  199. package/dist/esm/advertisement/ble/index.d.ts.map +1 -0
  200. package/dist/esm/advertisement/ble/index.js +8 -0
  201. package/dist/esm/advertisement/ble/index.js.map +6 -0
  202. package/dist/esm/advertisement/index.d.ts +13 -0
  203. package/dist/esm/advertisement/index.d.ts.map +1 -0
  204. package/dist/esm/advertisement/index.js +13 -0
  205. package/dist/esm/advertisement/index.js.map +6 -0
  206. package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.d.ts +21 -0
  207. package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.d.ts.map +1 -0
  208. package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.js +95 -0
  209. package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.js.map +6 -0
  210. package/dist/esm/advertisement/mdns/CommissionerMdnsAdvertisement.d.ts +20 -0
  211. package/dist/esm/advertisement/mdns/CommissionerMdnsAdvertisement.d.ts.map +1 -0
  212. package/dist/esm/advertisement/mdns/CommissionerMdnsAdvertisement.js +54 -0
  213. package/dist/esm/advertisement/mdns/CommissionerMdnsAdvertisement.js.map +6 -0
  214. package/dist/esm/advertisement/mdns/MdnsAdvertisement.d.ts +40 -0
  215. package/dist/esm/advertisement/mdns/MdnsAdvertisement.d.ts.map +1 -0
  216. package/dist/esm/advertisement/mdns/MdnsAdvertisement.js +125 -0
  217. package/dist/esm/advertisement/mdns/MdnsAdvertisement.js.map +6 -0
  218. package/dist/esm/advertisement/mdns/MdnsAdvertiser.d.ts +99 -0
  219. package/dist/esm/advertisement/mdns/MdnsAdvertiser.d.ts.map +1 -0
  220. package/dist/esm/advertisement/mdns/MdnsAdvertiser.js +146 -0
  221. package/dist/esm/advertisement/mdns/MdnsAdvertiser.js.map +6 -0
  222. package/dist/esm/advertisement/mdns/OperationalMdnsAdvertisement.d.ts +18 -0
  223. package/dist/esm/advertisement/mdns/OperationalMdnsAdvertisement.d.ts.map +1 -0
  224. package/dist/esm/advertisement/mdns/OperationalMdnsAdvertisement.js +40 -0
  225. package/dist/esm/advertisement/mdns/OperationalMdnsAdvertisement.js.map +6 -0
  226. package/dist/esm/advertisement/mdns/index.d.ts +11 -0
  227. package/dist/esm/advertisement/mdns/index.d.ts.map +1 -0
  228. package/dist/esm/advertisement/mdns/index.js +11 -0
  229. package/dist/esm/advertisement/mdns/index.js.map +6 -0
  230. package/dist/esm/ble/Ble.d.ts +7 -5
  231. package/dist/esm/ble/Ble.d.ts.map +1 -1
  232. package/dist/esm/ble/Ble.js.map +1 -1
  233. package/dist/esm/ble/BleConsts.d.ts +2 -1
  234. package/dist/esm/ble/BleConsts.d.ts.map +1 -1
  235. package/dist/esm/ble/BleConsts.js +3 -1
  236. package/dist/esm/ble/BleConsts.js.map +1 -1
  237. package/dist/esm/codec/BtpCodec.d.ts +1 -1
  238. package/dist/esm/codec/BtpCodec.d.ts.map +1 -1
  239. package/dist/esm/codec/BtpCodec.js +4 -4
  240. package/dist/esm/codec/BtpCodec.js.map +1 -1
  241. package/dist/esm/common/Scanner.d.ts +1 -25
  242. package/dist/esm/common/Scanner.d.ts.map +1 -1
  243. package/dist/esm/common/Scanner.js +1 -18
  244. package/dist/esm/common/Scanner.js.map +1 -1
  245. package/dist/esm/common/SupportedTransportsBitmap.d.ts +33 -0
  246. package/dist/esm/common/SupportedTransportsBitmap.d.ts.map +1 -0
  247. package/dist/esm/common/SupportedTransportsBitmap.js +25 -0
  248. package/dist/esm/common/SupportedTransportsBitmap.js.map +6 -0
  249. package/dist/esm/common/index.d.ts +1 -1
  250. package/dist/esm/common/index.d.ts.map +1 -1
  251. package/dist/esm/common/index.js +1 -1
  252. package/dist/esm/fabric/Fabric.d.ts +1 -0
  253. package/dist/esm/fabric/Fabric.d.ts.map +1 -1
  254. package/dist/esm/fabric/Fabric.js +7 -0
  255. package/dist/esm/fabric/Fabric.js.map +1 -1
  256. package/dist/esm/index.d.ts +1 -0
  257. package/dist/esm/index.d.ts.map +1 -1
  258. package/dist/esm/index.js +1 -0
  259. package/dist/esm/index.js.map +1 -1
  260. package/dist/{cjs/mdns/MdnsScanner.d.ts → esm/mdns/MdnsClient.d.ts} +11 -14
  261. package/dist/esm/mdns/MdnsClient.d.ts.map +1 -0
  262. package/dist/esm/mdns/{MdnsScanner.js → MdnsClient.js} +34 -92
  263. package/dist/esm/mdns/MdnsClient.js.map +6 -0
  264. package/dist/esm/mdns/MdnsConsts.d.ts +11 -2
  265. package/dist/esm/mdns/MdnsConsts.d.ts.map +1 -1
  266. package/dist/esm/mdns/MdnsConsts.js +31 -4
  267. package/dist/esm/mdns/MdnsConsts.js.map +1 -1
  268. package/dist/esm/mdns/MdnsServer.d.ts +13 -22
  269. package/dist/esm/mdns/MdnsServer.d.ts.map +1 -1
  270. package/dist/esm/mdns/MdnsServer.js +55 -155
  271. package/dist/esm/mdns/MdnsServer.js.map +2 -2
  272. package/dist/esm/mdns/MdnsService.d.ts +4 -5
  273. package/dist/esm/mdns/MdnsService.d.ts.map +1 -1
  274. package/dist/esm/mdns/MdnsService.js +22 -24
  275. package/dist/esm/mdns/MdnsService.js.map +1 -1
  276. package/dist/esm/mdns/MdnsSocket.d.ts +32 -0
  277. package/dist/esm/mdns/MdnsSocket.d.ts.map +1 -0
  278. package/dist/esm/mdns/MdnsSocket.js +133 -0
  279. package/dist/esm/mdns/MdnsSocket.js.map +6 -0
  280. package/dist/esm/mdns/index.d.ts +2 -3
  281. package/dist/esm/mdns/index.d.ts.map +1 -1
  282. package/dist/esm/mdns/index.js +2 -3
  283. package/dist/esm/mdns/index.js.map +1 -1
  284. package/dist/esm/peer/ControllerCommissioner.js +2 -2
  285. package/dist/esm/peer/ControllerCommissioner.js.map +1 -1
  286. package/dist/esm/peer/ControllerDiscovery.d.ts +3 -3
  287. package/dist/esm/peer/ControllerDiscovery.d.ts.map +1 -1
  288. package/dist/esm/peer/ControllerDiscovery.js.map +1 -1
  289. package/dist/esm/peer/PeerSet.d.ts.map +1 -1
  290. package/dist/esm/peer/PeerSet.js +10 -5
  291. package/dist/esm/peer/PeerSet.js.map +1 -1
  292. package/dist/esm/protocol/DeviceAdvertiser.d.ts +23 -18
  293. package/dist/esm/protocol/DeviceAdvertiser.d.ts.map +1 -1
  294. package/dist/esm/protocol/DeviceAdvertiser.js +131 -139
  295. package/dist/esm/protocol/DeviceAdvertiser.js.map +1 -1
  296. package/dist/esm/protocol/DeviceCommissioner.d.ts +0 -1
  297. package/dist/esm/protocol/DeviceCommissioner.d.ts.map +1 -1
  298. package/dist/esm/protocol/DeviceCommissioner.js +47 -47
  299. package/dist/esm/protocol/DeviceCommissioner.js.map +1 -1
  300. package/dist/esm/protocol/ExchangeManager.js +1 -1
  301. package/dist/esm/protocol/ExchangeManager.js.map +1 -1
  302. package/dist/esm/protocol/MessageExchange.d.ts +1 -1
  303. package/dist/esm/protocol/MessageExchange.d.ts.map +1 -1
  304. package/dist/esm/protocol/MessageExchange.js +6 -12
  305. package/dist/esm/protocol/MessageExchange.js.map +1 -1
  306. package/dist/esm/protocol/ProtocolHandler.d.ts +4 -0
  307. package/dist/esm/protocol/ProtocolHandler.d.ts.map +1 -1
  308. package/dist/esm/protocol/ProtocolStatusMessage.d.ts +8 -4
  309. package/dist/esm/protocol/ProtocolStatusMessage.d.ts.map +1 -1
  310. package/dist/esm/protocol/ProtocolStatusMessage.js +24 -9
  311. package/dist/esm/protocol/ProtocolStatusMessage.js.map +1 -1
  312. package/dist/esm/securechannel/SecureChannelMessenger.js +3 -3
  313. package/dist/esm/securechannel/SecureChannelMessenger.js.map +1 -1
  314. package/dist/esm/securechannel/SecureChannelProtocol.js +2 -2
  315. package/dist/esm/securechannel/SecureChannelProtocol.js.map +1 -1
  316. package/dist/esm/securechannel/SecureChannelStatusMessageSchema.d.ts +3 -3
  317. package/dist/esm/securechannel/SecureChannelStatusMessageSchema.d.ts.map +1 -1
  318. package/dist/esm/securechannel/SecureChannelStatusMessageSchema.js +3 -3
  319. package/dist/esm/securechannel/SecureChannelStatusMessageSchema.js.map +1 -1
  320. package/dist/esm/session/NodeSession.d.ts +1 -0
  321. package/dist/esm/session/NodeSession.d.ts.map +1 -1
  322. package/dist/esm/session/NodeSession.js +3 -0
  323. package/dist/esm/session/NodeSession.js.map +1 -1
  324. package/dist/esm/session/Session.d.ts +3 -33
  325. package/dist/esm/session/Session.d.ts.map +1 -1
  326. package/dist/esm/session/Session.js +4 -9
  327. package/dist/esm/session/Session.js.map +1 -1
  328. package/dist/esm/session/SessionIntervals.d.ts +36 -0
  329. package/dist/esm/session/SessionIntervals.d.ts.map +1 -0
  330. package/dist/esm/session/SessionIntervals.js +31 -0
  331. package/dist/esm/session/SessionIntervals.js.map +6 -0
  332. package/dist/esm/session/SessionManager.d.ts +1 -1
  333. package/dist/esm/session/SessionManager.d.ts.map +1 -1
  334. package/dist/esm/session/SessionManager.js +10 -14
  335. package/dist/esm/session/SessionManager.js.map +1 -1
  336. package/dist/esm/session/pase/PaseMessages.js +1 -1
  337. package/package.json +6 -6
  338. package/src/advertisement/Advertisement.ts +348 -0
  339. package/src/advertisement/Advertiser.ts +83 -0
  340. package/src/advertisement/CommissioningMode.ts +11 -0
  341. package/src/{common/InstanceBroadcaster.ts → advertisement/PairingHintBitmap.ts} +1 -92
  342. package/src/advertisement/ServiceDescription.ts +110 -0
  343. package/src/advertisement/ble/BleAdvertisement.ts +90 -0
  344. package/src/advertisement/ble/BleAdvertiser.ts +116 -0
  345. package/src/advertisement/ble/index.ts +8 -0
  346. package/src/advertisement/index.ts +13 -0
  347. package/src/advertisement/mdns/CommissionableMdnsAdvertisement.ts +118 -0
  348. package/src/advertisement/mdns/CommissionerMdnsAdvertisement.ts +73 -0
  349. package/src/advertisement/mdns/MdnsAdvertisement.ts +167 -0
  350. package/src/advertisement/mdns/MdnsAdvertiser.ts +248 -0
  351. package/src/advertisement/mdns/OperationalMdnsAdvertisement.ts +50 -0
  352. package/src/advertisement/mdns/index.ts +11 -0
  353. package/src/ble/Ble.ts +8 -5
  354. package/src/ble/BleConsts.ts +2 -1
  355. package/src/codec/BtpCodec.ts +4 -3
  356. package/src/common/Scanner.ts +1 -17
  357. package/src/common/SupportedTransportsBitmap.ts +25 -0
  358. package/src/common/index.ts +1 -1
  359. package/src/fabric/Fabric.ts +8 -0
  360. package/src/index.ts +1 -0
  361. package/src/mdns/{MdnsScanner.ts → MdnsClient.ts} +34 -103
  362. package/src/mdns/MdnsConsts.ts +27 -2
  363. package/src/mdns/MdnsServer.ts +76 -198
  364. package/src/mdns/MdnsService.ts +24 -27
  365. package/src/mdns/MdnsSocket.ts +179 -0
  366. package/src/mdns/index.ts +2 -3
  367. package/src/peer/ControllerCommissioner.ts +2 -2
  368. package/src/peer/ControllerDiscovery.ts +3 -3
  369. package/src/peer/PeerSet.ts +15 -9
  370. package/src/protocol/DeviceAdvertiser.ts +161 -151
  371. package/src/protocol/DeviceCommissioner.ts +65 -75
  372. package/src/protocol/ExchangeManager.ts +1 -1
  373. package/src/protocol/MessageExchange.ts +8 -14
  374. package/src/protocol/ProtocolHandler.ts +7 -0
  375. package/src/protocol/ProtocolStatusMessage.ts +26 -10
  376. package/src/securechannel/SecureChannelMessenger.ts +3 -3
  377. package/src/securechannel/SecureChannelProtocol.ts +2 -2
  378. package/src/securechannel/SecureChannelStatusMessageSchema.ts +3 -3
  379. package/src/session/NodeSession.ts +4 -0
  380. package/src/session/Session.ts +6 -42
  381. package/src/session/SessionIntervals.ts +57 -0
  382. package/src/session/SessionManager.ts +9 -13
  383. package/src/session/pase/PaseMessages.ts +1 -1
  384. package/dist/cjs/common/InstanceBroadcaster.d.ts.map +0 -1
  385. package/dist/cjs/common/InstanceBroadcaster.js.map +0 -6
  386. package/dist/cjs/mdns/MdnsBroadcaster.d.ts +0 -34
  387. package/dist/cjs/mdns/MdnsBroadcaster.d.ts.map +0 -1
  388. package/dist/cjs/mdns/MdnsBroadcaster.js +0 -365
  389. package/dist/cjs/mdns/MdnsBroadcaster.js.map +0 -6
  390. package/dist/cjs/mdns/MdnsInstanceBroadcaster.d.ts +0 -28
  391. package/dist/cjs/mdns/MdnsInstanceBroadcaster.d.ts.map +0 -1
  392. package/dist/cjs/mdns/MdnsInstanceBroadcaster.js +0 -87
  393. package/dist/cjs/mdns/MdnsInstanceBroadcaster.js.map +0 -6
  394. package/dist/cjs/mdns/MdnsScanner.d.ts.map +0 -1
  395. package/dist/cjs/mdns/MdnsScanner.js.map +0 -6
  396. package/dist/esm/common/InstanceBroadcaster.d.ts.map +0 -1
  397. package/dist/esm/mdns/MdnsBroadcaster.d.ts +0 -34
  398. package/dist/esm/mdns/MdnsBroadcaster.d.ts.map +0 -1
  399. package/dist/esm/mdns/MdnsBroadcaster.js +0 -378
  400. package/dist/esm/mdns/MdnsBroadcaster.js.map +0 -6
  401. package/dist/esm/mdns/MdnsInstanceBroadcaster.d.ts +0 -28
  402. package/dist/esm/mdns/MdnsInstanceBroadcaster.d.ts.map +0 -1
  403. package/dist/esm/mdns/MdnsInstanceBroadcaster.js +0 -67
  404. package/dist/esm/mdns/MdnsInstanceBroadcaster.js.map +0 -6
  405. package/dist/esm/mdns/MdnsScanner.d.ts.map +0 -1
  406. package/dist/esm/mdns/MdnsScanner.js.map +0 -6
  407. package/src/mdns/MdnsBroadcaster.ts +0 -451
  408. package/src/mdns/MdnsInstanceBroadcaster.ts +0 -88
@@ -59,6 +59,7 @@ export declare class Fabric {
59
59
  destinationIdsFor(nodeId: NodeId, random: Uint8Array): Promise<Uint8Array<ArrayBufferLike>[]>;
60
60
  addSession(session: Session): void;
61
61
  removeSession(session: Session): void;
62
+ hasSessionForPeer(peerNodeId: NodeId): true | undefined;
62
63
  addRemoveCallback(callback: () => MaybePromise<void>): void;
63
64
  deleteRemoveCallback(callback: () => MaybePromise<void>): void;
64
65
  set persistCallback(callback: (isUpdate?: boolean) => MaybePromise<void>);
@@ -1 +1 @@
1
- {"version":3,"file":"Fabric.d.ts","sourceRoot":"","sources":["../../../src/fabric/Fabric.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Fabric.d.ts","sourceRoot":"","sources":["../../../src/fabric/Fabric.ts"],"names":[],"mappings":"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"}
@@ -169,6 +169,13 @@ class Fabric {
169
169
  removeSession(session) {
170
170
  this.#sessions.delete(session);
171
171
  }
172
+ hasSessionForPeer(peerNodeId) {
173
+ for (const session of this.#sessions) {
174
+ if (session.peerNodeId === peerNodeId) {
175
+ return true;
176
+ }
177
+ }
178
+ }
172
179
  addRemoveCallback(callback) {
173
180
  this.#removeCallbacks.push(callback);
174
181
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/fabric/Fabric.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  export * from "./action/index.js";
7
+ export * from "./advertisement/index.js";
7
8
  export * from "./ble/index.js";
8
9
  export * from "./certificate/index.js";
9
10
  export * from "./cluster/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC"}
package/dist/esm/index.js CHANGED
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  export * from "./action/index.js";
7
+ export * from "./advertisement/index.js";
7
8
  export * from "./ble/index.js";
8
9
  export * from "./certificate/index.js";
9
10
  export * from "./cluster/index.js";
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
5
5
  "names": []
6
6
  }
@@ -3,10 +3,11 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { BasicSet, ChannelType, Diagnostic, Lifespan, Network, ServerAddressIp, UdpMulticastServer } from "#general";
6
+ import { BasicSet, ChannelType, Diagnostic, Lifespan, ServerAddressIp } from "#general";
7
7
  import { NodeId } from "#types";
8
8
  import { CommissionableDevice, CommissionableDeviceIdentifiers, DiscoveryData, OperationalDevice, Scanner } from "../common/Scanner.js";
9
9
  import { Fabric } from "../fabric/Fabric.js";
10
+ import { MdnsSocket } from "./MdnsSocket.js";
10
11
  type MatterServerRecordWithExpire = ServerAddressIp & Lifespan;
11
12
  /**
12
13
  * Interface to add criteria for MDNS discovery a node is interested in
@@ -31,14 +32,10 @@ export interface MdnsScannerTargetCriteria {
31
32
  * This class implements the Scanner interface for a MDNS scanner via UDP messages in a IP based network. It sends out
32
33
  * queries to discover various types of Matter device types and listens for announcements.
33
34
  */
34
- export declare class MdnsScanner implements Scanner {
35
+ export declare class MdnsClient implements Scanner {
35
36
  #private;
36
37
  readonly type = ChannelType.UDP;
37
- static create(network: Network, options?: {
38
- enableIpv4?: boolean;
39
- netInterface?: string;
40
- }): Promise<MdnsScanner>;
41
- constructor(multicastServer: UdpMulticastServer, enableIpv4?: boolean);
38
+ constructor(socket: MdnsSocket);
42
39
  /** Set to add or delete criteria for MDNS discovery */
43
40
  get targetCriteriaProviders(): BasicSet<MdnsScannerTargetCriteria, MdnsScannerTargetCriteria>;
44
41
  /**
@@ -70,17 +67,17 @@ export declare class MdnsScanner implements Scanner {
70
67
  SII?: number | undefined;
71
68
  SAI?: number | undefined;
72
69
  SAT?: number | undefined;
73
- VP?: string | undefined;
74
- DT?: number | undefined;
75
70
  DN?: string | undefined;
76
- RI?: string | undefined;
77
- PH?: number | undefined;
78
- PI?: string | undefined;
71
+ DT?: number | undefined;
72
+ VP?: string | undefined;
79
73
  T?: number | undefined;
80
74
  ICD?: number | undefined;
81
- deviceIdentifier: string;
82
75
  D: number;
83
76
  CM: number;
77
+ PH?: number | undefined;
78
+ PI?: string | undefined;
79
+ RI?: string | undefined;
80
+ deviceIdentifier: string;
84
81
  instanceId: string;
85
82
  SD: number;
86
83
  V?: number;
@@ -94,4 +91,4 @@ export declare class MdnsScanner implements Scanner {
94
91
  static deviceAddressDiagnostics(addresses: Map<string, MatterServerRecordWithExpire>): (Record<string, unknown> & Diagnostic)[];
95
92
  }
96
93
  export {};
97
- //# sourceMappingURL=MdnsScanner.d.ts.map
94
+ //# sourceMappingURL=MdnsClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MdnsClient.d.ts","sourceRoot":"","sources":["../../../src/mdns/MdnsClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,QAAQ,EAER,WAAW,EACX,UAAU,EAQV,QAAQ,EAGR,eAAe,EAMlB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,MAAM,EAAY,MAAM,QAAQ,CAAC;AAC1C,OAAO,EACH,oBAAoB,EACpB,+BAA+B,EAC/B,aAAa,EACb,iBAAiB,EACjB,OAAO,EACV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAY7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAM7C,KAAK,4BAA4B,GAAG,eAAe,GAAG,QAAQ,CAAC;AAoC/D;;;;;;;;;GASG;AACH,MAAM,WAAW,yBAAyB;IACtC,gDAAgD;IAChD,cAAc,EAAE,OAAO,CAAC;IAExB,mCAAmC;IACnC,kBAAkB,EAAE;QAChB,aAAa,EAAE,UAAU,CAAC;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;KACnB,EAAE,CAAC;CACP;AAED;;;GAGG;AACH,qBAAa,UAAW,YAAW,OAAO;;IACtC,QAAQ,CAAC,IAAI,mBAAmB;gBAyCpB,MAAM,EAAE,UAAU;IAW9B,uDAAuD;IACvD,IAAI,uBAAuB,mEAE1B;IAkTD;;;OAGG;IACG,qBAAqB,CACvB,EAAE,aAAa,EAAE,EAAE,MAAM,EACzB,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,MAAM,EACvB,qBAAqB,UAAQ,GAC9B,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAwBzC,gCAAgC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,UAAO;IAKtF,mCAAmC,CAAC,UAAU,EAAE,+BAA+B,EAAE,cAAc,UAAO;IAQtG,8BAA8B,CAAC,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAoLxE;;;;;;;OAOG;IACG,yBAAyB,CAC3B,UAAU,EAAE,+BAA+B,EAC3C,cAAc,SAAI,EAClB,qBAAqB,UAAQ,GAC9B,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAiBlC;;;OAGG;IACG,qCAAqC,CACvC,UAAU,EAAE,+BAA+B,EAC3C,QAAQ,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,EAChD,cAAc,CAAC,EAAE,MAAM,EACvB,YAAY,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAC7B,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAiDlC,kCAAkC,CAAC,UAAU,EAAE,+BAA+B;mBAlOvD,eAAe,EAAE;;;;;;;;;;;;;;;;;oBAxfxB,MAAM;YACd,MAAM;YACN,MAAM;YACN,MAAM;;IA2tBd;;OAEG;IACG,KAAK;IA6tBX,MAAM,CAAC,wBAAwB,CAAC,IAAI,EAAE,aAAa;IAmBnD,MAAM,CAAC,wBAAwB,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,4BAA4B,CAAC;CASvF"}
@@ -8,17 +8,14 @@ import {
8
8
  Bytes,
9
9
  ChannelType,
10
10
  Diagnostic,
11
- DnsCodec,
12
11
  DnsMessageType,
13
12
  DnsRecordClass,
14
13
  DnsRecordType,
15
14
  ImplementationError,
16
15
  InternalError,
17
16
  Logger,
18
- MAX_MDNS_MESSAGE_SIZE,
19
17
  ObserverGroup,
20
18
  Time,
21
- UdpMulticastServer,
22
19
  createPromise,
23
20
  isIPv6
24
21
  } from "#general";
@@ -26,33 +23,19 @@ import { NodeId, VendorId } from "#types";
26
23
  import {
27
24
  MATTER_COMMISSION_SERVICE_QNAME,
28
25
  MATTER_SERVICE_QNAME,
26
+ getCommissionableDeviceQname,
29
27
  getCommissioningModeQname,
30
- getDeviceInstanceQname,
31
- getDeviceMatterQname,
32
28
  getDeviceTypeQname,
33
29
  getLongDiscriminatorQname,
30
+ getOperationalDeviceQname,
34
31
  getShortDiscriminatorQname,
35
32
  getVendorQname
36
33
  } from "./MdnsConsts.js";
37
- import { MDNS_BROADCAST_IPV4, MDNS_BROADCAST_IPV6, MDNS_BROADCAST_PORT } from "./MdnsServer.js";
38
- const logger = Logger.get("MdnsScanner");
34
+ const logger = Logger.get("MdnsClient");
39
35
  const MDNS_EXPIRY_GRACE_PERIOD_FACTOR = 1.05;
40
36
  const START_ANNOUNCE_INTERVAL_SECONDS = 1.5;
41
- class MdnsScanner {
37
+ class MdnsClient {
42
38
  type = ChannelType.UDP;
43
- static async create(network, options) {
44
- const { enableIpv4, netInterface } = options ?? {};
45
- return new MdnsScanner(
46
- await UdpMulticastServer.create({
47
- network,
48
- netInterface,
49
- broadcastAddressIpv4: enableIpv4 ? MDNS_BROADCAST_IPV4 : void 0,
50
- broadcastAddressIpv6: MDNS_BROADCAST_IPV6,
51
- listeningPort: MDNS_BROADCAST_PORT
52
- }),
53
- enableIpv4
54
- );
55
- }
56
39
  /** Active announces by queryId with queries and known answers */
57
40
  #activeAnnounceQueries = /* @__PURE__ */ new Map();
58
41
  /** Known IP addresses by network interface */
@@ -67,8 +50,7 @@ class MdnsScanner {
67
50
  #nextAnnounceIntervalSeconds = START_ANNOUNCE_INTERVAL_SECONDS;
68
51
  #periodicTimer;
69
52
  #closing = false;
70
- #multicastServer;
71
- #enableIpv4;
53
+ #socket;
72
54
  #targetCriteriaProviders = new BasicSet();
73
55
  #scanForCommissionableDevices = false;
74
56
  #hasCommissionableWaiters = false;
@@ -76,12 +58,9 @@ class MdnsScanner {
76
58
  #observers = new ObserverGroup();
77
59
  /** True, if any node is interested in MDNS traffic, else we ignore all traffic */
78
60
  #listening = false;
79
- constructor(multicastServer, enableIpv4) {
80
- multicastServer.onMessage(
81
- (message, remoteIp, netInterface) => this.#handleDnsMessage(message, remoteIp, netInterface)
82
- );
83
- this.#multicastServer = multicastServer;
84
- this.#enableIpv4 = enableIpv4;
61
+ constructor(socket) {
62
+ this.#socket = socket;
63
+ this.#observers.on(this.#socket.receipt, this.#handleMessage.bind(this));
85
64
  this.#periodicTimer = Time.getPeriodicTimer(
86
65
  "Discovered node expiration",
87
66
  60 * 1e3,
@@ -173,46 +152,11 @@ class MdnsScanner {
173
152
  60 * 60
174
153
  /* 1 hour */
175
154
  );
176
- const answersToSend = [...answers];
177
- const dnsMessageDataToSend = {
178
- messageType: DnsMessageType.TruncatedQuery,
179
- transactionId: 0,
155
+ await this.#socket.send({
156
+ messageType: DnsMessageType.Query,
180
157
  queries,
181
- authorities: [],
182
- answers: [],
183
- additionalRecords: []
184
- };
185
- const emptyDnsMessage = DnsCodec.encode(dnsMessageDataToSend);
186
- let dnsMessageSize = emptyDnsMessage.length;
187
- while (true) {
188
- if (answersToSend.length > 0) {
189
- const nextAnswer = answersToSend.shift();
190
- if (nextAnswer === void 0) {
191
- break;
192
- }
193
- const nextAnswerEncoded = DnsCodec.encodeRecord(nextAnswer);
194
- dnsMessageSize += nextAnswerEncoded.length;
195
- if (dnsMessageSize > MAX_MDNS_MESSAGE_SIZE) {
196
- if (dnsMessageDataToSend.answers.length === 0) {
197
- logger.warn(
198
- `MDNS Query with ${Diagnostic.json(
199
- queries
200
- )} is too big to fit into a single MDNS message. Send anyway, but please report!`
201
- );
202
- }
203
- await this.#multicastServer.send(DnsCodec.encode(dnsMessageDataToSend));
204
- dnsMessageDataToSend.queries.length = 0;
205
- dnsMessageDataToSend.answers.length = 0;
206
- dnsMessageSize = emptyDnsMessage.length + nextAnswerEncoded.length;
207
- }
208
- dnsMessageDataToSend.answers.push(nextAnswerEncoded);
209
- } else {
210
- break;
211
- }
212
- }
213
- await this.#multicastServer.send(
214
- DnsCodec.encode({ ...dnsMessageDataToSend, messageType: DnsMessageType.Query })
215
- );
158
+ answers
159
+ });
216
160
  }
217
161
  /**
218
162
  * Set new DnsQuery records to the list of active queries to discover devices in the network and start sending them
@@ -388,7 +332,7 @@ class MdnsScanner {
388
332
  }
389
333
  #createOperationalMatterQName(operationalId, nodeId) {
390
334
  const operationalIdString = Bytes.toHex(operationalId).toUpperCase();
391
- return getDeviceMatterQname(operationalIdString, NodeId.toHexString(nodeId));
335
+ return getOperationalDeviceQname(operationalIdString, NodeId.toHexString(nodeId));
392
336
  }
393
337
  /**
394
338
  * Method to find an operational device (already commissioned) and return a promise with the list of discovered
@@ -472,7 +416,7 @@ class MdnsScanner {
472
416
  */
473
417
  #buildCommissionableQueryIdentifier(identifier) {
474
418
  if ("instanceId" in identifier) {
475
- return getDeviceInstanceQname(identifier.instanceId);
419
+ return getCommissionableDeviceQname(identifier.instanceId);
476
420
  }
477
421
  if ("longDiscriminator" in identifier) {
478
422
  return getLongDiscriminatorQname(identifier.longDiscriminator);
@@ -559,7 +503,7 @@ class MdnsScanner {
559
503
  const names = new Array();
560
504
  names.push(MATTER_COMMISSION_SERVICE_QNAME);
561
505
  if ("instanceId" in identifier) {
562
- names.push(getDeviceInstanceQname(identifier.instanceId));
506
+ names.push(getCommissionableDeviceQname(identifier.instanceId));
563
507
  } else if ("longDiscriminator" in identifier) {
564
508
  names.push(getLongDiscriminatorQname(identifier.longDiscriminator));
565
509
  } else if ("shortDiscriminator" in identifier) {
@@ -649,7 +593,6 @@ class MdnsScanner {
649
593
  this.#observers.close();
650
594
  this.#periodicTimer.stop();
651
595
  this.#queryTimer?.stop();
652
- await this.#multicastServer.close();
653
596
  [...this.#recordWaiters.keys()].forEach(
654
597
  (queryId) => this.#finishWaiter(queryId, !!this.#recordWaiters.get(queryId)?.timer)
655
598
  );
@@ -682,7 +625,7 @@ class MdnsScanner {
682
625
  discoveredAt,
683
626
  ...answer
684
627
  });
685
- } else if (this.#enableIpv4 && recordType === DnsRecordType.A) {
628
+ } else if (this.#socket.supportsIpv4 && recordType === DnsRecordType.A) {
686
629
  structuredAnswers.addressesV4 = structuredAnswers.addressesV4 ?? {};
687
630
  structuredAnswers.addressesV4[name] = structuredAnswers.addressesV4[name] ?? /* @__PURE__ */ new Map();
688
631
  structuredAnswers.addressesV4[name].set(answer.value, {
@@ -745,7 +688,7 @@ class MdnsScanner {
745
688
  });
746
689
  }
747
690
  }
748
- if (this.#enableIpv4 && answers.addressesV4) {
691
+ if (this.#socket.supportsIpv4 && answers.addressesV4) {
749
692
  combinedAnswers.addressesV4 = combinedAnswers.addressesV4 ?? {};
750
693
  for (const [name, records] of Object.entries(answers.addressesV4)) {
751
694
  combinedAnswers.addressesV4[name] = combinedAnswers.addressesV4[name] ?? /* @__PURE__ */ new Map();
@@ -782,7 +725,7 @@ class MdnsScanner {
782
725
  if (combinedAnswers.addressesV6) {
783
726
  result.addressesV6 = combinedAnswers.addressesV6;
784
727
  }
785
- if (this.#enableIpv4 && combinedAnswers.addressesV4) {
728
+ if (this.#socket.supportsIpv4 && combinedAnswers.addressesV4) {
786
729
  result.addressesV4 = combinedAnswers.addressesV4;
787
730
  }
788
731
  return result;
@@ -791,17 +734,16 @@ class MdnsScanner {
791
734
  * Main method to handle all incoming DNS messages.
792
735
  * It will parse the message and check if it contains relevant discovery records.
793
736
  */
794
- #handleDnsMessage(messageBytes, _remoteIp, netInterface) {
737
+ #handleMessage(message) {
795
738
  if (this.#closing) return;
796
- const message = DnsCodec.decode(messageBytes);
797
739
  if (message === void 0) return;
798
740
  if (message.messageType !== DnsMessageType.Response && message.messageType !== DnsMessageType.TruncatedResponse)
799
741
  return;
800
742
  const answers = this.#structureAnswers([...message.answers, ...message.additionalRecords]);
801
- const formerAnswers = this.#getActiveQueryEarlierAnswers(netInterface);
802
- this.#handleOperationalRecords(answers, formerAnswers, netInterface);
803
- this.#handleCommissionableRecords(answers, formerAnswers, netInterface);
804
- this.#updateIpRecords(answers, netInterface);
743
+ const formerAnswers = this.#getActiveQueryEarlierAnswers(message.sourceIntf);
744
+ this.#handleOperationalRecords(answers, formerAnswers, message.sourceIntf);
745
+ this.#handleCommissionableRecords(answers, formerAnswers, message.sourceIntf);
746
+ this.#updateIpRecords(answers, message.sourceIntf);
805
747
  }
806
748
  /**
807
749
  * Update the discovered matter relevant IP records with the new data from the DNS message.
@@ -826,7 +768,7 @@ class MdnsScanner {
826
768
  }
827
769
  }
828
770
  }
829
- if (this.#enableIpv4 && answers.addressesV4) {
771
+ if (this.#socket.supportsIpv4 && answers.addressesV4) {
830
772
  for (const [target, ipAddresses] of Object.entries(answers.addressesV4)) {
831
773
  if (interfaceRecords.addressesV4?.[target] !== void 0) {
832
774
  for (const [ip, record] of Object.entries(ipAddresses)) {
@@ -856,7 +798,7 @@ class MdnsScanner {
856
798
  interfaceRecords.addressesV6 = interfaceRecords.addressesV6 ?? {};
857
799
  interfaceRecords.addressesV6[name] = interfaceRecords.addressesV6[name] ?? /* @__PURE__ */ new Map();
858
800
  interfaceRecords.addressesV6[name].set(ip, record);
859
- } else if (this.#enableIpv4 && recordType === DnsRecordType.A) {
801
+ } else if (this.#socket.supportsIpv4 && recordType === DnsRecordType.A) {
860
802
  interfaceRecords.addressesV4 = interfaceRecords.addressesV4 ?? {};
861
803
  interfaceRecords.addressesV4[name] = interfaceRecords.addressesV4[name] ?? /* @__PURE__ */ new Map();
862
804
  interfaceRecords.addressesV4[name].set(ip, record);
@@ -870,7 +812,7 @@ class MdnsScanner {
870
812
  if (answer.addressesV6?.[target]) {
871
813
  ipRecords.push(...answer.addressesV6[target].values());
872
814
  }
873
- if (this.#enableIpv4 && answer.addressesV4?.[target]) {
815
+ if (this.#socket.supportsIpv4 && answer.addressesV4?.[target]) {
874
816
  ipRecords.push(...answer.addressesV4[target].values());
875
817
  }
876
818
  });
@@ -941,7 +883,7 @@ class MdnsScanner {
941
883
  } else {
942
884
  logger.debug(
943
885
  `Adding operational device ${matterName} in cache (interface ${netInterface}, ttl=${ttl}) with TXT data:`,
944
- MdnsScanner.discoveryDataDiagnostics(txtData)
886
+ MdnsClient.discoveryDataDiagnostics(txtData)
945
887
  );
946
888
  device = {
947
889
  deviceIdentifier: matterName,
@@ -1000,14 +942,14 @@ class MdnsScanner {
1000
942
  if (ipsInitiallyEmpty) {
1001
943
  logger.debug(
1002
944
  `Added ${addresses.size} IPs for operational device ${matterName} to cache (interface ${netInterface}):`,
1003
- ...MdnsScanner.deviceAddressDiagnostics(addresses)
945
+ ...MdnsClient.deviceAddressDiagnostics(addresses)
1004
946
  );
1005
947
  }
1006
948
  this.#operationalDeviceRecords.set(matterName, device);
1007
949
  }
1008
950
  if (addresses.size === 0 && this.#hasWaiter(matterName)) {
1009
951
  const queries = [{ name: target, recordClass: DnsRecordClass.IN, recordType: DnsRecordType.AAAA }];
1010
- if (this.#enableIpv4) {
952
+ if (this.#socket.supportsIpv4) {
1011
953
  queries.push({ name: target, recordClass: DnsRecordClass.IN, recordType: DnsRecordType.A });
1012
954
  }
1013
955
  logger.debug(`Requesting IP addresses for operational device ${matterName} (interface ${netInterface}).`);
@@ -1061,7 +1003,7 @@ class MdnsScanner {
1061
1003
  queryMissingDataForInstances.add(name);
1062
1004
  logger.debug(
1063
1005
  `Found commissionable device ${name} with data:`,
1064
- MdnsScanner.discoveryDataDiagnostics(parsedRecord)
1006
+ MdnsClient.discoveryDataDiagnostics(parsedRecord)
1065
1007
  );
1066
1008
  } else {
1067
1009
  parsedRecord.addresses = storedRecord.addresses;
@@ -1105,7 +1047,7 @@ class MdnsScanner {
1105
1047
  const queryId2 = this.#findCommissionableQueryIdentifier("", storedRecord);
1106
1048
  if (queryId2 === void 0) continue;
1107
1049
  const queries = [{ name: target, recordClass: DnsRecordClass.IN, recordType: DnsRecordType.AAAA }];
1108
- if (this.#enableIpv4) {
1050
+ if (this.#socket.supportsIpv4) {
1109
1051
  queries.push({ name: target, recordClass: DnsRecordClass.IN, recordType: DnsRecordType.A });
1110
1052
  }
1111
1053
  logger.debug(
@@ -1115,7 +1057,7 @@ class MdnsScanner {
1115
1057
  } else if (!recordAddressesKnown) {
1116
1058
  logger.debug(
1117
1059
  `Added ${storedRecord.addresses.size} IPs for commissionable device ${record.name} to cache (interface ${netInterface}):`,
1118
- ...MdnsScanner.deviceAddressDiagnostics(storedRecord.addresses)
1060
+ ...MdnsClient.deviceAddressDiagnostics(storedRecord.addresses)
1119
1061
  );
1120
1062
  }
1121
1063
  if (storedRecord.addresses.size === 0) continue;
@@ -1283,6 +1225,6 @@ class MdnsScanner {
1283
1225
  }
1284
1226
  }
1285
1227
  export {
1286
- MdnsScanner
1228
+ MdnsClient
1287
1229
  };
1288
- //# sourceMappingURL=MdnsScanner.js.map
1230
+ //# sourceMappingURL=MdnsClient.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/mdns/MdnsClient.ts"],
4
+ "mappings": "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",
5
+ "names": ["queries", "answers", "commissionable", "ttl", "queryId", "value", "discoveredAt"]
6
+ }
@@ -4,16 +4,25 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { VendorId } from "#types";
7
+ export declare const MDNS_BROADCAST_IPV4 = "224.0.0.251";
8
+ export declare const MDNS_BROADCAST_IPV6 = "ff02::fb";
9
+ export declare const MDNS_BROADCAST_PORT = 5353;
7
10
  export declare const SERVICE_DISCOVERY_QNAME = "_services._dns-sd._udp.local";
8
11
  export declare const MATTER_COMMISSION_SERVICE_QNAME = "_matterc._udp.local";
9
12
  export declare const MATTER_COMMISSIONER_SERVICE_QNAME = "_matterd._udp.local";
10
13
  export declare const MATTER_SERVICE_QNAME = "_matter._tcp.local";
14
+ export declare const DEFAULT_PAIRING_HINT: {
15
+ powerCycle: boolean;
16
+ deviceManual: boolean;
17
+ };
18
+ export declare const PAIRING_HINTS_REQUIRING_INSTRUCTION: ("powerCycle" | "deviceManufacturerUrl" | "administrator" | "settingsMenuOnNode" | "customInstruction" | "deviceManual" | "pressResetButton" | "pressResetButtonWithApplicationOfPower" | "pressRestButtonForNumberOfSeconds" | "pressResetButtonUntilLightBlinks" | "pressResetButtonForNumberOfSecondsWithApplicationOfPower" | "pressResetButtonUntilLightBlinksWithApplicationOfPower" | "pressResetButtonNumberOfTimes" | "pressSetupButton" | "pressSetupButtonWithApplicationOfPower" | "pressSetupButtonForNumberOfSeconds" | "pressSetupButtonUntilLightBlinks" | "pressSetupButtonForNumberOfSecondsWithApplicationOfPower" | "pressSetupButtonUntilLightBlinksWithApplicationOfPower" | "pressSetupButtonNumberOfTimes")[];
11
19
  export declare const getFabricQname: (operationalIdString: string) => string;
12
- export declare const getDeviceMatterQname: (operationalIdString: string, nodeIdString: string) => string;
20
+ export declare const getOperationalDeviceQname: (operationalIdString: string, nodeIdString: string) => string;
13
21
  export declare const getVendorQname: (vendorId: VendorId) => string;
14
22
  export declare const getDeviceTypeQname: (deviceType: number) => string;
15
23
  export declare const getShortDiscriminatorQname: (shortDiscriminator: number) => string;
16
24
  export declare const getLongDiscriminatorQname: (longDiscriminator: number) => string;
17
25
  export declare const getCommissioningModeQname: () => string;
18
- export declare const getDeviceInstanceQname: (instanceId: string) => string;
26
+ export declare const getCommissionableDeviceQname: (instanceId: string) => string;
27
+ export declare const getCommissionerDeviceQname: (instanceId: string) => string;
19
28
  //# sourceMappingURL=MdnsConsts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MdnsConsts.d.ts","sourceRoot":"","sources":["../../../src/mdns/MdnsConsts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,eAAO,MAAM,uBAAuB,iCAAiC,CAAC;AACtE,eAAO,MAAM,+BAA+B,wBAAwB,CAAC;AACrE,eAAO,MAAM,iCAAiC,wBAAwB,CAAC;AACvE,eAAO,MAAM,oBAAoB,uBAAuB,CAAC;AAEzD,eAAO,MAAM,cAAc,GAAI,qBAAqB,MAAM,WAA4D,CAAC;AACvH,eAAO,MAAM,oBAAoB,GAAI,qBAAqB,MAAM,EAAE,cAAc,MAAM,WAClB,CAAC;AACrE,eAAO,MAAM,cAAc,GAAI,UAAU,QAAQ,WAA4D,CAAC;AAC9G,eAAO,MAAM,kBAAkB,GAAI,YAAY,MAAM,WAA8D,CAAC;AACpH,eAAO,MAAM,0BAA0B,GAAI,oBAAoB,MAAM,WACA,CAAC;AACtE,eAAO,MAAM,yBAAyB,GAAI,mBAAmB,MAAM,WACC,CAAC;AACrE,eAAO,MAAM,yBAAyB,cAAsD,CAAC;AAC7F,eAAO,MAAM,sBAAsB,GAAI,YAAY,MAAM,WAAuD,CAAC"}
1
+ {"version":3,"file":"MdnsConsts.d.ts","sourceRoot":"","sources":["../../../src/mdns/MdnsConsts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AACjD,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,eAAO,MAAM,uBAAuB,iCAAiC,CAAC;AACtE,eAAO,MAAM,+BAA+B,wBAAwB,CAAC;AACrE,eAAO,MAAM,iCAAiC,wBAAwB,CAAC;AACvE,eAAO,MAAM,oBAAoB,uBAAuB,CAAC;AAEzD,eAAO,MAAM,oBAAoB;;;CAGhC,CAAC;AAEF,eAAO,MAAM,mCAAmC,usBAY/C,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,qBAAqB,MAAM,WAA4D,CAAC;AACvH,eAAO,MAAM,yBAAyB,GAAI,qBAAqB,MAAM,EAAE,cAAc,MAAM,WACvB,CAAC;AACrE,eAAO,MAAM,cAAc,GAAI,UAAU,QAAQ,WAA4D,CAAC;AAC9G,eAAO,MAAM,kBAAkB,GAAI,YAAY,MAAM,WAA8D,CAAC;AACpH,eAAO,MAAM,0BAA0B,GAAI,oBAAoB,MAAM,WACA,CAAC;AACtE,eAAO,MAAM,yBAAyB,GAAI,mBAAmB,MAAM,WACC,CAAC;AACrE,eAAO,MAAM,yBAAyB,cAAsD,CAAC;AAC7F,eAAO,MAAM,4BAA4B,GAAI,YAAY,MAAM,WAAuD,CAAC;AACvH,eAAO,MAAM,0BAA0B,GAAI,YAAY,MAAM,WAAyD,CAAC"}