@matter/protocol 0.16.0-alpha.0-20251203-aaf94bca8 → 0.16.0-alpha.0-20251207-37e501b18

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 (570) hide show
  1. package/dist/cjs/action/client/ClientInteraction.d.ts.map +1 -1
  2. package/dist/cjs/action/client/ClientInteraction.js +82 -34
  3. package/dist/cjs/action/client/ClientInteraction.js.map +2 -2
  4. package/dist/cjs/action/client/subscription/ClientSubscription.d.ts +10 -5
  5. package/dist/cjs/action/client/subscription/ClientSubscription.d.ts.map +1 -1
  6. package/dist/cjs/action/client/subscription/ClientSubscription.js +21 -1
  7. package/dist/cjs/action/client/subscription/ClientSubscription.js.map +2 -2
  8. package/dist/cjs/action/client/subscription/ClientSubscriptionHandler.js +2 -3
  9. package/dist/cjs/action/client/subscription/ClientSubscriptionHandler.js.map +1 -1
  10. package/dist/cjs/action/client/subscription/ClientSubscriptions.d.ts +4 -2
  11. package/dist/cjs/action/client/subscription/ClientSubscriptions.d.ts.map +1 -1
  12. package/dist/cjs/action/client/subscription/ClientSubscriptions.js +68 -8
  13. package/dist/cjs/action/client/subscription/ClientSubscriptions.js.map +1 -1
  14. package/dist/cjs/action/client/subscription/PeerSubscription.d.ts +0 -1
  15. package/dist/cjs/action/client/subscription/PeerSubscription.d.ts.map +1 -1
  16. package/dist/cjs/action/client/subscription/PeerSubscription.js +1 -2
  17. package/dist/cjs/action/client/subscription/PeerSubscription.js.map +1 -1
  18. package/dist/cjs/action/client/subscription/SustainedSubscription.d.ts +0 -2
  19. package/dist/cjs/action/client/subscription/SustainedSubscription.d.ts.map +1 -1
  20. package/dist/cjs/action/client/subscription/SustainedSubscription.js +2 -4
  21. package/dist/cjs/action/client/subscription/SustainedSubscription.js.map +1 -1
  22. package/dist/cjs/action/request/Invoke.js +2 -2
  23. package/dist/cjs/action/request/Invoke.js.map +1 -1
  24. package/dist/cjs/action/server/AttributeReadResponse.d.ts.map +1 -1
  25. package/dist/cjs/action/server/AttributeReadResponse.js +78 -25
  26. package/dist/cjs/action/server/AttributeReadResponse.js.map +1 -1
  27. package/dist/cjs/action/server/AttributeWriteResponse.d.ts.map +1 -1
  28. package/dist/cjs/action/server/AttributeWriteResponse.js +70 -17
  29. package/dist/cjs/action/server/AttributeWriteResponse.js.map +1 -1
  30. package/dist/cjs/action/server/CommandInvokeResponse.d.ts.map +1 -1
  31. package/dist/cjs/action/server/CommandInvokeResponse.js +83 -30
  32. package/dist/cjs/action/server/CommandInvokeResponse.js.map +1 -1
  33. package/dist/cjs/action/server/DataResponse.d.ts +1 -0
  34. package/dist/cjs/action/server/DataResponse.d.ts.map +1 -1
  35. package/dist/cjs/action/server/DataResponse.js +3 -0
  36. package/dist/cjs/action/server/DataResponse.js.map +1 -1
  37. package/dist/cjs/action/server/ServerInteraction.d.ts.map +1 -1
  38. package/dist/cjs/action/server/ServerInteraction.js +4 -4
  39. package/dist/cjs/action/server/ServerInteraction.js.map +1 -1
  40. package/dist/cjs/advertisement/Advertisement.d.ts.map +1 -1
  41. package/dist/cjs/advertisement/Advertisement.js +66 -14
  42. package/dist/cjs/advertisement/Advertisement.js.map +1 -1
  43. package/dist/cjs/advertisement/Advertiser.d.ts +4 -1
  44. package/dist/cjs/advertisement/Advertiser.d.ts.map +1 -1
  45. package/dist/cjs/advertisement/Advertiser.js +63 -2
  46. package/dist/cjs/advertisement/Advertiser.js.map +1 -1
  47. package/dist/cjs/advertisement/ble/BleAdvertiser.d.ts +6 -1
  48. package/dist/cjs/advertisement/ble/BleAdvertiser.d.ts.map +1 -1
  49. package/dist/cjs/advertisement/ble/BleAdvertiser.js +1 -1
  50. package/dist/cjs/advertisement/ble/BleAdvertiser.js.map +1 -1
  51. package/dist/cjs/advertisement/mdns/MdnsAdvertiser.d.ts +5 -1
  52. package/dist/cjs/advertisement/mdns/MdnsAdvertiser.d.ts.map +1 -1
  53. package/dist/cjs/advertisement/mdns/MdnsAdvertiser.js +1 -1
  54. package/dist/cjs/advertisement/mdns/MdnsAdvertiser.js.map +1 -1
  55. package/dist/cjs/certificate/kinds/definitions/asn.js +1 -1
  56. package/dist/cjs/certificate/kinds/definitions/asn.js.map +1 -1
  57. package/dist/cjs/certificate/kinds/definitions/attestation.d.ts.map +1 -1
  58. package/dist/cjs/cluster/client/AttributeClient.d.ts.map +1 -1
  59. package/dist/cjs/cluster/client/AttributeClient.js +2 -2
  60. package/dist/cjs/cluster/client/AttributeClient.js.map +1 -1
  61. package/dist/cjs/codec/MessageCodec.d.ts +8 -1
  62. package/dist/cjs/codec/MessageCodec.d.ts.map +1 -1
  63. package/dist/cjs/codec/MessageCodec.js +38 -28
  64. package/dist/cjs/codec/MessageCodec.js.map +2 -2
  65. package/dist/cjs/common/FailsafeContext.d.ts +8 -9
  66. package/dist/cjs/common/FailsafeContext.d.ts.map +1 -1
  67. package/dist/cjs/common/FailsafeContext.js +27 -33
  68. package/dist/cjs/common/FailsafeContext.js.map +1 -1
  69. package/dist/cjs/common/FailsafeTimer.d.ts +4 -3
  70. package/dist/cjs/common/FailsafeTimer.d.ts.map +1 -1
  71. package/dist/cjs/common/FailsafeTimer.js +4 -4
  72. package/dist/cjs/common/FailsafeTimer.js.map +1 -1
  73. package/dist/cjs/common/Mark.d.ts +17 -0
  74. package/dist/cjs/common/Mark.d.ts.map +1 -0
  75. package/dist/cjs/{peer/OperationalPeer.js → common/Mark.js} +19 -3
  76. package/dist/cjs/common/Mark.js.map +6 -0
  77. package/dist/cjs/common/index.d.ts +1 -0
  78. package/dist/cjs/common/index.d.ts.map +1 -1
  79. package/dist/cjs/common/index.js +1 -0
  80. package/dist/cjs/common/index.js.map +1 -1
  81. package/dist/cjs/fabric/Fabric.d.ts +16 -8
  82. package/dist/cjs/fabric/Fabric.d.ts.map +1 -1
  83. package/dist/cjs/fabric/Fabric.js +35 -18
  84. package/dist/cjs/fabric/Fabric.js.map +1 -1
  85. package/dist/cjs/fabric/FabricAuthority.d.ts +2 -2
  86. package/dist/cjs/fabric/FabricAuthority.d.ts.map +1 -1
  87. package/dist/cjs/fabric/FabricAuthority.js +3 -3
  88. package/dist/cjs/fabric/FabricAuthority.js.map +1 -1
  89. package/dist/cjs/fabric/FabricManager.d.ts +10 -14
  90. package/dist/cjs/fabric/FabricManager.d.ts.map +1 -1
  91. package/dist/cjs/fabric/FabricManager.js +44 -40
  92. package/dist/cjs/fabric/FabricManager.js.map +2 -2
  93. package/dist/cjs/index.d.ts +1 -1
  94. package/dist/cjs/index.d.ts.map +1 -1
  95. package/dist/cjs/index.js +1 -1
  96. package/dist/cjs/index.js.map +1 -1
  97. package/dist/cjs/interaction/AttributeDataEncoder.d.ts +1 -1
  98. package/dist/cjs/interaction/InteractionClient.d.ts +2 -2
  99. package/dist/cjs/interaction/InteractionClient.d.ts.map +1 -1
  100. package/dist/cjs/interaction/InteractionClient.js +39 -22
  101. package/dist/cjs/interaction/InteractionClient.js.map +1 -1
  102. package/dist/cjs/interaction/InteractionMessenger.d.ts +2 -2
  103. package/dist/cjs/interaction/InteractionMessenger.d.ts.map +1 -1
  104. package/dist/cjs/interaction/InteractionMessenger.js +35 -27
  105. package/dist/cjs/interaction/InteractionMessenger.js.map +1 -1
  106. package/dist/cjs/interaction/Subscription.d.ts +16 -37
  107. package/dist/cjs/interaction/Subscription.d.ts.map +1 -1
  108. package/dist/cjs/interaction/Subscription.js +15 -68
  109. package/dist/cjs/interaction/Subscription.js.map +2 -2
  110. package/dist/cjs/interaction/SubscriptionClient.d.ts +2 -2
  111. package/dist/cjs/interaction/SubscriptionClient.d.ts.map +1 -1
  112. package/dist/cjs/interaction/SubscriptionClient.js +2 -2
  113. package/dist/cjs/interaction/SubscriptionClient.js.map +1 -1
  114. package/dist/cjs/mdns/MdnsClient.d.ts +10 -10
  115. package/dist/cjs/mdns/MdnsClient.d.ts.map +1 -1
  116. package/dist/cjs/mdns/MdnsClient.js +165 -80
  117. package/dist/cjs/mdns/MdnsClient.js.map +1 -1
  118. package/dist/cjs/mdns/MdnsServer.d.ts +2 -2
  119. package/dist/cjs/mdns/MdnsServer.d.ts.map +1 -1
  120. package/dist/cjs/mdns/MdnsServer.js +173 -94
  121. package/dist/cjs/mdns/MdnsServer.js.map +2 -2
  122. package/dist/cjs/mdns/MdnsService.d.ts.map +1 -1
  123. package/dist/cjs/mdns/MdnsService.js +3 -2
  124. package/dist/cjs/mdns/MdnsService.js.map +1 -1
  125. package/dist/cjs/mdns/MdnsSocket.d.ts +3 -2
  126. package/dist/cjs/mdns/MdnsSocket.d.ts.map +1 -1
  127. package/dist/cjs/mdns/MdnsSocket.js +2 -1
  128. package/dist/cjs/mdns/MdnsSocket.js.map +1 -1
  129. package/dist/cjs/peer/ControllerCommissioner.d.ts +2 -2
  130. package/dist/cjs/peer/ControllerCommissioner.d.ts.map +1 -1
  131. package/dist/cjs/peer/ControllerCommissioner.js +26 -28
  132. package/dist/cjs/peer/ControllerCommissioner.js.map +1 -1
  133. package/dist/cjs/peer/ControllerDiscovery.d.ts +1 -1
  134. package/dist/cjs/peer/ControllerDiscovery.d.ts.map +1 -1
  135. package/dist/cjs/peer/ControllerDiscovery.js +3 -3
  136. package/dist/cjs/peer/ControllerDiscovery.js.map +1 -1
  137. package/dist/cjs/peer/Peer.d.ts +57 -0
  138. package/dist/cjs/peer/Peer.d.ts.map +1 -0
  139. package/dist/cjs/peer/Peer.js +182 -0
  140. package/dist/cjs/peer/Peer.js.map +6 -0
  141. package/dist/cjs/peer/PeerAddress.d.ts.map +1 -1
  142. package/dist/cjs/peer/PeerAddress.js +5 -2
  143. package/dist/cjs/peer/PeerAddress.js.map +1 -1
  144. package/dist/cjs/peer/PeerAddressStore.d.ts +3 -3
  145. package/dist/cjs/peer/PeerAddressStore.d.ts.map +1 -1
  146. package/{src/peer/OperationalPeer.ts → dist/cjs/peer/PeerDescriptor.d.ts} +14 -12
  147. package/dist/cjs/peer/PeerDescriptor.d.ts.map +1 -0
  148. package/dist/cjs/peer/PeerDescriptor.js +71 -0
  149. package/dist/cjs/peer/PeerDescriptor.js.map +6 -0
  150. package/dist/cjs/peer/PeerSet.d.ts +23 -26
  151. package/dist/cjs/peer/PeerSet.d.ts.map +1 -1
  152. package/dist/cjs/peer/PeerSet.js +173 -173
  153. package/dist/cjs/peer/PeerSet.js.map +2 -2
  154. package/dist/cjs/peer/index.d.ts +1 -1
  155. package/dist/cjs/peer/index.d.ts.map +1 -1
  156. package/dist/cjs/peer/index.js +1 -1
  157. package/dist/cjs/peer/index.js.map +1 -1
  158. package/dist/cjs/protocol/DeviceAdvertiser.js +4 -4
  159. package/dist/cjs/protocol/DeviceAdvertiser.js.map +1 -1
  160. package/dist/cjs/protocol/ExchangeManager.d.ts +6 -9
  161. package/dist/cjs/protocol/ExchangeManager.d.ts.map +1 -1
  162. package/dist/cjs/protocol/ExchangeManager.js +306 -246
  163. package/dist/cjs/protocol/ExchangeManager.js.map +2 -2
  164. package/dist/cjs/protocol/ExchangeProvider.d.ts +9 -11
  165. package/dist/cjs/protocol/ExchangeProvider.d.ts.map +1 -1
  166. package/dist/cjs/protocol/ExchangeProvider.js +79 -32
  167. package/dist/cjs/protocol/ExchangeProvider.js.map +2 -2
  168. package/dist/cjs/protocol/MessageChannel.d.ts +6 -7
  169. package/dist/cjs/protocol/MessageChannel.d.ts.map +1 -1
  170. package/dist/cjs/protocol/MessageChannel.js +14 -16
  171. package/dist/cjs/protocol/MessageChannel.js.map +1 -1
  172. package/dist/cjs/protocol/MessageCounter.d.ts +4 -4
  173. package/dist/cjs/protocol/MessageCounter.d.ts.map +1 -1
  174. package/dist/cjs/protocol/MessageCounter.js +7 -7
  175. package/dist/cjs/protocol/MessageCounter.js.map +1 -1
  176. package/dist/cjs/protocol/MessageExchange.d.ts +31 -20
  177. package/dist/cjs/protocol/MessageExchange.d.ts.map +1 -1
  178. package/dist/cjs/protocol/MessageExchange.js +316 -231
  179. package/dist/cjs/protocol/MessageExchange.js.map +2 -2
  180. package/dist/cjs/protocol/ProtocolMocks.d.ts +100 -0
  181. package/dist/cjs/protocol/ProtocolMocks.d.ts.map +1 -0
  182. package/dist/cjs/protocol/ProtocolMocks.js +237 -0
  183. package/dist/cjs/protocol/ProtocolMocks.js.map +6 -0
  184. package/dist/cjs/protocol/errors.d.ts +35 -0
  185. package/dist/cjs/protocol/errors.d.ts.map +1 -0
  186. package/dist/cjs/protocol/errors.js +50 -0
  187. package/dist/cjs/protocol/errors.js.map +6 -0
  188. package/dist/cjs/protocol/index.d.ts +2 -1
  189. package/dist/cjs/protocol/index.d.ts.map +1 -1
  190. package/dist/cjs/protocol/index.js +2 -1
  191. package/dist/cjs/protocol/index.js.map +1 -1
  192. package/dist/cjs/securechannel/SecureChannelMessenger.d.ts +1 -0
  193. package/dist/cjs/securechannel/SecureChannelMessenger.d.ts.map +1 -1
  194. package/dist/cjs/securechannel/SecureChannelMessenger.js +3 -0
  195. package/dist/cjs/securechannel/SecureChannelMessenger.js.map +1 -1
  196. package/dist/cjs/securechannel/SecureChannelProtocol.js +2 -2
  197. package/dist/cjs/securechannel/SecureChannelProtocol.js.map +1 -1
  198. package/dist/cjs/session/GroupSession.d.ts +21 -10
  199. package/dist/cjs/session/GroupSession.d.ts.map +1 -1
  200. package/dist/cjs/session/GroupSession.js +37 -12
  201. package/dist/cjs/session/GroupSession.js.map +1 -1
  202. package/dist/cjs/session/NodeSession.d.ts +56 -50
  203. package/dist/cjs/session/NodeSession.d.ts.map +1 -1
  204. package/dist/cjs/session/NodeSession.js +95 -103
  205. package/dist/cjs/session/NodeSession.js.map +1 -1
  206. package/dist/cjs/session/SecureSession.d.ts +4 -4
  207. package/dist/cjs/session/SecureSession.d.ts.map +1 -1
  208. package/dist/cjs/session/SecureSession.js +1 -1
  209. package/dist/cjs/session/SecureSession.js.map +1 -1
  210. package/dist/cjs/session/Session.d.ts +82 -66
  211. package/dist/cjs/session/Session.d.ts.map +1 -1
  212. package/dist/cjs/session/Session.js +218 -45
  213. package/dist/cjs/session/Session.js.map +1 -1
  214. package/dist/cjs/session/SessionManager.d.ts +33 -36
  215. package/dist/cjs/session/SessionManager.d.ts.map +1 -1
  216. package/dist/cjs/session/SessionManager.js +112 -150
  217. package/dist/cjs/session/SessionManager.js.map +1 -1
  218. package/dist/cjs/session/SessionParameters.d.ts +87 -0
  219. package/dist/cjs/session/SessionParameters.d.ts.map +1 -0
  220. package/dist/cjs/session/SessionParameters.js +81 -0
  221. package/dist/cjs/session/SessionParameters.js.map +6 -0
  222. package/dist/{esm/session/InsecureSession.d.ts → cjs/session/UnsecuredSession.d.ts} +18 -16
  223. package/dist/cjs/session/UnsecuredSession.d.ts.map +1 -0
  224. package/dist/cjs/session/{InsecureSession.js → UnsecuredSession.js} +21 -21
  225. package/dist/cjs/session/UnsecuredSession.js.map +6 -0
  226. package/dist/cjs/session/case/CaseClient.d.ts.map +1 -1
  227. package/dist/cjs/session/case/CaseClient.js +6 -4
  228. package/dist/cjs/session/case/CaseClient.js.map +1 -1
  229. package/dist/cjs/session/case/CaseServer.d.ts.map +1 -1
  230. package/dist/cjs/session/case/CaseServer.js +14 -10
  231. package/dist/cjs/session/case/CaseServer.js.map +1 -1
  232. package/dist/cjs/session/index.d.ts +2 -1
  233. package/dist/cjs/session/index.d.ts.map +1 -1
  234. package/dist/cjs/session/index.js +2 -1
  235. package/dist/cjs/session/index.js.map +1 -1
  236. package/dist/cjs/session/pase/PaseClient.d.ts +3 -3
  237. package/dist/cjs/session/pase/PaseClient.d.ts.map +1 -1
  238. package/dist/cjs/session/pase/PaseClient.js +5 -3
  239. package/dist/cjs/session/pase/PaseClient.js.map +1 -1
  240. package/dist/cjs/session/pase/PaseServer.d.ts.map +1 -1
  241. package/dist/cjs/session/pase/PaseServer.js +13 -13
  242. package/dist/cjs/session/pase/PaseServer.js.map +1 -1
  243. package/dist/esm/action/client/ClientInteraction.d.ts.map +1 -1
  244. package/dist/esm/action/client/ClientInteraction.js +82 -34
  245. package/dist/esm/action/client/ClientInteraction.js.map +2 -2
  246. package/dist/esm/action/client/subscription/ClientSubscription.d.ts +10 -5
  247. package/dist/esm/action/client/subscription/ClientSubscription.d.ts.map +1 -1
  248. package/dist/esm/action/client/subscription/ClientSubscription.js +22 -2
  249. package/dist/esm/action/client/subscription/ClientSubscription.js.map +2 -2
  250. package/dist/esm/action/client/subscription/ClientSubscriptionHandler.js +2 -3
  251. package/dist/esm/action/client/subscription/ClientSubscriptionHandler.js.map +1 -1
  252. package/dist/esm/action/client/subscription/ClientSubscriptions.d.ts +4 -2
  253. package/dist/esm/action/client/subscription/ClientSubscriptions.d.ts.map +1 -1
  254. package/dist/esm/action/client/subscription/ClientSubscriptions.js +68 -8
  255. package/dist/esm/action/client/subscription/ClientSubscriptions.js.map +1 -1
  256. package/dist/esm/action/client/subscription/PeerSubscription.d.ts +0 -1
  257. package/dist/esm/action/client/subscription/PeerSubscription.d.ts.map +1 -1
  258. package/dist/esm/action/client/subscription/PeerSubscription.js +1 -2
  259. package/dist/esm/action/client/subscription/PeerSubscription.js.map +1 -1
  260. package/dist/esm/action/client/subscription/SustainedSubscription.d.ts +0 -2
  261. package/dist/esm/action/client/subscription/SustainedSubscription.d.ts.map +1 -1
  262. package/dist/esm/action/client/subscription/SustainedSubscription.js +2 -4
  263. package/dist/esm/action/client/subscription/SustainedSubscription.js.map +1 -1
  264. package/dist/esm/action/request/Invoke.js +2 -2
  265. package/dist/esm/action/request/Invoke.js.map +1 -1
  266. package/dist/esm/action/server/AttributeReadResponse.d.ts.map +1 -1
  267. package/dist/esm/action/server/AttributeReadResponse.js +78 -25
  268. package/dist/esm/action/server/AttributeReadResponse.js.map +1 -1
  269. package/dist/esm/action/server/AttributeWriteResponse.d.ts.map +1 -1
  270. package/dist/esm/action/server/AttributeWriteResponse.js +70 -17
  271. package/dist/esm/action/server/AttributeWriteResponse.js.map +1 -1
  272. package/dist/esm/action/server/CommandInvokeResponse.d.ts.map +1 -1
  273. package/dist/esm/action/server/CommandInvokeResponse.js +83 -30
  274. package/dist/esm/action/server/CommandInvokeResponse.js.map +1 -1
  275. package/dist/esm/action/server/DataResponse.d.ts +1 -0
  276. package/dist/esm/action/server/DataResponse.d.ts.map +1 -1
  277. package/dist/esm/action/server/DataResponse.js +3 -0
  278. package/dist/esm/action/server/DataResponse.js.map +1 -1
  279. package/dist/esm/action/server/ServerInteraction.d.ts.map +1 -1
  280. package/dist/esm/action/server/ServerInteraction.js +4 -4
  281. package/dist/esm/action/server/ServerInteraction.js.map +1 -1
  282. package/dist/esm/advertisement/Advertisement.d.ts.map +1 -1
  283. package/dist/esm/advertisement/Advertisement.js +66 -14
  284. package/dist/esm/advertisement/Advertisement.js.map +1 -1
  285. package/dist/esm/advertisement/Advertiser.d.ts +4 -1
  286. package/dist/esm/advertisement/Advertiser.d.ts.map +1 -1
  287. package/dist/esm/advertisement/Advertiser.js +63 -2
  288. package/dist/esm/advertisement/Advertiser.js.map +1 -1
  289. package/dist/esm/advertisement/ble/BleAdvertiser.d.ts +6 -1
  290. package/dist/esm/advertisement/ble/BleAdvertiser.d.ts.map +1 -1
  291. package/dist/esm/advertisement/ble/BleAdvertiser.js +1 -1
  292. package/dist/esm/advertisement/ble/BleAdvertiser.js.map +1 -1
  293. package/dist/esm/advertisement/mdns/MdnsAdvertiser.d.ts +5 -1
  294. package/dist/esm/advertisement/mdns/MdnsAdvertiser.d.ts.map +1 -1
  295. package/dist/esm/advertisement/mdns/MdnsAdvertiser.js +1 -1
  296. package/dist/esm/advertisement/mdns/MdnsAdvertiser.js.map +1 -1
  297. package/dist/esm/certificate/kinds/definitions/asn.js +2 -2
  298. package/dist/esm/certificate/kinds/definitions/asn.js.map +1 -1
  299. package/dist/esm/certificate/kinds/definitions/attestation.d.ts.map +1 -1
  300. package/dist/esm/cluster/client/AttributeClient.d.ts.map +1 -1
  301. package/dist/esm/cluster/client/AttributeClient.js +1 -1
  302. package/dist/esm/cluster/client/AttributeClient.js.map +1 -1
  303. package/dist/esm/codec/MessageCodec.d.ts +8 -1
  304. package/dist/esm/codec/MessageCodec.d.ts.map +1 -1
  305. package/dist/esm/codec/MessageCodec.js +39 -28
  306. package/dist/esm/codec/MessageCodec.js.map +2 -2
  307. package/dist/esm/common/FailsafeContext.d.ts +8 -9
  308. package/dist/esm/common/FailsafeContext.d.ts.map +1 -1
  309. package/dist/esm/common/FailsafeContext.js +27 -33
  310. package/dist/esm/common/FailsafeContext.js.map +1 -1
  311. package/dist/esm/common/FailsafeTimer.d.ts +4 -3
  312. package/dist/esm/common/FailsafeTimer.d.ts.map +1 -1
  313. package/dist/esm/common/FailsafeTimer.js +4 -4
  314. package/dist/esm/common/FailsafeTimer.js.map +1 -1
  315. package/dist/esm/common/Mark.d.ts +17 -0
  316. package/dist/esm/common/Mark.d.ts.map +1 -0
  317. package/dist/esm/common/Mark.js +18 -0
  318. package/dist/esm/common/Mark.js.map +6 -0
  319. package/dist/esm/common/index.d.ts +1 -0
  320. package/dist/esm/common/index.d.ts.map +1 -1
  321. package/dist/esm/common/index.js +1 -0
  322. package/dist/esm/common/index.js.map +1 -1
  323. package/dist/esm/fabric/Fabric.d.ts +16 -8
  324. package/dist/esm/fabric/Fabric.d.ts.map +1 -1
  325. package/dist/esm/fabric/Fabric.js +36 -18
  326. package/dist/esm/fabric/Fabric.js.map +1 -1
  327. package/dist/esm/fabric/FabricAuthority.d.ts +2 -2
  328. package/dist/esm/fabric/FabricAuthority.d.ts.map +1 -1
  329. package/dist/esm/fabric/FabricAuthority.js +5 -5
  330. package/dist/esm/fabric/FabricAuthority.js.map +1 -1
  331. package/dist/esm/fabric/FabricManager.d.ts +10 -14
  332. package/dist/esm/fabric/FabricManager.d.ts.map +1 -1
  333. package/dist/esm/fabric/FabricManager.js +45 -40
  334. package/dist/esm/fabric/FabricManager.js.map +2 -2
  335. package/dist/esm/index.d.ts +1 -1
  336. package/dist/esm/index.d.ts.map +1 -1
  337. package/dist/esm/index.js +1 -1
  338. package/dist/esm/index.js.map +1 -1
  339. package/dist/esm/interaction/AttributeDataEncoder.d.ts +1 -1
  340. package/dist/esm/interaction/InteractionClient.d.ts +2 -2
  341. package/dist/esm/interaction/InteractionClient.d.ts.map +1 -1
  342. package/dist/esm/interaction/InteractionClient.js +39 -22
  343. package/dist/esm/interaction/InteractionClient.js.map +1 -1
  344. package/dist/esm/interaction/InteractionMessenger.d.ts +2 -2
  345. package/dist/esm/interaction/InteractionMessenger.d.ts.map +1 -1
  346. package/dist/esm/interaction/InteractionMessenger.js +33 -28
  347. package/dist/esm/interaction/InteractionMessenger.js.map +1 -1
  348. package/dist/esm/interaction/Subscription.d.ts +16 -37
  349. package/dist/esm/interaction/Subscription.d.ts.map +1 -1
  350. package/dist/esm/interaction/Subscription.js +16 -69
  351. package/dist/esm/interaction/Subscription.js.map +2 -2
  352. package/dist/esm/interaction/SubscriptionClient.d.ts +2 -2
  353. package/dist/esm/interaction/SubscriptionClient.d.ts.map +1 -1
  354. package/dist/esm/interaction/SubscriptionClient.js +2 -2
  355. package/dist/esm/interaction/SubscriptionClient.js.map +1 -1
  356. package/dist/esm/mdns/MdnsClient.d.ts +10 -10
  357. package/dist/esm/mdns/MdnsClient.d.ts.map +1 -1
  358. package/dist/esm/mdns/MdnsClient.js +166 -80
  359. package/dist/esm/mdns/MdnsClient.js.map +1 -1
  360. package/dist/esm/mdns/MdnsServer.d.ts +2 -2
  361. package/dist/esm/mdns/MdnsServer.d.ts.map +1 -1
  362. package/dist/esm/mdns/MdnsServer.js +176 -94
  363. package/dist/esm/mdns/MdnsServer.js.map +2 -2
  364. package/dist/esm/mdns/MdnsService.d.ts.map +1 -1
  365. package/dist/esm/mdns/MdnsService.js +3 -2
  366. package/dist/esm/mdns/MdnsService.js.map +1 -1
  367. package/dist/esm/mdns/MdnsSocket.d.ts +3 -2
  368. package/dist/esm/mdns/MdnsSocket.d.ts.map +1 -1
  369. package/dist/esm/mdns/MdnsSocket.js +2 -1
  370. package/dist/esm/mdns/MdnsSocket.js.map +1 -1
  371. package/dist/esm/peer/ControllerCommissioner.d.ts +2 -2
  372. package/dist/esm/peer/ControllerCommissioner.d.ts.map +1 -1
  373. package/dist/esm/peer/ControllerCommissioner.js +26 -28
  374. package/dist/esm/peer/ControllerCommissioner.js.map +1 -1
  375. package/dist/esm/peer/ControllerDiscovery.d.ts +1 -1
  376. package/dist/esm/peer/ControllerDiscovery.d.ts.map +1 -1
  377. package/dist/esm/peer/ControllerDiscovery.js +1 -1
  378. package/dist/esm/peer/ControllerDiscovery.js.map +1 -1
  379. package/dist/esm/peer/Peer.d.ts +57 -0
  380. package/dist/esm/peer/Peer.d.ts.map +1 -0
  381. package/dist/esm/peer/Peer.js +162 -0
  382. package/dist/esm/peer/Peer.js.map +6 -0
  383. package/dist/esm/peer/PeerAddress.d.ts.map +1 -1
  384. package/dist/esm/peer/PeerAddress.js +5 -2
  385. package/dist/esm/peer/PeerAddress.js.map +1 -1
  386. package/dist/esm/peer/PeerAddressStore.d.ts +3 -3
  387. package/dist/esm/peer/PeerAddressStore.d.ts.map +1 -1
  388. package/dist/{cjs/peer/OperationalPeer.d.ts → esm/peer/PeerDescriptor.d.ts} +14 -7
  389. package/dist/esm/peer/PeerDescriptor.d.ts.map +1 -0
  390. package/dist/esm/peer/PeerDescriptor.js +51 -0
  391. package/dist/esm/peer/PeerDescriptor.js.map +6 -0
  392. package/dist/esm/peer/PeerSet.d.ts +23 -26
  393. package/dist/esm/peer/PeerSet.d.ts.map +1 -1
  394. package/dist/esm/peer/PeerSet.js +173 -175
  395. package/dist/esm/peer/PeerSet.js.map +2 -2
  396. package/dist/esm/peer/index.d.ts +1 -1
  397. package/dist/esm/peer/index.d.ts.map +1 -1
  398. package/dist/esm/peer/index.js +1 -1
  399. package/dist/esm/protocol/DeviceAdvertiser.js +4 -4
  400. package/dist/esm/protocol/DeviceAdvertiser.js.map +1 -1
  401. package/dist/esm/protocol/ExchangeManager.d.ts +6 -9
  402. package/dist/esm/protocol/ExchangeManager.d.ts.map +1 -1
  403. package/dist/esm/protocol/ExchangeManager.js +308 -251
  404. package/dist/esm/protocol/ExchangeManager.js.map +2 -2
  405. package/dist/esm/protocol/ExchangeProvider.d.ts +9 -11
  406. package/dist/esm/protocol/ExchangeProvider.d.ts.map +1 -1
  407. package/dist/esm/protocol/ExchangeProvider.js +81 -37
  408. package/dist/esm/protocol/ExchangeProvider.js.map +2 -2
  409. package/dist/esm/protocol/MessageChannel.d.ts +6 -7
  410. package/dist/esm/protocol/MessageChannel.d.ts.map +1 -1
  411. package/dist/esm/protocol/MessageChannel.js +22 -18
  412. package/dist/esm/protocol/MessageChannel.js.map +1 -1
  413. package/dist/esm/protocol/MessageCounter.d.ts +4 -4
  414. package/dist/esm/protocol/MessageCounter.d.ts.map +1 -1
  415. package/dist/esm/protocol/MessageCounter.js +7 -7
  416. package/dist/esm/protocol/MessageCounter.js.map +1 -1
  417. package/dist/esm/protocol/MessageExchange.d.ts +31 -20
  418. package/dist/esm/protocol/MessageExchange.d.ts.map +1 -1
  419. package/dist/esm/protocol/MessageExchange.js +318 -238
  420. package/dist/esm/protocol/MessageExchange.js.map +2 -2
  421. package/dist/esm/protocol/ProtocolMocks.d.ts +100 -0
  422. package/dist/esm/protocol/ProtocolMocks.d.ts.map +1 -0
  423. package/dist/esm/protocol/ProtocolMocks.js +230 -0
  424. package/dist/esm/protocol/ProtocolMocks.js.map +6 -0
  425. package/dist/esm/protocol/errors.d.ts +35 -0
  426. package/dist/esm/protocol/errors.d.ts.map +1 -0
  427. package/dist/esm/protocol/errors.js +30 -0
  428. package/dist/esm/protocol/errors.js.map +6 -0
  429. package/dist/esm/protocol/index.d.ts +2 -1
  430. package/dist/esm/protocol/index.d.ts.map +1 -1
  431. package/dist/esm/protocol/index.js +2 -1
  432. package/dist/esm/protocol/index.js.map +1 -1
  433. package/dist/esm/securechannel/SecureChannelMessenger.d.ts +1 -0
  434. package/dist/esm/securechannel/SecureChannelMessenger.d.ts.map +1 -1
  435. package/dist/esm/securechannel/SecureChannelMessenger.js +3 -0
  436. package/dist/esm/securechannel/SecureChannelMessenger.js.map +1 -1
  437. package/dist/esm/securechannel/SecureChannelProtocol.js +2 -2
  438. package/dist/esm/securechannel/SecureChannelProtocol.js.map +1 -1
  439. package/dist/esm/session/GroupSession.d.ts +21 -10
  440. package/dist/esm/session/GroupSession.d.ts.map +1 -1
  441. package/dist/esm/session/GroupSession.js +41 -12
  442. package/dist/esm/session/GroupSession.js.map +1 -1
  443. package/dist/esm/session/NodeSession.d.ts +56 -50
  444. package/dist/esm/session/NodeSession.d.ts.map +1 -1
  445. package/dist/esm/session/NodeSession.js +99 -105
  446. package/dist/esm/session/NodeSession.js.map +1 -1
  447. package/dist/esm/session/SecureSession.d.ts +4 -4
  448. package/dist/esm/session/SecureSession.d.ts.map +1 -1
  449. package/dist/esm/session/SecureSession.js +1 -1
  450. package/dist/esm/session/SecureSession.js.map +1 -1
  451. package/dist/esm/session/Session.d.ts +82 -66
  452. package/dist/esm/session/Session.d.ts.map +1 -1
  453. package/dist/esm/session/Session.js +223 -45
  454. package/dist/esm/session/Session.js.map +1 -1
  455. package/dist/esm/session/SessionManager.d.ts +33 -36
  456. package/dist/esm/session/SessionManager.d.ts.map +1 -1
  457. package/dist/esm/session/SessionManager.js +113 -157
  458. package/dist/esm/session/SessionManager.js.map +1 -1
  459. package/dist/esm/session/SessionParameters.d.ts +87 -0
  460. package/dist/esm/session/SessionParameters.d.ts.map +1 -0
  461. package/dist/esm/session/SessionParameters.js +61 -0
  462. package/dist/esm/session/SessionParameters.js.map +6 -0
  463. package/dist/{cjs/session/InsecureSession.d.ts → esm/session/UnsecuredSession.d.ts} +18 -16
  464. package/dist/esm/session/UnsecuredSession.d.ts.map +1 -0
  465. package/dist/esm/session/{InsecureSession.js → UnsecuredSession.js} +18 -18
  466. package/dist/esm/session/UnsecuredSession.js.map +6 -0
  467. package/dist/esm/session/case/CaseClient.d.ts.map +1 -1
  468. package/dist/esm/session/case/CaseClient.js +5 -3
  469. package/dist/esm/session/case/CaseClient.js.map +1 -1
  470. package/dist/esm/session/case/CaseServer.d.ts.map +1 -1
  471. package/dist/esm/session/case/CaseServer.js +14 -10
  472. package/dist/esm/session/case/CaseServer.js.map +1 -1
  473. package/dist/esm/session/index.d.ts +2 -1
  474. package/dist/esm/session/index.d.ts.map +1 -1
  475. package/dist/esm/session/index.js +2 -1
  476. package/dist/esm/session/index.js.map +1 -1
  477. package/dist/esm/session/pase/PaseClient.d.ts +3 -3
  478. package/dist/esm/session/pase/PaseClient.d.ts.map +1 -1
  479. package/dist/esm/session/pase/PaseClient.js +5 -3
  480. package/dist/esm/session/pase/PaseClient.js.map +1 -1
  481. package/dist/esm/session/pase/PaseServer.d.ts.map +1 -1
  482. package/dist/esm/session/pase/PaseServer.js +13 -13
  483. package/dist/esm/session/pase/PaseServer.js.map +1 -1
  484. package/package.json +6 -6
  485. package/src/action/client/ClientInteraction.ts +47 -13
  486. package/src/action/client/subscription/ClientSubscription.ts +30 -5
  487. package/src/action/client/subscription/ClientSubscriptionHandler.ts +2 -4
  488. package/src/action/client/subscription/ClientSubscriptions.ts +14 -3
  489. package/src/action/client/subscription/PeerSubscription.ts +2 -2
  490. package/src/action/client/subscription/SustainedSubscription.ts +2 -6
  491. package/src/action/request/Invoke.ts +2 -2
  492. package/src/action/server/AttributeReadResponse.ts +2 -0
  493. package/src/action/server/AttributeWriteResponse.ts +2 -0
  494. package/src/action/server/CommandInvokeResponse.ts +1 -0
  495. package/src/action/server/DataResponse.ts +4 -0
  496. package/src/action/server/ServerInteraction.ts +4 -4
  497. package/src/advertisement/Advertisement.ts +6 -7
  498. package/src/advertisement/Advertiser.ts +12 -1
  499. package/src/advertisement/ble/BleAdvertiser.ts +7 -2
  500. package/src/advertisement/mdns/MdnsAdvertiser.ts +7 -1
  501. package/src/certificate/kinds/definitions/asn.ts +2 -2
  502. package/src/certificate/kinds/definitions/attestation.ts +1 -0
  503. package/src/cluster/client/AttributeClient.ts +1 -1
  504. package/src/codec/MessageCodec.ts +39 -32
  505. package/src/common/FailsafeContext.ts +36 -39
  506. package/src/common/FailsafeTimer.ts +7 -6
  507. package/src/common/Mark.ts +17 -0
  508. package/src/common/index.ts +1 -0
  509. package/src/fabric/Fabric.ts +51 -23
  510. package/src/fabric/FabricAuthority.ts +4 -4
  511. package/src/fabric/FabricManager.ts +53 -40
  512. package/src/index.ts +3 -1
  513. package/src/interaction/InteractionClient.ts +40 -23
  514. package/src/interaction/InteractionMessenger.ts +38 -32
  515. package/src/interaction/Subscription.ts +20 -92
  516. package/src/interaction/SubscriptionClient.ts +3 -3
  517. package/src/mdns/MdnsClient.ts +20 -3
  518. package/src/mdns/MdnsServer.ts +13 -1
  519. package/src/mdns/MdnsService.ts +3 -2
  520. package/src/mdns/MdnsSocket.ts +9 -3
  521. package/src/peer/ControllerCommissioner.ts +35 -37
  522. package/src/peer/ControllerDiscovery.ts +1 -1
  523. package/src/peer/Peer.ts +161 -0
  524. package/src/peer/PeerAddress.ts +6 -2
  525. package/src/peer/PeerAddressStore.ts +3 -3
  526. package/src/peer/PeerDescriptor.ts +89 -0
  527. package/src/peer/PeerSet.ts +145 -213
  528. package/src/peer/index.ts +1 -1
  529. package/src/protocol/DeviceAdvertiser.ts +4 -4
  530. package/src/protocol/ExchangeManager.ts +161 -181
  531. package/src/protocol/ExchangeProvider.ts +31 -40
  532. package/src/protocol/MessageChannel.ts +29 -18
  533. package/src/protocol/MessageCounter.ts +8 -8
  534. package/src/protocol/MessageExchange.ts +181 -144
  535. package/src/protocol/ProtocolMocks.ts +302 -0
  536. package/src/protocol/errors.ts +44 -0
  537. package/src/protocol/index.ts +2 -1
  538. package/src/securechannel/SecureChannelMessenger.ts +4 -0
  539. package/src/securechannel/SecureChannelProtocol.ts +2 -2
  540. package/src/session/GroupSession.ts +67 -23
  541. package/src/session/NodeSession.ts +140 -136
  542. package/src/session/SecureSession.ts +6 -5
  543. package/src/session/Session.ts +234 -101
  544. package/src/session/SessionManager.ts +148 -187
  545. package/src/session/SessionParameters.ts +108 -0
  546. package/src/session/{InsecureSession.ts → UnsecuredSession.ts} +28 -26
  547. package/src/session/case/CaseClient.ts +6 -3
  548. package/src/session/case/CaseServer.ts +15 -11
  549. package/src/session/index.ts +2 -1
  550. package/src/session/pase/PaseClient.ts +12 -5
  551. package/src/session/pase/PaseServer.ts +14 -13
  552. package/dist/cjs/peer/OperationalPeer.d.ts.map +0 -1
  553. package/dist/cjs/peer/OperationalPeer.js.map +0 -6
  554. package/dist/cjs/protocol/ChannelManager.d.ts +0 -29
  555. package/dist/cjs/protocol/ChannelManager.d.ts.map +0 -1
  556. package/dist/cjs/protocol/ChannelManager.js +0 -178
  557. package/dist/cjs/protocol/ChannelManager.js.map +0 -6
  558. package/dist/cjs/session/InsecureSession.d.ts.map +0 -1
  559. package/dist/cjs/session/InsecureSession.js.map +0 -6
  560. package/dist/esm/peer/OperationalPeer.d.ts +0 -38
  561. package/dist/esm/peer/OperationalPeer.d.ts.map +0 -1
  562. package/dist/esm/peer/OperationalPeer.js +0 -6
  563. package/dist/esm/peer/OperationalPeer.js.map +0 -6
  564. package/dist/esm/protocol/ChannelManager.d.ts +0 -29
  565. package/dist/esm/protocol/ChannelManager.d.ts.map +0 -1
  566. package/dist/esm/protocol/ChannelManager.js +0 -158
  567. package/dist/esm/protocol/ChannelManager.js.map +0 -6
  568. package/dist/esm/session/InsecureSession.d.ts.map +0 -1
  569. package/dist/esm/session/InsecureSession.js.map +0 -6
  570. package/src/protocol/ChannelManager.ts +0 -180
@@ -3,6 +3,10 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
7
+ var __typeError = (msg) => {
8
+ throw TypeError(msg);
9
+ };
6
10
  var __export = (target, all) => {
7
11
  for (var name in all)
8
12
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -16,6 +20,47 @@ var __copyProps = (to, from, except, desc) => {
16
20
  return to;
17
21
  };
18
22
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
23
+ var __using = (stack, value, async) => {
24
+ if (value != null) {
25
+ if (typeof value !== "object" && typeof value !== "function") __typeError("Object expected");
26
+ var dispose, inner;
27
+ if (async) dispose = value[__knownSymbol("asyncDispose")];
28
+ if (dispose === void 0) {
29
+ dispose = value[__knownSymbol("dispose")];
30
+ if (async) inner = dispose;
31
+ }
32
+ if (typeof dispose !== "function") __typeError("Object not disposable");
33
+ if (inner) dispose = function() {
34
+ try {
35
+ inner.call(this);
36
+ } catch (e) {
37
+ return Promise.reject(e);
38
+ }
39
+ };
40
+ stack.push([async, dispose, value]);
41
+ } else if (async) {
42
+ stack.push([async]);
43
+ }
44
+ return value;
45
+ };
46
+ var __callDispose = (stack, error, hasError) => {
47
+ var E = typeof SuppressedError === "function" ? SuppressedError : function(e, s, m, _) {
48
+ return _ = Error(m), _.name = "SuppressedError", _.error = e, _.suppressed = s, _;
49
+ };
50
+ var fail = (e) => error = hasError ? new E(e, error, "An error was suppressed during disposal") : (hasError = true, e);
51
+ var next = (it) => {
52
+ while (it = stack.pop()) {
53
+ try {
54
+ var result = it[1] && it[1].call(it[2]);
55
+ if (it[0]) return Promise.resolve(result).then(next, (e) => (fail(e), next()));
56
+ } catch (e) {
57
+ fail(e);
58
+ }
59
+ }
60
+ if (hasError) throw error;
61
+ };
62
+ return next();
63
+ };
19
64
  var PeerSet_exports = {};
20
65
  __export(PeerSet_exports, {
21
66
  NodeDiscoveryType: () => NodeDiscoveryType,
@@ -26,17 +71,17 @@ module.exports = __toCommonJS(PeerSet_exports);
26
71
  var import_Scanner = require("#common/Scanner.js");
27
72
  var import_general = require("#general");
28
73
  var import_PeerAddress = require("#peer/PeerAddress.js");
29
- var import_ChannelManager = require("#protocol/ChannelManager.js");
74
+ var import_errors = require("#protocol/errors.js");
30
75
  var import_ExchangeManager = require("#protocol/ExchangeManager.js");
31
76
  var import_ExchangeProvider = require("#protocol/ExchangeProvider.js");
32
- var import_MessageChannel = require("#protocol/MessageChannel.js");
33
- var import_MessageExchange = require("#protocol/MessageExchange.js");
34
77
  var import_SecureChannelMessenger = require("#securechannel/SecureChannelMessenger.js");
35
78
  var import_CaseClient = require("#session/case/CaseClient.js");
79
+ var import_SecureSession = require("#session/SecureSession.js");
36
80
  var import_SessionManager = require("#session/SessionManager.js");
37
81
  var import_types = require("#types");
38
82
  var import_ControllerDiscovery = require("./ControllerDiscovery.js");
39
83
  var import_InteractionQueue = require("./InteractionQueue.js");
84
+ var import_Peer = require("./Peer.js");
40
85
  var import_PeerAddressStore = require("./PeerAddressStore.js");
41
86
  /**
42
87
  * @license
@@ -56,37 +101,42 @@ var NodeDiscoveryType = /* @__PURE__ */ ((NodeDiscoveryType2) => {
56
101
  class UnknownNodeError extends import_general.MatterError {
57
102
  }
58
103
  class PeerSet {
104
+ #lifetime;
59
105
  #sessions;
60
- #channels;
61
106
  #exchanges;
62
107
  #scanners;
63
108
  #transports;
64
109
  #caseClient;
65
110
  #peers = new import_general.BasicSet();
66
- #peersByAddress = new import_PeerAddress.PeerAddressMap();
67
- #runningPeerDiscoveries = new import_PeerAddress.PeerAddressMap();
68
- #runningPeerReconnections = new import_PeerAddress.PeerAddressMap();
69
111
  #construction;
70
112
  #store;
71
113
  #interactionQueue = new import_InteractionQueue.InteractionQueue();
72
114
  #nodeCachedData = new import_PeerAddress.PeerAddressMap();
73
115
  // Temporarily until we store it in new API
74
116
  #disconnected = (0, import_general.AsyncObservable)();
117
+ #peerContext;
75
118
  constructor(context) {
76
- const { sessions, channels, exchanges, scanners, transports: netInterfaces, store } = context;
119
+ const { lifetime, sessions, exchanges, scanners, transports: netInterfaces, store } = context;
120
+ this.#lifetime = lifetime.join("peers");
77
121
  this.#sessions = sessions;
78
- this.#channels = channels;
79
122
  this.#exchanges = exchanges;
80
123
  this.#scanners = scanners;
81
124
  this.#transports = netInterfaces;
82
125
  this.#store = store;
83
126
  this.#caseClient = new import_CaseClient.CaseClient(this.#sessions);
127
+ this.#peerContext = {
128
+ lifetime: this.#lifetime,
129
+ sessions,
130
+ savePeer: (peer) => this.#store.updatePeer(peer.descriptor),
131
+ deletePeer: (peer) => this.#store.deletePeer(peer.address),
132
+ closed: (peer) => this.#peers.delete(peer)
133
+ };
84
134
  this.#peers.added.on((peer) => {
85
- peer.address = (0, import_PeerAddress.PeerAddress)(peer.address);
86
- this.#peersByAddress.set(peer.address, peer);
87
- });
88
- this.#peers.deleted.on((peer) => {
89
- this.#peersByAddress.delete(peer.address);
135
+ peer.sessions.deleted.on(() => {
136
+ if (!peer.sessions.size) {
137
+ this.#disconnected.emit(peer);
138
+ }
139
+ });
90
140
  });
91
141
  this.#sessions.retry.on((session, count) => {
92
142
  if (count !== 1) {
@@ -94,14 +144,9 @@ class PeerSet {
94
144
  }
95
145
  this.#handleFirstRetry(session);
96
146
  });
97
- this.#channels.added.on((address, msgChannel) => {
98
- if ((0, import_general.isIpNetworkChannel)(msgChannel.channel)) {
99
- return this.#addOrUpdatePeer(address, msgChannel.channel.networkAddress);
100
- }
101
- });
102
147
  this.#construction = (0, import_general.Construction)(this, async () => {
103
- for (const peer of await this.#store.loadPeers()) {
104
- this.#peers.add(peer);
148
+ for (const descriptor of await this.#store.loadPeers()) {
149
+ this.#peers.add(new import_Peer.Peer(descriptor, this.#peerContext));
105
150
  }
106
151
  });
107
152
  }
@@ -117,11 +162,22 @@ class PeerSet {
117
162
  get disconnected() {
118
163
  return this.#disconnected;
119
164
  }
120
- has(item) {
121
- if ("address" in item) {
122
- return this.#peers.has(item);
165
+ /**
166
+ * Unconditional get.
167
+ *
168
+ * Creates the peer if not already present.
169
+ */
170
+ for(address) {
171
+ let peer = this.get(address);
172
+ if (peer) {
173
+ return peer;
123
174
  }
124
- return this.#peersByAddress.has(item);
175
+ peer = new import_Peer.Peer({ address }, this.#peerContext);
176
+ this.#peers.add(peer);
177
+ return peer;
178
+ }
179
+ has(item) {
180
+ return !!this.get(item);
125
181
  }
126
182
  get size() {
127
183
  return this.#peers.size;
@@ -143,8 +199,8 @@ class PeerSet {
143
199
  }
144
200
  static [import_general.Environmental.create](env) {
145
201
  const instance = new PeerSet({
202
+ lifetime: env,
146
203
  sessions: env.get(import_SessionManager.SessionManager),
147
- channels: env.get(import_ChannelManager.ChannelManager),
148
204
  exchanges: env.get(import_ExchangeManager.ExchangeManager),
149
205
  scanners: env.get(import_Scanner.ScannerSet),
150
206
  transports: env.get(import_general.ConnectionlessTransportSet),
@@ -167,29 +223,31 @@ class PeerSet {
167
223
  */
168
224
  async #ensureConnection(address, options) {
169
225
  address = (0, import_PeerAddress.PeerAddress)(address);
170
- const isGroupNode = import_PeerAddress.PeerAddress.isGroup(address);
226
+ if (import_PeerAddress.PeerAddress.isGroup(address)) {
227
+ return;
228
+ }
171
229
  const { allowUnknownPeer, operationalAddress } = options;
172
- if (!this.#peersByAddress.has(address) && !allowUnknownPeer && !isGroupNode) {
230
+ if (!this.has(address) && !allowUnknownPeer) {
173
231
  throw new UnknownNodeError(`Cannot connect to unknown device ${(0, import_PeerAddress.PeerAddress)(address)}`);
174
232
  }
175
- if (!this.#channels.hasChannel(address)) {
176
- if (isGroupNode) {
177
- await this.#createGroupChannel(address);
178
- return;
179
- }
180
- const { promise: existingReconnectPromise } = this.#runningPeerReconnections.get(address) ?? {};
181
- if (existingReconnectPromise !== void 0) {
182
- return existingReconnectPromise;
183
- }
184
- const { promise, resolver, rejecter } = (0, import_general.createPromise)();
185
- this.#runningPeerReconnections.set(address, { promise, rejecter });
186
- this.#resume(address, options, operationalAddress).then((channel) => {
187
- this.#runningPeerReconnections.delete(address);
188
- resolver(channel);
189
- }).catch((error) => {
190
- this.#runningPeerReconnections.delete(address);
191
- rejecter(error);
192
- });
233
+ const peer = this.for(address);
234
+ if (this.#sessions.maybeSessionFor(address) || peer.activeDiscovery?.type === 3 /* FullDiscovery */) {
235
+ return;
236
+ }
237
+ const { promise: existingReconnectPromise } = peer.activeReconnection ?? {};
238
+ if (existingReconnectPromise !== void 0) {
239
+ return existingReconnectPromise;
240
+ }
241
+ const { promise, resolver, rejecter } = (0, import_general.createPromise)();
242
+ peer.activeReconnection = { promise, rejecter };
243
+ this.#resume(address, options, operationalAddress).then((channel) => {
244
+ peer.activeReconnection = void 0;
245
+ resolver(channel);
246
+ }).catch((error) => {
247
+ peer.activeReconnection = void 0;
248
+ rejecter(error);
249
+ });
250
+ if (options.discoveryOptions?.discoveryType !== 3 /* FullDiscovery */) {
193
251
  return promise;
194
252
  }
195
253
  }
@@ -197,49 +255,46 @@ class PeerSet {
197
255
  * Obtain an exchange provider for the designated peer.
198
256
  * TODO enhance PeerConnectionOptions.discoveryOptions.discoveryData with "addresses" for known operational addresses
199
257
  */
200
- async exchangeProviderFor(addressOrChannel, options = {}) {
201
- if (addressOrChannel instanceof import_MessageChannel.MessageChannel) {
202
- return new import_ExchangeProvider.DedicatedChannelExchangeProvider(this.#exchanges, addressOrChannel);
258
+ async exchangeProviderFor(addressOrSession, options = {}) {
259
+ if (addressOrSession instanceof import_SecureSession.SecureSession) {
260
+ return new import_ExchangeProvider.DedicatedChannelExchangeProvider(this.#exchanges, addressOrSession);
203
261
  }
204
- const address = addressOrChannel;
262
+ const address = addressOrSession;
205
263
  if (import_PeerAddress.PeerAddress.isGroup(address)) {
206
- if (!this.#channels.hasChannel(address)) {
207
- await this.#createGroupChannel(address);
208
- }
209
- return new import_ExchangeProvider.DedicatedChannelExchangeProvider(this.#exchanges, this.#channels.getChannel(address));
264
+ const session = await this.#sessions.groupSessionForAddress(address, this.#transports);
265
+ return new import_ExchangeProvider.DedicatedChannelExchangeProvider(this.#exchanges, session);
210
266
  }
211
- let initiallyConnected = this.#channels.hasChannel(address);
212
- return new import_ExchangeProvider.ReconnectableExchangeProvider(this.#exchanges, this.#channels, address, async () => {
267
+ let initiallyConnected = !!this.#sessions.maybeSessionFor(address);
268
+ return new import_ExchangeProvider.ReconnectableExchangeProvider(this.#exchanges, this.#sessions, address, async () => {
213
269
  const { caseAuthenticatedTags, discoveryOptions } = options;
214
- if (!initiallyConnected && !this.#channels.hasChannel(address)) {
270
+ if (!initiallyConnected && !this.#sessions.maybeSessionFor(address)) {
215
271
  await this.#ensureConnection(address, {
216
272
  discoveryOptions: { discoveryType: 0 /* None */ },
217
273
  caseAuthenticatedTags
218
274
  });
219
275
  initiallyConnected = true;
220
- if (this.#channels.hasChannel(address)) {
276
+ if (this.#sessions.maybeSessionFor(address)) {
221
277
  return;
222
278
  }
223
279
  }
224
- if (!this.#channels.hasChannel(address)) {
225
- throw new import_MessageExchange.RetransmissionLimitReachedError(`Device ${(0, import_PeerAddress.PeerAddress)(address)} is currently not reachable.`);
280
+ if (!this.#sessions.maybeSessionFor(address)) {
281
+ throw new import_errors.RetransmissionLimitReachedError(`Device ${(0, import_PeerAddress.PeerAddress)(address)} is unreachable`);
226
282
  }
227
- await this.#channels.removeAllNodeChannels(address);
283
+ await this.#sessions.handlePeerLoss(address);
228
284
  const { discoveryData } = discoveryOptions ?? {
229
- discoveryData: this.#peersByAddress.get(address)?.discoveryData
285
+ discoveryData: this.get(address)?.descriptor.discoveryData
230
286
  };
231
287
  const operationalAddress = this.#knownOperationalAddressFor(address, true);
232
288
  if (operationalAddress === void 0) {
233
289
  logger.info(
234
290
  `Re-discovering device failed (no address found), remove all sessions for ${(0, import_PeerAddress.PeerAddress)(address)}`
235
291
  );
236
- await this.#sessions.removeAllSessionsForNode(address);
237
- throw new import_MessageExchange.RetransmissionLimitReachedError(`No operational address found for ${(0, import_PeerAddress.PeerAddress)(address)}`);
292
+ throw new import_errors.RetransmissionLimitReachedError(`No operational address found for ${(0, import_PeerAddress.PeerAddress)(address)}`);
238
293
  }
239
294
  if (await this.#reconnectKnownAddress(address, operationalAddress, discoveryData, {
240
295
  expectedProcessingTime: (0, import_general.Seconds)(2)
241
296
  }) === void 0) {
242
- throw new import_MessageExchange.RetransmissionLimitReachedError(`${(0, import_PeerAddress.PeerAddress)(address)} is not reachable.`);
297
+ throw new import_errors.RetransmissionLimitReachedError(`${(0, import_PeerAddress.PeerAddress)(address)} is not reachable`);
243
298
  }
244
299
  });
245
300
  }
@@ -248,55 +303,23 @@ class PeerSet {
248
303
  */
249
304
  get(peer) {
250
305
  if ("address" in peer) {
251
- return this.#peersByAddress.get(peer.address);
252
- }
253
- return this.#peersByAddress.get(peer);
254
- }
255
- /**
256
- * Terminate any active peer connection.
257
- * Also handles unknown peers
258
- */
259
- async disconnect(peer, sendSessionClose = true) {
260
- let address = this.get(peer)?.address;
261
- if (address === void 0) {
262
- if ("nodeId" in peer && "fabricIndex" in peer) {
263
- address = peer;
264
- } else {
265
- return;
266
- }
267
- }
268
- await this.#sessions.removeAllSessionsForNode(address, sendSessionClose);
269
- await this.#channels.removeAllNodeChannels(address);
270
- await this.#disconnected.emit(address);
271
- }
272
- /**
273
- * Forget a known peer.
274
- */
275
- async delete(peer) {
276
- const actual = this.get(peer);
277
- if (actual === void 0) {
278
- return;
306
+ return this.#peers.get("address", (0, import_PeerAddress.PeerAddress)(peer.address));
279
307
  }
280
- const { address } = actual;
281
- logger.info(`Removing ${address}`);
282
- this.#peers.delete(actual);
283
- await this.#store.deletePeer(address);
284
- await this.disconnect(address, false);
285
- await this.#sessions.deleteResumptionRecord(address);
308
+ return this.#peers.get("address", (0, import_PeerAddress.PeerAddress)(peer));
286
309
  }
287
310
  async close() {
288
- for (const [address, { stopTimerFunc, mdnsClient: mdnsScanner }] of this.#runningPeerDiscoveries.entries()) {
289
- stopTimerFunc?.();
290
- mdnsScanner?.cancelOperationalDeviceDiscovery(this.#sessions.fabricFor(address), address.nodeId, false);
291
- }
292
- for (const { address } of this.#peers) {
293
- await this.disconnect(address, false);
311
+ var _stack = [];
312
+ try {
313
+ const _closing = __using(_stack, this.#lifetime.closing());
314
+ for (const peer of this.#peers) {
315
+ await peer.close();
316
+ }
317
+ this.#interactionQueue.close();
318
+ } catch (_) {
319
+ var _error = _, _hasError = true;
320
+ } finally {
321
+ __callDispose(_stack, _error, _hasError);
294
322
  }
295
- this.#interactionQueue.close();
296
- this.#runningPeerReconnections.forEach(
297
- ({ rejecter }) => rejecter(new import_MessageChannel.ChannelNotConnectedError("PeerSet closed"))
298
- );
299
- this.#runningPeerReconnections.clear();
300
323
  }
301
324
  /**
302
325
  * Resume a device connection and establish a CASE session that was previously paired with the controller. This
@@ -310,9 +333,9 @@ class PeerSet {
310
333
  try {
311
334
  return await this.#connectOrDiscoverNode(address, operationalAddress, options);
312
335
  } catch (error) {
313
- if ((error instanceof import_ControllerDiscovery.DiscoveryError || error instanceof import_general.NoResponseTimeoutError) && this.#peersByAddress.has(address) && tryOperationalAddress === void 0) {
336
+ if ((error instanceof import_ControllerDiscovery.DiscoveryError || error instanceof import_general.NoResponseTimeoutError) && this.has(address) && tryOperationalAddress === void 0) {
314
337
  logger.info(`Resume failed, remove all sessions for ${(0, import_PeerAddress.PeerAddress)(address)}`);
315
- await this.#sessions.removeAllSessionsForNode(address);
338
+ await this.#sessions.handlePeerLoss(address);
316
339
  }
317
340
  throw error;
318
341
  }
@@ -323,7 +346,7 @@ class PeerSet {
323
346
  discoveryOptions: {
324
347
  discoveryType: requestedDiscoveryType = 3 /* FullDiscovery */,
325
348
  timeout,
326
- discoveryData = this.#peersByAddress.get(address)?.discoveryData
349
+ discoveryData = this.get(address)?.descriptor.discoveryData
327
350
  } = {},
328
351
  caseAuthenticatedTags
329
352
  } = options ?? {};
@@ -337,12 +360,13 @@ class PeerSet {
337
360
  if (!mdnsScanner) {
338
361
  throw new import_general.ImplementationError("Cannot discover device without mDNS scanner.");
339
362
  }
340
- const existingDiscoveryDetails = this.#runningPeerDiscoveries.get(address) ?? {
363
+ const peer = this.for(address);
364
+ const existingDiscoveryDetails = peer.activeDiscovery ?? {
341
365
  type: 0 /* None */
342
366
  };
343
367
  if (existingDiscoveryDetails.type !== 0 /* None */ && existingDiscoveryDetails.type < requestedDiscoveryType) {
344
368
  mdnsScanner.cancelOperationalDeviceDiscovery(this.#sessions.fabricFor(address), address.nodeId);
345
- this.#runningPeerDiscoveries.delete(address);
369
+ peer.activeDiscovery = void 0;
346
370
  existingDiscoveryDetails.type = 0 /* None */;
347
371
  }
348
372
  const { type: runningDiscoveryType, promises } = existingDiscoveryDetails;
@@ -399,7 +423,7 @@ class PeerSet {
399
423
  this.#sessions.fabricFor(address),
400
424
  address.nodeId
401
425
  );
402
- this.#runningPeerDiscoveries.delete(address);
426
+ peer.activeDiscovery = void 0;
403
427
  resolver(result);
404
428
  }
405
429
  } catch (error) {
@@ -409,7 +433,7 @@ class PeerSet {
409
433
  this.#sessions.fabricFor(address),
410
434
  address.nodeId
411
435
  );
412
- this.#runningPeerDiscoveries.delete(address);
436
+ peer.activeDiscovery = void 0;
413
437
  rejecter(error);
414
438
  }
415
439
  }
@@ -431,9 +455,9 @@ class PeerSet {
431
455
  timeout,
432
456
  timeout === void 0
433
457
  );
434
- const { stopTimerFunc: stopTimerFunc2 } = this.#runningPeerDiscoveries.get(address) ?? {};
458
+ const { stopTimerFunc: stopTimerFunc2 } = peer.activeDiscovery ?? {};
435
459
  stopTimerFunc2?.();
436
- this.#runningPeerDiscoveries.delete(address);
460
+ peer.activeDiscovery = void 0;
437
461
  const { result } = await import_ControllerDiscovery.ControllerDiscovery.iterateServerAddresses(
438
462
  [scanResult],
439
463
  import_general.NoResponseTimeoutError,
@@ -444,25 +468,25 @@ class PeerSet {
444
468
  );
445
469
  return device !== void 0 ? [device] : [];
446
470
  },
447
- async (operationalAddress2, peer) => {
448
- const result2 = await this.#pair(address, operationalAddress2, peer, { caseAuthenticatedTags });
471
+ async (operationalAddress2, peer2) => {
472
+ const result2 = await this.#pair(address, operationalAddress2, peer2, { caseAuthenticatedTags });
449
473
  await this.#addOrUpdatePeer(address, operationalAddress2, {
450
474
  ...discoveryData,
451
- ...peer
475
+ ...peer2
452
476
  });
453
477
  return result2;
454
478
  }
455
479
  );
456
480
  return result;
457
481
  });
458
- this.#runningPeerDiscoveries.set(address, {
482
+ peer.activeDiscovery = {
459
483
  type: requestedDiscoveryType,
460
484
  promises: discoveryPromises,
461
485
  stopTimerFunc,
462
486
  mdnsClient: mdnsScanner
463
- });
487
+ };
464
488
  return await (0, import_general.anyPromise)(discoveryPromises).finally(() => {
465
- this.#runningPeerDiscoveries.delete(address);
489
+ peer.activeDiscovery = void 0;
466
490
  });
467
491
  }
468
492
  async #reconnectKnownAddress(address, operationalAddress, discoveryData, options) {
@@ -474,40 +498,22 @@ class PeerSet {
474
498
  logger.debug(
475
499
  `Resuming connection to ${(0, import_PeerAddress.PeerAddress)(address)} at ${ip}:${port}${expectedProcessingTime !== void 0 ? ` with expected processing time of ${import_general.Duration.format(expectedProcessingTime)}` : ""}`
476
500
  );
477
- const channel = await this.#pair(address, operationalAddress, discoveryData, options);
501
+ const session = await this.#pair(address, operationalAddress, discoveryData, options);
478
502
  await this.#addOrUpdatePeer(address, operationalAddress);
479
- return channel;
503
+ return session;
480
504
  } catch (error) {
481
- if (error instanceof import_general.NoResponseTimeoutError) {
505
+ if (error instanceof import_general.NoResponseTimeoutError || error instanceof import_SecureChannelMessenger.ChannelStatusResponseError) {
482
506
  logger.debug(
483
507
  `Failed to resume connection to ${address} connection with ${ip}:${port}, discovering the node now:`,
484
508
  error.message ? error.message : error
485
509
  );
486
- await this.#sessions.removeAllSessionsForNode(address, false, startTime);
510
+ await this.#sessions.handlePeerLoss(address, startTime);
487
511
  return void 0;
488
512
  } else {
489
513
  throw error;
490
514
  }
491
515
  }
492
516
  }
493
- async #createGroupChannel(address) {
494
- const groupId = import_types.GroupId.fromNodeId(address.nodeId);
495
- import_types.GroupId.assertGroupId(groupId);
496
- const multicastAddress = this.#sessions.fabricFor(address).groups.multicastAddressFor(groupId);
497
- const operationalInterface = this.#transports.interfaceFor(import_general.ChannelType.UDP, multicastAddress);
498
- if (operationalInterface === void 0) {
499
- throw new import_ControllerDiscovery.PairRetransmissionLimitReachedError(`IPv6 interface not initialized`);
500
- }
501
- const operationalChannel = await operationalInterface.openChannel({
502
- type: import_general.ChannelType.UDP,
503
- ip: multicastAddress,
504
- port: import_general.STANDARD_MATTER_PORT
505
- });
506
- const session = this.#sessions.groupSessionForAddress(address);
507
- const channel = new import_MessageChannel.MessageChannel(operationalChannel, session);
508
- await this.#channels.setChannel(address, channel);
509
- return channel;
510
- }
511
517
  /** Pair with an operational device (already commissioned) and establish a CASE session. */
512
518
  async #pair(address, operationalServerAddress, discoveryData, options) {
513
519
  logger.debug(`Pair with ${address} at ${import_general.ServerAddress.urlFor(operationalServerAddress)}`);
@@ -521,7 +527,8 @@ class PeerSet {
521
527
  }
522
528
  const operationalChannel = await operationalInterface.openChannel(operationalServerAddress);
523
529
  const { sessionParameters } = this.#sessions.findResumptionRecordByAddress(address) ?? {};
524
- const unsecureSession = this.#sessions.createInsecureSession({
530
+ const unsecuredSession = this.#sessions.createUnsecuredSession({
531
+ channel: operationalChannel,
525
532
  // Use the session parameters from MDNS announcements when available and rest is assumed to be fallbacks
526
533
  sessionParameters: {
527
534
  ...sessionParameters,
@@ -532,26 +539,19 @@ class PeerSet {
532
539
  isInitiator: true
533
540
  });
534
541
  try {
535
- const operationalSecureSession = await this.#doCasePair(
536
- new import_MessageChannel.MessageChannel(operationalChannel, unsecureSession),
537
- address,
538
- options
539
- );
540
- const channel = new import_MessageChannel.MessageChannel(operationalChannel, operationalSecureSession);
541
- await this.#channels.setChannel(address, channel);
542
- return channel;
542
+ return await this.#doCasePair(unsecuredSession, address, options);
543
543
  } catch (error) {
544
544
  import_general.NoResponseTimeoutError.accept(error);
545
545
  throw new import_ControllerDiscovery.PairRetransmissionLimitReachedError(error.message);
546
546
  } finally {
547
- await unsecureSession.destroy();
547
+ await unsecuredSession.initiateClose();
548
548
  }
549
549
  }
550
- async #doCasePair(unsecureMessageChannel, address, options) {
550
+ async #doCasePair(paseSession, address, options) {
551
551
  const fabric = this.#sessions.fabricFor(address);
552
552
  let exchange;
553
553
  try {
554
- exchange = this.#exchanges.initiateExchangeWithChannel(unsecureMessageChannel, import_types.SECURE_CHANNEL_PROTOCOL_ID);
554
+ exchange = this.#exchanges.initiateExchangeForSession(paseSession, import_types.SECURE_CHANNEL_PROTOCOL_ID);
555
555
  const { session, resumed } = await this.#caseClient.pair(exchange, fabric, address.nodeId, options);
556
556
  if (!resumed) {
557
557
  this.#nodeCachedData.delete(address);
@@ -564,7 +564,7 @@ class PeerSet {
564
564
  logger.info(
565
565
  `Case client: Resumption record seems outdated for Fabric ${import_types.NodeId.toHexString(fabric.nodeId)} (index ${fabric.fabricIndex}) and PeerNode ${import_types.NodeId.toHexString(address.nodeId)}. Retrying pairing without resumption...`
566
566
  );
567
- return await this.#doCasePair(unsecureMessageChannel, address, options);
567
+ return await this.#doCasePair(paseSession, address, options);
568
568
  }
569
569
  }
570
570
  throw error;
@@ -591,22 +591,21 @@ class PeerSet {
591
591
  return discoveredAddresses?.addresses[0];
592
592
  }
593
593
  async #addOrUpdatePeer(address, operationalServerAddress, discoveryData) {
594
- let peer = this.#peersByAddress.get(address);
594
+ let peer = this.get(address);
595
595
  if (peer === void 0) {
596
- peer = { address, dataStore: await this.#store.createNodeStore(address) };
596
+ peer = new import_Peer.Peer({ address, dataStore: await this.#store.createNodeStore(address) }, this.#peerContext);
597
597
  this.#peers.add(peer);
598
598
  }
599
- peer.operationalAddress = operationalServerAddress ?? peer.operationalAddress;
599
+ peer.descriptor.operationalAddress = operationalServerAddress ?? peer.descriptor.operationalAddress;
600
600
  if (discoveryData !== void 0) {
601
- peer.discoveryData = {
602
- ...peer.discoveryData,
601
+ peer.descriptor.discoveryData = {
602
+ ...peer.descriptor.discoveryData,
603
603
  ...discoveryData
604
604
  };
605
605
  }
606
- await this.#store.updatePeer(peer);
607
- if (peer.operationalAddress !== void 0 && this.#runningPeerDiscoveries.has(address)) {
606
+ if (peer.descriptor.operationalAddress !== void 0 && peer.activeDiscovery) {
608
607
  logger.info(`Found ${address} during discovery, cancel discovery.`);
609
- const { mdnsClient: mdnsScanner } = this.#runningPeerDiscoveries.get(address) ?? {};
608
+ const { mdnsClient: mdnsScanner } = peer.activeDiscovery ?? {};
610
609
  mdnsScanner?.cancelOperationalDeviceDiscovery(this.#sessions.fabricFor(address), address.nodeId, true);
611
610
  }
612
611
  }
@@ -614,7 +613,7 @@ class PeerSet {
614
613
  return this.#addOrUpdatePeer(address, operationalServerAddress, discoveryData);
615
614
  }
616
615
  #getLastOperationalAddress(address) {
617
- return this.#peersByAddress.get(address)?.operationalAddress;
616
+ return this.get(address)?.descriptor.operationalAddress;
618
617
  }
619
618
  #handleFirstRetry(session) {
620
619
  if (!session.isSecure || session.fabric === void 0) {
@@ -625,15 +624,16 @@ class PeerSet {
625
624
  return;
626
625
  }
627
626
  const address = fabric.addressOf(nodeId);
628
- if (this.#runningPeerDiscoveries.has(address)) {
627
+ const peer = this.for(address);
628
+ if (peer.activeDiscovery) {
629
629
  return;
630
630
  }
631
- this.#runningPeerDiscoveries.set(address, { type: 1 /* RetransmissionDiscovery */ });
631
+ peer.activeDiscovery = { type: 1 /* RetransmissionDiscovery */ };
632
632
  this.#scanners.scannerFor(import_general.ChannelType.UDP)?.findOperationalDevice(fabric, nodeId, RETRANSMISSION_DISCOVERY_TIMEOUT, true).catch((error) => {
633
633
  logger.error(`Failed to discover ${address} after resubmission started.`, error);
634
634
  }).finally(() => {
635
- if (this.#runningPeerDiscoveries.get(address)?.type === 1 /* RetransmissionDiscovery */) {
636
- this.#runningPeerDiscoveries.delete(address);
635
+ if (peer.activeDiscovery?.type === 1 /* RetransmissionDiscovery */) {
636
+ peer.activeDiscovery = void 0;
637
637
  }
638
638
  });
639
639
  }