@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
package/src/index.ts CHANGED
@@ -5,6 +5,7 @@
5
5
  */
6
6
 
7
7
  export * from "./action/index.js";
8
+ export * from "./advertisement/index.js";
8
9
  export * from "./ble/index.js";
9
10
  export * from "./certificate/index.js";
10
11
  export * from "./cluster/index.js";
@@ -9,8 +9,6 @@ import {
9
9
  Bytes,
10
10
  ChannelType,
11
11
  Diagnostic,
12
- DnsCodec,
13
- DnsMessagePartiallyPreEncoded,
14
12
  DnsMessageType,
15
13
  DnsQuery,
16
14
  DnsRecord,
@@ -20,14 +18,11 @@ import {
20
18
  InternalError,
21
19
  Lifespan,
22
20
  Logger,
23
- MAX_MDNS_MESSAGE_SIZE,
24
- Network,
25
21
  ObserverGroup,
26
22
  ServerAddressIp,
27
23
  SrvRecordValue,
28
24
  Time,
29
25
  Timer,
30
- UdpMulticastServer,
31
26
  createPromise,
32
27
  isIPv6,
33
28
  } from "#general";
@@ -43,17 +38,17 @@ import { Fabric } from "../fabric/Fabric.js";
43
38
  import {
44
39
  MATTER_COMMISSION_SERVICE_QNAME,
45
40
  MATTER_SERVICE_QNAME,
41
+ getCommissionableDeviceQname,
46
42
  getCommissioningModeQname,
47
- getDeviceInstanceQname,
48
- getDeviceMatterQname,
49
43
  getDeviceTypeQname,
50
44
  getLongDiscriminatorQname,
45
+ getOperationalDeviceQname,
51
46
  getShortDiscriminatorQname,
52
47
  getVendorQname,
53
48
  } from "./MdnsConsts.js";
54
- import { MDNS_BROADCAST_IPV4, MDNS_BROADCAST_IPV6, MDNS_BROADCAST_PORT } from "./MdnsServer.js";
49
+ import { MdnsSocket } from "./MdnsSocket.js";
55
50
 
56
- const logger = Logger.get("MdnsScanner");
51
+ const logger = Logger.get("MdnsClient");
57
52
 
58
53
  const MDNS_EXPIRY_GRACE_PERIOD_FACTOR = 1.05;
59
54
 
@@ -118,23 +113,9 @@ export interface MdnsScannerTargetCriteria {
118
113
  * This class implements the Scanner interface for a MDNS scanner via UDP messages in a IP based network. It sends out
119
114
  * queries to discover various types of Matter device types and listens for announcements.
120
115
  */
121
- export class MdnsScanner implements Scanner {
116
+ export class MdnsClient implements Scanner {
122
117
  readonly type = ChannelType.UDP;
123
118
 
124
- static async create(network: Network, options?: { enableIpv4?: boolean; netInterface?: string }) {
125
- const { enableIpv4, netInterface } = options ?? {};
126
- return new MdnsScanner(
127
- await UdpMulticastServer.create({
128
- network,
129
- netInterface: netInterface,
130
- broadcastAddressIpv4: enableIpv4 ? MDNS_BROADCAST_IPV4 : undefined,
131
- broadcastAddressIpv6: MDNS_BROADCAST_IPV6,
132
- listeningPort: MDNS_BROADCAST_PORT,
133
- }),
134
- enableIpv4,
135
- );
136
- }
137
-
138
119
  /** Active announces by queryId with queries and known answers */
139
120
  readonly #activeAnnounceQueries = new Map<string, { queries: DnsQuery[]; answers: StructuredDnsAnswers }>();
140
121
 
@@ -163,8 +144,7 @@ export class MdnsScanner implements Scanner {
163
144
  #nextAnnounceIntervalSeconds = START_ANNOUNCE_INTERVAL_SECONDS;
164
145
  readonly #periodicTimer: Timer;
165
146
  #closing = false;
166
- readonly #multicastServer: UdpMulticastServer;
167
- readonly #enableIpv4?: boolean;
147
+ readonly #socket: MdnsSocket;
168
148
 
169
149
  readonly #targetCriteriaProviders = new BasicSet<MdnsScannerTargetCriteria>();
170
150
  #scanForCommissionableDevices = false;
@@ -175,12 +155,9 @@ export class MdnsScanner implements Scanner {
175
155
  /** True, if any node is interested in MDNS traffic, else we ignore all traffic */
176
156
  #listening = false;
177
157
 
178
- constructor(multicastServer: UdpMulticastServer, enableIpv4?: boolean) {
179
- multicastServer.onMessage((message, remoteIp, netInterface) =>
180
- this.#handleDnsMessage(message, remoteIp, netInterface),
181
- );
182
- this.#multicastServer = multicastServer;
183
- this.#enableIpv4 = enableIpv4;
158
+ constructor(socket: MdnsSocket) {
159
+ this.#socket = socket;
160
+ this.#observers.on(this.#socket.receipt, this.#handleMessage.bind(this));
184
161
  this.#periodicTimer = Time.getPeriodicTimer("Discovered node expiration", 60 * 1000 /* 1 mn */, () =>
185
162
  this.#expire(),
186
163
  ).start();
@@ -284,56 +261,11 @@ export class MdnsScanner implements Scanner {
284
261
  const nextAnnounceInterval = this.#nextAnnounceIntervalSeconds * 2;
285
262
  this.#nextAnnounceIntervalSeconds = Math.min(nextAnnounceInterval, 60 * 60 /* 1 hour */);
286
263
 
287
- const answersToSend = [...answers];
288
-
289
- const dnsMessageDataToSend = {
290
- messageType: DnsMessageType.TruncatedQuery,
291
- transactionId: 0,
264
+ await this.#socket.send({
265
+ messageType: DnsMessageType.Query,
292
266
  queries,
293
- authorities: [],
294
- answers: [],
295
- additionalRecords: [],
296
- } as DnsMessagePartiallyPreEncoded;
297
-
298
- const emptyDnsMessage = DnsCodec.encode(dnsMessageDataToSend);
299
- let dnsMessageSize = emptyDnsMessage.length;
300
-
301
- while (true) {
302
- if (answersToSend.length > 0) {
303
- const nextAnswer = answersToSend.shift();
304
- if (nextAnswer === undefined) {
305
- break;
306
- }
307
-
308
- const nextAnswerEncoded = DnsCodec.encodeRecord(nextAnswer);
309
- dnsMessageSize += nextAnswerEncoded.length; // Add additional record as long as size is ok
310
-
311
- if (dnsMessageSize > MAX_MDNS_MESSAGE_SIZE) {
312
- if (dnsMessageDataToSend.answers.length === 0) {
313
- // The first answer is already too big, log at least a warning
314
- logger.warn(
315
- `MDNS Query with ${Diagnostic.json(
316
- queries,
317
- )} is too big to fit into a single MDNS message. Send anyway, but please report!`,
318
- );
319
- }
320
- // New answer do not fit anymore, send out the message
321
- await this.#multicastServer.send(DnsCodec.encode(dnsMessageDataToSend));
322
-
323
- // Reset the message, length counter and included answers to count for next message
324
- dnsMessageDataToSend.queries.length = 0;
325
- dnsMessageDataToSend.answers.length = 0;
326
- dnsMessageSize = emptyDnsMessage.length + nextAnswerEncoded.length;
327
- }
328
- dnsMessageDataToSend.answers.push(nextAnswerEncoded);
329
- } else {
330
- break;
331
- }
332
- }
333
-
334
- await this.#multicastServer.send(
335
- DnsCodec.encode({ ...dnsMessageDataToSend, messageType: DnsMessageType.Query }),
336
- );
267
+ answers,
268
+ });
337
269
  }
338
270
 
339
271
  /**
@@ -540,7 +472,7 @@ export class MdnsScanner implements Scanner {
540
472
 
541
473
  #createOperationalMatterQName(operationalId: Uint8Array, nodeId: NodeId) {
542
474
  const operationalIdString = Bytes.toHex(operationalId).toUpperCase();
543
- return getDeviceMatterQname(operationalIdString, NodeId.toHexString(nodeId));
475
+ return getOperationalDeviceQname(operationalIdString, NodeId.toHexString(nodeId));
544
476
  }
545
477
 
546
478
  /**
@@ -643,7 +575,7 @@ export class MdnsScanner implements Scanner {
643
575
  */
644
576
  #buildCommissionableQueryIdentifier(identifier: CommissionableDeviceIdentifiers) {
645
577
  if ("instanceId" in identifier) {
646
- return getDeviceInstanceQname(identifier.instanceId);
578
+ return getCommissionableDeviceQname(identifier.instanceId);
647
579
  }
648
580
 
649
581
  if ("longDiscriminator" in identifier) {
@@ -752,7 +684,7 @@ export class MdnsScanner implements Scanner {
752
684
  names.push(MATTER_COMMISSION_SERVICE_QNAME);
753
685
 
754
686
  if ("instanceId" in identifier) {
755
- names.push(getDeviceInstanceQname(identifier.instanceId));
687
+ names.push(getCommissionableDeviceQname(identifier.instanceId));
756
688
  } else if ("longDiscriminator" in identifier) {
757
689
  names.push(getLongDiscriminatorQname(identifier.longDiscriminator));
758
690
  } else if ("shortDiscriminator" in identifier) {
@@ -868,7 +800,6 @@ export class MdnsScanner implements Scanner {
868
800
  this.#observers.close();
869
801
  this.#periodicTimer.stop();
870
802
  this.#queryTimer?.stop();
871
- await this.#multicastServer.close();
872
803
  // Resolve all pending promises where logic waits for the response (aka: has a timer)
873
804
  [...this.#recordWaiters.keys()].forEach(queryId =>
874
805
  this.#finishWaiter(queryId, !!this.#recordWaiters.get(queryId)?.timer),
@@ -904,7 +835,7 @@ export class MdnsScanner implements Scanner {
904
835
  discoveredAt,
905
836
  ...answer,
906
837
  });
907
- } else if (this.#enableIpv4 && recordType === DnsRecordType.A) {
838
+ } else if (this.#socket.supportsIpv4 && recordType === DnsRecordType.A) {
908
839
  structuredAnswers.addressesV4 = structuredAnswers.addressesV4 ?? {};
909
840
  structuredAnswers.addressesV4[name] = structuredAnswers.addressesV4[name] ?? new Map();
910
841
  structuredAnswers.addressesV4[name].set(answer.value, {
@@ -986,7 +917,7 @@ export class MdnsScanner implements Scanner {
986
917
  });
987
918
  }
988
919
  }
989
- if (this.#enableIpv4 && answers.addressesV4) {
920
+ if (this.#socket.supportsIpv4 && answers.addressesV4) {
990
921
  combinedAnswers.addressesV4 = combinedAnswers.addressesV4 ?? {};
991
922
  for (const [name, records] of Object.entries(answers.addressesV4) as unknown as [
992
923
  string,
@@ -1027,7 +958,7 @@ export class MdnsScanner implements Scanner {
1027
958
  if (combinedAnswers.addressesV6) {
1028
959
  result.addressesV6 = combinedAnswers.addressesV6;
1029
960
  }
1030
- if (this.#enableIpv4 && combinedAnswers.addressesV4) {
961
+ if (this.#socket.supportsIpv4 && combinedAnswers.addressesV4) {
1031
962
  result.addressesV4 = combinedAnswers.addressesV4;
1032
963
  }
1033
964
 
@@ -1038,23 +969,23 @@ export class MdnsScanner implements Scanner {
1038
969
  * Main method to handle all incoming DNS messages.
1039
970
  * It will parse the message and check if it contains relevant discovery records.
1040
971
  */
1041
- #handleDnsMessage(messageBytes: Uint8Array, _remoteIp: string, netInterface: string) {
972
+ #handleMessage(message: MdnsSocket.Message) {
1042
973
  if (this.#closing) return;
1043
- const message = DnsCodec.decode(messageBytes);
974
+
1044
975
  if (message === undefined) return; // The message cannot be parsed
1045
976
  if (message.messageType !== DnsMessageType.Response && message.messageType !== DnsMessageType.TruncatedResponse)
1046
977
  return;
1047
978
 
1048
979
  const answers = this.#structureAnswers([...message.answers, ...message.additionalRecords]);
1049
980
 
1050
- const formerAnswers = this.#getActiveQueryEarlierAnswers(netInterface);
981
+ const formerAnswers = this.#getActiveQueryEarlierAnswers(message.sourceIntf);
1051
982
  // Check if we got operational discovery records and handle them
1052
- this.#handleOperationalRecords(answers, formerAnswers, netInterface);
983
+ this.#handleOperationalRecords(answers, formerAnswers, message.sourceIntf);
1053
984
 
1054
985
  // Else check if we got commissionable discovery records and handle them
1055
- this.#handleCommissionableRecords(answers, formerAnswers, netInterface);
986
+ this.#handleCommissionableRecords(answers, formerAnswers, message.sourceIntf);
1056
987
 
1057
- this.#updateIpRecords(answers, netInterface);
988
+ this.#updateIpRecords(answers, message.sourceIntf);
1058
989
  }
1059
990
 
1060
991
  /**
@@ -1080,7 +1011,7 @@ export class MdnsScanner implements Scanner {
1080
1011
  }
1081
1012
  }
1082
1013
  }
1083
- if (this.#enableIpv4 && answers.addressesV4) {
1014
+ if (this.#socket.supportsIpv4 && answers.addressesV4) {
1084
1015
  for (const [target, ipAddresses] of Object.entries(answers.addressesV4)) {
1085
1016
  if (interfaceRecords.addressesV4?.[target] !== undefined) {
1086
1017
  for (const [ip, record] of Object.entries(ipAddresses)) {
@@ -1111,7 +1042,7 @@ export class MdnsScanner implements Scanner {
1111
1042
  interfaceRecords.addressesV6 = interfaceRecords.addressesV6 ?? {};
1112
1043
  interfaceRecords.addressesV6[name] = interfaceRecords.addressesV6[name] ?? new Map();
1113
1044
  interfaceRecords.addressesV6[name].set(ip, record);
1114
- } else if (this.#enableIpv4 && recordType === DnsRecordType.A) {
1045
+ } else if (this.#socket.supportsIpv4 && recordType === DnsRecordType.A) {
1115
1046
  interfaceRecords.addressesV4 = interfaceRecords.addressesV4 ?? {};
1116
1047
  interfaceRecords.addressesV4[name] = interfaceRecords.addressesV4[name] ?? new Map();
1117
1048
  interfaceRecords.addressesV4[name].set(ip, record);
@@ -1130,7 +1061,7 @@ export class MdnsScanner implements Scanner {
1130
1061
  if (answer.addressesV6?.[target]) {
1131
1062
  ipRecords.push(...answer.addressesV6[target].values());
1132
1063
  }
1133
- if (this.#enableIpv4 && answer.addressesV4?.[target]) {
1064
+ if (this.#socket.supportsIpv4 && answer.addressesV4?.[target]) {
1134
1065
  ipRecords.push(...answer.addressesV4[target].values());
1135
1066
  }
1136
1067
  });
@@ -1226,7 +1157,7 @@ export class MdnsScanner implements Scanner {
1226
1157
  } else {
1227
1158
  logger.debug(
1228
1159
  `Adding operational device ${matterName} in cache (interface ${netInterface}, ttl=${ttl}) with TXT data:`,
1229
- MdnsScanner.discoveryDataDiagnostics(txtData),
1160
+ MdnsClient.discoveryDataDiagnostics(txtData),
1230
1161
  );
1231
1162
  device = {
1232
1163
  deviceIdentifier: matterName,
@@ -1300,7 +1231,7 @@ export class MdnsScanner implements Scanner {
1300
1231
  if (ipsInitiallyEmpty) {
1301
1232
  logger.debug(
1302
1233
  `Added ${addresses.size} IPs for operational device ${matterName} to cache (interface ${netInterface}):`,
1303
- ...MdnsScanner.deviceAddressDiagnostics(addresses),
1234
+ ...MdnsClient.deviceAddressDiagnostics(addresses),
1304
1235
  );
1305
1236
  }
1306
1237
  this.#operationalDeviceRecords.set(matterName, device);
@@ -1309,7 +1240,7 @@ export class MdnsScanner implements Scanner {
1309
1240
  if (addresses.size === 0 && this.#hasWaiter(matterName)) {
1310
1241
  // We have no or no more (because expired) IPs, and we are interested in this particular service name, request them
1311
1242
  const queries = [{ name: target, recordClass: DnsRecordClass.IN, recordType: DnsRecordType.AAAA }];
1312
- if (this.#enableIpv4) {
1243
+ if (this.#socket.supportsIpv4) {
1313
1244
  queries.push({ name: target, recordClass: DnsRecordClass.IN, recordType: DnsRecordType.A });
1314
1245
  }
1315
1246
  logger.debug(`Requesting IP addresses for operational device ${matterName} (interface ${netInterface}).`);
@@ -1376,7 +1307,7 @@ export class MdnsScanner implements Scanner {
1376
1307
 
1377
1308
  logger.debug(
1378
1309
  `Found commissionable device ${name} with data:`,
1379
- MdnsScanner.discoveryDataDiagnostics(parsedRecord),
1310
+ MdnsClient.discoveryDataDiagnostics(parsedRecord),
1380
1311
  );
1381
1312
  } else {
1382
1313
  parsedRecord.addresses = storedRecord.addresses;
@@ -1427,7 +1358,7 @@ export class MdnsScanner implements Scanner {
1427
1358
  if (queryId === undefined) continue;
1428
1359
  // We have no or no more (because expired) IPs and we are interested in such a service name, request them
1429
1360
  const queries = [{ name: target, recordClass: DnsRecordClass.IN, recordType: DnsRecordType.AAAA }];
1430
- if (this.#enableIpv4) {
1361
+ if (this.#socket.supportsIpv4) {
1431
1362
  queries.push({ name: target, recordClass: DnsRecordClass.IN, recordType: DnsRecordType.A });
1432
1363
  }
1433
1364
  logger.debug(
@@ -1437,7 +1368,7 @@ export class MdnsScanner implements Scanner {
1437
1368
  } else if (!recordAddressesKnown) {
1438
1369
  logger.debug(
1439
1370
  `Added ${storedRecord.addresses.size} IPs for commissionable device ${record.name} to cache (interface ${netInterface}):`,
1440
- ...MdnsScanner.deviceAddressDiagnostics(storedRecord.addresses),
1371
+ ...MdnsClient.deviceAddressDiagnostics(storedRecord.addresses),
1441
1372
  );
1442
1373
  }
1443
1374
  if (storedRecord.addresses.size === 0) continue;
@@ -4,15 +4,39 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
+ import { PairingHintBitmap } from "#advertisement/PairingHintBitmap.js";
7
8
  import { VendorId } from "#types";
8
9
 
10
+ export const MDNS_BROADCAST_IPV4 = "224.0.0.251";
11
+ export const MDNS_BROADCAST_IPV6 = "ff02::fb";
12
+ export const MDNS_BROADCAST_PORT = 5353;
13
+
9
14
  export const SERVICE_DISCOVERY_QNAME = "_services._dns-sd._udp.local";
10
15
  export const MATTER_COMMISSION_SERVICE_QNAME = "_matterc._udp.local";
11
16
  export const MATTER_COMMISSIONER_SERVICE_QNAME = "_matterd._udp.local";
12
17
  export const MATTER_SERVICE_QNAME = "_matter._tcp.local";
13
18
 
19
+ export const DEFAULT_PAIRING_HINT = {
20
+ powerCycle: true,
21
+ deviceManual: true,
22
+ };
23
+
24
+ export const PAIRING_HINTS_REQUIRING_INSTRUCTION = Array<keyof typeof PairingHintBitmap>(
25
+ "customInstruction",
26
+ "pressRestButtonForNumberOfSeconds",
27
+ "pressResetButtonUntilLightBlinks",
28
+ "pressResetButtonForNumberOfSecondsWithApplicationOfPower",
29
+ "pressResetButtonUntilLightBlinksWithApplicationOfPower",
30
+ "pressResetButtonNumberOfTimes",
31
+ "pressSetupButtonForNumberOfSeconds",
32
+ "pressSetupButtonUntilLightBlinks",
33
+ "pressSetupButtonForNumberOfSecondsWithApplicationOfPower",
34
+ "pressSetupButtonUntilLightBlinksWithApplicationOfPower",
35
+ "pressSetupButtonNumberOfTimes",
36
+ );
37
+
14
38
  export const getFabricQname = (operationalIdString: string) => `_I${operationalIdString}._sub.${MATTER_SERVICE_QNAME}`;
15
- export const getDeviceMatterQname = (operationalIdString: string, nodeIdString: string) =>
39
+ export const getOperationalDeviceQname = (operationalIdString: string, nodeIdString: string) =>
16
40
  `${operationalIdString}-${nodeIdString}.${MATTER_SERVICE_QNAME}`;
17
41
  export const getVendorQname = (vendorId: VendorId) => `_V${vendorId}._sub.${MATTER_COMMISSION_SERVICE_QNAME}`;
18
42
  export const getDeviceTypeQname = (deviceType: number) => `_T${deviceType}._sub.${MATTER_COMMISSION_SERVICE_QNAME}`;
@@ -21,4 +45,5 @@ export const getShortDiscriminatorQname = (shortDiscriminator: number) =>
21
45
  export const getLongDiscriminatorQname = (longDiscriminator: number) =>
22
46
  `_L${longDiscriminator}._sub.${MATTER_COMMISSION_SERVICE_QNAME}`;
23
47
  export const getCommissioningModeQname = () => `_CM._sub.${MATTER_COMMISSION_SERVICE_QNAME}`;
24
- export const getDeviceInstanceQname = (instanceId: string) => `${instanceId}.${MATTER_COMMISSION_SERVICE_QNAME}`;
48
+ export const getCommissionableDeviceQname = (instanceId: string) => `${instanceId}.${MATTER_COMMISSION_SERVICE_QNAME}`;
49
+ export const getCommissionerDeviceQname = (instanceId: string) => `${instanceId}.${MATTER_COMMISSIONER_SERVICE_QNAME}`;