@matter/protocol 0.16.0-alpha.0-20250807-37b08c9bb → 0.16.0-alpha.0-20250810-5c91a95d2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (366) 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/codec/BtpCodec.d.ts +1 -1
  65. package/dist/cjs/codec/BtpCodec.d.ts.map +1 -1
  66. package/dist/cjs/codec/BtpCodec.js +4 -4
  67. package/dist/cjs/codec/BtpCodec.js.map +1 -1
  68. package/dist/cjs/common/Scanner.d.ts +1 -25
  69. package/dist/cjs/common/Scanner.d.ts.map +1 -1
  70. package/dist/cjs/common/Scanner.js +1 -18
  71. package/dist/cjs/common/Scanner.js.map +1 -1
  72. package/dist/cjs/common/SupportedTransportsBitmap.d.ts +33 -0
  73. package/dist/cjs/common/SupportedTransportsBitmap.d.ts.map +1 -0
  74. package/dist/cjs/common/SupportedTransportsBitmap.js +45 -0
  75. package/dist/cjs/common/SupportedTransportsBitmap.js.map +6 -0
  76. package/dist/cjs/common/index.d.ts +1 -1
  77. package/dist/cjs/common/index.d.ts.map +1 -1
  78. package/dist/cjs/common/index.js +1 -1
  79. package/dist/cjs/common/index.js.map +1 -1
  80. package/dist/cjs/fabric/Fabric.d.ts +1 -0
  81. package/dist/cjs/fabric/Fabric.d.ts.map +1 -1
  82. package/dist/cjs/fabric/Fabric.js +7 -0
  83. package/dist/cjs/fabric/Fabric.js.map +1 -1
  84. package/dist/cjs/index.d.ts +1 -0
  85. package/dist/cjs/index.d.ts.map +1 -1
  86. package/dist/cjs/index.js +1 -0
  87. package/dist/cjs/index.js.map +1 -1
  88. package/dist/{esm/mdns/MdnsScanner.d.ts → cjs/mdns/MdnsClient.d.ts} +11 -14
  89. package/dist/cjs/mdns/MdnsClient.d.ts.map +1 -0
  90. package/dist/cjs/mdns/{MdnsScanner.js → MdnsClient.js} +35 -90
  91. package/dist/cjs/mdns/MdnsClient.js.map +6 -0
  92. package/dist/cjs/mdns/MdnsConsts.d.ts +11 -2
  93. package/dist/cjs/mdns/MdnsConsts.d.ts.map +1 -1
  94. package/dist/cjs/mdns/MdnsConsts.js +31 -4
  95. package/dist/cjs/mdns/MdnsConsts.js.map +1 -1
  96. package/dist/cjs/mdns/MdnsServer.d.ts +13 -22
  97. package/dist/cjs/mdns/MdnsServer.d.ts.map +1 -1
  98. package/dist/cjs/mdns/MdnsServer.js +55 -140
  99. package/dist/cjs/mdns/MdnsServer.js.map +2 -2
  100. package/dist/cjs/mdns/MdnsService.d.ts +4 -5
  101. package/dist/cjs/mdns/MdnsService.d.ts.map +1 -1
  102. package/dist/cjs/mdns/MdnsService.js +22 -23
  103. package/dist/cjs/mdns/MdnsService.js.map +1 -1
  104. package/dist/cjs/mdns/MdnsSocket.d.ts +32 -0
  105. package/dist/cjs/mdns/MdnsSocket.d.ts.map +1 -0
  106. package/dist/cjs/mdns/MdnsSocket.js +144 -0
  107. package/dist/cjs/mdns/MdnsSocket.js.map +6 -0
  108. package/dist/cjs/mdns/index.d.ts +2 -3
  109. package/dist/cjs/mdns/index.d.ts.map +1 -1
  110. package/dist/cjs/mdns/index.js +2 -3
  111. package/dist/cjs/mdns/index.js.map +1 -1
  112. package/dist/cjs/peer/ControllerCommissioner.js +2 -2
  113. package/dist/cjs/peer/ControllerCommissioner.js.map +1 -1
  114. package/dist/cjs/peer/ControllerDiscovery.d.ts +3 -3
  115. package/dist/cjs/peer/ControllerDiscovery.d.ts.map +1 -1
  116. package/dist/cjs/peer/ControllerDiscovery.js.map +1 -1
  117. package/dist/cjs/peer/PeerSet.d.ts.map +1 -1
  118. package/dist/cjs/peer/PeerSet.js +10 -5
  119. package/dist/cjs/peer/PeerSet.js.map +1 -1
  120. package/dist/cjs/protocol/DeviceAdvertiser.d.ts +23 -18
  121. package/dist/cjs/protocol/DeviceAdvertiser.d.ts.map +1 -1
  122. package/dist/cjs/protocol/DeviceAdvertiser.js +130 -129
  123. package/dist/cjs/protocol/DeviceAdvertiser.js.map +1 -1
  124. package/dist/cjs/protocol/DeviceCommissioner.d.ts +0 -1
  125. package/dist/cjs/protocol/DeviceCommissioner.d.ts.map +1 -1
  126. package/dist/cjs/protocol/DeviceCommissioner.js +44 -44
  127. package/dist/cjs/protocol/DeviceCommissioner.js.map +1 -1
  128. package/dist/cjs/protocol/ExchangeManager.js +1 -1
  129. package/dist/cjs/protocol/ExchangeManager.js.map +1 -1
  130. package/dist/cjs/protocol/MessageExchange.d.ts +1 -1
  131. package/dist/cjs/protocol/MessageExchange.d.ts.map +1 -1
  132. package/dist/cjs/protocol/MessageExchange.js +6 -8
  133. package/dist/cjs/protocol/MessageExchange.js.map +1 -1
  134. package/dist/cjs/session/NodeSession.d.ts +1 -0
  135. package/dist/cjs/session/NodeSession.d.ts.map +1 -1
  136. package/dist/cjs/session/NodeSession.js +3 -0
  137. package/dist/cjs/session/NodeSession.js.map +1 -1
  138. package/dist/cjs/session/Session.d.ts +3 -33
  139. package/dist/cjs/session/Session.d.ts.map +1 -1
  140. package/dist/cjs/session/Session.js +4 -9
  141. package/dist/cjs/session/Session.js.map +1 -1
  142. package/dist/cjs/session/SessionIntervals.d.ts +36 -0
  143. package/dist/cjs/session/SessionIntervals.d.ts.map +1 -0
  144. package/dist/cjs/session/SessionIntervals.js +51 -0
  145. package/dist/cjs/session/SessionIntervals.js.map +6 -0
  146. package/dist/cjs/session/SessionManager.d.ts +1 -1
  147. package/dist/cjs/session/SessionManager.d.ts.map +1 -1
  148. package/dist/cjs/session/SessionManager.js +11 -12
  149. package/dist/cjs/session/SessionManager.js.map +1 -1
  150. package/dist/cjs/session/pase/PaseMessages.js +2 -2
  151. package/dist/cjs/session/pase/PaseMessages.js.map +1 -1
  152. package/dist/esm/advertisement/Advertisement.d.ts +119 -0
  153. package/dist/esm/advertisement/Advertisement.d.ts.map +1 -0
  154. package/dist/esm/advertisement/Advertisement.js +247 -0
  155. package/dist/esm/advertisement/Advertisement.js.map +6 -0
  156. package/dist/esm/advertisement/Advertiser.d.ts +50 -0
  157. package/dist/esm/advertisement/Advertiser.d.ts.map +1 -0
  158. package/dist/esm/advertisement/Advertiser.js +61 -0
  159. package/dist/esm/advertisement/Advertiser.js.map +6 -0
  160. package/dist/esm/advertisement/CommissioningMode.d.ts +11 -0
  161. package/dist/esm/advertisement/CommissioningMode.d.ts.map +1 -0
  162. package/dist/esm/advertisement/CommissioningMode.js +15 -0
  163. package/dist/esm/advertisement/CommissioningMode.js.map +6 -0
  164. package/dist/esm/{common/InstanceBroadcaster.d.ts → advertisement/PairingHintBitmap.d.ts} +3 -69
  165. package/dist/esm/advertisement/PairingHintBitmap.d.ts.map +1 -0
  166. package/dist/esm/{common/InstanceBroadcaster.js → advertisement/PairingHintBitmap.js} +2 -9
  167. package/dist/esm/{common/InstanceBroadcaster.js.map → advertisement/PairingHintBitmap.js.map} +3 -3
  168. package/dist/esm/advertisement/ServiceDescription.d.ts +70 -0
  169. package/dist/esm/advertisement/ServiceDescription.d.ts.map +1 -0
  170. package/dist/esm/advertisement/ServiceDescription.js +41 -0
  171. package/dist/esm/advertisement/ServiceDescription.js.map +6 -0
  172. package/dist/esm/advertisement/ble/BleAdvertisement.d.ts +16 -0
  173. package/dist/esm/advertisement/ble/BleAdvertisement.d.ts.map +1 -0
  174. package/dist/esm/advertisement/ble/BleAdvertisement.js +65 -0
  175. package/dist/esm/advertisement/ble/BleAdvertisement.js.map +6 -0
  176. package/dist/esm/advertisement/ble/BleAdvertiser.d.ts +66 -0
  177. package/dist/esm/advertisement/ble/BleAdvertiser.d.ts.map +1 -0
  178. package/dist/esm/advertisement/ble/BleAdvertiser.js +63 -0
  179. package/dist/esm/advertisement/ble/BleAdvertiser.js.map +6 -0
  180. package/dist/esm/advertisement/ble/index.d.ts +8 -0
  181. package/dist/esm/advertisement/ble/index.d.ts.map +1 -0
  182. package/dist/esm/advertisement/ble/index.js +8 -0
  183. package/dist/esm/advertisement/ble/index.js.map +6 -0
  184. package/dist/esm/advertisement/index.d.ts +13 -0
  185. package/dist/esm/advertisement/index.d.ts.map +1 -0
  186. package/dist/esm/advertisement/index.js +13 -0
  187. package/dist/esm/advertisement/index.js.map +6 -0
  188. package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.d.ts +21 -0
  189. package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.d.ts.map +1 -0
  190. package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.js +95 -0
  191. package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.js.map +6 -0
  192. package/dist/esm/advertisement/mdns/CommissionerMdnsAdvertisement.d.ts +20 -0
  193. package/dist/esm/advertisement/mdns/CommissionerMdnsAdvertisement.d.ts.map +1 -0
  194. package/dist/esm/advertisement/mdns/CommissionerMdnsAdvertisement.js +54 -0
  195. package/dist/esm/advertisement/mdns/CommissionerMdnsAdvertisement.js.map +6 -0
  196. package/dist/esm/advertisement/mdns/MdnsAdvertisement.d.ts +40 -0
  197. package/dist/esm/advertisement/mdns/MdnsAdvertisement.d.ts.map +1 -0
  198. package/dist/esm/advertisement/mdns/MdnsAdvertisement.js +125 -0
  199. package/dist/esm/advertisement/mdns/MdnsAdvertisement.js.map +6 -0
  200. package/dist/esm/advertisement/mdns/MdnsAdvertiser.d.ts +99 -0
  201. package/dist/esm/advertisement/mdns/MdnsAdvertiser.d.ts.map +1 -0
  202. package/dist/esm/advertisement/mdns/MdnsAdvertiser.js +146 -0
  203. package/dist/esm/advertisement/mdns/MdnsAdvertiser.js.map +6 -0
  204. package/dist/esm/advertisement/mdns/OperationalMdnsAdvertisement.d.ts +18 -0
  205. package/dist/esm/advertisement/mdns/OperationalMdnsAdvertisement.d.ts.map +1 -0
  206. package/dist/esm/advertisement/mdns/OperationalMdnsAdvertisement.js +40 -0
  207. package/dist/esm/advertisement/mdns/OperationalMdnsAdvertisement.js.map +6 -0
  208. package/dist/esm/advertisement/mdns/index.d.ts +11 -0
  209. package/dist/esm/advertisement/mdns/index.d.ts.map +1 -0
  210. package/dist/esm/advertisement/mdns/index.js +11 -0
  211. package/dist/esm/advertisement/mdns/index.js.map +6 -0
  212. package/dist/esm/ble/Ble.d.ts +7 -5
  213. package/dist/esm/ble/Ble.d.ts.map +1 -1
  214. package/dist/esm/ble/Ble.js.map +1 -1
  215. package/dist/esm/codec/BtpCodec.d.ts +1 -1
  216. package/dist/esm/codec/BtpCodec.d.ts.map +1 -1
  217. package/dist/esm/codec/BtpCodec.js +4 -4
  218. package/dist/esm/codec/BtpCodec.js.map +1 -1
  219. package/dist/esm/common/Scanner.d.ts +1 -25
  220. package/dist/esm/common/Scanner.d.ts.map +1 -1
  221. package/dist/esm/common/Scanner.js +1 -18
  222. package/dist/esm/common/Scanner.js.map +1 -1
  223. package/dist/esm/common/SupportedTransportsBitmap.d.ts +33 -0
  224. package/dist/esm/common/SupportedTransportsBitmap.d.ts.map +1 -0
  225. package/dist/esm/common/SupportedTransportsBitmap.js +25 -0
  226. package/dist/esm/common/SupportedTransportsBitmap.js.map +6 -0
  227. package/dist/esm/common/index.d.ts +1 -1
  228. package/dist/esm/common/index.d.ts.map +1 -1
  229. package/dist/esm/common/index.js +1 -1
  230. package/dist/esm/fabric/Fabric.d.ts +1 -0
  231. package/dist/esm/fabric/Fabric.d.ts.map +1 -1
  232. package/dist/esm/fabric/Fabric.js +7 -0
  233. package/dist/esm/fabric/Fabric.js.map +1 -1
  234. package/dist/esm/index.d.ts +1 -0
  235. package/dist/esm/index.d.ts.map +1 -1
  236. package/dist/esm/index.js +1 -0
  237. package/dist/esm/index.js.map +1 -1
  238. package/dist/{cjs/mdns/MdnsScanner.d.ts → esm/mdns/MdnsClient.d.ts} +11 -14
  239. package/dist/esm/mdns/MdnsClient.d.ts.map +1 -0
  240. package/dist/esm/mdns/{MdnsScanner.js → MdnsClient.js} +34 -92
  241. package/dist/esm/mdns/MdnsClient.js.map +6 -0
  242. package/dist/esm/mdns/MdnsConsts.d.ts +11 -2
  243. package/dist/esm/mdns/MdnsConsts.d.ts.map +1 -1
  244. package/dist/esm/mdns/MdnsConsts.js +31 -4
  245. package/dist/esm/mdns/MdnsConsts.js.map +1 -1
  246. package/dist/esm/mdns/MdnsServer.d.ts +13 -22
  247. package/dist/esm/mdns/MdnsServer.d.ts.map +1 -1
  248. package/dist/esm/mdns/MdnsServer.js +57 -145
  249. package/dist/esm/mdns/MdnsServer.js.map +2 -2
  250. package/dist/esm/mdns/MdnsService.d.ts +4 -5
  251. package/dist/esm/mdns/MdnsService.d.ts.map +1 -1
  252. package/dist/esm/mdns/MdnsService.js +22 -24
  253. package/dist/esm/mdns/MdnsService.js.map +1 -1
  254. package/dist/esm/mdns/MdnsSocket.d.ts +32 -0
  255. package/dist/esm/mdns/MdnsSocket.d.ts.map +1 -0
  256. package/dist/esm/mdns/MdnsSocket.js +133 -0
  257. package/dist/esm/mdns/MdnsSocket.js.map +6 -0
  258. package/dist/esm/mdns/index.d.ts +2 -3
  259. package/dist/esm/mdns/index.d.ts.map +1 -1
  260. package/dist/esm/mdns/index.js +2 -3
  261. package/dist/esm/mdns/index.js.map +1 -1
  262. package/dist/esm/peer/ControllerCommissioner.js +2 -2
  263. package/dist/esm/peer/ControllerCommissioner.js.map +1 -1
  264. package/dist/esm/peer/ControllerDiscovery.d.ts +3 -3
  265. package/dist/esm/peer/ControllerDiscovery.d.ts.map +1 -1
  266. package/dist/esm/peer/ControllerDiscovery.js.map +1 -1
  267. package/dist/esm/peer/PeerSet.d.ts.map +1 -1
  268. package/dist/esm/peer/PeerSet.js +10 -5
  269. package/dist/esm/peer/PeerSet.js.map +1 -1
  270. package/dist/esm/protocol/DeviceAdvertiser.d.ts +23 -18
  271. package/dist/esm/protocol/DeviceAdvertiser.d.ts.map +1 -1
  272. package/dist/esm/protocol/DeviceAdvertiser.js +131 -139
  273. package/dist/esm/protocol/DeviceAdvertiser.js.map +1 -1
  274. package/dist/esm/protocol/DeviceCommissioner.d.ts +0 -1
  275. package/dist/esm/protocol/DeviceCommissioner.d.ts.map +1 -1
  276. package/dist/esm/protocol/DeviceCommissioner.js +47 -47
  277. package/dist/esm/protocol/DeviceCommissioner.js.map +1 -1
  278. package/dist/esm/protocol/ExchangeManager.js +1 -1
  279. package/dist/esm/protocol/ExchangeManager.js.map +1 -1
  280. package/dist/esm/protocol/MessageExchange.d.ts +1 -1
  281. package/dist/esm/protocol/MessageExchange.d.ts.map +1 -1
  282. package/dist/esm/protocol/MessageExchange.js +6 -12
  283. package/dist/esm/protocol/MessageExchange.js.map +1 -1
  284. package/dist/esm/session/NodeSession.d.ts +1 -0
  285. package/dist/esm/session/NodeSession.d.ts.map +1 -1
  286. package/dist/esm/session/NodeSession.js +3 -0
  287. package/dist/esm/session/NodeSession.js.map +1 -1
  288. package/dist/esm/session/Session.d.ts +3 -33
  289. package/dist/esm/session/Session.d.ts.map +1 -1
  290. package/dist/esm/session/Session.js +4 -9
  291. package/dist/esm/session/Session.js.map +1 -1
  292. package/dist/esm/session/SessionIntervals.d.ts +36 -0
  293. package/dist/esm/session/SessionIntervals.d.ts.map +1 -0
  294. package/dist/esm/session/SessionIntervals.js +31 -0
  295. package/dist/esm/session/SessionIntervals.js.map +6 -0
  296. package/dist/esm/session/SessionManager.d.ts +1 -1
  297. package/dist/esm/session/SessionManager.d.ts.map +1 -1
  298. package/dist/esm/session/SessionManager.js +10 -14
  299. package/dist/esm/session/SessionManager.js.map +1 -1
  300. package/dist/esm/session/pase/PaseMessages.js +1 -1
  301. package/package.json +9 -9
  302. package/src/advertisement/Advertisement.ts +348 -0
  303. package/src/advertisement/Advertiser.ts +83 -0
  304. package/src/advertisement/CommissioningMode.ts +11 -0
  305. package/src/{common/InstanceBroadcaster.ts → advertisement/PairingHintBitmap.ts} +1 -92
  306. package/src/advertisement/ServiceDescription.ts +110 -0
  307. package/src/advertisement/ble/BleAdvertisement.ts +90 -0
  308. package/src/advertisement/ble/BleAdvertiser.ts +116 -0
  309. package/src/advertisement/ble/index.ts +8 -0
  310. package/src/advertisement/index.ts +13 -0
  311. package/src/advertisement/mdns/CommissionableMdnsAdvertisement.ts +118 -0
  312. package/src/advertisement/mdns/CommissionerMdnsAdvertisement.ts +73 -0
  313. package/src/advertisement/mdns/MdnsAdvertisement.ts +167 -0
  314. package/src/advertisement/mdns/MdnsAdvertiser.ts +248 -0
  315. package/src/advertisement/mdns/OperationalMdnsAdvertisement.ts +50 -0
  316. package/src/advertisement/mdns/index.ts +11 -0
  317. package/src/ble/Ble.ts +8 -5
  318. package/src/codec/BtpCodec.ts +4 -3
  319. package/src/common/Scanner.ts +1 -17
  320. package/src/common/SupportedTransportsBitmap.ts +25 -0
  321. package/src/common/index.ts +1 -1
  322. package/src/fabric/Fabric.ts +8 -0
  323. package/src/index.ts +1 -0
  324. package/src/mdns/{MdnsScanner.ts → MdnsClient.ts} +34 -103
  325. package/src/mdns/MdnsConsts.ts +27 -2
  326. package/src/mdns/MdnsServer.ts +79 -184
  327. package/src/mdns/MdnsService.ts +24 -27
  328. package/src/mdns/MdnsSocket.ts +179 -0
  329. package/src/mdns/index.ts +2 -3
  330. package/src/peer/ControllerCommissioner.ts +2 -2
  331. package/src/peer/ControllerDiscovery.ts +3 -3
  332. package/src/peer/PeerSet.ts +15 -9
  333. package/src/protocol/DeviceAdvertiser.ts +161 -151
  334. package/src/protocol/DeviceCommissioner.ts +65 -75
  335. package/src/protocol/ExchangeManager.ts +1 -1
  336. package/src/protocol/MessageExchange.ts +8 -14
  337. package/src/session/NodeSession.ts +4 -0
  338. package/src/session/Session.ts +6 -42
  339. package/src/session/SessionIntervals.ts +57 -0
  340. package/src/session/SessionManager.ts +9 -13
  341. package/src/session/pase/PaseMessages.ts +1 -1
  342. package/dist/cjs/common/InstanceBroadcaster.d.ts.map +0 -1
  343. package/dist/cjs/common/InstanceBroadcaster.js.map +0 -6
  344. package/dist/cjs/mdns/MdnsBroadcaster.d.ts +0 -34
  345. package/dist/cjs/mdns/MdnsBroadcaster.d.ts.map +0 -1
  346. package/dist/cjs/mdns/MdnsBroadcaster.js +0 -365
  347. package/dist/cjs/mdns/MdnsBroadcaster.js.map +0 -6
  348. package/dist/cjs/mdns/MdnsInstanceBroadcaster.d.ts +0 -28
  349. package/dist/cjs/mdns/MdnsInstanceBroadcaster.d.ts.map +0 -1
  350. package/dist/cjs/mdns/MdnsInstanceBroadcaster.js +0 -87
  351. package/dist/cjs/mdns/MdnsInstanceBroadcaster.js.map +0 -6
  352. package/dist/cjs/mdns/MdnsScanner.d.ts.map +0 -1
  353. package/dist/cjs/mdns/MdnsScanner.js.map +0 -6
  354. package/dist/esm/common/InstanceBroadcaster.d.ts.map +0 -1
  355. package/dist/esm/mdns/MdnsBroadcaster.d.ts +0 -34
  356. package/dist/esm/mdns/MdnsBroadcaster.d.ts.map +0 -1
  357. package/dist/esm/mdns/MdnsBroadcaster.js +0 -378
  358. package/dist/esm/mdns/MdnsBroadcaster.js.map +0 -6
  359. package/dist/esm/mdns/MdnsInstanceBroadcaster.d.ts +0 -28
  360. package/dist/esm/mdns/MdnsInstanceBroadcaster.d.ts.map +0 -1
  361. package/dist/esm/mdns/MdnsInstanceBroadcaster.js +0 -67
  362. package/dist/esm/mdns/MdnsInstanceBroadcaster.js.map +0 -6
  363. package/dist/esm/mdns/MdnsScanner.d.ts.map +0 -1
  364. package/dist/esm/mdns/MdnsScanner.js.map +0 -6
  365. package/src/mdns/MdnsBroadcaster.ts +0 -451
  366. package/src/mdns/MdnsInstanceBroadcaster.ts +0 -88
@@ -21,59 +21,70 @@ __export(DeviceAdvertiser_exports, {
21
21
  DeviceAdvertiser: () => DeviceAdvertiser
22
22
  });
23
23
  module.exports = __toCommonJS(DeviceAdvertiser_exports);
24
- var import_InstanceBroadcaster = require("#common/InstanceBroadcaster.js");
24
+ var import_Advertisement = require("#advertisement/Advertisement.js");
25
+ var import_ServiceDescription = require("#advertisement/ServiceDescription.js");
25
26
  var import_FabricManager = require("#fabric/FabricManager.js");
26
27
  var import_general = require("#general");
27
28
  var import_SessionManager = require("#session/SessionManager.js");
28
- var import_types = require("#types");
29
29
  /**
30
30
  * @license
31
31
  * Copyright 2022-2025 Matter.js Authors
32
32
  * SPDX-License-Identifier: Apache-2.0
33
33
  */
34
- const logger = import_general.Logger.get("DeviceAdvertiser");
35
34
  class DeviceAdvertiser {
36
35
  #context;
37
- #broadcasters = /* @__PURE__ */ new Set();
38
- #timedOut = (0, import_general.AsyncObservable)();
39
- #operationalModeEnabled = new import_general.AsyncObservable();
40
- #operationalModeEnded = new import_general.AsyncObservable();
36
+ #advertisers = /* @__PURE__ */ new Set();
41
37
  #observers = new import_general.ObserverGroup();
42
- #interval;
43
- #startTime = null;
38
+ #isOperational = false;
44
39
  #isClosing = false;
45
- #commissioningMode = import_InstanceBroadcaster.CommissioningMode.NotCommissioning;
46
- // Currently we do not put much effort into synchronizing announcements as it probably isn't really necessary. But
47
- // this mutex prevents automated announcements from piling up and allows us to ensure announcements are complete on
48
- // close
49
- #mutex = new import_general.Mutex(this);
40
+ #commissioningService;
50
41
  constructor(context) {
51
42
  this.#context = context;
52
- this.#interval = import_general.Time.getPeriodicTimer(
53
- "Server node announcement",
54
- import_types.DEVICE_ANNOUNCEMENT_INTERVAL_MS,
55
- () => (
56
- // Announcement needs to await a previous announcement because otherwise in testing at least announcement
57
- // may crash if started simultaneously
58
- this.#mutex.run(this.advertise.bind(this))
59
- )
60
- );
61
- this.#observers.on(this.#context.fabrics.events.deleted, () => {
62
- if (this.#context.fabrics.length === 0) {
63
- this.#mutex.run(this.#exitOperationalMode.bind(this));
64
- } else {
65
- this.#mutex.run(() => this.advertise(true));
43
+ const { fabrics, sessions } = this.#context;
44
+ this.#observers.on(fabrics.events.added, (fabric) => {
45
+ if (!this.#isOperational) {
46
+ return;
66
47
  }
48
+ this.#advertiseFabric(fabric, "startup");
67
49
  });
68
- this.#observers.on(this.#context.sessions.resubmissionStarted, (session) => {
69
- logger.debug(`Resubmission started, re-announce node ${session?.nodeId}`);
70
- this.#mutex.run(() => this.advertise(true));
50
+ this.#observers.on(fabrics.events.deleted, (fabric) => {
51
+ import_Advertisement.Advertisement.cancelAll(this.#advertisements((ad) => ad.isOperational() && ad.description.fabric === fabric));
52
+ });
53
+ this.#observers.on(sessions.sessions.added, (session) => {
54
+ const fabricIndex = session.fabric?.fabricIndex;
55
+ const fabric = fabricIndex ? fabrics.findByIndex(fabricIndex) : void 0;
56
+ if (!fabric) {
57
+ return;
58
+ }
59
+ for (const advertiser of this.#advertisers) {
60
+ const ad = advertiser.advertisementForFabric(fabric);
61
+ if (ad) {
62
+ ad.serviceConnected();
63
+ }
64
+ }
65
+ });
66
+ this.#observers.on(sessions.sessions.deleted, (session) => {
67
+ const fabricIndex = session.fabric?.fabricIndex;
68
+ const fabric = fabricIndex ? fabrics.findByIndex(fabricIndex) : void 0;
69
+ if (fabric) {
70
+ if (fabric.hasSessionForPeer(session.peerNodeId)) {
71
+ return;
72
+ }
73
+ for (const advertiser of this.#advertisers) {
74
+ const ad = advertiser.advertisementForFabric(fabric);
75
+ if (ad) {
76
+ ad.serviceDisconnected();
77
+ }
78
+ }
79
+ return;
80
+ }
81
+ this.#startCommissioningAdvertisement();
71
82
  });
72
- this.#observers.on(this.#context.sessions.subscriptionsChanged, (_session, subscription) => {
73
- if (subscription.isCanceledByPeer) {
74
- logger.debug(`Subscription canceled by peer, re-announce`);
75
- this.#mutex.run(this.startAdvertising.bind(this));
83
+ this.#observers.on(sessions.retry, (session) => {
84
+ if (!session.isSecure || !session.fabric) {
85
+ return;
76
86
  }
87
+ this.#advertiseFabric(session.associatedFabric, "retransmit");
77
88
  });
78
89
  }
79
90
  toString() {
@@ -88,125 +99,115 @@ class DeviceAdvertiser {
88
99
  return instance;
89
100
  }
90
101
  /**
91
- * Emitted when the advertising window closes with no response.
102
+ * Advertise the device as commissionable.
92
103
  */
93
- get timedOut() {
94
- return this.#timedOut;
104
+ enterCommissioningMode(description) {
105
+ this.#commissioningService = description;
106
+ this.#startCommissioningAdvertisement();
95
107
  }
96
108
  /**
97
- * Emitted when the device stops advertising due to decommissioning.
109
+ * Begin automatic broadcast for commissioning if in commissionable mode.
98
110
  */
99
- get operationalModeEnded() {
100
- return this.#operationalModeEnded;
111
+ #startCommissioningAdvertisement() {
112
+ if (this.#isClosing) {
113
+ return;
114
+ }
115
+ if (this.#commissioningService === void 0) {
116
+ return;
117
+ }
118
+ for (const advertiser of this.#advertisers) {
119
+ advertiser.advertise(this.#commissioningService, "startup");
120
+ }
101
121
  }
102
122
  /**
103
- * Emitted when the device starts advertising in operational mode.
123
+ * Cease advertising the device as commissionable.
104
124
  */
105
- get operationalModeEnabled() {
106
- return this.#operationalModeEnabled;
107
- }
108
- async enterCommissioningMode(mode, deviceData) {
109
- this.#commissioningMode = mode;
110
- for (const broadcaster of this.#broadcasters) {
111
- await broadcaster.setCommissionMode(mode, deviceData);
112
- }
113
- await this.startAdvertising();
114
- }
115
- async exitCommissioningMode() {
116
- this.#commissioningMode = import_InstanceBroadcaster.CommissioningMode.NotCommissioning;
117
- this.#interval.stop();
118
- this.#startTime = null;
119
- for (const broadcaster of this.#broadcasters) {
120
- await broadcaster.expireCommissioningAnnouncement();
125
+ exitCommissioningMode() {
126
+ if (!this.#commissioningService) {
127
+ return;
121
128
  }
129
+ this.#commissioningService = void 0;
130
+ return import_Advertisement.Advertisement.closeAll(this.#advertisements((ad) => ad.isCommissioning()));
122
131
  }
123
- async startAdvertising() {
124
- if (this.#isClosing) return;
125
- if (this.#interval.isRunning) {
126
- this.#interval.stop();
132
+ /**
133
+ * Advertise the device as operational.
134
+ */
135
+ enterOperationalMode() {
136
+ if (this.#isOperational) {
137
+ return;
127
138
  }
128
- this.#startTime = import_general.Time.nowMs();
129
- this.#interval.start();
130
- await this.advertise();
131
- }
132
- async advertise(once = false) {
133
- if (!once) {
134
- if (this.#startTime !== null && import_general.Time.nowMs() - this.#startTime > import_types.DEVICE_ANNOUNCEMENT_DURATION_MS) {
135
- logger.debug("Announcement duration reached, stop announcing");
136
- await this.#timedOut.emit();
137
- return;
138
- }
139
- if (this.#commissioningMode !== import_InstanceBroadcaster.CommissioningMode.NotCommissioning) {
140
- for (const broadcaster of this.#broadcasters) {
141
- await broadcaster.announce();
142
- }
143
- return;
144
- }
139
+ this.#isOperational = true;
140
+ this.#startOperationalAdvertisement();
141
+ }
142
+ /**
143
+ * Begin automatic broadcast for fabrics if in operational mode.
144
+ */
145
+ #startOperationalAdvertisement() {
146
+ if (!this.#isOperational) {
147
+ return;
145
148
  }
146
- const fabrics = this.#context.fabrics;
147
- if (fabrics.length) {
148
- let fabricsWithoutSessions = 0;
149
- for (const fabric of fabrics) {
150
- const session = this.#context.sessions.getSessionForNode(fabric.addressOf(fabric.rootNodeId));
151
- if (session === void 0 || !session.isSecure || session.subscriptions.size === 0) {
152
- fabricsWithoutSessions++;
153
- logger.debug(
154
- "Announcing",
155
- import_general.Diagnostic.dict({ fabricIndex: fabric.fabricIndex, fabricId: fabric.fabricId })
156
- );
157
- }
158
- }
159
- for (const broadcaster of this.#broadcasters) {
160
- await broadcaster.setFabrics(fabrics.fabrics);
161
- if (fabricsWithoutSessions > 0 || this.#commissioningMode !== import_InstanceBroadcaster.CommissioningMode.NotCommissioning) {
162
- await broadcaster.announce();
163
- }
149
+ const fabricsAdvertised = new Set(
150
+ this.#advertisements((ad) => ad.isOperational()).map(
151
+ (ad) => ad.description.fabric
152
+ )
153
+ );
154
+ for (const fabric of this.#context.fabrics) {
155
+ if (!fabricsAdvertised.has(fabric)) {
156
+ this.#advertiseFabric(fabric, "startup");
164
157
  }
165
- } else {
166
- await this.#exitOperationalMode();
167
- await this.#operationalModeEnded.emit();
168
158
  }
169
159
  }
170
- async advertiseFabrics(fabrics, expireCommissioningAnnouncement = false) {
171
- if (expireCommissioningAnnouncement) {
172
- await this.#operationalModeEnabled.emit();
173
- }
174
- for (const broadcaster of this.#broadcasters) {
175
- await broadcaster.setFabrics(fabrics, expireCommissioningAnnouncement);
176
- await broadcaster.announce();
160
+ /**
161
+ * Cease advertising the device as operational.
162
+ */
163
+ exitOperationalMode() {
164
+ if (!this.#isOperational) {
165
+ return;
177
166
  }
167
+ this.#isOperational = false;
168
+ import_Advertisement.Advertisement.cancelAll(this.#advertisements((ad) => ad.isOperational()));
178
169
  }
179
- async #exitOperationalMode() {
180
- for (const broadcaster of this.#broadcasters) {
181
- await broadcaster.expireFabricAnnouncement();
182
- }
170
+ /**
171
+ * Reset automatic advertisement.
172
+ *
173
+ * This is useful when there is a network change.
174
+ */
175
+ restartAdvertisement() {
176
+ this.#startCommissioningAdvertisement();
177
+ this.#startOperationalAdvertisement();
183
178
  }
184
179
  async close() {
185
180
  this.#isClosing = true;
186
- await this.#mutex;
187
181
  this.#observers.close();
188
- this.#interval.stop();
189
- await this.clearBroadcasters();
182
+ await this.clearAdvertisers();
183
+ }
184
+ hasAdvertiser(advertiser) {
185
+ return this.#advertisers.has(advertiser);
186
+ }
187
+ addAdvertiser(advertiser) {
188
+ this.#advertisers.add(advertiser);
190
189
  }
191
- hasBroadcaster(broadcaster) {
192
- return this.#broadcasters.has(broadcaster);
190
+ async deleteAdvertiser(advertiser) {
191
+ this.#advertisers.delete(advertiser);
192
+ await advertiser.close();
193
193
  }
194
- addBroadcaster(broadcaster) {
195
- this.#broadcasters.add(broadcaster);
194
+ async clearAdvertisers() {
195
+ const advertisers = [...this.#advertisers];
196
+ this.#advertisers.clear();
197
+ await import_general.MatterAggregateError.allSettled(advertisers.map((advertiser) => advertiser.close()));
196
198
  }
197
- async deleteBroadcaster(broadcaster) {
198
- if (this.#broadcasters.delete(broadcaster)) {
199
- await broadcaster.expireAllAnnouncements();
199
+ #advertiseFabric(fabric, event) {
200
+ if (this.#isClosing) {
201
+ return;
202
+ }
203
+ for (const advertiser of this.#advertisers) {
204
+ advertiser.advertise(import_ServiceDescription.ServiceDescription.Operational({ fabric }), event);
200
205
  }
201
206
  }
202
- async clearBroadcasters() {
203
- const broadcasters = [...this.#broadcasters];
204
- const closed = import_general.MatterAggregateError.allSettled(
205
- broadcasters.map((b) => b.close()),
206
- "Error closing broadcasters"
207
- ).catch((error) => logger.error(error));
208
- this.#broadcasters.clear();
209
- await closed;
207
+ #advertisements(predicate) {
208
+ return [...this.#advertisers].flatMap(
209
+ (advertiser) => predicate ? advertiser.filter(predicate) : [...advertiser.advertisements]
210
+ );
210
211
  }
211
212
  }
212
213
  //# sourceMappingURL=DeviceAdvertiser.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/protocol/DeviceAdvertiser.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,iCAAsF;AAEtF,2BAA8B;AAC9B,qBAWO;AACP,4BAA+B;AAC/B,mBAAiF;AAtBjF;AAAA;AAAA;AAAA;AAAA;AAwBA,MAAM,SAAS,sBAAO,IAAI,kBAAkB;AAarC,MAAM,iBAAiB;AAAA,EACjB;AAAA,EACA,gBAAgB,oBAAI,IAAyB;AAAA,EAC7C,gBAAY,gCAAoB;AAAA,EAChC,0BAA0B,IAAI,+BAAoB;AAAA,EAClD,wBAAwB,IAAI,+BAAoB;AAAA,EAChD,aAAa,IAAI,6BAAc;AAAA,EACxC;AAAA,EACA,aAA4B;AAAA,EAC5B,aAAa;AAAA,EACb,qBAAqB,6CAAkB;AAAA;AAAA;AAAA;AAAA,EAKvC,SAAS,IAAI,qBAAM,IAAI;AAAA,EAEvB,YAAY,SAAkC;AAC1C,SAAK,WAAW;AAEhB,SAAK,YAAY,oBAAK;AAAA,MAAiB;AAAA,MAA4B;AAAA,MAAiC;AAAA;AAAA;AAAA,QAGhG,KAAK,OAAO,IAAI,KAAK,UAAU,KAAK,IAAI,CAAC;AAAA;AAAA,IAC7C;AAEA,SAAK,WAAW,GAAG,KAAK,SAAS,QAAQ,OAAO,SAAS,MAAM;AAC3D,UAAI,KAAK,SAAS,QAAQ,WAAW,GAAG;AAEpC,aAAK,OAAO,IAAI,KAAK,qBAAqB,KAAK,IAAI,CAAC;AAAA,MACxD,OAAO;AAEH,aAAK,OAAO,IAAI,MAAM,KAAK,UAAU,IAAI,CAAC;AAAA,MAC9C;AAAA,IACJ,CAAC;AAED,SAAK,WAAW,GAAG,KAAK,SAAS,SAAS,qBAAqB,CAAC,YAAa;AACzE,aAAO,MAAM,0CAA0C,SAAS,MAAM,EAAE;AACxE,WAAK,OAAO,IAAI,MAAM,KAAK,UAAU,IAAI,CAAC;AAAA,IAC9C,CAAC;AAED,SAAK,WAAW,GAAG,KAAK,SAAS,SAAS,sBAAsB,CAAC,UAAU,iBAAiB;AACxF,UAAI,aAAa,kBAAkB;AAC/B,eAAO,MAAM,4CAA4C;AACzD,aAAK,OAAO,IAAI,KAAK,iBAAiB,KAAK,IAAI,CAAC;AAAA,MACpD;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,WAAW;AACP,WAAO;AAAA,EACX;AAAA,EAEA,QAAQ,6BAAc,MAAM,EAAE,KAAkB;AAC5C,UAAM,WAAW,IAAI,iBAAiB;AAAA,MAClC,SAAS,IAAI,IAAI,kCAAa;AAAA,MAC9B,UAAU,IAAI,IAAI,oCAAc;AAAA,IACpC,CAAC;AACD,QAAI,IAAI,kBAAkB,QAAQ;AAClC,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAAW;AACX,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,uBAAuB;AACvB,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,yBAAyB;AACzB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,uBAAuB,MAAyB,YAA2C;AAC7F,SAAK,qBAAqB;AAC1B,eAAW,eAAe,KAAK,eAAe;AAC1C,YAAM,YAAY,kBAAkB,MAAM,UAAU;AAAA,IACxD;AACA,UAAM,KAAK,iBAAiB;AAAA,EAChC;AAAA,EAEA,MAAM,wBAAwB;AAC1B,SAAK,qBAAqB,6CAAkB;AAC5C,SAAK,UAAU,KAAK;AACpB,SAAK,aAAa;AAClB,eAAW,eAAe,KAAK,eAAe;AAC1C,YAAM,YAAY,gCAAgC;AAAA,IACtD;AAAA,EACJ;AAAA,EAEA,MAAM,mBAAmB;AACrB,QAAI,KAAK,WAAY;AACrB,QAAI,KAAK,UAAU,WAAW;AAC1B,WAAK,UAAU,KAAK;AAAA,IACxB;AACA,SAAK,aAAa,oBAAK,MAAM;AAC7B,SAAK,UAAU,MAAM;AACrB,UAAM,KAAK,UAAU;AAAA,EACzB;AAAA,EAEA,MAAM,UAAU,OAAO,OAAO;AAC1B,QAAI,CAAC,MAAM;AAEP,UAAI,KAAK,eAAe,QAAQ,oBAAK,MAAM,IAAI,KAAK,aAAa,8CAAiC;AAC9F,eAAO,MAAM,gDAAgD;AAC7D,cAAM,KAAK,UAAU,KAAK;AAC1B;AAAA,MACJ;AAEA,UAAI,KAAK,uBAAuB,6CAAkB,kBAAkB;AAEhE,mBAAW,eAAe,KAAK,eAAe;AAC1C,gBAAM,YAAY,SAAS;AAAA,QAC/B;AACA;AAAA,MACJ;AAAA,IACJ;AAEA,UAAM,UAAU,KAAK,SAAS;AAE9B,QAAI,QAAQ,QAAQ;AAChB,UAAI,yBAAyB;AAC7B,iBAAW,UAAU,SAAS;AAC1B,cAAM,UAAU,KAAK,SAAS,SAAS,kBAAkB,OAAO,UAAU,OAAO,UAAU,CAAC;AAC5F,YAAI,YAAY,UAAa,CAAC,QAAQ,YAAY,QAAQ,cAAc,SAAS,GAAG;AAChF;AACA,iBAAO;AAAA,YACH;AAAA,YACA,0BAAW,KAAK,EAAE,aAAa,OAAO,aAAa,UAAU,OAAO,SAAS,CAAC;AAAA,UAClF;AAAA,QACJ;AAAA,MACJ;AACA,iBAAW,eAAe,KAAK,eAAe;AAC1C,cAAM,YAAY,WAAW,QAAQ,OAAO;AAC5C,YAAI,yBAAyB,KAAK,KAAK,uBAAuB,6CAAkB,kBAAkB;AAC9F,gBAAM,YAAY,SAAS;AAAA,QAC/B;AAAA,MACJ;AAAA,IACJ,OAAO;AAEH,YAAM,KAAK,qBAAqB;AAChC,YAAM,KAAK,sBAAsB,KAAK;AAAA,IAC1C;AAAA,EACJ;AAAA,EAEA,MAAM,iBAAiB,SAAmB,kCAAkC,OAAO;AAC/E,QAAI,iCAAiC;AAIjC,YAAM,KAAK,wBAAwB,KAAK;AAAA,IAC5C;AACA,eAAW,eAAe,KAAK,eAAe;AAC1C,YAAM,YAAY,WAAW,SAAS,+BAA+B;AACrE,YAAM,YAAY,SAAS;AAAA,IAC/B;AAAA,EACJ;AAAA,EAEA,MAAM,uBAAuB;AACzB,eAAW,eAAe,KAAK,eAAe;AAC1C,YAAM,YAAY,yBAAyB;AAAA,IAC/C;AAAA,EACJ;AAAA,EAEA,MAAM,QAAQ;AACV,SAAK,aAAa;AAClB,UAAM,KAAK;AACX,SAAK,WAAW,MAAM;AACtB,SAAK,UAAU,KAAK;AACpB,UAAM,KAAK,kBAAkB;AAAA,EACjC;AAAA,EAEA,eAAe,aAAkC;AAC7C,WAAO,KAAK,cAAc,IAAI,WAAW;AAAA,EAC7C;AAAA,EAEA,eAAe,aAAkC;AAC7C,SAAK,cAAc,IAAI,WAAW;AAAA,EACtC;AAAA,EAEA,MAAM,kBAAkB,aAAkC;AACtD,QAAI,KAAK,cAAc,OAAO,WAAW,GAAG;AACxC,YAAM,YAAY,uBAAuB;AAAA,IAC7C;AAAA,EACJ;AAAA,EAEA,MAAM,oBAAoB;AACtB,UAAM,eAAe,CAAC,GAAG,KAAK,aAAa;AAC3C,UAAM,SAAS,oCAAqB;AAAA,MAChC,aAAa,IAAI,OAAK,EAAE,MAAM,CAAC;AAAA,MAC/B;AAAA,IACJ,EAAE,MAAM,WAAS,OAAO,MAAM,KAAK,CAAC;AACpC,SAAK,cAAc,MAAM;AACzB,UAAM;AAAA,EACV;AACJ;",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -43,7 +43,6 @@ export declare class DeviceCommissioner {
43
43
  beginTimed(failsafeContext: FailsafeContext): void;
44
44
  get isFailsafeArmed(): boolean;
45
45
  assertFailsafeArmed(message?: string): void;
46
- reactivateAdvertiser(): void;
47
46
  endCommissioning(): Promise<void>;
48
47
  close(): Promise<void>;
49
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DeviceCommissioner.d.ts","sourceRoot":"","sources":["../../../src/protocol/DeviceCommissioner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAEH,WAAW,EACX,aAAa,EAKb,YAAY,EAEf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAmC,MAAM,QAAQ,CAAC;AAE/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD;;GAEG;AACH,8BAAsB,2BAA2B;IAC7C,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC,aAAa,CAAC;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACtC,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,mBAAmB,EAAE,2BAA2B,CAAC;CACpD;AAED;;;;;GAKG;AACH,qBAAa,kBAAkB;;gBAQf,OAAO,EAAE,yBAAyB;IA+C9C,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAY9C,IAAI,eAAe,oBAGlB;IAEK,0BAA0B,CAC5B,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,UAAU,EACtB,wBAAwB,EAAE,MAAM,YAAY;IAgB1C,uBAAuB,CAAC,wBAAwB,CAAC,EAAE,MAAM,YAAY;IAoB3E,UAAU,CAAC,eAAe,EAAE,eAAe;IAsB3C,IAAI,eAAe,YAElB;IAED,mBAAmB,CAAC,OAAO,CAAC,EAAE,MAAM;IAQpC,oBAAoB;IAmDd,gBAAgB;IAsBhB,KAAK;CAQd"}
1
+ {"version":3,"file":"DeviceCommissioner.d.ts","sourceRoot":"","sources":["../../../src/protocol/DeviceCommissioner.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EACH,WAAW,EACX,aAAa,EAKb,YAAY,EAIf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAqE,MAAM,QAAQ,CAAC;AAEjH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD;;GAEG;AACH,8BAAsB,2BAA2B;IAC7C,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC,aAAa,CAAC;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACtC,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,mBAAmB,EAAE,2BAA2B,CAAC;CACpD;AAED;;;;;GAKG;AACH,qBAAa,kBAAkB;;gBASf,OAAO,EAAE,yBAAyB;IAU9C,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAY9C,IAAI,eAAe,oBAGlB;IAEK,0BAA0B,CAC5B,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,UAAU,EACtB,wBAAwB,EAAE,MAAM,YAAY;IAgB1C,uBAAuB,CAAC,wBAAwB,CAAC,EAAE,MAAM,YAAY;IAoB3E,UAAU,CAAC,eAAe,EAAE,eAAe;IAY3C,IAAI,eAAe,YAElB;IAED,mBAAmB,CAAC,OAAO,CAAC,EAAE,MAAM;IAmF9B,gBAAgB;IAsBhB,KAAK;CAkBd"}
@@ -22,8 +22,9 @@ __export(DeviceCommissioner_exports, {
22
22
  DeviceCommissioner: () => DeviceCommissioner
23
23
  });
24
24
  module.exports = __toCommonJS(DeviceCommissioner_exports);
25
+ var import_CommissioningMode = require("#advertisement/CommissioningMode.js");
26
+ var import_ServiceDescription = require("#advertisement/ServiceDescription.js");
25
27
  var import_administrator_commissioning = require("#clusters/administrator-commissioning");
26
- var import_InstanceBroadcaster = require("#common/InstanceBroadcaster.js");
27
28
  var import_FabricManager = require("#fabric/FabricManager.js");
28
29
  var import_general = require("#general");
29
30
  var import_SecureChannelProtocol = require("#securechannel/SecureChannelProtocol.js");
@@ -46,26 +47,13 @@ class DeviceCommissioner {
46
47
  #activeDiscriminator;
47
48
  #activeCommissioningEndCallback;
48
49
  #observers = new import_general.ObserverGroup(this);
50
+ #commissioningTimeout;
49
51
  constructor(context) {
50
52
  this.#context = context;
51
- this.#observers.on(this.#context.advertiser.timedOut, this.endCommissioning);
52
- this.#observers.on(this.#context.fabrics.events.deleted, async () => {
53
- if (this.#context.fabrics.length === 0 || this.#windowStatus !== import_administrator_commissioning.AdministratorCommissioning.CommissioningWindowStatus.WindowNotOpen) {
54
- this.reactivateAdvertiser();
55
- }
56
- });
57
- this.#observers.on(this.#context.advertiser.operationalModeEnded, this.allowBasicCommissioning);
58
53
  this.#observers.on(this.#context.secureChannelProtocol.tooManyPaseErrors, async () => {
59
54
  logger.info("Maximum number of PASE pairing errors reached, canceling commissioning");
60
55
  await this.endCommissioning();
61
56
  });
62
- this.#observers.on(this.#context.sessions.sessions.deleted, (session) => {
63
- const currentFabricIndex = session.fabric?.fabricIndex;
64
- const existingSessionFabric = currentFabricIndex === void 0 ? void 0 : this.#context.fabrics.findByIndex(currentFabricIndex)?.fabricIndex;
65
- if (this.#context.fabrics.length > 0 || session.isPase || !existingSessionFabric) {
66
- this.#context.advertiser.startAdvertising().catch((error) => logger.warn(`Error while announcing`, error));
67
- }
68
- });
69
57
  }
70
58
  static [import_general.Environmental.create](env) {
71
59
  const instance = new DeviceCommissioner({
@@ -85,11 +73,11 @@ class DeviceCommissioner {
85
73
  async allowEnhancedCommissioning(discriminator, paseServer, commissioningEndCallback) {
86
74
  if (this.#windowStatus === import_administrator_commissioning.AdministratorCommissioning.CommissioningWindowStatus.BasicWindowOpen) {
87
75
  throw new import_general.MatterFlowError(
88
- "Basic commissioning window is already open! Cannot set Enhanced commissioning mode."
76
+ "Basic commissioning window is already open! Cannot set enhanced commissioning mode."
89
77
  );
90
78
  }
91
79
  this.#context.secureChannelProtocol.setPaseCommissioner(paseServer);
92
- await this.#becomeCommissionable(
80
+ this.#becomeCommissionable(
93
81
  import_administrator_commissioning.AdministratorCommissioning.CommissioningWindowStatus.EnhancedWindowOpen,
94
82
  commissioningEndCallback,
95
83
  discriminator
@@ -98,7 +86,7 @@ class DeviceCommissioner {
98
86
  async allowBasicCommissioning(commissioningEndCallback) {
99
87
  if (this.#windowStatus === import_administrator_commissioning.AdministratorCommissioning.CommissioningWindowStatus.EnhancedWindowOpen) {
100
88
  throw new import_general.MatterFlowError(
101
- "Enhanced commissioning window is already open! Cannot set Basic commissioning mode."
89
+ "Enhanced commissioning window is already open! Cannot set basic commissioning mode."
102
90
  );
103
91
  }
104
92
  this.#context.secureChannelProtocol.setPaseCommissioner(
@@ -107,20 +95,13 @@ class DeviceCommissioner {
107
95
  salt: this.#context.fabrics.crypto.randomBytes(32)
108
96
  })
109
97
  );
110
- await this.#becomeCommissionable(
98
+ this.#becomeCommissionable(
111
99
  import_administrator_commissioning.AdministratorCommissioning.CommissioningWindowStatus.BasicWindowOpen,
112
100
  commissioningEndCallback
113
101
  );
114
102
  }
115
103
  beginTimed(failsafeContext) {
116
104
  this.#failsafeContext = failsafeContext;
117
- this.#context.fabrics.events.added.on((fabric) => {
118
- const fabrics = this.#context.fabrics.fabrics;
119
- this.#context.advertiser.advertiseFabrics(fabrics, true).catch(
120
- (error) => logger.warn(`Error sending Fabric announcement for Index ${fabric.fabricIndex}`, error)
121
- );
122
- logger.info("Announce done", import_general.Diagnostic.dict({ fabric: fabric.fabricId, fabricIndex: fabric.fabricIndex }));
123
- });
124
105
  failsafeContext.commissioned.on(async () => await this.endCommissioning());
125
106
  failsafeContext.construction.change.on((status) => {
126
107
  if (status === import_general.Lifecycle.Status.Destroyed) {
@@ -138,28 +119,39 @@ class DeviceCommissioner {
138
119
  import_types.StatusCode.FailsafeRequired
139
120
  );
140
121
  }
141
- reactivateAdvertiser() {
142
- if (this.#windowStatus === import_administrator_commissioning.AdministratorCommissioning.CommissioningWindowStatus.WindowNotOpen) {
143
- return;
144
- }
145
- this.#enterCommissioningMode(this.#windowStatus, this.#activeDiscriminator).catch(
146
- (error) => logger.warn("Error sending announcement:", error)
147
- );
148
- }
149
- async #enterCommissioningMode(windowStatus, discriminator) {
122
+ #enterCommissioningMode(windowStatus, discriminator) {
123
+ this.#cancelTimeout();
150
124
  this.#windowStatus = windowStatus;
151
125
  const commissioningConfig = this.#context.commissioningConfig.values;
152
- await this.#context.advertiser.enterCommissioningMode(
153
- windowStatus === import_administrator_commissioning.AdministratorCommissioning.CommissioningWindowStatus.EnhancedWindowOpen ? import_InstanceBroadcaster.CommissioningMode.Enhanced : import_InstanceBroadcaster.CommissioningMode.Basic,
154
- {
126
+ const advertisementWindowS = commissioningConfig.advertisementWindowS ?? import_types.STANDARD_COMMISSIONING_TIMEOUT_S;
127
+ const mode = windowStatus === import_administrator_commissioning.AdministratorCommissioning.CommissioningWindowStatus.EnhancedWindowOpen ? import_CommissioningMode.CommissioningMode.Enhanced : import_CommissioningMode.CommissioningMode.Basic;
128
+ this.#context.advertiser.enterCommissioningMode(
129
+ import_ServiceDescription.ServiceDescription.Commissionable({
155
130
  ...commissioningConfig.productDescription,
131
+ mode,
156
132
  discriminator: discriminator ?? commissioningConfig.discriminator
157
- }
133
+ })
134
+ );
135
+ this.#commissioningTimeout = import_general.Time.getTimer(
136
+ "Commissioning timeout",
137
+ advertisementWindowS,
138
+ this.endCommissioning.bind(this)
158
139
  );
159
140
  }
160
- async #becomeCommissionable(windowStatus, activeCommissioningEndCallback, discriminator) {
141
+ #becomeCommissionable(windowStatus, activeCommissioningEndCallback, discriminator) {
142
+ if (this.#windowStatus !== import_administrator_commissioning.AdministratorCommissioning.CommissioningWindowStatus.WindowNotOpen) {
143
+ if (this.#windowStatus !== windowStatus) {
144
+ throw new import_general.InternalError(
145
+ `Commissioning mode ${windowStatus} request but already in mode ${this.#windowStatus}`
146
+ );
147
+ }
148
+ if (this.#activeCommissioningEndCallback && this.#activeCommissioningEndCallback !== activeCommissioningEndCallback) {
149
+ throw new import_general.InternalError(`Already in commissioning mode with a different callback`);
150
+ }
151
+ }
161
152
  if (this.#windowStatus === windowStatus && (discriminator === void 0 || discriminator === this.#activeDiscriminator)) {
162
- return this.reactivateAdvertiser();
153
+ this.#enterCommissioningMode(this.#windowStatus, this.#activeDiscriminator);
154
+ return;
163
155
  }
164
156
  if (this.#windowStatus !== import_administrator_commissioning.AdministratorCommissioning.CommissioningWindowStatus.WindowNotOpen) {
165
157
  throw new import_general.InternalError(`Commissioning window already open with different mode (${this.#windowStatus})!`);
@@ -169,13 +161,13 @@ class DeviceCommissioner {
169
161
  }
170
162
  this.#activeCommissioningEndCallback = activeCommissioningEndCallback;
171
163
  this.#activeDiscriminator = discriminator;
172
- await this.#enterCommissioningMode(windowStatus, discriminator);
164
+ this.#enterCommissioningMode(windowStatus, discriminator);
173
165
  }
174
166
  async endCommissioning() {
175
167
  if (this.#windowStatus === import_administrator_commissioning.AdministratorCommissioning.CommissioningWindowStatus.WindowNotOpen) {
176
168
  return;
177
169
  }
178
- logger.debug("Commissioning mode ended, stop announcements.");
170
+ this.#cancelTimeout();
179
171
  this.#context.secureChannelProtocol.removePaseCommissioner();
180
172
  this.#windowStatus = import_administrator_commissioning.AdministratorCommissioning.CommissioningWindowStatus.WindowNotOpen;
181
173
  if (this.#activeCommissioningEndCallback !== void 0) {
@@ -184,9 +176,10 @@ class DeviceCommissioner {
184
176
  await activeCommissioningEndCallback();
185
177
  }
186
178
  await this.#context.advertiser.exitCommissioningMode();
187
- logger.info("All commissioning announcements stopped");
179
+ logger.debug("No longer commissioning");
188
180
  }
189
181
  async close() {
182
+ this.#cancelTimeout();
190
183
  this.#observers.close();
191
184
  await this.endCommissioning();
192
185
  if (this.#failsafeContext) {
@@ -194,5 +187,12 @@ class DeviceCommissioner {
194
187
  this.#failsafeContext = void 0;
195
188
  }
196
189
  }
190
+ #cancelTimeout() {
191
+ if (!this.#commissioningTimeout) {
192
+ return;
193
+ }
194
+ this.#commissioningTimeout.stop();
195
+ this.#commissioningTimeout = void 0;
196
+ }
197
197
  }
198
198
  //# sourceMappingURL=DeviceCommissioner.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/protocol/DeviceCommissioner.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -331,7 +331,7 @@ class ExchangeManager {
331
331
  return {
332
332
  channel,
333
333
  localSessionParameters: this.#sessionManager.sessionParameters,
334
- resubmissionStarted: () => this.#sessionManager.resubmissionStarted.emit(channel.session)
334
+ retry: (number) => this.#sessionManager.retry.emit(channel.session, number)
335
335
  };
336
336
  }
337
337
  #addListener(transportInterface) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/protocol/ExchangeManager.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["exchange"]
6
6
  }