@matter/protocol 0.16.0-alpha.0-20250809-ee8375bcb → 0.16.0-alpha.0-20250812-285b75d83

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (408) hide show
  1. package/dist/cjs/advertisement/Advertisement.d.ts +119 -0
  2. package/dist/cjs/advertisement/Advertisement.d.ts.map +1 -0
  3. package/dist/cjs/advertisement/Advertisement.js +267 -0
  4. package/dist/cjs/advertisement/Advertisement.js.map +6 -0
  5. package/dist/cjs/advertisement/Advertiser.d.ts +50 -0
  6. package/dist/cjs/advertisement/Advertiser.d.ts.map +1 -0
  7. package/dist/cjs/advertisement/Advertiser.js +81 -0
  8. package/dist/cjs/advertisement/Advertiser.js.map +6 -0
  9. package/dist/cjs/advertisement/CommissioningMode.d.ts +11 -0
  10. package/dist/cjs/advertisement/CommissioningMode.d.ts.map +1 -0
  11. package/dist/cjs/advertisement/CommissioningMode.js +35 -0
  12. package/dist/cjs/advertisement/CommissioningMode.js.map +6 -0
  13. package/dist/cjs/{common/InstanceBroadcaster.d.ts → advertisement/PairingHintBitmap.d.ts} +3 -69
  14. package/dist/cjs/advertisement/PairingHintBitmap.d.ts.map +1 -0
  15. package/dist/cjs/{common/InstanceBroadcaster.js → advertisement/PairingHintBitmap.js} +5 -12
  16. package/dist/cjs/advertisement/PairingHintBitmap.js.map +6 -0
  17. package/dist/cjs/advertisement/ServiceDescription.d.ts +70 -0
  18. package/dist/cjs/advertisement/ServiceDescription.d.ts.map +1 -0
  19. package/dist/cjs/advertisement/ServiceDescription.js +61 -0
  20. package/dist/cjs/advertisement/ServiceDescription.js.map +6 -0
  21. package/dist/cjs/advertisement/ble/BleAdvertisement.d.ts +16 -0
  22. package/dist/cjs/advertisement/ble/BleAdvertisement.d.ts.map +1 -0
  23. package/dist/cjs/advertisement/ble/BleAdvertisement.js +85 -0
  24. package/dist/cjs/advertisement/ble/BleAdvertisement.js.map +6 -0
  25. package/dist/cjs/advertisement/ble/BleAdvertiser.d.ts +66 -0
  26. package/dist/cjs/advertisement/ble/BleAdvertiser.d.ts.map +1 -0
  27. package/dist/cjs/advertisement/ble/BleAdvertiser.js +83 -0
  28. package/dist/cjs/advertisement/ble/BleAdvertiser.js.map +6 -0
  29. package/dist/cjs/advertisement/ble/index.d.ts +8 -0
  30. package/dist/cjs/advertisement/ble/index.d.ts.map +1 -0
  31. package/dist/cjs/advertisement/ble/index.js +25 -0
  32. package/dist/cjs/advertisement/ble/index.js.map +6 -0
  33. package/dist/cjs/advertisement/index.d.ts +13 -0
  34. package/dist/cjs/advertisement/index.d.ts.map +1 -0
  35. package/dist/cjs/advertisement/index.js +30 -0
  36. package/dist/cjs/advertisement/index.js.map +6 -0
  37. package/dist/cjs/advertisement/mdns/CommissionableMdnsAdvertisement.d.ts +21 -0
  38. package/dist/cjs/advertisement/mdns/CommissionableMdnsAdvertisement.d.ts.map +1 -0
  39. package/dist/cjs/advertisement/mdns/CommissionableMdnsAdvertisement.js +104 -0
  40. package/dist/cjs/advertisement/mdns/CommissionableMdnsAdvertisement.js.map +6 -0
  41. package/dist/cjs/advertisement/mdns/CommissionerMdnsAdvertisement.d.ts +20 -0
  42. package/dist/cjs/advertisement/mdns/CommissionerMdnsAdvertisement.d.ts.map +1 -0
  43. package/dist/cjs/advertisement/mdns/CommissionerMdnsAdvertisement.js +70 -0
  44. package/dist/cjs/advertisement/mdns/CommissionerMdnsAdvertisement.js.map +6 -0
  45. package/dist/cjs/advertisement/mdns/MdnsAdvertisement.d.ts +40 -0
  46. package/dist/cjs/advertisement/mdns/MdnsAdvertisement.d.ts.map +1 -0
  47. package/dist/cjs/advertisement/mdns/MdnsAdvertisement.js +145 -0
  48. package/dist/cjs/advertisement/mdns/MdnsAdvertisement.js.map +6 -0
  49. package/dist/cjs/advertisement/mdns/MdnsAdvertiser.d.ts +99 -0
  50. package/dist/cjs/advertisement/mdns/MdnsAdvertiser.d.ts.map +1 -0
  51. package/dist/cjs/advertisement/mdns/MdnsAdvertiser.js +166 -0
  52. package/dist/cjs/advertisement/mdns/MdnsAdvertiser.js.map +6 -0
  53. package/dist/cjs/advertisement/mdns/OperationalMdnsAdvertisement.d.ts +18 -0
  54. package/dist/cjs/advertisement/mdns/OperationalMdnsAdvertisement.d.ts.map +1 -0
  55. package/dist/cjs/advertisement/mdns/OperationalMdnsAdvertisement.js +55 -0
  56. package/dist/cjs/advertisement/mdns/OperationalMdnsAdvertisement.js.map +6 -0
  57. package/dist/cjs/advertisement/mdns/index.d.ts +11 -0
  58. package/dist/cjs/advertisement/mdns/index.d.ts.map +1 -0
  59. package/dist/cjs/advertisement/mdns/index.js +28 -0
  60. package/dist/cjs/advertisement/mdns/index.js.map +6 -0
  61. package/dist/cjs/ble/Ble.d.ts +7 -5
  62. package/dist/cjs/ble/Ble.d.ts.map +1 -1
  63. package/dist/cjs/ble/Ble.js.map +1 -1
  64. package/dist/cjs/ble/BleConsts.d.ts +2 -1
  65. package/dist/cjs/ble/BleConsts.d.ts.map +1 -1
  66. package/dist/cjs/ble/BleConsts.js +3 -1
  67. package/dist/cjs/ble/BleConsts.js.map +1 -1
  68. package/dist/cjs/codec/BtpCodec.d.ts +1 -1
  69. package/dist/cjs/codec/BtpCodec.d.ts.map +1 -1
  70. package/dist/cjs/codec/BtpCodec.js +4 -4
  71. package/dist/cjs/codec/BtpCodec.js.map +1 -1
  72. package/dist/cjs/common/Scanner.d.ts +1 -25
  73. package/dist/cjs/common/Scanner.d.ts.map +1 -1
  74. package/dist/cjs/common/Scanner.js +1 -18
  75. package/dist/cjs/common/Scanner.js.map +1 -1
  76. package/dist/cjs/common/SupportedTransportsBitmap.d.ts +33 -0
  77. package/dist/cjs/common/SupportedTransportsBitmap.d.ts.map +1 -0
  78. package/dist/cjs/common/SupportedTransportsBitmap.js +45 -0
  79. package/dist/cjs/common/SupportedTransportsBitmap.js.map +6 -0
  80. package/dist/cjs/common/index.d.ts +1 -1
  81. package/dist/cjs/common/index.d.ts.map +1 -1
  82. package/dist/cjs/common/index.js +1 -1
  83. package/dist/cjs/common/index.js.map +1 -1
  84. package/dist/cjs/fabric/Fabric.d.ts +1 -0
  85. package/dist/cjs/fabric/Fabric.d.ts.map +1 -1
  86. package/dist/cjs/fabric/Fabric.js +7 -0
  87. package/dist/cjs/fabric/Fabric.js.map +1 -1
  88. package/dist/cjs/index.d.ts +1 -0
  89. package/dist/cjs/index.d.ts.map +1 -1
  90. package/dist/cjs/index.js +1 -0
  91. package/dist/cjs/index.js.map +1 -1
  92. package/dist/{esm/mdns/MdnsScanner.d.ts → cjs/mdns/MdnsClient.d.ts} +11 -14
  93. package/dist/cjs/mdns/MdnsClient.d.ts.map +1 -0
  94. package/dist/cjs/mdns/{MdnsScanner.js → MdnsClient.js} +35 -90
  95. package/dist/cjs/mdns/MdnsClient.js.map +6 -0
  96. package/dist/cjs/mdns/MdnsConsts.d.ts +11 -2
  97. package/dist/cjs/mdns/MdnsConsts.d.ts.map +1 -1
  98. package/dist/cjs/mdns/MdnsConsts.js +31 -4
  99. package/dist/cjs/mdns/MdnsConsts.js.map +1 -1
  100. package/dist/cjs/mdns/MdnsServer.d.ts +13 -22
  101. package/dist/cjs/mdns/MdnsServer.d.ts.map +1 -1
  102. package/dist/cjs/mdns/MdnsServer.js +53 -150
  103. package/dist/cjs/mdns/MdnsServer.js.map +2 -2
  104. package/dist/cjs/mdns/MdnsService.d.ts +4 -5
  105. package/dist/cjs/mdns/MdnsService.d.ts.map +1 -1
  106. package/dist/cjs/mdns/MdnsService.js +22 -23
  107. package/dist/cjs/mdns/MdnsService.js.map +1 -1
  108. package/dist/cjs/mdns/MdnsSocket.d.ts +32 -0
  109. package/dist/cjs/mdns/MdnsSocket.d.ts.map +1 -0
  110. package/dist/cjs/mdns/MdnsSocket.js +144 -0
  111. package/dist/cjs/mdns/MdnsSocket.js.map +6 -0
  112. package/dist/cjs/mdns/index.d.ts +2 -3
  113. package/dist/cjs/mdns/index.d.ts.map +1 -1
  114. package/dist/cjs/mdns/index.js +2 -3
  115. package/dist/cjs/mdns/index.js.map +1 -1
  116. package/dist/cjs/peer/ControllerCommissioner.js +2 -2
  117. package/dist/cjs/peer/ControllerCommissioner.js.map +1 -1
  118. package/dist/cjs/peer/ControllerDiscovery.d.ts +3 -3
  119. package/dist/cjs/peer/ControllerDiscovery.d.ts.map +1 -1
  120. package/dist/cjs/peer/ControllerDiscovery.js.map +1 -1
  121. package/dist/cjs/peer/PeerSet.d.ts.map +1 -1
  122. package/dist/cjs/peer/PeerSet.js +10 -5
  123. package/dist/cjs/peer/PeerSet.js.map +1 -1
  124. package/dist/cjs/protocol/DeviceAdvertiser.d.ts +23 -18
  125. package/dist/cjs/protocol/DeviceAdvertiser.d.ts.map +1 -1
  126. package/dist/cjs/protocol/DeviceAdvertiser.js +130 -129
  127. package/dist/cjs/protocol/DeviceAdvertiser.js.map +1 -1
  128. package/dist/cjs/protocol/DeviceCommissioner.d.ts +0 -1
  129. package/dist/cjs/protocol/DeviceCommissioner.d.ts.map +1 -1
  130. package/dist/cjs/protocol/DeviceCommissioner.js +44 -44
  131. package/dist/cjs/protocol/DeviceCommissioner.js.map +1 -1
  132. package/dist/cjs/protocol/ExchangeManager.js +1 -1
  133. package/dist/cjs/protocol/ExchangeManager.js.map +1 -1
  134. package/dist/cjs/protocol/MessageExchange.d.ts +1 -1
  135. package/dist/cjs/protocol/MessageExchange.d.ts.map +1 -1
  136. package/dist/cjs/protocol/MessageExchange.js +6 -8
  137. package/dist/cjs/protocol/MessageExchange.js.map +1 -1
  138. package/dist/cjs/protocol/ProtocolHandler.d.ts +4 -0
  139. package/dist/cjs/protocol/ProtocolHandler.d.ts.map +1 -1
  140. package/dist/cjs/protocol/ProtocolStatusMessage.d.ts +8 -4
  141. package/dist/cjs/protocol/ProtocolStatusMessage.d.ts.map +1 -1
  142. package/dist/cjs/protocol/ProtocolStatusMessage.js +23 -8
  143. package/dist/cjs/protocol/ProtocolStatusMessage.js.map +1 -1
  144. package/dist/cjs/securechannel/SecureChannelMessenger.js +2 -2
  145. package/dist/cjs/securechannel/SecureChannelMessenger.js.map +1 -1
  146. package/dist/cjs/securechannel/SecureChannelProtocol.js +1 -1
  147. package/dist/cjs/securechannel/SecureChannelProtocol.js.map +1 -1
  148. package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.d.ts +3 -3
  149. package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.d.ts.map +1 -1
  150. package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.js +3 -3
  151. package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.js.map +1 -1
  152. package/dist/cjs/session/NodeSession.d.ts +1 -0
  153. package/dist/cjs/session/NodeSession.d.ts.map +1 -1
  154. package/dist/cjs/session/NodeSession.js +3 -0
  155. package/dist/cjs/session/NodeSession.js.map +1 -1
  156. package/dist/cjs/session/Session.d.ts +3 -33
  157. package/dist/cjs/session/Session.d.ts.map +1 -1
  158. package/dist/cjs/session/Session.js +4 -9
  159. package/dist/cjs/session/Session.js.map +1 -1
  160. package/dist/cjs/session/SessionIntervals.d.ts +36 -0
  161. package/dist/cjs/session/SessionIntervals.d.ts.map +1 -0
  162. package/dist/cjs/session/SessionIntervals.js +51 -0
  163. package/dist/cjs/session/SessionIntervals.js.map +6 -0
  164. package/dist/cjs/session/SessionManager.d.ts +1 -1
  165. package/dist/cjs/session/SessionManager.d.ts.map +1 -1
  166. package/dist/cjs/session/SessionManager.js +11 -12
  167. package/dist/cjs/session/SessionManager.js.map +1 -1
  168. package/dist/cjs/session/pase/PaseMessages.js +2 -2
  169. package/dist/cjs/session/pase/PaseMessages.js.map +1 -1
  170. package/dist/esm/advertisement/Advertisement.d.ts +119 -0
  171. package/dist/esm/advertisement/Advertisement.d.ts.map +1 -0
  172. package/dist/esm/advertisement/Advertisement.js +247 -0
  173. package/dist/esm/advertisement/Advertisement.js.map +6 -0
  174. package/dist/esm/advertisement/Advertiser.d.ts +50 -0
  175. package/dist/esm/advertisement/Advertiser.d.ts.map +1 -0
  176. package/dist/esm/advertisement/Advertiser.js +61 -0
  177. package/dist/esm/advertisement/Advertiser.js.map +6 -0
  178. package/dist/esm/advertisement/CommissioningMode.d.ts +11 -0
  179. package/dist/esm/advertisement/CommissioningMode.d.ts.map +1 -0
  180. package/dist/esm/advertisement/CommissioningMode.js +15 -0
  181. package/dist/esm/advertisement/CommissioningMode.js.map +6 -0
  182. package/dist/esm/{common/InstanceBroadcaster.d.ts → advertisement/PairingHintBitmap.d.ts} +3 -69
  183. package/dist/esm/advertisement/PairingHintBitmap.d.ts.map +1 -0
  184. package/dist/esm/{common/InstanceBroadcaster.js → advertisement/PairingHintBitmap.js} +2 -9
  185. package/dist/esm/{common/InstanceBroadcaster.js.map → advertisement/PairingHintBitmap.js.map} +3 -3
  186. package/dist/esm/advertisement/ServiceDescription.d.ts +70 -0
  187. package/dist/esm/advertisement/ServiceDescription.d.ts.map +1 -0
  188. package/dist/esm/advertisement/ServiceDescription.js +41 -0
  189. package/dist/esm/advertisement/ServiceDescription.js.map +6 -0
  190. package/dist/esm/advertisement/ble/BleAdvertisement.d.ts +16 -0
  191. package/dist/esm/advertisement/ble/BleAdvertisement.d.ts.map +1 -0
  192. package/dist/esm/advertisement/ble/BleAdvertisement.js +65 -0
  193. package/dist/esm/advertisement/ble/BleAdvertisement.js.map +6 -0
  194. package/dist/esm/advertisement/ble/BleAdvertiser.d.ts +66 -0
  195. package/dist/esm/advertisement/ble/BleAdvertiser.d.ts.map +1 -0
  196. package/dist/esm/advertisement/ble/BleAdvertiser.js +63 -0
  197. package/dist/esm/advertisement/ble/BleAdvertiser.js.map +6 -0
  198. package/dist/esm/advertisement/ble/index.d.ts +8 -0
  199. package/dist/esm/advertisement/ble/index.d.ts.map +1 -0
  200. package/dist/esm/advertisement/ble/index.js +8 -0
  201. package/dist/esm/advertisement/ble/index.js.map +6 -0
  202. package/dist/esm/advertisement/index.d.ts +13 -0
  203. package/dist/esm/advertisement/index.d.ts.map +1 -0
  204. package/dist/esm/advertisement/index.js +13 -0
  205. package/dist/esm/advertisement/index.js.map +6 -0
  206. package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.d.ts +21 -0
  207. package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.d.ts.map +1 -0
  208. package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.js +95 -0
  209. package/dist/esm/advertisement/mdns/CommissionableMdnsAdvertisement.js.map +6 -0
  210. package/dist/esm/advertisement/mdns/CommissionerMdnsAdvertisement.d.ts +20 -0
  211. package/dist/esm/advertisement/mdns/CommissionerMdnsAdvertisement.d.ts.map +1 -0
  212. package/dist/esm/advertisement/mdns/CommissionerMdnsAdvertisement.js +54 -0
  213. package/dist/esm/advertisement/mdns/CommissionerMdnsAdvertisement.js.map +6 -0
  214. package/dist/esm/advertisement/mdns/MdnsAdvertisement.d.ts +40 -0
  215. package/dist/esm/advertisement/mdns/MdnsAdvertisement.d.ts.map +1 -0
  216. package/dist/esm/advertisement/mdns/MdnsAdvertisement.js +125 -0
  217. package/dist/esm/advertisement/mdns/MdnsAdvertisement.js.map +6 -0
  218. package/dist/esm/advertisement/mdns/MdnsAdvertiser.d.ts +99 -0
  219. package/dist/esm/advertisement/mdns/MdnsAdvertiser.d.ts.map +1 -0
  220. package/dist/esm/advertisement/mdns/MdnsAdvertiser.js +146 -0
  221. package/dist/esm/advertisement/mdns/MdnsAdvertiser.js.map +6 -0
  222. package/dist/esm/advertisement/mdns/OperationalMdnsAdvertisement.d.ts +18 -0
  223. package/dist/esm/advertisement/mdns/OperationalMdnsAdvertisement.d.ts.map +1 -0
  224. package/dist/esm/advertisement/mdns/OperationalMdnsAdvertisement.js +40 -0
  225. package/dist/esm/advertisement/mdns/OperationalMdnsAdvertisement.js.map +6 -0
  226. package/dist/esm/advertisement/mdns/index.d.ts +11 -0
  227. package/dist/esm/advertisement/mdns/index.d.ts.map +1 -0
  228. package/dist/esm/advertisement/mdns/index.js +11 -0
  229. package/dist/esm/advertisement/mdns/index.js.map +6 -0
  230. package/dist/esm/ble/Ble.d.ts +7 -5
  231. package/dist/esm/ble/Ble.d.ts.map +1 -1
  232. package/dist/esm/ble/Ble.js.map +1 -1
  233. package/dist/esm/ble/BleConsts.d.ts +2 -1
  234. package/dist/esm/ble/BleConsts.d.ts.map +1 -1
  235. package/dist/esm/ble/BleConsts.js +3 -1
  236. package/dist/esm/ble/BleConsts.js.map +1 -1
  237. package/dist/esm/codec/BtpCodec.d.ts +1 -1
  238. package/dist/esm/codec/BtpCodec.d.ts.map +1 -1
  239. package/dist/esm/codec/BtpCodec.js +4 -4
  240. package/dist/esm/codec/BtpCodec.js.map +1 -1
  241. package/dist/esm/common/Scanner.d.ts +1 -25
  242. package/dist/esm/common/Scanner.d.ts.map +1 -1
  243. package/dist/esm/common/Scanner.js +1 -18
  244. package/dist/esm/common/Scanner.js.map +1 -1
  245. package/dist/esm/common/SupportedTransportsBitmap.d.ts +33 -0
  246. package/dist/esm/common/SupportedTransportsBitmap.d.ts.map +1 -0
  247. package/dist/esm/common/SupportedTransportsBitmap.js +25 -0
  248. package/dist/esm/common/SupportedTransportsBitmap.js.map +6 -0
  249. package/dist/esm/common/index.d.ts +1 -1
  250. package/dist/esm/common/index.d.ts.map +1 -1
  251. package/dist/esm/common/index.js +1 -1
  252. package/dist/esm/fabric/Fabric.d.ts +1 -0
  253. package/dist/esm/fabric/Fabric.d.ts.map +1 -1
  254. package/dist/esm/fabric/Fabric.js +7 -0
  255. package/dist/esm/fabric/Fabric.js.map +1 -1
  256. package/dist/esm/index.d.ts +1 -0
  257. package/dist/esm/index.d.ts.map +1 -1
  258. package/dist/esm/index.js +1 -0
  259. package/dist/esm/index.js.map +1 -1
  260. package/dist/{cjs/mdns/MdnsScanner.d.ts → esm/mdns/MdnsClient.d.ts} +11 -14
  261. package/dist/esm/mdns/MdnsClient.d.ts.map +1 -0
  262. package/dist/esm/mdns/{MdnsScanner.js → MdnsClient.js} +34 -92
  263. package/dist/esm/mdns/MdnsClient.js.map +6 -0
  264. package/dist/esm/mdns/MdnsConsts.d.ts +11 -2
  265. package/dist/esm/mdns/MdnsConsts.d.ts.map +1 -1
  266. package/dist/esm/mdns/MdnsConsts.js +31 -4
  267. package/dist/esm/mdns/MdnsConsts.js.map +1 -1
  268. package/dist/esm/mdns/MdnsServer.d.ts +13 -22
  269. package/dist/esm/mdns/MdnsServer.d.ts.map +1 -1
  270. package/dist/esm/mdns/MdnsServer.js +55 -155
  271. package/dist/esm/mdns/MdnsServer.js.map +2 -2
  272. package/dist/esm/mdns/MdnsService.d.ts +4 -5
  273. package/dist/esm/mdns/MdnsService.d.ts.map +1 -1
  274. package/dist/esm/mdns/MdnsService.js +22 -24
  275. package/dist/esm/mdns/MdnsService.js.map +1 -1
  276. package/dist/esm/mdns/MdnsSocket.d.ts +32 -0
  277. package/dist/esm/mdns/MdnsSocket.d.ts.map +1 -0
  278. package/dist/esm/mdns/MdnsSocket.js +133 -0
  279. package/dist/esm/mdns/MdnsSocket.js.map +6 -0
  280. package/dist/esm/mdns/index.d.ts +2 -3
  281. package/dist/esm/mdns/index.d.ts.map +1 -1
  282. package/dist/esm/mdns/index.js +2 -3
  283. package/dist/esm/mdns/index.js.map +1 -1
  284. package/dist/esm/peer/ControllerCommissioner.js +2 -2
  285. package/dist/esm/peer/ControllerCommissioner.js.map +1 -1
  286. package/dist/esm/peer/ControllerDiscovery.d.ts +3 -3
  287. package/dist/esm/peer/ControllerDiscovery.d.ts.map +1 -1
  288. package/dist/esm/peer/ControllerDiscovery.js.map +1 -1
  289. package/dist/esm/peer/PeerSet.d.ts.map +1 -1
  290. package/dist/esm/peer/PeerSet.js +10 -5
  291. package/dist/esm/peer/PeerSet.js.map +1 -1
  292. package/dist/esm/protocol/DeviceAdvertiser.d.ts +23 -18
  293. package/dist/esm/protocol/DeviceAdvertiser.d.ts.map +1 -1
  294. package/dist/esm/protocol/DeviceAdvertiser.js +131 -139
  295. package/dist/esm/protocol/DeviceAdvertiser.js.map +1 -1
  296. package/dist/esm/protocol/DeviceCommissioner.d.ts +0 -1
  297. package/dist/esm/protocol/DeviceCommissioner.d.ts.map +1 -1
  298. package/dist/esm/protocol/DeviceCommissioner.js +47 -47
  299. package/dist/esm/protocol/DeviceCommissioner.js.map +1 -1
  300. package/dist/esm/protocol/ExchangeManager.js +1 -1
  301. package/dist/esm/protocol/ExchangeManager.js.map +1 -1
  302. package/dist/esm/protocol/MessageExchange.d.ts +1 -1
  303. package/dist/esm/protocol/MessageExchange.d.ts.map +1 -1
  304. package/dist/esm/protocol/MessageExchange.js +6 -12
  305. package/dist/esm/protocol/MessageExchange.js.map +1 -1
  306. package/dist/esm/protocol/ProtocolHandler.d.ts +4 -0
  307. package/dist/esm/protocol/ProtocolHandler.d.ts.map +1 -1
  308. package/dist/esm/protocol/ProtocolStatusMessage.d.ts +8 -4
  309. package/dist/esm/protocol/ProtocolStatusMessage.d.ts.map +1 -1
  310. package/dist/esm/protocol/ProtocolStatusMessage.js +24 -9
  311. package/dist/esm/protocol/ProtocolStatusMessage.js.map +1 -1
  312. package/dist/esm/securechannel/SecureChannelMessenger.js +3 -3
  313. package/dist/esm/securechannel/SecureChannelMessenger.js.map +1 -1
  314. package/dist/esm/securechannel/SecureChannelProtocol.js +2 -2
  315. package/dist/esm/securechannel/SecureChannelProtocol.js.map +1 -1
  316. package/dist/esm/securechannel/SecureChannelStatusMessageSchema.d.ts +3 -3
  317. package/dist/esm/securechannel/SecureChannelStatusMessageSchema.d.ts.map +1 -1
  318. package/dist/esm/securechannel/SecureChannelStatusMessageSchema.js +3 -3
  319. package/dist/esm/securechannel/SecureChannelStatusMessageSchema.js.map +1 -1
  320. package/dist/esm/session/NodeSession.d.ts +1 -0
  321. package/dist/esm/session/NodeSession.d.ts.map +1 -1
  322. package/dist/esm/session/NodeSession.js +3 -0
  323. package/dist/esm/session/NodeSession.js.map +1 -1
  324. package/dist/esm/session/Session.d.ts +3 -33
  325. package/dist/esm/session/Session.d.ts.map +1 -1
  326. package/dist/esm/session/Session.js +4 -9
  327. package/dist/esm/session/Session.js.map +1 -1
  328. package/dist/esm/session/SessionIntervals.d.ts +36 -0
  329. package/dist/esm/session/SessionIntervals.d.ts.map +1 -0
  330. package/dist/esm/session/SessionIntervals.js +31 -0
  331. package/dist/esm/session/SessionIntervals.js.map +6 -0
  332. package/dist/esm/session/SessionManager.d.ts +1 -1
  333. package/dist/esm/session/SessionManager.d.ts.map +1 -1
  334. package/dist/esm/session/SessionManager.js +10 -14
  335. package/dist/esm/session/SessionManager.js.map +1 -1
  336. package/dist/esm/session/pase/PaseMessages.js +1 -1
  337. package/package.json +6 -6
  338. package/src/advertisement/Advertisement.ts +348 -0
  339. package/src/advertisement/Advertiser.ts +83 -0
  340. package/src/advertisement/CommissioningMode.ts +11 -0
  341. package/src/{common/InstanceBroadcaster.ts → advertisement/PairingHintBitmap.ts} +1 -92
  342. package/src/advertisement/ServiceDescription.ts +110 -0
  343. package/src/advertisement/ble/BleAdvertisement.ts +90 -0
  344. package/src/advertisement/ble/BleAdvertiser.ts +116 -0
  345. package/src/advertisement/ble/index.ts +8 -0
  346. package/src/advertisement/index.ts +13 -0
  347. package/src/advertisement/mdns/CommissionableMdnsAdvertisement.ts +118 -0
  348. package/src/advertisement/mdns/CommissionerMdnsAdvertisement.ts +73 -0
  349. package/src/advertisement/mdns/MdnsAdvertisement.ts +167 -0
  350. package/src/advertisement/mdns/MdnsAdvertiser.ts +248 -0
  351. package/src/advertisement/mdns/OperationalMdnsAdvertisement.ts +50 -0
  352. package/src/advertisement/mdns/index.ts +11 -0
  353. package/src/ble/Ble.ts +8 -5
  354. package/src/ble/BleConsts.ts +2 -1
  355. package/src/codec/BtpCodec.ts +4 -3
  356. package/src/common/Scanner.ts +1 -17
  357. package/src/common/SupportedTransportsBitmap.ts +25 -0
  358. package/src/common/index.ts +1 -1
  359. package/src/fabric/Fabric.ts +8 -0
  360. package/src/index.ts +1 -0
  361. package/src/mdns/{MdnsScanner.ts → MdnsClient.ts} +34 -103
  362. package/src/mdns/MdnsConsts.ts +27 -2
  363. package/src/mdns/MdnsServer.ts +76 -198
  364. package/src/mdns/MdnsService.ts +24 -27
  365. package/src/mdns/MdnsSocket.ts +179 -0
  366. package/src/mdns/index.ts +2 -3
  367. package/src/peer/ControllerCommissioner.ts +2 -2
  368. package/src/peer/ControllerDiscovery.ts +3 -3
  369. package/src/peer/PeerSet.ts +15 -9
  370. package/src/protocol/DeviceAdvertiser.ts +161 -151
  371. package/src/protocol/DeviceCommissioner.ts +65 -75
  372. package/src/protocol/ExchangeManager.ts +1 -1
  373. package/src/protocol/MessageExchange.ts +8 -14
  374. package/src/protocol/ProtocolHandler.ts +7 -0
  375. package/src/protocol/ProtocolStatusMessage.ts +26 -10
  376. package/src/securechannel/SecureChannelMessenger.ts +3 -3
  377. package/src/securechannel/SecureChannelProtocol.ts +2 -2
  378. package/src/securechannel/SecureChannelStatusMessageSchema.ts +3 -3
  379. package/src/session/NodeSession.ts +4 -0
  380. package/src/session/Session.ts +6 -42
  381. package/src/session/SessionIntervals.ts +57 -0
  382. package/src/session/SessionManager.ts +9 -13
  383. package/src/session/pase/PaseMessages.ts +1 -1
  384. package/dist/cjs/common/InstanceBroadcaster.d.ts.map +0 -1
  385. package/dist/cjs/common/InstanceBroadcaster.js.map +0 -6
  386. package/dist/cjs/mdns/MdnsBroadcaster.d.ts +0 -34
  387. package/dist/cjs/mdns/MdnsBroadcaster.d.ts.map +0 -1
  388. package/dist/cjs/mdns/MdnsBroadcaster.js +0 -365
  389. package/dist/cjs/mdns/MdnsBroadcaster.js.map +0 -6
  390. package/dist/cjs/mdns/MdnsInstanceBroadcaster.d.ts +0 -28
  391. package/dist/cjs/mdns/MdnsInstanceBroadcaster.d.ts.map +0 -1
  392. package/dist/cjs/mdns/MdnsInstanceBroadcaster.js +0 -87
  393. package/dist/cjs/mdns/MdnsInstanceBroadcaster.js.map +0 -6
  394. package/dist/cjs/mdns/MdnsScanner.d.ts.map +0 -1
  395. package/dist/cjs/mdns/MdnsScanner.js.map +0 -6
  396. package/dist/esm/common/InstanceBroadcaster.d.ts.map +0 -1
  397. package/dist/esm/mdns/MdnsBroadcaster.d.ts +0 -34
  398. package/dist/esm/mdns/MdnsBroadcaster.d.ts.map +0 -1
  399. package/dist/esm/mdns/MdnsBroadcaster.js +0 -378
  400. package/dist/esm/mdns/MdnsBroadcaster.js.map +0 -6
  401. package/dist/esm/mdns/MdnsInstanceBroadcaster.d.ts +0 -28
  402. package/dist/esm/mdns/MdnsInstanceBroadcaster.d.ts.map +0 -1
  403. package/dist/esm/mdns/MdnsInstanceBroadcaster.js +0 -67
  404. package/dist/esm/mdns/MdnsInstanceBroadcaster.js.map +0 -6
  405. package/dist/esm/mdns/MdnsScanner.d.ts.map +0 -1
  406. package/dist/esm/mdns/MdnsScanner.js.map +0 -6
  407. package/src/mdns/MdnsBroadcaster.ts +0 -451
  408. package/src/mdns/MdnsInstanceBroadcaster.ts +0 -88
@@ -3,29 +3,56 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ const MDNS_BROADCAST_IPV4 = "224.0.0.251";
7
+ const MDNS_BROADCAST_IPV6 = "ff02::fb";
8
+ const MDNS_BROADCAST_PORT = 5353;
6
9
  const SERVICE_DISCOVERY_QNAME = "_services._dns-sd._udp.local";
7
10
  const MATTER_COMMISSION_SERVICE_QNAME = "_matterc._udp.local";
8
11
  const MATTER_COMMISSIONER_SERVICE_QNAME = "_matterd._udp.local";
9
12
  const MATTER_SERVICE_QNAME = "_matter._tcp.local";
13
+ const DEFAULT_PAIRING_HINT = {
14
+ powerCycle: true,
15
+ deviceManual: true
16
+ };
17
+ const PAIRING_HINTS_REQUIRING_INSTRUCTION = Array(
18
+ "customInstruction",
19
+ "pressRestButtonForNumberOfSeconds",
20
+ "pressResetButtonUntilLightBlinks",
21
+ "pressResetButtonForNumberOfSecondsWithApplicationOfPower",
22
+ "pressResetButtonUntilLightBlinksWithApplicationOfPower",
23
+ "pressResetButtonNumberOfTimes",
24
+ "pressSetupButtonForNumberOfSeconds",
25
+ "pressSetupButtonUntilLightBlinks",
26
+ "pressSetupButtonForNumberOfSecondsWithApplicationOfPower",
27
+ "pressSetupButtonUntilLightBlinksWithApplicationOfPower",
28
+ "pressSetupButtonNumberOfTimes"
29
+ );
10
30
  const getFabricQname = (operationalIdString) => `_I${operationalIdString}._sub.${MATTER_SERVICE_QNAME}`;
11
- const getDeviceMatterQname = (operationalIdString, nodeIdString) => `${operationalIdString}-${nodeIdString}.${MATTER_SERVICE_QNAME}`;
31
+ const getOperationalDeviceQname = (operationalIdString, nodeIdString) => `${operationalIdString}-${nodeIdString}.${MATTER_SERVICE_QNAME}`;
12
32
  const getVendorQname = (vendorId) => `_V${vendorId}._sub.${MATTER_COMMISSION_SERVICE_QNAME}`;
13
33
  const getDeviceTypeQname = (deviceType) => `_T${deviceType}._sub.${MATTER_COMMISSION_SERVICE_QNAME}`;
14
34
  const getShortDiscriminatorQname = (shortDiscriminator) => `_S${shortDiscriminator}._sub.${MATTER_COMMISSION_SERVICE_QNAME}`;
15
35
  const getLongDiscriminatorQname = (longDiscriminator) => `_L${longDiscriminator}._sub.${MATTER_COMMISSION_SERVICE_QNAME}`;
16
36
  const getCommissioningModeQname = () => `_CM._sub.${MATTER_COMMISSION_SERVICE_QNAME}`;
17
- const getDeviceInstanceQname = (instanceId) => `${instanceId}.${MATTER_COMMISSION_SERVICE_QNAME}`;
37
+ const getCommissionableDeviceQname = (instanceId) => `${instanceId}.${MATTER_COMMISSION_SERVICE_QNAME}`;
38
+ const getCommissionerDeviceQname = (instanceId) => `${instanceId}.${MATTER_COMMISSIONER_SERVICE_QNAME}`;
18
39
  export {
40
+ DEFAULT_PAIRING_HINT,
19
41
  MATTER_COMMISSIONER_SERVICE_QNAME,
20
42
  MATTER_COMMISSION_SERVICE_QNAME,
21
43
  MATTER_SERVICE_QNAME,
44
+ MDNS_BROADCAST_IPV4,
45
+ MDNS_BROADCAST_IPV6,
46
+ MDNS_BROADCAST_PORT,
47
+ PAIRING_HINTS_REQUIRING_INSTRUCTION,
22
48
  SERVICE_DISCOVERY_QNAME,
49
+ getCommissionableDeviceQname,
50
+ getCommissionerDeviceQname,
23
51
  getCommissioningModeQname,
24
- getDeviceInstanceQname,
25
- getDeviceMatterQname,
26
52
  getDeviceTypeQname,
27
53
  getFabricQname,
28
54
  getLongDiscriminatorQname,
55
+ getOperationalDeviceQname,
29
56
  getShortDiscriminatorQname,
30
57
  getVendorQname
31
58
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/mdns/MdnsConsts.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQO,MAAM,0BAA0B;AAChC,MAAM,kCAAkC;AACxC,MAAM,oCAAoC;AAC1C,MAAM,uBAAuB;AAE7B,MAAM,iBAAiB,CAAC,wBAAgC,KAAK,mBAAmB,SAAS,oBAAoB;AAC7G,MAAM,uBAAuB,CAAC,qBAA6B,iBAC9D,GAAG,mBAAmB,IAAI,YAAY,IAAI,oBAAoB;AAC3D,MAAM,iBAAiB,CAAC,aAAuB,KAAK,QAAQ,SAAS,+BAA+B;AACpG,MAAM,qBAAqB,CAAC,eAAuB,KAAK,UAAU,SAAS,+BAA+B;AAC1G,MAAM,6BAA6B,CAAC,uBACvC,KAAK,kBAAkB,SAAS,+BAA+B;AAC5D,MAAM,4BAA4B,CAAC,sBACtC,KAAK,iBAAiB,SAAS,+BAA+B;AAC3D,MAAM,4BAA4B,MAAM,YAAY,+BAA+B;AACnF,MAAM,yBAAyB,CAAC,eAAuB,GAAG,UAAU,IAAI,+BAA+B;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AASO,MAAM,sBAAsB;AAC5B,MAAM,sBAAsB;AAC5B,MAAM,sBAAsB;AAE5B,MAAM,0BAA0B;AAChC,MAAM,kCAAkC;AACxC,MAAM,oCAAoC;AAC1C,MAAM,uBAAuB;AAE7B,MAAM,uBAAuB;AAAA,EAChC,YAAY;AAAA,EACZ,cAAc;AAClB;AAEO,MAAM,sCAAsC;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AAEO,MAAM,iBAAiB,CAAC,wBAAgC,KAAK,mBAAmB,SAAS,oBAAoB;AAC7G,MAAM,4BAA4B,CAAC,qBAA6B,iBACnE,GAAG,mBAAmB,IAAI,YAAY,IAAI,oBAAoB;AAC3D,MAAM,iBAAiB,CAAC,aAAuB,KAAK,QAAQ,SAAS,+BAA+B;AACpG,MAAM,qBAAqB,CAAC,eAAuB,KAAK,UAAU,SAAS,+BAA+B;AAC1G,MAAM,6BAA6B,CAAC,uBACvC,KAAK,kBAAkB,SAAS,+BAA+B;AAC5D,MAAM,4BAA4B,CAAC,sBACtC,KAAK,iBAAiB,SAAS,+BAA+B;AAC3D,MAAM,4BAA4B,MAAM,YAAY,+BAA+B;AACnF,MAAM,+BAA+B,CAAC,eAAuB,GAAG,UAAU,IAAI,+BAA+B;AAC7G,MAAM,6BAA6B,CAAC,eAAuB,GAAG,UAAU,IAAI,iCAAiC;",
5
5
  "names": []
6
6
  }
@@ -3,31 +3,22 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { DnsRecord, Network, UdpMulticastServer } from "#general";
7
- export declare const MDNS_BROADCAST_IPV4 = "224.0.0.251";
8
- export declare const MDNS_BROADCAST_IPV6 = "ff02::fb";
9
- export declare const MDNS_BROADCAST_PORT = 5353;
10
- export declare enum AnnouncementType {
11
- Commissionable = 0,
12
- Operative = 1
13
- }
6
+ import { DnsRecord, NetworkInterfaceDetails } from "#general";
7
+ import { MdnsSocket } from "./MdnsSocket.js";
14
8
  export declare class MdnsServer {
15
9
  #private;
16
- static create(network: Network, options?: {
17
- enableIpv4?: boolean;
18
- netInterface?: string;
19
- }): Promise<MdnsServer>;
20
- constructor(network: Network, multicastServer: UdpMulticastServer, netInterface: string | undefined);
10
+ constructor(socket: MdnsSocket);
11
+ get network(): import("#general").Network;
12
+ get supportsIpv4(): boolean;
21
13
  buildDnsRecordKey(record: DnsRecord<any>, netInterface?: string, unicastTarget?: string): string;
22
- buildTypePortKey(type: AnnouncementType, port: number): string;
23
- isKeyForPort(key: string, port: number): boolean;
24
- announce(announcedNetPort?: number): Promise<void>;
25
- expireAnnouncements(options?: {
26
- announcedNetPort?: number;
27
- type?: AnnouncementType;
28
- forInstance?: string;
29
- }): Promise<void>;
30
- setRecordsGenerator(hostPort: number, type: AnnouncementType, generator: (netInterface: string) => Promise<DnsRecord<any>[]>): Promise<void>;
14
+ broadcast(...services: string[]): Promise<void>;
15
+ expireAnnouncements(...services: string[]): Promise<void>;
16
+ setRecordsGenerator(service: string, generator: MdnsServer.RecordGenerator): Promise<void>;
31
17
  close(): Promise<void>;
32
18
  }
19
+ export declare namespace MdnsServer {
20
+ interface RecordGenerator {
21
+ (intf: string, addrs: NetworkInterfaceDetails): DnsRecord[];
22
+ }
23
+ }
33
24
  //# sourceMappingURL=MdnsServer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MdnsServer.d.ts","sourceRoot":"","sources":["../../../src/mdns/MdnsServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAOH,SAAS,EAMT,OAAO,EAEP,kBAAkB,EACrB,MAAM,UAAU,CAAC;AAIlB,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AACjD,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,oBAAY,gBAAgB;IACxB,cAAc,IAAA;IACd,SAAS,IAAA;CACZ;AAED,qBAAa,UAAU;;WACN,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE;gBAkCnF,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS;IASnG,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;IAIvF,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM;IAIrD,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAuKhC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM;IAgBlC,mBAAmB,CAAC,OAAO,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;IAsD1G,mBAAmB,CACrB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,gBAAgB,EACtB,SAAS,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;IAQ5D,KAAK;CAkBd"}
1
+ {"version":3,"file":"MdnsServer.d.ts","sourceRoot":"","sources":["../../../src/mdns/MdnsServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAGH,SAAS,EAKT,uBAAuB,EAG1B,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI7C,qBAAa,UAAU;;gBAwBP,MAAM,EAAE,UAAU;IAK9B,IAAI,OAAO,+BAEV;IAED,IAAI,YAAY,YAEf;IAED,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;IAgGjF,SAAS,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE;IAgB/B,mBAAmB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE;IAyBzC,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,eAAe;IAW1E,KAAK;CAkBd;AAED,yBAAiB,UAAU,CAAC;IACxB,UAAiB,eAAe;QAC5B,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,GAAG,SAAS,EAAE,CAAC;KAC/D;CACJ"}
@@ -5,82 +5,52 @@
5
5
  */
6
6
  import {
7
7
  AsyncCache,
8
- Diagnostic,
9
- DnsCodec,
10
8
  DnsMessageType,
11
9
  DnsRecordType,
12
10
  isDeepEqual,
13
11
  Logger,
14
12
  MatterAggregateError,
15
- MAX_MDNS_MESSAGE_SIZE,
16
- Time,
17
- UdpMulticastServer
13
+ ObserverGroup,
14
+ Time
18
15
  } from "#general";
19
16
  const logger = Logger.get("MdnsServer");
20
- const MDNS_BROADCAST_IPV4 = "224.0.0.251";
21
- const MDNS_BROADCAST_IPV6 = "ff02::fb";
22
- const MDNS_BROADCAST_PORT = 5353;
23
- var AnnouncementType = /* @__PURE__ */ ((AnnouncementType2) => {
24
- AnnouncementType2[AnnouncementType2["Commissionable"] = 0] = "Commissionable";
25
- AnnouncementType2[AnnouncementType2["Operative"] = 1] = "Operative";
26
- return AnnouncementType2;
27
- })(AnnouncementType || {});
28
17
  class MdnsServer {
29
- static async create(network, options) {
30
- const { enableIpv4 = true, netInterface } = options ?? {};
31
- return new MdnsServer(
32
- network,
33
- await UdpMulticastServer.create({
34
- network,
35
- netInterface,
36
- broadcastAddressIpv4: enableIpv4 ? MDNS_BROADCAST_IPV4 : void 0,
37
- broadcastAddressIpv6: MDNS_BROADCAST_IPV6,
38
- listeningPort: MDNS_BROADCAST_PORT
39
- }),
40
- netInterface
41
- );
42
- }
18
+ #observers = new ObserverGroup();
43
19
  #recordsGenerator = /* @__PURE__ */ new Map();
44
20
  #records = new AsyncCache(
45
21
  "MDNS discovery",
46
22
  async (multicastInterface) => {
47
- const portTypeMap = /* @__PURE__ */ new Map();
48
- for (const [announceTypePort, generator] of this.#recordsGenerator) {
49
- portTypeMap.set(announceTypePort, await generator(multicastInterface));
23
+ const serviceRecords = /* @__PURE__ */ new Map();
24
+ const addrs = await this.network.getIpMac(multicastInterface);
25
+ if (addrs === void 0) {
26
+ return serviceRecords;
27
+ }
28
+ for (const [service, generator] of this.#recordsGenerator) {
29
+ serviceRecords.set(service, generator(multicastInterface, addrs));
50
30
  }
51
- return portTypeMap;
31
+ return serviceRecords;
52
32
  },
53
33
  15 * 60 * 1e3
54
34
  );
55
35
  #recordLastSentAsMulticastAnswer = /* @__PURE__ */ new Map();
56
- #recordLastSentAsUnicastAnswer = /* @__PURE__ */ new Map();
57
- #network;
58
- #multicastServer;
59
- #netInterface;
60
- constructor(network, multicastServer, netInterface) {
61
- multicastServer.onMessage(
62
- (message, remoteIp, netInterface2) => void this.#handleDnsMessage(message, remoteIp, netInterface2)
63
- );
64
- this.#network = network;
65
- this.#multicastServer = multicastServer;
66
- this.#netInterface = netInterface;
36
+ #socket;
37
+ constructor(socket) {
38
+ this.#socket = socket;
39
+ this.#observers.on(this.#socket.receipt, this.#handleMessage.bind(this));
67
40
  }
68
- buildDnsRecordKey(record, netInterface, unicastTarget) {
69
- return `${record.name}-${record.recordClass}-${record.recordType}-${netInterface}-${unicastTarget}`;
41
+ get network() {
42
+ return this.#socket.network;
70
43
  }
71
- buildTypePortKey(type, port) {
72
- return `${port}-${type}`;
44
+ get supportsIpv4() {
45
+ return this.#socket.supportsIpv4;
73
46
  }
74
- isKeyForPort(key, port) {
75
- return key.startsWith(`${port}-`);
47
+ buildDnsRecordKey(record, netInterface, unicastTarget) {
48
+ return `${record.name}-${record.recordClass}-${record.recordType}-${netInterface}-${unicastTarget}`;
76
49
  }
77
- async #handleDnsMessage(messageBytes, remoteIp, netInterface) {
78
- if (netInterface === void 0) return;
79
- const records = await this.#records.get(netInterface);
50
+ async #handleMessage(message) {
51
+ const records = await this.#records.get(message.sourceIntf);
80
52
  if (records.size === 0) return;
81
- const message = DnsCodec.decode(messageBytes);
82
- if (message === void 0) return;
83
- const { transactionId, messageType, queries, answers: knownAnswers } = message;
53
+ const { sourceIntf, sourceIp, transactionId, messageType, queries, answers: knownAnswers } = message;
84
54
  if (messageType !== DnsMessageType.Query && messageType !== DnsMessageType.TruncatedQuery) return;
85
55
  if (queries.length === 0) return;
86
56
  for (const portRecords of records.values()) {
@@ -106,42 +76,33 @@ class MdnsServer {
106
76
  const now = Time.nowMs();
107
77
  let uniCastResponse = queries.filter((query) => !query.uniCastResponse).length === 0;
108
78
  const answersTimeSinceLastSent = answers.map((answer) => ({
109
- timeSinceLastMultiCast: now - (this.#recordLastSentAsMulticastAnswer.get(this.buildDnsRecordKey(answer, netInterface)) ?? 0),
110
- timeSinceLastUniCast: now - (this.#recordLastSentAsUnicastAnswer.get(this.buildDnsRecordKey(answer, netInterface, remoteIp)) ?? 0),
111
- ttl: answer.ttl
79
+ timeSinceLastMultiCast: now - (this.#recordLastSentAsMulticastAnswer.get(this.buildDnsRecordKey(answer, sourceIntf)) ?? 0),
80
+ ttl: answer.ttl * 1e3
112
81
  }));
113
- if (uniCastResponse && answersTimeSinceLastSent.some(
114
- ({ timeSinceLastMultiCast, ttl }) => timeSinceLastMultiCast > ttl / 4 * 1e3
115
- )) {
82
+ if (uniCastResponse && answersTimeSinceLastSent.some(({ timeSinceLastMultiCast, ttl }) => timeSinceLastMultiCast > ttl / 4)) {
116
83
  uniCastResponse = false;
117
84
  }
118
85
  if (!uniCastResponse) {
119
- answers = answers.filter((_, index) => answersTimeSinceLastSent[index].timeSinceLastMultiCast > 1e3);
120
- if (answers.length === 0) continue;
121
- answers.forEach(
122
- (answer) => this.#recordLastSentAsMulticastAnswer.set(this.buildDnsRecordKey(answer, netInterface), now)
86
+ answers = answers.filter(
87
+ (_, index) => answersTimeSinceLastSent[index].timeSinceLastMultiCast >= 900
88
+ // The last time sent as multicast was more than 900 ms ago
123
89
  );
124
- } else {
125
- answers = answers.filter((_, index) => answersTimeSinceLastSent[index].timeSinceLastUniCast > 1e3);
126
90
  if (answers.length === 0) continue;
127
91
  answers.forEach(
128
- (answer) => this.#recordLastSentAsUnicastAnswer.set(
129
- this.buildDnsRecordKey(answer, netInterface, remoteIp),
130
- now
131
- )
92
+ (answer) => this.#recordLastSentAsMulticastAnswer.set(this.buildDnsRecordKey(answer, sourceIntf), now)
132
93
  );
133
94
  }
134
- this.#sendRecords(
95
+ this.#socket.send(
135
96
  {
136
97
  messageType: DnsMessageType.Response,
137
98
  transactionId,
138
99
  answers,
139
100
  additionalRecords
140
101
  },
141
- netInterface,
142
- uniCastResponse ? remoteIp : void 0
102
+ sourceIntf,
103
+ uniCastResponse ? sourceIp : void 0
143
104
  ).catch((error) => {
144
- logger.warn(`Failed to send mDNS response to ${remoteIp}`, error);
105
+ logger.warn(`Failed to send mDNS response to ${sourceIp}`, error);
145
106
  });
146
107
  await Time.sleep("MDNS delay", 20 + Math.floor(Math.random() * 100));
147
108
  }
@@ -149,7 +110,7 @@ class MdnsServer {
149
110
  async #announceRecordsForInterface(netInterface, records) {
150
111
  const answers = records.filter(({ recordType }) => recordType === DnsRecordType.PTR);
151
112
  const additionalRecords = records.filter(({ recordType }) => recordType !== DnsRecordType.PTR);
152
- await this.#sendRecords(
113
+ await this.#socket.send(
153
114
  {
154
115
  messageType: DnsMessageType.Response,
155
116
  answers,
@@ -158,115 +119,58 @@ class MdnsServer {
158
119
  netInterface
159
120
  );
160
121
  }
161
- async #sendRecords(dnsMessageData, netInterface, unicastTarget) {
162
- const { answers = [], additionalRecords = [] } = dnsMessageData;
163
- const answersToSend = [...answers];
164
- const additionalRecordsToSend = [...additionalRecords];
165
- const dnsMessageDataToSend = {
166
- ...dnsMessageData,
167
- answers: [],
168
- additionalRecords: []
169
- };
170
- const emptyDnsMessage = DnsCodec.encode(dnsMessageDataToSend);
171
- let dnsMessageSize = emptyDnsMessage.length;
172
- while (true) {
173
- if (answersToSend.length > 0) {
174
- const nextAnswer = answersToSend.shift();
175
- if (nextAnswer === void 0) {
176
- break;
177
- }
178
- const nextAnswerEncoded = DnsCodec.encodeRecord(nextAnswer);
179
- dnsMessageSize += nextAnswerEncoded.length;
180
- if (dnsMessageSize > MAX_MDNS_MESSAGE_SIZE) {
181
- await this.#multicastServer.send(
182
- DnsCodec.encode(dnsMessageDataToSend),
183
- netInterface,
184
- unicastTarget
185
- );
186
- dnsMessageDataToSend.answers.length = 0;
187
- dnsMessageSize = emptyDnsMessage.length + nextAnswerEncoded.length;
188
- }
189
- dnsMessageDataToSend.answers.push(nextAnswerEncoded);
190
- } else {
191
- break;
192
- }
193
- }
194
- for (const additionalRecord of additionalRecordsToSend) {
195
- const additionalRecordEncoded = DnsCodec.encodeRecord(additionalRecord);
196
- dnsMessageSize += additionalRecordEncoded.length;
197
- if (dnsMessageSize > MAX_MDNS_MESSAGE_SIZE) {
198
- break;
199
- }
200
- dnsMessageDataToSend.additionalRecords.push(additionalRecordEncoded);
201
- }
202
- await this.#multicastServer.send(DnsCodec.encode(dnsMessageDataToSend), netInterface, unicastTarget);
203
- }
204
- async announce(announcedNetPort) {
122
+ async broadcast(...services) {
205
123
  await MatterAggregateError.allSettled(
206
124
  (await this.#getMulticastInterfacesForAnnounce()).map(async ({ name: netInterface }) => {
207
125
  const records = await this.#records.get(netInterface);
208
- for (const [portType, portTypeRecords] of records) {
209
- if (announcedNetPort !== void 0 && !this.isKeyForPort(portType, announcedNetPort)) continue;
210
- await this.#announceRecordsForInterface(netInterface, portTypeRecords);
126
+ for (const [service, serviceRecords] of records) {
127
+ if (services.length && !services.includes(service)) continue;
128
+ await this.#announceRecordsForInterface(netInterface, serviceRecords);
211
129
  await Time.sleep("MDNS delay", 20 + Math.floor(Math.random() * 100));
212
130
  }
213
131
  }),
214
- "Error happened when announcing MDNS messages"
132
+ "Error announcing MDNS messages"
215
133
  ).catch((error) => logger.error(error));
216
134
  }
217
- async expireAnnouncements(options) {
218
- const { announcedNetPort, type, forInstance: instanceToExpire } = options ?? {};
135
+ async expireAnnouncements(...services) {
219
136
  await MatterAggregateError.allSettled(
220
137
  this.#records.keys().map(async (netInterface) => {
221
138
  const records = await this.#records.get(netInterface);
222
- for (const [portType, portTypeRecords] of records) {
223
- if (announcedNetPort !== void 0 && !this.isKeyForPort(portType, announcedNetPort)) continue;
224
- if (announcedNetPort !== void 0 && type !== void 0 && portType !== this.buildTypePortKey(type, announcedNetPort))
225
- continue;
226
- const recordsToProcess = instanceToExpire !== void 0 ? portTypeRecords.filter(
227
- ({ forInstance }) => forInstance !== void 0 && instanceToExpire === forInstance
228
- ) : portTypeRecords;
139
+ for (const [service, serviceRecords] of records) {
140
+ if (services.length && !services.includes(service)) continue;
229
141
  const instanceSet = /* @__PURE__ */ new Set();
230
- recordsToProcess.forEach((record) => {
142
+ serviceRecords.forEach((record) => {
231
143
  record.ttl = 0;
232
144
  if (record.recordType === DnsRecordType.TXT) {
233
145
  instanceSet.add(record.name);
234
146
  }
235
147
  });
236
- const instanceName = instanceSet.size > 1 ? "multiple" : instanceSet.size === 1 ? Array.from(instanceSet.values())[0] : "";
237
- logger.debug(
238
- `Expiring records`,
239
- Diagnostic.dict({
240
- instanceName,
241
- port: announcedNetPort,
242
- netInterface
243
- })
244
- );
245
- await this.#announceRecordsForInterface(netInterface, portTypeRecords);
246
- this.#recordsGenerator.delete(portType);
148
+ await this.#announceRecordsForInterface(netInterface, serviceRecords);
149
+ this.#recordsGenerator.delete(service);
247
150
  await Time.sleep("MDNS delay", 20 + Math.floor(Math.random() * 100));
248
151
  }
249
152
  }),
250
153
  "Error happened when expiring MDNS announcements"
251
154
  ).catch((error) => logger.error(error));
155
+ await this.#resetServices();
156
+ }
157
+ async setRecordsGenerator(service, generator) {
252
158
  await this.#records.clear();
253
159
  this.#recordLastSentAsMulticastAnswer.clear();
254
- this.#recordLastSentAsUnicastAnswer.clear();
160
+ this.#recordsGenerator.set(service, generator);
255
161
  }
256
- async setRecordsGenerator(hostPort, type, generator) {
162
+ async #resetServices() {
257
163
  await this.#records.clear();
258
164
  this.#recordLastSentAsMulticastAnswer.clear();
259
- this.#recordLastSentAsUnicastAnswer.clear();
260
- this.#recordsGenerator.set(this.buildTypePortKey(type, hostPort), generator);
261
165
  }
262
166
  async close() {
167
+ this.#observers.close();
263
168
  await this.#records.close();
264
169
  this.#recordLastSentAsMulticastAnswer.clear();
265
- this.#recordLastSentAsUnicastAnswer.clear();
266
- await this.#multicastServer.close();
267
170
  }
268
171
  #getMulticastInterfacesForAnnounce() {
269
- return this.#netInterface === void 0 ? this.#network.getNetInterfaces() : [{ name: this.#netInterface }];
172
+ const { netInterface } = this.#socket;
173
+ return netInterface === void 0 ? this.network.getNetInterfaces() : [{ name: netInterface }];
270
174
  }
271
175
  #queryRecords({ name, recordType }, records) {
272
176
  if (recordType === DnsRecordType.ANY) {
@@ -277,10 +181,6 @@ class MdnsServer {
277
181
  }
278
182
  }
279
183
  export {
280
- AnnouncementType,
281
- MDNS_BROADCAST_IPV4,
282
- MDNS_BROADCAST_IPV6,
283
- MDNS_BROADCAST_PORT,
284
184
  MdnsServer
285
185
  };
286
186
  //# sourceMappingURL=MdnsServer.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/mdns/MdnsServer.ts"],
4
- "mappings": "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",
5
- "names": ["AnnouncementType", "netInterface"]
4
+ "mappings": "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",
5
+ "names": []
6
6
  }
@@ -4,17 +4,16 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { Construction, Diagnostic, Environment, Environmental } from "#general";
7
- import { MdnsBroadcaster } from "../mdns/MdnsBroadcaster.js";
8
- import { MdnsScanner } from "../mdns/MdnsScanner.js";
7
+ import { MdnsServer } from "../mdns/MdnsServer.js";
8
+ import { MdnsClient } from "./MdnsClient.js";
9
9
  export declare class MdnsService {
10
10
  #private;
11
11
  readonly limitedToNetInterface?: string;
12
12
  get enableIpv4(): boolean;
13
13
  constructor(environment: Environment, options?: MdnsService.Options);
14
14
  static [Environmental.create](environment: Environment): MdnsService;
15
- createInstanceBroadcaster(port: number): import("./MdnsInstanceBroadcaster.js").MdnsInstanceBroadcaster;
16
- get broadcaster(): MdnsBroadcaster;
17
- get scanner(): MdnsScanner;
15
+ get server(): MdnsServer;
16
+ get client(): MdnsClient;
18
17
  get [Diagnostic.value](): string;
19
18
  get construction(): Construction<MdnsService>;
20
19
  [Symbol.asyncDispose](): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"MdnsService.d.ts","sourceRoot":"","sources":["../../../src/mdns/MdnsService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,YAAY,EAEZ,UAAU,EACV,WAAW,EACX,aAAa,EAMhB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAIrD,qBAAa,WAAW;;IAMpB,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAExC,IAAI,UAAU,YAEb;gBAEW,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,OAAO;IA0BnE,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,WAAW;IAItD,yBAAyB,CAAC,IAAI,EAAE,MAAM;IAItC,IAAI,WAAW,oBAEd;IAED,IAAI,OAAO,gBAEV;IAED,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,WAErB;IAED,IAAI,YAAY,8BAEf;IAEK,CAAC,MAAM,CAAC,YAAY,CAAC;CAoB9B;AAED,yBAAiB,WAAW,CAAC;IACzB,UAAiB,OAAO;QACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;KAClB;CACJ"}
1
+ {"version":3,"file":"MdnsService.d.ts","sourceRoot":"","sources":["../../../src/mdns/MdnsService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,YAAY,EACZ,UAAU,EACV,WAAW,EACX,aAAa,EAMhB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAK7C,qBAAa,WAAW;;IAOpB,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAExC,IAAI,UAAU,YAEb;gBAEW,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,OAAO;IAsBnE,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,WAAW;IAItD,IAAI,MAAM,eAET;IAED,IAAI,MAAM,eAET;IAED,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,WAErB;IAED,IAAI,YAAY,8BAEf;IAEK,CAAC,MAAM,CAAC,YAAY,CAAC;CAwB9B;AAED,yBAAiB,WAAW,CAAC;IACzB,UAAiB,OAAO;QACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;KAClB;CACJ"}
@@ -5,7 +5,6 @@
5
5
  */
6
6
  import {
7
7
  Construction,
8
- Crypto,
9
8
  Diagnostic,
10
9
  Environmental,
11
10
  Logger,
@@ -14,12 +13,14 @@ import {
14
13
  Network,
15
14
  VariableService
16
15
  } from "#general";
17
- import { MdnsBroadcaster } from "../mdns/MdnsBroadcaster.js";
18
- import { MdnsScanner } from "../mdns/MdnsScanner.js";
16
+ import { MdnsServer } from "../mdns/MdnsServer.js";
17
+ import { MdnsClient } from "./MdnsClient.js";
18
+ import { MdnsSocket } from "./MdnsSocket.js";
19
19
  const logger = Logger.get("MDNS");
20
20
  class MdnsService {
21
- #broadcaster;
22
- #scanner;
21
+ #socket;
22
+ #server;
23
+ #client;
23
24
  #env;
24
25
  #construction;
25
26
  #enableIpv4;
@@ -29,6 +30,7 @@ class MdnsService {
29
30
  }
30
31
  constructor(environment, options) {
31
32
  this.#env = environment;
33
+ const network = environment.get(Network);
32
34
  const rootEnvironment = environment.root;
33
35
  rootEnvironment.set(MdnsService, this);
34
36
  rootEnvironment.runtime.add(this);
@@ -36,29 +38,22 @@ class MdnsService {
36
38
  this.#enableIpv4 = vars.boolean("mdns.ipv4") ?? options?.ipv4 ?? true;
37
39
  this.limitedToNetInterface = vars.get("mdns.networkInterface", options?.networkInterface);
38
40
  this.#construction = Construction(this, async () => {
39
- const crypto = environment.get(Crypto);
40
- const network = environment.get(Network);
41
- this.#broadcaster = await MdnsBroadcaster.create(crypto, network, {
42
- enableIpv4: this.enableIpv4,
43
- multicastInterface: this.limitedToNetInterface
44
- });
45
- this.#scanner = await MdnsScanner.create(network, {
41
+ this.#socket = await MdnsSocket.create(network, {
46
42
  enableIpv4: this.enableIpv4,
47
43
  netInterface: this.limitedToNetInterface
48
44
  });
45
+ this.#server = new MdnsServer(this.#socket);
46
+ this.#client = new MdnsClient(this.#socket);
49
47
  });
50
48
  }
51
49
  static [Environmental.create](environment) {
52
50
  return new this(environment);
53
51
  }
54
- createInstanceBroadcaster(port) {
55
- return this.broadcaster.createInstanceBroadcaster(port);
56
- }
57
- get broadcaster() {
58
- return this.#construction.assert("MDNS service", this.#broadcaster);
52
+ get server() {
53
+ return this.#construction.assert("MDNS service", this.#server);
59
54
  }
60
- get scanner() {
61
- return this.#construction.assert("MDNS service", this.#scanner);
55
+ get client() {
56
+ return this.#construction.assert("MDNS service", this.#client);
62
57
  }
63
58
  get [Diagnostic.value]() {
64
59
  return "MDNS";
@@ -70,20 +65,23 @@ class MdnsService {
70
65
  this.#env.delete(MdnsService, this);
71
66
  await this.#construction.close(async () => {
72
67
  const broadcasterDisposal = MaybePromise.then(
73
- this.#broadcaster?.close(),
68
+ this.#server?.close(),
74
69
  void 0,
75
- (e) => logger.error("Error disposing of MDNS broadcaster", e)
70
+ (e) => logger.error("Error disposing of MDNS server", e)
76
71
  );
77
72
  const scannerDisposal = MaybePromise.then(
78
- this.#scanner?.close(),
73
+ this.#client?.close(),
79
74
  void 0,
80
- (e) => logger.error("Error disposing of MDNS scanner", e)
75
+ (e) => logger.error("Error disposing of MDNS client", e)
81
76
  );
82
77
  await MatterAggregateError.allSettled(
83
78
  [broadcasterDisposal, scannerDisposal],
84
79
  "Error disposing MDNS services"
85
80
  ).catch((error) => logger.error(error));
86
- this.#broadcaster = this.#scanner = void 0;
81
+ if (this.#socket) {
82
+ await this.#socket?.close();
83
+ }
84
+ this.#server = this.#client = void 0;
87
85
  });
88
86
  }
89
87
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/mdns/MdnsService.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,uBAAuB;AAChC,SAAS,mBAAmB;AAE5B,MAAM,SAAS,OAAO,IAAI,MAAM;AAEzB,MAAM,YAAY;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACS;AAAA,EACA;AAAA,EACA;AAAA,EAET,IAAI,aAAa;AACb,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,YAAY,aAA0B,SAA+B;AACjE,SAAK,OAAO;AACZ,UAAM,kBAAkB,YAAY;AACpC,oBAAgB,IAAI,aAAa,IAAI;AACrC,oBAAgB,QAAQ,IAAI,IAAI;AAEhC,UAAM,OAAO,YAAY,IAAI,eAAe;AAC5C,SAAK,cAAc,KAAK,QAAQ,WAAW,KAAK,SAAS,QAAQ;AACjE,SAAK,wBAAwB,KAAK,IAAI,yBAAyB,SAAS,gBAAgB;AAExF,SAAK,gBAAgB,aAAa,MAAM,YAAY;AAChD,YAAM,SAAS,YAAY,IAAI,MAAM;AACrC,YAAM,UAAU,YAAY,IAAI,OAAO;AAEvC,WAAK,eAAe,MAAM,gBAAgB,OAAO,QAAQ,SAAS;AAAA,QAC9D,YAAY,KAAK;AAAA,QACjB,oBAAoB,KAAK;AAAA,MAC7B,CAAC;AAED,WAAK,WAAW,MAAM,YAAY,OAAO,SAAS;AAAA,QAC9C,YAAY,KAAK;AAAA,QACjB,cAAc,KAAK;AAAA,MACvB,CAAC;AAAA,IACL,CAAC;AAAA,EACL;AAAA,EAEA,QAAQ,cAAc,MAAM,EAAE,aAA0B;AACpD,WAAO,IAAI,KAAK,WAAW;AAAA,EAC/B;AAAA,EAEA,0BAA0B,MAAc;AACpC,WAAO,KAAK,YAAY,0BAA0B,IAAI;AAAA,EAC1D;AAAA,EAEA,IAAI,cAAc;AACd,WAAO,KAAK,cAAc,OAAO,gBAAgB,KAAK,YAAY;AAAA,EACtE;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,KAAK,cAAc,OAAO,gBAAgB,KAAK,QAAQ;AAAA,EAClE;AAAA,EAEA,KAAK,WAAW,KAAK,IAAI;AACrB,WAAO;AAAA,EACX;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,OAAO,OAAO,YAAY,IAAI;AAC1B,SAAK,KAAK,OAAO,aAAa,IAAI;AAElC,UAAM,KAAK,cAAc,MAAM,YAAY;AACvC,YAAM,sBAAsB,aAAa;AAAA,QAAK,KAAK,cAAc,MAAM;AAAA,QAAG;AAAA,QAAW,OACjF,OAAO,MAAM,uCAAuC,CAAC;AAAA,MACzD;AAEA,YAAM,kBAAkB,aAAa;AAAA,QAAK,KAAK,UAAU,MAAM;AAAA,QAAG;AAAA,QAAW,OACzE,OAAO,MAAM,mCAAmC,CAAC;AAAA,MACrD;AAEA,YAAM,qBAAqB;AAAA,QACvB,CAAC,qBAAqB,eAAe;AAAA,QACrC;AAAA,MACJ,EAAE,MAAM,WAAS,OAAO,MAAM,KAAK,CAAC;AAEpC,WAAK,eAAe,KAAK,WAAW;AAAA,IACxC,CAAC;AAAA,EACL;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EACI;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,kBAAkB;AAC3B,SAAS,kBAAkB;AAC3B,SAAS,kBAAkB;AAE3B,MAAM,SAAS,OAAO,IAAI,MAAM;AAEzB,MAAM,YAAY;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACS;AAAA,EACA;AAAA,EACA;AAAA,EAET,IAAI,aAAa;AACb,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,YAAY,aAA0B,SAA+B;AACjE,SAAK,OAAO;AACZ,UAAM,UAAU,YAAY,IAAI,OAAO;AACvC,UAAM,kBAAkB,YAAY;AACpC,oBAAgB,IAAI,aAAa,IAAI;AACrC,oBAAgB,QAAQ,IAAI,IAAI;AAEhC,UAAM,OAAO,YAAY,IAAI,eAAe;AAC5C,SAAK,cAAc,KAAK,QAAQ,WAAW,KAAK,SAAS,QAAQ;AACjE,SAAK,wBAAwB,KAAK,IAAI,yBAAyB,SAAS,gBAAgB;AAExF,SAAK,gBAAgB,aAAa,MAAM,YAAY;AAChD,WAAK,UAAU,MAAM,WAAW,OAAO,SAAS;AAAA,QAC5C,YAAY,KAAK;AAAA,QACjB,cAAc,KAAK;AAAA,MACvB,CAAC;AAED,WAAK,UAAU,IAAI,WAAW,KAAK,OAAO;AAC1C,WAAK,UAAU,IAAI,WAAW,KAAK,OAAO;AAAA,IAC9C,CAAC;AAAA,EACL;AAAA,EAEA,QAAQ,cAAc,MAAM,EAAE,aAA0B;AACpD,WAAO,IAAI,KAAK,WAAW;AAAA,EAC/B;AAAA,EAEA,IAAI,SAAS;AACT,WAAO,KAAK,cAAc,OAAO,gBAAgB,KAAK,OAAO;AAAA,EACjE;AAAA,EAEA,IAAI,SAAS;AACT,WAAO,KAAK,cAAc,OAAO,gBAAgB,KAAK,OAAO;AAAA,EACjE;AAAA,EAEA,KAAK,WAAW,KAAK,IAAI;AACrB,WAAO;AAAA,EACX;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,OAAO,OAAO,YAAY,IAAI;AAC1B,SAAK,KAAK,OAAO,aAAa,IAAI;AAElC,UAAM,KAAK,cAAc,MAAM,YAAY;AACvC,YAAM,sBAAsB,aAAa;AAAA,QAAK,KAAK,SAAS,MAAM;AAAA,QAAG;AAAA,QAAW,OAC5E,OAAO,MAAM,kCAAkC,CAAC;AAAA,MACpD;AAEA,YAAM,kBAAkB,aAAa;AAAA,QAAK,KAAK,SAAS,MAAM;AAAA,QAAG;AAAA,QAAW,OACxE,OAAO,MAAM,kCAAkC,CAAC;AAAA,MACpD;AAEA,YAAM,qBAAqB;AAAA,QACvB,CAAC,qBAAqB,eAAe;AAAA,QACrC;AAAA,MACJ,EAAE,MAAM,WAAS,OAAO,MAAM,KAAK,CAAC;AAEpC,UAAI,KAAK,SAAS;AACd,cAAM,KAAK,SAAS,MAAM;AAAA,MAC9B;AAEA,WAAK,UAAU,KAAK,UAAU;AAAA,IAClC,CAAC;AAAA,EACL;AACJ;",
5
5
  "names": []
6
6
  }