@matter/protocol 0.15.0-alpha.0-20250624-e8c89f458 → 0.15.0-alpha.0-20250625-c7634df96

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 (171) 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 +10 -9
  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/ProtocolStatusMessage.d.ts +20 -0
  49. package/dist/cjs/protocol/ProtocolStatusMessage.d.ts.map +1 -0
  50. package/dist/cjs/protocol/ProtocolStatusMessage.js +61 -0
  51. package/dist/cjs/protocol/ProtocolStatusMessage.js.map +6 -0
  52. package/dist/cjs/protocol/index.d.ts +2 -0
  53. package/dist/cjs/protocol/index.d.ts.map +1 -1
  54. package/dist/cjs/protocol/index.js +2 -0
  55. package/dist/cjs/protocol/index.js.map +1 -1
  56. package/dist/cjs/securechannel/SecureChannelMessenger.d.ts +4 -5
  57. package/dist/cjs/securechannel/SecureChannelMessenger.d.ts.map +1 -1
  58. package/dist/cjs/securechannel/SecureChannelMessenger.js +7 -8
  59. package/dist/cjs/securechannel/SecureChannelMessenger.js.map +1 -1
  60. package/dist/cjs/securechannel/SecureChannelProtocol.js +2 -2
  61. package/dist/cjs/securechannel/SecureChannelProtocol.js.map +1 -1
  62. package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.d.ts +4 -15
  63. package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.d.ts.map +1 -1
  64. package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.js +3 -21
  65. package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.js.map +1 -1
  66. package/dist/cjs/session/case/CaseClient.d.ts.map +1 -1
  67. package/dist/cjs/session/case/CaseClient.js +1 -1
  68. package/dist/cjs/session/case/CaseClient.js.map +1 -1
  69. package/dist/cjs/session/case/CaseServer.js +2 -2
  70. package/dist/cjs/session/case/CaseServer.js.map +1 -1
  71. package/dist/cjs/session/pase/PaseClient.js +2 -2
  72. package/dist/cjs/session/pase/PaseClient.js.map +1 -1
  73. package/dist/cjs/session/pase/PaseServer.js +1 -1
  74. package/dist/cjs/session/pase/PaseServer.js.map +1 -1
  75. package/dist/esm/cluster/client/ClusterClient.d.ts.map +1 -1
  76. package/dist/esm/cluster/client/ClusterClient.js +7 -1
  77. package/dist/esm/cluster/client/ClusterClient.js.map +1 -1
  78. package/dist/esm/cluster/client/ClusterClientTypes.d.ts +10 -0
  79. package/dist/esm/cluster/client/ClusterClientTypes.d.ts.map +1 -1
  80. package/dist/esm/interaction/InteractionClient.d.ts +8 -1
  81. package/dist/esm/interaction/InteractionClient.d.ts.map +1 -1
  82. package/dist/esm/interaction/InteractionClient.js +15 -10
  83. package/dist/esm/interaction/InteractionClient.js.map +1 -1
  84. package/dist/esm/interaction/InteractionMessenger.d.ts +0 -1
  85. package/dist/esm/interaction/InteractionMessenger.d.ts.map +1 -1
  86. package/dist/esm/interaction/InteractionMessenger.js +0 -3
  87. package/dist/esm/interaction/InteractionMessenger.js.map +1 -1
  88. package/dist/esm/interaction/SubscriptionClient.d.ts +1 -1
  89. package/dist/esm/interaction/SubscriptionClient.d.ts.map +1 -1
  90. package/dist/esm/interaction/SubscriptionClient.js +1 -1
  91. package/dist/esm/peer/ControllerCommissioner.d.ts +3 -2
  92. package/dist/esm/peer/ControllerCommissioner.d.ts.map +1 -1
  93. package/dist/esm/peer/ControllerCommissioner.js +4 -3
  94. package/dist/esm/peer/ControllerCommissioner.js.map +1 -1
  95. package/dist/esm/peer/ControllerCommissioningFlow.d.ts.map +1 -1
  96. package/dist/esm/peer/ControllerCommissioningFlow.js +81 -52
  97. package/dist/esm/peer/ControllerCommissioningFlow.js.map +1 -1
  98. package/dist/esm/peer/PeerSet.d.ts +4 -3
  99. package/dist/esm/peer/PeerSet.d.ts.map +1 -1
  100. package/dist/esm/peer/PeerSet.js +7 -6
  101. package/dist/esm/peer/PeerSet.js.map +1 -1
  102. package/dist/esm/protocol/ChannelManager.d.ts +2 -2
  103. package/dist/esm/protocol/ChannelManager.d.ts.map +1 -1
  104. package/dist/esm/protocol/ChannelManager.js +2 -2
  105. package/dist/esm/protocol/ChannelManager.js.map +1 -1
  106. package/dist/esm/protocol/ExchangeManager.d.ts +5 -24
  107. package/dist/esm/protocol/ExchangeManager.d.ts.map +1 -1
  108. package/dist/esm/protocol/ExchangeManager.js +13 -56
  109. package/dist/esm/protocol/ExchangeManager.js.map +1 -1
  110. package/dist/esm/protocol/ExchangeProvider.d.ts +10 -6
  111. package/dist/esm/protocol/ExchangeProvider.d.ts.map +1 -1
  112. package/dist/esm/protocol/ExchangeProvider.js +12 -1
  113. package/dist/esm/protocol/ExchangeProvider.js.map +1 -1
  114. package/dist/esm/protocol/MessageChannel.d.ts +52 -0
  115. package/dist/esm/protocol/MessageChannel.d.ts.map +1 -0
  116. package/dist/esm/protocol/MessageChannel.js +110 -0
  117. package/dist/esm/protocol/MessageChannel.js.map +6 -0
  118. package/dist/esm/protocol/MessageExchange.d.ts +5 -5
  119. package/dist/esm/protocol/MessageExchange.d.ts.map +1 -1
  120. package/dist/esm/protocol/MessageExchange.js +39 -83
  121. package/dist/esm/protocol/MessageExchange.js.map +1 -1
  122. package/dist/esm/protocol/ProtocolStatusMessage.d.ts +20 -0
  123. package/dist/esm/protocol/ProtocolStatusMessage.d.ts.map +1 -0
  124. package/dist/esm/protocol/ProtocolStatusMessage.js +41 -0
  125. package/dist/esm/protocol/ProtocolStatusMessage.js.map +6 -0
  126. package/dist/esm/protocol/index.d.ts +2 -0
  127. package/dist/esm/protocol/index.d.ts.map +1 -1
  128. package/dist/esm/protocol/index.js +2 -0
  129. package/dist/esm/protocol/index.js.map +1 -1
  130. package/dist/esm/securechannel/SecureChannelMessenger.d.ts +4 -5
  131. package/dist/esm/securechannel/SecureChannelMessenger.d.ts.map +1 -1
  132. package/dist/esm/securechannel/SecureChannelMessenger.js +8 -14
  133. package/dist/esm/securechannel/SecureChannelMessenger.js.map +1 -1
  134. package/dist/esm/securechannel/SecureChannelProtocol.js +3 -3
  135. package/dist/esm/securechannel/SecureChannelProtocol.js.map +1 -1
  136. package/dist/esm/securechannel/SecureChannelStatusMessageSchema.d.ts +4 -15
  137. package/dist/esm/securechannel/SecureChannelStatusMessageSchema.d.ts.map +1 -1
  138. package/dist/esm/securechannel/SecureChannelStatusMessageSchema.js +4 -22
  139. package/dist/esm/securechannel/SecureChannelStatusMessageSchema.js.map +1 -1
  140. package/dist/esm/session/case/CaseClient.d.ts.map +1 -1
  141. package/dist/esm/session/case/CaseClient.js +2 -2
  142. package/dist/esm/session/case/CaseClient.js.map +1 -1
  143. package/dist/esm/session/case/CaseServer.js +3 -3
  144. package/dist/esm/session/case/CaseServer.js.map +1 -1
  145. package/dist/esm/session/pase/PaseClient.js +3 -3
  146. package/dist/esm/session/pase/PaseClient.js.map +1 -1
  147. package/dist/esm/session/pase/PaseServer.js +2 -2
  148. package/dist/esm/session/pase/PaseServer.js.map +1 -1
  149. package/package.json +6 -6
  150. package/src/cluster/client/ClusterClient.ts +8 -1
  151. package/src/cluster/client/ClusterClientTypes.ts +12 -0
  152. package/src/interaction/InteractionClient.ts +29 -16
  153. package/src/interaction/InteractionMessenger.ts +0 -4
  154. package/src/interaction/SubscriptionClient.ts +2 -2
  155. package/src/peer/ControllerCommissioner.ts +4 -3
  156. package/src/peer/ControllerCommissioningFlow.ts +96 -57
  157. package/src/peer/PeerSet.ts +7 -6
  158. package/src/protocol/ChannelManager.ts +3 -3
  159. package/src/protocol/ExchangeManager.ts +18 -67
  160. package/src/protocol/ExchangeProvider.ts +20 -6
  161. package/src/protocol/MessageChannel.ts +163 -0
  162. package/src/protocol/MessageExchange.ts +40 -119
  163. package/src/protocol/ProtocolStatusMessage.ts +51 -0
  164. package/src/protocol/index.ts +2 -0
  165. package/src/securechannel/SecureChannelMessenger.ts +11 -18
  166. package/src/securechannel/SecureChannelProtocol.ts +3 -3
  167. package/src/securechannel/SecureChannelStatusMessageSchema.ts +5 -31
  168. package/src/session/case/CaseClient.ts +2 -2
  169. package/src/session/case/CaseServer.ts +3 -3
  170. package/src/session/pase/PaseClient.ts +3 -3
  171. package/src/session/pase/PaseServer.ts +2 -2
@@ -3,8 +3,10 @@
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
  AsyncObservable,
9
+ createPromise,
8
10
  CRYPTO_AEAD_MIC_LENGTH_BYTES,
9
11
  DataReadQueue,
10
12
  Diagnostic,
@@ -13,10 +15,16 @@ import {
13
15
  MatterError,
14
16
  MatterFlowError,
15
17
  NoResponseTimeoutError,
16
- Time,
17
- createPromise
18
+ Time
18
19
  } from "#general";
19
- import { GroupSession } from "#session/index.js";
20
+ import { MRP } from "#protocol/MessageChannel.js";
21
+ import { SecureChannelProtocol } from "#securechannel/SecureChannelProtocol.js";
22
+ import { GroupSession } from "#session/GroupSession.js";
23
+ import {
24
+ SESSION_ACTIVE_INTERVAL_MS,
25
+ SESSION_ACTIVE_THRESHOLD_MS,
26
+ SESSION_IDLE_INTERVAL_MS
27
+ } from "#session/Session.js";
20
28
  import {
21
29
  GroupId,
22
30
  SECURE_CHANNEL_PROTOCOL_ID,
@@ -24,13 +32,6 @@ import {
24
32
  StatusCode,
25
33
  StatusResponseError
26
34
  } from "#types";
27
- import { MessageCodec, SessionType } from "../codec/MessageCodec.js";
28
- import { SecureChannelProtocol } from "../securechannel/SecureChannelProtocol.js";
29
- import {
30
- SESSION_ACTIVE_INTERVAL_MS,
31
- SESSION_ACTIVE_THRESHOLD_MS,
32
- SESSION_IDLE_INTERVAL_MS
33
- } from "../session/Session.js";
34
35
  import { ChannelNotConnectedError } from "./ExchangeManager.js";
35
36
  const logger = Logger.get("MessageExchange");
36
37
  class RetransmissionLimitReachedError extends NoResponseTimeoutError {
@@ -41,14 +42,7 @@ class UnexpectedMessageError extends MatterError {
41
42
  this.receivedMessage = receivedMessage;
42
43
  }
43
44
  }
44
- const MRP_MAX_TRANSMISSIONS = 5;
45
- const MRP_BACKOFF_BASE = 1.6;
46
- const MRP_BACKOFF_JITTER = 0.25;
47
- const MRP_BACKOFF_MARGIN = 1.1;
48
- const MRP_BACKOFF_THRESHOLD = 1;
49
- const MRP_STANDALONE_ACK_TIMEOUT_MS = 200;
50
45
  const DEFAULT_EXPECTED_PROCESSING_TIME_MS = 2e3;
51
- const PEER_RESPONSE_TIME_BUFFER_MS = 5e3;
52
46
  const MATTER_MESSAGE_OVERHEAD = 26 + 12 + CRYPTO_AEAD_MIC_LENGTH_BYTES;
53
47
  class MessageExchange {
54
48
  constructor(context, isInitiator, peerSessionId, nodeId, peerNodeId, exchangeId, protocolId, requiresSecureSession) {
@@ -66,8 +60,6 @@ class MessageExchange {
66
60
  this.#activeIntervalMs = activeIntervalMs ?? SESSION_ACTIVE_INTERVAL_MS;
67
61
  this.#idleIntervalMs = idleIntervalMs ?? SESSION_IDLE_INTERVAL_MS;
68
62
  this.#activeThresholdMs = activeThresholdMs ?? SESSION_ACTIVE_THRESHOLD_MS;
69
- this.#maxTransmissions = MRP_MAX_TRANSMISSIONS;
70
- this.#useMRP = session.supportsMRP && !channel.isReliable;
71
63
  this.#used = !isInitiator;
72
64
  logger.debug(
73
65
  "New exchange",
@@ -80,9 +72,9 @@ class MessageExchange {
80
72
  SAT: this.#activeThresholdMs,
81
73
  SAI: this.#activeIntervalMs,
82
74
  SII: this.#idleIntervalMs,
83
- maxTrans: this.#maxTransmissions,
75
+ maxTrans: MRP.MAX_TRANSMISSIONS,
84
76
  exchangeFlags: Diagnostic.asFlags({
85
- MRP: this.#useMRP,
77
+ MRP: this.channel.usesMrp,
86
78
  I: this.isInitiator
87
79
  })
88
80
  })
@@ -121,10 +113,9 @@ class MessageExchange {
121
113
  #activeIntervalMs;
122
114
  #idleIntervalMs;
123
115
  #activeThresholdMs;
124
- #maxTransmissions;
125
116
  #messagesQueue = new DataReadQueue();
126
117
  #receivedMessageToAck;
127
- #receivedMessageAckTimer = Time.getTimer("Ack receipt timeout", MRP_STANDALONE_ACK_TIMEOUT_MS, () => {
118
+ #receivedMessageAckTimer = Time.getTimer("Ack receipt timeout", MRP.STANDALONE_ACK_TIMEOUT_MS, () => {
128
119
  if (this.#receivedMessageToAck !== void 0) {
129
120
  const messageToAck = this.#receivedMessageToAck;
130
121
  this.#receivedMessageToAck = void 0;
@@ -149,7 +140,6 @@ class MessageExchange {
149
140
  #protocolId;
150
141
  #closed = AsyncObservable();
151
142
  #closing = AsyncObservable();
152
- #useMRP;
153
143
  /** Emits when the exchange is actually closed. This happens after all Retries and Communication are done. */
154
144
  get closed() {
155
145
  return this.#closed;
@@ -185,12 +175,12 @@ class MessageExchange {
185
175
  packetHeader: { messageId },
186
176
  payloadHeader: { requiresAck }
187
177
  } = message;
188
- if (!requiresAck || !this.#useMRP) return;
178
+ if (!requiresAck || !this.channel.usesMrp) return;
189
179
  await this.send(SecureMessageType.StandaloneAck, new Uint8Array(0), { includeAcknowledgeMessageId: messageId });
190
180
  }
191
181
  async onMessageReceived(message, duplicate = false) {
192
182
  logger.debug("Message \xAB", MessageCodec.messageDiagnostics(message, { duplicate }));
193
- if (message.payloadHeader.requiresAck && !this.#useMRP) {
183
+ if (message.payloadHeader.requiresAck && !this.channel.usesMrp) {
194
184
  logger.debug("Ignoring ack-required flag because MRP is not used for this exchange");
195
185
  message.payloadHeader.requiresAck = false;
196
186
  }
@@ -253,7 +243,7 @@ class MessageExchange {
253
243
  await this.#messagesQueue.write(message);
254
244
  }
255
245
  async send(messageType, payload, options) {
256
- if (options?.requiresAck && !this.#useMRP) {
246
+ if (options?.requiresAck && !this.channel.usesMrp) {
257
247
  options.requiresAck = false;
258
248
  }
259
249
  const {
@@ -264,11 +254,11 @@ class MessageExchange {
264
254
  includeAcknowledgeMessageId,
265
255
  logContext
266
256
  } = options ?? {};
267
- if (!this.#useMRP && includeAcknowledgeMessageId !== void 0) {
257
+ if (!this.channel.usesMrp && includeAcknowledgeMessageId !== void 0) {
268
258
  throw new InternalError("Cannot include an acknowledge message ID when MRP is not used");
269
259
  }
270
260
  if (messageType === SecureMessageType.StandaloneAck) {
271
- if (!this.#useMRP) {
261
+ if (!this.channel.usesMrp) {
272
262
  return;
273
263
  }
274
264
  if (requiresAck) {
@@ -280,7 +270,7 @@ class MessageExchange {
280
270
  this.#used = true;
281
271
  this.session.notifyActivity(false);
282
272
  let ackedMessageId = includeAcknowledgeMessageId;
283
- if (ackedMessageId === void 0 && this.#useMRP) {
273
+ if (ackedMessageId === void 0 && this.channel.usesMrp) {
284
274
  ackedMessageId = this.#receivedMessageToAck?.packetHeader.messageId;
285
275
  if (ackedMessageId !== void 0) {
286
276
  this.#receivedMessageAckTimer.stop();
@@ -329,18 +319,18 @@ class MessageExchange {
329
319
  protocolId: messageType === SecureMessageType.StandaloneAck ? SECURE_CHANNEL_PROTOCOL_ID : this.#protocolId,
330
320
  messageType,
331
321
  isInitiatorMessage: this.isInitiator,
332
- requiresAck: requiresAck ?? (this.#useMRP && messageType !== SecureMessageType.StandaloneAck),
322
+ requiresAck: requiresAck ?? (this.channel.usesMrp && messageType !== SecureMessageType.StandaloneAck),
333
323
  ackedMessageId,
334
324
  hasSecuredExtension: false
335
325
  },
336
326
  payload
337
327
  };
338
328
  let ackPromise;
339
- if (this.#useMRP && message.payloadHeader.requiresAck && !disableMrpLogic) {
329
+ if (this.channel.usesMrp && message.payloadHeader.requiresAck && !disableMrpLogic) {
340
330
  this.#sentMessageToAck = message;
341
331
  this.#retransmissionTimer = Time.getTimer(
342
332
  `Message retransmission ${message.packetHeader.messageId}`,
343
- this.#getResubmissionBackOffTime(0),
333
+ this.channel.getMrpResubmissionBackOffTime(0),
344
334
  () => this.#retransmitMessage(message, expectedProcessingTimeMs)
345
335
  );
346
336
  const { promise, resolver, rejecter } = createPromise();
@@ -370,61 +360,27 @@ class MessageExchange {
370
360
  } else if (this.#messagesQueue.size > 0) {
371
361
  timeout = 0;
372
362
  } else {
373
- switch (this.channel.type) {
374
- case "tcp":
375
- timeout = 3e4;
376
- break;
377
- case "udp":
378
- if (!this.#useMRP) {
379
- throw new MatterFlowError(
380
- "No response expected for this message exchange because UDP and no MRP."
381
- );
382
- }
383
- const { expectedProcessingTimeMs } = options ?? {};
384
- timeout = this.calculateMaximumPeerResponseTime(expectedProcessingTimeMs);
385
- break;
386
- case "ble":
387
- timeout = 3e4;
388
- break;
389
- default:
390
- throw new MatterFlowError(
391
- `Can not calculate expected timeout for unknown channel type: ${this.channel.type}`
392
- );
393
- }
394
- timeout += PEER_RESPONSE_TIME_BUFFER_MS;
363
+ timeout = this.channel.calculateMaximumPeerResponseTimeMs(
364
+ this.context.localSessionParameters,
365
+ options?.expectedProcessingTimeMs
366
+ );
395
367
  }
396
368
  return this.#messagesQueue.read(timeout);
397
369
  }
398
- /**
399
- * Calculates the backoff time for a resubmission based on the current retransmission count.
400
- * If no session parameters are provided, the parameters of the current session are used.
401
- * If session parameters are provided, the method can be used to calculate the maximum backoff time for the other
402
- * side of the exchange.
403
- *
404
- * @see {@link MatterSpecification.v10.Core}, section 4.11.2.1
405
- */
406
- #getResubmissionBackOffTime(retransmissionCount, sessionParameters) {
407
- const { activeIntervalMs, idleIntervalMs } = sessionParameters ?? {
408
- activeIntervalMs: this.#activeIntervalMs,
409
- idleIntervalMs: this.#idleIntervalMs
410
- };
411
- const baseInterval = sessionParameters !== void 0 || this.session.isPeerActive() ? activeIntervalMs : idleIntervalMs;
412
- return Math.floor(
413
- 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)
370
+ calculateMaximumPeerResponseTimeMs(expectedProcessingTimeMs = DEFAULT_EXPECTED_PROCESSING_TIME_MS) {
371
+ return this.channel.calculateMaximumPeerResponseTimeMs(
372
+ this.context.localSessionParameters,
373
+ expectedProcessingTimeMs
414
374
  );
415
375
  }
416
- calculateMaximumPeerResponseTime(expectedProcessingTimeMs = DEFAULT_EXPECTED_PROCESSING_TIME_MS) {
417
- let finalWaitTime = expectedProcessingTimeMs;
418
- for (let i = 0; i < this.#maxTransmissions; i++) {
419
- finalWaitTime += this.#getResubmissionBackOffTime(i, this.context.localSessionParameters);
420
- }
421
- return finalWaitTime;
422
- }
423
376
  #retransmitMessage(message, expectedProcessingTimeMs) {
424
377
  this.#retransmissionCounter++;
425
- if (this.#retransmissionCounter >= this.#maxTransmissions) {
378
+ if (this.#retransmissionCounter >= MRP.MAX_TRANSMISSIONS) {
426
379
  if (expectedProcessingTimeMs !== void 0) {
427
- const finalWaitTime = this.calculateMaximumPeerResponseTime(expectedProcessingTimeMs) - (this.#retransmissionTimer?.intervalMs ?? 0);
380
+ const finalWaitTime = this.channel.calculateMaximumPeerResponseTimeMs(
381
+ this.context.localSessionParameters,
382
+ expectedProcessingTimeMs
383
+ ) - (this.#retransmissionTimer?.intervalMs ?? 0);
428
384
  if (finalWaitTime > 0) {
429
385
  this.#retransmissionCounter--;
430
386
  logger.debug(
@@ -453,7 +409,7 @@ class MessageExchange {
453
409
  if (this.#retransmissionCounter === 1) {
454
410
  this.context.resubmissionStarted();
455
411
  }
456
- const resubmissionBackoffTime = this.#getResubmissionBackOffTime(this.#retransmissionCounter);
412
+ const resubmissionBackoffTime = this.channel.getMrpResubmissionBackOffTime(this.#retransmissionCounter);
457
413
  logger.debug(
458
414
  `Resubmit message ${message.packetHeader.messageId} (retransmission attempt ${this.#retransmissionCounter}, backoff time ${resubmissionBackoffTime}ms))`
459
415
  );
@@ -554,8 +510,8 @@ class MessageExchange {
554
510
  return this.#close();
555
511
  }
556
512
  let maxResubmissionTime = 0;
557
- for (let i = this.#retransmissionCounter; i <= this.#maxTransmissions; i++) {
558
- maxResubmissionTime += this.#getResubmissionBackOffTime(i);
513
+ for (let i = this.#retransmissionCounter; i <= MRP.MAX_TRANSMISSIONS; i++) {
514
+ maxResubmissionTime += this.channel.getMrpResubmissionBackOffTime(i);
559
515
  }
560
516
  this.#closeTimer = Time.getTimer(
561
517
  `Message exchange cleanup ${this.session.name} / ${this.#exchangeId}`,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/protocol/MessageExchange.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["messageType", "error"]
6
6
  }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { GeneralStatusCode, Schema } from "#types";
7
+ export type ProtocolStatusMessage<T> = {
8
+ generalStatus: GeneralStatusCode;
9
+ protocolId: number;
10
+ protocolStatus: T;
11
+ protocolData?: Uint8Array;
12
+ };
13
+ export declare abstract class ProtocolStatusMessageSchema<T extends ProtocolStatusMessage<any>> extends Schema<T, Uint8Array> {
14
+ #private;
15
+ constructor(protocolId: number, protocolSpecificDataAllowed?: boolean);
16
+ encode(message: Omit<T, "protocolId">): Uint8Array;
17
+ encodeInternal({ generalStatus, protocolStatus, protocolId, protocolData }: T): Uint8Array<ArrayBuffer>;
18
+ decodeInternal(bytes: Uint8Array): T;
19
+ }
20
+ //# sourceMappingURL=ProtocolStatusMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProtocolStatusMessage.d.ts","sourceRoot":"","sources":["../../../src/protocol/ProtocolStatusMessage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEnD,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI;IACnC,aAAa,EAAE,iBAAiB,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,CAAC,CAAC;IAClB,YAAY,CAAC,EAAE,UAAU,CAAC;CAC7B,CAAC;AAEF,8BAAsB,2BAA2B,CAAC,CAAC,SAAS,qBAAqB,CAAC,GAAG,CAAC,CAAE,SAAQ,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC;;gBAIrG,UAAU,EAAE,MAAM,EAAE,2BAA2B,UAAO;IAMzD,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,UAAU;IAI3D,cAAc,CAAC,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,CAAC;IAW7E,cAAc,CAAC,KAAK,EAAE,UAAU,GAOuD,CAAC;CAE3F"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { DataReader, DataWriter, Endian } from "#general";
7
+ import { Schema } from "#types";
8
+ class ProtocolStatusMessageSchema extends Schema {
9
+ #protocolId;
10
+ #protocolSpecificDataAllowed;
11
+ constructor(protocolId, protocolSpecificDataAllowed = true) {
12
+ super();
13
+ this.#protocolId = protocolId;
14
+ this.#protocolSpecificDataAllowed = protocolSpecificDataAllowed;
15
+ }
16
+ encode(message) {
17
+ return super.encode({ ...message, protocolId: this.#protocolId });
18
+ }
19
+ encodeInternal({ generalStatus, protocolStatus, protocolId, protocolData }) {
20
+ const writer = new DataWriter(Endian.Little);
21
+ writer.writeUInt16(generalStatus);
22
+ writer.writeUInt32(protocolId);
23
+ writer.writeUInt16(protocolStatus);
24
+ if (this.#protocolSpecificDataAllowed && protocolData !== void 0 && protocolData.length > 0) {
25
+ writer.writeByteArray(protocolData);
26
+ }
27
+ return writer.toByteArray();
28
+ }
29
+ decodeInternal(bytes) {
30
+ const reader = new DataReader(bytes, Endian.Little);
31
+ const generalStatus = reader.readUInt16();
32
+ const protocolId = reader.readUInt32();
33
+ const protocolStatus = reader.readUInt16();
34
+ const remainingBytes = reader.remainingBytesCount > 0 ? reader.remainingBytes : void 0;
35
+ return { generalStatus, protocolId, protocolStatus, remainingBytes };
36
+ }
37
+ }
38
+ export {
39
+ ProtocolStatusMessageSchema
40
+ };
41
+ //# sourceMappingURL=ProtocolStatusMessage.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/protocol/ProtocolStatusMessage.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,YAAY,YAAY,cAAc;AAC/C,SAA4B,cAAc;AASnC,MAAe,oCAA0E,OAAsB;AAAA,EAClH;AAAA,EACA;AAAA,EAEA,YAAY,YAAoB,8BAA8B,MAAM;AAChE,UAAM;AACN,SAAK,cAAc;AACnB,SAAK,+BAA+B;AAAA,EACxC;AAAA,EAES,OAAO,SAA4C;AACxD,WAAO,MAAM,OAAO,EAAE,GAAG,SAAS,YAAY,KAAK,YAAY,CAAM;AAAA,EACzE;AAAA,EAEA,eAAe,EAAE,eAAe,gBAAgB,YAAY,aAAa,GAAM;AAC3E,UAAM,SAAS,IAAI,WAAW,OAAO,MAAM;AAC3C,WAAO,YAAY,aAAa;AAChC,WAAO,YAAY,UAAU;AAC7B,WAAO,YAAY,cAAc;AACjC,QAAI,KAAK,gCAAgC,iBAAiB,UAAa,aAAa,SAAS,GAAG;AAC5F,aAAO,eAAe,YAAY;AAAA,IACtC;AACA,WAAO,OAAO,YAAY;AAAA,EAC9B;AAAA,EAEA,eAAe,OAAmB;AAC9B,UAAM,SAAS,IAAI,WAAW,OAAO,OAAO,MAAM;AAClD,UAAM,gBAAgB,OAAO,WAAW;AACxC,UAAM,aAAa,OAAO,WAAW;AACrC,UAAM,iBAAiB,OAAO,WAAW;AACzC,UAAM,iBAAiB,OAAO,sBAAsB,IAAI,OAAO,iBAAiB;AAEhF,WAAO,EAAE,eAAe,YAAY,gBAAgB,eAAe;AAAA,EACvE;AACJ;",
5
+ "names": []
6
+ }
@@ -8,8 +8,10 @@ export * from "./DeviceAdvertiser.js";
8
8
  export * from "./DeviceCommissioner.js";
9
9
  export * from "./ExchangeManager.js";
10
10
  export * from "./ExchangeProvider.js";
11
+ export * from "./MessageChannel.js";
11
12
  export * from "./MessageCounter.js";
12
13
  export * from "./MessageExchange.js";
13
14
  export * from "./MessageReceptionState.js";
14
15
  export * from "./ProtocolHandler.js";
16
+ export * from "./ProtocolStatusMessage.js";
15
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/protocol/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/protocol/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC"}
@@ -8,8 +8,10 @@ export * from "./DeviceAdvertiser.js";
8
8
  export * from "./DeviceCommissioner.js";
9
9
  export * from "./ExchangeManager.js";
10
10
  export * from "./ExchangeProvider.js";
11
+ export * from "./MessageChannel.js";
11
12
  export * from "./MessageCounter.js";
12
13
  export * from "./MessageExchange.js";
13
14
  export * from "./MessageReceptionState.js";
14
15
  export * from "./ProtocolHandler.js";
16
+ export * from "./ProtocolStatusMessage.js";
15
17
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/protocol/index.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;AACd,cAAc;AACd,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;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
5
5
  "names": []
6
6
  }
@@ -4,14 +4,14 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { MatterError } from "#general";
7
- import { GeneralStatusCode, ProtocolStatusCode, TlvSchema } from "#types";
7
+ import { GeneralStatusCode, SecureChannelStatusCode, TlvSchema } from "#types";
8
8
  import { Message } from "../codec/MessageCodec.js";
9
9
  import { ExchangeSendOptions, MessageExchange } from "../protocol/MessageExchange.js";
10
10
  /** Error base Class for all errors related to the status response messages. */
11
11
  export declare class ChannelStatusResponseError extends MatterError {
12
12
  readonly generalStatusCode: GeneralStatusCode;
13
- readonly protocolStatusCode: ProtocolStatusCode;
14
- constructor(message: string, generalStatusCode: GeneralStatusCode, protocolStatusCode: ProtocolStatusCode);
13
+ readonly protocolStatusCode: SecureChannelStatusCode;
14
+ constructor(message: string, generalStatusCode: GeneralStatusCode, protocolStatusCode: SecureChannelStatusCode);
15
15
  }
16
16
  /** This value is used by chip SDK when performance wise heavy crypto operations are expected. */
17
17
  export declare const EXPECTED_CRYPTO_PROCESSING_TIME_MS = 30000;
@@ -40,12 +40,11 @@ export declare class SecureChannelMessenger {
40
40
  * EXPECTED_CRYPTO_PROCESSING_TIME_MS.
41
41
  */
42
42
  send<T>(message: T, type: number, schema: TlvSchema<T>, options?: ExchangeSendOptions): Promise<Uint8Array<ArrayBufferLike>>;
43
- sendError(code: ProtocolStatusCode): Promise<void>;
43
+ sendError(code: SecureChannelStatusCode): Promise<void>;
44
44
  sendSuccess(): Promise<void>;
45
45
  sendCloseSession(): Promise<void>;
46
46
  getChannelName(): string;
47
47
  close(): Promise<void>;
48
- private sendStatusReport;
49
48
  protected throwIfErrorStatusReport(message: Message, logHint?: string): void;
50
49
  }
51
50
  //# sourceMappingURL=SecureChannelMessenger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SecureChannelMessenger.d.ts","sourceRoot":"","sources":["../../../src/securechannel/SecureChannelMessenger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAc,WAAW,EAAuB,MAAM,UAAU,CAAC;AACxE,OAAO,EACH,iBAAiB,EACjB,kBAAkB,EAGlB,SAAS,EACZ,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGtF,+EAA+E;AAC/E,qBAAa,0BAA2B,SAAQ,WAAW;aAGnC,iBAAiB,EAAE,iBAAiB;aACpC,kBAAkB,EAAE,kBAAkB;gBAFtD,OAAO,EAAE,MAAM,EACC,iBAAiB,EAAE,iBAAiB,EACpC,kBAAkB,EAAE,kBAAkB;CAM7D;AAED,iGAAiG;AACjG,eAAO,MAAM,kCAAkC,QAAS,CAAC;AAEzD,8EAA8E;AAC9E,eAAO,MAAM,iCAAiC,OAAQ,CAAC;AAEvD,qBAAa,sBAAsB;;IAI3B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe;gBAAzB,QAAQ,EAAE,eAAe,EAC5C,+BAA+B,SAAqC;IAKxE,IAAI,OAAO,yCAEV;IAEK,WAAW,CACb,mBAAmB,EAAE,MAAM,EAC3B,wBAAwB,SAAwC,EAChE,mBAAmB,CAAC,EAAE,MAAM;IAK1B,cAAc,CAChB,mBAAmB,EAAE,MAAM,EAC3B,wBAAwB,SAAwC;IA2BpE;;;OAGG;IACG,kBAAkB,CAAC,CAAC,EACtB,mBAAmB,EAAE,MAAM,EAC3B,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,wBAAwB,SAAwC;IAKpE;;;OAGG;IACG,cAAc,CAChB,mBAAmB,EAAE,MAAM,EAC3B,wBAAwB,SAAwC;IAMpE;;;;OAIG;IACG,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,mBAAmB;IAU3F,SAAS,CAAC,IAAI,EAAE,kBAAkB;IAIlC,WAAW;IAIX,gBAAgB;IAIhB,cAAc;IAIR,KAAK;YAIG,gBAAgB;IAsB9B,SAAS,CAAC,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM;CAuBxE"}
1
+ {"version":3,"file":"SecureChannelMessenger.d.ts","sourceRoot":"","sources":["../../../src/securechannel/SecureChannelMessenger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAc,WAAW,EAAuB,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAqB,SAAS,EAAE,MAAM,QAAQ,CAAC;AAClG,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGtF,+EAA+E;AAC/E,qBAAa,0BAA2B,SAAQ,WAAW;aAGnC,iBAAiB,EAAE,iBAAiB;aACpC,kBAAkB,EAAE,uBAAuB;gBAF3D,OAAO,EAAE,MAAM,EACC,iBAAiB,EAAE,iBAAiB,EACpC,kBAAkB,EAAE,uBAAuB;CAMlE;AAED,iGAAiG;AACjG,eAAO,MAAM,kCAAkC,QAAS,CAAC;AAEzD,8EAA8E;AAC9E,eAAO,MAAM,iCAAiC,OAAQ,CAAC;AAEvD,qBAAa,sBAAsB;;IAI3B,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe;gBAAzB,QAAQ,EAAE,eAAe,EAC5C,+BAA+B,SAAqC;IAKxE,IAAI,OAAO,yCAEV;IAEK,WAAW,CACb,mBAAmB,EAAE,MAAM,EAC3B,wBAAwB,SAAwC,EAChE,mBAAmB,CAAC,EAAE,MAAM;IAK1B,cAAc,CAChB,mBAAmB,EAAE,MAAM,EAC3B,wBAAwB,SAAwC;IA2BpE;;;OAGG;IACG,kBAAkB,CAAC,CAAC,EACtB,mBAAmB,EAAE,MAAM,EAC3B,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,wBAAwB,SAAwC;IAKpE;;;OAGG;IACG,cAAc,CAChB,mBAAmB,EAAE,MAAM,EAC3B,wBAAwB,SAAwC;IAMpE;;;;OAIG;IACG,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,mBAAmB;IAU3F,SAAS,CAAC,IAAI,EAAE,uBAAuB;IAIvC,WAAW;IAIX,gBAAgB;IAIhB,cAAc;IAIR,KAAK;IAyBX,SAAS,CAAC,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM;CAuBxE"}
@@ -4,17 +4,12 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { Diagnostic, MatterError, UnexpectedDataError } from "#general";
7
- import {
8
- GeneralStatusCode,
9
- ProtocolStatusCode,
10
- SECURE_CHANNEL_PROTOCOL_ID,
11
- SecureMessageType
12
- } from "#types";
7
+ import { GeneralStatusCode, SecureChannelStatusCode, SecureMessageType } from "#types";
13
8
  import { TlvSecureChannelStatusMessage } from "./SecureChannelStatusMessageSchema.js";
14
9
  class ChannelStatusResponseError extends MatterError {
15
10
  constructor(message, generalStatusCode, protocolStatusCode) {
16
11
  super(
17
- `(${GeneralStatusCode[generalStatusCode]} (${generalStatusCode}) / ${ProtocolStatusCode[protocolStatusCode]} (${protocolStatusCode})) ${message}`
12
+ `(${GeneralStatusCode[generalStatusCode]} (${generalStatusCode}) / ${SecureChannelStatusCode[protocolStatusCode]} (${protocolStatusCode})) ${message}`
18
13
  );
19
14
  this.generalStatusCode = generalStatusCode;
20
15
  this.protocolStatusCode = protocolStatusCode;
@@ -83,13 +78,13 @@ class SecureChannelMessenger {
83
78
  return payload;
84
79
  }
85
80
  sendError(code) {
86
- return this.sendStatusReport(GeneralStatusCode.Failure, code);
81
+ return this.#sendStatusReport(GeneralStatusCode.Failure, code);
87
82
  }
88
83
  sendSuccess() {
89
- return this.sendStatusReport(GeneralStatusCode.Success, ProtocolStatusCode.Success);
84
+ return this.#sendStatusReport(GeneralStatusCode.Success, SecureChannelStatusCode.Success);
90
85
  }
91
86
  sendCloseSession() {
92
- return this.sendStatusReport(GeneralStatusCode.Success, ProtocolStatusCode.CloseSession, false);
87
+ return this.#sendStatusReport(GeneralStatusCode.Success, SecureChannelStatusCode.CloseSession, false);
93
88
  }
94
89
  getChannelName() {
95
90
  return this.exchange.channel.channel.name;
@@ -97,19 +92,18 @@ class SecureChannelMessenger {
97
92
  async close() {
98
93
  await this.exchange.close();
99
94
  }
100
- async sendStatusReport(generalStatus, protocolStatus, requiresAck) {
95
+ async #sendStatusReport(generalStatus, protocolStatus, requiresAck) {
101
96
  await this.exchange.send(
102
97
  SecureMessageType.StatusReport,
103
98
  TlvSecureChannelStatusMessage.encode({
104
99
  generalStatus,
105
- protocolId: SECURE_CHANNEL_PROTOCOL_ID,
106
100
  protocolStatus
107
101
  }),
108
102
  {
109
103
  requiresAck,
110
104
  logContext: {
111
105
  generalStatus: GeneralStatusCode[generalStatus] ?? Diagnostic.hex(generalStatus),
112
- protocolStatus: ProtocolStatusCode[protocolStatus] ?? Diagnostic.hex(protocolStatus)
106
+ protocolStatus: SecureChannelStatusCode[protocolStatus] ?? Diagnostic.hex(protocolStatus)
113
107
  }
114
108
  }
115
109
  );
@@ -128,7 +122,7 @@ class SecureChannelMessenger {
128
122
  protocolStatus
129
123
  );
130
124
  }
131
- if (protocolStatus !== ProtocolStatusCode.Success) {
125
+ if (protocolStatus !== SecureChannelStatusCode.Success) {
132
126
  throw new ChannelStatusResponseError(
133
127
  `Received general success status, but protocol status is not Success${logHint ? ` (${logHint})` : ""}`,
134
128
  generalStatus,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/securechannel/SecureChannelMessenger.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -9,8 +9,8 @@ import { ExchangeManager } from "#protocol/ExchangeManager.js";
9
9
  import { SessionManager } from "#session/SessionManager.js";
10
10
  import {
11
11
  GeneralStatusCode,
12
- ProtocolStatusCode,
13
12
  SECURE_CHANNEL_PROTOCOL_ID,
13
+ SecureChannelStatusCode,
14
14
  SecureMessageType,
15
15
  StatusCode,
16
16
  StatusResponseError
@@ -59,7 +59,7 @@ class StatusReportOnlySecureChannelProtocol {
59
59
  protocolStatus
60
60
  );
61
61
  }
62
- if (protocolStatus !== ProtocolStatusCode.CloseSession) {
62
+ if (protocolStatus !== SecureChannelStatusCode.CloseSession) {
63
63
  throw new ChannelStatusResponseError(
64
64
  `Received general success status, but protocol status is not CloseSession`,
65
65
  generalStatus,
@@ -106,7 +106,7 @@ class SecureChannelProtocol extends StatusReportOnlySecureChannelProtocol {
106
106
  case SecureMessageType.PbkdfParamRequest:
107
107
  if (this.#paseCommissioner === void 0) {
108
108
  const messenger = new SecureChannelMessenger(exchange);
109
- await messenger.sendError(ProtocolStatusCode.InvalidParam);
109
+ await messenger.sendError(SecureChannelStatusCode.InvalidParam);
110
110
  await messenger.close();
111
111
  return;
112
112
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/securechannel/SecureChannelProtocol.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -3,21 +3,10 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { GeneralStatusCode, ProtocolStatusCode, Schema } from "#types";
7
- export type StatusMessage = {
8
- generalStatus: GeneralStatusCode;
9
- protocolId: number;
10
- protocolStatus: ProtocolStatusCode;
11
- protocolData?: Uint8Array;
12
- };
13
- export declare class SecureChannelStatusMessageSchema extends Schema<StatusMessage, Uint8Array> {
14
- encodeInternal({ generalStatus, protocolId, protocolStatus, protocolData }: StatusMessage): Uint8Array<ArrayBuffer>;
15
- decodeInternal(bytes: Uint8Array): {
16
- generalStatus: number;
17
- protocolId: number;
18
- protocolStatus: number;
19
- remainingBytes: Uint8Array<ArrayBufferLike> | undefined;
20
- };
6
+ import { ProtocolStatusMessage, ProtocolStatusMessageSchema } from "#protocol/ProtocolStatusMessage.js";
7
+ import { SecureChannelStatusCode } from "#types";
8
+ export type SecureChannelStatusMessage = ProtocolStatusMessage<SecureChannelStatusCode>;
9
+ export declare class SecureChannelStatusMessageSchema extends ProtocolStatusMessageSchema<SecureChannelStatusMessage> {
21
10
  }
22
11
  export declare const TlvSecureChannelStatusMessage: SecureChannelStatusMessageSchema;
23
12
  //# sourceMappingURL=SecureChannelStatusMessageSchema.d.ts.map