@matter/protocol 0.15.2-alpha.0-20250703-2e16aba2b → 0.15.2-alpha.0-20250708-b8eb61a5e

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 (219) hide show
  1. package/dist/cjs/action/request/Invoke.d.ts.map +1 -1
  2. package/dist/cjs/action/request/Invoke.js +8 -2
  3. package/dist/cjs/action/request/Invoke.js.map +1 -1
  4. package/dist/cjs/action/server/AttributeReadResponse.d.ts +1 -1
  5. package/dist/cjs/action/server/AttributeReadResponse.d.ts.map +1 -1
  6. package/dist/cjs/action/server/AttributeSubscriptionResponse.d.ts +1 -1
  7. package/dist/cjs/action/server/AttributeSubscriptionResponse.d.ts.map +1 -1
  8. package/dist/cjs/action/server/AttributeSubscriptionResponse.js.map +1 -1
  9. package/dist/cjs/action/server/CommandInvokeResponse.d.ts +2 -1
  10. package/dist/cjs/action/server/CommandInvokeResponse.d.ts.map +1 -1
  11. package/dist/cjs/action/server/CommandInvokeResponse.js +3 -3
  12. package/dist/cjs/action/server/CommandInvokeResponse.js.map +1 -1
  13. package/dist/cjs/action/server/EventReadResponse.d.ts +1 -1
  14. package/dist/cjs/action/server/EventReadResponse.d.ts.map +1 -1
  15. package/dist/cjs/codec/MessageCodec.d.ts +1 -1
  16. package/dist/cjs/codec/MessageCodec.d.ts.map +1 -1
  17. package/dist/cjs/fabric/Fabric.d.ts.map +1 -1
  18. package/dist/cjs/fabric/Fabric.js +13 -10
  19. package/dist/cjs/fabric/Fabric.js.map +1 -1
  20. package/dist/cjs/groups/FabricGroups.d.ts +1 -1
  21. package/dist/cjs/groups/FabricGroups.d.ts.map +1 -1
  22. package/dist/cjs/groups/Groups.d.ts +2 -2
  23. package/dist/cjs/groups/Groups.d.ts.map +1 -1
  24. package/dist/cjs/groups/Groups.js +2 -2
  25. package/dist/cjs/groups/Groups.js.map +1 -1
  26. package/dist/cjs/interaction/AttributeDataEncoder.d.ts +1 -1
  27. package/dist/cjs/interaction/FabricAccessControl.d.ts +1 -1
  28. package/dist/cjs/interaction/FabricAccessControl.d.ts.map +1 -1
  29. package/dist/cjs/interaction/InteractionMessenger.d.ts +1 -1
  30. package/dist/cjs/interaction/InteractionMessenger.d.ts.map +1 -1
  31. package/dist/cjs/interaction/InteractionMessenger.js +3 -3
  32. package/dist/cjs/interaction/InteractionMessenger.js.map +1 -1
  33. package/dist/cjs/peer/ControllerCommissioner.js +4 -4
  34. package/dist/cjs/peer/ControllerCommissioner.js.map +1 -1
  35. package/dist/cjs/peer/ControllerCommissioningFlow.js +2 -2
  36. package/dist/cjs/peer/ControllerCommissioningFlow.js.map +1 -1
  37. package/dist/cjs/peer/OperationalPeer.d.ts +1 -1
  38. package/dist/cjs/peer/OperationalPeer.d.ts.map +1 -1
  39. package/dist/cjs/peer/PeerAddress.d.ts.map +1 -1
  40. package/dist/cjs/peer/PeerAddress.js +1 -1
  41. package/dist/cjs/peer/PeerAddress.js.map +1 -1
  42. package/dist/cjs/peer/PeerAddressStore.d.ts +1 -1
  43. package/dist/cjs/peer/PeerAddressStore.d.ts.map +1 -1
  44. package/dist/cjs/peer/PeerSet.d.ts.map +1 -1
  45. package/dist/cjs/peer/PeerSet.js +5 -5
  46. package/dist/cjs/peer/PeerSet.js.map +1 -1
  47. package/dist/cjs/protocol/ChannelManager.d.ts +1 -3
  48. package/dist/cjs/protocol/ChannelManager.d.ts.map +1 -1
  49. package/dist/cjs/protocol/ChannelManager.js +3 -6
  50. package/dist/cjs/protocol/ChannelManager.js.map +1 -1
  51. package/dist/cjs/protocol/DeviceCommissioner.d.ts +2 -1
  52. package/dist/cjs/protocol/DeviceCommissioner.d.ts.map +1 -1
  53. package/dist/cjs/protocol/DeviceCommissioner.js +4 -3
  54. package/dist/cjs/protocol/DeviceCommissioner.js.map +1 -1
  55. package/dist/cjs/protocol/ExchangeManager.d.ts +1 -3
  56. package/dist/cjs/protocol/ExchangeManager.d.ts.map +1 -1
  57. package/dist/cjs/protocol/ExchangeManager.js +7 -9
  58. package/dist/cjs/protocol/ExchangeManager.js.map +1 -1
  59. package/dist/cjs/protocol/ExchangeProvider.d.ts.map +1 -1
  60. package/dist/cjs/protocol/ExchangeProvider.js +7 -8
  61. package/dist/cjs/protocol/ExchangeProvider.js.map +1 -1
  62. package/dist/cjs/protocol/MessageChannel.d.ts +17 -4
  63. package/dist/cjs/protocol/MessageChannel.d.ts.map +1 -1
  64. package/dist/cjs/protocol/MessageChannel.js +15 -6
  65. package/dist/cjs/protocol/MessageChannel.js.map +1 -1
  66. package/dist/cjs/protocol/MessageExchange.d.ts +0 -6
  67. package/dist/cjs/protocol/MessageExchange.d.ts.map +1 -1
  68. package/dist/cjs/protocol/MessageExchange.js +5 -9
  69. package/dist/cjs/protocol/MessageExchange.js.map +1 -1
  70. package/dist/cjs/securechannel/SecureChannelProtocol.d.ts +0 -1
  71. package/dist/cjs/securechannel/SecureChannelProtocol.d.ts.map +1 -1
  72. package/dist/cjs/securechannel/SecureChannelProtocol.js +0 -3
  73. package/dist/cjs/securechannel/SecureChannelProtocol.js.map +1 -1
  74. package/dist/cjs/session/GroupSession.d.ts +1 -1
  75. package/dist/cjs/session/GroupSession.d.ts.map +1 -1
  76. package/dist/cjs/session/GroupSession.js +6 -6
  77. package/dist/cjs/session/GroupSession.js.map +1 -1
  78. package/dist/cjs/session/InsecureSession.d.ts +2 -1
  79. package/dist/cjs/session/InsecureSession.d.ts.map +1 -1
  80. package/dist/cjs/session/InsecureSession.js +5 -4
  81. package/dist/cjs/session/InsecureSession.js.map +1 -1
  82. package/dist/cjs/session/NodeSession.d.ts +5 -3
  83. package/dist/cjs/session/NodeSession.d.ts.map +1 -1
  84. package/dist/cjs/session/NodeSession.js +4 -2
  85. package/dist/cjs/session/NodeSession.js.map +1 -1
  86. package/dist/cjs/session/SessionManager.d.ts +2 -3
  87. package/dist/cjs/session/SessionManager.d.ts.map +1 -1
  88. package/dist/cjs/session/SessionManager.js +1 -3
  89. package/dist/cjs/session/SessionManager.js.map +1 -1
  90. package/dist/cjs/session/case/CaseClient.d.ts.map +1 -1
  91. package/dist/cjs/session/case/CaseClient.js +6 -5
  92. package/dist/cjs/session/case/CaseClient.js.map +1 -1
  93. package/dist/cjs/session/case/CaseServer.js +2 -2
  94. package/dist/cjs/session/case/CaseServer.js.map +1 -1
  95. package/dist/cjs/session/pase/PaseMessages.js +2 -2
  96. package/dist/cjs/session/pase/PaseMessages.js.map +1 -1
  97. package/dist/esm/action/request/Invoke.d.ts.map +1 -1
  98. package/dist/esm/action/request/Invoke.js +8 -2
  99. package/dist/esm/action/request/Invoke.js.map +1 -1
  100. package/dist/esm/action/server/AttributeReadResponse.d.ts +1 -1
  101. package/dist/esm/action/server/AttributeReadResponse.d.ts.map +1 -1
  102. package/dist/esm/action/server/AttributeSubscriptionResponse.d.ts +1 -1
  103. package/dist/esm/action/server/AttributeSubscriptionResponse.d.ts.map +1 -1
  104. package/dist/esm/action/server/AttributeSubscriptionResponse.js.map +1 -1
  105. package/dist/esm/action/server/CommandInvokeResponse.d.ts +2 -1
  106. package/dist/esm/action/server/CommandInvokeResponse.d.ts.map +1 -1
  107. package/dist/esm/action/server/CommandInvokeResponse.js +1 -1
  108. package/dist/esm/action/server/CommandInvokeResponse.js.map +1 -1
  109. package/dist/esm/action/server/EventReadResponse.d.ts +1 -1
  110. package/dist/esm/action/server/EventReadResponse.d.ts.map +1 -1
  111. package/dist/esm/codec/MessageCodec.d.ts +1 -1
  112. package/dist/esm/codec/MessageCodec.d.ts.map +1 -1
  113. package/dist/esm/fabric/Fabric.d.ts.map +1 -1
  114. package/dist/esm/fabric/Fabric.js +4 -1
  115. package/dist/esm/fabric/Fabric.js.map +1 -1
  116. package/dist/esm/groups/FabricGroups.d.ts +1 -1
  117. package/dist/esm/groups/FabricGroups.d.ts.map +1 -1
  118. package/dist/esm/groups/Groups.d.ts +2 -2
  119. package/dist/esm/groups/Groups.d.ts.map +1 -1
  120. package/dist/esm/groups/Groups.js +1 -1
  121. package/dist/esm/groups/Groups.js.map +1 -1
  122. package/dist/esm/interaction/AttributeDataEncoder.d.ts +1 -1
  123. package/dist/esm/interaction/FabricAccessControl.d.ts +1 -1
  124. package/dist/esm/interaction/FabricAccessControl.d.ts.map +1 -1
  125. package/dist/esm/interaction/InteractionMessenger.d.ts +1 -1
  126. package/dist/esm/interaction/InteractionMessenger.d.ts.map +1 -1
  127. package/dist/esm/interaction/InteractionMessenger.js +1 -1
  128. package/dist/esm/interaction/InteractionMessenger.js.map +1 -1
  129. package/dist/esm/peer/ControllerCommissioner.js +2 -2
  130. package/dist/esm/peer/ControllerCommissioningFlow.js +1 -1
  131. package/dist/esm/peer/OperationalPeer.d.ts +1 -1
  132. package/dist/esm/peer/OperationalPeer.d.ts.map +1 -1
  133. package/dist/esm/peer/PeerAddress.d.ts.map +1 -1
  134. package/dist/esm/peer/PeerAddress.js +2 -2
  135. package/dist/esm/peer/PeerAddress.js.map +1 -1
  136. package/dist/esm/peer/PeerAddressStore.d.ts +1 -1
  137. package/dist/esm/peer/PeerAddressStore.d.ts.map +1 -1
  138. package/dist/esm/peer/PeerSet.d.ts.map +1 -1
  139. package/dist/esm/peer/PeerSet.js +4 -4
  140. package/dist/esm/peer/PeerSet.js.map +1 -1
  141. package/dist/esm/protocol/ChannelManager.d.ts +1 -3
  142. package/dist/esm/protocol/ChannelManager.d.ts.map +1 -1
  143. package/dist/esm/protocol/ChannelManager.js +3 -6
  144. package/dist/esm/protocol/ChannelManager.js.map +1 -1
  145. package/dist/esm/protocol/DeviceCommissioner.d.ts +2 -1
  146. package/dist/esm/protocol/DeviceCommissioner.d.ts.map +1 -1
  147. package/dist/esm/protocol/DeviceCommissioner.js +2 -1
  148. package/dist/esm/protocol/DeviceCommissioner.js.map +1 -1
  149. package/dist/esm/protocol/ExchangeManager.d.ts +1 -3
  150. package/dist/esm/protocol/ExchangeManager.d.ts.map +1 -1
  151. package/dist/esm/protocol/ExchangeManager.js +8 -7
  152. package/dist/esm/protocol/ExchangeManager.js.map +1 -1
  153. package/dist/esm/protocol/ExchangeProvider.d.ts.map +1 -1
  154. package/dist/esm/protocol/ExchangeProvider.js +4 -2
  155. package/dist/esm/protocol/ExchangeProvider.js.map +1 -1
  156. package/dist/esm/protocol/MessageChannel.d.ts +17 -4
  157. package/dist/esm/protocol/MessageChannel.d.ts.map +1 -1
  158. package/dist/esm/protocol/MessageChannel.js +12 -3
  159. package/dist/esm/protocol/MessageChannel.js.map +1 -1
  160. package/dist/esm/protocol/MessageExchange.d.ts +0 -6
  161. package/dist/esm/protocol/MessageExchange.d.ts.map +1 -1
  162. package/dist/esm/protocol/MessageExchange.js +7 -7
  163. package/dist/esm/protocol/MessageExchange.js.map +1 -1
  164. package/dist/esm/securechannel/SecureChannelProtocol.d.ts +0 -1
  165. package/dist/esm/securechannel/SecureChannelProtocol.d.ts.map +1 -1
  166. package/dist/esm/securechannel/SecureChannelProtocol.js +0 -3
  167. package/dist/esm/securechannel/SecureChannelProtocol.js.map +1 -1
  168. package/dist/esm/session/GroupSession.d.ts +1 -1
  169. package/dist/esm/session/GroupSession.d.ts.map +1 -1
  170. package/dist/esm/session/GroupSession.js +1 -1
  171. package/dist/esm/session/InsecureSession.d.ts +2 -1
  172. package/dist/esm/session/InsecureSession.d.ts.map +1 -1
  173. package/dist/esm/session/InsecureSession.js +3 -2
  174. package/dist/esm/session/InsecureSession.js.map +1 -1
  175. package/dist/esm/session/NodeSession.d.ts +5 -3
  176. package/dist/esm/session/NodeSession.d.ts.map +1 -1
  177. package/dist/esm/session/NodeSession.js +12 -2
  178. package/dist/esm/session/NodeSession.js.map +1 -1
  179. package/dist/esm/session/SessionManager.d.ts +2 -3
  180. package/dist/esm/session/SessionManager.d.ts.map +1 -1
  181. package/dist/esm/session/SessionManager.js +1 -3
  182. package/dist/esm/session/SessionManager.js.map +1 -1
  183. package/dist/esm/session/case/CaseClient.d.ts.map +1 -1
  184. package/dist/esm/session/case/CaseClient.js +3 -2
  185. package/dist/esm/session/case/CaseClient.js.map +1 -1
  186. package/dist/esm/session/case/CaseServer.js +1 -1
  187. package/dist/esm/session/pase/PaseMessages.js +1 -1
  188. package/package.json +6 -6
  189. package/src/action/request/Invoke.ts +11 -2
  190. package/src/action/server/AttributeReadResponse.ts +1 -1
  191. package/src/action/server/AttributeSubscriptionResponse.ts +2 -1
  192. package/src/action/server/CommandInvokeResponse.ts +4 -2
  193. package/src/action/server/EventReadResponse.ts +2 -2
  194. package/src/codec/MessageCodec.ts +1 -1
  195. package/src/fabric/Fabric.ts +4 -1
  196. package/src/groups/FabricGroups.ts +1 -1
  197. package/src/groups/Groups.ts +3 -2
  198. package/src/interaction/FabricAccessControl.ts +1 -1
  199. package/src/interaction/InteractionMessenger.ts +2 -2
  200. package/src/peer/ControllerCommissioner.ts +2 -2
  201. package/src/peer/ControllerCommissioningFlow.ts +1 -1
  202. package/src/peer/OperationalPeer.ts +1 -1
  203. package/src/peer/PeerAddress.ts +2 -2
  204. package/src/peer/PeerAddressStore.ts +1 -1
  205. package/src/peer/PeerSet.ts +6 -4
  206. package/src/protocol/ChannelManager.ts +2 -4
  207. package/src/protocol/DeviceCommissioner.ts +2 -1
  208. package/src/protocol/ExchangeManager.ts +9 -7
  209. package/src/protocol/ExchangeProvider.ts +7 -3
  210. package/src/protocol/MessageChannel.ts +19 -4
  211. package/src/protocol/MessageExchange.ts +8 -12
  212. package/src/securechannel/SecureChannelProtocol.ts +0 -4
  213. package/src/session/GroupSession.ts +1 -1
  214. package/src/session/InsecureSession.ts +3 -1
  215. package/src/session/NodeSession.ts +14 -4
  216. package/src/session/SessionManager.ts +1 -3
  217. package/src/session/case/CaseClient.ts +3 -2
  218. package/src/session/case/CaseServer.ts +1 -1
  219. package/src/session/pase/PaseMessages.ts +1 -1
@@ -33,12 +33,14 @@ import { SubscriptionClient } from "#interaction/SubscriptionClient.js";
33
33
  import { MdnsScanner } from "#mdns/MdnsScanner.js";
34
34
  import { PeerAddress, PeerAddressMap } from "#peer/PeerAddress.js";
35
35
  import { ChannelManager } from "#protocol/ChannelManager.js";
36
- import { ChannelNotConnectedError, ExchangeManager } from "#protocol/ExchangeManager.js";
36
+ import { ExchangeManager } from "#protocol/ExchangeManager.js";
37
37
  import { DedicatedChannelExchangeProvider, ReconnectableExchangeProvider } from "#protocol/ExchangeProvider.js";
38
- import { MessageChannel } from "#protocol/MessageChannel.js";
38
+ import { ChannelNotConnectedError, MessageChannel } from "#protocol/MessageChannel.js";
39
39
  import { MessageExchange, RetransmissionLimitReachedError } from "#protocol/MessageExchange.js";
40
- import { ChannelStatusResponseError } from "#securechannel/index.js";
41
- import { CaseClient, SecureSession, Session } from "#session/index.js";
40
+ import { ChannelStatusResponseError } from "#securechannel/SecureChannelMessenger.js";
41
+ import { CaseClient } from "#session/case/CaseClient.js";
42
+ import { SecureSession } from "#session/SecureSession.js";
43
+ import { Session } from "#session/Session.js";
42
44
  import { SessionManager } from "#session/SessionManager.js";
43
45
  import { GroupId, NodeId, SECURE_CHANNEL_PROTOCOL_ID, SecureChannelStatusCode } from "#types";
44
46
  import { ControllerDiscovery, DiscoveryError, PairRetransmissionLimitReachedError } from "./ControllerDiscovery.js";
@@ -4,16 +4,14 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- import { AsyncObservable, Channel, Environment, Environmental, Logger, MatterError } from "#general";
7
+ import { AsyncObservable, Channel, Environment, Environmental, Logger } from "#general";
8
8
  import { PeerAddress, PeerAddressMap } from "#peer/PeerAddress.js";
9
9
  import { MessageChannel } from "#protocol/MessageChannel.js";
10
- import { NodeSession } from "#session/NodeSession.js";
10
+ import { NoChannelError, NodeSession } from "#session/NodeSession.js";
11
11
  import { Session } from "#session/Session.js";
12
12
 
13
13
  const logger = Logger.get("ChannelManager");
14
14
 
15
- export class NoChannelError extends MatterError {}
16
-
17
15
  export class ChannelManager {
18
16
  readonly #channels = new PeerAddressMap<MessageChannel[]>();
19
17
  readonly #paseChannels = new Map<Session, MessageChannel>();
@@ -20,7 +20,8 @@ import {
20
20
  ObserverGroup,
21
21
  } from "#general";
22
22
  import { SecureChannelProtocol } from "#securechannel/SecureChannelProtocol.js";
23
- import { PaseServer, SessionManager } from "#session/index.js";
23
+ import { PaseServer } from "#session/pase/PaseServer.js";
24
+ import { SessionManager } from "#session/SessionManager.js";
24
25
  import { CommissioningOptions, StatusCode, StatusResponseError } from "#types";
25
26
  import type { ControllerCommissioner } from "../peer/ControllerCommissioner.js";
26
27
  import { DeviceAdvertiser } from "./DeviceAdvertiser.js";
@@ -23,15 +23,19 @@ import {
23
23
  UnexpectedDataError,
24
24
  } from "#general";
25
25
  import { PeerAddress } from "#peer/PeerAddress.js";
26
- import { MessageChannel } from "#protocol/MessageChannel.js";
26
+ import {
27
+ ChannelNotConnectedError,
28
+ DEFAULT_EXPECTED_PROCESSING_TIME_MS,
29
+ MessageChannel,
30
+ } from "#protocol/MessageChannel.js";
27
31
  import { SecureChannelMessenger } from "#securechannel/SecureChannelMessenger.js";
28
- import { SecureChannelProtocol } from "#securechannel/SecureChannelProtocol.js";
32
+ import { UNICAST_UNSECURE_SESSION_ID } from "#session/InsecureSession.js";
29
33
  import { NodeSession } from "#session/NodeSession.js";
30
34
  import { Session } from "#session/Session.js";
31
- import { SessionManager, UNICAST_UNSECURE_SESSION_ID } from "#session/SessionManager.js";
35
+ import { SessionManager } from "#session/SessionManager.js";
32
36
  import { NodeId, SECURE_CHANNEL_PROTOCOL_ID, SecureMessageType } from "#types";
33
37
  import { ChannelManager } from "./ChannelManager.js";
34
- import { DEFAULT_EXPECTED_PROCESSING_TIME_MS, MessageExchange, MessageExchangeContext } from "./MessageExchange.js";
38
+ import { MessageExchange, MessageExchangeContext } from "./MessageExchange.js";
35
39
  import { DuplicateMessageError } from "./MessageReceptionState.js";
36
40
  import { ProtocolHandler } from "./ProtocolHandler.js";
37
41
 
@@ -39,8 +43,6 @@ const logger = Logger.get("ExchangeManager");
39
43
 
40
44
  const MAXIMUM_CONCURRENT_EXCHANGES_PER_SESSION = 5;
41
45
 
42
- export class ChannelNotConnectedError extends MatterError {}
43
-
44
46
  /**
45
47
  * Interfaces {@link ExchangeManager} with other components.
46
48
  */
@@ -217,7 +219,7 @@ export class ExchangeManager {
217
219
  exchange = undefined;
218
220
  }
219
221
 
220
- const isStandaloneAck = SecureChannelProtocol.isStandaloneAck(
222
+ const isStandaloneAck = SecureMessageType.isStandaloneAck(
221
223
  message.payloadHeader.protocolId,
222
224
  message.payloadHeader.messageType,
223
225
  );
@@ -6,9 +6,13 @@
6
6
  import { ChannelType, Observable } from "#general";
7
7
  import { PeerAddress } from "#peer/PeerAddress.js";
8
8
  import { ChannelManager } from "#protocol/ChannelManager.js";
9
- import { ChannelNotConnectedError, ExchangeManager } from "#protocol/ExchangeManager.js";
10
- import { MessageChannel } from "#protocol/MessageChannel.js";
11
- import { DEFAULT_EXPECTED_PROCESSING_TIME_MS, MessageExchange } from "#protocol/MessageExchange.js";
9
+ import { ExchangeManager } from "#protocol/ExchangeManager.js";
10
+ import {
11
+ ChannelNotConnectedError,
12
+ DEFAULT_EXPECTED_PROCESSING_TIME_MS,
13
+ MessageChannel,
14
+ } from "#protocol/MessageChannel.js";
15
+ import { MessageExchange } from "#protocol/MessageExchange.js";
12
16
  import { ProtocolHandler } from "#protocol/ProtocolHandler.js";
13
17
  import { Session } from "#session/Session.js";
14
18
  import { INTERACTION_PROTOCOL_ID } from "#types";
@@ -1,10 +1,25 @@
1
- import { Message, MessageCodec } from "#codec/index.js";
2
- import { Channel, Logger, MatterFlowError } from "#general";
3
- import { DEFAULT_EXPECTED_PROCESSING_TIME_MS, ExchangeLogContext } from "#protocol/MessageExchange.js";
4
- import { Session, SessionParameters } from "#session/index.js";
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { Message, MessageCodec } from "#codec/MessageCodec.js";
8
+ import { Channel, Logger, MatterError, MatterFlowError } from "#general";
9
+ import type { ExchangeLogContext } from "#protocol/MessageExchange.js";
10
+ import { Session, SessionParameters } from "#session/Session.js";
5
11
 
6
12
  const logger = new Logger("MessageChannel");
7
13
 
14
+ export class ChannelNotConnectedError extends MatterError {}
15
+
16
+ /**
17
+ * Default expected processing time for a messages in milliseconds. The value is derived from kExpectedIMProcessingTime
18
+ * from chip implementation. This is basically the default used with different names, also kExpectedLowProcessingTime or
19
+ * kExpectedSigma1ProcessingTime.
20
+ */
21
+ export const DEFAULT_EXPECTED_PROCESSING_TIME_MS = 2000;
22
+
8
23
  /**
9
24
  * The buffer time in milliseconds to add to the peer response time to also consider network delays and other factors.
10
25
  * TODO: This is a pure guess and should be adjusted in the future.
@@ -19,8 +19,12 @@ import {
19
19
  Time,
20
20
  Timer,
21
21
  } from "#general";
22
- import { MessageChannel, MRP } from "#protocol/MessageChannel.js";
23
- import { SecureChannelProtocol } from "#securechannel/SecureChannelProtocol.js";
22
+ import {
23
+ ChannelNotConnectedError,
24
+ DEFAULT_EXPECTED_PROCESSING_TIME_MS,
25
+ MessageChannel,
26
+ MRP,
27
+ } from "#protocol/MessageChannel.js";
24
28
  import { GroupSession } from "#session/GroupSession.js";
25
29
  import {
26
30
  SESSION_ACTIVE_INTERVAL_MS,
@@ -36,7 +40,6 @@ import {
36
40
  StatusCode,
37
41
  StatusResponseError,
38
42
  } from "#types";
39
- import { ChannelNotConnectedError } from "./ExchangeManager.js";
40
43
 
41
44
  const logger = Logger.get("MessageExchange");
42
45
 
@@ -87,13 +90,6 @@ export type ExchangeSendOptions = {
87
90
  logContext?: ExchangeLogContext;
88
91
  };
89
92
 
90
- /**
91
- * Default expected processing time for a messages in milliseconds. The value is derived from kExpectedIMProcessingTime
92
- * from chip implementation. This is basically the default used with different names, also kExpectedLowProcessingTime or
93
- * kExpectedSigma1ProcessingTime.
94
- */
95
- export const DEFAULT_EXPECTED_PROCESSING_TIME_MS = 2_000;
96
-
97
93
  /**
98
94
  * Message size overhead of a Matter message:
99
95
  * 26 (Matter Message Header) + 12 (Matter Payload Header) taken from https://github.com/project-chip/connectedhomeip/blob/2d97cda23024e72f36216900ca667bf1a0d9499f/src/system/SystemConfig.h#L327
@@ -285,7 +281,7 @@ export class MessageExchange {
285
281
  payloadHeader: { requiresAck, ackedMessageId, protocolId, messageType },
286
282
  } = message;
287
283
 
288
- const isStandaloneAck = SecureChannelProtocol.isStandaloneAck(protocolId, messageType);
284
+ const isStandaloneAck = SecureMessageType.isStandaloneAck(protocolId, messageType);
289
285
  if (protocolId !== this.#protocolId && !isStandaloneAck) {
290
286
  throw new MatterFlowError(
291
287
  `Drop received a message for an unexpected protocol. Expected: ${this.#protocolId}, received: ${protocolId}`,
@@ -468,7 +464,7 @@ export class MessageExchange {
468
464
  const {
469
465
  payloadHeader: { protocolId, messageType },
470
466
  } = responseMessage;
471
- if (expectAckOnly && !SecureChannelProtocol.isStandaloneAck(protocolId, messageType)) {
467
+ if (expectAckOnly && !SecureMessageType.isStandaloneAck(protocolId, messageType)) {
472
468
  throw new UnexpectedMessageError("Expected ack only", responseMessage);
473
469
  }
474
470
  }
@@ -150,8 +150,4 @@ export class SecureChannelProtocol extends StatusReportOnlySecureChannelProtocol
150
150
  await super.onNewExchange(exchange, message);
151
151
  }
152
152
  }
153
-
154
- static isStandaloneAck(protocolId: number, messageType: number) {
155
- return protocolId === SECURE_CHANNEL_PROTOCOL_ID && messageType === SecureMessageType.StandaloneAck;
156
- }
157
153
  }
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { Subject } from "#action/server/Subject.js";
7
- import { DecodedMessage, DecodedPacket, Message, MessageCodec, Packet, SessionType } from "#codec/index.js";
7
+ import { DecodedMessage, DecodedPacket, Message, MessageCodec, Packet, SessionType } from "#codec/MessageCodec.js";
8
8
  import { Fabric } from "#fabric/Fabric.js";
9
9
  import { FabricManager } from "#fabric/FabricManager.js";
10
10
  import {
@@ -12,10 +12,12 @@ import { MessageCounter } from "../protocol/MessageCounter.js";
12
12
  import { MessageReceptionStateUnencryptedWithRollover } from "../protocol/MessageReceptionState.js";
13
13
  import { NoAssociatedFabricError } from "./NodeSession.js";
14
14
  import { Session, SessionParameterOptions } from "./Session.js";
15
- import { SessionManager, UNICAST_UNSECURE_SESSION_ID } from "./SessionManager.js";
15
+ import type { SessionManager } from "./SessionManager.js";
16
16
 
17
17
  const logger = Logger.get("InsecureSession");
18
18
 
19
+ export const UNICAST_UNSECURE_SESSION_ID = 0x0000;
20
+
19
21
  export class InsecureSession extends Session {
20
22
  readonly #initiatorNodeId: NodeId;
21
23
  readonly closingAfterExchangeFinished = false;
@@ -7,22 +7,32 @@
7
7
  import { Subject } from "#action/server/Subject.js";
8
8
  import { DecodedMessage, DecodedPacket, Message, MessageCodec, Packet, SessionType } from "#codec/MessageCodec.js";
9
9
  import { Fabric } from "#fabric/Fabric.js";
10
- import { BasicSet, Bytes, CRYPTO_SYMMETRIC_KEY_LENGTH, Crypto, Diagnostic, Logger, MatterFlowError } from "#general";
11
- import { Subscription } from "#interaction/Subscription.js";
10
+ import {
11
+ BasicSet,
12
+ Bytes,
13
+ CRYPTO_SYMMETRIC_KEY_LENGTH,
14
+ Crypto,
15
+ Diagnostic,
16
+ Logger,
17
+ MatterError,
18
+ MatterFlowError,
19
+ } from "#general";
20
+ import type { Subscription } from "#interaction/Subscription.js";
12
21
  import { PeerAddress } from "#peer/PeerAddress.js";
13
- import { NoChannelError } from "#protocol/ChannelManager.js";
14
22
  import { MessageCounter } from "#protocol/MessageCounter.js";
15
23
  import { MessageReceptionStateEncryptedWithoutRollover } from "#protocol/MessageReceptionState.js";
16
24
  import { CaseAuthenticatedTag, FabricIndex, NodeId, StatusCode, StatusResponseError } from "#types";
17
25
  import { SecureSession } from "./SecureSession.js";
18
26
  import { Session, SessionParameterOptions } from "./Session.js";
19
- import { type SessionManager } from "./SessionManager.js";
27
+ import type { SessionManager } from "./SessionManager.js";
20
28
 
21
29
  const logger = Logger.get("SecureSession");
22
30
 
23
31
  const SESSION_KEYS_INFO = Bytes.fromString("SessionKeys");
24
32
  const SESSION_RESUMPTION_KEYS_INFO = Bytes.fromString("SessionResumptionKeys");
25
33
 
34
+ export class NoChannelError extends MatterError {}
35
+
26
36
  export class NoAssociatedFabricError extends StatusResponseError {
27
37
  constructor(message: string) {
28
38
  super(message, StatusCode.UnsupportedAccess);
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- import { DecodedPacket } from "#codec/index.js";
7
+ import { DecodedPacket } from "#codec/MessageCodec.js";
8
8
  import { FabricManager } from "#fabric/FabricManager.js";
9
9
  import {
10
10
  BasicSet,
@@ -62,8 +62,6 @@ const DEFAULT_SESSION_PARAMETERS = {
62
62
  maxTcpMessageSize: FALLBACK_MAX_TCP_MESSAGE_SIZE,
63
63
  };
64
64
 
65
- export const UNICAST_UNSECURE_SESSION_ID = 0x0000;
66
-
67
65
  export interface ResumptionRecord {
68
66
  sharedSecret: Uint8Array;
69
67
  resumptionId: Uint8Array;
@@ -4,9 +4,10 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- import { Icac, Noc } from "#certificate/index.js";
7
+ import { Icac } from "#certificate/kinds/Icac.js";
8
+ import { Noc } from "#certificate/kinds/Noc.js";
8
9
  import { Bytes, Logger, PublicKey, UnexpectedDataError } from "#general";
9
- import { ChannelStatusResponseError } from "#securechannel/index.js";
10
+ import { ChannelStatusResponseError } from "#securechannel/SecureChannelMessenger.js";
10
11
  import { SessionManager } from "#session/SessionManager.js";
11
12
  import { NodeId, SecureChannelStatusCode } from "#types";
12
13
  import { Fabric } from "../../fabric/Fabric.js";
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- import { Noc } from "#certificate/index.js";
7
+ import { Noc } from "#certificate/kinds/Noc.js";
8
8
  import { Bytes, Crypto, CryptoDecryptError, Logger, PublicKey, UnexpectedDataError } from "#general";
9
9
  import { TlvSessionParameters } from "#session/pase/PaseMessages.js";
10
10
  import { ResumptionRecord, SessionManager } from "#session/SessionManager.js";
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- import { SupportedTransportsBitmap } from "#common/index.js";
7
+ import { SupportedTransportsBitmap } from "#common/Scanner.js";
8
8
  import { CRYPTO_HASH_LEN_BYTES, CRYPTO_PUBLIC_KEY_SIZE_BYTES } from "#general";
9
9
  import {
10
10
  TlvBitmap,