@matter/protocol 0.16.0-alpha.0-20250817-1b000357c → 0.16.0-alpha.0-20250819-0a388db8b

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 (385) hide show
  1. package/dist/cjs/action/Val.d.ts +6 -0
  2. package/dist/cjs/action/Val.d.ts.map +1 -1
  3. package/dist/cjs/action/Val.js.map +1 -1
  4. package/dist/cjs/action/client/ClientInteraction.d.ts +1 -1
  5. package/dist/cjs/action/client/ClientInteraction.d.ts.map +1 -1
  6. package/dist/cjs/action/client/ClientInteraction.js +4 -4
  7. package/dist/cjs/action/client/ClientInteraction.js.map +1 -1
  8. package/dist/cjs/action/client/ClientSubscription.d.ts +2 -1
  9. package/dist/cjs/action/client/ClientSubscription.d.ts.map +1 -1
  10. package/dist/cjs/action/client/ClientSubscriptionHandler.js +2 -2
  11. package/dist/cjs/action/client/ClientSubscriptionHandler.js.map +1 -1
  12. package/dist/cjs/action/client/ClientSubscriptions.d.ts.map +1 -1
  13. package/dist/cjs/action/client/ClientSubscriptions.js +11 -7
  14. package/dist/cjs/action/client/ClientSubscriptions.js.map +1 -1
  15. package/dist/cjs/action/request/Subscribe.d.ts +6 -6
  16. package/dist/cjs/action/request/Subscribe.d.ts.map +1 -1
  17. package/dist/cjs/action/request/Subscribe.js +11 -9
  18. package/dist/cjs/action/request/Subscribe.js.map +1 -1
  19. package/dist/cjs/advertisement/Advertisement.d.ts +3 -3
  20. package/dist/cjs/advertisement/Advertisement.d.ts.map +1 -1
  21. package/dist/cjs/advertisement/Advertisement.js +5 -5
  22. package/dist/cjs/advertisement/Advertisement.js.map +1 -1
  23. package/dist/cjs/advertisement/ble/BleAdvertisement.d.ts.map +1 -1
  24. package/dist/cjs/advertisement/ble/BleAdvertisement.js +7 -6
  25. package/dist/cjs/advertisement/ble/BleAdvertisement.js.map +1 -1
  26. package/dist/cjs/advertisement/ble/BleAdvertiser.d.ts +9 -9
  27. package/dist/cjs/advertisement/ble/BleAdvertiser.d.ts.map +1 -1
  28. package/dist/cjs/advertisement/ble/BleAdvertiser.js +4 -4
  29. package/dist/cjs/advertisement/ble/BleAdvertiser.js.map +1 -1
  30. package/dist/cjs/advertisement/mdns/MdnsAdvertisement.d.ts.map +1 -1
  31. package/dist/cjs/advertisement/mdns/MdnsAdvertisement.js +7 -7
  32. package/dist/cjs/advertisement/mdns/MdnsAdvertisement.js.map +1 -1
  33. package/dist/cjs/advertisement/mdns/MdnsAdvertiser.d.ts +2 -2
  34. package/dist/cjs/advertisement/mdns/MdnsAdvertiser.d.ts.map +1 -1
  35. package/dist/cjs/advertisement/mdns/MdnsAdvertiser.js +4 -4
  36. package/dist/cjs/advertisement/mdns/MdnsAdvertiser.js.map +1 -1
  37. package/dist/cjs/ble/Ble.d.ts +2 -2
  38. package/dist/cjs/ble/Ble.d.ts.map +1 -1
  39. package/dist/cjs/ble/Ble.js.map +1 -1
  40. package/dist/cjs/ble/BleConsts.d.ts +4 -4
  41. package/dist/cjs/ble/BleConsts.d.ts.map +1 -1
  42. package/dist/cjs/ble/BleConsts.js +7 -7
  43. package/dist/cjs/ble/BleConsts.js.map +1 -1
  44. package/dist/cjs/ble/BtpSessionHandler.js +2 -2
  45. package/dist/cjs/ble/BtpSessionHandler.js.map +1 -1
  46. package/dist/cjs/certificate/AttestationCertificateManager.js +3 -3
  47. package/dist/cjs/certificate/AttestationCertificateManager.js.map +1 -1
  48. package/dist/cjs/certificate/CertificateAuthority.js +2 -2
  49. package/dist/cjs/certificate/CertificateAuthority.js.map +1 -1
  50. package/dist/cjs/certificate/kinds/OperationalBase.js +2 -2
  51. package/dist/cjs/certificate/kinds/OperationalBase.js.map +1 -1
  52. package/dist/cjs/cluster/client/ClusterClient.js +5 -5
  53. package/dist/cjs/cluster/client/ClusterClient.js.map +1 -1
  54. package/dist/cjs/cluster/client/ClusterClientTypes.d.ts +3 -3
  55. package/dist/cjs/cluster/client/ClusterClientTypes.d.ts.map +1 -1
  56. package/dist/cjs/cluster/client/EventClient.d.ts +2 -1
  57. package/dist/cjs/cluster/client/EventClient.d.ts.map +1 -1
  58. package/dist/cjs/cluster/client/EventClient.js +3 -3
  59. package/dist/cjs/cluster/client/EventClient.js.map +1 -1
  60. package/dist/cjs/common/FailsafeContext.d.ts +4 -4
  61. package/dist/cjs/common/FailsafeContext.d.ts.map +1 -1
  62. package/dist/cjs/common/FailsafeContext.js +8 -8
  63. package/dist/cjs/common/FailsafeContext.js.map +1 -1
  64. package/dist/cjs/common/FailsafeTimer.d.ts +3 -3
  65. package/dist/cjs/common/FailsafeTimer.d.ts.map +1 -1
  66. package/dist/cjs/common/FailsafeTimer.js +8 -8
  67. package/dist/cjs/common/FailsafeTimer.js.map +1 -1
  68. package/dist/cjs/common/Scanner.d.ts +7 -7
  69. package/dist/cjs/common/Scanner.d.ts.map +1 -1
  70. package/dist/cjs/common/Scanner.js.map +1 -1
  71. package/dist/cjs/events/OccurrenceManager.js +1 -1
  72. package/dist/cjs/events/OccurrenceManager.js.map +1 -1
  73. package/dist/cjs/groups/FabricGroups.d.ts +1 -1
  74. package/dist/cjs/groups/FabricGroups.js +1 -1
  75. package/dist/cjs/groups/Groups.d.ts +1 -1
  76. package/dist/cjs/groups/KeySets.d.ts +3 -3
  77. package/dist/cjs/groups/KeySets.d.ts.map +1 -1
  78. package/dist/cjs/groups/KeySets.js +12 -4
  79. package/dist/cjs/groups/KeySets.js.map +1 -1
  80. package/dist/cjs/interaction/InteractionClient.d.ts +9 -9
  81. package/dist/cjs/interaction/InteractionClient.d.ts.map +1 -1
  82. package/dist/cjs/interaction/InteractionClient.js +33 -33
  83. package/dist/cjs/interaction/InteractionClient.js.map +1 -1
  84. package/dist/cjs/interaction/InteractionMessenger.d.ts +10 -10
  85. package/dist/cjs/interaction/InteractionMessenger.d.ts.map +1 -1
  86. package/dist/cjs/interaction/InteractionMessenger.js +15 -15
  87. package/dist/cjs/interaction/InteractionMessenger.js.map +1 -1
  88. package/dist/cjs/interaction/Subscription.d.ts +3 -4
  89. package/dist/cjs/interaction/Subscription.d.ts.map +1 -1
  90. package/dist/cjs/interaction/Subscription.js +9 -12
  91. package/dist/cjs/interaction/Subscription.js.map +1 -1
  92. package/dist/cjs/interaction/SubscriptionClient.d.ts +3 -3
  93. package/dist/cjs/interaction/SubscriptionClient.d.ts.map +1 -1
  94. package/dist/cjs/interaction/SubscriptionClient.js +3 -3
  95. package/dist/cjs/interaction/SubscriptionClient.js.map +1 -1
  96. package/dist/cjs/mdns/MdnsClient.d.ts +9 -9
  97. package/dist/cjs/mdns/MdnsClient.d.ts.map +1 -1
  98. package/dist/cjs/mdns/MdnsClient.js +86 -82
  99. package/dist/cjs/mdns/MdnsClient.js.map +1 -1
  100. package/dist/cjs/mdns/MdnsServer.d.ts.map +1 -1
  101. package/dist/cjs/mdns/MdnsServer.js +11 -9
  102. package/dist/cjs/mdns/MdnsServer.js.map +1 -1
  103. package/dist/cjs/peer/ControllerCommissioner.d.ts +2 -2
  104. package/dist/cjs/peer/ControllerCommissioner.d.ts.map +1 -1
  105. package/dist/cjs/peer/ControllerCommissioner.js +7 -7
  106. package/dist/cjs/peer/ControllerCommissioner.js.map +1 -1
  107. package/dist/cjs/peer/ControllerCommissioningFlow.d.ts.map +1 -1
  108. package/dist/cjs/peer/ControllerCommissioningFlow.js +37 -35
  109. package/dist/cjs/peer/ControllerCommissioningFlow.js.map +1 -1
  110. package/dist/cjs/peer/ControllerDiscovery.d.ts +4 -4
  111. package/dist/cjs/peer/ControllerDiscovery.d.ts.map +1 -1
  112. package/dist/cjs/peer/ControllerDiscovery.js +12 -17
  113. package/dist/cjs/peer/ControllerDiscovery.js.map +1 -1
  114. package/dist/cjs/peer/InteractionQueue.d.ts.map +1 -1
  115. package/dist/cjs/peer/InteractionQueue.js +2 -2
  116. package/dist/cjs/peer/InteractionQueue.js.map +1 -1
  117. package/dist/cjs/peer/PeerSet.d.ts +2 -2
  118. package/dist/cjs/peer/PeerSet.d.ts.map +1 -1
  119. package/dist/cjs/peer/PeerSet.js +25 -25
  120. package/dist/cjs/peer/PeerSet.js.map +1 -1
  121. package/dist/cjs/protocol/DeviceCommissioner.d.ts.map +1 -1
  122. package/dist/cjs/protocol/DeviceCommissioner.js +1 -1
  123. package/dist/cjs/protocol/DeviceCommissioner.js.map +1 -1
  124. package/dist/cjs/protocol/ExchangeManager.d.ts +1 -1
  125. package/dist/cjs/protocol/ExchangeManager.d.ts.map +1 -1
  126. package/dist/cjs/protocol/ExchangeManager.js +2 -5
  127. package/dist/cjs/protocol/ExchangeManager.js.map +1 -1
  128. package/dist/cjs/protocol/ExchangeProvider.d.ts +4 -4
  129. package/dist/cjs/protocol/ExchangeProvider.d.ts.map +1 -1
  130. package/dist/cjs/protocol/ExchangeProvider.js +3 -3
  131. package/dist/cjs/protocol/ExchangeProvider.js.map +1 -1
  132. package/dist/cjs/protocol/MessageChannel.d.ts +5 -5
  133. package/dist/cjs/protocol/MessageChannel.d.ts.map +1 -1
  134. package/dist/cjs/protocol/MessageChannel.js +19 -15
  135. package/dist/cjs/protocol/MessageChannel.js.map +1 -1
  136. package/dist/cjs/protocol/MessageExchange.d.ts +6 -6
  137. package/dist/cjs/protocol/MessageExchange.d.ts.map +1 -1
  138. package/dist/cjs/protocol/MessageExchange.js +35 -33
  139. package/dist/cjs/protocol/MessageExchange.js.map +1 -1
  140. package/dist/cjs/securechannel/SecureChannelMessenger.d.ts +8 -8
  141. package/dist/cjs/securechannel/SecureChannelMessenger.d.ts.map +1 -1
  142. package/dist/cjs/securechannel/SecureChannelMessenger.js +17 -17
  143. package/dist/cjs/securechannel/SecureChannelMessenger.js.map +1 -1
  144. package/dist/cjs/session/NodeSession.js +3 -3
  145. package/dist/cjs/session/Session.d.ts +7 -7
  146. package/dist/cjs/session/Session.d.ts.map +1 -1
  147. package/dist/cjs/session/Session.js +19 -19
  148. package/dist/cjs/session/Session.js.map +1 -1
  149. package/dist/cjs/session/SessionIntervals.d.ts +7 -6
  150. package/dist/cjs/session/SessionIntervals.d.ts.map +1 -1
  151. package/dist/cjs/session/SessionIntervals.js +8 -8
  152. package/dist/cjs/session/SessionIntervals.js.map +1 -1
  153. package/dist/cjs/session/SessionManager.d.ts +2 -2
  154. package/dist/cjs/session/SessionManager.d.ts.map +1 -1
  155. package/dist/cjs/session/SessionManager.js +6 -6
  156. package/dist/cjs/session/SessionManager.js.map +1 -1
  157. package/dist/cjs/session/case/CaseClient.d.ts +2 -1
  158. package/dist/cjs/session/case/CaseClient.d.ts.map +1 -1
  159. package/dist/cjs/session/case/CaseClient.js +2 -2
  160. package/dist/cjs/session/case/CaseClient.js.map +1 -1
  161. package/dist/cjs/session/pase/PaseMessenger.d.ts.map +1 -1
  162. package/dist/cjs/session/pase/PaseMessenger.js +4 -7
  163. package/dist/cjs/session/pase/PaseMessenger.js.map +1 -1
  164. package/dist/cjs/session/pase/PaseServer.d.ts.map +1 -1
  165. package/dist/cjs/session/pase/PaseServer.js +1 -1
  166. package/dist/cjs/session/pase/PaseServer.js.map +1 -1
  167. package/dist/esm/action/Val.d.ts +6 -0
  168. package/dist/esm/action/Val.d.ts.map +1 -1
  169. package/dist/esm/action/Val.js.map +1 -1
  170. package/dist/esm/action/client/ClientInteraction.d.ts +1 -1
  171. package/dist/esm/action/client/ClientInteraction.d.ts.map +1 -1
  172. package/dist/esm/action/client/ClientInteraction.js +5 -5
  173. package/dist/esm/action/client/ClientInteraction.js.map +1 -1
  174. package/dist/esm/action/client/ClientSubscription.d.ts +2 -1
  175. package/dist/esm/action/client/ClientSubscription.d.ts.map +1 -1
  176. package/dist/esm/action/client/ClientSubscriptionHandler.js +2 -2
  177. package/dist/esm/action/client/ClientSubscriptionHandler.js.map +1 -1
  178. package/dist/esm/action/client/ClientSubscriptions.d.ts.map +1 -1
  179. package/dist/esm/action/client/ClientSubscriptions.js +14 -8
  180. package/dist/esm/action/client/ClientSubscriptions.js.map +1 -1
  181. package/dist/esm/action/request/Subscribe.d.ts +6 -6
  182. package/dist/esm/action/request/Subscribe.d.ts.map +1 -1
  183. package/dist/esm/action/request/Subscribe.js +12 -10
  184. package/dist/esm/action/request/Subscribe.js.map +1 -1
  185. package/dist/esm/advertisement/Advertisement.d.ts +3 -3
  186. package/dist/esm/advertisement/Advertisement.d.ts.map +1 -1
  187. package/dist/esm/advertisement/Advertisement.js +16 -7
  188. package/dist/esm/advertisement/Advertisement.js.map +1 -1
  189. package/dist/esm/advertisement/ble/BleAdvertisement.d.ts.map +1 -1
  190. package/dist/esm/advertisement/ble/BleAdvertisement.js +7 -6
  191. package/dist/esm/advertisement/ble/BleAdvertisement.js.map +1 -1
  192. package/dist/esm/advertisement/ble/BleAdvertiser.d.ts +9 -9
  193. package/dist/esm/advertisement/ble/BleAdvertiser.d.ts.map +1 -1
  194. package/dist/esm/advertisement/ble/BleAdvertiser.js +6 -6
  195. package/dist/esm/advertisement/ble/BleAdvertiser.js.map +1 -1
  196. package/dist/esm/advertisement/mdns/MdnsAdvertisement.d.ts.map +1 -1
  197. package/dist/esm/advertisement/mdns/MdnsAdvertisement.js +17 -8
  198. package/dist/esm/advertisement/mdns/MdnsAdvertisement.js.map +1 -1
  199. package/dist/esm/advertisement/mdns/MdnsAdvertiser.d.ts +2 -2
  200. package/dist/esm/advertisement/mdns/MdnsAdvertiser.d.ts.map +1 -1
  201. package/dist/esm/advertisement/mdns/MdnsAdvertiser.js +14 -6
  202. package/dist/esm/advertisement/mdns/MdnsAdvertiser.js.map +1 -1
  203. package/dist/esm/ble/Ble.d.ts +2 -2
  204. package/dist/esm/ble/Ble.d.ts.map +1 -1
  205. package/dist/esm/ble/Ble.js +5 -1
  206. package/dist/esm/ble/Ble.js.map +1 -1
  207. package/dist/esm/ble/BleConsts.d.ts +4 -4
  208. package/dist/esm/ble/BleConsts.d.ts.map +1 -1
  209. package/dist/esm/ble/BleConsts.js +8 -8
  210. package/dist/esm/ble/BleConsts.js.map +1 -1
  211. package/dist/esm/ble/BtpSessionHandler.js +4 -4
  212. package/dist/esm/ble/BtpSessionHandler.js.map +1 -1
  213. package/dist/esm/certificate/AttestationCertificateManager.js +3 -3
  214. package/dist/esm/certificate/AttestationCertificateManager.js.map +1 -1
  215. package/dist/esm/certificate/CertificateAuthority.js +2 -2
  216. package/dist/esm/certificate/CertificateAuthority.js.map +1 -1
  217. package/dist/esm/certificate/kinds/OperationalBase.js +2 -2
  218. package/dist/esm/certificate/kinds/OperationalBase.js.map +1 -1
  219. package/dist/esm/cluster/client/ClusterClient.js +5 -5
  220. package/dist/esm/cluster/client/ClusterClient.js.map +1 -1
  221. package/dist/esm/cluster/client/ClusterClientTypes.d.ts +3 -3
  222. package/dist/esm/cluster/client/ClusterClientTypes.d.ts.map +1 -1
  223. package/dist/esm/cluster/client/EventClient.d.ts +2 -1
  224. package/dist/esm/cluster/client/EventClient.d.ts.map +1 -1
  225. package/dist/esm/cluster/client/EventClient.js +3 -3
  226. package/dist/esm/cluster/client/EventClient.js.map +1 -1
  227. package/dist/esm/common/FailsafeContext.d.ts +4 -4
  228. package/dist/esm/common/FailsafeContext.d.ts.map +1 -1
  229. package/dist/esm/common/FailsafeContext.js +9 -8
  230. package/dist/esm/common/FailsafeContext.js.map +1 -1
  231. package/dist/esm/common/FailsafeTimer.d.ts +3 -3
  232. package/dist/esm/common/FailsafeTimer.d.ts.map +1 -1
  233. package/dist/esm/common/FailsafeTimer.js +8 -8
  234. package/dist/esm/common/FailsafeTimer.js.map +1 -1
  235. package/dist/esm/common/Scanner.d.ts +7 -7
  236. package/dist/esm/common/Scanner.d.ts.map +1 -1
  237. package/dist/esm/common/Scanner.js +5 -1
  238. package/dist/esm/common/Scanner.js.map +1 -1
  239. package/dist/esm/events/OccurrenceManager.js +1 -1
  240. package/dist/esm/events/OccurrenceManager.js.map +1 -1
  241. package/dist/esm/groups/FabricGroups.d.ts +1 -1
  242. package/dist/esm/groups/FabricGroups.js +1 -1
  243. package/dist/esm/groups/Groups.d.ts +1 -1
  244. package/dist/esm/groups/KeySets.d.ts +3 -3
  245. package/dist/esm/groups/KeySets.d.ts.map +1 -1
  246. package/dist/esm/groups/KeySets.js +13 -5
  247. package/dist/esm/groups/KeySets.js.map +1 -1
  248. package/dist/esm/interaction/InteractionClient.d.ts +9 -9
  249. package/dist/esm/interaction/InteractionClient.d.ts.map +1 -1
  250. package/dist/esm/interaction/InteractionClient.js +34 -33
  251. package/dist/esm/interaction/InteractionClient.js.map +1 -1
  252. package/dist/esm/interaction/InteractionMessenger.d.ts +10 -10
  253. package/dist/esm/interaction/InteractionMessenger.d.ts.map +1 -1
  254. package/dist/esm/interaction/InteractionMessenger.js +16 -15
  255. package/dist/esm/interaction/InteractionMessenger.js.map +1 -1
  256. package/dist/esm/interaction/Subscription.d.ts +3 -4
  257. package/dist/esm/interaction/Subscription.d.ts.map +1 -1
  258. package/dist/esm/interaction/Subscription.js +9 -12
  259. package/dist/esm/interaction/Subscription.js.map +1 -1
  260. package/dist/esm/interaction/SubscriptionClient.d.ts +3 -3
  261. package/dist/esm/interaction/SubscriptionClient.d.ts.map +1 -1
  262. package/dist/esm/interaction/SubscriptionClient.js +4 -4
  263. package/dist/esm/interaction/SubscriptionClient.js.map +1 -1
  264. package/dist/esm/mdns/MdnsClient.d.ts +9 -9
  265. package/dist/esm/mdns/MdnsClient.d.ts.map +1 -1
  266. package/dist/esm/mdns/MdnsClient.js +94 -82
  267. package/dist/esm/mdns/MdnsClient.js.map +1 -1
  268. package/dist/esm/mdns/MdnsServer.d.ts.map +1 -1
  269. package/dist/esm/mdns/MdnsServer.js +14 -9
  270. package/dist/esm/mdns/MdnsServer.js.map +1 -1
  271. package/dist/esm/peer/ControllerCommissioner.d.ts +2 -2
  272. package/dist/esm/peer/ControllerCommissioner.d.ts.map +1 -1
  273. package/dist/esm/peer/ControllerCommissioner.js +11 -8
  274. package/dist/esm/peer/ControllerCommissioner.js.map +1 -1
  275. package/dist/esm/peer/ControllerCommissioningFlow.d.ts.map +1 -1
  276. package/dist/esm/peer/ControllerCommissioningFlow.js +44 -35
  277. package/dist/esm/peer/ControllerCommissioningFlow.js.map +1 -1
  278. package/dist/esm/peer/ControllerDiscovery.d.ts +4 -4
  279. package/dist/esm/peer/ControllerDiscovery.d.ts.map +1 -1
  280. package/dist/esm/peer/ControllerDiscovery.js +20 -18
  281. package/dist/esm/peer/ControllerDiscovery.js.map +1 -1
  282. package/dist/esm/peer/InteractionQueue.d.ts.map +1 -1
  283. package/dist/esm/peer/InteractionQueue.js +3 -3
  284. package/dist/esm/peer/InteractionQueue.js.map +1 -1
  285. package/dist/esm/peer/PeerSet.d.ts +2 -2
  286. package/dist/esm/peer/PeerSet.d.ts.map +1 -1
  287. package/dist/esm/peer/PeerSet.js +29 -26
  288. package/dist/esm/peer/PeerSet.js.map +1 -1
  289. package/dist/esm/protocol/DeviceCommissioner.d.ts.map +1 -1
  290. package/dist/esm/protocol/DeviceCommissioner.js +2 -2
  291. package/dist/esm/protocol/DeviceCommissioner.js.map +1 -1
  292. package/dist/esm/protocol/ExchangeManager.d.ts +1 -1
  293. package/dist/esm/protocol/ExchangeManager.d.ts.map +1 -1
  294. package/dist/esm/protocol/ExchangeManager.js +3 -6
  295. package/dist/esm/protocol/ExchangeManager.js.map +1 -1
  296. package/dist/esm/protocol/ExchangeProvider.d.ts +4 -4
  297. package/dist/esm/protocol/ExchangeProvider.d.ts.map +1 -1
  298. package/dist/esm/protocol/ExchangeProvider.js +4 -4
  299. package/dist/esm/protocol/ExchangeProvider.js.map +1 -1
  300. package/dist/esm/protocol/MessageChannel.d.ts +5 -5
  301. package/dist/esm/protocol/MessageChannel.d.ts.map +1 -1
  302. package/dist/esm/protocol/MessageChannel.js +20 -16
  303. package/dist/esm/protocol/MessageChannel.js.map +1 -1
  304. package/dist/esm/protocol/MessageExchange.d.ts +6 -6
  305. package/dist/esm/protocol/MessageExchange.d.ts.map +1 -1
  306. package/dist/esm/protocol/MessageExchange.js +39 -34
  307. package/dist/esm/protocol/MessageExchange.js.map +1 -1
  308. package/dist/esm/securechannel/SecureChannelMessenger.d.ts +8 -8
  309. package/dist/esm/securechannel/SecureChannelMessenger.d.ts.map +1 -1
  310. package/dist/esm/securechannel/SecureChannelMessenger.js +18 -18
  311. package/dist/esm/securechannel/SecureChannelMessenger.js.map +1 -1
  312. package/dist/esm/session/NodeSession.js +3 -3
  313. package/dist/esm/session/Session.d.ts +7 -7
  314. package/dist/esm/session/Session.d.ts.map +1 -1
  315. package/dist/esm/session/Session.js +27 -20
  316. package/dist/esm/session/Session.js.map +1 -1
  317. package/dist/esm/session/SessionIntervals.d.ts +7 -6
  318. package/dist/esm/session/SessionIntervals.d.ts.map +1 -1
  319. package/dist/esm/session/SessionIntervals.js +8 -8
  320. package/dist/esm/session/SessionIntervals.js.map +1 -1
  321. package/dist/esm/session/SessionManager.d.ts +2 -2
  322. package/dist/esm/session/SessionManager.d.ts.map +1 -1
  323. package/dist/esm/session/SessionManager.js +6 -6
  324. package/dist/esm/session/SessionManager.js.map +1 -1
  325. package/dist/esm/session/case/CaseClient.d.ts +2 -1
  326. package/dist/esm/session/case/CaseClient.d.ts.map +1 -1
  327. package/dist/esm/session/case/CaseClient.js +2 -2
  328. package/dist/esm/session/case/CaseClient.js.map +1 -1
  329. package/dist/esm/session/pase/PaseMessenger.d.ts.map +1 -1
  330. package/dist/esm/session/pase/PaseMessenger.js +5 -11
  331. package/dist/esm/session/pase/PaseMessenger.js.map +1 -1
  332. package/dist/esm/session/pase/PaseServer.d.ts.map +1 -1
  333. package/dist/esm/session/pase/PaseServer.js +2 -1
  334. package/dist/esm/session/pase/PaseServer.js.map +1 -1
  335. package/package.json +6 -6
  336. package/src/action/Val.ts +5 -0
  337. package/src/action/client/ClientInteraction.ts +4 -4
  338. package/src/action/client/ClientSubscription.ts +2 -1
  339. package/src/action/client/ClientSubscriptionHandler.ts +2 -2
  340. package/src/action/client/ClientSubscriptions.ts +14 -8
  341. package/src/action/request/Subscribe.ts +17 -15
  342. package/src/advertisement/Advertisement.ts +18 -8
  343. package/src/advertisement/ble/BleAdvertisement.ts +7 -6
  344. package/src/advertisement/ble/BleAdvertiser.ts +10 -10
  345. package/src/advertisement/mdns/MdnsAdvertisement.ts +20 -9
  346. package/src/advertisement/mdns/MdnsAdvertiser.ts +17 -7
  347. package/src/ble/Ble.ts +11 -2
  348. package/src/ble/BleConsts.ts +5 -5
  349. package/src/ble/BtpSessionHandler.ts +4 -4
  350. package/src/certificate/AttestationCertificateManager.ts +3 -3
  351. package/src/certificate/CertificateAuthority.ts +2 -2
  352. package/src/certificate/kinds/OperationalBase.ts +3 -3
  353. package/src/cluster/client/ClusterClient.ts +8 -8
  354. package/src/cluster/client/ClusterClientTypes.ts +3 -3
  355. package/src/cluster/client/EventClient.ts +5 -5
  356. package/src/common/FailsafeContext.ts +11 -13
  357. package/src/common/FailsafeTimer.ts +11 -13
  358. package/src/common/Scanner.ts +16 -7
  359. package/src/events/OccurrenceManager.ts +1 -1
  360. package/src/groups/FabricGroups.ts +1 -1
  361. package/src/groups/KeySets.ts +14 -6
  362. package/src/interaction/InteractionClient.ts +46 -44
  363. package/src/interaction/InteractionMessenger.ts +24 -22
  364. package/src/interaction/Subscription.ts +10 -14
  365. package/src/interaction/SubscriptionClient.ts +6 -6
  366. package/src/mdns/MdnsClient.ts +105 -82
  367. package/src/mdns/MdnsServer.ts +14 -9
  368. package/src/peer/ControllerCommissioner.ts +12 -9
  369. package/src/peer/ControllerCommissioningFlow.ts +48 -39
  370. package/src/peer/ControllerDiscovery.ts +22 -18
  371. package/src/peer/InteractionQueue.ts +3 -3
  372. package/src/peer/PeerSet.ts +34 -28
  373. package/src/protocol/DeviceCommissioner.ts +2 -2
  374. package/src/protocol/ExchangeManager.ts +3 -6
  375. package/src/protocol/ExchangeProvider.ts +6 -6
  376. package/src/protocol/MessageChannel.ts +26 -21
  377. package/src/protocol/MessageExchange.ts +42 -38
  378. package/src/securechannel/SecureChannelMessenger.ts +16 -22
  379. package/src/session/NodeSession.ts +3 -3
  380. package/src/session/Session.ts +31 -21
  381. package/src/session/SessionIntervals.ts +11 -11
  382. package/src/session/SessionManager.ts +10 -9
  383. package/src/session/case/CaseClient.ts +3 -3
  384. package/src/session/pase/PaseMessenger.ts +5 -11
  385. package/src/session/pase/PaseServer.ts +2 -1
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- import { capitalize, Diagnostic, ImplementationError, Logger, Merge } from "#general";
7
+ import { capitalize, Diagnostic, Duration, ImplementationError, Logger, Merge } from "#general";
8
8
  import {
9
9
  Attribute,
10
10
  AttributeId,
@@ -387,16 +387,16 @@ export function ClusterClient<const T extends ClusterType>(
387
387
  request: RequestT,
388
388
  options: {
389
389
  asTimedRequest?: boolean;
390
- timedRequestTimeoutMs?: number;
391
- expectedProcessingTimeMs?: number;
390
+ timedRequestTimeout?: Duration;
391
+ expectedProcessingTime?: Duration;
392
392
  useExtendedFailSafeMessageResponseTimeout?: boolean;
393
393
  } = {},
394
394
  ) => {
395
395
  const {
396
396
  asTimedRequest,
397
- timedRequestTimeoutMs,
397
+ timedRequestTimeout,
398
398
  useExtendedFailSafeMessageResponseTimeout,
399
- expectedProcessingTimeMs,
399
+ expectedProcessingTime,
400
400
  } = options;
401
401
  if (isGroupAddress) {
402
402
  return interactionClient.invokeWithSuppressedResponse<Command<RequestT, ResponseT, any>>({
@@ -404,7 +404,7 @@ export function ClusterClient<const T extends ClusterType>(
404
404
  command: commandDef[commandName],
405
405
  request,
406
406
  asTimedRequest,
407
- timedRequestTimeoutMs,
407
+ timedRequestTimeout,
408
408
  });
409
409
  }
410
410
  return interactionClient.invoke<Command<RequestT, ResponseT, any>>({
@@ -413,8 +413,8 @@ export function ClusterClient<const T extends ClusterType>(
413
413
  command: commandDef[commandName],
414
414
  request,
415
415
  asTimedRequest,
416
- timedRequestTimeoutMs,
417
- expectedProcessingTimeMs,
416
+ timedRequestTimeout,
417
+ expectedProcessingTime,
418
418
  useExtendedFailSafeMessageResponseTimeout,
419
419
  });
420
420
  };
@@ -3,7 +3,7 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { Merge } from "#general";
6
+ import { Duration, Merge } from "#general";
7
7
  import {
8
8
  Attribute,
9
9
  AttributeId,
@@ -63,13 +63,13 @@ export type SignatureFromCommandSpec<C extends Command<any, any, any>> = (
63
63
  asTimedRequest?: boolean;
64
64
 
65
65
  /** Override the request timeout when the command is sent as times request. Default are 10s. */
66
- timedRequestTimeoutMs?: number;
66
+ timedRequestTimeout?: Duration;
67
67
 
68
68
  /**
69
69
  * Expected processing time on the device side for this command.
70
70
  * useExtendedFailSafeMessageResponseTimeout is ignored if this value is set.
71
71
  */
72
- expectedProcessingTimeMs?: number;
72
+ expectedProcessingTime?: Duration;
73
73
 
74
74
  /**
75
75
  * Use the extended fail-safe message response timeout of 30 seconds. Use this for all commands
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- import { ImplementationError } from "#general";
7
+ import { Duration, ImplementationError } from "#general";
8
8
  import { ClusterId, EndpointNumber, Event, EventId, EventNumber } from "#types";
9
9
  import { DecodedEventData } from "../../interaction/EventDataDecoder.js";
10
10
  import { InteractionClient } from "../../interaction/InteractionClient.js";
@@ -58,8 +58,8 @@ export class EventClient<T> {
58
58
  }
59
59
 
60
60
  async subscribe(
61
- minIntervalFloorSeconds: number,
62
- maxIntervalCeilingSeconds: number,
61
+ minIntervalFloor: Duration,
62
+ maxIntervalCeiling: Duration,
63
63
  isUrgent = true,
64
64
  minimumEventNumber?: EventNumber,
65
65
  isFabricFiltered?: boolean,
@@ -71,8 +71,8 @@ export class EventClient<T> {
71
71
  endpointId: this.endpointId,
72
72
  clusterId: this.clusterId,
73
73
  event: this.event,
74
- minIntervalFloorSeconds,
75
- maxIntervalCeilingSeconds,
74
+ minIntervalFloor,
75
+ maxIntervalCeiling,
76
76
  isUrgent,
77
77
  minimumEventNumber,
78
78
  isFabricFiltered,
@@ -8,6 +8,7 @@ import {
8
8
  AsyncObservable,
9
9
  Bytes,
10
10
  Construction,
11
+ Duration,
11
12
  Logger,
12
13
  MatterFlowError,
13
14
  UnexpectedDataError,
@@ -46,7 +47,7 @@ export abstract class FailsafeContext {
46
47
  #commissioned = AsyncObservable<[], void>();
47
48
 
48
49
  constructor(options: FailsafeContext.Options) {
49
- const { expiryLengthSeconds, associatedFabric, maxCumulativeFailsafeSeconds } = options;
50
+ const { expiryLength, associatedFabric, maxCumulativeFailsafe } = options;
50
51
 
51
52
  this.#sessions = options.sessions;
52
53
  this.#fabrics = options.fabrics;
@@ -61,21 +62,18 @@ export abstract class FailsafeContext {
61
62
 
62
63
  // If ExpiryLengthSeconds is non-zero and the fail-safe timer was not currently armed, then the fail-safe
63
64
  // timer SHALL be armed for that duration.
64
- this.#failsafe = new FailsafeTimer(
65
- associatedFabric,
66
- expiryLengthSeconds,
67
- maxCumulativeFailsafeSeconds,
68
- () => this.#failSafeExpired(),
65
+ this.#failsafe = new FailsafeTimer(associatedFabric, expiryLength, maxCumulativeFailsafe, () =>
66
+ this.#failSafeExpired(),
69
67
  );
70
- logger.debug(`Arm failSafe timer for ${expiryLengthSeconds}s.`);
68
+ logger.debug(`Arm failSafe timer for ${Duration.format(expiryLength)}`);
71
69
  });
72
70
  }
73
71
 
74
- async extend(fabric: Fabric | undefined, expiryLengthSeconds: number) {
72
+ async extend(fabric: Fabric | undefined, expiryLength: Duration) {
75
73
  await this.#construction;
76
- await this.#failsafe?.reArm(fabric, expiryLengthSeconds);
77
- if (expiryLengthSeconds > 0) {
78
- logger.debug(`Extend failSafe timer for ${expiryLengthSeconds}s.`);
74
+ await this.#failsafe?.reArm(fabric, expiryLength);
75
+ if (expiryLength > 0) {
76
+ logger.debug(`Extend failSafe timer for ${Duration.format(expiryLength)}`);
79
77
  }
80
78
  }
81
79
 
@@ -341,8 +339,8 @@ export namespace FailsafeContext {
341
339
  export interface Options {
342
340
  sessions: SessionManager;
343
341
  fabrics: FabricManager;
344
- expiryLengthSeconds: number;
345
- maxCumulativeFailsafeSeconds: number;
342
+ expiryLength: Duration;
343
+ maxCumulativeFailsafe: Duration;
346
344
  associatedFabric: Fabric | undefined;
347
345
  }
348
346
  }
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- import { Logger, MatterFlowError, Time, Timer } from "#general";
7
+ import { Duration, Logger, MatterFlowError, Time, Timer } from "#general";
8
8
  import { Fabric } from "../fabric/Fabric.js";
9
9
  import type { FailsafeContext } from "./FailsafeContext.js";
10
10
 
@@ -22,16 +22,14 @@ export class FailsafeTimer {
22
22
 
23
23
  constructor(
24
24
  public associatedFabric: Fabric | undefined,
25
- expiryLengthSeconds: number,
26
- maxCumulativeFailsafeSeconds: number,
25
+ expiryLength: Duration,
26
+ maxCumulativeFailsafe: Duration,
27
27
  expiryCallback: () => Promise<void>,
28
28
  ) {
29
29
  this.#expiryCallback = expiryCallback;
30
- this.#failsafeTimer = this.#startFailsafeTimer(expiryLengthSeconds);
31
- this.#maxCumulativeFailsafeTimer = Time.getTimer(
32
- "Max cumulative failsafe",
33
- maxCumulativeFailsafeSeconds * 1000,
34
- () => this.expire(),
30
+ this.#failsafeTimer = this.#startFailsafeTimer(expiryLength);
31
+ this.#maxCumulativeFailsafeTimer = Time.getTimer("Max cumulative failsafe", maxCumulativeFailsafe, () =>
32
+ this.expire(),
35
33
  ).start();
36
34
  }
37
35
 
@@ -45,7 +43,7 @@ export class FailsafeTimer {
45
43
  }
46
44
 
47
45
  /** Handle "Re-Arming" an existing FailSafe context to extend the timer, expire or fail if not allowed. */
48
- async reArm(associatedFabric: Fabric | undefined, expiryLengthSeconds: number) {
46
+ async reArm(associatedFabric: Fabric | undefined, expiry: Duration) {
49
47
  if (!this.#failsafeTimer.isRunning) {
50
48
  throw new MatterFlowError("FailSafe already expired.");
51
49
  }
@@ -58,7 +56,7 @@ export class FailsafeTimer {
58
56
 
59
57
  this.#failsafeTimer.stop();
60
58
 
61
- if (expiryLengthSeconds === 0) {
59
+ if (expiry === 0) {
62
60
  // If ExpiryLengthSeconds is 0 and the fail-safe timer was already armed and the accessing fabric matches
63
61
  // the Fabric currently associated with the fail-safe context, then the fail-safe timer SHALL be
64
62
  // immediately expired (see further below for side-effects of expiration).
@@ -67,7 +65,7 @@ export class FailsafeTimer {
67
65
  // If ExpiryLengthSeconds is non-zero and the fail-safe timer was currently armed, and the accessing Fabric
68
66
  // matches the fail-safe context’s associated Fabric, then the fail-safe timer SHALL be re- armed to expire
69
67
  // in ExpiryLengthSeconds.
70
- this.#failsafeTimer = this.#startFailsafeTimer(expiryLengthSeconds);
68
+ this.#failsafeTimer = this.#startFailsafeTimer(expiry);
71
69
  }
72
70
  }
73
71
 
@@ -83,8 +81,8 @@ export class FailsafeTimer {
83
81
  this.#maxCumulativeFailsafeTimer.stop();
84
82
  }
85
83
 
86
- #startFailsafeTimer(expiryLengthSeconds: number) {
87
- return Time.getTimer("Failsafe expiration", expiryLengthSeconds * 1000, () =>
84
+ #startFailsafeTimer(expiry: Duration) {
85
+ return Time.getTimer("Failsafe expiration", expiry, () =>
88
86
  this.expire().catch(e => logger.error("Error during failsafe expiration", e)),
89
87
  ).start();
90
88
  }
@@ -4,7 +4,16 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- import { BasicSet, ChannelType, Environment, Environmental, Lifespan, ServerAddress, ServerAddressIp } from "#general";
7
+ import {
8
+ BasicSet,
9
+ ChannelType,
10
+ Duration,
11
+ Environment,
12
+ Environmental,
13
+ Lifespan,
14
+ ServerAddress,
15
+ ServerAddressIp,
16
+ } from "#general";
8
17
  import { DiscoveryCapabilitiesBitmap, NodeId, TypeFromPartialBitSchema, VendorId } from "#types";
9
18
  import { Fabric } from "../fabric/Fabric.js";
10
19
 
@@ -32,13 +41,13 @@ export type DiscoveryData = {
32
41
  PI?: string;
33
42
 
34
43
  /** Sleep Idle Interval */
35
- SII?: number;
44
+ SII?: Duration;
36
45
 
37
46
  /** Sleep Active Interval */
38
- SAI?: number;
47
+ SAI?: Duration;
39
48
 
40
49
  /** Session active threshold */
41
- SAT?: number;
50
+ SAT?: Duration;
42
51
 
43
52
  /** TCP supported */
44
53
  T?: number; // SupportedTransportsBitmap but comes in as number, so converted on usage
@@ -116,7 +125,7 @@ export interface Scanner {
116
125
  findOperationalDevice(
117
126
  fabric: Fabric,
118
127
  nodeId: NodeId,
119
- timeoutSeconds?: number,
128
+ timeout?: Duration,
120
129
  ignoreExistingRecords?: boolean,
121
130
  ): Promise<OperationalDevice | undefined>;
122
131
 
@@ -132,7 +141,7 @@ export interface Scanner {
132
141
  */
133
142
  findCommissionableDevices(
134
143
  identifier: CommissionableDeviceIdentifiers,
135
- timeoutSeconds?: number,
144
+ timeout?: Duration,
136
145
  ignoreExistingRecords?: boolean,
137
146
  ): Promise<CommissionableDevice[]>;
138
147
 
@@ -144,7 +153,7 @@ export interface Scanner {
144
153
  findCommissionableDevicesContinuously(
145
154
  identifier: CommissionableDeviceIdentifiers,
146
155
  callback: (device: CommissionableDevice) => void,
147
- timeoutSeconds?: number,
156
+ timeout?: Duration,
148
157
  cancelSignal?: Promise<void>,
149
158
  ): Promise<CommissionableDevice[]>;
150
159
 
@@ -277,7 +277,7 @@ export class OccurrenceManager {
277
277
 
278
278
  add(occurrence: Occurrence): MaybePromise<NumberedOccurrence> {
279
279
  return MaybePromise.then(this.#store.add(occurrence), entry => {
280
- logger.debug(`Recorded event #${entry.number}: ${Diagnostic.json(occurrence)}`);
280
+ logger.debug(`Recorded event #${entry.number}`, Diagnostic.dict(occurrence));
281
281
  this.#occurrences.push(entry);
282
282
  if (this.#occurrences.length > this.#bufferConfig.maxEventAllowance) {
283
283
  this.#startCull();
@@ -96,7 +96,7 @@ export class FabricGroups {
96
96
 
97
97
  /*
98
98
  TODO for Controller to generate new epochs
99
- addGroupEpoch(groupKeySetId: number, startTimeMs = Time.nowMs()) {
99
+ addGroupEpoch(groupKeySetId: number, startTimeMs = Time.nowMs) {
100
100
  // TODO for Controller to generate new epochs
101
101
  const epochKey = Crypto.getRandomData(CRYPTO_SYMMETRIC_KEY_LENGTH);
102
102
  const operationalEpochKey = Crypto.hkdf(epochKey, this.#fabric.operationalId, GROUP_SECURITY_INFO);
@@ -5,7 +5,7 @@
5
5
  */
6
6
 
7
7
  import type { GroupKeyManagement } from "#clusters/group-key-management";
8
- import { BasicSet, Bytes, Crypto, DataReader, ImplementationError, MatterFlowError, Time } from "#general";
8
+ import { BasicSet, Bytes, Crypto, DataReader, ImplementationError, MatterFlowError, Time, Timestamp } from "#general";
9
9
 
10
10
  export const GROUP_KEY_INFO = Bytes.fromString("GroupKeyHash");
11
11
 
@@ -44,7 +44,7 @@ export class KeySets<T extends OperationalKeySet> extends BasicSet<T> {
44
44
  if (groupKeySet === undefined) {
45
45
  throw new MatterFlowError(`GroupKeySet for groupKeySet ${keySetId} not found.`);
46
46
  }
47
- const operationalKeys = Array<{ key: Bytes; sessionId?: number; startTime: number | bigint }>();
47
+ const operationalKeys = Array<{ key: Bytes; sessionId?: number; startTime: Timestamp }>();
48
48
  const {
49
49
  operationalEpochKey0,
50
50
  groupSessionId0,
@@ -63,13 +63,21 @@ export class KeySets<T extends OperationalKeySet> extends BasicSet<T> {
63
63
  operationalKeys.push({
64
64
  key: operationalEpochKey0,
65
65
  sessionId: groupSessionId0 !== null ? groupSessionId0 : undefined,
66
- startTime: epochStartTime0,
66
+ startTime: Timestamp.fromMicroseconds(epochStartTime0),
67
67
  });
68
68
  if (operationalEpochKey1 !== null && groupSessionId1 !== null && epochStartTime1 !== null) {
69
- operationalKeys.push({ key: operationalEpochKey1, sessionId: groupSessionId1, startTime: epochStartTime1 });
69
+ operationalKeys.push({
70
+ key: operationalEpochKey1,
71
+ sessionId: groupSessionId1,
72
+ startTime: Timestamp.fromMicroseconds(epochStartTime1),
73
+ });
70
74
  }
71
75
  if (operationalEpochKey2 !== null && groupSessionId2 !== null && epochStartTime2 !== null) {
72
- operationalKeys.push({ key: operationalEpochKey2, sessionId: groupSessionId2, startTime: epochStartTime2 });
76
+ operationalKeys.push({
77
+ key: operationalEpochKey2,
78
+ sessionId: groupSessionId2,
79
+ startTime: Timestamp.fromMicroseconds(epochStartTime2),
80
+ });
73
81
  }
74
82
  return operationalKeys;
75
83
  }
@@ -96,7 +104,7 @@ export class KeySets<T extends OperationalKeySet> extends BasicSet<T> {
96
104
  // epoch key (specifically, the epoch key with the latest start time that is not in the future).
97
105
  // TODO Nodes that cannot reliably keep track of time calculate the current epoch key as described in
98
106
  // Section 4.17.3.4, “Epoch Key Rotation without Time Synchronization”.
99
- const now = Time.nowUs();
107
+ const now = Time.nowUs;
100
108
  const relevantKeys = operationalKeys.filter(({ startTime }) => startTime <= now);
101
109
  if (relevantKeys.length === 0) {
102
110
  throw new ImplementationError(
@@ -7,12 +7,14 @@
7
7
  import { AccessControl } from "#clusters/access-control";
8
8
  import {
9
9
  Diagnostic,
10
+ Duration,
10
11
  Environment,
11
12
  Environmental,
12
13
  ImplementationError,
13
14
  Logger,
14
15
  MatterFlowError,
15
16
  PromiseQueue,
17
+ Seconds,
16
18
  ServerAddressIp,
17
19
  Timer,
18
20
  UnexpectedDataError,
@@ -61,8 +63,8 @@ import { RegisteredSubscription, SubscriptionClient } from "./SubscriptionClient
61
63
  const logger = Logger.get("InteractionClient");
62
64
 
63
65
  const REQUEST_ALL = [{}];
64
- const DEFAULT_TIMED_REQUEST_TIMEOUT_MS = 10_000; // 10 seconds
65
- const DEFAULT_MINIMUM_RESPONSE_TIMEOUT_WITH_FAILSAFE_MS = 30_000; // 30 seconds
66
+ const DEFAULT_TIMED_REQUEST_TIMEOUT = Seconds(10);
67
+ const DEFAULT_MINIMUM_RESPONSE_TIMEOUT_WITH_FAILSAFE = Seconds(30);
66
68
 
67
69
  const AclClusterId = AccessControl.Complete.id;
68
70
  const AclAttributeId = AccessControl.Complete.attributes.acl.id;
@@ -204,8 +206,8 @@ export class InteractionClient {
204
206
  }
205
207
 
206
208
  /** Calculates the current maximum response time for a message use in additional logic like timers. */
207
- maximumPeerResponseTimeMs(expectedProcessingTimeMs?: number) {
208
- return this.#exchangeProvider.maximumPeerResponseTimeMs(expectedProcessingTimeMs);
209
+ maximumPeerResponseTime(expectedProcessingTime?: Duration) {
210
+ return this.#exchangeProvider.maximumPeerResponseTime(expectedProcessingTime);
209
211
  }
210
212
 
211
213
  removeSubscription(subscriptionId: number) {
@@ -544,18 +546,18 @@ export class InteractionClient {
544
546
  dataVersion?: number;
545
547
  };
546
548
  asTimedRequest?: boolean;
547
- timedRequestTimeoutMs?: number;
549
+ timedRequestTimeout?: Duration;
548
550
  suppressResponse?: boolean;
549
551
  executeQueued?: boolean;
550
552
  chunkLists?: boolean;
551
553
  }): Promise<void> {
552
- const { attributeData, asTimedRequest, timedRequestTimeoutMs, suppressResponse, executeQueued, chunkLists } =
554
+ const { attributeData, asTimedRequest, timedRequestTimeout, suppressResponse, executeQueued, chunkLists } =
553
555
  options;
554
556
  const { endpointId, clusterId, attribute, value, dataVersion } = attributeData;
555
557
  const response = await this.setMultipleAttributes({
556
558
  attributes: [{ endpointId, clusterId, attribute, value, dataVersion }],
557
559
  asTimedRequest,
558
- timedRequestTimeoutMs,
560
+ timedRequestTimeout,
559
561
  suppressResponse,
560
562
  executeQueued,
561
563
  chunkLists,
@@ -585,7 +587,7 @@ export class InteractionClient {
585
587
  dataVersion?: number;
586
588
  }[];
587
589
  asTimedRequest?: boolean;
588
- timedRequestTimeoutMs?: number;
590
+ timedRequestTimeout?: Duration;
589
591
  suppressResponse?: boolean;
590
592
  executeQueued?: boolean;
591
593
  chunkLists?: boolean;
@@ -595,7 +597,7 @@ export class InteractionClient {
595
597
  const {
596
598
  attributes,
597
599
  asTimedRequest,
598
- timedRequestTimeoutMs = DEFAULT_TIMED_REQUEST_TIMEOUT_MS,
600
+ timedRequestTimeout = DEFAULT_TIMED_REQUEST_TIMEOUT,
599
601
  suppressResponse = this.isGroupAddress,
600
602
  chunkLists = true, // Should be true currently to stay in sync with chip sdk
601
603
  } = options;
@@ -654,7 +656,7 @@ export class InteractionClient {
654
656
  const timedRequest =
655
657
  attributes.some(({ attribute: { timed } }) => timed) ||
656
658
  asTimedRequest === true ||
657
- options.timedRequestTimeoutMs !== undefined;
659
+ options.timedRequestTimeout !== undefined;
658
660
  if (this.isGroupAddress && timedRequest) {
659
661
  throw new ImplementationError("Timed requests are not supported for group address writes.");
660
662
  }
@@ -662,7 +664,7 @@ export class InteractionClient {
662
664
  const response = await this.withMessenger<TypeFromSchema<typeof TlvWriteResponse> | undefined>(
663
665
  async messenger => {
664
666
  if (timedRequest) {
665
- await messenger.sendTimedRequest(timedRequestTimeoutMs);
667
+ await messenger.sendTimedRequest(timedRequestTimeout);
666
668
  }
667
669
 
668
670
  return await messenger.sendWriteCommand({
@@ -747,11 +749,11 @@ export class InteractionClient {
747
749
  const {
748
750
  subscribeResponse: { subscriptionId, maxInterval },
749
751
  report,
750
- maximumPeerResponseTimeMs,
752
+ maximumPeerResponseTime,
751
753
  } = await this.withMessenger<{
752
754
  subscribeResponse: TypeFromSchema<typeof TlvSubscribeResponse>;
753
755
  report: DataReport;
754
- maximumPeerResponseTimeMs: number;
756
+ maximumPeerResponseTime: Duration;
755
757
  }>(async messenger => {
756
758
  await messenger.sendSubscribeRequest({
757
759
  interactionModelRevision: Specification.INTERACTION_MODEL_REVISION,
@@ -769,7 +771,7 @@ export class InteractionClient {
769
771
  return {
770
772
  subscribeResponse,
771
773
  report,
772
- maximumPeerResponseTimeMs: this.maximumPeerResponseTimeMs(),
774
+ maximumPeerResponseTime: this.maximumPeerResponseTime(),
773
775
  };
774
776
  }, executeQueued);
775
777
 
@@ -800,8 +802,8 @@ export class InteractionClient {
800
802
  await this.#registerSubscription(
801
803
  {
802
804
  id: subscriptionId,
803
- maximumPeerResponseTimeMs,
804
- maxIntervalS: maxInterval,
805
+ maximumPeerResponseTime,
806
+ maxInterval: Seconds(maxInterval),
805
807
  onData: subscriptionListener,
806
808
  onTimeout: updateTimeoutHandler,
807
809
  },
@@ -821,8 +823,8 @@ export class InteractionClient {
821
823
  endpointId: EndpointNumber;
822
824
  clusterId: ClusterId;
823
825
  event: E;
824
- minIntervalFloorSeconds: number;
825
- maxIntervalCeilingSeconds: number;
826
+ minIntervalFloor: Duration;
827
+ maxIntervalCeiling: Duration;
826
828
  isUrgent?: boolean;
827
829
  minimumEventNumber?: EventNumber;
828
830
  isFabricFiltered?: boolean;
@@ -840,8 +842,8 @@ export class InteractionClient {
840
842
  endpointId,
841
843
  clusterId,
842
844
  event,
843
- minIntervalFloorSeconds,
844
- maxIntervalCeilingSeconds,
845
+ minIntervalFloor,
846
+ maxIntervalCeiling,
845
847
  isUrgent,
846
848
  minimumEventNumber,
847
849
  isFabricFiltered = true,
@@ -853,32 +855,32 @@ export class InteractionClient {
853
855
  const { id: eventId } = event;
854
856
 
855
857
  logger.debug(
856
- `Sending subscribe request for event: ${resolveEventName({ endpointId, clusterId, eventId })} with minInterval=${minIntervalFloorSeconds}s/maxInterval=${maxIntervalCeilingSeconds}s`,
858
+ `Sending subscribe request for event: ${resolveEventName({ endpointId, clusterId, eventId })} with minInterval=${minIntervalFloor}/maxInterval=${maxIntervalCeiling}`,
857
859
  );
858
860
 
859
861
  const {
860
862
  report,
861
863
  subscribeResponse: { subscriptionId, maxInterval },
862
- maximumPeerResponseTimeMs,
864
+ maximumPeerResponseTime,
863
865
  } = await this.withMessenger<{
864
866
  subscribeResponse: TypeFromSchema<typeof TlvSubscribeResponse>;
865
867
  report: DataReport;
866
- maximumPeerResponseTimeMs: number;
868
+ maximumPeerResponseTime: Duration;
867
869
  }>(async messenger => {
868
870
  await messenger.sendSubscribeRequest({
869
871
  interactionModelRevision: Specification.INTERACTION_MODEL_REVISION,
870
872
  eventRequests: [{ endpointId, clusterId, eventId, isUrgent }],
871
873
  eventFilters: minimumEventNumber !== undefined ? [{ eventMin: minimumEventNumber }] : undefined,
872
874
  keepSubscriptions: true,
873
- minIntervalFloorSeconds,
874
- maxIntervalCeilingSeconds,
875
+ minIntervalFloorSeconds: Seconds.of(minIntervalFloor),
876
+ maxIntervalCeilingSeconds: Seconds.of(maxIntervalCeiling),
875
877
  isFabricFiltered,
876
878
  });
877
879
  const { subscribeResponse, report } = await messenger.readAggregateSubscribeResponse();
878
880
  return {
879
881
  subscribeResponse,
880
882
  report,
881
- maximumPeerResponseTimeMs: this.maximumPeerResponseTimeMs(),
883
+ maximumPeerResponseTime: this.maximumPeerResponseTime(),
882
884
  };
883
885
  }, executeQueued);
884
886
 
@@ -906,8 +908,8 @@ export class InteractionClient {
906
908
  await this.#registerSubscription(
907
909
  {
908
910
  id: subscriptionId,
909
- maximumPeerResponseTimeMs,
910
- maxIntervalS: maxInterval,
911
+ maximumPeerResponseTime,
912
+ maxInterval: Seconds(maxInterval),
911
913
  onData: subscriptionListener,
912
914
  onTimeout: updateTimeoutHandler,
913
915
  },
@@ -1027,11 +1029,11 @@ export class InteractionClient {
1027
1029
  const {
1028
1030
  report,
1029
1031
  subscribeResponse: { subscriptionId, maxInterval },
1030
- maximumPeerResponseTimeMs,
1032
+ maximumPeerResponseTime,
1031
1033
  } = await this.withMessenger<{
1032
1034
  subscribeResponse: TypeFromSchema<typeof TlvSubscribeResponse>;
1033
1035
  report: DataReport;
1034
- maximumPeerResponseTimeMs: number;
1036
+ maximumPeerResponseTime: Duration;
1035
1037
  }>(async messenger => {
1036
1038
  await messenger.sendSubscribeRequest({
1037
1039
  interactionModelRevision: Specification.INTERACTION_MODEL_REVISION,
@@ -1051,7 +1053,7 @@ export class InteractionClient {
1051
1053
  return {
1052
1054
  subscribeResponse,
1053
1055
  report,
1054
- maximumPeerResponseTimeMs: this.maximumPeerResponseTimeMs(),
1056
+ maximumPeerResponseTime: this.maximumPeerResponseTime(),
1055
1057
  };
1056
1058
  }, executeQueued);
1057
1059
 
@@ -1125,8 +1127,8 @@ export class InteractionClient {
1125
1127
  await this.#registerSubscription(
1126
1128
  {
1127
1129
  id: subscriptionId,
1128
- maximumPeerResponseTimeMs,
1129
- maxIntervalS: maxInterval,
1130
+ maximumPeerResponseTime,
1131
+ maxInterval: Seconds(maxInterval),
1130
1132
 
1131
1133
  onData: dataReport => subscriptionListener(DecodedDataReport(dataReport)),
1132
1134
 
@@ -1155,13 +1157,13 @@ export class InteractionClient {
1155
1157
  asTimedRequest?: boolean;
1156
1158
 
1157
1159
  /** Use this timeout and send the request as Timed Request. If this is specified the above parameter is implied. */
1158
- timedRequestTimeoutMs?: number;
1160
+ timedRequestTimeout?: Duration;
1159
1161
 
1160
1162
  /**
1161
1163
  * Expected processing time on the device side for this command.
1162
1164
  * useExtendedFailSafeMessageResponseTimeout is ignored if this value is set.
1163
1165
  */
1164
- expectedProcessingTimeMs?: number;
1166
+ expectedProcessingTime?: Duration;
1165
1167
 
1166
1168
  /** Use an extended Message Response Timeout as defined for FailSafe cases which is 30s. */
1167
1169
  useExtendedFailSafeMessageResponseTimeout?: boolean;
@@ -1179,14 +1181,14 @@ export class InteractionClient {
1179
1181
  clusterId,
1180
1182
  command: { requestId, requestSchema, responseId, responseSchema, optional, timed },
1181
1183
  asTimedRequest,
1182
- timedRequestTimeoutMs = DEFAULT_TIMED_REQUEST_TIMEOUT_MS,
1183
- expectedProcessingTimeMs,
1184
+ timedRequestTimeout: timedRequestTimeoutMs = DEFAULT_TIMED_REQUEST_TIMEOUT,
1185
+ expectedProcessingTime,
1184
1186
  useExtendedFailSafeMessageResponseTimeout = false,
1185
1187
  skipValidation,
1186
1188
  } = options;
1187
1189
  let { request } = options;
1188
1190
  const timedRequest =
1189
- (timed && !skipValidation) || asTimedRequest === true || options.timedRequestTimeoutMs !== undefined;
1191
+ (timed && !skipValidation) || asTimedRequest === true || options.timedRequestTimeout !== undefined;
1190
1192
 
1191
1193
  if (this.isGroupAddress) {
1192
1194
  if (endpointId !== undefined) {
@@ -1234,9 +1236,9 @@ export class InteractionClient {
1234
1236
  suppressResponse: false,
1235
1237
  interactionModelRevision: Specification.INTERACTION_MODEL_REVISION,
1236
1238
  },
1237
- expectedProcessingTimeMs ??
1239
+ expectedProcessingTime ??
1238
1240
  (useExtendedFailSafeMessageResponseTimeout
1239
- ? DEFAULT_MINIMUM_RESPONSE_TIMEOUT_WITH_FAILSAFE_MS
1241
+ ? DEFAULT_MINIMUM_RESPONSE_TIMEOUT_WITH_FAILSAFE
1240
1242
  : undefined),
1241
1243
  );
1242
1244
  if (response === undefined) {
@@ -1301,7 +1303,7 @@ export class InteractionClient {
1301
1303
  request: RequestType<C>;
1302
1304
  command: C;
1303
1305
  asTimedRequest?: boolean;
1304
- timedRequestTimeoutMs?: number;
1306
+ timedRequestTimeout?: Duration;
1305
1307
  executeQueued?: boolean;
1306
1308
  }): Promise<void> {
1307
1309
  const { executeQueued } = options;
@@ -1312,9 +1314,9 @@ export class InteractionClient {
1312
1314
  request,
1313
1315
  command: { requestId, requestSchema, timed },
1314
1316
  asTimedRequest,
1315
- timedRequestTimeoutMs = DEFAULT_TIMED_REQUEST_TIMEOUT_MS,
1317
+ timedRequestTimeout = DEFAULT_TIMED_REQUEST_TIMEOUT,
1316
1318
  } = options;
1317
- const timedRequest = timed || asTimedRequest === true || options.timedRequestTimeoutMs !== undefined;
1319
+ const timedRequest = timed || asTimedRequest === true || options.timedRequestTimeout !== undefined;
1318
1320
 
1319
1321
  if (this.isGroupAddress) {
1320
1322
  if (timed) {
@@ -1336,7 +1338,7 @@ export class InteractionClient {
1336
1338
 
1337
1339
  await this.withMessenger<void>(async messenger => {
1338
1340
  if (timedRequest) {
1339
- await messenger.sendTimedRequest(timedRequestTimeoutMs);
1341
+ await messenger.sendTimedRequest(timedRequestTimeout);
1340
1342
  }
1341
1343
 
1342
1344
  const response = await messenger.sendInvokeCommand({