@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,54 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { PtrRecord } from "#general";
7
+ import {
8
+ getCommissionerDeviceQname,
9
+ MATTER_COMMISSIONER_SERVICE_QNAME,
10
+ SERVICE_DISCOVERY_QNAME
11
+ } from "#mdns/MdnsConsts.js";
12
+ import { MdnsAdvertisement } from "./MdnsAdvertisement.js";
13
+ class CommissionerMdnsAdvertisement extends MdnsAdvertisement {
14
+ instanceId;
15
+ constructor(advertiser, description) {
16
+ const instanceId = advertiser.createInstanceId();
17
+ const qname = getCommissionerDeviceQname(instanceId);
18
+ super(advertiser, qname, description);
19
+ this.instanceId = instanceId;
20
+ }
21
+ get ptrRecords() {
22
+ const { deviceType, vendorId } = this.description;
23
+ const vendorQname = `_V${vendorId}._sub.${MATTER_COMMISSIONER_SERVICE_QNAME}`;
24
+ const records = [
25
+ PtrRecord(SERVICE_DISCOVERY_QNAME, MATTER_COMMISSIONER_SERVICE_QNAME),
26
+ PtrRecord(MATTER_COMMISSIONER_SERVICE_QNAME, vendorQname),
27
+ PtrRecord(vendorQname, this.qname)
28
+ ];
29
+ if (deviceType !== void 0) {
30
+ const deviceTypeQname = `_T${deviceType}._sub.${MATTER_COMMISSIONER_SERVICE_QNAME}`;
31
+ records.push(PtrRecord(SERVICE_DISCOVERY_QNAME, deviceTypeQname));
32
+ records.push(PtrRecord(deviceTypeQname, this.qname));
33
+ }
34
+ return records;
35
+ }
36
+ get txtValues() {
37
+ const { vendorId, productId, deviceType, name: deviceName } = this.description;
38
+ const values = {
39
+ DN: deviceName,
40
+ DT: deviceType
41
+ };
42
+ if (!this.isPrivacyMasked) {
43
+ values.VP = `${vendorId}+${productId}`;
44
+ }
45
+ return values;
46
+ }
47
+ isDuplicate(other) {
48
+ return other.isCommissioning();
49
+ }
50
+ }
51
+ export {
52
+ CommissionerMdnsAdvertisement
53
+ };
54
+ //# sourceMappingURL=CommissionerMdnsAdvertisement.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/advertisement/mdns/CommissionerMdnsAdvertisement.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,iBAAiB;AAC1B;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,yBAAyB;AAM3B,MAAM,sCAAsC,kBAAmD;AAAA,EAClG;AAAA,EAEA,YAAY,YAA4B,aAA8C;AAClF,UAAM,aAAa,WAAW,iBAAiB;AAC/C,UAAM,QAAQ,2BAA2B,UAAU;AAEnD,UAAM,YAAY,OAAO,WAAW;AAEpC,SAAK,aAAa;AAAA,EACtB;AAAA,EAEA,IAAa,aAAa;AACtB,UAAM,EAAE,YAAY,SAAS,IAAI,KAAK;AAEtC,UAAM,cAAc,KAAK,QAAQ,SAAS,iCAAiC;AAE3E,UAAM,UAAU;AAAA,MACZ,UAAU,yBAAyB,iCAAiC;AAAA,MACpE,UAAU,mCAAmC,WAAW;AAAA,MACxD,UAAU,aAAa,KAAK,KAAK;AAAA,IACrC;AAEA,QAAI,eAAe,QAAW;AAC1B,YAAM,kBAAkB,KAAK,UAAU,SAAS,iCAAiC;AAEjF,cAAQ,KAAK,UAAU,yBAAyB,eAAe,CAAC;AAChE,cAAQ,KAAK,UAAU,iBAAiB,KAAK,KAAK,CAAC;AAAA,IACvD;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,IAAa,YAAY;AACrB,UAAM,EAAE,UAAU,WAAW,YAAY,MAAM,WAAW,IAAI,KAAK;AAEnE,UAAM,SAAkC;AAAA,MACpC,IAAI;AAAA,MACJ,IAAI;AAAA,IACR;AAEA,QAAI,CAAC,KAAK,iBAAiB;AACvB,aAAO,KAAK,GAAG,QAAQ,IAAI,SAAS;AAAA,IACxC;AAEA,WAAO;AAAA,EACX;AAAA,EAES,YAAY,OAAsB;AAEvC,WAAO,MAAM,gBAAgB;AAAA,EACjC;AACJ;",
5
+ "names": []
6
+ }
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Advertisement } from "#advertisement/Advertisement.js";
7
+ import type { Advertiser } from "#advertisement/Advertiser.js";
8
+ import type { ServiceDescription } from "#advertisement/ServiceDescription.js";
9
+ import { DnsRecord } from "#general";
10
+ import type { MdnsAdvertiser } from "./MdnsAdvertiser.js";
11
+ /**
12
+ * Base class for MDNS advertisements.
13
+ *
14
+ * Individual classes specialize for each type of service.
15
+ */
16
+ export declare abstract class MdnsAdvertisement<T extends ServiceDescription = ServiceDescription> extends Advertisement<T> {
17
+ #private;
18
+ advertiser: MdnsAdvertiser;
19
+ /**
20
+ * The device qname.
21
+ */
22
+ qname: string;
23
+ constructor(advertiser: MdnsAdvertiser, qname: string, description: T);
24
+ protected abstract ptrRecords: DnsRecord[];
25
+ protected get txtValues(): Record<string, unknown>;
26
+ run(context: Advertisement.ActivityContext, event?: Advertiser.BroadcastEvent): Promise<void>;
27
+ /**
28
+ * Broadcast a single announcement immediately.
29
+ */
30
+ broadcast(): Promise<void>;
31
+ /**
32
+ * Broadcast expiration announcement immediately.
33
+ */
34
+ expire(): Promise<void>;
35
+ serviceConnected(): void;
36
+ serviceDisconnected(): void;
37
+ protected onCreate(): Promise<void>;
38
+ protected onClose(): Promise<void>;
39
+ }
40
+ //# sourceMappingURL=MdnsAdvertisement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MdnsAdvertisement.d.ts","sourceRoot":"","sources":["../../../../src/advertisement/mdns/MdnsAdvertisement.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE/E,OAAO,EAAuB,SAAS,EAA+D,MAAM,UAAU,CAAC;AAGvH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI1D;;;;GAIG;AACH,8BAAsB,iBAAiB,CAAC,CAAC,SAAS,kBAAkB,GAAG,kBAAkB,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;;IACvG,UAAU,EAAE,cAAc,CAAC;IAEnC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;gBAKF,UAAU,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAUrE,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC;IAE3C,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEjD;IAEc,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,eAAe,EAAE,KAAK,GAAE,UAAU,CAAC,cAA0B;IAevG;;OAEG;IACG,SAAS;IASf;;OAEG;IACG,MAAM;IAKH,gBAAgB;IAehB,mBAAmB;cAIH,QAAQ;cASR,OAAO;CAsDnC"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Advertisement } from "#advertisement/Advertisement.js";
7
+ import { SupportedTransportsSchema } from "#common/SupportedTransportsBitmap.js";
8
+ import { AAAARecord, ARecord, Logger, SrvRecord, Time, TxtRecord } from "#general";
9
+ import { SessionIntervals } from "#session/SessionIntervals.js";
10
+ const logger = Logger.get("MdnsAdvertisement");
11
+ class MdnsAdvertisement extends Advertisement {
12
+ /**
13
+ * The device qname.
14
+ */
15
+ qname;
16
+ #isPrivacyMasked;
17
+ #stopAt;
18
+ constructor(advertiser, qname, description) {
19
+ description = {
20
+ ...description,
21
+ ...SessionIntervals(description)
22
+ };
23
+ super(advertiser, `mdns:${qname}`, description, { omitPrivateDetails: advertiser.omitPrivateDetails });
24
+ this.qname = qname;
25
+ this.#isPrivacyMasked = this.isPrivacyMasked;
26
+ }
27
+ get txtValues() {
28
+ return {};
29
+ }
30
+ async run(context, event = "startup") {
31
+ this.#stopAt = void 0;
32
+ let number = 0;
33
+ for (const retryInterval of this.advertiser.broadcastScheduleFor(this, event)) {
34
+ if (this.#stopAt !== void 0 && this.#stopAt <= Time.nowMs()) {
35
+ break;
36
+ }
37
+ number++;
38
+ logger.debug("Broadcast", this.dict({ number, next: retryInterval }));
39
+ await this.broadcast();
40
+ await context.sleep("MDNS repeat", retryInterval);
41
+ }
42
+ }
43
+ /**
44
+ * Broadcast a single announcement immediately.
45
+ */
46
+ async broadcast() {
47
+ if (!this.#isPrivacyMasked && this.isPrivacyMasked) {
48
+ this.#isPrivacyMasked = true;
49
+ await this.advertiser.server.setRecordsGenerator(this.service, this.#recordsGenerator);
50
+ }
51
+ await this.advertiser.server.broadcast(this.service);
52
+ }
53
+ /**
54
+ * Broadcast expiration announcement immediately.
55
+ */
56
+ async expire() {
57
+ logger.info("Unpublishing", this.dict({ time: this.duration }));
58
+ await this.advertiser.server.expireAnnouncements(this.service);
59
+ }
60
+ serviceConnected() {
61
+ const { broadcastAfterConnection } = this.advertiser.broadcastConfigFor(this);
62
+ if (broadcastAfterConnection === void 0) {
63
+ return;
64
+ }
65
+ if (broadcastAfterConnection <= 0) {
66
+ this.stop();
67
+ return;
68
+ }
69
+ this.#stopAt = Time.nowMs() + broadcastAfterConnection;
70
+ }
71
+ serviceDisconnected() {
72
+ this.start("reconnect");
73
+ }
74
+ async onCreate() {
75
+ await Promise.resolve().then(() => {
76
+ logger.info("Publishing", this.dict());
77
+ return this.advertiser.server.setRecordsGenerator(this.service, this.#recordsGenerator);
78
+ });
79
+ }
80
+ async onClose() {
81
+ await this.expire();
82
+ }
83
+ get #recordsGenerator() {
84
+ return (_intf, addrs) => this.#recordsFor(addrs);
85
+ }
86
+ #recordsFor(addrs) {
87
+ const hostname = addrs.mac.replace(/:/g, "").toUpperCase() + "0000.local";
88
+ const records = [
89
+ ...this.ptrRecords,
90
+ SrvRecord(this.qname, { priority: 0, weight: 0, port: this.advertiser.port, target: hostname }),
91
+ TxtRecord(
92
+ this.qname,
93
+ Object.entries(this.#txtValues).filter(([, v]) => v !== void 0).map(([k, v]) => `${k}=${v}`)
94
+ )
95
+ ];
96
+ for (const addr of addrs.ipV6) {
97
+ records.push(AAAARecord(hostname, addr));
98
+ }
99
+ if (this.advertiser.server.supportsIpv4) {
100
+ for (const addr of addrs.ipV4) {
101
+ records.push(ARecord(hostname, addr));
102
+ }
103
+ }
104
+ return records;
105
+ }
106
+ get #txtValues() {
107
+ const values = {
108
+ SII: this.description.idleIntervalMs,
109
+ SAI: this.description.activeIntervalMs,
110
+ SAT: this.description.activeThresholdMs,
111
+ ...this.txtValues
112
+ };
113
+ if (this.description.tcp !== void 0) {
114
+ values.T = SupportedTransportsSchema.encode(this.description.tcp);
115
+ }
116
+ if (this.description.icd !== void 0) {
117
+ values.ICD = this.description.icd;
118
+ }
119
+ return values;
120
+ }
121
+ }
122
+ export {
123
+ MdnsAdvertisement
124
+ };
125
+ //# sourceMappingURL=MdnsAdvertisement.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/advertisement/mdns/MdnsAdvertisement.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -0,0 +1,99 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Advertiser } from "#advertisement/Advertiser.js";
7
+ import { ServiceDescription } from "#advertisement/ServiceDescription.js";
8
+ import { Crypto, RetrySchedule } from "#general";
9
+ import type { MdnsServer } from "#mdns/MdnsServer.js";
10
+ import { DatatypeModel } from "#model";
11
+ import type { MdnsAdvertisement } from "./MdnsAdvertisement.js";
12
+ /**
13
+ * An {@link Advertiser} that advertises using an in-process MDNS implementation.
14
+ */
15
+ export declare class MdnsAdvertiser extends Advertiser {
16
+ #private;
17
+ readonly crypto: Crypto;
18
+ readonly server: MdnsServer;
19
+ readonly port: number;
20
+ readonly omitPrivateDetails: boolean;
21
+ constructor(crypto: Crypto, server: MdnsServer, options?: MdnsAdvertiser.Options);
22
+ /**
23
+ * Create an advertisement for the specific service.
24
+ */
25
+ getAdvertisement(description: ServiceDescription): MdnsAdvertisement | undefined;
26
+ /**
27
+ * Generate a random 8-byte Matter instance identifier.
28
+ */
29
+ createInstanceId(): string;
30
+ /**
31
+ * Retrieve the broadcast schedule for a specific advertisement.
32
+ */
33
+ broadcastScheduleFor(advertisement: MdnsAdvertisement, event?: Advertiser.BroadcastEvent): RetrySchedule;
34
+ /**
35
+ * Retrieve broadcast configuration for a specific advertisement.
36
+ */
37
+ broadcastConfigFor(advertisement: MdnsAdvertisement, event?: Advertiser.BroadcastEvent): MdnsAdvertiser.BroadcastSchedule;
38
+ }
39
+ export declare namespace MdnsAdvertiser {
40
+ /**
41
+ * MDNS advertisement configuration options.
42
+ */
43
+ interface Options {
44
+ /**
45
+ * The port of the Matter service to advertise.
46
+ *
47
+ * Defaults to 5540.
48
+ */
49
+ readonly port?: number;
50
+ /**
51
+ * Omit the vendor and product ID from announcements for privacy reasons.
52
+ */
53
+ readonly omitPrivateDetails?: boolean;
54
+ /**
55
+ * Broadcast schedule.
56
+ *
57
+ * These control the intervals at which the server broadcasts the advertisement. Note that order is important;
58
+ * more specific schedules should appear first.
59
+ *
60
+ * By default all broadcasts are configured using {@link DefaultBroadcastSchedule}.
61
+ */
62
+ readonly schedules?: readonly BroadcastSchedule[];
63
+ }
64
+ /**
65
+ * Schedule for automatic broadcasts.
66
+ *
67
+ * Schedules apply conditionally with {@link DefaultBroadcastSchedule} as the fallback.
68
+ */
69
+ interface BroadcastSchedule extends RetrySchedule.Configuration {
70
+ /**
71
+ * Limit this schedule to a particular service kind.
72
+ */
73
+ readonly serviceKind?: ServiceDescription["kind"];
74
+ /**
75
+ * Limit this schedule to initial broadcast or broadcast when reconnecting.
76
+ */
77
+ readonly event?: Advertiser.BroadcastEvent;
78
+ /**
79
+ * Extra time to broadcast after establishing an operational connection.
80
+ *
81
+ * Set to zero to terminate broadcast immediately after connection. If undefined broadcasts will continue until
82
+ * terminated by {@link timeout} or {@link maximumCount}.
83
+ */
84
+ readonly broadcastAfterConnection?: number;
85
+ }
86
+ /**
87
+ * Default schedule for automatic broadcast.
88
+ */
89
+ const DefaultBroadcastSchedule: BroadcastSchedule;
90
+ /**
91
+ * Default schedule for retransmission broadcast.
92
+ */
93
+ const RetransmissionBroadcastSchedule: BroadcastSchedule;
94
+ /**
95
+ * Data model for MDNS advertiser configuration.
96
+ */
97
+ const OptionsSchema: DatatypeModel;
98
+ }
99
+ //# sourceMappingURL=MdnsAdvertiser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MdnsAdvertiser.d.ts","sourceRoot":"","sources":["../../../../src/advertisement/mdns/MdnsAdvertiser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAS,MAAM,EAAsC,aAAa,EAAwB,MAAM,UAAU,CAAC;AAClH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAgB,MAAM,QAAQ,CAAC;AAIrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAGhE;;GAEG;AACH,qBAAa,cAAe,SAAQ,UAAU;;IAOtC,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,MAAM,EAAE,UAAU;IAP/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;gBAKxB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,EAC3B,OAAO,CAAC,EAAE,cAAc,CAAC,OAAO;IAkCpC;;OAEG;IACM,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,GAAG,iBAAiB,GAAG,SAAS;IAqBzF;;OAEG;IACH,gBAAgB;IAIhB;;OAEG;IACH,oBAAoB,CAAC,aAAa,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,UAAU,CAAC,cAAc;IAaxF;;OAEG;IACH,kBAAkB,CAAC,aAAa,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,UAAU,CAAC,cAAc;CAyBzF;AAED,yBAAiB,cAAc,CAAC;IAC5B;;OAEG;IACH,UAAiB,OAAO;QACpB;;;;WAIG;QACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAEvB;;WAEG;QACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAEtC;;;;;;;WAOG;QACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;KACrD;IAED;;;;OAIG;IACH,UAAiB,iBAAkB,SAAQ,aAAa,CAAC,aAAa;QAClE;;WAEG;QACH,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAElD;;WAEG;QACH,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC;QAE3C;;;;;WAKG;QACH,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;KAC9C;IAED;;OAEG;IACI,MAAM,wBAAwB,EAAE,iBAmBtC,CAAC;IAEF;;OAEG;IACI,MAAM,+BAA+B,EAAE,iBAK7C,CAAC;IAEF;;OAEG;IACI,MAAM,aAAa,eAgBzB,CAAC;CACL"}
@@ -0,0 +1,146 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Advertiser } from "#advertisement/Advertiser.js";
7
+ import { Bytes, ImplementationError, InternalError, RetrySchedule, STANDARD_MATTER_PORT } from "#general";
8
+ import { DatatypeModel, FieldElement } from "#model";
9
+ import { MAXIMUM_COMMISSIONING_TIMEOUT_S } from "#types";
10
+ import { CommissionableMdnsAdvertisement } from "./CommissionableMdnsAdvertisement.js";
11
+ import { CommissionerMdnsAdvertisement } from "./CommissionerMdnsAdvertisement.js";
12
+ import { OperationalMdnsAdvertisement } from "./OperationalMdnsAdvertisement.js";
13
+ class MdnsAdvertiser extends Advertiser {
14
+ constructor(crypto, server, options) {
15
+ super();
16
+ this.crypto = crypto;
17
+ this.server = server;
18
+ this.port = options?.port ?? STANDARD_MATTER_PORT;
19
+ this.omitPrivateDetails = options?.omitPrivateDetails ?? false;
20
+ let hasDefaultSchedule = false;
21
+ let hasRetransmitSchedule = false;
22
+ if (options?.schedules) {
23
+ for (const schedule of options.schedules) {
24
+ if (schedule.serviceKind === void 0) {
25
+ if (schedule.event === void 0) {
26
+ hasDefaultSchedule = true;
27
+ }
28
+ if (schedule.event === "retransmit") {
29
+ hasRetransmitSchedule = true;
30
+ }
31
+ }
32
+ this.#schedules.push({ config: schedule });
33
+ }
34
+ }
35
+ if (!hasRetransmitSchedule) {
36
+ this.#schedules.push({ config: MdnsAdvertiser.RetransmissionBroadcastSchedule });
37
+ }
38
+ if (!hasDefaultSchedule) {
39
+ this.#schedules.push({ config: MdnsAdvertiser.DefaultBroadcastSchedule });
40
+ }
41
+ }
42
+ port;
43
+ omitPrivateDetails;
44
+ #schedules = new Array();
45
+ /**
46
+ * Create an advertisement for the specific service.
47
+ */
48
+ getAdvertisement(description) {
49
+ switch (description.kind) {
50
+ case "operational":
51
+ return this.advertisementForFabric(description.fabric) ?? new OperationalMdnsAdvertisement(this, description);
52
+ case "commissionable":
53
+ return new CommissionableMdnsAdvertisement(this, description);
54
+ case "commissioner":
55
+ return new CommissionerMdnsAdvertisement(this, description);
56
+ default:
57
+ throw new ImplementationError(
58
+ `Unsupported service description kind "${description.kind}`
59
+ );
60
+ }
61
+ }
62
+ /**
63
+ * Generate a random 8-byte Matter instance identifier.
64
+ */
65
+ createInstanceId() {
66
+ return Bytes.toHex(this.crypto.randomBytes(8)).toUpperCase();
67
+ }
68
+ /**
69
+ * Retrieve the broadcast schedule for a specific advertisement.
70
+ */
71
+ broadcastScheduleFor(advertisement, event) {
72
+ const entry = this.#scheduleFor(advertisement, event);
73
+ if (entry.schedule === void 0) {
74
+ entry.schedule = new RetrySchedule(
75
+ this.crypto,
76
+ RetrySchedule.Configuration(MdnsAdvertiser.DefaultBroadcastSchedule, entry.config)
77
+ );
78
+ }
79
+ return entry.schedule;
80
+ }
81
+ /**
82
+ * Retrieve broadcast configuration for a specific advertisement.
83
+ */
84
+ broadcastConfigFor(advertisement, event) {
85
+ return this.#scheduleFor(advertisement, event).config;
86
+ }
87
+ #scheduleFor(advertisement, event) {
88
+ if (!event) {
89
+ event = "startup";
90
+ }
91
+ for (const entry of this.#schedules) {
92
+ const { serviceKind, event: event2 } = entry.config;
93
+ if (serviceKind !== void 0 && serviceKind !== advertisement.description.kind) {
94
+ continue;
95
+ }
96
+ if (event2 !== void 0 && event2 !== event) {
97
+ continue;
98
+ }
99
+ return entry;
100
+ }
101
+ throw new InternalError("Default retry schedule not present");
102
+ }
103
+ }
104
+ ((MdnsAdvertiser2) => {
105
+ MdnsAdvertiser2.DefaultBroadcastSchedule = {
106
+ // Mandated by MDNS specification
107
+ initialInterval: 1e3,
108
+ // Maximum commissioning timeout per Matter specification 5.4.2.3.1, although
109
+ timeout: MAXIMUM_COMMISSIONING_TIMEOUT_S * 1e3,
110
+ // Minimum per MDNS specification
111
+ backoffFactor: 2,
112
+ // Technically this may result in us emitting more than 8 packets which is the maximum per the MDNS
113
+ // specification but extra packets will only come every 90 seconds
114
+ maximumInterval: 9e4,
115
+ // Not in any specification AFAIK but common sense to reduce thundering herd
116
+ jitterFactor: 0.25,
117
+ // Generally operational broadcast is unnecessary once an operational connection is established
118
+ broadcastAfterConnection: 0
119
+ };
120
+ MdnsAdvertiser2.RetransmissionBroadcastSchedule = {
121
+ event: "retransmit",
122
+ // Retransmission events occur for every packet retry so limit count to 1
123
+ maximumCount: 1
124
+ };
125
+ MdnsAdvertiser2.OptionsSchema = new DatatypeModel(
126
+ { name: "MdnsAdvertiserOptions", type: "struct" },
127
+ FieldElement({ name: "omitPrivateDetails", type: "bool" }),
128
+ FieldElement(
129
+ { name: "schedules", type: "list" },
130
+ FieldElement(
131
+ { name: "entry", type: "struct" },
132
+ FieldElement({ name: "initialInterval", type: "uint32" }),
133
+ FieldElement({ name: "timeout", type: "uint32" }),
134
+ FieldElement({ name: "backoffFactor", type: "uint8" }),
135
+ FieldElement({ name: "maximumInterval", type: "uint32" }),
136
+ FieldElement({ name: "jitterFactor", type: "single" }),
137
+ FieldElement({ name: "serviceKind", type: "string" }),
138
+ FieldElement({ name: "event", type: "string" })
139
+ )
140
+ )
141
+ );
142
+ })(MdnsAdvertiser || (MdnsAdvertiser = {}));
143
+ export {
144
+ MdnsAdvertiser
145
+ };
146
+ //# sourceMappingURL=MdnsAdvertiser.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/advertisement/mdns/MdnsAdvertiser.ts"],
4
+ "mappings": "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",
5
+ "names": ["MdnsAdvertiser"]
6
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { Advertisement } from "#advertisement/Advertisement.js";
7
+ import { ServiceDescription } from "#advertisement/ServiceDescription.js";
8
+ import { MdnsAdvertisement } from "./MdnsAdvertisement.js";
9
+ import type { MdnsAdvertiser } from "./MdnsAdvertiser.js";
10
+ /**
11
+ * Advertise a node as a fabric member.
12
+ */
13
+ export declare class OperationalMdnsAdvertisement extends MdnsAdvertisement<ServiceDescription.Operational> {
14
+ constructor(advertiser: MdnsAdvertiser, description: ServiceDescription.Operational);
15
+ get ptrRecords(): import("#general").DnsRecord<string>[];
16
+ isDuplicate(other: Advertisement): boolean;
17
+ }
18
+ //# sourceMappingURL=OperationalMdnsAdvertisement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OperationalMdnsAdvertisement.d.ts","sourceRoot":"","sources":["../../../../src/advertisement/mdns/OperationalMdnsAdvertisement.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAS1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;GAEG;AACH,qBAAa,4BAA6B,SAAQ,iBAAiB,CAAC,kBAAkB,CAAC,WAAW,CAAC;gBACnF,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,CAAC,WAAW;IAUnF,IAAa,UAAU,2CAUtB;IAEQ,WAAW,CAAC,KAAK,EAAE,aAAa;CAI5C"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Bytes, PtrRecord } from "#general";
7
+ import {
8
+ getFabricQname,
9
+ getOperationalDeviceQname,
10
+ MATTER_SERVICE_QNAME,
11
+ SERVICE_DISCOVERY_QNAME
12
+ } from "#mdns/MdnsConsts.js";
13
+ import { NodeId } from "#types";
14
+ import { MdnsAdvertisement } from "./MdnsAdvertisement.js";
15
+ class OperationalMdnsAdvertisement extends MdnsAdvertisement {
16
+ constructor(advertiser, description) {
17
+ const {
18
+ fabric: { operationalId, nodeId }
19
+ } = description;
20
+ const qname = getOperationalDeviceQname(Bytes.toHex(operationalId).toUpperCase(), NodeId.toHexString(nodeId));
21
+ super(advertiser, qname, description);
22
+ }
23
+ get ptrRecords() {
24
+ const operationalIdString = Bytes.toHex(this.description.fabric.operationalId).toUpperCase();
25
+ const fabricQname = getFabricQname(operationalIdString);
26
+ return [
27
+ PtrRecord(SERVICE_DISCOVERY_QNAME, MATTER_SERVICE_QNAME),
28
+ PtrRecord(SERVICE_DISCOVERY_QNAME, fabricQname),
29
+ PtrRecord(MATTER_SERVICE_QNAME, this.qname),
30
+ PtrRecord(fabricQname, this.qname)
31
+ ];
32
+ }
33
+ isDuplicate(other) {
34
+ return other.isOperational() && other.service === this.service;
35
+ }
36
+ }
37
+ export {
38
+ OperationalMdnsAdvertisement
39
+ };
40
+ //# sourceMappingURL=OperationalMdnsAdvertisement.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/advertisement/mdns/OperationalMdnsAdvertisement.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,OAAO,iBAAiB;AACjC;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,cAAc;AACvB,SAAS,yBAAyB;AAM3B,MAAM,qCAAqC,kBAAkD;AAAA,EAChG,YAAY,YAA4B,aAA6C;AACjF,UAAM;AAAA,MACF,QAAQ,EAAE,eAAe,OAAO;AAAA,IACpC,IAAI;AAEJ,UAAM,QAAQ,0BAA0B,MAAM,MAAM,aAAa,EAAE,YAAY,GAAG,OAAO,YAAY,MAAM,CAAC;AAE5G,UAAM,YAAY,OAAO,WAAW;AAAA,EACxC;AAAA,EAEA,IAAa,aAAa;AACtB,UAAM,sBAAsB,MAAM,MAAM,KAAK,YAAY,OAAO,aAAa,EAAE,YAAY;AAC3F,UAAM,cAAc,eAAe,mBAAmB;AAEtD,WAAO;AAAA,MACH,UAAU,yBAAyB,oBAAoB;AAAA,MACvD,UAAU,yBAAyB,WAAW;AAAA,MAC9C,UAAU,sBAAsB,KAAK,KAAK;AAAA,MAC1C,UAAU,aAAa,KAAK,KAAK;AAAA,IACrC;AAAA,EACJ;AAAA,EAES,YAAY,OAAsB;AAEvC,WAAO,MAAM,cAAc,KAAK,MAAM,YAAY,KAAK;AAAA,EAC3D;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 * from "./CommissionableMdnsAdvertisement.js";
7
+ export * from "./CommissionerMdnsAdvertisement.js";
8
+ export * from "./MdnsAdvertisement.js";
9
+ export * from "./MdnsAdvertiser.js";
10
+ export * from "./OperationalMdnsAdvertisement.js";
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/advertisement/mdns/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mCAAmC,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export * from "./CommissionableMdnsAdvertisement.js";
7
+ export * from "./CommissionerMdnsAdvertisement.js";
8
+ export * from "./MdnsAdvertisement.js";
9
+ export * from "./MdnsAdvertiser.js";
10
+ export * from "./OperationalMdnsAdvertisement.js";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/advertisement/mdns/index.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
5
+ "names": []
6
+ }
@@ -4,7 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { Channel, ChannelType, MatterError, NetInterface, TransportInterface } from "#general";
7
- import { InstanceBroadcaster } from "../common/InstanceBroadcaster.js";
8
7
  import { Scanner } from "../common/Scanner.js";
9
8
  export declare class BleError extends MatterError {
10
9
  }
@@ -12,10 +11,13 @@ declare function BleDisabled(): Ble;
12
11
  export declare abstract class Ble {
13
12
  static get: typeof BleDisabled;
14
13
  static get enabled(): boolean;
15
- abstract getBlePeripheralInterface(): TransportInterface;
16
- abstract getBleCentralInterface(): NetInterface;
17
- abstract getBleBroadcaster(additionalAdvertisementData?: Uint8Array): InstanceBroadcaster;
18
- abstract getBleScanner(): Scanner;
14
+ abstract get peripheralInterface(): BlePeripheralInterface;
15
+ abstract get centralInterface(): NetInterface;
16
+ abstract get scanner(): Scanner;
17
+ }
18
+ export interface BlePeripheralInterface extends TransportInterface {
19
+ advertise(advertiseData: Uint8Array, additionalAdvertisementData?: Uint8Array, intervalMs?: number): Promise<void>;
20
+ stopAdvertising(): Promise<void>;
19
21
  }
20
22
  export declare abstract class BleChannel<T> implements Channel<T> {
21
23
  readonly maxPayloadSize: number;
@@ -1 +1 @@
1
- {"version":3,"file":"Ble.d.ts","sourceRoot":"","sources":["../../../src/ble/Ble.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAmB,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAChH,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,qBAAa,QAAS,SAAQ,WAAW;CAAG;AAE5C,iBAAS,WAAW,IAAI,GAAG,CAE1B;AAGD,8BAAsB,GAAG;IACrB,MAAM,CAAC,GAAG,qBAAe;IAEzB,MAAM,KAAK,OAAO,YAEjB;IAED,QAAQ,CAAC,yBAAyB,IAAI,kBAAkB;IACxD,QAAQ,CAAC,sBAAsB,IAAI,YAAY;IAC/C,QAAQ,CAAC,iBAAiB,CAAC,2BAA2B,CAAC,EAAE,UAAU,GAAG,mBAAmB;IACzF,QAAQ,CAAC,aAAa,IAAI,OAAO;CACpC;AAED,8BAAsB,UAAU,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,cAAc,SAA+B;IACtD,QAAQ,CAAC,UAAU,QAAQ;IAC3B,QAAQ,CAAC,IAAI,mBAAmB;IAEhC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IACrC,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAClC"}
1
+ {"version":3,"file":"Ble.d.ts","sourceRoot":"","sources":["../../../src/ble/Ble.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAmB,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAChH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,qBAAa,QAAS,SAAQ,WAAW;CAAG;AAE5C,iBAAS,WAAW,IAAI,GAAG,CAE1B;AAGD,8BAAsB,GAAG;IACrB,MAAM,CAAC,GAAG,qBAAe;IAEzB,MAAM,KAAK,OAAO,YAEjB;IAED,QAAQ,KAAK,mBAAmB,IAAI,sBAAsB,CAAC;IAC3D,QAAQ,KAAK,gBAAgB,IAAI,YAAY,CAAC;IAC9C,QAAQ,KAAK,OAAO,IAAI,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAC9D,SAAS,CAAC,aAAa,EAAE,UAAU,EAAE,2BAA2B,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnH,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED,8BAAsB,UAAU,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,cAAc,SAA+B;IACtD,QAAQ,CAAC,UAAU,QAAQ;IAC3B,QAAQ,CAAC,IAAI,mBAAmB;IAEhC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IACrC,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAClC"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/ble/Ble.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAkB,aAAa,aAA2B,uBAA2C;AAGrG,SAAS,mCAAmC;AAErC,MAAM,iBAAiB,YAAY;AAAC;AAE3C,SAAS,cAAmB;AACxB,QAAM,IAAI,gBAAgB,wBAAwB;AACtD;AAGO,MAAe,IAAI;AAAA,EACtB,OAAO,MAAM;AAAA,EAEb,WAAW,UAAU;AACjB,WAAO,KAAK,QAAQ;AAAA,EACxB;AAMJ;AAEO,MAAe,WAAoC;AAAA,EAC7C,iBAAiB;AAAA,EACjB,aAAa;AAAA;AAAA,EACb,OAAO,YAAY;AAKhC;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAkB,aAAa,aAA2B,uBAA2C;AAErG,SAAS,mCAAmC;AAErC,MAAM,iBAAiB,YAAY;AAAC;AAE3C,SAAS,cAAmB;AACxB,QAAM,IAAI,gBAAgB,wBAAwB;AACtD;AAGO,MAAe,IAAI;AAAA,EACtB,OAAO,MAAM;AAAA,EAEb,WAAW,UAAU;AACjB,WAAO,KAAK,QAAQ;AAAA,EACxB;AAKJ;AAOO,MAAe,WAAoC;AAAA,EAC7C,iBAAiB;AAAA,EACjB,aAAa;AAAA;AAAA,EACb,OAAO,YAAY;AAKhC;",
5
5
  "names": []
6
6
  }