@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
@@ -50,6 +50,7 @@ var __callDispose = (stack, error, hasError) => {
50
50
  */
51
51
  import { Invoke } from "#action/request/Invoke.js";
52
52
  import { resolvePathForSpecifier } from "#action/request/Specifier.js";
53
+ import { Mark } from "#common/Mark.js";
53
54
  import {
54
55
  Abort,
55
56
  BasicSet,
@@ -64,6 +65,7 @@ import {
64
65
  Seconds
65
66
  } from "#general";
66
67
  import { InteractionClientMessenger, MessageType } from "#interaction/InteractionMessenger.js";
68
+ import { Subscription } from "#interaction/Subscription.js";
67
69
  import { ExchangeProvider } from "#protocol/ExchangeProvider.js";
68
70
  import { SecureSession } from "#session/SecureSession.js";
69
71
  import { Status, TlvNoResponse, TlvSubscribeResponse } from "#types";
@@ -77,6 +79,7 @@ const SUBSCRIPTION_MAX_INTERVAL_PUBLISHER_LIMIT = Minutes(60);
77
79
  const DEFAULT_TIMED_REQUEST_TIMEOUT = Seconds(10);
78
80
  const DEFAULT_MINIMUM_RESPONSE_TIMEOUT_WITH_FAILSAFE = Seconds(30);
79
81
  class ClientInteraction {
82
+ #lifetime;
80
83
  #exchanges;
81
84
  #subscriptions;
82
85
  #interactions = new BasicSet();
@@ -90,14 +93,31 @@ class ClientInteraction {
90
93
  environment.get(Entropy),
91
94
  RetrySchedule.Configuration(SustainedSubscription.DefaultRetrySchedule, sustainRetries)
92
95
  );
96
+ this.#lifetime = environment.join("interactions");
97
+ Object.defineProperties(this.#lifetime.details, {
98
+ "# active": {
99
+ get: () => {
100
+ return this.#interactions.size;
101
+ },
102
+ enumerable: true
103
+ }
104
+ });
93
105
  }
94
106
  get session() {
95
107
  return this.#exchanges.session;
96
108
  }
97
109
  async close() {
98
- this.#abort();
99
- while (this.#interactions.size) {
100
- await this.#interactions.deleted;
110
+ var _stack = [];
111
+ try {
112
+ const _closing = __using(_stack, this.#lifetime.closing());
113
+ this.#abort();
114
+ while (this.#interactions.size) {
115
+ await this.#interactions.deleted;
116
+ }
117
+ } catch (_) {
118
+ var _error = _, _hasError = true;
119
+ } finally {
120
+ __callDispose(_stack, _error, _hasError);
101
121
  }
102
122
  }
103
123
  get subscriptions() {
@@ -115,9 +135,9 @@ class ClientInteraction {
115
135
  "Read interactions with more then 9 paths might be not allowed by the device. Consider splitting then into several read requests."
116
136
  );
117
137
  }
118
- const context = __using(_stack, await this.#begin(request, session), true);
138
+ const context = __using(_stack, await this.#begin("reading", request, session), true);
119
139
  const { checkAbort, messenger } = context;
120
- logger.debug("Read \xBB", messenger.exchange.via, request);
140
+ logger.debug("Read", Mark.OUTBOUND, messenger.exchange.via, request);
121
141
  await messenger.sendReadRequest(request);
122
142
  checkAbort();
123
143
  let attributeReportCount = 0;
@@ -131,7 +151,8 @@ class ClientInteraction {
131
151
  checkAbort();
132
152
  }
133
153
  logger.debug(
134
- "Read \xAB",
154
+ "Read",
155
+ Mark.INBOUND,
135
156
  messenger.exchange.via,
136
157
  Diagnostic.weak(
137
158
  attributeReportCount + eventReportCount === 0 ? "(empty)" : Diagnostic.dict({ attributes: attributeReportCount, events: eventReportCount })
@@ -153,13 +174,13 @@ class ClientInteraction {
153
174
  async write(request, session) {
154
175
  var _stack = [];
155
176
  try {
156
- const context = __using(_stack, await this.#begin(request, session), true);
177
+ const context = __using(_stack, await this.#begin("writing", request, session), true);
157
178
  const { checkAbort, messenger } = context;
158
179
  if (request.timedRequest) {
159
180
  await messenger.sendTimedRequest(request.timeout ?? DEFAULT_TIMED_REQUEST_TIMEOUT);
160
181
  checkAbort();
161
182
  }
162
- logger.info("Write \xBB", messenger.exchange.via, request);
183
+ logger.info("Write", Mark.OUTBOUND, messenger.exchange.via, request);
163
184
  const response = await messenger.sendWriteCommand(request);
164
185
  checkAbort();
165
186
  if (request.suppressResponse) {
@@ -195,7 +216,8 @@ class ClientInteraction {
195
216
  }
196
217
  );
197
218
  logger.info(
198
- "Write \xAB",
219
+ "Write",
220
+ Mark.INBOUND,
199
221
  messenger.exchange.via,
200
222
  Diagnostic.weak(
201
223
  successCount + failureCount === 0 ? "(empty)" : Diagnostic.dict({ success: successCount, failure: failureCount })
@@ -215,14 +237,15 @@ class ClientInteraction {
215
237
  async *invoke(request, session) {
216
238
  var _stack = [];
217
239
  try {
218
- const context = __using(_stack, await this.#begin(request, session), true);
240
+ const context = __using(_stack, await this.#begin("invoking", request, session), true);
219
241
  const { checkAbort, messenger } = context;
220
242
  if (request.timedRequest) {
221
243
  await messenger.sendTimedRequest(request.timeout ?? DEFAULT_TIMED_REQUEST_TIMEOUT);
222
244
  checkAbort();
223
245
  }
224
246
  logger.info(
225
- "Invoke \xBB",
247
+ "Invoke",
248
+ Mark.OUTBOUND,
226
249
  messenger.exchange.via,
227
250
  Diagnostic.asFlags({ suppressResponse: request.suppressResponse, timed: request.timedRequest }),
228
251
  request
@@ -256,7 +279,8 @@ class ClientInteraction {
256
279
  }
257
280
  const data = commandFields === void 0 ? void 0 : responseSchema.decodeTlv(commandFields);
258
281
  logger.info(
259
- "Invoke \xAB",
282
+ "Invoke",
283
+ Mark.INBOUND,
260
284
  messenger.exchange.via,
261
285
  Diagnostic.strong(resolvePathForSpecifier(cmd)),
262
286
  isObject(data) ? Diagnostic.dict(data) : Diagnostic.weak("(no payload)")
@@ -318,7 +342,7 @@ class ClientInteraction {
318
342
  if (!request.keepSubscriptions) {
319
343
  for (const subscription2 of this.#subscriptions) {
320
344
  logger.debug(
321
- `Removing subscription with ID ${subscription2.subscriptionId} because new subscription replaces it`
345
+ `Removing subscription with ID ${Subscription.idStrOf(subscription2)} because new subscription replaces it`
322
346
  );
323
347
  subscription2.close();
324
348
  }
@@ -339,7 +363,7 @@ class ClientInteraction {
339
363
  const subscribe = async (request2) => {
340
364
  var _stack = [];
341
365
  try {
342
- const context = __using(_stack, await this.#begin(request2, session), true);
366
+ const context = __using(_stack, await this.#begin("subscribing", request2, session), true);
343
367
  const { checkAbort, messenger } = context;
344
368
  logger.info(
345
369
  "Subscribe \xBB",
@@ -362,7 +386,8 @@ class ClientInteraction {
362
386
  const responseMessage = await messenger.nextMessage(MessageType.SubscribeResponse);
363
387
  const response = TlvSubscribeResponse.decode(responseMessage.payload);
364
388
  logger.info(
365
- "Subscription successful \xAB",
389
+ "Subscription successful",
390
+ Mark.INBOUND,
366
391
  messenger.exchange.via,
367
392
  Diagnostic.dict({
368
393
  id: response.subscriptionId,
@@ -370,6 +395,7 @@ class ClientInteraction {
370
395
  })
371
396
  );
372
397
  const subscription2 = new PeerSubscription({
398
+ lifetime: this.#subscriptions,
373
399
  request: request2,
374
400
  peer,
375
401
  closed: () => this.#subscriptions.delete(subscription2),
@@ -388,6 +414,7 @@ class ClientInteraction {
388
414
  let subscription;
389
415
  if (request.sustain) {
390
416
  subscription = new SustainedSubscription({
417
+ lifetime: this.#subscriptions,
391
418
  subscribe,
392
419
  peer,
393
420
  closed: () => this.#subscriptions.delete(subscription),
@@ -408,27 +435,48 @@ class ClientInteraction {
408
435
  for await (const _chunk of result) ;
409
436
  }
410
437
  }
411
- async #begin(request, session) {
412
- if (this.#abort.aborted) {
413
- throw new ImplementationError("Client interaction unavailable after close");
414
- }
415
- this.#interactions.add(request);
416
- const checkAbort = Abort.checkerFor(session);
417
- const messenger = await InteractionClientMessenger.create(this.#exchanges);
418
- const context = {
419
- checkAbort,
420
- messenger,
421
- [Symbol.asyncDispose]: async () => {
422
- await messenger.close();
423
- this.#interactions.delete(request);
424
- }
425
- };
438
+ async #begin(what, request, session) {
439
+ var _stack = [];
426
440
  try {
427
- context.checkAbort();
428
- } catch (e) {
429
- await context[Symbol.asyncDispose]();
441
+ const lifetime = __using(_stack, this.#lifetime.join(what));
442
+ if (this.#abort.aborted) {
443
+ throw new ImplementationError("Client interaction unavailable after close");
444
+ }
445
+ this.#interactions.add(request);
446
+ const checkAbort = Abort.checkerFor(session);
447
+ const messenger = await InteractionClientMessenger.create(this.#exchanges);
448
+ Object.defineProperty(lifetime.details, "via", {
449
+ get() {
450
+ return messenger.exchange.via;
451
+ }
452
+ });
453
+ const context = {
454
+ checkAbort,
455
+ messenger,
456
+ [Symbol.asyncDispose]: async () => {
457
+ var _stack2 = [];
458
+ try {
459
+ const _closing = __using(_stack2, lifetime.closing());
460
+ await messenger.close();
461
+ this.#interactions.delete(request);
462
+ } catch (_2) {
463
+ var _error2 = _2, _hasError2 = true;
464
+ } finally {
465
+ __callDispose(_stack2, _error2, _hasError2);
466
+ }
467
+ }
468
+ };
469
+ try {
470
+ context.checkAbort();
471
+ } catch (e) {
472
+ await context[Symbol.asyncDispose]();
473
+ }
474
+ return context;
475
+ } catch (_) {
476
+ var _error = _, _hasError = true;
477
+ } finally {
478
+ __callDispose(_stack, _error, _hasError);
430
479
  }
431
- return context;
432
480
  }
433
481
  }
434
482
  async function* readChunks(messenger) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/action/client/ClientInteraction.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAuB,cAAc;AAErC,SAAS,+BAA+B;AAMxC;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,4BAA4B,mBAAmB;AACxD,SAAS,wBAAwB;AACjC,SAAS,qBAAqB;AAC9B,SAAS,QAA4B,eAAe,4BAA4C;AAChG,SAAS,kBAAkB;AAG3B,SAAS,2BAA2B;AACpC,SAAS,wBAAwB;AACjC,SAAS,6BAA6B;AAEtC,MAAM,SAAS,OAAO,IAAI,mBAAmB;AAQtC,MAAM,6BAA6B,QAAQ,CAAC;AAQ5C,MAAM,4CAA4C,QAAQ,EAAE;AAEnE,MAAM,gCAAgC,QAAQ,EAAE;AAChD,MAAM,iDAAiD,QAAQ,EAAE;AAK1D,MAAM,kBAEuB;AAAA,EACvB;AAAA,EACA;AAAA,EACA,gBAAgB,IAAI,SAA4C;AAAA,EAChE;AAAA,EACA;AAAA,EAET,YAAY,EAAE,aAAa,OAAO,eAAe,GAA6B;AAC1E,SAAK,aAAa,YAAY,IAAI,gBAAgB;AAClD,SAAK,iBAAiB,YAAY,IAAI,mBAAmB;AACzD,SAAK,SAAS,MAAM,QAAQ,KAAK;AACjC,SAAK,kBAAkB,IAAI;AAAA,MACvB,YAAY,IAAI,OAAO;AAAA,MACvB,cAAc,cAAc,sBAAsB,sBAAsB,cAAc;AAAA,IAC1F;AAAA,EACJ;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,KAAK,WAAW;AAAA,EAC3B;AAAA,EAEA,MAAM,QAAQ;AACV,SAAK,OAAO;AAEZ,WAAO,KAAK,cAAc,MAAM;AAC5B,YAAM,KAAK,cAAc;AAAA,IAC7B;AAAA,EACJ;AAAA,EAEA,IAAI,gBAAgB;AAChB,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,KAAK,SAAe,SAAgC;AAQvD;AAAA;AAPA,YAAM,kBAAkB,QAAQ,mBAAmB,UAAU,MAAM,QAAQ,eAAe,UAAU;AACpG,UAAI,iBAAiB,GAAG;AACpB,eAAO;AAAA,UACH;AAAA,QACJ;AAAA,MACJ;AAEA,YAAY,UAAU,sBAAM,KAAK,OAAO,SAAS,OAAO,GAAlC;AACtB,YAAM,EAAE,YAAY,UAAU,IAAI;AAElC,aAAO,MAAM,aAAU,UAAU,SAAS,KAAK,OAAO;AACtD,YAAM,UAAU,gBAAgB,OAAO;AACvC,iBAAW;AAEX,UAAI,uBAAuB;AAC3B,UAAI,mBAAmB;AAEvB,YAAM,eAAe,IAAI,MAAiD;AAC1E,uBAAiB,UAAU,UAAU,gBAAgB,GAAG;AACpD,mBAAW;AACX,gCAAwB,OAAO,kBAAkB,UAAU;AAC3D,4BAAoB,OAAO,cAAc,UAAU;AACnD,cAAM,WAAW,QAAQ,YAAY;AACrC,mBAAW;AAAA,MACf;AAEA,aAAO;AAAA,QACH;AAAA,QACA,UAAU,SAAS;AAAA,QACnB,WAAW;AAAA,UACP,uBAAuB,qBAAqB,IACtC,YACA,WAAW,KAAK,EAAE,YAAY,sBAAsB,QAAQ,iBAAiB,CAAC;AAAA,QACxF;AAAA,MACJ;AAAA,aA3BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EA4BJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,MAAuB,SAAY,SAAoC;AACzE;AAAA;AAAA,YAAY,UAAU,sBAAM,KAAK,OAAO,SAAS,OAAO,GAAlC;AACtB,YAAM,EAAE,YAAY,UAAU,IAAI;AAElC,UAAI,QAAQ,cAAc;AACtB,cAAM,UAAU,iBAAiB,QAAQ,WAAW,6BAA6B;AACjF,mBAAW;AAAA,MACf;AAEA,aAAO,KAAK,cAAW,UAAU,SAAS,KAAK,OAAO;AAEtD,YAAM,WAAW,MAAM,UAAU,iBAAiB,OAAO;AACzD,iBAAW;AACX,UAAI,QAAQ,kBAAkB;AAC1B,eAAO;AAAA,MACX;AACA,UAAI,CAAC,YAAY,CAAC,SAAS,gBAAgB,QAAQ;AAC/C,eAAO,CAAC;AAAA,MACZ;AAEA,UAAI,eAAe;AACnB,UAAI,eAAe;AACnB,YAAM,SAAS,SAAS,eAAe;AAAA,QACnC,CAAC;AAAA,UACG,MAAM,EAAE,QAAQ,YAAY,WAAW,aAAa,UAAU;AAAA,UAC9D,QAAQ,EAAE,QAAQ,cAAc;AAAA,QACpC,MAAM;AACF,cAAI,WAAW,OAAO,SAAS;AAC3B;AAAA,UACJ,OAAO;AACH;AAAA,UACJ;AACA,iBAAO;AAAA,YACH,MAAM;AAAA,YACN,MAAM;AAAA,cACF;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACJ;AAAA,YACA;AAAA,YACA;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAEA,aAAO;AAAA,QACH;AAAA,QACA,UAAU,SAAS;AAAA,QACnB,WAAW;AAAA,UACP,eAAe,iBAAiB,IAC1B,YACA,WAAW,KAAK,EAAE,SAAS,cAAc,SAAS,aAAa,CAAC;AAAA,QAC1E;AAAA,MACJ;AAEA,aAAO;AAAA,aAxDP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAyDJ;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,OAAO,SAAuB,SAAyC;AAC1E;AAAA;AAAA,YAAY,UAAU,sBAAM,KAAK,OAAO,SAAS,OAAO,GAAlC;AACtB,YAAM,EAAE,YAAY,UAAU,IAAI;AAElC,UAAI,QAAQ,cAAc;AACtB,cAAM,UAAU,iBAAiB,QAAQ,WAAW,6BAA6B;AACjF,mBAAW;AAAA,MACf;AAEA,aAAO;AAAA,QACH;AAAA,QACA,UAAU,SAAS;AAAA,QACnB,WAAW,QAAQ,EAAE,kBAAkB,QAAQ,kBAAkB,OAAO,QAAQ,aAAa,CAAC;AAAA,QAC9F;AAAA,MACJ;AAEA,YAAM,EAAE,wBAAwB,0CAA0C,IAAI;AAC9E,YAAM,SAAS,MAAM,UAAU;AAAA,QAC3B;AAAA,QACA,2BACK,4CACK,iDACA;AAAA,MACd;AACA,iBAAW;AACX,UAAI,CAAC,QAAQ,kBAAkB;AAC3B,YAAI,UAAU,OAAO,iBAAiB,QAAQ;AAC1C,gBAAM,QAA4B,OAAO,gBACpC,IAAI,cAAY;AACb,gBAAI,SAAS,YAAY,QAAW;AAChC,oBAAM;AAAA,gBACF,aAAa,EAAE,YAAY,WAAW,UAAU;AAAA,gBAChD;AAAA,gBACA;AAAA,cACJ,IAAI,SAAS;AACb,oBAAM,MAAM,QAAQ,SAAS,IAAI,UAAU;AAC3C,kBAAI,CAAC,KAAK;AACN,sBAAM,IAAI;AAAA,kBACN,2CAA2C,UAAU,cAAc,UAAU,aAAa,SAAS,aAAa,SAAS;AAAA,gBAC7H;AAAA,cACJ;AACA,oBAAM,iBAAiB,OAAO,UAAU,GAAG,EAAE;AAC7C,kBAAI,kBAAkB,UAAa,mBAAmB,eAAe;AACjE,sBAAM,IAAI;AAAA,kBACN,0CAA0C,UAAU,cAAc,UAAU,aAAa,SAAS,aAAa,SAAS;AAAA,gBAC5H;AAAA,cACJ;AAEA,oBAAM,OACF,kBAAkB,SAAY,SAAY,eAAe,UAAU,aAAa;AAEpF,qBAAO;AAAA,gBACH;AAAA,gBACA,UAAU,SAAS;AAAA,gBACnB,WAAW,OAAO,wBAAwB,GAAG,CAAC;AAAA,gBAC9C,SAAS,IAAI,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,cAAc;AAAA,cAC3E;AAEA,oBAAM,MAA2C;AAAA,gBAC7C,MAAM;AAAA,gBACN,MAAM;AAAA,kBACF;AAAA,kBACA;AAAA,kBACA;AAAA,gBACJ;AAAA,gBACA;AAAA,gBACA;AAAA,cACJ;AACA,qBAAO;AAAA,YACX,WAAW,SAAS,WAAW,QAAW;AACtC,oBAAM;AAAA,gBACF,aAAa,EAAE,YAAY,WAAW,UAAU;AAAA,gBAChD;AAAA,gBACA,QAAQ,EAAE,QAAQ,cAAc;AAAA,cACpC,IAAI,SAAS;AACb,oBAAM,MAAkC;AAAA,gBACpC,MAAM;AAAA,gBACN,MAAM;AAAA,kBACF;AAAA,kBACA;AAAA,kBACA;AAAA,gBACJ;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,cACJ;AACA,qBAAO;AAAA,YACX,OAAO;AAEH,qBAAO;AAAA,YACX;AAAA,UACJ,CAAC,EACA,OAAO,OAAK,MAAM,MAAS;AAChC,gBAAM;AAAA,QACV,OAAO;AACH,gBAAM,CAAC;AAAA,QACX;AACA,mBAAW;AAAA,MACf;AAAA,aAjGA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkGJ;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,UAAU,SAA0B,SAAoB;AAC1D,UAAM,0BAA0B,QAAQ,mBAAmB,UAAU,MAAM,QAAQ,eAAe,UAAU;AAC5G,QAAI,yBAAyB,GAAG;AAC5B,aAAO,MAAM,mFAAmF;AAAA,IACpG;AAEA,QAAI,CAAC,QAAQ,mBAAmB;AAC5B,iBAAWA,iBAAgB,KAAK,gBAAgB;AAC5C,eAAO;AAAA,UACH,iCAAiCA,cAAa,cAAc;AAAA,QAChE;AACA,QAAAA,cAAa,MAAM;AAAA,MACvB;AAAA,IACJ;AAEA,UAAM;AAAA,MACF,mBAAmB;AAAA,MACnB,qBAAqB;AAAA,IACzB,IAAI;AAEJ,QAAI,qBAAqB,kBAAkB;AACvC,YAAM,IAAI;AAAA,QACN,qDAAqD,SAAS;AAAA,UAC1D;AAAA,QACJ,CAAC,oCAAoC,SAAS,OAAO,gBAAgB,CAAC;AAAA,MAC1E;AAAA,IACJ;AAEA,kBAAc,OAAO,KAAK,WAAW,OAAO;AAC5C,UAAM,OAAO,KAAK,WAAW,QAAQ;AAErC,UAAM,YAAY,OAAOC,aAA6B;AAClD;AAAA;AAAA,cAAY,UAAU,sBAAM,KAAK,OAAOA,UAAS,OAAO,GAAlC;AACtB,cAAM,EAAE,YAAY,UAAU,IAAI;AAElC,eAAO;AAAA,UACH;AAAA,UACA,UAAU,SAAS;AAAA,UACnB,WAAW,QAAQ,EAAE,mBAAmBA,SAAQ,kBAAkB,CAAC;AAAA,UACnE,WAAW,KAAK;AAAA,YACZ,KAAK,SAAS,OAAOA,SAAQ,gBAAgB;AAAA,YAC7C,KAAK,SAAS,OAAOA,SAAQ,kBAAkB;AAAA,UACnD,CAAC;AAAA,UACDA;AAAA,QACJ;AAEA,cAAM,UAAU,qBAAqB;AAAA,UACjC,GAAGA;AAAA,UACH,yBAAyB,QAAQ,GAAG,gBAAgB;AAAA,UACpD,2BAA2B,QAAQ,GAAG,kBAAkB;AAAA,QAC5D,CAAC;AACD,mBAAW;AAEX,cAAM,KAAK,4BAA4BA,UAAS,WAAW,SAAS,CAAC;AACrE,mBAAW;AAEX,cAAM,kBAAkB,MAAM,UAAU,YAAY,YAAY,iBAAiB;AACjF,cAAM,WAAW,qBAAqB,OAAO,gBAAgB,OAAO;AAEpE,eAAO;AAAA,UACH;AAAA,UACA,UAAU,SAAS;AAAA,UACnB,WAAW,KAAK;AAAA,YACZ,IAAI,SAAS;AAAA,YACb,UAAU,SAAS,OAAO,QAAQ,SAAS,WAAW,CAAC;AAAA,UAC3D,CAAC;AAAA,QACL;AAEA,cAAMD,gBAAe,IAAI,iBAAiB;AAAA,UACtC,SAAAC;AAAA,UACA;AAAA,UACA,QAAQ,MAAM,KAAK,eAAe,OAAOD,aAAY;AAAA,UACrD;AAAA,UACA,OAAO,SAAS;AAAA,QACpB,CAAC;AACD,aAAK,eAAe,QAAQA,aAAY;AAExC,eAAOA;AAAA,eA7CP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IA8CJ;AAEA,QAAI;AACJ,QAAI,QAAQ,SAAS;AACjB,qBAAe,IAAI,sBAAsB;AAAA,QACrC;AAAA,QACA;AAAA,QACA,QAAQ,MAAM,KAAK,eAAe,OAAO,YAAY;AAAA,QACrD;AAAA,QACA,OAAO,SAAS;AAAA,QAChB,SAAS,KAAK;AAAA,MAClB,CAAC;AAAA,IACL,OAAO;AACH,qBAAe,MAAM,UAAU,OAAO;AAAA,IAC1C;AAEA,SAAK,eAAe,UAAU,YAAY;AAE1C,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,4BAA4B,SAAoB,QAAoB;AACtE,QAAI,QAAQ,SAAS;AACjB,YAAM,QAAQ,QAAQ,MAAM;AAAA,IAChC,OAAO;AAMH,uBAAiB,UAAU,OAAO;AAAA,IACtC;AAAA,EACJ;AAAA,EAEA,MAAM,OAAO,SAA4C,SAA+B;AACpF,QAAI,KAAK,OAAO,SAAS;AACrB,YAAM,IAAI,oBAAoB,4CAA4C;AAAA,IAC9E;AACA,SAAK,cAAc,IAAI,OAAO;AAE9B,UAAM,aAAa,MAAM,WAAW,OAAO;AAE3C,UAAM,YAAY,MAAM,2BAA2B,OAAO,KAAK,UAAU;AAEzE,UAAM,UAA0B;AAAA,MAC5B;AAAA,MACA;AAAA,MACA,CAAC,OAAO,YAAY,GAAG,YAAY;AAC/B,cAAM,UAAU,MAAM;AACtB,aAAK,cAAc,OAAO,OAAO;AAAA,MACrC;AAAA,IACJ;AAEA,QAAI;AACA,cAAQ,WAAW;AAAA,IACvB,SAAS,GAAG;AACR,YAAM,QAAQ,OAAO,YAAY,EAAE;AAAA,IACvC;AAEA,WAAO;AAAA,EACX;AACJ;AASA,gBAAgB,WAAW,WAAuC;AAC9D,QAAM,eAAe,IAAI,MAAiD;AAC1E,mBAAiB,UAAU,UAAU,gBAAgB,GAAG;AACpD,UAAM,WAAW,QAAQ,YAAY;AAAA,EACzC;AACJ;",
5
- "names": ["subscription", "request"]
4
+ "mappings": "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",
5
+ "names": ["subscription", "request", "_stack", "_", "_error", "_hasError"]
6
6
  }
@@ -5,9 +5,10 @@
5
5
  */
6
6
  import type { Subscribe } from "#action/request/Subscribe.js";
7
7
  import type { ActiveSubscription } from "#action/response/SubscribeResult.js";
8
- import { Abort, Logger } from "#general";
9
- import { PeerAddress } from "#peer/PeerAddress.js";
10
- import { ClientSubscribe } from "./ClientSubscribe.js";
8
+ import { Abort, Lifetime, Logger } from "#general";
9
+ import type { SubscriptionId } from "#interaction/Subscription.js";
10
+ import type { PeerAddress } from "#peer/PeerAddress.js";
11
+ import type { ClientSubscribe } from "./ClientSubscribe.js";
11
12
  /**
12
13
  * The client view of an established Matter subscription.
13
14
  */
@@ -15,23 +16,27 @@ export declare abstract class ClientSubscription implements ActiveSubscription {
15
16
  #private;
16
17
  readonly request: Subscribe;
17
18
  readonly peer: PeerAddress;
18
- abstract subscriptionId: number;
19
19
  abstract maxInterval: number;
20
20
  abstract interactionModelRevision: number;
21
21
  /**
22
22
  * If the subscription has an async worker, this is the promise associated with the worker.
23
23
  */
24
24
  done?: Promise<void>;
25
- constructor({ request, peer, closed, abort }: ClientSubscription.Configuration);
25
+ constructor({ request, peer, closed, abort, lifetime }: ClientSubscription.Configuration);
26
+ get kind(): string;
27
+ get subscriptionId(): SubscriptionId;
28
+ set subscriptionId(id: SubscriptionId);
26
29
  close(): void;
27
30
  protected get abort(): Abort;
28
31
  protected get logger(): Logger;
29
32
  }
30
33
  export declare namespace ClientSubscription {
34
+ const NO_SUBSCRIPTION = -1;
31
35
  interface Configuration {
32
36
  request: ClientSubscribe;
33
37
  peer: PeerAddress;
34
38
  closed: () => void;
39
+ lifetime: Lifetime.Owner;
35
40
  abort?: AbortSignal;
36
41
  }
37
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ClientSubscription.d.ts","sourceRoot":"","sources":["../../../../../src/action/client/subscription/ClientSubscription.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,KAAK,EAAc,MAAM,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAIvD;;GAEG;AACH,8BAAsB,kBAAmB,YAAW,kBAAkB;;IAClE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAE1C;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;gBAMT,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,kBAAkB,CAAC,aAAa;IAU9E,KAAK;IA4BL,SAAS,KAAK,KAAK,UAElB;IAED,SAAS,KAAK,MAAM,WAEnB;CACJ;AAED,yBAAiB,kBAAkB,CAAC;IAChC,UAAiB,aAAa;QAC1B,OAAO,EAAE,eAAe,CAAC;QACzB,IAAI,EAAE,WAAW,CAAC;QAClB,MAAM,EAAE,MAAM,IAAI,CAAC;QACnB,KAAK,CAAC,EAAE,WAAW,CAAC;KACvB;CACJ"}
1
+ {"version":3,"file":"ClientSubscription.d.ts","sourceRoot":"","sources":["../../../../../src/action/client/subscription/ClientSubscription.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,KAAK,EAA0B,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI5D;;GAEG;AACH,8BAAsB,kBAAmB,YAAW,kBAAkB;;IAClE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAE1C;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;gBAQT,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,kBAAkB,CAAC,aAAa;IAWxF,IAAI,IAAI,WAEP;IAED,IAAI,cAAc,IAIK,cAAc,CAFpC;IAED,IAAI,cAAc,CAAC,EAAE,EAAE,cAAc,EAGpC;IAED,KAAK;IAkCL,SAAS,KAAK,KAAK,UAElB;IAED,SAAS,KAAK,MAAM,WAEnB;CACJ;AAED,yBAAiB,kBAAkB,CAAC;IACzB,MAAM,eAAe,KAAK,CAAC;IAElC,UAAiB,aAAa;QAC1B,OAAO,EAAE,eAAe,CAAC;QACzB,IAAI,EAAE,WAAW,CAAC;QAClB,MAAM,EAAE,MAAM,IAAI,CAAC;QACnB,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC;QACzB,KAAK,CAAC,EAAE,WAAW,CAAC;KACvB;CACJ"}
@@ -3,7 +3,7 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { Abort, Diagnostic, Logger } from "#general";
6
+ import { Abort, decamelize, Diagnostic, Logger } from "#general";
7
7
  const logger = Logger.get("ClientSubscription");
8
8
  class ClientSubscription {
9
9
  request;
@@ -12,10 +12,13 @@ class ClientSubscription {
12
12
  * If the subscription has an async worker, this is the promise associated with the worker.
13
13
  */
14
14
  done;
15
+ #lifetime;
15
16
  #closed;
16
17
  #abort;
17
18
  #isClosed = false;
18
- constructor({ request, peer, closed, abort }) {
19
+ #id = -1;
20
+ constructor({ request, peer, closed, abort, lifetime }) {
21
+ this.#lifetime = lifetime.join(this.kind);
19
22
  this.request = request;
20
23
  this.peer = peer;
21
24
  this.#closed = closed;
@@ -24,10 +27,21 @@ class ClientSubscription {
24
27
  handler: this.close.bind(this)
25
28
  });
26
29
  }
30
+ get kind() {
31
+ return decamelize(this.constructor.name.replace(/Subscription$/, ""), " ");
32
+ }
33
+ get subscriptionId() {
34
+ return this.#id;
35
+ }
36
+ set subscriptionId(id) {
37
+ this.#id = id;
38
+ this.#lifetime.name = [this.kind, Diagnostic.strong(id)];
39
+ }
27
40
  close() {
28
41
  if (this.#isClosed) {
29
42
  return;
30
43
  }
44
+ const closing = this.#lifetime.closing();
31
45
  this.#isClosed = true;
32
46
  this.#abort();
33
47
  this.#closed();
@@ -37,12 +51,15 @@ class ClientSubscription {
37
51
  if (this.done) {
38
52
  this.done.finally(() => {
39
53
  this.request.closed?.();
54
+ closing[Symbol.dispose]();
40
55
  }).catch(unhandledError);
41
56
  } else {
42
57
  try {
43
58
  this.request.closed?.();
44
59
  } catch (e) {
45
60
  unhandledError(e);
61
+ } finally {
62
+ closing[Symbol.dispose]();
46
63
  }
47
64
  }
48
65
  }
@@ -53,6 +70,9 @@ class ClientSubscription {
53
70
  return logger;
54
71
  }
55
72
  }
73
+ ((ClientSubscription2) => {
74
+ ClientSubscription2.NO_SUBSCRIPTION = -1;
75
+ })(ClientSubscription || (ClientSubscription = {}));
56
76
  export {
57
77
  ClientSubscription
58
78
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/action/client/subscription/ClientSubscription.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,OAAO,YAAY,cAAc;AAI1C,MAAM,SAAS,OAAO,IAAI,oBAAoB;AAKvC,MAAe,mBAAiD;AAAA,EAC1D;AAAA,EACA;AAAA;AAAA;AAAA;AAAA,EAQT;AAAA,EAES;AAAA,EACA;AAAA,EACT,YAAY;AAAA,EAEZ,YAAY,EAAE,SAAS,MAAM,QAAQ,MAAM,GAAqC;AAC5E,SAAK,UAAU;AACf,SAAK,OAAO;AACZ,SAAK,UAAU;AACf,SAAK,SAAS,IAAI,MAAM;AAAA,MACpB;AAAA,MACA,SAAS,KAAK,MAAM,KAAK,IAAI;AAAA,IACjC,CAAC;AAAA,EACL;AAAA,EAEA,QAAQ;AACJ,QAAI,KAAK,WAAW;AAChB;AAAA,IACJ;AACA,SAAK,YAAY;AAEjB,SAAK,OAAO;AACZ,SAAK,QAAQ;AAEb,UAAM,iBAAiB,CAAC,MAAe;AACnC,WAAK,OAAO,MAAM,sCAAsC,WAAW,OAAO,KAAK,KAAK,SAAS,CAAC,GAAG,CAAC;AAAA,IACtG;AAEA,QAAI,KAAK,MAAM;AACX,WAAK,KACA,QAAQ,MAAM;AACX,aAAK,QAAQ,SAAS;AAAA,MAC1B,CAAC,EACA,MAAM,cAAc;AAAA,IAC7B,OAAO;AACH,UAAI;AACA,aAAK,QAAQ,SAAS;AAAA,MAC1B,SAAS,GAAG;AACR,uBAAe,CAAC;AAAA,MACpB;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,IAAc,QAAQ;AAClB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAc,SAAS;AACnB,WAAO;AAAA,EACX;AACJ;",
5
- "names": []
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,OAAO,YAAY,YAAsB,cAAc;AAKhE,MAAM,SAAS,OAAO,IAAI,oBAAoB;AAKvC,MAAe,mBAAiD;AAAA,EAC1D;AAAA,EACA;AAAA;AAAA;AAAA;AAAA,EAOT;AAAA,EAES;AAAA,EACA;AAAA,EACA;AAAA,EACT,YAAY;AAAA,EACZ,MAAsB;AAAA,EAEtB,YAAY,EAAE,SAAS,MAAM,QAAQ,OAAO,SAAS,GAAqC;AACtF,SAAK,YAAY,SAAS,KAAK,KAAK,IAAI;AACxC,SAAK,UAAU;AACf,SAAK,OAAO;AACZ,SAAK,UAAU;AACf,SAAK,SAAS,IAAI,MAAM;AAAA,MACpB;AAAA,MACA,SAAS,KAAK,MAAM,KAAK,IAAI;AAAA,IACjC,CAAC;AAAA,EACL;AAAA,EAEA,IAAI,OAAO;AACP,WAAO,WAAW,KAAK,YAAY,KAAK,QAAQ,iBAAiB,EAAE,GAAG,GAAG;AAAA,EAC7E;AAAA,EAEA,IAAI,iBAAiB;AACjB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,eAAe,IAAoB;AACnC,SAAK,MAAM;AACX,SAAK,UAAU,OAAO,CAAC,KAAK,MAAM,WAAW,OAAO,EAAE,CAAC;AAAA,EAC3D;AAAA,EAEA,QAAQ;AACJ,QAAI,KAAK,WAAW;AAChB;AAAA,IACJ;AAEA,UAAM,UAAU,KAAK,UAAU,QAAQ;AAEvC,SAAK,YAAY;AAEjB,SAAK,OAAO;AACZ,SAAK,QAAQ;AAEb,UAAM,iBAAiB,CAAC,MAAe;AACnC,WAAK,OAAO,MAAM,sCAAsC,WAAW,OAAO,KAAK,KAAK,SAAS,CAAC,GAAG,CAAC;AAAA,IACtG;AAEA,QAAI,KAAK,MAAM;AACX,WAAK,KACA,QAAQ,MAAM;AACX,aAAK,QAAQ,SAAS;AACtB,gBAAQ,OAAO,OAAO,EAAE;AAAA,MAC5B,CAAC,EACA,MAAM,cAAc;AAAA,IAC7B,OAAO;AACH,UAAI;AACA,aAAK,QAAQ,SAAS;AAAA,MAC1B,SAAS,GAAG;AACR,uBAAe,CAAC;AAAA,MACpB,UAAE;AACE,gBAAQ,OAAO,OAAO,EAAE;AAAA,MAC5B;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,IAAc,QAAQ;AAClB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAc,SAAS;AACnB,WAAO;AAAA,EACX;AACJ;AAAA,CAEO,CAAUA,wBAAV;AACI,EAAMA,oBAAA,kBAAkB;AAAA,GADlB;",
5
+ "names": ["ClientSubscription"]
6
6
  }
@@ -6,6 +6,7 @@
6
6
  import { Diagnostic, InternalError, Logger } from "#general";
7
7
  import { DecodedDataReport } from "#interaction/DecodedDataReport.js";
8
8
  import { IncomingInteractionClientMessenger } from "#interaction/InteractionMessenger.js";
9
+ import { Subscription } from "#interaction/Subscription.js";
9
10
  import { SecureSession } from "#session/SecureSession.js";
10
11
  import { INTERACTION_PROTOCOL_ID, Status } from "#types";
11
12
  import { InputChunk } from "../InputChunk.js";
@@ -65,9 +66,7 @@ class ClientSubscriptionHandler {
65
66
  async function sendInvalid(messenger, subscriptionId) {
66
67
  await messenger.sendStatus(Status.InvalidSubscription, {
67
68
  multipleMessageInteraction: true,
68
- logContext: {
69
- subId: subscriptionId
70
- }
69
+ logContext: Subscription.diagnosticOf(subscriptionId)
71
70
  });
72
71
  await messenger.close();
73
72
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/action/client/subscription/ClientSubscriptionHandler.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,YAAY,eAAe,cAAc;AAClD,SAAS,yBAAyB;AAClC,SAAS,0CAA0C;AAInD,SAAS,qBAAqB;AAC9B,SAAqB,yBAAyB,cAAc;AAC5D,SAAS,kBAAkB;AAG3B,MAAM,SAAS,OAAO,IAAI,2BAA2B;AAK9C,MAAM,0BAAqD;AAAA,EAC9D,KAAK;AAAA,EACL,wBAAwB;AAAA,EAExB;AAAA,EAEA,YAAY,eAAoC;AAC5C,SAAK,iBAAiB;AAAA,EAC1B;AAAA,EAEA,MAAM,cAAc,UAA2B;AAC3C,UAAM,YAAY,IAAI,mCAAmC,QAAQ;AAEjE,UAAM,UAAU,UAAU,gBAAgB;AAE1C,UAAM,mBAAmB,MAAM,QAAQ,KAAK;AAC5C,QAAI,iBAAiB,MAAM;AACvB,YAAM,IAAI,cAAc,4CAA4C;AAAA,IACxE;AACA,UAAM,gBAAgB,iBAAiB;AAGvC,UAAM,EAAE,eAAe,IAAI;AAC3B,QAAI,mBAAmB,QAAW;AAC9B,aAAO,MAAM,0DAA0D;AACvE,YAAM,YAAY,WAAW,MAAS;AACtC;AAAA,IACJ;AAGA,UAAM,EAAE,QAAQ,IAAI,SAAS;AAC7B,kBAAc,OAAO,OAAO;AAC5B,UAAM,eAAe,KAAK,eAAe,QAAQ,QAAQ,aAAa,cAAc;AACpF,QAAI,iBAAiB,QAAW;AAC5B,aAAO,MAAM,oDAAoD,WAAW,OAAO,cAAc,CAAC;AAClG,YAAM,YAAY,WAAW,cAAc;AAC3C;AAAA,IACJ;AAGA,QAAI,CAAC,cAAc,kBAAkB,UAAU,CAAC,cAAc,cAAc,QAAQ;AAChF,mBAAa,YAAY;AACzB,WAAK,eAAe,WAAW;AAC/B,YAAM,SAAS,MAAM;AACrB;AAAA,IACJ;AAGA,QAAI;AACA,mBAAa,YAAY;AAEzB,UAAI,aAAa,QAAQ,SAAS;AAC9B,cAAM,aAAa,QAAQ,QAAQ,eAAe,eAAe,SAAS,SAAS,CAAC;AAAA,MACxF,OAAO;AAIH,yBAAiB,UAAU,QAAQ;AAAA,MACvC;AAAA,IACJ,UAAE;AACE,mBAAa,YAAY;AACzB,mBAAa,YAAY;AACzB,WAAK,eAAe,WAAW;AAC/B,YAAM,SAAS,MAAM;AAAA,IACzB;AAAA,EACJ;AAAA,EAEA,MAAM,QAAQ;AAAA,EAAC;AACnB;AAEA,eAAe,YAAY,WAA+C,gBAAiC;AACvG,QAAM,UAAU,WAAW,OAAO,qBAAqB;AAAA,IACnD,4BAA4B;AAAA,IAC5B,YAAY;AAAA,MACR,OAAO;AAAA,IACX;AAAA,EACJ,CAAC;AACD,QAAM,UAAU,MAAM;AAC1B;AAOA,gBAAgB,eACZ,eACA,cACA,WACU;AACV,QAAM,WAAW,aAAa;AAE9B,QAAM,EAAE,eAAe,IAAI;AAE3B,mBAAiB,UAAU,cAAc;AACrC,UAAM,UAAU,kBAAkB,MAAM;AAExC,QAAI,QAAQ,mBAAmB,QAAW;AACtC,aAAO,MAAM,mDAAmD;AAChE,YAAM,YAAY,WAAW,QAAQ,cAAc;AACnD;AAAA,IACJ;AAEA,QAAI,QAAQ,mBAAmB,gBAAgB;AAC3C,aAAO;AAAA,QACH;AAAA,QACA,WAAW,OAAO,QAAQ,cAAc;AAAA,MAC5C;AACA,YAAM,YAAY,WAAW,QAAQ,cAAc;AACnD;AAAA,IACJ;AAEA,UAAM,WAAW,MAAM;AAAA,EAC3B;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,YAAY,eAAe,cAAc;AAClD,SAAS,yBAAyB;AAClC,SAAS,0CAA0C;AACnD,SAAS,oBAAoC;AAG7C,SAAS,qBAAqB;AAC9B,SAAqB,yBAAyB,cAAc;AAC5D,SAAS,kBAAkB;AAG3B,MAAM,SAAS,OAAO,IAAI,2BAA2B;AAK9C,MAAM,0BAAqD;AAAA,EAC9D,KAAK;AAAA,EACL,wBAAwB;AAAA,EAExB;AAAA,EAEA,YAAY,eAAoC;AAC5C,SAAK,iBAAiB;AAAA,EAC1B;AAAA,EAEA,MAAM,cAAc,UAA2B;AAC3C,UAAM,YAAY,IAAI,mCAAmC,QAAQ;AAEjE,UAAM,UAAU,UAAU,gBAAgB;AAE1C,UAAM,mBAAmB,MAAM,QAAQ,KAAK;AAC5C,QAAI,iBAAiB,MAAM;AACvB,YAAM,IAAI,cAAc,4CAA4C;AAAA,IACxE;AACA,UAAM,gBAAgB,iBAAiB;AAGvC,UAAM,EAAE,eAAe,IAAI;AAC3B,QAAI,mBAAmB,QAAW;AAC9B,aAAO,MAAM,0DAA0D;AACvE,YAAM,YAAY,WAAW,MAAS;AACtC;AAAA,IACJ;AAGA,UAAM,EAAE,QAAQ,IAAI,SAAS;AAC7B,kBAAc,OAAO,OAAO;AAC5B,UAAM,eAAe,KAAK,eAAe,QAAQ,QAAQ,aAAa,cAAc;AACpF,QAAI,iBAAiB,QAAW;AAC5B,aAAO,MAAM,oDAAoD,WAAW,OAAO,cAAc,CAAC;AAClG,YAAM,YAAY,WAAW,cAAc;AAC3C;AAAA,IACJ;AAGA,QAAI,CAAC,cAAc,kBAAkB,UAAU,CAAC,cAAc,cAAc,QAAQ;AAChF,mBAAa,YAAY;AACzB,WAAK,eAAe,WAAW;AAC/B,YAAM,SAAS,MAAM;AACrB;AAAA,IACJ;AAGA,QAAI;AACA,mBAAa,YAAY;AAEzB,UAAI,aAAa,QAAQ,SAAS;AAC9B,cAAM,aAAa,QAAQ,QAAQ,eAAe,eAAe,SAAS,SAAS,CAAC;AAAA,MACxF,OAAO;AAIH,yBAAiB,UAAU,QAAQ;AAAA,MACvC;AAAA,IACJ,UAAE;AACE,mBAAa,YAAY;AACzB,mBAAa,YAAY;AACzB,WAAK,eAAe,WAAW;AAC/B,YAAM,SAAS,MAAM;AAAA,IACzB;AAAA,EACJ;AAAA,EAEA,MAAM,QAAQ;AAAA,EAAC;AACnB;AAEA,eAAe,YAAY,WAA+C,gBAAiC;AACvG,QAAM,UAAU,WAAW,OAAO,qBAAqB;AAAA,IACnD,4BAA4B;AAAA,IAC5B,YAAY,aAAa,aAAa,cAAc;AAAA,EACxD,CAAC;AACD,QAAM,UAAU,MAAM;AAC1B;AAOA,gBAAgB,eACZ,eACA,cACA,WACU;AACV,QAAM,WAAW,aAAa;AAE9B,QAAM,EAAE,eAAe,IAAI;AAE3B,mBAAiB,UAAU,cAAc;AACrC,UAAM,UAAU,kBAAkB,MAAM;AAExC,QAAI,QAAQ,mBAAmB,QAAW;AACtC,aAAO,MAAM,mDAAmD;AAChE,YAAM,YAAY,WAAW,QAAQ,cAAc;AACnD;AAAA,IACJ;AAEA,QAAI,QAAQ,mBAAmB,gBAAgB;AAC3C,aAAO;AAAA,QACH;AAAA,QACA,WAAW,OAAO,QAAQ,cAAc;AAAA,MAC5C;AACA,YAAM,YAAY,WAAW,QAAQ,cAAc;AACnD;AAAA,IACJ;AAEA,UAAM,WAAW,MAAM;AAAA,EAC3B;AACJ;",
5
5
  "names": []
6
6
  }
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { ReadResult } from "#action/response/ReadResult.js";
7
- import { Environment, Environmental } from "#general";
7
+ import { Environment, Environmental, Lifetime } from "#general";
8
8
  import { SubscriptionId } from "#interaction/Subscription.js";
9
9
  import { PeerAddress } from "#peer/PeerAddress.js";
10
10
  import { ClientSubscription } from "./ClientSubscription.js";
@@ -12,9 +12,11 @@ import type { PeerSubscription } from "./PeerSubscription.js";
12
12
  /**
13
13
  * A managed set of {@link ActiveSubscription} instances.
14
14
  */
15
- export declare class ClientSubscriptions {
15
+ export declare class ClientSubscriptions implements Lifetime.Owner {
16
16
  #private;
17
+ constructor(lifetime: Lifetime.Owner);
17
18
  static [Environmental.create](env: Environment): ClientSubscriptions;
19
+ join(...name: unknown[]): Lifetime;
18
20
  /**
19
21
  * Register a user-facing {@link ClientSubscription}.
20
22
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ClientSubscriptions.d.ts","sourceRoot":"","sources":["../../../../../src/action/client/subscription/ClientSubscriptions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAY,WAAW,EAAE,aAAa,EAAkC,MAAM,UAAU,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;GAEG;AACH,qBAAa,mBAAmB;;IAK5B,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAM9C;;OAEG;IACH,SAAS,CAAC,YAAY,EAAE,kBAAkB;IAI1C;;OAEG;IACH,OAAO,CAAC,YAAY,EAAE,gBAAgB;IAUtC;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,cAAc;IAIhD;;OAEG;IACH,MAAM,CAAC,YAAY,EAAE,kBAAkB;IAUvC;;OAEG;IACH,CAAC,MAAM,CAAC,QAAQ,CAAC;IAIjB;;OAEG;IACG,KAAK;IAaX;;OAEG;IACH,UAAU;CAiDb;AAED,yBAAiB,mBAAmB,CAAC;IACjC,UAAiB,QAAQ;QACrB,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC7D;CACJ"}
1
+ {"version":3,"file":"ClientSubscriptions.d.ts","sourceRoot":"","sources":["../../../../../src/action/client/subscription/ClientSubscriptions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAY,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAkC,MAAM,UAAU,CAAC;AAC1G,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;GAEG;AACH,qBAAa,mBAAoB,YAAW,QAAQ,CAAC,KAAK;;gBAM1C,QAAQ,EAAE,QAAQ,CAAC,KAAK;IAIpC,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAM9C,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IAIvB;;OAEG;IACH,SAAS,CAAC,YAAY,EAAE,kBAAkB;IAI1C;;OAEG;IACH,OAAO,CAAC,YAAY,EAAE,gBAAgB;IAUtC;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,cAAc;IAIhD;;OAEG;IACH,MAAM,CAAC,YAAY,EAAE,kBAAkB;IAUvC;;OAEG;IACH,CAAC,MAAM,CAAC,QAAQ,CAAC;IAIjB;;OAEG;IACG,KAAK;IAeX;;OAEG;IACH,UAAU;CAiDb;AAED,yBAAiB,mBAAmB,CAAC;IACjC,UAAiB,QAAQ;QACrB,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC7D;CACJ"}
@@ -1,3 +1,48 @@
1
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
2
+ var __typeError = (msg) => {
3
+ throw TypeError(msg);
4
+ };
5
+ var __using = (stack, value, async) => {
6
+ if (value != null) {
7
+ if (typeof value !== "object" && typeof value !== "function") __typeError("Object expected");
8
+ var dispose, inner;
9
+ if (async) dispose = value[__knownSymbol("asyncDispose")];
10
+ if (dispose === void 0) {
11
+ dispose = value[__knownSymbol("dispose")];
12
+ if (async) inner = dispose;
13
+ }
14
+ if (typeof dispose !== "function") __typeError("Object not disposable");
15
+ if (inner) dispose = function() {
16
+ try {
17
+ inner.call(this);
18
+ } catch (e) {
19
+ return Promise.reject(e);
20
+ }
21
+ };
22
+ stack.push([async, dispose, value]);
23
+ } else if (async) {
24
+ stack.push([async]);
25
+ }
26
+ return value;
27
+ };
28
+ var __callDispose = (stack, error, hasError) => {
29
+ var E = typeof SuppressedError === "function" ? SuppressedError : function(e, s, m, _) {
30
+ return _ = Error(m), _.name = "SuppressedError", _.error = e, _.suppressed = s, _;
31
+ };
32
+ var fail = (e) => error = hasError ? new E(e, error, "An error was suppressed during disposal") : (hasError = true, e);
33
+ var next = (it) => {
34
+ while (it = stack.pop()) {
35
+ try {
36
+ var result = it[1] && it[1].call(it[2]);
37
+ if (it[0]) return Promise.resolve(result).then(next, (e) => (fail(e), next()));
38
+ } catch (e) {
39
+ fail(e);
40
+ }
41
+ }
42
+ if (hasError) throw error;
43
+ };
44
+ return next();
45
+ };
1
46
  /**
2
47
  * @license
3
48
  * Copyright 2022-2025 Matter.js Authors
@@ -5,14 +50,21 @@
5
50
  */
6
51
  import { BasicSet, Environmental, Millis, Time, Timestamp } from "#general";
7
52
  class ClientSubscriptions {
53
+ #lifetime;
8
54
  #active = new BasicSet();
9
55
  #peers = /* @__PURE__ */ new Map();
10
56
  #timeout;
57
+ constructor(lifetime) {
58
+ this.#lifetime = lifetime.join("client subscriptions");
59
+ }
11
60
  static [Environmental.create](env) {
12
- const instance = new ClientSubscriptions();
61
+ const instance = new ClientSubscriptions(env);
13
62
  env.set(ClientSubscriptions, instance);
14
63
  return instance;
15
64
  }
65
+ join(...name) {
66
+ return this.#lifetime.join(...name);
67
+ }
16
68
  /**
17
69
  * Register a user-facing {@link ClientSubscription}.
18
70
  */
@@ -58,14 +110,22 @@ class ClientSubscriptions {
58
110
  * Terminate all subscriptions.
59
111
  */
60
112
  async close() {
61
- if (this.#timeout) {
62
- this.#timeout.stop();
63
- this.#timeout = void 0;
64
- }
65
- for (const subscription of this.#active) {
66
- subscription.close();
113
+ var _stack = [];
114
+ try {
115
+ const _closing = __using(_stack, this.#lifetime.closing());
116
+ if (this.#timeout) {
117
+ this.#timeout.stop();
118
+ this.#timeout = void 0;
119
+ }
120
+ for (const subscription of this.#active) {
121
+ subscription.close();
122
+ }
123
+ await this.#active.empty;
124
+ } catch (_) {
125
+ var _error = _, _hasError = true;
126
+ } finally {
127
+ __callDispose(_stack, _error, _hasError);
67
128
  }
68
- await this.#active.empty;
69
129
  }
70
130
  /**
71
131
  * Restart the timeout timer for the current set of active subscriptions.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/action/client/subscription/ClientSubscriptions.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,UAAuB,eAAe,QAAQ,MAAa,iBAAiB;AAS9E,MAAM,oBAAoB;AAAA,EAC7B,UAAU,IAAI,SAA6B;AAAA,EAC3C,SAAS,oBAAI,IAAgD;AAAA,EAC7D;AAAA,EAEA,QAAQ,cAAc,MAAM,EAAE,KAAkB;AAC5C,UAAM,WAAW,IAAI,oBAAoB;AACzC,QAAI,IAAI,qBAAqB,QAAQ;AACrC,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU,cAAkC;AACxC,SAAK,QAAQ,IAAI,YAAY;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAKA,QAAQ,cAAgC;AACpC,QAAI,UAAU,KAAK,OAAO,IAAI,aAAa,IAAI;AAC/C,QAAI,YAAY,QAAW;AACvB,WAAK,OAAO,IAAI,aAAa,MAAO,UAAU,oBAAI,IAAI,CAAE;AAAA,IAC5D;AACA,YAAQ,IAAI,aAAa,gBAAgB,YAAY;AAErD,SAAK,WAAW;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA,EAKA,QAAQ,SAAsB,IAAoB;AAC9C,WAAO,KAAK,OAAO,IAAI,OAAO,GAAG,IAAI,EAAE;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,cAAkC;AACrC,UAAM,UAAU,KAAK,OAAO,IAAI,aAAa,IAAI;AACjD,QAAI,SAAS,OAAO,aAAa,cAAc,GAAG;AAC9C,UAAI,CAAC,QAAQ,MAAM;AACf,aAAK,OAAO,OAAO,aAAa,IAAI;AAAA,MACxC;AAAA,IACJ;AACA,SAAK,QAAQ,OAAO,YAAY;AAAA,EACpC;AAAA;AAAA;AAAA;AAAA,EAKA,CAAC,OAAO,QAAQ,IAAI;AAChB,WAAO,KAAK,QAAQ,OAAO,QAAQ,EAAE;AAAA,EACzC;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,QAAQ;AACV,QAAI,KAAK,UAAU;AACf,WAAK,SAAS,KAAK;AACnB,WAAK,WAAW;AAAA,IACpB;AAEA,eAAW,gBAAgB,KAAK,SAAS;AACrC,mBAAa,MAAM;AAAA,IACvB;AAEA,UAAM,KAAK,QAAQ;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA,EAKA,aAAa;AACT,UAAM,MAAM,KAAK;AACjB,QAAI;AAGJ,eAAW,QAAQ,KAAK,OAAO,OAAO,GAAG;AACrC,iBAAW,gBAAgB,KAAK,OAAO,GAAG;AAEtC,YAAI,aAAa,WAAW;AACxB;AAAA,QACJ;AAGA,YAAI,EAAE,UAAU,IAAI;AACpB,YAAI,cAAc,QAAW;AAEzB,sBAAY,aAAa,YAAY,UAAU,MAAM,aAAa,OAAO;AAAA,QAC7E,WAAW,YAAY,KAAK;AAExB,uBAAa,SAAS;AACtB;AAAA,QACJ;AAGA,YAAI,kBAAkB,UAAa,gBAAgB,WAAW;AAC1D,0BAAgB;AAAA,QACpB;AAAA,MACJ;AAAA,IACJ;AAGA,QAAI,kBAAkB,QAAW;AAC7B,WAAK,UAAU,KAAK;AACpB;AAAA,IACJ;AAGA,QAAI,KAAK,UAAU;AACf,WAAK,UAAU,KAAK;AACpB,WAAK,SAAS,WAAW,OAAO,gBAAgB,GAAG;AAAA,IACvD,OAAO;AACH,WAAK,WAAW,KAAK;AAAA,QACjB;AAAA,QACA,OAAO,gBAAgB,GAAG;AAAA,QAC1B,KAAK,WAAW,KAAK,IAAI;AAAA,MAC7B;AAAA,IACJ;AACA,SAAK,SAAS,MAAM;AAAA,EACxB;AACJ;",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -12,7 +12,6 @@ import { ClientSubscription } from "./ClientSubscription.js";
12
12
  export declare class PeerSubscription extends ClientSubscription {
13
13
  readonly interactionModelRevision: number;
14
14
  readonly maxInterval: number;
15
- readonly subscriptionId: number;
16
15
  isReading: boolean;
17
16
  timeoutAt?: Timestamp;
18
17
  constructor(config: PeerSubscription.Configuration);
@@ -1 +1 @@
1
- {"version":3,"file":"PeerSubscription.d.ts","sourceRoot":"","sources":["../../../../../src/action/client/subscription/PeerSubscription.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAc,QAAQ,EAAmB,SAAS,EAAE,MAAM,UAAU,CAAC;AAC5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,kBAAkB;IACpD,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,SAAS,UAAS;IAElB,SAAS,CAAC,EAAE,SAAS,CAAC;gBAEV,MAAM,EAAE,gBAAgB,CAAC,aAAa;IASlD,IAAI,OAAO,aAEV;IAED,QAAQ;CAUX;AAED,yBAAiB,gBAAgB,CAAC;IAC9B,UAAiB,aAAc,SAAQ,kBAAkB,CAAC,aAAa;QACnE,QAAQ,EAAE,iBAAiB,CAAC;KAC/B;CACJ"}
1
+ {"version":3,"file":"PeerSubscription.d.ts","sourceRoot":"","sources":["../../../../../src/action/client/subscription/PeerSubscription.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAc,QAAQ,EAAmB,SAAS,EAAE,MAAM,UAAU,CAAC;AAC5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,kBAAkB;IACpD,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,SAAS,UAAS;IAElB,SAAS,CAAC,EAAE,SAAS,CAAC;gBAEV,MAAM,EAAE,gBAAgB,CAAC,aAAa;IAUlD,IAAI,OAAO,aAEV;IAED,QAAQ;CAUX;AAED,yBAAiB,gBAAgB,CAAC;IAC9B,UAAiB,aAAc,SAAQ,kBAAkB,CAAC,aAAa;QACnE,QAAQ,EAAE,iBAAiB,CAAC;KAC/B;CACJ"}
@@ -8,12 +8,11 @@ import { ClientSubscription } from "./ClientSubscription.js";
8
8
  class PeerSubscription extends ClientSubscription {
9
9
  interactionModelRevision;
10
10
  maxInterval;
11
- subscriptionId;
12
11
  isReading = false;
13
12
  timeoutAt;
14
13
  constructor(config) {
15
- super(config);
16
14
  const { subscriptionId, interactionModelRevision, maxInterval } = config.response;
15
+ super(config);
17
16
  this.subscriptionId = subscriptionId;
18
17
  this.interactionModelRevision = interactionModelRevision;
19
18
  this.maxInterval = maxInterval;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/action/client/subscription/PeerSubscription.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,YAAY,UAAU,QAAQ,eAA0B;AAEjE,SAAS,0BAA0B;AAK5B,MAAM,yBAAyB,mBAAmB;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACT,YAAY;AAAA,EAEZ;AAAA,EAEA,YAAY,QAAwC;AAChD,UAAM,MAAM;AAEZ,UAAM,EAAE,gBAAgB,0BAA0B,YAAY,IAAI,OAAO;AACzE,SAAK,iBAAiB;AACtB,SAAK,2BAA2B;AAChC,SAAK,cAAc;AAAA,EACvB;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,OAAO,QAAQ,KAAK,WAAW,KAAK,KAAK,QAAQ,uBAAuB,EAAE;AAAA,EACrF;AAAA,EAEA,WAAW;AACP,SAAK,OAAO;AAAA,MACR;AAAA,MACA,WAAW,OAAO,KAAK,cAAc;AAAA,MACrC;AAAA,MACA,WAAW,OAAO,SAAS,OAAO,KAAK,OAAO,CAAC;AAAA,IACnD;AAEA,SAAK,MAAM;AAAA,EACf;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,YAAY,UAAU,QAAQ,eAA0B;AAEjE,SAAS,0BAA0B;AAK5B,MAAM,yBAAyB,mBAAmB;AAAA,EAC5C;AAAA,EACA;AAAA,EACT,YAAY;AAAA,EAEZ;AAAA,EAEA,YAAY,QAAwC;AAChD,UAAM,EAAE,gBAAgB,0BAA0B,YAAY,IAAI,OAAO;AAEzE,UAAM,MAAM;AAEZ,SAAK,iBAAiB;AACtB,SAAK,2BAA2B;AAChC,SAAK,cAAc;AAAA,EACvB;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,OAAO,QAAQ,KAAK,WAAW,KAAK,KAAK,QAAQ,uBAAuB,EAAE;AAAA,EACrF;AAAA,EAEA,WAAW;AACP,SAAK,OAAO;AAAA,MACR;AAAA,MACA,WAAW,OAAO,KAAK,cAAc;AAAA,MACrC;AAAA,MACA,WAAW,OAAO,SAAS,OAAO,KAAK,OAAO,CAAC;AAAA,IACnD;AAEA,SAAK,MAAM;AAAA,EACf;AACJ;",
5
5
  "names": []
6
6
  }