@matter/protocol 0.16.0-alpha.0-20251001-7eb06da95 → 0.16.0-alpha.0-20251004-92135c7df

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 (191) hide show
  1. package/dist/cjs/action/client/ReadScope.d.ts +4 -0
  2. package/dist/cjs/action/client/ReadScope.d.ts.map +1 -1
  3. package/dist/cjs/action/client/ReadScope.js +2 -1
  4. package/dist/cjs/action/client/ReadScope.js.map +1 -1
  5. package/dist/cjs/ble/Ble.d.ts +3 -3
  6. package/dist/cjs/ble/Ble.d.ts.map +1 -1
  7. package/dist/cjs/ble/Ble.js.map +1 -1
  8. package/dist/cjs/common/Scanner.d.ts +2 -2
  9. package/dist/cjs/common/Scanner.d.ts.map +1 -1
  10. package/dist/cjs/interaction/AttributeDataDecoder.d.ts +9 -7
  11. package/dist/cjs/interaction/AttributeDataDecoder.d.ts.map +1 -1
  12. package/dist/cjs/interaction/AttributeDataDecoder.js.map +1 -1
  13. package/dist/cjs/interaction/DecodedDataReport.d.ts +1 -0
  14. package/dist/cjs/interaction/DecodedDataReport.d.ts.map +1 -1
  15. package/dist/cjs/interaction/DecodedDataReport.js.map +1 -1
  16. package/dist/cjs/interaction/InteractionClient.d.ts +13 -3
  17. package/dist/cjs/interaction/InteractionClient.d.ts.map +1 -1
  18. package/dist/cjs/interaction/InteractionClient.js +94 -67
  19. package/dist/cjs/interaction/InteractionClient.js.map +1 -1
  20. package/dist/cjs/interaction/InteractionMessenger.d.ts +10 -90
  21. package/dist/cjs/interaction/InteractionMessenger.d.ts.map +1 -1
  22. package/dist/cjs/interaction/InteractionMessenger.js +98 -22
  23. package/dist/cjs/interaction/InteractionMessenger.js.map +2 -2
  24. package/dist/cjs/interaction/SubscriptionClient.d.ts +2 -2
  25. package/dist/cjs/interaction/SubscriptionClient.d.ts.map +1 -1
  26. package/dist/cjs/interaction/SubscriptionClient.js +1 -1
  27. package/dist/cjs/interaction/SubscriptionClient.js.map +1 -1
  28. package/dist/cjs/mdns/MdnsClient.d.ts +3 -3
  29. package/dist/cjs/mdns/MdnsClient.d.ts.map +1 -1
  30. package/dist/cjs/mdns/MdnsClient.js +28 -14
  31. package/dist/cjs/mdns/MdnsClient.js.map +1 -1
  32. package/dist/cjs/mdns/MdnsServer.d.ts.map +1 -1
  33. package/dist/cjs/mdns/MdnsServer.js +59 -5
  34. package/dist/cjs/mdns/MdnsServer.js.map +1 -1
  35. package/dist/cjs/mdns/MdnsSocket.d.ts.map +1 -1
  36. package/dist/cjs/mdns/MdnsSocket.js +10 -1
  37. package/dist/cjs/mdns/MdnsSocket.js.map +1 -1
  38. package/dist/cjs/peer/ControllerCommissioner.d.ts +2 -2
  39. package/dist/cjs/peer/ControllerCommissioner.d.ts.map +1 -1
  40. package/dist/cjs/peer/ControllerCommissioner.js +7 -5
  41. package/dist/cjs/peer/ControllerCommissioner.js.map +1 -1
  42. package/dist/cjs/peer/OperationalPeer.d.ts +2 -2
  43. package/dist/cjs/peer/OperationalPeer.d.ts.map +1 -1
  44. package/dist/cjs/peer/PeerAddressStore.d.ts +3 -1
  45. package/dist/cjs/peer/PeerAddressStore.d.ts.map +1 -1
  46. package/dist/cjs/peer/PeerAddressStore.js.map +1 -1
  47. package/dist/cjs/peer/PeerSet.d.ts +3 -3
  48. package/dist/cjs/peer/PeerSet.d.ts.map +1 -1
  49. package/dist/cjs/peer/PeerSet.js +14 -9
  50. package/dist/cjs/peer/PeerSet.js.map +1 -1
  51. package/dist/cjs/protocol/ExchangeManager.d.ts +2 -2
  52. package/dist/cjs/protocol/ExchangeManager.d.ts.map +1 -1
  53. package/dist/cjs/protocol/ExchangeManager.js +21 -17
  54. package/dist/cjs/protocol/ExchangeManager.js.map +1 -1
  55. package/dist/cjs/protocol/MessageChannel.d.ts +1 -1
  56. package/dist/cjs/protocol/MessageChannel.d.ts.map +1 -1
  57. package/dist/cjs/protocol/MessageChannel.js +7 -5
  58. package/dist/cjs/protocol/MessageChannel.js.map +1 -1
  59. package/dist/cjs/protocol/MessageExchange.d.ts +0 -1
  60. package/dist/cjs/protocol/MessageExchange.d.ts.map +1 -1
  61. package/dist/cjs/protocol/MessageExchange.js +6 -17
  62. package/dist/cjs/protocol/MessageExchange.js.map +1 -1
  63. package/dist/cjs/session/NodeSession.d.ts.map +1 -1
  64. package/dist/cjs/session/NodeSession.js +3 -3
  65. package/dist/cjs/session/NodeSession.js.map +1 -1
  66. package/dist/cjs/session/SessionIntervals.d.ts +1 -5
  67. package/dist/cjs/session/SessionIntervals.d.ts.map +1 -1
  68. package/dist/cjs/session/SessionIntervals.js.map +1 -1
  69. package/dist/cjs/session/case/CaseMessages.d.ts +18 -9
  70. package/dist/cjs/session/case/CaseMessages.d.ts.map +1 -1
  71. package/dist/cjs/session/case/CaseMessages.js.map +1 -1
  72. package/dist/cjs/session/case/CaseMessenger.d.ts +4 -62
  73. package/dist/cjs/session/case/CaseMessenger.d.ts.map +1 -1
  74. package/dist/cjs/session/case/CaseMessenger.js.map +1 -1
  75. package/dist/cjs/session/case/CaseServer.js.map +1 -1
  76. package/dist/cjs/session/pase/PaseMessages.d.ts +20 -9
  77. package/dist/cjs/session/pase/PaseMessages.d.ts.map +1 -1
  78. package/dist/cjs/session/pase/PaseMessages.js +3 -3
  79. package/dist/cjs/session/pase/PaseMessages.js.map +1 -1
  80. package/dist/cjs/session/pase/PaseMessenger.d.ts +3 -51
  81. package/dist/cjs/session/pase/PaseMessenger.d.ts.map +1 -1
  82. package/dist/cjs/session/pase/PaseMessenger.js.map +1 -1
  83. package/dist/esm/action/client/ReadScope.d.ts +4 -0
  84. package/dist/esm/action/client/ReadScope.d.ts.map +1 -1
  85. package/dist/esm/action/client/ReadScope.js +2 -1
  86. package/dist/esm/action/client/ReadScope.js.map +1 -1
  87. package/dist/esm/ble/Ble.d.ts +3 -3
  88. package/dist/esm/ble/Ble.d.ts.map +1 -1
  89. package/dist/esm/ble/Ble.js.map +1 -1
  90. package/dist/esm/common/Scanner.d.ts +2 -2
  91. package/dist/esm/common/Scanner.d.ts.map +1 -1
  92. package/dist/esm/interaction/AttributeDataDecoder.d.ts +9 -7
  93. package/dist/esm/interaction/AttributeDataDecoder.d.ts.map +1 -1
  94. package/dist/esm/interaction/AttributeDataDecoder.js.map +1 -1
  95. package/dist/esm/interaction/DecodedDataReport.d.ts +1 -0
  96. package/dist/esm/interaction/DecodedDataReport.d.ts.map +1 -1
  97. package/dist/esm/interaction/DecodedDataReport.js.map +1 -1
  98. package/dist/esm/interaction/InteractionClient.d.ts +13 -3
  99. package/dist/esm/interaction/InteractionClient.d.ts.map +1 -1
  100. package/dist/esm/interaction/InteractionClient.js +96 -68
  101. package/dist/esm/interaction/InteractionClient.js.map +1 -1
  102. package/dist/esm/interaction/InteractionMessenger.d.ts +10 -90
  103. package/dist/esm/interaction/InteractionMessenger.d.ts.map +1 -1
  104. package/dist/esm/interaction/InteractionMessenger.js +98 -22
  105. package/dist/esm/interaction/InteractionMessenger.js.map +2 -2
  106. package/dist/esm/interaction/SubscriptionClient.d.ts +2 -2
  107. package/dist/esm/interaction/SubscriptionClient.d.ts.map +1 -1
  108. package/dist/esm/interaction/SubscriptionClient.js +1 -1
  109. package/dist/esm/interaction/SubscriptionClient.js.map +1 -1
  110. package/dist/esm/mdns/MdnsClient.d.ts +3 -3
  111. package/dist/esm/mdns/MdnsClient.d.ts.map +1 -1
  112. package/dist/esm/mdns/MdnsClient.js +28 -14
  113. package/dist/esm/mdns/MdnsClient.js.map +1 -1
  114. package/dist/esm/mdns/MdnsServer.d.ts.map +1 -1
  115. package/dist/esm/mdns/MdnsServer.js +60 -5
  116. package/dist/esm/mdns/MdnsServer.js.map +1 -1
  117. package/dist/esm/mdns/MdnsSocket.d.ts.map +1 -1
  118. package/dist/esm/mdns/MdnsSocket.js +12 -1
  119. package/dist/esm/mdns/MdnsSocket.js.map +1 -1
  120. package/dist/esm/peer/ControllerCommissioner.d.ts +2 -2
  121. package/dist/esm/peer/ControllerCommissioner.d.ts.map +1 -1
  122. package/dist/esm/peer/ControllerCommissioner.js +9 -6
  123. package/dist/esm/peer/ControllerCommissioner.js.map +1 -1
  124. package/dist/esm/peer/OperationalPeer.d.ts +2 -2
  125. package/dist/esm/peer/OperationalPeer.d.ts.map +1 -1
  126. package/dist/esm/peer/PeerAddressStore.d.ts +3 -1
  127. package/dist/esm/peer/PeerAddressStore.d.ts.map +1 -1
  128. package/dist/esm/peer/PeerAddressStore.js.map +1 -1
  129. package/dist/esm/peer/PeerSet.d.ts +3 -3
  130. package/dist/esm/peer/PeerSet.d.ts.map +1 -1
  131. package/dist/esm/peer/PeerSet.js +15 -10
  132. package/dist/esm/peer/PeerSet.js.map +1 -1
  133. package/dist/esm/protocol/ExchangeManager.d.ts +2 -2
  134. package/dist/esm/protocol/ExchangeManager.d.ts.map +1 -1
  135. package/dist/esm/protocol/ExchangeManager.js +22 -18
  136. package/dist/esm/protocol/ExchangeManager.js.map +1 -1
  137. package/dist/esm/protocol/MessageChannel.d.ts +1 -1
  138. package/dist/esm/protocol/MessageChannel.d.ts.map +1 -1
  139. package/dist/esm/protocol/MessageChannel.js +7 -5
  140. package/dist/esm/protocol/MessageChannel.js.map +1 -1
  141. package/dist/esm/protocol/MessageExchange.d.ts +0 -1
  142. package/dist/esm/protocol/MessageExchange.d.ts.map +1 -1
  143. package/dist/esm/protocol/MessageExchange.js +6 -17
  144. package/dist/esm/protocol/MessageExchange.js.map +1 -1
  145. package/dist/esm/session/NodeSession.d.ts.map +1 -1
  146. package/dist/esm/session/NodeSession.js +4 -3
  147. package/dist/esm/session/NodeSession.js.map +1 -1
  148. package/dist/esm/session/SessionIntervals.d.ts +1 -5
  149. package/dist/esm/session/SessionIntervals.d.ts.map +1 -1
  150. package/dist/esm/session/SessionIntervals.js.map +1 -1
  151. package/dist/esm/session/case/CaseMessages.d.ts +18 -9
  152. package/dist/esm/session/case/CaseMessages.d.ts.map +1 -1
  153. package/dist/esm/session/case/CaseMessages.js.map +1 -1
  154. package/dist/esm/session/case/CaseMessenger.d.ts +4 -62
  155. package/dist/esm/session/case/CaseMessenger.d.ts.map +1 -1
  156. package/dist/esm/session/case/CaseMessenger.js +6 -1
  157. package/dist/esm/session/case/CaseMessenger.js.map +1 -1
  158. package/dist/esm/session/case/CaseServer.js.map +1 -1
  159. package/dist/esm/session/pase/PaseMessages.d.ts +20 -9
  160. package/dist/esm/session/pase/PaseMessages.d.ts.map +1 -1
  161. package/dist/esm/session/pase/PaseMessages.js +3 -3
  162. package/dist/esm/session/pase/PaseMessages.js.map +1 -1
  163. package/dist/esm/session/pase/PaseMessenger.d.ts +3 -51
  164. package/dist/esm/session/pase/PaseMessenger.d.ts.map +1 -1
  165. package/dist/esm/session/pase/PaseMessenger.js.map +1 -1
  166. package/package.json +6 -6
  167. package/src/action/client/ReadScope.ts +7 -0
  168. package/src/ble/Ble.ts +3 -3
  169. package/src/common/Scanner.ts +2 -2
  170. package/src/interaction/AttributeDataDecoder.ts +4 -1
  171. package/src/interaction/DecodedDataReport.ts +1 -0
  172. package/src/interaction/InteractionClient.ts +154 -79
  173. package/src/interaction/InteractionMessenger.ts +126 -22
  174. package/src/interaction/SubscriptionClient.ts +6 -5
  175. package/src/mdns/MdnsClient.ts +33 -23
  176. package/src/mdns/MdnsServer.ts +75 -5
  177. package/src/mdns/MdnsSocket.ts +16 -1
  178. package/src/peer/ControllerCommissioner.ts +10 -7
  179. package/src/peer/OperationalPeer.ts +2 -2
  180. package/src/peer/PeerAddressStore.ts +3 -1
  181. package/src/peer/PeerSet.ts +23 -18
  182. package/src/protocol/ExchangeManager.ts +29 -21
  183. package/src/protocol/MessageChannel.ts +13 -11
  184. package/src/protocol/MessageExchange.ts +6 -18
  185. package/src/session/NodeSession.ts +4 -3
  186. package/src/session/SessionIntervals.ts +1 -1
  187. package/src/session/case/CaseMessages.ts +12 -2
  188. package/src/session/case/CaseMessenger.ts +12 -4
  189. package/src/session/case/CaseServer.ts +5 -5
  190. package/src/session/pase/PaseMessages.ts +27 -3
  191. package/src/session/pase/PaseMessenger.ts +8 -9
@@ -6,6 +6,7 @@
6
6
 
7
7
  import { SupportedTransportsBitmap } from "#common/SupportedTransportsBitmap.js";
8
8
  import { CRYPTO_HASH_LEN_BYTES, CRYPTO_PUBLIC_KEY_SIZE_BYTES } from "#general";
9
+ import { SessionIntervals } from "#session/SessionIntervals.js";
9
10
  import {
10
11
  TlvBitmap,
11
12
  TlvBoolean,
@@ -15,18 +16,19 @@ import {
15
16
  TlvOptionalField,
16
17
  TlvUInt16,
17
18
  TlvUInt32,
19
+ TypeFromSchema,
18
20
  } from "#types";
19
21
 
20
22
  /** @see {@link MatterSpecification.v13.Core} § 4.12.8 */
21
23
  export const TlvSessionParameters = TlvObject({
22
24
  /** Maximum sleep interval of node when in idle mode. */
23
- idleIntervalMs: TlvOptionalField(1, TlvUInt32) /* default: SESSION_IDLE_INTERVAL */,
25
+ idleInterval: TlvOptionalField(1, TlvUInt32) /* default: SESSION_IDLE_INTERVAL */,
24
26
 
25
27
  /** Maximum sleep interval of node when in active mode. */
26
- activeIntervalMs: TlvOptionalField(2, TlvUInt32) /* default: SESSION_ACTIVE_INTERVAL */,
28
+ activeInterval: TlvOptionalField(2, TlvUInt32) /* default: SESSION_ACTIVE_INTERVAL */,
27
29
 
28
30
  /** Minimum amount of time the node SHOULD stay active after network activity. */
29
- activeThresholdMs: TlvOptionalField(3, TlvUInt16) /* default: SESSION_ACTIVE_THRESHOLD */,
31
+ activeThreshold: TlvOptionalField(3, TlvUInt16) /* default: SESSION_ACTIVE_THRESHOLD */,
30
32
 
31
33
  /** Data model revision. */
32
34
  dataModelRevision: TlvOptionalField(4, TlvUInt16) /* default: 16 OR 17, we choose 17 aka Matter 1.2 */,
@@ -47,6 +49,17 @@ export const TlvSessionParameters = TlvObject({
47
49
  maxTcpMessageSize: TlvOptionalField(9, TlvUInt32) /* default: 64000 */,
48
50
  });
49
51
 
52
+ // Replace the interval fields with Duration-typed fields in the exported type
53
+ export type SessionParametersWithDurations = Omit<
54
+ TypeFromSchema<typeof TlvSessionParameters>,
55
+ "activeThreshold" | "activeInterval" | "idleInterval"
56
+ > &
57
+ Partial<SessionIntervals>;
58
+
59
+ export type WithDurationSessionParameters<T, K extends keyof T> = Omit<T, K> & {
60
+ [P in K]?: SessionParametersWithDurations;
61
+ };
62
+
50
63
  /** @see {@link MatterSpecification.v13.Core} § 4.14.1.2 */
51
64
  export const TlvPbkdfParamRequest = TlvObject({
52
65
  initiatorRandom: TlvField(1, TlvByteString.bound({ length: 32 })),
@@ -55,6 +68,10 @@ export const TlvPbkdfParamRequest = TlvObject({
55
68
  hasPbkdfParameters: TlvField(4, TlvBoolean),
56
69
  initiatorSessionParams: TlvOptionalField(5, TlvSessionParameters),
57
70
  });
71
+ export type PbkdfParamRequest = WithDurationSessionParameters<
72
+ TypeFromSchema<typeof TlvPbkdfParamRequest>,
73
+ "initiatorSessionParams"
74
+ >;
58
75
 
59
76
  /** @see {@link MatterSpecification.v13.Core} § 4.14.1.2 */
60
77
  export const TlvPbkdfParamResponse = TlvObject({
@@ -70,19 +87,26 @@ export const TlvPbkdfParamResponse = TlvObject({
70
87
  ),
71
88
  responderSessionParams: TlvOptionalField(5, TlvSessionParameters),
72
89
  });
90
+ export type PbkdfParamResponse = WithDurationSessionParameters<
91
+ TypeFromSchema<typeof TlvPbkdfParamResponse>,
92
+ "responderSessionParams"
93
+ >;
73
94
 
74
95
  /** @see {@link MatterSpecification.v13.Core} § 4.14.1.2 */
75
96
  export const TlvPasePake1 = TlvObject({
76
97
  x: TlvField(1, TlvByteString.bound({ length: CRYPTO_PUBLIC_KEY_SIZE_BYTES })), // pA
77
98
  });
99
+ export type PasePake1 = TypeFromSchema<typeof TlvPasePake1>;
78
100
 
79
101
  /** @see {@link MatterSpecification.v13.Core} § 4.14.1.2 */
80
102
  export const TlvPasePake2 = TlvObject({
81
103
  y: TlvField(1, TlvByteString.bound({ length: CRYPTO_PUBLIC_KEY_SIZE_BYTES })), // pB
82
104
  verifier: TlvField(2, TlvByteString.bound({ length: CRYPTO_HASH_LEN_BYTES })), // cB
83
105
  });
106
+ export type PasePake2 = TypeFromSchema<typeof TlvPasePake2>;
84
107
 
85
108
  /** @see {@link MatterSpecification.v13.Core} § 4.14.1.2 */
86
109
  export const TlvPasePake3 = TlvObject({
87
110
  verifier: TlvField(1, TlvByteString.bound({ length: CRYPTO_HASH_LEN_BYTES })), // cA
88
111
  });
112
+ export type PasePake3 = TypeFromSchema<typeof TlvPasePake3>;
@@ -5,9 +5,14 @@
5
5
  */
6
6
 
7
7
  import { Bytes } from "#general";
8
- import { SecureMessageType, TypeFromSchema } from "#types";
8
+ import { SecureMessageType } from "#types";
9
9
  import { DEFAULT_NORMAL_PROCESSING_TIME, SecureChannelMessenger } from "../../securechannel/SecureChannelMessenger.js";
10
10
  import {
11
+ PasePake1,
12
+ PasePake2,
13
+ PasePake3,
14
+ PbkdfParamRequest,
15
+ PbkdfParamResponse,
11
16
  TlvPasePake1,
12
17
  TlvPasePake2,
13
18
  TlvPasePake3,
@@ -18,16 +23,10 @@ import {
18
23
  export const DEFAULT_PASSCODE_ID = 0;
19
24
  export const SPAKE_CONTEXT = Bytes.fromString("CHIP PAKE V1 Commissioning");
20
25
 
21
- type PbkdfParamRequest = TypeFromSchema<typeof TlvPbkdfParamRequest>;
22
- type PbkdfParamResponse = TypeFromSchema<typeof TlvPbkdfParamResponse>;
23
- type PasePake1 = TypeFromSchema<typeof TlvPasePake1>;
24
- type PasePake2 = TypeFromSchema<typeof TlvPasePake2>;
25
- type PasePake3 = TypeFromSchema<typeof TlvPasePake3>;
26
-
27
26
  export class PaseServerMessenger extends SecureChannelMessenger {
28
27
  async readPbkdfParamRequest() {
29
28
  const { payload } = await this.nextMessage(SecureMessageType.PbkdfParamRequest, DEFAULT_NORMAL_PROCESSING_TIME);
30
- return { requestPayload: payload, request: TlvPbkdfParamRequest.decode(payload) };
29
+ return { requestPayload: payload, request: TlvPbkdfParamRequest.decode(payload) as PbkdfParamRequest };
31
30
  }
32
31
 
33
32
  async sendPbkdfParamResponse(response: PbkdfParamResponse) {
@@ -61,7 +60,7 @@ export class PaseClientMessenger extends SecureChannelMessenger {
61
60
  SecureMessageType.PbkdfParamResponse,
62
61
  DEFAULT_NORMAL_PROCESSING_TIME,
63
62
  );
64
- return { responsePayload: payload, response: TlvPbkdfParamResponse.decode(payload) };
63
+ return { responsePayload: payload, response: TlvPbkdfParamResponse.decode(payload) as PbkdfParamResponse };
65
64
  }
66
65
 
67
66
  sendPasePake1(pasePake1: PasePake1) {