@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
@@ -5,32 +5,37 @@
5
5
  */
6
6
  import { Subject } from "#action/server/Subject.js";
7
7
  import { DecodedMessage, DecodedPacket, Message, Packet, SessionType } from "#codec/MessageCodec.js";
8
- import { Fabric } from "#fabric/Fabric.js";
9
- import { FabricManager } from "#fabric/FabricManager.js";
10
- import { Bytes } from "#general";
11
- import type { SessionManager } from "#session/SessionManager.js";
8
+ import type { Fabric } from "#fabric/Fabric.js";
9
+ import type { FabricManager } from "#fabric/FabricManager.js";
10
+ import { Bytes, ConnectionlessTransportSet } from "#general";
12
11
  import { FabricIndex, NodeId } from "#types";
13
12
  import { SecureSession } from "./SecureSession.js";
14
13
  import { Session } from "./Session.js";
14
+ import { SessionManager } from "./SessionManager.js";
15
15
  /** Secure Group session instance */
16
16
  export declare class GroupSession extends SecureSession {
17
17
  #private;
18
18
  readonly supportsMRP = false;
19
19
  readonly closingAfterExchangeFinished = false;
20
20
  readonly keySetId: number;
21
- constructor(args: {
21
+ constructor(config: GroupSession.Config);
22
+ /**
23
+ * Create an outbound group session.
24
+ */
25
+ static create(options: {
22
26
  manager?: SessionManager;
27
+ transports: ConnectionlessTransportSet;
23
28
  id: number;
24
29
  fabric: Fabric;
25
30
  keySetId: number;
26
- peerNodeId: NodeId;
31
+ groupNodeId: NodeId;
27
32
  operationalGroupKey: Bytes;
28
- });
33
+ }): Promise<GroupSession>;
29
34
  get type(): SessionType;
30
35
  get fabric(): Fabric;
31
36
  get id(): number;
32
37
  get peerSessionId(): number;
33
- get name(): string;
38
+ get via(): string;
34
39
  get nodeId(): NodeId;
35
40
  get peerNodeId(): NodeId;
36
41
  get associatedFabric(): Fabric;
@@ -54,10 +59,16 @@ export declare class GroupSession extends SecureSession {
54
59
  keySetId: number;
55
60
  fabric: Fabric;
56
61
  };
57
- destroy(): Promise<void>;
58
- end(): Promise<void>;
62
+ close(): Promise<void>;
59
63
  }
60
64
  export declare namespace GroupSession {
65
+ interface Config extends Session.CommonConfig {
66
+ id: number;
67
+ fabric: Fabric;
68
+ keySetId: number;
69
+ peerNodeId: NodeId;
70
+ operationalGroupKey: Bytes;
71
+ }
61
72
  function assert(session?: Session, errorText?: string): asserts session is GroupSession;
62
73
  function is(session?: Session): session is GroupSession;
63
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GroupSession.d.ts","sourceRoot":"","sources":["../../../src/session/GroupSession.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,OAAO,EAAgB,MAAM,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACnH,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EACH,KAAK,EAOR,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAW,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAIvC,oCAAoC;AACpC,qBAAa,YAAa,SAAQ,aAAa;;IAK3C,QAAQ,CAAC,WAAW,SAAS;IAC7B,QAAQ,CAAC,4BAA4B,SAAS;IAE9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,IAAI,EAAE;QACd,OAAO,CAAC,EAAE,cAAc,CAAC;QACzB,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,mBAAmB,EAAE,KAAK,CAAC;KAC9B;IAmBD,IAAa,IAAI,gBAEhB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,EAAE,WAEL;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,IAAI,WAEP;IAED,IAAI,MAAM,WAET;IAED,IAAI,UAAU,WAEb;IAED,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED;;OAEG;IACH,IAAI,WAAW;;;MAKd;IAED,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO;IAO7B,cAAc,CAAC,gBAAgB,EAAE,OAAO;IAIxC,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK;IAQjG,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAuBhC,MAAM,IAAI,cAAc;IAIxB,MAAM,CAAC,MAAM,CACT,OAAO,EAAE,aAAa,EACtB,EAAE,MAAM,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,EAAE,aAAa,EAC/D,GAAG,EAAE,KAAK,GACX;QACC,OAAO,EAAE,cAAc,CAAC;QACxB,GAAG,EAAE,KAAK,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAClB;IAuDK,OAAO;IAKb,GAAG;CAGN;AAED,yBAAiB,YAAY,CAAC;IAC1B,SAAgB,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,IAAI,YAAY,CAI7F;IAED,SAAgB,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,IAAI,YAAY,CAE7D;CACJ"}
1
+ {"version":3,"file":"GroupSession.d.ts","sourceRoot":"","sources":["../../../src/session/GroupSession.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,OAAO,EAAgB,MAAM,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAEnH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACH,KAAK,EAEL,0BAA0B,EAU7B,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,WAAW,EAAW,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAIrD,oCAAoC;AACpC,qBAAa,YAAa,SAAQ,aAAa;;IAK3C,QAAQ,CAAC,WAAW,SAAS;IAC7B,QAAQ,CAAC,4BAA4B,SAAS;IAE9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,MAAM,EAAE,YAAY,CAAC,MAAM;IAmBvC;;OAEG;WACU,MAAM,CAAC,OAAO,EAAE;QACzB,OAAO,CAAC,EAAE,cAAc,CAAC;QACzB,UAAU,EAAE,0BAA0B,CAAC;QACvC,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,mBAAmB,EAAE,KAAK,CAAC;KAC9B;IA6BD,IAAa,IAAI,gBAEhB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,EAAE,WAEL;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,GAAG,WAEN;IAED,IAAI,MAAM,WAET;IAED,IAAI,UAAU,WAEb;IAED,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED;;OAEG;IACH,IAAI,WAAW;;;MAKd;IAED,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO;IAO7B,cAAc,CAAC,gBAAgB,EAAE,OAAO;IAIxC,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK;IAQjG,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAuBhC,MAAM,IAAI,cAAc;IAIxB,MAAM,CAAC,MAAM,CACT,OAAO,EAAE,aAAa,EACtB,EAAE,MAAM,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,EAAE,aAAa,EAC/D,GAAG,EAAE,KAAK,GACX;QACC,OAAO,EAAE,cAAc,CAAC;QACxB,GAAG,EAAE,KAAK,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAClB;IAuDc,KAAK;CAIvB;AAED,yBAAiB,YAAY,CAAC;IAC1B,UAAiB,MAAO,SAAQ,OAAO,CAAC,YAAY;QAChD,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,mBAAmB,EAAE,KAAK,CAAC;KAC9B;IAED,SAAgB,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,IAAI,YAAY,CAI7F;IAED,SAAgB,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,IAAI,YAAY,CAE7D;CACJ"}
@@ -22,7 +22,9 @@ __export(GroupSession_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(GroupSession_exports);
24
24
  var import_MessageCodec = require("#codec/MessageCodec.js");
25
+ var import_Mark = require("#common/Mark.js");
25
26
  var import_general = require("#general");
27
+ var import_ControllerDiscovery = require("#peer/ControllerDiscovery.js");
26
28
  var import_PeerAddress = require("#peer/PeerAddress.js");
27
29
  var import_types = require("#types");
28
30
  var import_SecureSession = require("./SecureSession.js");
@@ -42,10 +44,10 @@ class GroupSession extends import_SecureSession.SecureSession {
42
44
  closingAfterExchangeFinished = false;
43
45
  // Group sessions do not close after exchange finished, they are long-lived
44
46
  keySetId;
45
- constructor(args) {
46
- const { manager, fabric, operationalGroupKey, id, peerNodeId, keySetId } = args;
47
+ constructor(config) {
48
+ const { manager, fabric, operationalGroupKey, id, peerNodeId, keySetId } = config;
47
49
  super({
48
- ...args,
50
+ ...config,
49
51
  setActiveTimestamp: false,
50
52
  // We always set the active timestamp for Secure sessions TODO Check
51
53
  messageCounter: fabric.groups.messaging.counterFor(operationalGroupKey)
@@ -57,7 +59,33 @@ class GroupSession extends import_SecureSession.SecureSession {
57
59
  this.#operationalGroupKey = operationalGroupKey;
58
60
  manager?.registerGroupSession(this);
59
61
  fabric.addSession(this);
60
- logger.debug(`Created secure GROUP session for fabric index ${fabric.fabricIndex}`, this.name);
62
+ logger.debug(this.via, `Created secure GROUP session for fabric index ${fabric.fabricIndex}`);
63
+ }
64
+ /**
65
+ * Create an outbound group session.
66
+ */
67
+ static async create(options) {
68
+ const { manager, transports, id, fabric, keySetId, groupNodeId, operationalGroupKey } = options;
69
+ const groupId = import_types.GroupId.fromNodeId(groupNodeId);
70
+ const multicastAddress = fabric.groups.multicastAddressFor(groupId);
71
+ const operationalInterface = transports.interfaceFor(import_general.ChannelType.UDP, multicastAddress);
72
+ if (operationalInterface === void 0) {
73
+ throw new import_ControllerDiscovery.PairRetransmissionLimitReachedError(`IPv6 interface not initialized`);
74
+ }
75
+ const channel = await operationalInterface.openChannel({
76
+ type: import_general.ChannelType.UDP,
77
+ ip: multicastAddress,
78
+ port: import_general.STANDARD_MATTER_PORT
79
+ });
80
+ return new GroupSession({
81
+ manager,
82
+ channel,
83
+ id,
84
+ fabric,
85
+ keySetId,
86
+ peerNodeId: groupNodeId,
87
+ operationalGroupKey
88
+ });
61
89
  }
62
90
  get type() {
63
91
  return import_MessageCodec.SessionType.Group;
@@ -71,8 +99,8 @@ class GroupSession extends import_SecureSession.SecureSession {
71
99
  get peerSessionId() {
72
100
  return this.#id;
73
101
  }
74
- get name() {
75
- return `group/${this.#id}`;
102
+ get via() {
103
+ return import_general.Diagnostic.via(`${import_Mark.Mark.SESSION}group#${import_general.hex.word(this.id)}`);
76
104
  }
77
105
  get nodeId() {
78
106
  return this.#fabric.nodeId;
@@ -180,18 +208,15 @@ class GroupSession extends import_SecureSession.SecureSession {
180
208
  }
181
209
  return { message, key, sessionId, sourceNodeId, keySetId, fabric };
182
210
  }
183
- async destroy() {
184
- logger.info(`End group session ${this.name}`);
211
+ async close() {
185
212
  this.manager?.removeGroupSession(this);
186
- }
187
- end() {
188
- return this.destroy();
213
+ await super.close();
189
214
  }
190
215
  }
191
216
  ((GroupSession2) => {
192
217
  function assert(session, errorText) {
193
218
  if (!is(session)) {
194
- throw new import_general.MatterFlowError(errorText ?? "Insecure session in secure context");
219
+ throw new import_general.MatterFlowError(errorText ?? "Unsecured session in secure context");
195
220
  }
196
221
  }
197
222
  GroupSession2.assert = assert;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/session/GroupSession.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["fabric", "GroupSession"]
6
6
  }
@@ -6,79 +6,61 @@
6
6
  import { Subject } from "#action/server/Subject.js";
7
7
  import { DecodedMessage, DecodedPacket, Message, Packet, SessionType } from "#codec/MessageCodec.js";
8
8
  import { Fabric } from "#fabric/Fabric.js";
9
- import { BasicSet, Bytes, Crypto, Logger, MatterError } from "#general";
10
- import type { Subscription } from "#interaction/Subscription.js";
9
+ import { AsyncObservableValue, BasicSet, Bytes, Crypto, Logger } from "#general";
10
+ import { Subscription } from "#interaction/Subscription.js";
11
11
  import { PeerAddress } from "#peer/PeerAddress.js";
12
+ import { MessageExchange } from "#protocol/MessageExchange.js";
12
13
  import { SecureChannelMessenger } from "#securechannel/SecureChannelMessenger.js";
13
- import { CaseAuthenticatedTag, FabricIndex, NodeId, StatusResponseError } from "#types";
14
+ import { CaseAuthenticatedTag, FabricIndex, NodeId } from "#types";
14
15
  import { SecureSession } from "./SecureSession.js";
15
- import { Session, SessionParameterOptions } from "./Session.js";
16
- import type { SessionManager } from "./SessionManager.js";
17
- export declare class NoChannelError extends MatterError {
18
- }
19
- export declare class NoAssociatedFabricError extends StatusResponseError {
20
- constructor(message: string);
21
- }
16
+ import { Session } from "./Session.js";
17
+ import { SessionParameters } from "./SessionParameters.js";
22
18
  export declare class NodeSession extends SecureSession {
23
19
  #private;
24
20
  readonly supportsMRP = true;
25
21
  readonly type = SessionType.Unicast;
26
- static create(args: {
27
- crypto: Crypto;
28
- manager?: SessionManager;
29
- id: number;
30
- fabric: Fabric | undefined;
31
- peerNodeId: NodeId;
32
- peerSessionId: number;
33
- sharedSecret: Bytes;
34
- salt: Bytes;
35
- isInitiator: boolean;
36
- isResumption: boolean;
37
- peerSessionParameters?: SessionParameterOptions;
38
- caseAuthenticatedTags?: CaseAuthenticatedTag[];
39
- }): Promise<NodeSession>;
40
- constructor(args: {
41
- crypto: Crypto;
42
- manager?: SessionManager;
43
- id: number;
44
- fabric: Fabric | undefined;
45
- peerNodeId: NodeId;
46
- peerSessionId: number;
47
- decryptKey: Bytes;
48
- encryptKey: Bytes;
49
- attestationKey: Bytes;
50
- sessionParameters?: SessionParameterOptions;
51
- caseAuthenticatedTags?: CaseAuthenticatedTag[];
52
- isInitiator: boolean;
53
- });
22
+ static create(config: NodeSession.CreateConfig): Promise<NodeSession>;
23
+ constructor(config: NodeSession.Config);
54
24
  get parameterDiagnostics(): Record<string, unknown>;
55
25
  get caseAuthenticatedTags(): CaseAuthenticatedTag[];
56
- get closingAfterExchangeFinished(): boolean;
57
- get sendCloseMessageWhenClosing(): boolean;
58
26
  get isPase(): boolean;
59
27
  get subscriptions(): BasicSet<Subscription, Subscription>;
60
28
  get isInitiator(): boolean;
61
- get isClosing(): boolean;
62
29
  subjectFor(_message?: Message): Subject;
63
- close(closeAfterExchangeFinished?: boolean): Promise<void>;
64
30
  decode({ header, applicationPayload, messageExtension }: DecodedPacket, aad: Bytes): DecodedMessage;
65
31
  encode(message: Message): Packet;
66
32
  get attestationChallengeKey(): Bytes;
67
33
  get fabric(): Fabric | undefined;
68
- addAssociatedFabric(fabric: Fabric): void;
34
+ set fabric(fabric: Fabric);
69
35
  get id(): number;
70
- get name(): string;
36
+ get via(): string;
71
37
  get peerSessionId(): number;
72
38
  get nodeId(): NodeId;
73
39
  get peerNodeId(): NodeId;
74
40
  get hasAssociatedFabric(): boolean;
75
41
  get associatedFabric(): Fabric;
76
- clearSubscriptions(flushSubscriptions?: boolean, cancelledByPeer?: boolean): Promise<number>;
77
- /** Ends a session. Outstanding subscription data will be flushed before the session is destroyed. */
78
- end(sendClose: boolean, closeAfterExchangeFinished?: boolean): Promise<void>;
79
- closeByPeer(): Promise<void>;
80
- /** Destroys a session. Outstanding subscription data will be discarded. */
81
- destroy(sendClose?: boolean, closeAfterExchangeFinished?: boolean, flushSubscriptions?: boolean): Promise<void>;
42
+ closeSubscriptions(flush?: boolean): Promise<number>;
43
+ get closedByPeer(): AsyncObservableValue<[any, ...any[]]>;
44
+ handlePeerClose(): Promise<void>;
45
+ handlePeerLoss(currentExchange?: MessageExchange): Promise<void>;
46
+ get isPeerLost(): boolean;
47
+ /**
48
+ * Close the session.
49
+ *
50
+ * If there are open subscriptions they are closed without flushing. To flush, use {@link closeSubscriptions}
51
+ * before invoking.
52
+ *
53
+ * TODO - subscription handling is only relevant for server; needs to move to server-specific component
54
+ *
55
+ * If there are active exchanges the close is deferred until the final exchange closes. To close sooner, use
56
+ * {@link initiateForceClose}.
57
+ *
58
+ * A final exchange will be opened to notify the peer of closure unless the peer is marked as lost.
59
+ */
60
+ initiateClose(shutdownLogic?: () => Promise<void>): Promise<void>;
61
+ initiateForceClose(currentExchange?: MessageExchange): Promise<void>;
62
+ addExchange(exchange: MessageExchange): void;
63
+ protected close(): Promise<void>;
82
64
  /**
83
65
  * The peer node's address.
84
66
  */
@@ -96,4 +78,28 @@ export declare namespace NodeSession {
96
78
  function is(session?: Session): session is NodeSession;
97
79
  function logNew(logger: Logger, operation: "New" | "Resumed", session: NodeSession, messenger: SecureChannelMessenger, fabric: Fabric, peerNodeId: NodeId): void;
98
80
  }
81
+ export declare namespace NodeSession {
82
+ interface CommonConfig extends Session.CommonConfig {
83
+ crypto: Crypto;
84
+ id: number;
85
+ fabric?: Fabric;
86
+ peerNodeId: NodeId;
87
+ peerSessionId: number;
88
+ caseAuthenticatedTags?: CaseAuthenticatedTag[];
89
+ }
90
+ interface Config extends CommonConfig {
91
+ decryptKey: Bytes;
92
+ encryptKey: Bytes;
93
+ attestationKey: Bytes;
94
+ sessionParameters?: SessionParameters.Config;
95
+ isInitiator: boolean;
96
+ }
97
+ interface CreateConfig extends CommonConfig {
98
+ sharedSecret: Bytes;
99
+ salt: Bytes;
100
+ isInitiator: boolean;
101
+ isResumption: boolean;
102
+ peerSessionParameters?: SessionParameters.Config;
103
+ }
104
+ }
99
105
  //# sourceMappingURL=NodeSession.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeSession.d.ts","sourceRoot":"","sources":["../../../src/session/NodeSession.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,OAAO,EAAgB,MAAM,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACnH,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EACH,QAAQ,EACR,KAAK,EAEL,MAAM,EAGN,MAAM,EACN,WAAW,EAEd,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,EAAc,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AACpG,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAO1D,qBAAa,cAAe,SAAQ,WAAW;CAAG;AAElD,qBAAa,uBAAwB,SAAQ,mBAAmB;gBAChD,OAAO,EAAE,MAAM;CAG9B;AAED,qBAAa,WAAY,SAAQ,aAAa;;IAe1C,QAAQ,CAAC,WAAW,QAAQ;IAC5B,QAAQ,CAAC,IAAI,uBAAuB;WAEvB,MAAM,CAAC,IAAI,EAAE;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,cAAc,CAAC;QACzB,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,KAAK,CAAC;QACpB,IAAI,EAAE,KAAK,CAAC;QACZ,WAAW,EAAE,OAAO,CAAC;QACrB,YAAY,EAAE,OAAO,CAAC;QACtB,qBAAqB,CAAC,EAAE,uBAAuB,CAAC;QAChD,qBAAqB,CAAC,EAAE,oBAAoB,EAAE,CAAC;KAClD;gBA0CW,IAAI,EAAE;QACd,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,cAAc,CAAC;QACzB,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,KAAK,CAAC;QAClB,UAAU,EAAE,KAAK,CAAC;QAClB,cAAc,EAAE,KAAK,CAAC;QACtB,iBAAiB,CAAC,EAAE,uBAAuB,CAAC;QAC5C,qBAAqB,CAAC,EAAE,oBAAoB,EAAE,CAAC;QAC/C,WAAW,EAAE,OAAO,CAAC;KACxB;IAgDD,IAAI,oBAAoB,4BAcvB;IAED,IAAI,qBAAqB,2BAExB;IAED,IAAI,4BAA4B,YAE/B;IAED,IAAI,2BAA2B,YAE9B;IAED,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,IAAI,aAAa,yCAEhB;IAED,IAAI,WAAW,YAEd;IAED,IAAI,SAAS,YAEZ;IAED,UAAU,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO;IAOjC,KAAK,CAAC,0BAA0B,CAAC,EAAE,OAAO;IAOhD,MAAM,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,KAAK,GAAG,cAAc;IAqBnG,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAehC,IAAI,uBAAuB,IAAI,KAAK,CAEnC;IAED,IAAI,MAAM,uBAET;IAED,mBAAmB,CAAC,MAAM,EAAE,MAAM;IAOlC,IAAI,EAAE,WAEL;IAED,IAAI,IAAI,WAEP;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,MAAM,WAET;IAED,IAAI,UAAU,WAEb;IAED,IAAI,mBAAmB,YAEtB;IAED,IAAI,gBAAgB,IAAI,MAAM,CAO7B;IAEK,kBAAkB,CAAC,kBAAkB,UAAQ,EAAE,eAAe,UAAQ;IAQ5E,qGAAqG;IAC/F,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,0BAA0B,UAAQ;IAK1D,WAAW;IAKjB,2EAA2E;IACrE,OAAO,CAAC,SAAS,UAAQ,EAAE,0BAA0B,UAAO,EAAE,kBAAkB,UAAQ;IA8B9F;;OAEG;IACH,IAAI,WAAW;;;MAKd;IAED;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,WAAW;CAM9B;AAED,yBAAiB,WAAW,CAAC;IACzB,SAAgB,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,IAAI,WAAW,CAI5F;IAED,SAAgB,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,IAAI,WAAW,CAE5D;IAED,SAAgB,MAAM,CAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,KAAK,GAAG,SAAS,EAC5B,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,sBAAsB,EACjC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,QAYrB;CACJ"}
1
+ {"version":3,"file":"NodeSession.d.ts","sourceRoot":"","sources":["../../../src/session/NodeSession.ts"],"names":[],"mappings":"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"}