@matter/protocol 0.12.4-alpha.0-20250223-1e0341a1a → 0.12.4-alpha.0-20250224-e0964a795

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 (189) hide show
  1. package/dist/cjs/action/client/ClientInteraction.d.ts +38 -0
  2. package/dist/cjs/action/client/ClientInteraction.d.ts.map +1 -0
  3. package/dist/cjs/action/client/ClientInteraction.js +91 -0
  4. package/dist/cjs/action/client/ClientInteraction.js.map +6 -0
  5. package/dist/cjs/action/client/index.d.ts +7 -0
  6. package/dist/cjs/action/client/index.d.ts.map +1 -0
  7. package/dist/cjs/action/client/index.js +24 -0
  8. package/dist/cjs/action/client/index.js.map +6 -0
  9. package/dist/cjs/action/index.d.ts +1 -0
  10. package/dist/cjs/action/index.d.ts.map +1 -1
  11. package/dist/cjs/action/index.js +1 -0
  12. package/dist/cjs/action/index.js.map +1 -1
  13. package/dist/cjs/interaction/DecodedDataReport.d.ts +15 -0
  14. package/dist/cjs/interaction/DecodedDataReport.d.ts.map +1 -0
  15. package/dist/cjs/interaction/DecodedDataReport.js +42 -0
  16. package/dist/cjs/interaction/DecodedDataReport.js.map +6 -0
  17. package/dist/cjs/interaction/InteractionClient.d.ts +13 -23
  18. package/dist/cjs/interaction/InteractionClient.d.ts.map +1 -1
  19. package/dist/cjs/interaction/InteractionClient.js +99 -127
  20. package/dist/cjs/interaction/InteractionClient.js.map +1 -1
  21. package/dist/cjs/interaction/InteractionMessenger.d.ts +94 -1
  22. package/dist/cjs/interaction/InteractionMessenger.d.ts.map +1 -1
  23. package/dist/cjs/interaction/InteractionMessenger.js +56 -37
  24. package/dist/cjs/interaction/InteractionMessenger.js.map +1 -1
  25. package/dist/cjs/interaction/InteractionServer.d.ts +4 -2
  26. package/dist/cjs/interaction/InteractionServer.d.ts.map +1 -1
  27. package/dist/cjs/interaction/InteractionServer.js +12 -4
  28. package/dist/cjs/interaction/InteractionServer.js.map +1 -1
  29. package/dist/cjs/interaction/SubscriptionClient.d.ts +38 -0
  30. package/dist/cjs/interaction/SubscriptionClient.d.ts.map +1 -0
  31. package/dist/cjs/interaction/SubscriptionClient.js +98 -0
  32. package/dist/cjs/interaction/SubscriptionClient.js.map +6 -0
  33. package/dist/cjs/interaction/index.d.ts +1 -0
  34. package/dist/cjs/interaction/index.d.ts.map +1 -1
  35. package/dist/cjs/interaction/index.js +1 -0
  36. package/dist/cjs/interaction/index.js.map +1 -1
  37. package/dist/cjs/peer/ControllerCommissioner.d.ts +2 -2
  38. package/dist/cjs/peer/ControllerCommissioner.d.ts.map +1 -1
  39. package/dist/cjs/peer/ControllerCommissioner.js +4 -3
  40. package/dist/cjs/peer/ControllerCommissioner.js.map +1 -1
  41. package/dist/cjs/peer/InteractionQueue.d.ts +11 -0
  42. package/dist/cjs/peer/InteractionQueue.d.ts.map +1 -0
  43. package/dist/cjs/peer/InteractionQueue.js +42 -0
  44. package/dist/cjs/peer/InteractionQueue.js.map +6 -0
  45. package/dist/cjs/peer/PeerAddressStore.d.ts +1 -1
  46. package/dist/cjs/peer/PeerAddressStore.d.ts.map +1 -1
  47. package/dist/cjs/peer/PeerSet.d.ts +16 -7
  48. package/dist/cjs/peer/PeerSet.d.ts.map +1 -1
  49. package/dist/cjs/peer/PeerSet.js +58 -61
  50. package/dist/cjs/peer/PeerSet.js.map +1 -1
  51. package/dist/cjs/peer/PhysicalDeviceProperties.d.ts +26 -0
  52. package/dist/cjs/peer/PhysicalDeviceProperties.d.ts.map +1 -0
  53. package/dist/cjs/peer/PhysicalDeviceProperties.js +74 -0
  54. package/dist/cjs/peer/PhysicalDeviceProperties.js.map +6 -0
  55. package/dist/cjs/peer/index.d.ts +1 -0
  56. package/dist/cjs/peer/index.d.ts.map +1 -1
  57. package/dist/cjs/peer/index.js +1 -0
  58. package/dist/cjs/peer/index.js.map +1 -1
  59. package/dist/cjs/protocol/ExchangeManager.d.ts +1 -0
  60. package/dist/cjs/protocol/ExchangeManager.d.ts.map +1 -1
  61. package/dist/cjs/protocol/ExchangeManager.js +6 -3
  62. package/dist/cjs/protocol/ExchangeManager.js.map +1 -1
  63. package/dist/cjs/protocol/ExchangeProvider.d.ts +13 -1
  64. package/dist/cjs/protocol/ExchangeProvider.d.ts.map +1 -1
  65. package/dist/cjs/protocol/ExchangeProvider.js +2 -0
  66. package/dist/cjs/protocol/ExchangeProvider.js.map +1 -1
  67. package/dist/cjs/protocol/ProtocolHandler.d.ts +1 -1
  68. package/dist/cjs/protocol/ProtocolHandler.d.ts.map +1 -1
  69. package/dist/cjs/securechannel/SecureChannelProtocol.d.ts +1 -1
  70. package/dist/cjs/securechannel/SecureChannelProtocol.d.ts.map +1 -1
  71. package/dist/cjs/securechannel/SecureChannelProtocol.js +1 -3
  72. package/dist/cjs/securechannel/SecureChannelProtocol.js.map +1 -1
  73. package/dist/cjs/session/SessionManager.d.ts.map +1 -1
  74. package/dist/cjs/session/SessionManager.js +1 -0
  75. package/dist/cjs/session/SessionManager.js.map +1 -1
  76. package/dist/cjs/session/case/CaseServer.d.ts +1 -1
  77. package/dist/cjs/session/case/CaseServer.d.ts.map +1 -1
  78. package/dist/cjs/session/case/CaseServer.js +1 -3
  79. package/dist/cjs/session/case/CaseServer.js.map +1 -1
  80. package/dist/cjs/session/pase/PaseServer.d.ts +2 -3
  81. package/dist/cjs/session/pase/PaseServer.d.ts.map +1 -1
  82. package/dist/cjs/session/pase/PaseServer.js +12 -14
  83. package/dist/cjs/session/pase/PaseServer.js.map +1 -1
  84. package/dist/esm/action/client/ClientInteraction.d.ts +38 -0
  85. package/dist/esm/action/client/ClientInteraction.d.ts.map +1 -0
  86. package/dist/esm/action/client/ClientInteraction.js +71 -0
  87. package/dist/esm/action/client/ClientInteraction.js.map +6 -0
  88. package/dist/esm/action/client/index.d.ts +7 -0
  89. package/dist/esm/action/client/index.d.ts.map +1 -0
  90. package/dist/esm/action/client/index.js +7 -0
  91. package/dist/esm/action/client/index.js.map +6 -0
  92. package/dist/esm/action/index.d.ts +1 -0
  93. package/dist/esm/action/index.d.ts.map +1 -1
  94. package/dist/esm/action/index.js +1 -0
  95. package/dist/esm/action/index.js.map +1 -1
  96. package/dist/esm/interaction/DecodedDataReport.d.ts +15 -0
  97. package/dist/esm/interaction/DecodedDataReport.d.ts.map +1 -0
  98. package/dist/esm/interaction/DecodedDataReport.js +22 -0
  99. package/dist/esm/interaction/DecodedDataReport.js.map +6 -0
  100. package/dist/esm/interaction/InteractionClient.d.ts +13 -23
  101. package/dist/esm/interaction/InteractionClient.d.ts.map +1 -1
  102. package/dist/esm/interaction/InteractionClient.js +101 -134
  103. package/dist/esm/interaction/InteractionClient.js.map +1 -1
  104. package/dist/esm/interaction/InteractionMessenger.d.ts +94 -1
  105. package/dist/esm/interaction/InteractionMessenger.d.ts.map +1 -1
  106. package/dist/esm/interaction/InteractionMessenger.js +56 -37
  107. package/dist/esm/interaction/InteractionMessenger.js.map +1 -1
  108. package/dist/esm/interaction/InteractionServer.d.ts +4 -2
  109. package/dist/esm/interaction/InteractionServer.d.ts.map +1 -1
  110. package/dist/esm/interaction/InteractionServer.js +12 -4
  111. package/dist/esm/interaction/InteractionServer.js.map +1 -1
  112. package/dist/esm/interaction/SubscriptionClient.d.ts +38 -0
  113. package/dist/esm/interaction/SubscriptionClient.d.ts.map +1 -0
  114. package/dist/esm/interaction/SubscriptionClient.js +78 -0
  115. package/dist/esm/interaction/SubscriptionClient.js.map +6 -0
  116. package/dist/esm/interaction/index.d.ts +1 -0
  117. package/dist/esm/interaction/index.d.ts.map +1 -1
  118. package/dist/esm/interaction/index.js +1 -0
  119. package/dist/esm/interaction/index.js.map +1 -1
  120. package/dist/esm/peer/ControllerCommissioner.d.ts +2 -2
  121. package/dist/esm/peer/ControllerCommissioner.d.ts.map +1 -1
  122. package/dist/esm/peer/ControllerCommissioner.js +6 -5
  123. package/dist/esm/peer/ControllerCommissioner.js.map +1 -1
  124. package/dist/esm/peer/InteractionQueue.d.ts +11 -0
  125. package/dist/esm/peer/InteractionQueue.d.ts.map +1 -0
  126. package/dist/esm/peer/InteractionQueue.js +22 -0
  127. package/dist/esm/peer/InteractionQueue.js.map +6 -0
  128. package/dist/esm/peer/PeerAddressStore.d.ts +1 -1
  129. package/dist/esm/peer/PeerAddressStore.d.ts.map +1 -1
  130. package/dist/esm/peer/PeerSet.d.ts +16 -7
  131. package/dist/esm/peer/PeerSet.d.ts.map +1 -1
  132. package/dist/esm/peer/PeerSet.js +59 -62
  133. package/dist/esm/peer/PeerSet.js.map +1 -1
  134. package/dist/esm/peer/PhysicalDeviceProperties.d.ts +26 -0
  135. package/dist/esm/peer/PhysicalDeviceProperties.d.ts.map +1 -0
  136. package/dist/esm/peer/PhysicalDeviceProperties.js +54 -0
  137. package/dist/esm/peer/PhysicalDeviceProperties.js.map +6 -0
  138. package/dist/esm/peer/index.d.ts +1 -0
  139. package/dist/esm/peer/index.d.ts.map +1 -1
  140. package/dist/esm/peer/index.js +1 -0
  141. package/dist/esm/peer/index.js.map +1 -1
  142. package/dist/esm/protocol/ExchangeManager.d.ts +1 -0
  143. package/dist/esm/protocol/ExchangeManager.d.ts.map +1 -1
  144. package/dist/esm/protocol/ExchangeManager.js +6 -3
  145. package/dist/esm/protocol/ExchangeManager.js.map +1 -1
  146. package/dist/esm/protocol/ExchangeProvider.d.ts +13 -1
  147. package/dist/esm/protocol/ExchangeProvider.d.ts.map +1 -1
  148. package/dist/esm/protocol/ExchangeProvider.js +2 -0
  149. package/dist/esm/protocol/ExchangeProvider.js.map +1 -1
  150. package/dist/esm/protocol/ProtocolHandler.d.ts +1 -1
  151. package/dist/esm/protocol/ProtocolHandler.d.ts.map +1 -1
  152. package/dist/esm/securechannel/SecureChannelProtocol.d.ts +1 -1
  153. package/dist/esm/securechannel/SecureChannelProtocol.d.ts.map +1 -1
  154. package/dist/esm/securechannel/SecureChannelProtocol.js +1 -3
  155. package/dist/esm/securechannel/SecureChannelProtocol.js.map +1 -1
  156. package/dist/esm/session/SessionManager.d.ts.map +1 -1
  157. package/dist/esm/session/SessionManager.js +1 -0
  158. package/dist/esm/session/SessionManager.js.map +1 -1
  159. package/dist/esm/session/case/CaseServer.d.ts +1 -1
  160. package/dist/esm/session/case/CaseServer.d.ts.map +1 -1
  161. package/dist/esm/session/case/CaseServer.js +1 -3
  162. package/dist/esm/session/case/CaseServer.js.map +1 -1
  163. package/dist/esm/session/pase/PaseServer.d.ts +2 -3
  164. package/dist/esm/session/pase/PaseServer.d.ts.map +1 -1
  165. package/dist/esm/session/pase/PaseServer.js +12 -14
  166. package/dist/esm/session/pase/PaseServer.js.map +1 -1
  167. package/package.json +6 -6
  168. package/src/action/client/ClientInteraction.ts +110 -0
  169. package/src/action/client/index.ts +7 -0
  170. package/src/action/index.ts +1 -0
  171. package/src/interaction/DecodedDataReport.ts +29 -0
  172. package/src/interaction/InteractionClient.ts +112 -164
  173. package/src/interaction/InteractionMessenger.ts +63 -43
  174. package/src/interaction/InteractionServer.ts +18 -5
  175. package/src/interaction/SubscriptionClient.ts +107 -0
  176. package/src/interaction/index.ts +1 -0
  177. package/src/peer/ControllerCommissioner.ts +7 -6
  178. package/src/peer/InteractionQueue.ts +22 -0
  179. package/src/peer/PeerAddressStore.ts +1 -1
  180. package/src/peer/PeerSet.ts +69 -76
  181. package/src/peer/PhysicalDeviceProperties.ts +80 -0
  182. package/src/peer/index.ts +1 -0
  183. package/src/protocol/ExchangeManager.ts +7 -3
  184. package/src/protocol/ExchangeProvider.ts +14 -1
  185. package/src/protocol/ProtocolHandler.ts +1 -1
  186. package/src/securechannel/SecureChannelProtocol.ts +1 -3
  187. package/src/session/SessionManager.ts +1 -0
  188. package/src/session/case/CaseServer.ts +2 -4
  189. package/src/session/pase/PaseServer.ts +13 -15
@@ -22,10 +22,10 @@ import { ChannelStatusResponseError } from "#securechannel/index.js";
22
22
  import { PaseClient } from "#session/index.js";
23
23
  import { SessionManager } from "#session/SessionManager.js";
24
24
  import { NodeId, SECURE_CHANNEL_PROTOCOL_ID } from "#types";
25
- import { InteractionClient } from "../interaction/InteractionClient.js";
25
+ import { InteractionClient, InteractionClientProvider } from "../interaction/InteractionClient.js";
26
26
  import { ExchangeManager, MessageChannel } from "../protocol/ExchangeManager.js";
27
27
  import { DedicatedChannelExchangeProvider } from "../protocol/ExchangeProvider.js";
28
- import { NodeDiscoveryType, PeerSet } from "./PeerSet.js";
28
+ import { NodeDiscoveryType } from "./PeerSet.js";
29
29
  const logger = Logger.get("PeerCommissioner");
30
30
  class ControllerCommissioner {
31
31
  #context;
@@ -36,7 +36,7 @@ class ControllerCommissioner {
36
36
  }
37
37
  static [Environmental.create](env) {
38
38
  const instance = new ControllerCommissioner({
39
- peers: env.get(PeerSet),
39
+ clients: env.get(InteractionClientProvider),
40
40
  scanners: env.get(ScannerSet),
41
41
  netInterfaces: env.get(NetInterfaceSet),
42
42
  sessions: env.get(SessionManager),
@@ -215,6 +215,7 @@ class ControllerCommissioner {
215
215
  // Use the created secure session to do the commissioning
216
216
  new InteractionClient(
217
217
  new DedicatedChannelExchangeProvider(this.#context.exchanges, paseSecureMessageChannel),
218
+ this.#context.clients.peers.subscriptionClient,
218
219
  address
219
220
  ),
220
221
  this.#context.ca,
@@ -228,7 +229,7 @@ class ControllerCommissioner {
228
229
  await performCaseCommissioning(address2, discoveryData);
229
230
  return;
230
231
  }
231
- return await this.#context.peers.connect(
232
+ return await this.#context.clients.connect(
232
233
  address2,
233
234
  {
234
235
  discoveryType: NodeDiscoveryType.TimedDiscovery,
@@ -242,7 +243,7 @@ class ControllerCommissioner {
242
243
  try {
243
244
  await commissioningManager.executeCommissioning();
244
245
  } catch (error) {
245
- await this.#context.peers.delete(address);
246
+ await this.#context.clients.peers.delete(address);
246
247
  throw error;
247
248
  } finally {
248
249
  if (!paseSecureMessageChannel.closed) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/peer/ControllerCommissioner.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["address"]
6
6
  }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Environment, Environmental, PromiseQueue } from "@matter/general";
7
+ export declare class InteractionQueue extends PromiseQueue {
8
+ constructor();
9
+ static [Environmental.create](env: Environment): InteractionQueue;
10
+ }
11
+ //# sourceMappingURL=InteractionQueue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InteractionQueue.d.ts","sourceRoot":"","sources":["../../../src/peer/InteractionQueue.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAK3E,qBAAa,gBAAiB,SAAQ,YAAY;;IAK9C,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;CAKjD"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Environmental, PromiseQueue } from "@matter/general";
7
+ const CONCURRENT_QUEUED_INTERACTIONS = 4;
8
+ const INTERACTION_QUEUE_DELAY_MS = 100;
9
+ class InteractionQueue extends PromiseQueue {
10
+ constructor() {
11
+ super(CONCURRENT_QUEUED_INTERACTIONS, INTERACTION_QUEUE_DELAY_MS);
12
+ }
13
+ static [Environmental.create](env) {
14
+ const instance = new InteractionQueue();
15
+ env.set(InteractionQueue, instance);
16
+ return instance;
17
+ }
18
+ }
19
+ export {
20
+ InteractionQueue
21
+ };
22
+ //# sourceMappingURL=InteractionQueue.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/peer/InteractionQueue.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAsB,eAAe,oBAAoB;AAEzD,MAAM,iCAAiC;AACvC,MAAM,6BAA6B;AAE5B,MAAM,yBAAyB,aAAa;AAAA,EAC/C,cAAc;AACV,UAAM,gCAAgC,0BAA0B;AAAA,EACpE;AAAA,EAEA,QAAQ,cAAc,MAAM,EAAE,KAAkB;AAC5C,UAAM,WAAW,IAAI,iBAAiB;AACtC,QAAI,IAAI,kBAAkB,QAAQ;AAClC,WAAO;AAAA,EACX;AACJ;",
5
+ "names": []
6
+ }
@@ -15,7 +15,7 @@ export declare abstract class PeerAddressStore {
15
15
  abstract loadPeers(): MaybePromise<Iterable<OperationalPeer>>;
16
16
  abstract updatePeer(peer: OperationalPeer): MaybePromise<void>;
17
17
  abstract deletePeer(address: PeerAddress): MaybePromise<void>;
18
- abstract createNodeStore(address: PeerAddress): Promise<PeerDataStore>;
18
+ abstract createNodeStore(address: PeerAddress): MaybePromise<PeerDataStore | undefined>;
19
19
  }
20
20
  export declare abstract class PeerDataStore {
21
21
  abstract construction: Construction<PeerDataStore>;
@@ -1 +1 @@
1
- {"version":3,"file":"PeerAddressStore.d.ts","sourceRoot":"","sources":["../../../src/peer/PeerAddressStore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C;;GAEG;AACH,8BAAsB,gBAAgB;IAClC,QAAQ,CAAC,SAAS,IAAI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC7D,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC;IAC9D,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC;IAC7D,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;CACzE;AAED,8BAAsB,aAAa;IAC/B,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;IAEnD,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC;IACrC,QAAQ,CAAC,qBAAqB,CAAC,WAAW,EAAE,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC;IAE5E,QAAQ,CAAC,iBAAiB,CAAC,UAAU,EAAE,2BAA2B,CAAC,GAAG,CAAC,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC;IAG9F,QAAQ,CAAC,iBAAiB,CACtB,UAAU,EAAE,cAAc,EAC1B,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,GACzB,2BAA2B,CAAC,GAAG,CAAC,GAAG,SAAS;IAC/C,QAAQ,CAAC,kBAAkB,CAAC,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,GAAG,2BAA2B,CAAC,GAAG,CAAC,EAAE;IACjH,QAAQ,CAAC,qBAAqB,CAAC,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS;IACpG,QAAQ,CAAC,sBAAsB,CAC3B,gBAAgB,CAAC,EAAE,cAAc,EACjC,eAAe,CAAC,EAAE,SAAS,GAC5B;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,SAAS,EAAE,SAAS,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE;CACjF"}
1
+ {"version":3,"file":"PeerAddressStore.d.ts","sourceRoot":"","sources":["../../../src/peer/PeerAddressStore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C;;GAEG;AACH,8BAAsB,gBAAgB;IAClC,QAAQ,CAAC,SAAS,IAAI,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC7D,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC;IAC9D,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC;IAC7D,QAAQ,CAAC,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,YAAY,CAAC,aAAa,GAAG,SAAS,CAAC;CAC1F;AAED,8BAAsB,aAAa;IAC/B,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;IAEnD,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC;IACrC,QAAQ,CAAC,qBAAqB,CAAC,WAAW,EAAE,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC;IAE5E,QAAQ,CAAC,iBAAiB,CAAC,UAAU,EAAE,2BAA2B,CAAC,GAAG,CAAC,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC;IAG9F,QAAQ,CAAC,iBAAiB,CACtB,UAAU,EAAE,cAAc,EAC1B,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,GACzB,2BAA2B,CAAC,GAAG,CAAC,GAAG,SAAS;IAC/C,QAAQ,CAAC,kBAAkB,CAAC,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,GAAG,2BAA2B,CAAC,GAAG,CAAC,EAAE;IACjH,QAAQ,CAAC,qBAAqB,CAAC,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS;IACpG,QAAQ,CAAC,sBAAsB,CAC3B,gBAAgB,CAAC,EAAE,cAAc,EACjC,eAAe,CAAC,EAAE,SAAS,GAC5B;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,SAAS,EAAE,SAAS,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,EAAE;CACjF"}
@@ -4,12 +4,14 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { DiscoveryData, ScannerSet } from "#common/Scanner.js";
7
- import { BasicSet, Construction, Environment, Environmental, ImmutableSet, MatterError, NetInterfaceSet, ObservableSet } from "#general";
8
- import { InteractionClient } from "#interaction/InteractionClient.js";
7
+ import { AsyncObservable, BasicSet, Construction, Environment, Environmental, ImmutableSet, MatterError, NetInterfaceSet, ObservableSet } from "#general";
8
+ import { SubscriptionClient } from "#interaction/SubscriptionClient.js";
9
9
  import { PeerAddress } from "#peer/PeerAddress.js";
10
10
  import { SessionManager } from "#session/SessionManager.js";
11
11
  import { ChannelManager } from "../protocol/ChannelManager.js";
12
- import { ExchangeManager } from "../protocol/ExchangeManager.js";
12
+ import { ExchangeManager, MessageChannel } from "../protocol/ExchangeManager.js";
13
+ import { ReconnectableExchangeProvider } from "../protocol/ExchangeProvider.js";
14
+ import { InteractionQueue } from "./InteractionQueue.js";
13
15
  import { OperationalPeer } from "./OperationalPeer.js";
14
16
  import { PeerAddressStore } from "./PeerAddressStore.js";
15
17
  /**
@@ -43,6 +45,7 @@ export interface PeerSetContext {
43
45
  sessions: SessionManager;
44
46
  channels: ChannelManager;
45
47
  exchanges: ExchangeManager;
48
+ subscriptionClient: SubscriptionClient;
46
49
  scanners: ScannerSet;
47
50
  netInterfaces: NetInterfaceSet;
48
51
  store: PeerAddressStore;
@@ -55,6 +58,7 @@ export declare class PeerSet implements ImmutableSet<OperationalPeer>, Observabl
55
58
  constructor(context: PeerSetContext);
56
59
  get added(): import("#general").Observable<[OperationalPeer], void>;
57
60
  get deleted(): import("#general").Observable<[OperationalPeer], void>;
61
+ get disconnected(): AsyncObservable<[address: PeerAddress], void>;
58
62
  has(item: PeerAddress | OperationalPeer): boolean;
59
63
  get size(): number;
60
64
  find(predicate: (item: OperationalPeer) => boolean | undefined): OperationalPeer | undefined;
@@ -64,11 +68,16 @@ export declare class PeerSet implements ImmutableSet<OperationalPeer>, Observabl
64
68
  get construction(): Construction<PeerSet>;
65
69
  static [Environmental.create](env: Environment): PeerSet;
66
70
  get peers(): BasicSet<OperationalPeer, OperationalPeer>;
71
+ get subscriptionClient(): SubscriptionClient;
72
+ get interactionQueue(): InteractionQueue;
67
73
  /**
68
- * Connect to a node on a fabric.
74
+ * Ensure there is a channel to the designated peer.
69
75
  */
70
- connect(address: PeerAddress, discoveryOptions: DiscoveryOptions, allowUnknownPeer?: boolean): Promise<InteractionClient>;
71
- initializeInteractionClient(address: PeerAddress, discoveryOptions?: DiscoveryOptions): Promise<InteractionClient>;
76
+ ensureConnection(address: PeerAddress, discoveryOptions: DiscoveryOptions, allowUnknownPeer?: boolean): Promise<MessageChannel | undefined>;
77
+ /**
78
+ * Obtain an exchange provider for the designated peer.
79
+ */
80
+ exchangeProviderFor(address: PeerAddress, discoveryOptions?: DiscoveryOptions): Promise<ReconnectableExchangeProvider>;
72
81
  /**
73
82
  * Retrieve a peer by address.
74
83
  */
@@ -76,7 +85,7 @@ export declare class PeerSet implements ImmutableSet<OperationalPeer>, Observabl
76
85
  /**
77
86
  * Terminate any active peer connection.
78
87
  */
79
- disconnect(address: PeerAddress, sendSessionClose?: boolean): Promise<void>;
88
+ disconnect(peer: PeerAddress | OperationalPeer, sendSessionClose?: boolean): Promise<void>;
80
89
  /**
81
90
  * Forget a known peer.
82
91
  */
@@ -1 +1 @@
1
- {"version":3,"file":"PeerSet.d.ts","sourceRoot":"","sources":["../../../src/peer/PeerSet.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAEH,QAAQ,EAER,YAAY,EAEZ,WAAW,EACX,aAAa,EACb,YAAY,EAKZ,WAAW,EACX,eAAe,EAEf,aAAa,EAMhB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,WAAW,EAAkB,MAAM,sBAAsB,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAA4B,eAAe,EAAkB,MAAM,gCAAgC,CAAC;AAI3G,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAiB,MAAM,uBAAuB,CAAC;AAUxE;;GAEG;AACH,oBAAY,iBAAiB;IACzB,gFAAgF;IAChF,IAAI,IAAI;IAER,8FAA8F;IAC9F,uBAAuB,IAAI;IAE3B,8GAA8G;IAC9G,cAAc,IAAI;IAElB,uGAAuG;IACvG,aAAa,IAAI;CACpB;AAED,4FAA4F;AAC5F,qBAAa,gBAAiB,SAAQ,WAAW;CAAG;AAEpD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,aAAa,CAAC;CACjC;AASD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,eAAe,CAAC;IAC3B,QAAQ,EAAE,UAAU,CAAC;IACrB,aAAa,EAAE,eAAe,CAAC;IAC/B,KAAK,EAAE,gBAAgB,CAAC;CAC3B;AAED;;GAEG;AACH,qBAAa,OAAQ,YAAW,YAAY,CAAC,eAAe,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC;;gBAoB7E,OAAO,EAAE,cAAc;IAoCnC,IAAI,KAAK,2DAER;IAED,IAAI,OAAO,2DAEV;IAED,GAAG,CAAC,IAAI,EAAE,WAAW,GAAG,eAAe;IAOvC,IAAI,IAAI,WAEP;IAED,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,OAAO,GAAG,SAAS;IAI9D,MAAM,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,OAAO,GAAG,SAAS;IAIhE,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,CAAC;IAI3C,CAAC,MAAM,CAAC,QAAQ,CAAC;IAIjB,IAAI,YAAY,0BAEf;IAED,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAa9C,IAAI,KAAK,+CAER;IAED;;OAEG;IACG,OAAO,CACT,OAAO,EAAE,WAAW,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,UAAQ,GACzB,OAAO,CAAC,iBAAiB,CAAC;IAoCvB,2BAA2B,CAAC,OAAO,EAAE,WAAW,EAAE,gBAAgB,CAAC,EAAE,gBAAgB;IA0D3F;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,WAAW,GAAG,eAAe;IAOvC;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,gBAAgB,UAAO;IAM9D;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,eAAe;IAe1C,KAAK;CA6Zd"}
1
+ {"version":3,"file":"PeerSet.d.ts","sourceRoot":"","sources":["../../../src/peer/PeerSet.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAEH,eAAe,EACf,QAAQ,EAER,YAAY,EAEZ,WAAW,EACX,aAAa,EACb,YAAY,EAKZ,WAAW,EACX,eAAe,EAEf,aAAa,EAKhB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,EAAE,WAAW,EAAkB,MAAM,sBAAsB,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAA4B,eAAe,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAC3G,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAGhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAiB,MAAM,uBAAuB,CAAC;AAOxE;;GAEG;AACH,oBAAY,iBAAiB;IACzB,gFAAgF;IAChF,IAAI,IAAI;IAER,8FAA8F;IAC9F,uBAAuB,IAAI;IAE3B,8GAA8G;IAC9G,cAAc,IAAI;IAElB,uGAAuG;IACvG,aAAa,IAAI;CACpB;AAED,4FAA4F;AAC5F,qBAAa,gBAAiB,SAAQ,WAAW;CAAG;AAEpD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,aAAa,CAAC;CACjC;AASD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,cAAc,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC;IACzB,SAAS,EAAE,eAAe,CAAC;IAC3B,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,QAAQ,EAAE,UAAU,CAAC;IACrB,aAAa,EAAE,eAAe,CAAC;IAC/B,KAAK,EAAE,gBAAgB,CAAC;CAC3B;AAED;;GAEG;AACH,qBAAa,OAAQ,YAAW,YAAY,CAAC,eAAe,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC;;gBAqB7E,OAAO,EAAE,cAAc;IAqCnC,IAAI,KAAK,2DAER;IAED,IAAI,OAAO,2DAEV;IAED,IAAI,YAAY,kDAEf;IAED,GAAG,CAAC,IAAI,EAAE,WAAW,GAAG,eAAe;IAOvC,IAAI,IAAI,WAEP;IAED,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,OAAO,GAAG,SAAS;IAI9D,MAAM,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,OAAO,GAAG,SAAS;IAIhE,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,CAAC;IAI3C,CAAC,MAAM,CAAC,QAAQ,CAAC;IAIjB,IAAI,YAAY,0BAEf;IAED,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAc9C,IAAI,KAAK,+CAER;IAED,IAAI,kBAAkB,uBAErB;IAED,IAAI,gBAAgB,qBAEnB;IAED;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,UAAQ;IA8BzG;;OAEG;IACG,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,gBAAgB,CAAC,EAAE,gBAAgB;IAqCnF;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,WAAW,GAAG,eAAe;IAOvC;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,eAAe,EAAE,gBAAgB,UAAO;IAW7E;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,WAAW,GAAG,eAAe;IAc1C,KAAK;CAgad"}
@@ -6,6 +6,7 @@
6
6
  import { ScannerSet } from "#common/Scanner.js";
7
7
  import {
8
8
  anyPromise,
9
+ AsyncObservable,
9
10
  BasicSet,
10
11
  ChannelType,
11
12
  Construction,
@@ -18,11 +19,10 @@ import {
18
19
  MatterError,
19
20
  NetInterfaceSet,
20
21
  NoResponseTimeoutError,
21
- PromiseQueue,
22
22
  serverAddressToString,
23
23
  Time
24
24
  } from "#general";
25
- import { InteractionClient } from "#interaction/InteractionClient.js";
25
+ import { SubscriptionClient } from "#interaction/SubscriptionClient.js";
26
26
  import { PeerAddress, PeerAddressMap } from "#peer/PeerAddress.js";
27
27
  import { CaseClient } from "#session/index.js";
28
28
  import { SessionManager } from "#session/SessionManager.js";
@@ -32,12 +32,11 @@ import { ChannelNotConnectedError, ExchangeManager, MessageChannel } from "../pr
32
32
  import { ReconnectableExchangeProvider } from "../protocol/ExchangeProvider.js";
33
33
  import { RetransmissionLimitReachedError } from "../protocol/MessageExchange.js";
34
34
  import { ControllerDiscovery, DiscoveryError, PairRetransmissionLimitReachedError } from "./ControllerDiscovery.js";
35
+ import { InteractionQueue } from "./InteractionQueue.js";
35
36
  import { PeerAddressStore } from "./PeerAddressStore.js";
36
37
  const logger = Logger.get("PeerSet");
37
38
  const RECONNECTION_POLLING_INTERVAL_MS = 6e5;
38
39
  const RETRANSMISSION_DISCOVERY_TIMEOUT_S = 5;
39
- const CONCURRENT_QUEUED_INTERACTIONS = 4;
40
- const INTERACTION_QUEUE_DELAY_MS = 100;
41
40
  var NodeDiscoveryType = /* @__PURE__ */ ((NodeDiscoveryType2) => {
42
41
  NodeDiscoveryType2[NodeDiscoveryType2["None"] = 0] = "None";
43
42
  NodeDiscoveryType2[NodeDiscoveryType2["RetransmissionDiscovery"] = 1] = "RetransmissionDiscovery";
@@ -51,6 +50,7 @@ class PeerSet {
51
50
  #sessions;
52
51
  #channels;
53
52
  #exchanges;
53
+ #subscriptionClient;
54
54
  #scanners;
55
55
  #netInterfaces;
56
56
  #caseClient;
@@ -60,15 +60,16 @@ class PeerSet {
60
60
  #runningPeerReconnections = new PeerAddressMap();
61
61
  #construction;
62
62
  #store;
63
- #interactionQueue = new PromiseQueue(CONCURRENT_QUEUED_INTERACTIONS, INTERACTION_QUEUE_DELAY_MS);
63
+ #interactionQueue = new InteractionQueue();
64
64
  #nodeCachedData = new PeerAddressMap();
65
65
  // Temporarily until we store it in new API
66
- #clients = new PeerAddressMap();
66
+ #disconnected = AsyncObservable();
67
67
  constructor(context) {
68
- const { sessions, channels, exchanges, scanners, netInterfaces, store } = context;
68
+ const { sessions, channels, exchanges, subscriptionClient, scanners, netInterfaces, store } = context;
69
69
  this.#sessions = sessions;
70
70
  this.#channels = channels;
71
71
  this.#exchanges = exchanges;
72
+ this.#subscriptionClient = subscriptionClient;
72
73
  this.#scanners = scanners;
73
74
  this.#netInterfaces = netInterfaces;
74
75
  this.#store = store;
@@ -98,6 +99,9 @@ class PeerSet {
98
99
  get deleted() {
99
100
  return this.#peers.deleted;
100
101
  }
102
+ get disconnected() {
103
+ return this.#disconnected;
104
+ }
101
105
  has(item) {
102
106
  if ("address" in item) {
103
107
  return this.#peers.has(item);
@@ -127,6 +131,7 @@ class PeerSet {
127
131
  sessions: env.get(SessionManager),
128
132
  channels: env.get(ChannelManager),
129
133
  exchanges: env.get(ExchangeManager),
134
+ subscriptionClient: env.get(SubscriptionClient),
130
135
  scanners: env.get(ScannerSet),
131
136
  netInterfaces: env.get(NetInterfaceSet),
132
137
  store: env.get(PeerAddressStore)
@@ -137,14 +142,16 @@ class PeerSet {
137
142
  get peers() {
138
143
  return this.#peers;
139
144
  }
145
+ get subscriptionClient() {
146
+ return this.#subscriptionClient;
147
+ }
148
+ get interactionQueue() {
149
+ return this.#interactionQueue;
150
+ }
140
151
  /**
141
- * Connect to a node on a fabric.
152
+ * Ensure there is a channel to the designated peer.
142
153
  */
143
- async connect(address, discoveryOptions, allowUnknownPeer = false) {
144
- await this.#ensureConnection(address, discoveryOptions, allowUnknownPeer);
145
- return this.initializeInteractionClient(address, discoveryOptions);
146
- }
147
- async #ensureConnection(address, discoveryOptions, allowUnknownPeer = false) {
154
+ async ensureConnection(address, discoveryOptions, allowUnknownPeer = false) {
148
155
  if (!this.#peersByAddress.has(address) && !allowUnknownPeer) {
149
156
  throw new UnknownNodeError(`Cannot connect to unknown device ${PeerAddress(address)}`);
150
157
  }
@@ -166,52 +173,38 @@ class PeerSet {
166
173
  return promise;
167
174
  }
168
175
  }
169
- async initializeInteractionClient(address, discoveryOptions) {
170
- const existingClient = this.#clients.get(address);
171
- if (existingClient !== void 0) {
172
- return existingClient;
173
- }
174
- const nodeStore = this.get(address)?.dataStore;
175
- await nodeStore?.construction;
176
+ /**
177
+ * Obtain an exchange provider for the designated peer.
178
+ */
179
+ async exchangeProviderFor(address, discoveryOptions) {
176
180
  let initiallyConnected = this.#channels.hasChannel(address);
177
- const client = new InteractionClient(
178
- new ReconnectableExchangeProvider(this.#exchanges, this.#channels, address, async () => {
179
- if (!initiallyConnected && !this.#channels.hasChannel(address)) {
180
- await this.#ensureConnection(address, { discoveryType: 0 /* None */ });
181
- initiallyConnected = true;
182
- if (this.#channels.hasChannel(address)) {
183
- return;
184
- }
185
- }
186
- if (!this.#channels.hasChannel(address)) {
187
- throw new RetransmissionLimitReachedError(
188
- `Device ${PeerAddress(address)} is currently not reachable.`
189
- );
190
- }
191
- await this.#channels.removeAllNodeChannels(address);
192
- const { discoveryData } = discoveryOptions ?? {
193
- discoveryData: this.#peersByAddress.get(address)?.discoveryData
194
- };
195
- const operationalAddress = this.#knownOperationalAddressFor(address, true);
196
- if (operationalAddress === void 0) {
197
- logger.info(
198
- `Re-discovering device failed (no address found), remove all sessions for ${PeerAddress(address)}`
199
- );
200
- await this.#sessions.removeAllSessionsForNode(address);
201
- throw new RetransmissionLimitReachedError(
202
- `No operational address found for ${PeerAddress(address)}`
203
- );
181
+ return new ReconnectableExchangeProvider(this.#exchanges, this.#channels, address, async () => {
182
+ if (!initiallyConnected && !this.#channels.hasChannel(address)) {
183
+ await this.ensureConnection(address, { discoveryType: 0 /* None */ });
184
+ initiallyConnected = true;
185
+ if (this.#channels.hasChannel(address)) {
186
+ return;
204
187
  }
205
- if (await this.#reconnectKnownAddress(address, operationalAddress, discoveryData, 2e3) === void 0) {
206
- throw new RetransmissionLimitReachedError(`${PeerAddress(address)} is not reachable.`);
207
- }
208
- }),
209
- address,
210
- this.#interactionQueue,
211
- nodeStore
212
- );
213
- this.#clients.set(address, client);
214
- return client;
188
+ }
189
+ if (!this.#channels.hasChannel(address)) {
190
+ throw new RetransmissionLimitReachedError(`Device ${PeerAddress(address)} is currently not reachable.`);
191
+ }
192
+ await this.#channels.removeAllNodeChannels(address);
193
+ const { discoveryData } = discoveryOptions ?? {
194
+ discoveryData: this.#peersByAddress.get(address)?.discoveryData
195
+ };
196
+ const operationalAddress = this.#knownOperationalAddressFor(address, true);
197
+ if (operationalAddress === void 0) {
198
+ logger.info(
199
+ `Re-discovering device failed (no address found), remove all sessions for ${PeerAddress(address)}`
200
+ );
201
+ await this.#sessions.removeAllSessionsForNode(address);
202
+ throw new RetransmissionLimitReachedError(`No operational address found for ${PeerAddress(address)}`);
203
+ }
204
+ if (await this.#reconnectKnownAddress(address, operationalAddress, discoveryData, 2e3) === void 0) {
205
+ throw new RetransmissionLimitReachedError(`${PeerAddress(address)} is not reachable.`);
206
+ }
207
+ });
215
208
  }
216
209
  /**
217
210
  * Retrieve a peer by address.
@@ -225,10 +218,14 @@ class PeerSet {
225
218
  /**
226
219
  * Terminate any active peer connection.
227
220
  */
228
- async disconnect(address, sendSessionClose = true) {
229
- this.#clients.get(address)?.removeAllSubscriptions();
221
+ async disconnect(peer, sendSessionClose = true) {
222
+ const address = this.get(peer)?.address;
223
+ if (address === void 0) {
224
+ return;
225
+ }
230
226
  await this.#sessions.removeAllSessionsForNode(address, sendSessionClose);
231
227
  await this.#channels.removeAllNodeChannels(address);
228
+ await this.#disconnected.emit(address);
232
229
  }
233
230
  /**
234
231
  * Forget a known peer.
@@ -244,15 +241,15 @@ class PeerSet {
244
241
  await this.#store.deletePeer(address);
245
242
  await this.disconnect(address, false);
246
243
  await this.#sessions.deleteResumptionRecord(address);
247
- this.#clients.delete(address);
248
244
  }
249
245
  async close() {
250
246
  for (const [address, { stopTimerFunc, mdnsScanner }] of this.#runningPeerDiscoveries.entries()) {
251
247
  stopTimerFunc?.();
252
248
  mdnsScanner?.cancelOperationalDeviceDiscovery(this.#sessions.fabricFor(address), address.nodeId, false);
253
249
  }
254
- this.#clients.forEach((client) => client.close());
255
- this.#clients.clear();
250
+ for (const { address } of this.#peers) {
251
+ await this.disconnect(address, false);
252
+ }
256
253
  this.#interactionQueue.close();
257
254
  this.#runningPeerReconnections.forEach(
258
255
  ({ rejecter }) => rejecter(new ChannelNotConnectedError("PeerSet closed"))
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/peer/PeerSet.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["NodeDiscoveryType", "stopTimerFunc", "operationalAddress", "result"]
6
6
  }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export interface PhysicalDeviceProperties {
7
+ threadConnected: boolean;
8
+ wifiConnected: boolean;
9
+ ethernetConnected: boolean;
10
+ rootEndpointServerList: number[];
11
+ isBatteryPowered: boolean;
12
+ isIntermittentlyConnected: boolean;
13
+ isThreadSleepyEndDevice: boolean;
14
+ }
15
+ export declare namespace PhysicalDeviceProperties {
16
+ function determineSubscriptionParameters(options?: {
17
+ properties?: PhysicalDeviceProperties;
18
+ description?: string;
19
+ subscribeMinIntervalFloorSeconds?: number;
20
+ subscribeMaxIntervalCeilingSeconds?: number;
21
+ }): {
22
+ minIntervalFloorSeconds: number;
23
+ maxIntervalCeilingSeconds: number;
24
+ };
25
+ }
26
+ //# sourceMappingURL=PhysicalDeviceProperties.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PhysicalDeviceProperties.d.ts","sourceRoot":"","sources":["../../../src/peer/PhysicalDeviceProperties.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,MAAM,WAAW,wBAAwB;IACrC,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,yBAAyB,EAAE,OAAO,CAAC;IACnC,uBAAuB,EAAE,OAAO,CAAC;CACpC;AAED,yBAAiB,wBAAwB,CAAC;IACtC,SAAgB,+BAA+B,CAAC,OAAO,CAAC,EAAE;QACtD,UAAU,CAAC,EAAE,wBAAwB,CAAC;QACtC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,gCAAgC,CAAC,EAAE,MAAM,CAAC;QAC1C,kCAAkC,CAAC,EAAE,MAAM,CAAC;KAC/C;;;MA6CA;CACJ"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Logger } from "#general";
7
+ const logger = Logger.get("PhysicalDeviceProperties");
8
+ const DEFAULT_SUBSCRIPTION_FLOOR_DEFAULT_S = 1;
9
+ const DEFAULT_SUBSCRIPTION_FLOOR_ICD_S = 0;
10
+ const DEFAULT_SUBSCRIPTION_CEILING_WIFI_S = 60;
11
+ const DEFAULT_SUBSCRIPTION_CEILING_THREAD_S = 60;
12
+ const DEFAULT_SUBSCRIPTION_CEILING_THREAD_SLEEPY_S = 180;
13
+ const DEFAULT_SUBSCRIPTION_CEILING_BATTERY_POWERED_S = 600;
14
+ var PhysicalDeviceProperties;
15
+ ((PhysicalDeviceProperties2) => {
16
+ function determineSubscriptionParameters(options) {
17
+ const { properties } = options ?? {};
18
+ let {
19
+ description,
20
+ subscribeMinIntervalFloorSeconds: minIntervalFloorSeconds,
21
+ subscribeMaxIntervalCeilingSeconds: maxIntervalCeilingSeconds
22
+ } = options ?? {};
23
+ if (description === void 0) {
24
+ description = "Node";
25
+ }
26
+ const { isBatteryPowered, isIntermittentlyConnected, threadConnected, isThreadSleepyEndDevice } = properties ?? {};
27
+ if (isIntermittentlyConnected) {
28
+ if (minIntervalFloorSeconds !== void 0 && minIntervalFloorSeconds !== DEFAULT_SUBSCRIPTION_FLOOR_ICD_S) {
29
+ logger.info(
30
+ `${description}: Overwriting minIntervalFloorSeconds for intermittently connected device to ${DEFAULT_SUBSCRIPTION_FLOOR_ICD_S}`
31
+ );
32
+ minIntervalFloorSeconds = DEFAULT_SUBSCRIPTION_FLOOR_ICD_S;
33
+ }
34
+ }
35
+ const defaultCeiling = isBatteryPowered ? DEFAULT_SUBSCRIPTION_CEILING_BATTERY_POWERED_S : isThreadSleepyEndDevice ? DEFAULT_SUBSCRIPTION_CEILING_THREAD_SLEEPY_S : threadConnected ? DEFAULT_SUBSCRIPTION_CEILING_THREAD_S : DEFAULT_SUBSCRIPTION_CEILING_WIFI_S;
36
+ if (maxIntervalCeilingSeconds === void 0) {
37
+ maxIntervalCeilingSeconds = defaultCeiling;
38
+ }
39
+ if (maxIntervalCeilingSeconds < defaultCeiling) {
40
+ logger.debug(
41
+ `${description}: maxIntervalCeilingSeconds ideally is ${defaultCeiling}s instead of ${maxIntervalCeilingSeconds}s due to device type`
42
+ );
43
+ }
44
+ return {
45
+ minIntervalFloorSeconds: minIntervalFloorSeconds ?? DEFAULT_SUBSCRIPTION_FLOOR_DEFAULT_S,
46
+ maxIntervalCeilingSeconds
47
+ };
48
+ }
49
+ PhysicalDeviceProperties2.determineSubscriptionParameters = determineSubscriptionParameters;
50
+ })(PhysicalDeviceProperties || (PhysicalDeviceProperties = {}));
51
+ export {
52
+ PhysicalDeviceProperties
53
+ };
54
+ //# sourceMappingURL=PhysicalDeviceProperties.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/peer/PhysicalDeviceProperties.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,cAAc;AAEvB,MAAM,SAAS,OAAO,IAAI,0BAA0B;AAEpD,MAAM,uCAAuC;AAC7C,MAAM,mCAAmC;AACzC,MAAM,sCAAsC;AAC5C,MAAM,wCAAwC;AAC9C,MAAM,+CAA+C;AACrD,MAAM,iDAAiD;AAYhD,IAAU;AAAA,CAAV,CAAUA,8BAAV;AACI,WAAS,gCAAgC,SAK7C;AACC,UAAM,EAAE,WAAW,IAAI,WAAW,CAAC;AAEnC,QAAI;AAAA,MACA;AAAA,MACA,kCAAkC;AAAA,MAClC,oCAAoC;AAAA,IACxC,IAAI,WAAW,CAAC;AAEhB,QAAI,gBAAgB,QAAW;AAC3B,oBAAc;AAAA,IAClB;AAEA,UAAM,EAAE,kBAAkB,2BAA2B,iBAAiB,wBAAwB,IAC1F,cAAc,CAAC;AAEnB,QAAI,2BAA2B;AAC3B,UAAI,4BAA4B,UAAa,4BAA4B,kCAAkC;AACvG,eAAO;AAAA,UACH,GAAG,WAAW,gFAAgF,gCAAgC;AAAA,QAClI;AACA,kCAA0B;AAAA,MAC9B;AAAA,IACJ;AAEA,UAAM,iBAAiB,mBACjB,iDACA,0BACE,+CACA,kBACE,wCACA;AACV,QAAI,8BAA8B,QAAW;AACzC,kCAA4B;AAAA,IAChC;AACA,QAAI,4BAA4B,gBAAgB;AAC5C,aAAO;AAAA,QACH,GAAG,WAAW,0CAA0C,cAAc,gBAAgB,yBAAyB;AAAA,MACnH;AAAA,IACJ;AAEA,WAAO;AAAA,MACH,yBAAyB,2BAA2B;AAAA,MACpD;AAAA,IACJ;AAAA,EACJ;AAlDO,EAAAA,0BAAS;AAAA,GADH;",
5
+ "names": ["PhysicalDeviceProperties"]
6
+ }
@@ -10,4 +10,5 @@ export * from "./OperationalPeer.js";
10
10
  export * from "./PeerAddress.js";
11
11
  export * from "./PeerAddressStore.js";
12
12
  export * from "./PeerSet.js";
13
+ export * from "./PhysicalDeviceProperties.js";
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/peer/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/peer/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,+BAA+B,CAAC"}
@@ -10,4 +10,5 @@ export * from "./OperationalPeer.js";
10
10
  export * from "./PeerAddress.js";
11
11
  export * from "./PeerAddressStore.js";
12
12
  export * from "./PeerSet.js";
13
+ export * from "./PhysicalDeviceProperties.js";
13
14
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/peer/index.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
5
5
  "names": []
6
6
  }