@matter/protocol 0.15.0-alpha.0-20250625-4a4b1be1b → 0.15.0-alpha.0-20250626-fc3a84ce9

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 (117) hide show
  1. package/dist/cjs/cluster/client/ClusterClient.d.ts.map +1 -1
  2. package/dist/cjs/cluster/client/ClusterClient.js +7 -1
  3. package/dist/cjs/cluster/client/ClusterClient.js.map +1 -1
  4. package/dist/cjs/cluster/client/ClusterClientTypes.d.ts +10 -0
  5. package/dist/cjs/cluster/client/ClusterClientTypes.d.ts.map +1 -1
  6. package/dist/cjs/interaction/InteractionClient.d.ts +8 -1
  7. package/dist/cjs/interaction/InteractionClient.d.ts.map +1 -1
  8. package/dist/cjs/interaction/InteractionClient.js +15 -10
  9. package/dist/cjs/interaction/InteractionClient.js.map +1 -1
  10. package/dist/cjs/interaction/InteractionMessenger.d.ts +0 -1
  11. package/dist/cjs/interaction/InteractionMessenger.d.ts.map +1 -1
  12. package/dist/cjs/interaction/InteractionMessenger.js +0 -3
  13. package/dist/cjs/interaction/InteractionMessenger.js.map +1 -1
  14. package/dist/cjs/interaction/SubscriptionClient.d.ts +1 -1
  15. package/dist/cjs/interaction/SubscriptionClient.d.ts.map +1 -1
  16. package/dist/cjs/interaction/SubscriptionClient.js +1 -1
  17. package/dist/cjs/peer/ControllerCommissioner.d.ts +3 -2
  18. package/dist/cjs/peer/ControllerCommissioner.d.ts.map +1 -1
  19. package/dist/cjs/peer/ControllerCommissioner.js +6 -5
  20. package/dist/cjs/peer/ControllerCommissioner.js.map +1 -1
  21. package/dist/cjs/peer/ControllerCommissioningFlow.d.ts.map +1 -1
  22. package/dist/cjs/peer/ControllerCommissioningFlow.js +81 -52
  23. package/dist/cjs/peer/ControllerCommissioningFlow.js.map +1 -1
  24. package/dist/cjs/peer/PeerSet.d.ts +4 -3
  25. package/dist/cjs/peer/PeerSet.d.ts.map +1 -1
  26. package/dist/cjs/peer/PeerSet.js +9 -8
  27. package/dist/cjs/peer/PeerSet.js.map +1 -1
  28. package/dist/cjs/protocol/ChannelManager.d.ts +2 -2
  29. package/dist/cjs/protocol/ChannelManager.d.ts.map +1 -1
  30. package/dist/cjs/protocol/ChannelManager.js +4 -4
  31. package/dist/cjs/protocol/ChannelManager.js.map +1 -1
  32. package/dist/cjs/protocol/ExchangeManager.d.ts +5 -24
  33. package/dist/cjs/protocol/ExchangeManager.d.ts.map +1 -1
  34. package/dist/cjs/protocol/ExchangeManager.js +12 -55
  35. package/dist/cjs/protocol/ExchangeManager.js.map +1 -1
  36. package/dist/cjs/protocol/ExchangeProvider.d.ts +10 -6
  37. package/dist/cjs/protocol/ExchangeProvider.d.ts.map +1 -1
  38. package/dist/cjs/protocol/ExchangeProvider.js +12 -1
  39. package/dist/cjs/protocol/ExchangeProvider.js.map +1 -1
  40. package/dist/cjs/protocol/MessageChannel.d.ts +52 -0
  41. package/dist/cjs/protocol/MessageChannel.d.ts.map +1 -0
  42. package/dist/cjs/protocol/MessageChannel.js +130 -0
  43. package/dist/cjs/protocol/MessageChannel.js.map +6 -0
  44. package/dist/cjs/protocol/MessageExchange.d.ts +5 -5
  45. package/dist/cjs/protocol/MessageExchange.d.ts.map +1 -1
  46. package/dist/cjs/protocol/MessageExchange.js +34 -78
  47. package/dist/cjs/protocol/MessageExchange.js.map +1 -1
  48. package/dist/cjs/protocol/index.d.ts +1 -0
  49. package/dist/cjs/protocol/index.d.ts.map +1 -1
  50. package/dist/cjs/protocol/index.js +1 -0
  51. package/dist/cjs/protocol/index.js.map +1 -1
  52. package/dist/esm/cluster/client/ClusterClient.d.ts.map +1 -1
  53. package/dist/esm/cluster/client/ClusterClient.js +7 -1
  54. package/dist/esm/cluster/client/ClusterClient.js.map +1 -1
  55. package/dist/esm/cluster/client/ClusterClientTypes.d.ts +10 -0
  56. package/dist/esm/cluster/client/ClusterClientTypes.d.ts.map +1 -1
  57. package/dist/esm/interaction/InteractionClient.d.ts +8 -1
  58. package/dist/esm/interaction/InteractionClient.d.ts.map +1 -1
  59. package/dist/esm/interaction/InteractionClient.js +15 -10
  60. package/dist/esm/interaction/InteractionClient.js.map +1 -1
  61. package/dist/esm/interaction/InteractionMessenger.d.ts +0 -1
  62. package/dist/esm/interaction/InteractionMessenger.d.ts.map +1 -1
  63. package/dist/esm/interaction/InteractionMessenger.js +0 -3
  64. package/dist/esm/interaction/InteractionMessenger.js.map +1 -1
  65. package/dist/esm/interaction/SubscriptionClient.d.ts +1 -1
  66. package/dist/esm/interaction/SubscriptionClient.d.ts.map +1 -1
  67. package/dist/esm/interaction/SubscriptionClient.js +1 -1
  68. package/dist/esm/peer/ControllerCommissioner.d.ts +3 -2
  69. package/dist/esm/peer/ControllerCommissioner.d.ts.map +1 -1
  70. package/dist/esm/peer/ControllerCommissioner.js +4 -3
  71. package/dist/esm/peer/ControllerCommissioner.js.map +1 -1
  72. package/dist/esm/peer/ControllerCommissioningFlow.d.ts.map +1 -1
  73. package/dist/esm/peer/ControllerCommissioningFlow.js +81 -52
  74. package/dist/esm/peer/ControllerCommissioningFlow.js.map +1 -1
  75. package/dist/esm/peer/PeerSet.d.ts +4 -3
  76. package/dist/esm/peer/PeerSet.d.ts.map +1 -1
  77. package/dist/esm/peer/PeerSet.js +5 -4
  78. package/dist/esm/peer/PeerSet.js.map +1 -1
  79. package/dist/esm/protocol/ChannelManager.d.ts +2 -2
  80. package/dist/esm/protocol/ChannelManager.d.ts.map +1 -1
  81. package/dist/esm/protocol/ChannelManager.js +2 -2
  82. package/dist/esm/protocol/ChannelManager.js.map +1 -1
  83. package/dist/esm/protocol/ExchangeManager.d.ts +5 -24
  84. package/dist/esm/protocol/ExchangeManager.d.ts.map +1 -1
  85. package/dist/esm/protocol/ExchangeManager.js +13 -56
  86. package/dist/esm/protocol/ExchangeManager.js.map +1 -1
  87. package/dist/esm/protocol/ExchangeProvider.d.ts +10 -6
  88. package/dist/esm/protocol/ExchangeProvider.d.ts.map +1 -1
  89. package/dist/esm/protocol/ExchangeProvider.js +12 -1
  90. package/dist/esm/protocol/ExchangeProvider.js.map +1 -1
  91. package/dist/esm/protocol/MessageChannel.d.ts +52 -0
  92. package/dist/esm/protocol/MessageChannel.d.ts.map +1 -0
  93. package/dist/esm/protocol/MessageChannel.js +110 -0
  94. package/dist/esm/protocol/MessageChannel.js.map +6 -0
  95. package/dist/esm/protocol/MessageExchange.d.ts +5 -5
  96. package/dist/esm/protocol/MessageExchange.d.ts.map +1 -1
  97. package/dist/esm/protocol/MessageExchange.js +39 -83
  98. package/dist/esm/protocol/MessageExchange.js.map +1 -1
  99. package/dist/esm/protocol/index.d.ts +1 -0
  100. package/dist/esm/protocol/index.d.ts.map +1 -1
  101. package/dist/esm/protocol/index.js +1 -0
  102. package/dist/esm/protocol/index.js.map +1 -1
  103. package/package.json +6 -6
  104. package/src/cluster/client/ClusterClient.ts +8 -1
  105. package/src/cluster/client/ClusterClientTypes.ts +12 -0
  106. package/src/interaction/InteractionClient.ts +29 -16
  107. package/src/interaction/InteractionMessenger.ts +0 -4
  108. package/src/interaction/SubscriptionClient.ts +2 -2
  109. package/src/peer/ControllerCommissioner.ts +4 -3
  110. package/src/peer/ControllerCommissioningFlow.ts +96 -57
  111. package/src/peer/PeerSet.ts +5 -4
  112. package/src/protocol/ChannelManager.ts +3 -3
  113. package/src/protocol/ExchangeManager.ts +18 -67
  114. package/src/protocol/ExchangeProvider.ts +20 -6
  115. package/src/protocol/MessageChannel.ts +163 -0
  116. package/src/protocol/MessageExchange.ts +40 -119
  117. package/src/protocol/index.ts +1 -0
@@ -3,6 +3,7 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { MessageCodec, SessionType } from "#codec/MessageCodec.js";
6
7
  import {
7
8
  Crypto,
8
9
  Diagnostic,
@@ -17,67 +18,18 @@ import {
17
18
  UdpInterface,
18
19
  UnexpectedDataError
19
20
  } from "#general";
21
+ import { SecureChannelMessenger } from "#securechannel/SecureChannelMessenger.js";
22
+ import { SecureChannelProtocol } from "#securechannel/SecureChannelProtocol.js";
23
+ import { NodeSession } from "#session/NodeSession.js";
24
+ import { SessionManager, UNICAST_UNSECURE_SESSION_ID } from "#session/SessionManager.js";
20
25
  import { NodeId, SECURE_CHANNEL_PROTOCOL_ID, SecureMessageType } from "#types";
21
- import { MessageCodec, SessionType } from "../codec/MessageCodec.js";
22
- import { SecureChannelMessenger } from "../securechannel/SecureChannelMessenger.js";
23
- import { SecureChannelProtocol } from "../securechannel/SecureChannelProtocol.js";
24
- import { NodeSession } from "../session/NodeSession.js";
25
- import { SessionManager, UNICAST_UNSECURE_SESSION_ID } from "../session/SessionManager.js";
26
26
  import { ChannelManager } from "./ChannelManager.js";
27
- import { MessageExchange } from "./MessageExchange.js";
27
+ import { DEFAULT_EXPECTED_PROCESSING_TIME_MS, MessageExchange } from "./MessageExchange.js";
28
28
  import { DuplicateMessageError } from "./MessageReceptionState.js";
29
29
  const logger = Logger.get("ExchangeManager");
30
30
  const MAXIMUM_CONCURRENT_EXCHANGES_PER_SESSION = 5;
31
31
  class ChannelNotConnectedError extends MatterError {
32
32
  }
33
- class MessageChannel {
34
- constructor(channel, session, closeCallback) {
35
- this.channel = channel;
36
- this.session = session;
37
- this.#closeCallback = closeCallback;
38
- }
39
- closed = false;
40
- #closeCallback;
41
- set closeCallback(callback) {
42
- this.#closeCallback = callback;
43
- }
44
- /** Is the underlying transport reliable? */
45
- get isReliable() {
46
- return this.channel.isReliable;
47
- }
48
- get type() {
49
- return this.channel.type;
50
- }
51
- /**
52
- * Max Payload size of the exchange which bases on the maximum payload size of the channel. The full encoded matter
53
- * message payload sent here can be as huge as allowed by the channel.
54
- */
55
- get maxPayloadSize() {
56
- return this.channel.maxPayloadSize;
57
- }
58
- async send(message, logContext) {
59
- logger.debug("Message \xBB", MessageCodec.messageDiagnostics(message, logContext));
60
- const packet = this.session.encode(message);
61
- const bytes = MessageCodec.encodePacket(packet);
62
- if (bytes.length > this.maxPayloadSize) {
63
- logger.warn(
64
- `Matter message to send to ${this.name} is ${bytes.length}bytes long, which is larger than the maximum allowed size of ${this.maxPayloadSize}. This only works if both nodes support it.`
65
- );
66
- }
67
- return await this.channel.send(bytes);
68
- }
69
- get name() {
70
- return `${this.channel.name} on session ${this.session.name}`;
71
- }
72
- async close() {
73
- const wasAlreadyClosed = this.closed;
74
- this.closed = true;
75
- await this.channel.close();
76
- if (!wasAlreadyClosed) {
77
- await this.#closeCallback?.();
78
- }
79
- }
80
- }
81
33
  class ExchangeManager {
82
34
  #transportInterfaces;
83
35
  #sessionManager;
@@ -359,6 +311,12 @@ class ExchangeManager {
359
311
  logger.debug(`Closing oldest exchange ${exchangeToClose.id} for session ${sessionId}`);
360
312
  exchangeToClose.close().catch((error) => logger.error("Error closing exchange", error));
361
313
  }
314
+ calculateMaximumPeerResponseTimeMsFor(channel, expectedProcessingTimeMs = DEFAULT_EXPECTED_PROCESSING_TIME_MS) {
315
+ return channel.calculateMaximumPeerResponseTimeMs(
316
+ this.#sessionManager.sessionParameters,
317
+ expectedProcessingTimeMs
318
+ );
319
+ }
362
320
  #messageExchangeContextFor(channel) {
363
321
  return {
364
322
  channel,
@@ -419,7 +377,6 @@ class ExchangeCounter {
419
377
  export {
420
378
  ChannelNotConnectedError,
421
379
  ExchangeCounter,
422
- ExchangeManager,
423
- MessageChannel
380
+ ExchangeManager
424
381
  };
425
382
  //# sourceMappingURL=ExchangeManager.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/protocol/ExchangeManager.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["exchange"]
6
6
  }
@@ -4,12 +4,13 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { ChannelType, Observable } from "#general";
7
- import { PeerAddress } from "../peer/PeerAddress.js";
8
- import { ChannelManager } from "../protocol/ChannelManager.js";
9
- import { ExchangeManager, MessageChannel } from "../protocol/ExchangeManager.js";
10
- import { MessageExchange } from "../protocol/MessageExchange.js";
11
- import { ProtocolHandler } from "../protocol/ProtocolHandler.js";
12
- import { Session } from "../session/Session.js";
7
+ import { PeerAddress } from "#peer/PeerAddress.js";
8
+ import { ChannelManager } from "#protocol/ChannelManager.js";
9
+ import { ExchangeManager } from "#protocol/ExchangeManager.js";
10
+ import { MessageChannel } from "#protocol/MessageChannel.js";
11
+ import { MessageExchange } from "#protocol/MessageExchange.js";
12
+ import { ProtocolHandler } from "#protocol/ProtocolHandler.js";
13
+ import { Session } from "#session/Session.js";
13
14
  /**
14
15
  * Interface for obtaining an exchange with a specific peer.
15
16
  */
@@ -20,6 +21,7 @@ export declare abstract class ExchangeProvider {
20
21
  hasProtocolHandler(protocolId: number): boolean;
21
22
  getProtocolHandler(protocolId: number): ProtocolHandler | undefined;
22
23
  addProtocolHandler(handler: ProtocolHandler): void;
24
+ abstract maximumPeerResponseTimeMs(expectedProcessingTimeMs?: number): number;
23
25
  abstract initiateExchange(): Promise<MessageExchange>;
24
26
  abstract reconnectChannel(): Promise<boolean>;
25
27
  abstract session: Session;
@@ -36,6 +38,7 @@ export declare class DedicatedChannelExchangeProvider extends ExchangeProvider {
36
38
  reconnectChannel(): Promise<boolean>;
37
39
  get session(): Session;
38
40
  get channelType(): ChannelType;
41
+ maximumPeerResponseTimeMs(expectedProcessingTimeMs?: number): number;
39
42
  }
40
43
  /**
41
44
  * Manages peer exchange that will reestablish automatically in the case of communication failure.
@@ -50,5 +53,6 @@ export declare class ReconnectableExchangeProvider extends ExchangeProvider {
50
53
  reconnectChannel(): Promise<boolean>;
51
54
  get session(): Session;
52
55
  get channelType(): ChannelType;
56
+ maximumPeerResponseTimeMs(expectedProcessingTimeMs?: number): number;
53
57
  }
54
58
  //# sourceMappingURL=ExchangeProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExchangeProvider.d.ts","sourceRoot":"","sources":["../../../src/protocol/ExchangeProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAA4B,eAAe,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAC3G,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD;;GAEG;AACH,8BAAsB,gBAAgB;IAGtB,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe;IAF/D,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;gBAEd,eAAe,EAAE,eAAe;IAE/D,kBAAkB,CAAC,UAAU,EAAE,MAAM;IAIrC,kBAAkB,CAAC,UAAU,EAAE,MAAM;IAIrC,kBAAkB,CAAC,OAAO,EAAE,eAAe;IAI3C,QAAQ,CAAC,gBAAgB,IAAI,OAAO,CAAC,eAAe,CAAC;IACrD,QAAQ,CAAC,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACrC;AAED;;GAEG;AACH,qBAAa,gCAAiC,SAAQ,gBAAgB;;IAElE,QAAQ,CAAC,iBAAiB,SAAS;gBAEvB,eAAe,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc;IAK/D,gBAAgB,IAAI,OAAO,CAAC,eAAe,CAAC;IAI5C,gBAAgB;IAItB,IAAI,OAAO,YAEV;IAED,IAAI,WAAW,gBAEd;CACJ;AAED;;GAEG;AACH,qBAAa,6BAA8B,SAAQ,gBAAgB;;IAQ3D,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc;IAPrD,QAAQ,CAAC,iBAAiB,QAAQ;gBAM9B,eAAe,EAAE,eAAe,EACb,cAAc,EAAE,cAAc,EACjD,OAAO,EAAE,WAAW,EACpB,oBAAoB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;IAY7C,IAAI,cAAc,6BAEjB;IAEK,gBAAgB,IAAI,OAAO,CAAC,eAAe,CAAC;IAU5C,gBAAgB;IAMtB,IAAI,OAAO,YAKV;IAED,IAAI,WAAW,gBAKd;CACJ"}
1
+ {"version":3,"file":"ExchangeProvider.d.ts","sourceRoot":"","sources":["../../../src/protocol/ExchangeProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAA4B,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAuC,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpG,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG9C;;GAEG;AACH,8BAAsB,gBAAgB;IAGtB,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe;IAF/D,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;gBAEd,eAAe,EAAE,eAAe;IAE/D,kBAAkB,CAAC,UAAU,EAAE,MAAM;IAIrC,kBAAkB,CAAC,UAAU,EAAE,MAAM;IAIrC,kBAAkB,CAAC,OAAO,EAAE,eAAe;IAI3C,QAAQ,CAAC,yBAAyB,CAAC,wBAAwB,CAAC,EAAE,MAAM,GAAG,MAAM;IAC7E,QAAQ,CAAC,gBAAgB,IAAI,OAAO,CAAC,eAAe,CAAC;IACrD,QAAQ,CAAC,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAC7C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACrC;AAED;;GAEG;AACH,qBAAa,gCAAiC,SAAQ,gBAAgB;;IAElE,QAAQ,CAAC,iBAAiB,SAAS;gBAEvB,eAAe,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc;IAK/D,gBAAgB,IAAI,OAAO,CAAC,eAAe,CAAC;IAI5C,gBAAgB;IAItB,IAAI,OAAO,YAEV;IAED,IAAI,WAAW,gBAEd;IAED,yBAAyB,CAAC,wBAAwB,SAAsC;CAG3F;AAED;;GAEG;AACH,qBAAa,6BAA8B,SAAQ,gBAAgB;;IAQ3D,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc;IAPrD,QAAQ,CAAC,iBAAiB,QAAQ;gBAM9B,eAAe,EAAE,eAAe,EACb,cAAc,EAAE,cAAc,EACjD,OAAO,EAAE,WAAW,EACpB,oBAAoB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;IAY7C,IAAI,cAAc,6BAEjB;IAEK,gBAAgB,IAAI,OAAO,CAAC,eAAe,CAAC;IAU5C,gBAAgB;IAMtB,IAAI,OAAO,YAKV;IAED,IAAI,WAAW,gBAKd;IAED,yBAAyB,CAAC,wBAAwB,SAAsC;CAO3F"}
@@ -4,8 +4,9 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { Observable } from "#general";
7
+ import { ChannelNotConnectedError } from "#protocol/ExchangeManager.js";
8
+ import { DEFAULT_EXPECTED_PROCESSING_TIME_MS } from "#protocol/MessageExchange.js";
7
9
  import { INTERACTION_PROTOCOL_ID } from "#types";
8
- import { ChannelNotConnectedError } from "../protocol/ExchangeManager.js";
9
10
  class ExchangeProvider {
10
11
  constructor(exchangeManager) {
11
12
  this.exchangeManager = exchangeManager;
@@ -39,6 +40,9 @@ class DedicatedChannelExchangeProvider extends ExchangeProvider {
39
40
  get channelType() {
40
41
  return this.#channel.type;
41
42
  }
43
+ maximumPeerResponseTimeMs(expectedProcessingTimeMs = DEFAULT_EXPECTED_PROCESSING_TIME_MS) {
44
+ return this.exchangeManager.calculateMaximumPeerResponseTimeMsFor(this.#channel, expectedProcessingTimeMs);
45
+ }
42
46
  }
43
47
  class ReconnectableExchangeProvider extends ExchangeProvider {
44
48
  constructor(exchangeManager, channelManager, address, reconnectChannelFunc) {
@@ -85,6 +89,13 @@ class ReconnectableExchangeProvider extends ExchangeProvider {
85
89
  }
86
90
  return this.channelManager.getChannel(this.#address).type;
87
91
  }
92
+ maximumPeerResponseTimeMs(expectedProcessingTimeMs = DEFAULT_EXPECTED_PROCESSING_TIME_MS) {
93
+ const channel = this.channelManager.getChannel(this.#address);
94
+ if (!channel) {
95
+ throw new ChannelNotConnectedError("Channel not connected");
96
+ }
97
+ return this.exchangeManager.calculateMaximumPeerResponseTimeMsFor(channel, expectedProcessingTimeMs);
98
+ }
88
99
  }
89
100
  export {
90
101
  DedicatedChannelExchangeProvider,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/protocol/ExchangeProvider.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,SAAsB,kBAAkB;AACxC,SAAS,+BAA+B;AAGxC,SAAS,gCAAiE;AAQnE,MAAe,iBAAiB;AAAA,EAGnC,YAA+B,iBAAkC;AAAlC;AAAA,EAAmC;AAAA,EAElE,mBAAmB,YAAoB;AACnC,WAAO,KAAK,gBAAgB,mBAAmB,UAAU;AAAA,EAC7D;AAAA,EAEA,mBAAmB,YAAoB;AACnC,WAAO,KAAK,gBAAgB,mBAAmB,UAAU;AAAA,EAC7D;AAAA,EAEA,mBAAmB,SAA0B;AACzC,SAAK,gBAAgB,mBAAmB,OAAO;AAAA,EACnD;AAMJ;AAKO,MAAM,yCAAyC,iBAAiB;AAAA,EACnE;AAAA,EACS,oBAAoB;AAAA,EAE7B,YAAY,iBAAkC,SAAyB;AACnE,UAAM,eAAe;AACrB,SAAK,WAAW;AAAA,EACpB;AAAA,EAEA,MAAM,mBAA6C;AAC/C,WAAO,KAAK,gBAAgB,4BAA4B,KAAK,UAAU,uBAAuB;AAAA,EAClG;AAAA,EAEA,MAAM,mBAAmB;AACrB,WAAO;AAAA,EACX;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,KAAK,SAAS;AAAA,EACzB;AAAA,EAEA,IAAI,cAAc;AACd,WAAO,KAAK,SAAS;AAAA,EACzB;AACJ;AAKO,MAAM,sCAAsC,iBAAiB;AAAA,EAMhE,YACI,iBACmB,gBACnB,SACA,sBACF;AACE,UAAM,eAAe;AAJF;AAKnB,SAAK,WAAW;AAChB,SAAK,wBAAwB;AAC7B,mBAAe,MAAM,GAAG,CAAAA,aAAW;AAC/B,UAAIA,aAAY,KAAK,UAAU;AAC3B,aAAK,gBAAgB,KAAK;AAAA,MAC9B;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAnBS,oBAAoB;AAAA,EACpB;AAAA,EACA;AAAA,EACA,kBAAkB,WAAmB;AAAA,EAkB9C,IAAI,iBAAiB;AACjB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,mBAA6C;AAC/C,QAAI,CAAC,KAAK,eAAe,WAAW,KAAK,QAAQ,GAAG;AAChD,YAAM,KAAK,iBAAiB;AAAA,IAChC;AACA,QAAI,CAAC,KAAK,eAAe,WAAW,KAAK,QAAQ,GAAG;AAChD,YAAM,IAAI,yBAAyB,uBAAuB;AAAA,IAC9D;AACA,WAAO,KAAK,gBAAgB,iBAAiB,KAAK,UAAU,uBAAuB;AAAA,EACvF;AAAA,EAEA,MAAM,mBAAmB;AACrB,QAAI,KAAK,0BAA0B,OAAW,QAAO;AACrD,UAAM,KAAK,sBAAsB;AACjC,WAAO;AAAA,EACX;AAAA,EAEA,IAAI,UAAU;AACV,QAAI,CAAC,KAAK,eAAe,WAAW,KAAK,QAAQ,GAAG;AAChD,YAAM,IAAI,yBAAyB,uBAAuB;AAAA,IAC9D;AACA,WAAO,KAAK,eAAe,WAAW,KAAK,QAAQ,EAAE;AAAA,EACzD;AAAA,EAEA,IAAI,cAAc;AACd,QAAI,CAAC,KAAK,eAAe,WAAW,KAAK,QAAQ,GAAG;AAChD,YAAM,IAAI,yBAAyB,uBAAuB;AAAA,IAC9D;AACA,WAAO,KAAK,eAAe,WAAW,KAAK,QAAQ,EAAE;AAAA,EACzD;AACJ;",
4
+ "mappings": "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",
5
5
  "names": ["address"]
6
6
  }
@@ -0,0 +1,52 @@
1
+ import { Message } from "#codec/index.js";
2
+ import { Channel } from "#general";
3
+ import { ExchangeLogContext } from "#protocol/MessageExchange.js";
4
+ import { Session, SessionParameters } from "#session/index.js";
5
+ export declare namespace MRP {
6
+ /**
7
+ * The maximum number of transmission attempts for a given reliable message. The sender MAY choose this value as it
8
+ * sees fit.
9
+ */
10
+ const MAX_TRANSMISSIONS = 5;
11
+ /** The base number for the exponential backoff equation. */
12
+ const BACKOFF_BASE = 1.6;
13
+ /** The scaler for random jitter in the backoff equation. */
14
+ const BACKOFF_JITTER = 0.25;
15
+ /** The scaler margin increase to backoff over the peer sleepy interval. */
16
+ const BACKOFF_MARGIN = 1.1;
17
+ /** The number of retransmissions before transitioning from linear to exponential backoff. */
18
+ const BACKOFF_THRESHOLD = 1;
19
+ /** @see {@link MatterSpecification.v12.Core}, section 4.11.8 */
20
+ const STANDALONE_ACK_TIMEOUT_MS = 200;
21
+ }
22
+ export declare class MessageChannel implements Channel<Message> {
23
+ #private;
24
+ readonly channel: Channel<Uint8Array>;
25
+ readonly session: Session;
26
+ closed: boolean;
27
+ constructor(channel: Channel<Uint8Array>, session: Session, closeCallback?: () => Promise<void>);
28
+ set closeCallback(callback: () => Promise<void>);
29
+ get usesMrp(): boolean;
30
+ /** Is the underlying transport reliable? */
31
+ get isReliable(): boolean;
32
+ get type(): import("#general").ChannelType;
33
+ /**
34
+ * Max Payload size of the exchange which bases on the maximum payload size of the channel. The full encoded matter
35
+ * message payload sent here can be as huge as allowed by the channel.
36
+ */
37
+ get maxPayloadSize(): number;
38
+ send(message: Message, logContext?: ExchangeLogContext): Promise<void>;
39
+ get name(): string;
40
+ close(): Promise<void>;
41
+ calculateMaximumPeerResponseTimeMs(sessionParameters: SessionParameters, expectedProcessingTimeMs?: number): number;
42
+ /**
43
+ * Calculates the backoff time for a resubmission based on the current retransmission count.
44
+ * If no session parameters are provided, the parameters of the current session are used.
45
+ * If session parameters are provided, the method can be used to calculate the maximum backoff time for the other
46
+ * side of the exchange.
47
+ *
48
+ * @see {@link MatterSpecification.v10.Core}, section 4.11.2.1
49
+ */
50
+ getMrpResubmissionBackOffTime(retransmissionCount: number, sessionParameters?: SessionParameters): number;
51
+ }
52
+ //# sourceMappingURL=MessageChannel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageChannel.d.ts","sourceRoot":"","sources":["../../../src/protocol/MessageChannel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAgB,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,OAAO,EAA2B,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAuC,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvG,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAU/D,yBAAiB,GAAG,CAAC;IACjB;;;OAGG;IACI,MAAM,iBAAiB,IAAI,CAAC;IAEnC,4DAA4D;IACrD,MAAM,YAAY,MAAM,CAAC;IAEhC,4DAA4D;IACrD,MAAM,cAAc,OAAO,CAAC;IAEnC,2EAA2E;IACpE,MAAM,cAAc,MAAM,CAAC;IAElC,6FAA6F;IACtF,MAAM,iBAAiB,IAAI,CAAC;IAEnC,gEAAgE;IACzD,MAAM,yBAAyB,MAAM,CAAC;CAChD;AAED,qBAAa,cAAe,YAAW,OAAO,CAAC,OAAO,CAAC;;IAM/C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO;IANtB,MAAM,UAAS;gBAKT,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,EAC5B,OAAO,EAAE,OAAO,EACzB,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;IAKvC,IAAI,aAAa,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAE9C;IAED,IAAI,OAAO,YAEV;IAED,4CAA4C;IAC5C,IAAI,UAAU,YAEb;IAED,IAAI,IAAI,mCAEP;IAED;;;OAGG;IACH,IAAI,cAAc,WAEjB;IAEK,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,kBAAkB;IAa5D,IAAI,IAAI,WAEP;IAEK,KAAK;IASX,kCAAkC,CAC9B,iBAAiB,EAAE,iBAAiB,EACpC,wBAAwB,SAAsC;IAyBlE;;;;;;;OAOG;IACH,6BAA6B,CAAC,mBAAmB,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,iBAAiB;CA2BnG"}
@@ -0,0 +1,110 @@
1
+ import { MessageCodec } from "#codec/index.js";
2
+ import { Logger, MatterFlowError } from "#general";
3
+ import { DEFAULT_EXPECTED_PROCESSING_TIME_MS } from "#protocol/MessageExchange.js";
4
+ const logger = new Logger("MessageChannel");
5
+ const PEER_RESPONSE_TIME_BUFFER_MS = 5e3;
6
+ var MRP;
7
+ ((MRP2) => {
8
+ MRP2.MAX_TRANSMISSIONS = 5;
9
+ MRP2.BACKOFF_BASE = 1.6;
10
+ MRP2.BACKOFF_JITTER = 0.25;
11
+ MRP2.BACKOFF_MARGIN = 1.1;
12
+ MRP2.BACKOFF_THRESHOLD = 1;
13
+ MRP2.STANDALONE_ACK_TIMEOUT_MS = 200;
14
+ })(MRP || (MRP = {}));
15
+ class MessageChannel {
16
+ // When the session is supporting MRP and the channel is not reliable, use MRP handling
17
+ constructor(channel, session, closeCallback) {
18
+ this.channel = channel;
19
+ this.session = session;
20
+ this.#closeCallback = closeCallback;
21
+ }
22
+ closed = false;
23
+ #closeCallback;
24
+ set closeCallback(callback) {
25
+ this.#closeCallback = callback;
26
+ }
27
+ get usesMrp() {
28
+ return this.session.supportsMRP && !this.channel.isReliable;
29
+ }
30
+ /** Is the underlying transport reliable? */
31
+ get isReliable() {
32
+ return this.channel.isReliable;
33
+ }
34
+ get type() {
35
+ return this.channel.type;
36
+ }
37
+ /**
38
+ * Max Payload size of the exchange which bases on the maximum payload size of the channel. The full encoded matter
39
+ * message payload sent here can be as huge as allowed by the channel.
40
+ */
41
+ get maxPayloadSize() {
42
+ return this.channel.maxPayloadSize;
43
+ }
44
+ async send(message, logContext) {
45
+ logger.debug("Message \xBB", MessageCodec.messageDiagnostics(message, logContext));
46
+ const packet = this.session.encode(message);
47
+ const bytes = MessageCodec.encodePacket(packet);
48
+ if (bytes.length > this.maxPayloadSize) {
49
+ logger.warn(
50
+ `Matter message to send to ${this.name} is ${bytes.length}bytes long, which is larger than the maximum allowed size of ${this.maxPayloadSize}. This only works if both nodes support it.`
51
+ );
52
+ }
53
+ return await this.channel.send(bytes);
54
+ }
55
+ get name() {
56
+ return `${this.channel.name} on session ${this.session.name}`;
57
+ }
58
+ async close() {
59
+ const wasAlreadyClosed = this.closed;
60
+ this.closed = true;
61
+ await this.channel.close();
62
+ if (!wasAlreadyClosed) {
63
+ await this.#closeCallback?.();
64
+ }
65
+ }
66
+ calculateMaximumPeerResponseTimeMs(sessionParameters, expectedProcessingTimeMs = DEFAULT_EXPECTED_PROCESSING_TIME_MS) {
67
+ switch (this.channel.type) {
68
+ case "tcp":
69
+ return 3e4 + PEER_RESPONSE_TIME_BUFFER_MS;
70
+ case "udp":
71
+ if (!this.usesMrp) {
72
+ throw new MatterFlowError("No response expected for this message exchange because UDP and no MRP.");
73
+ }
74
+ return this.#calculateMrpMaximumPeerResponseTime(sessionParameters, expectedProcessingTimeMs) + PEER_RESPONSE_TIME_BUFFER_MS;
75
+ case "ble":
76
+ return 3e4 + PEER_RESPONSE_TIME_BUFFER_MS;
77
+ default:
78
+ throw new MatterFlowError(
79
+ `Can not calculate expected timeout for unknown channel type: ${this.channel.type}`
80
+ );
81
+ }
82
+ }
83
+ /**
84
+ * Calculates the backoff time for a resubmission based on the current retransmission count.
85
+ * If no session parameters are provided, the parameters of the current session are used.
86
+ * If session parameters are provided, the method can be used to calculate the maximum backoff time for the other
87
+ * side of the exchange.
88
+ *
89
+ * @see {@link MatterSpecification.v10.Core}, section 4.11.2.1
90
+ */
91
+ getMrpResubmissionBackOffTime(retransmissionCount, sessionParameters) {
92
+ const { activeIntervalMs, idleIntervalMs } = sessionParameters ?? this.session.parameters;
93
+ const baseInterval = sessionParameters !== void 0 || this.session.isPeerActive() ? activeIntervalMs : idleIntervalMs;
94
+ return Math.floor(
95
+ MRP.BACKOFF_MARGIN * baseInterval * Math.pow(MRP.BACKOFF_BASE, Math.max(0, retransmissionCount - MRP.BACKOFF_THRESHOLD)) * (1 + (sessionParameters !== void 0 ? 1 : Math.random()) * MRP.BACKOFF_JITTER)
96
+ );
97
+ }
98
+ #calculateMrpMaximumPeerResponseTime(sessionParameters, expectedProcessingTimeMs = DEFAULT_EXPECTED_PROCESSING_TIME_MS) {
99
+ let finalWaitTime = expectedProcessingTimeMs;
100
+ for (let i = 0; i < MRP.MAX_TRANSMISSIONS; i++) {
101
+ finalWaitTime += this.getMrpResubmissionBackOffTime(i, sessionParameters);
102
+ }
103
+ return finalWaitTime;
104
+ }
105
+ }
106
+ export {
107
+ MRP,
108
+ MessageChannel
109
+ };
110
+ //# sourceMappingURL=MessageChannel.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/protocol/MessageChannel.ts"],
4
+ "mappings": "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",
5
+ "names": ["MRP"]
6
+ }
@@ -3,11 +3,11 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { Message } from "#codec/MessageCodec.js";
6
7
  import { AsyncObservable, MatterError, NoResponseTimeoutError } from "#general";
8
+ import { MessageChannel } from "#protocol/MessageChannel.js";
9
+ import { SessionParameters } from "#session/Session.js";
7
10
  import { NodeId } from "#types";
8
- import { Message } from "../codec/MessageCodec.js";
9
- import { SessionParameters } from "../session/Session.js";
10
- import { MessageChannel } from "./ExchangeManager.js";
11
11
  export declare class RetransmissionLimitReachedError extends NoResponseTimeoutError {
12
12
  }
13
13
  export declare class UnexpectedMessageError extends MatterError {
@@ -81,7 +81,7 @@ export declare class MessageExchange {
81
81
  get isClosing(): boolean;
82
82
  get id(): number;
83
83
  get channel(): MessageChannel;
84
- get session(): import("#session/index.js").Session;
84
+ get session(): import("#session/Session.js").Session;
85
85
  /**
86
86
  * Max Payload size of the exchange which bases on the maximum payload size of the channel reduced by Matter
87
87
  * protocol overhead.
@@ -94,7 +94,7 @@ export declare class MessageExchange {
94
94
  expectedProcessingTimeMs?: number;
95
95
  timeoutMs?: number;
96
96
  }): Promise<Message>;
97
- calculateMaximumPeerResponseTime(expectedProcessingTimeMs?: number): number;
97
+ calculateMaximumPeerResponseTimeMs(expectedProcessingTimeMs?: number): number;
98
98
  destroy(): Promise<void>;
99
99
  startTimedInteraction(timeoutMs: number): void;
100
100
  clearTimedInteraction(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"MessageExchange.d.ts","sourceRoot":"","sources":["../../../src/protocol/MessageExchange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MessageExchange.d.ts","sourceRoot":"","sources":["../../../src/protocol/MessageExchange.ts"],"names":[],"mappings":"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"}