@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
@@ -0,0 +1,119 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Diagnostic } from "#general";
7
+ import type { Advertiser } from "./Advertiser.js";
8
+ import { ServiceDescription } from "./ServiceDescription.js";
9
+ /**
10
+ * An advertisement for a discrete service.
11
+ */
12
+ export declare abstract class Advertisement<T extends ServiceDescription = ServiceDescription> {
13
+ #private;
14
+ /**
15
+ * The service advertised.
16
+ *
17
+ * This is a unique ID associated with the advertisement.
18
+ */
19
+ readonly service: string;
20
+ /**
21
+ * The information advertised.
22
+ */
23
+ readonly description: T;
24
+ /**
25
+ * The {@link Advertiser} that owns this advertisement.
26
+ */
27
+ readonly advertiser: Advertiser;
28
+ /**
29
+ * Configuration options.
30
+ */
31
+ readonly options: Advertisement.Options;
32
+ constructor(advertiser: Advertiser, service: string, description: T, options?: Advertisement.Options);
33
+ /**
34
+ * Begin automatic broadcast.
35
+ */
36
+ start(event: Advertiser.BroadcastEvent): void;
37
+ /**
38
+ * End automatic broadcast.
39
+ */
40
+ stop(): void;
41
+ /**
42
+ * Notify the advertiser that a client connection to the advertised service is established.
43
+ */
44
+ serviceConnected(): void;
45
+ /**
46
+ * Notify the advertiser that there is no client connection to the advertised service.
47
+ */
48
+ serviceDisconnected(): void;
49
+ /**
50
+ * Close the advertisement but do not wait for the close to finish.
51
+ *
52
+ * The advertisement is still tracked by the advertiser until closed.
53
+ */
54
+ cancel(): void;
55
+ /**
56
+ * Close the advertisement.
57
+ */
58
+ close(): Promise<void>;
59
+ /**
60
+ * Async setup logic.
61
+ */
62
+ protected onCreate(): Promise<void>;
63
+ /**
64
+ * Async cleanup logic.
65
+ */
66
+ protected onClose(): Promise<void>;
67
+ /**
68
+ * Indicates that broadcasts should omit private details.
69
+ */
70
+ protected get isPrivacyMasked(): boolean;
71
+ /**
72
+ * Implement automatic advertising.
73
+ */
74
+ protected abstract run(context: Advertisement.ActivityContext, event: Advertiser.BroadcastEvent): Promise<void>;
75
+ isCommissioning(): this is Advertisement<ServiceDescription.Commissionable> | Advertisement<ServiceDescription.Commissioner>;
76
+ isOperational(): this is Advertisement<ServiceDescription.Operational>;
77
+ /**
78
+ * Cancel a set of advertisements.
79
+ */
80
+ static cancelAll(ads: Iterable<Advertisement>): void;
81
+ /**
82
+ * Cancel a set of advertisements and wait for them to complete.
83
+ */
84
+ static closeAll(ads: Iterable<Advertisement>): Promise<void>;
85
+ /**
86
+ * Identify other advertisers for the same service. The advertiser will close these automatically.
87
+ */
88
+ abstract isDuplicate(other: Advertisement): boolean;
89
+ /**
90
+ * Total duration so far.
91
+ */
92
+ get duration(): number;
93
+ /**
94
+ * True if the advertisement is actively broadcasting.
95
+ */
96
+ get isBroadcasting(): boolean;
97
+ protected dict(values?: Record<string, unknown>): Record<string, unknown> & Diagnostic;
98
+ }
99
+ export declare namespace Advertisement {
100
+ interface Options {
101
+ /**
102
+ * Set this to omit optional details from broadcasts that may affect privacy.
103
+ *
104
+ * Per core spec 5.4.2.3.1, the device always omits vendor ID, product ID and extended data during extended
105
+ * announcement. Set this value to omit this fields unconditionally.
106
+ */
107
+ omitPrivateDetails?: boolean;
108
+ }
109
+ interface ActivityContext {
110
+ /**
111
+ * Enter cancelable sleep.
112
+ *
113
+ * Throws {@link CanceledError} if interrupted. If thrown from {@link run} this will result in the promise
114
+ * resolving.
115
+ */
116
+ sleep(name: string, intervalMs: number): Promise<void>;
117
+ }
118
+ }
119
+ //# sourceMappingURL=Advertisement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Advertisement.d.ts","sourceRoot":"","sources":["../../../src/advertisement/Advertisement.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAA6C,UAAU,EAAsC,MAAM,UAAU,CAAC;AAErH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAI7D;;GAEG;AACH,8BAAsB,aAAa,CAAC,CAAC,SAAS,kBAAkB,GAAG,kBAAkB;;IACjF;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC;gBAW5B,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,OAAO;IAYpG;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,cAAc;IAetC;;OAEG;IACH,IAAI;IAKJ;;OAEG;IACH,gBAAgB;IAIhB;;OAEG;IACH,mBAAmB;IAInB;;;;OAIG;IACH,MAAM;IAON;;OAEG;IACH,KAAK;IAuBL;;OAEG;cACa,QAAQ;IASxB;;OAEG;cACa,OAAO;IAEvB;;OAEG;IACH,SAAS,KAAK,eAAe,YAY5B;IAED;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,eAAe,EAAE,KAAK,EAAE,UAAU,CAAC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/G,eAAe,IAAI,IAAI,IACjB,aAAa,CAAC,kBAAkB,CAAC,cAAc,CAAC,GAChD,aAAa,CAAC,kBAAkB,CAAC,YAAY,CAAC;IAIpD,aAAa,IAAI,IAAI,IAAI,aAAa,CAAC,kBAAkB,CAAC,WAAW,CAAC;IAItE;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC,aAAa,CAAC;IAM7C;;OAEG;WACU,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,aAAa,CAAC;IAIlD;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAEnD;;OAEG;IACH,IAAI,QAAQ,WAEX;IAED;;OAEG;IACH,IAAI,cAAc,YAEjB;IAED,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAoDlD;AAED,yBAAiB,aAAa,CAAC;IAC3B,UAAiB,OAAO;QACpB;;;;;WAKG;QACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAChC;IAED,UAAiB,eAAe;QAC5B;;;;;WAKG;QACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC1D;CACJ"}
@@ -0,0 +1,247 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { asError, CancelablePromise, CanceledError, Diagnostic, Logger, MatterAggregateError, Time } from "#general";
7
+ import { STANDARD_COMMISSIONING_TIMEOUT_S } from "#types";
8
+ import { ServiceDescription } from "./ServiceDescription.js";
9
+ const logger = Logger.get("Advertisement");
10
+ class Advertisement {
11
+ /**
12
+ * The service advertised.
13
+ *
14
+ * This is a unique ID associated with the advertisement.
15
+ */
16
+ service;
17
+ /**
18
+ * The information advertised.
19
+ */
20
+ description;
21
+ /**
22
+ * The {@link Advertiser} that owns this advertisement.
23
+ */
24
+ advertiser;
25
+ /**
26
+ * Configuration options.
27
+ */
28
+ options;
29
+ #isBroadcasting = false;
30
+ #closed;
31
+ #startedAt = Time.nowMs();
32
+ /**
33
+ * Current activity. This is a promise with helpers for base implementations.
34
+ */
35
+ #activity;
36
+ constructor(advertiser, service, description, options) {
37
+ this.options = options ?? {};
38
+ this.service = service;
39
+ this.advertiser = advertiser;
40
+ this.description = description;
41
+ advertiser.advertisements.add(this);
42
+ this.#start(this.onCreate.bind(this));
43
+ }
44
+ /**
45
+ * Begin automatic broadcast.
46
+ */
47
+ start(event) {
48
+ if (this.#closed) {
49
+ return;
50
+ }
51
+ if (this.isBroadcasting) {
52
+ return;
53
+ }
54
+ this.#start((context) => this.#run(context, event));
55
+ }
56
+ /**
57
+ * End automatic broadcast.
58
+ */
59
+ stop() {
60
+ this.#activity?.cancel();
61
+ this.#isBroadcasting = false;
62
+ }
63
+ /**
64
+ * Notify the advertiser that a client connection to the advertised service is established.
65
+ */
66
+ serviceConnected() {
67
+ }
68
+ /**
69
+ * Notify the advertiser that there is no client connection to the advertised service.
70
+ */
71
+ serviceDisconnected() {
72
+ }
73
+ /**
74
+ * Close the advertisement but do not wait for the close to finish.
75
+ *
76
+ * The advertisement is still tracked by the advertiser until closed.
77
+ */
78
+ cancel() {
79
+ this.close().catch((e) => {
80
+ logger.error("Unhandled error closing advertisement for", Diagnostic.strong(this.service), e);
81
+ });
82
+ }
83
+ /**
84
+ * Close the advertisement.
85
+ */
86
+ close() {
87
+ if (this.#closed) {
88
+ return this.#closed;
89
+ }
90
+ return this.#closed = this.#close();
91
+ }
92
+ async #close() {
93
+ try {
94
+ this.#activity?.cancel();
95
+ await this.#activity;
96
+ try {
97
+ await this.onClose();
98
+ } catch (e) {
99
+ logger.error("Unhandled error closing advertisement for", Diagnostic.strong(this.service), e);
100
+ }
101
+ } finally {
102
+ this.advertiser.advertisements.delete(this);
103
+ }
104
+ }
105
+ /**
106
+ * Async setup logic.
107
+ */
108
+ async onCreate() {
109
+ const duplicates = [...this.advertiser.advertisements].filter(this.isDuplicate.bind(this));
110
+ if (duplicates.length) {
111
+ await Advertisement.closeAll(duplicates);
112
+ }
113
+ }
114
+ /**
115
+ * Async cleanup logic.
116
+ */
117
+ async onClose() {
118
+ }
119
+ /**
120
+ * Indicates that broadcasts should omit private details.
121
+ */
122
+ get isPrivacyMasked() {
123
+ if (this.options.omitPrivateDetails) {
124
+ return true;
125
+ }
126
+ if (Time.nowMs() - this.#startedAt >= STANDARD_COMMISSIONING_TIMEOUT_S * 1e3) {
127
+ return true;
128
+ }
129
+ return false;
130
+ }
131
+ isCommissioning() {
132
+ return ServiceDescription.isCommissioning(this.description);
133
+ }
134
+ isOperational() {
135
+ return ServiceDescription.isOperational(this.description);
136
+ }
137
+ /**
138
+ * Cancel a set of advertisements.
139
+ */
140
+ static cancelAll(ads) {
141
+ for (const ad of ads) {
142
+ ad.cancel();
143
+ }
144
+ }
145
+ /**
146
+ * Cancel a set of advertisements and wait for them to complete.
147
+ */
148
+ static async closeAll(ads) {
149
+ await MatterAggregateError.allSettled([...ads].map((ad) => ad.close()));
150
+ }
151
+ /**
152
+ * Total duration so far.
153
+ */
154
+ get duration() {
155
+ return Time.nowMs() - this.#startedAt;
156
+ }
157
+ /**
158
+ * True if the advertisement is actively broadcasting.
159
+ */
160
+ get isBroadcasting() {
161
+ return this.#isBroadcasting;
162
+ }
163
+ dict(values) {
164
+ return Diagnostic.dict({ kind: this.description.kind, service: this.service, ...values });
165
+ }
166
+ #start(executor) {
167
+ const previous = this.#activity;
168
+ previous?.cancel();
169
+ this.#activity = new ActivityContext(async (context) => {
170
+ if (previous) {
171
+ await previous;
172
+ }
173
+ try {
174
+ await executor(context);
175
+ } finally {
176
+ if (this.#activity === context) {
177
+ this.#activity = void 0;
178
+ }
179
+ }
180
+ });
181
+ }
182
+ async #run(context, event, previous) {
183
+ if (previous) {
184
+ await previous;
185
+ }
186
+ logger.debug("Begin auto broadcast", this.dict());
187
+ try {
188
+ this.#isBroadcasting = true;
189
+ await this.run(context, event);
190
+ } catch (e) {
191
+ if (!(e instanceof CanceledError)) {
192
+ logger.error("Unhandled error during automatic advertisement for", Diagnostic.strong(this.service), e);
193
+ }
194
+ } finally {
195
+ if (this.#activity === context) {
196
+ this.#isBroadcasting = false;
197
+ }
198
+ }
199
+ logger.debug("End auto broadcast", this.dict());
200
+ }
201
+ }
202
+ class ActivityContext extends CancelablePromise {
203
+ #sleep;
204
+ #cancelReason;
205
+ constructor(executor) {
206
+ let resolve, reject;
207
+ super((res, rej) => {
208
+ resolve = res;
209
+ reject = rej;
210
+ });
211
+ executor(this).then(resolve, (cause) => {
212
+ if (cause instanceof CanceledError) {
213
+ resolve();
214
+ } else {
215
+ reject(cause);
216
+ }
217
+ });
218
+ }
219
+ sleep(name, intervalMs) {
220
+ this.abortIfCanceled();
221
+ const sleep = Time.sleep(name, intervalMs).finally(() => {
222
+ if (this.#sleep === sleep) {
223
+ this.#sleep = void 0;
224
+ }
225
+ });
226
+ this.#sleep = sleep;
227
+ return sleep;
228
+ }
229
+ abortIfCanceled() {
230
+ if (this.#cancelReason) {
231
+ throw this.#cancelReason;
232
+ }
233
+ }
234
+ onCancel(reason) {
235
+ if (this.#cancelReason) {
236
+ return;
237
+ }
238
+ this.#cancelReason = asError(reason);
239
+ if (this.#sleep) {
240
+ this.#sleep.cancel(reason);
241
+ }
242
+ }
243
+ }
244
+ export {
245
+ Advertisement
246
+ };
247
+ //# sourceMappingURL=Advertisement.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/advertisement/Advertisement.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -0,0 +1,50 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { Fabric } from "#fabric/Fabric.js";
7
+ import { Advertisement } from "./Advertisement.js";
8
+ import type { ServiceDescription } from "./ServiceDescription.js";
9
+ /**
10
+ * A component that advertises a Matter service.
11
+ */
12
+ export declare abstract class Advertiser {
13
+ #private;
14
+ /**
15
+ * Begin advertising on configured schedule.
16
+ *
17
+ * Note that so long as the advertisement is installed the device will continue to respond to MDNS queries even if
18
+ * the advertisement schedule is elapsed.
19
+ *
20
+ * Returns undefined if the advertiser does not support this type of advertisement.
21
+ */
22
+ advertise(description: ServiceDescription, event: Advertiser.BroadcastEvent): Advertisement | undefined;
23
+ /**
24
+ * Create a new advertiser or retrieve existing advertiser.
25
+ */
26
+ protected abstract getAdvertisement(description: ServiceDescription): Advertisement | undefined;
27
+ /**
28
+ * Destroy the instance.
29
+ */
30
+ close(): Promise<void>;
31
+ /**
32
+ * The set of advertisements active for this advertiser.
33
+ */
34
+ get advertisements(): Set<Advertisement<ServiceDescription>>;
35
+ /**
36
+ * Obtain the active advertisement for {@link fabric}, if any.
37
+ */
38
+ advertisementForFabric(fabric: Fabric): Advertisement<ServiceDescription.Operational> | undefined;
39
+ /**
40
+ * Select advertisements using a predicate.
41
+ */
42
+ filter(predicate: (ad: Advertisement) => boolean): Advertisement<ServiceDescription>[];
43
+ }
44
+ export declare namespace Advertiser {
45
+ /**
46
+ * A hint for scheduling regarding why broadcast is initiated.
47
+ */
48
+ type BroadcastEvent = "startup" | "reconnect" | "retransmit";
49
+ }
50
+ //# sourceMappingURL=Advertiser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Advertiser.d.ts","sourceRoot":"","sources":["../../../src/advertisement/Advertiser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE;;GAEG;AACH,8BAAsB,UAAU;;IAI5B;;;;;;;OAOG;IACH,SAAS,CAAC,WAAW,EAAE,kBAAkB,EAAE,KAAK,EAAE,UAAU,CAAC,cAAc,GAAG,aAAa,GAAG,SAAS;IAavG;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,GAAG,aAAa,GAAG,SAAS;IAE/F;;OAEG;IACG,KAAK;IAKX;;OAEG;IACH,IAAI,cAAc,2CAEjB;IAED;;OAEG;IACH,sBAAsB,CAAC,MAAM,EAAE,MAAM;IAQrC;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,aAAa,KAAK,OAAO;CAGnD;AAED,yBAAiB,UAAU,CAAC;IACxB;;OAEG;IACH,KAAY,cAAc,GAAG,SAAS,GAAG,WAAW,GAAG,YAAY,CAAC;CACvE"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Advertisement } from "./Advertisement.js";
7
+ class Advertiser {
8
+ #advertisements = /* @__PURE__ */ new Set();
9
+ #isClosed = false;
10
+ /**
11
+ * Begin advertising on configured schedule.
12
+ *
13
+ * Note that so long as the advertisement is installed the device will continue to respond to MDNS queries even if
14
+ * the advertisement schedule is elapsed.
15
+ *
16
+ * Returns undefined if the advertiser does not support this type of advertisement.
17
+ */
18
+ advertise(description, event) {
19
+ if (this.#isClosed) {
20
+ return;
21
+ }
22
+ const ad = this.getAdvertisement(description);
23
+ if (ad) {
24
+ ad.start(event);
25
+ }
26
+ return ad;
27
+ }
28
+ /**
29
+ * Destroy the instance.
30
+ */
31
+ async close() {
32
+ this.#isClosed = true;
33
+ await Advertisement.closeAll(this.#advertisements);
34
+ }
35
+ /**
36
+ * The set of advertisements active for this advertiser.
37
+ */
38
+ get advertisements() {
39
+ return this.#advertisements;
40
+ }
41
+ /**
42
+ * Obtain the active advertisement for {@link fabric}, if any.
43
+ */
44
+ advertisementForFabric(fabric) {
45
+ for (const ad of this.#advertisements) {
46
+ if (ad.isOperational() && ad.description.fabric === fabric) {
47
+ return ad;
48
+ }
49
+ }
50
+ }
51
+ /**
52
+ * Select advertisements using a predicate.
53
+ */
54
+ filter(predicate) {
55
+ return [...this.#advertisements].filter(predicate);
56
+ }
57
+ }
58
+ export {
59
+ Advertiser
60
+ };
61
+ //# sourceMappingURL=Advertiser.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/advertisement/Advertiser.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,qBAAqB;AAMvB,MAAe,WAAW;AAAA,EAC7B,kBAAkB,oBAAI,IAAmB;AAAA,EACzC,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUZ,UAAU,aAAiC,OAA6D;AACpG,QAAI,KAAK,WAAW;AAChB;AAAA,IACJ;AAEA,UAAM,KAAK,KAAK,iBAAiB,WAAW;AAC5C,QAAI,IAAI;AACJ,SAAG,MAAM,KAAK;AAAA,IAClB;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,QAAQ;AACV,SAAK,YAAY;AACjB,UAAM,cAAc,SAAS,KAAK,eAAe;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,iBAAiB;AACjB,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,uBAAuB,QAAgB;AACnC,eAAW,MAAM,KAAK,iBAAiB;AACnC,UAAI,GAAG,cAAc,KAAK,GAAG,YAAY,WAAW,QAAQ;AACxD,eAAO;AAAA,MACX;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,WAA2C;AAC9C,WAAO,CAAC,GAAG,KAAK,eAAe,EAAE,OAAO,SAAS;AAAA,EACrD;AACJ;",
5
+ "names": []
6
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export declare enum CommissioningMode {
7
+ NotCommissioning = 0,
8
+ Basic = 1,
9
+ Enhanced = 2
10
+ }
11
+ //# sourceMappingURL=CommissioningMode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommissioningMode.d.ts","sourceRoot":"","sources":["../../../src/advertisement/CommissioningMode.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,oBAAY,iBAAiB;IACzB,gBAAgB,IAAI;IACpB,KAAK,IAAI;IACT,QAAQ,IAAI;CACf"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ var CommissioningMode = /* @__PURE__ */ ((CommissioningMode2) => {
7
+ CommissioningMode2[CommissioningMode2["NotCommissioning"] = 0] = "NotCommissioning";
8
+ CommissioningMode2[CommissioningMode2["Basic"] = 1] = "Basic";
9
+ CommissioningMode2[CommissioningMode2["Enhanced"] = 2] = "Enhanced";
10
+ return CommissioningMode2;
11
+ })(CommissioningMode || {});
12
+ export {
13
+ CommissioningMode
14
+ };
15
+ //# sourceMappingURL=CommissioningMode.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/advertisement/CommissioningMode.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMO,IAAK,oBAAL,kBAAKA,uBAAL;AACH,EAAAA,sCAAA,sBAAmB,KAAnB;AACA,EAAAA,sCAAA,WAAQ,KAAR;AACA,EAAAA,sCAAA,cAAW,KAAX;AAHQ,SAAAA;AAAA,GAAA;",
5
+ "names": ["CommissioningMode"]
6
+ }
@@ -3,8 +3,7 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { BitFlag, ProductDescription, TypeFromPartialBitSchema, VendorId } from "#types";
7
- import { Fabric } from "../fabric/Fabric.js";
6
+ import { BitFlag } from "@matter/types";
8
7
  export declare const PairingHintBitmap: {
9
8
  /**
10
9
  * The Device will automatically enter Commissioning Mode upon power cycle (unplug/re- plug, remove/re-insert
@@ -105,7 +104,7 @@ export declare const PairingHintBitmap: {
105
104
  */
106
105
  pressSetupButtonNumberOfTimes: BitFlag;
107
106
  };
108
- export declare const PairingHintBitmapSchema: import("#types").BitmapSchemaInternal<{
107
+ export declare const PairingHintBitmapSchema: import("@matter/types").BitmapSchemaInternal<{
109
108
  /**
110
109
  * The Device will automatically enter Commissioning Mode upon power cycle (unplug/re- plug, remove/re-insert
111
110
  * batteries). This bit SHALL be set to 1 for devices using Standard Commissioning Flow, and set to 0 otherwise.
@@ -205,69 +204,4 @@ export declare const PairingHintBitmapSchema: import("#types").BitmapSchemaInter
205
204
  */
206
205
  pressSetupButtonNumberOfTimes: BitFlag;
207
206
  }>;
208
- export interface CommissioningModeInstanceData extends ProductDescription {
209
- /** Device discriminator for commissionable announcements. */
210
- discriminator: number;
211
- /** Session Idle Interval of the device for commissionable announcements. */
212
- sessionIdleInterval?: number;
213
- /** Session Active Interval of the device for commissionable announcements. */
214
- sessionActiveInterval?: number;
215
- /** Duration of time the node should stay active after the last network activity. **/
216
- sessionActiveThreshold?: number;
217
- /** Pairing hint of the device for commissionable announcements. */
218
- pairingHint?: TypeFromPartialBitSchema<typeof PairingHintBitmap>;
219
- /** Pairing instruction of the device for commissionable announcements. */
220
- pairingInstructions?: string;
221
- }
222
- export type CommissionerInstanceData = {
223
- /** Device name for commissionable announcements. */
224
- deviceName: string;
225
- /** Device type for commissionable announcements. */
226
- vendorId: VendorId;
227
- /** Vendor ID for commissionable announcements. */
228
- productId: number;
229
- /** Device type for commissionable announcements. */
230
- deviceType?: number;
231
- /** Session Idle Interval of the device for commissionable announcements. */
232
- sessionIdleInterval?: number;
233
- /** Session Active Interval of the device for commissionable announcements. */
234
- sessionActiveInterval?: number;
235
- /** This key defines the duration of time the node stays Active after the last network activity. **/
236
- sessionActiveThreshold?: number;
237
- };
238
- export type OperationalInstanceData = {
239
- /** Session Idle Interval of the device for operational announcements. */
240
- sessionIdleInterval?: number;
241
- /** Session Active Interval of the device for operational announcements. */
242
- sessionActiveInterval?: number;
243
- /** This key defines the duration of time the node stays Active after the last network activity. **/
244
- sessionActiveThreshold?: number;
245
- };
246
- export declare enum CommissioningMode {
247
- NotCommissioning = 0,
248
- Basic = 1,
249
- Enhanced = 2
250
- }
251
- /** Interface for classes that allow to announce one Matter instance. */
252
- export interface InstanceBroadcaster {
253
- /** Set a commissionable mode and details to announce a commissionable device. */
254
- setCommissionMode(mode: CommissioningMode, deviceData: CommissioningModeInstanceData): Promise<void>;
255
- /**
256
- * Set operational details to Announce an operational device which is already commissioned.
257
- * Use expireCommissioningAnnouncements = true when Fabrics are changed after a n commissioning process.
258
- */
259
- setFabrics(fabrics: Fabric[], expireCommissioningAnnouncements?: boolean): Promise<void>;
260
- /** Set commissioner details to announce a commissioner service for User directed commissioning (UDC). */
261
- setCommissionerInfo(commissionerData: CommissionerInstanceData): Promise<void>;
262
- /** Send out announcements for this instance. */
263
- announce(): Promise<void>;
264
- /** Expire the announcement for this operative instance. */
265
- expireFabricAnnouncement(): Promise<void>;
266
- /** Expire the announcement for this commissioning instance. */
267
- expireCommissioningAnnouncement(): Promise<void>;
268
- /** Expire all announcements. */
269
- expireAllAnnouncements(): Promise<void>;
270
- /** Destroy the instance */
271
- close(): Promise<void>;
272
- }
273
- //# sourceMappingURL=InstanceBroadcaster.d.ts.map
207
+ //# sourceMappingURL=PairingHintBitmap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PairingHintBitmap.d.ts","sourceRoot":"","sources":["../../../src/advertisement/PairingHintBitmap.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,eAAe,CAAC;AAEtD,eAAO,MAAM,iBAAiB;IAC1B;;;OAGG;;IAGH;;;;;OAKG;;IAGH;;;OAGG;;IAGH;;OAEG;;IAGH;;;OAGG;;IAGH;;;;OAIG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;CAEN,CAAC;AAEF,eAAO,MAAM,uBAAuB;IAvHhC;;;OAGG;;IAGH;;;;;OAKG;;IAGH;;;OAGG;;IAGH;;OAEG;;IAGH;;;OAGG;;IAGH;;;;OAIG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;IAGH;;;OAGG;;EAI+D,CAAC"}
@@ -3,7 +3,7 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { BitFlag, BitmapSchema } from "#types";
6
+ import { BitFlag, BitmapSchema } from "@matter/types";
7
7
  const PairingHintBitmap = {
8
8
  /**
9
9
  * The Device will automatically enter Commissioning Mode upon power cycle (unplug/re- plug, remove/re-insert
@@ -105,15 +105,8 @@ const PairingHintBitmap = {
105
105
  pressSetupButtonNumberOfTimes: BitFlag(19)
106
106
  };
107
107
  const PairingHintBitmapSchema = BitmapSchema(PairingHintBitmap);
108
- var CommissioningMode = /* @__PURE__ */ ((CommissioningMode2) => {
109
- CommissioningMode2[CommissioningMode2["NotCommissioning"] = 0] = "NotCommissioning";
110
- CommissioningMode2[CommissioningMode2["Basic"] = 1] = "Basic";
111
- CommissioningMode2[CommissioningMode2["Enhanced"] = 2] = "Enhanced";
112
- return CommissioningMode2;
113
- })(CommissioningMode || {});
114
108
  export {
115
- CommissioningMode,
116
109
  PairingHintBitmap,
117
110
  PairingHintBitmapSchema
118
111
  };
119
- //# sourceMappingURL=InstanceBroadcaster.js.map
112
+ //# sourceMappingURL=PairingHintBitmap.js.map