@matter/protocol 0.16.0-alpha.0-20250816-d22ad240d → 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 (392) 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 +11 -10
  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/InsecureSession.d.ts +2 -2
  145. package/dist/cjs/session/InsecureSession.d.ts.map +1 -1
  146. package/dist/cjs/session/InsecureSession.js.map +1 -1
  147. package/dist/cjs/session/NodeSession.js +3 -3
  148. package/dist/cjs/session/Session.d.ts +7 -7
  149. package/dist/cjs/session/Session.d.ts.map +1 -1
  150. package/dist/cjs/session/Session.js +19 -19
  151. package/dist/cjs/session/Session.js.map +1 -1
  152. package/dist/cjs/session/SessionIntervals.d.ts +7 -6
  153. package/dist/cjs/session/SessionIntervals.d.ts.map +1 -1
  154. package/dist/cjs/session/SessionIntervals.js +8 -8
  155. package/dist/cjs/session/SessionIntervals.js.map +1 -1
  156. package/dist/cjs/session/SessionManager.d.ts +2 -2
  157. package/dist/cjs/session/SessionManager.d.ts.map +1 -1
  158. package/dist/cjs/session/SessionManager.js +6 -6
  159. package/dist/cjs/session/SessionManager.js.map +1 -1
  160. package/dist/cjs/session/case/CaseClient.d.ts +2 -1
  161. package/dist/cjs/session/case/CaseClient.d.ts.map +1 -1
  162. package/dist/cjs/session/case/CaseClient.js +2 -2
  163. package/dist/cjs/session/case/CaseClient.js.map +1 -1
  164. package/dist/cjs/session/pase/PaseMessenger.d.ts.map +1 -1
  165. package/dist/cjs/session/pase/PaseMessenger.js +4 -7
  166. package/dist/cjs/session/pase/PaseMessenger.js.map +1 -1
  167. package/dist/cjs/session/pase/PaseServer.d.ts.map +1 -1
  168. package/dist/cjs/session/pase/PaseServer.js +1 -1
  169. package/dist/cjs/session/pase/PaseServer.js.map +1 -1
  170. package/dist/esm/action/Val.d.ts +6 -0
  171. package/dist/esm/action/Val.d.ts.map +1 -1
  172. package/dist/esm/action/Val.js.map +1 -1
  173. package/dist/esm/action/client/ClientInteraction.d.ts +1 -1
  174. package/dist/esm/action/client/ClientInteraction.d.ts.map +1 -1
  175. package/dist/esm/action/client/ClientInteraction.js +5 -5
  176. package/dist/esm/action/client/ClientInteraction.js.map +1 -1
  177. package/dist/esm/action/client/ClientSubscription.d.ts +2 -1
  178. package/dist/esm/action/client/ClientSubscription.d.ts.map +1 -1
  179. package/dist/esm/action/client/ClientSubscriptionHandler.js +2 -2
  180. package/dist/esm/action/client/ClientSubscriptionHandler.js.map +1 -1
  181. package/dist/esm/action/client/ClientSubscriptions.d.ts.map +1 -1
  182. package/dist/esm/action/client/ClientSubscriptions.js +14 -8
  183. package/dist/esm/action/client/ClientSubscriptions.js.map +1 -1
  184. package/dist/esm/action/request/Subscribe.d.ts +6 -6
  185. package/dist/esm/action/request/Subscribe.d.ts.map +1 -1
  186. package/dist/esm/action/request/Subscribe.js +12 -10
  187. package/dist/esm/action/request/Subscribe.js.map +1 -1
  188. package/dist/esm/advertisement/Advertisement.d.ts +3 -3
  189. package/dist/esm/advertisement/Advertisement.d.ts.map +1 -1
  190. package/dist/esm/advertisement/Advertisement.js +16 -7
  191. package/dist/esm/advertisement/Advertisement.js.map +1 -1
  192. package/dist/esm/advertisement/ble/BleAdvertisement.d.ts.map +1 -1
  193. package/dist/esm/advertisement/ble/BleAdvertisement.js +7 -6
  194. package/dist/esm/advertisement/ble/BleAdvertisement.js.map +1 -1
  195. package/dist/esm/advertisement/ble/BleAdvertiser.d.ts +11 -10
  196. package/dist/esm/advertisement/ble/BleAdvertiser.d.ts.map +1 -1
  197. package/dist/esm/advertisement/ble/BleAdvertiser.js +6 -6
  198. package/dist/esm/advertisement/ble/BleAdvertiser.js.map +1 -1
  199. package/dist/esm/advertisement/mdns/MdnsAdvertisement.d.ts.map +1 -1
  200. package/dist/esm/advertisement/mdns/MdnsAdvertisement.js +17 -8
  201. package/dist/esm/advertisement/mdns/MdnsAdvertisement.js.map +1 -1
  202. package/dist/esm/advertisement/mdns/MdnsAdvertiser.d.ts +2 -2
  203. package/dist/esm/advertisement/mdns/MdnsAdvertiser.d.ts.map +1 -1
  204. package/dist/esm/advertisement/mdns/MdnsAdvertiser.js +14 -6
  205. package/dist/esm/advertisement/mdns/MdnsAdvertiser.js.map +1 -1
  206. package/dist/esm/ble/Ble.d.ts +2 -2
  207. package/dist/esm/ble/Ble.d.ts.map +1 -1
  208. package/dist/esm/ble/Ble.js +5 -1
  209. package/dist/esm/ble/Ble.js.map +1 -1
  210. package/dist/esm/ble/BleConsts.d.ts +4 -4
  211. package/dist/esm/ble/BleConsts.d.ts.map +1 -1
  212. package/dist/esm/ble/BleConsts.js +8 -8
  213. package/dist/esm/ble/BleConsts.js.map +1 -1
  214. package/dist/esm/ble/BtpSessionHandler.js +4 -4
  215. package/dist/esm/ble/BtpSessionHandler.js.map +1 -1
  216. package/dist/esm/certificate/AttestationCertificateManager.js +3 -3
  217. package/dist/esm/certificate/AttestationCertificateManager.js.map +1 -1
  218. package/dist/esm/certificate/CertificateAuthority.js +2 -2
  219. package/dist/esm/certificate/CertificateAuthority.js.map +1 -1
  220. package/dist/esm/certificate/kinds/OperationalBase.js +2 -2
  221. package/dist/esm/certificate/kinds/OperationalBase.js.map +1 -1
  222. package/dist/esm/cluster/client/ClusterClient.js +5 -5
  223. package/dist/esm/cluster/client/ClusterClient.js.map +1 -1
  224. package/dist/esm/cluster/client/ClusterClientTypes.d.ts +3 -3
  225. package/dist/esm/cluster/client/ClusterClientTypes.d.ts.map +1 -1
  226. package/dist/esm/cluster/client/EventClient.d.ts +2 -1
  227. package/dist/esm/cluster/client/EventClient.d.ts.map +1 -1
  228. package/dist/esm/cluster/client/EventClient.js +3 -3
  229. package/dist/esm/cluster/client/EventClient.js.map +1 -1
  230. package/dist/esm/common/FailsafeContext.d.ts +4 -4
  231. package/dist/esm/common/FailsafeContext.d.ts.map +1 -1
  232. package/dist/esm/common/FailsafeContext.js +9 -8
  233. package/dist/esm/common/FailsafeContext.js.map +1 -1
  234. package/dist/esm/common/FailsafeTimer.d.ts +3 -3
  235. package/dist/esm/common/FailsafeTimer.d.ts.map +1 -1
  236. package/dist/esm/common/FailsafeTimer.js +8 -8
  237. package/dist/esm/common/FailsafeTimer.js.map +1 -1
  238. package/dist/esm/common/Scanner.d.ts +7 -7
  239. package/dist/esm/common/Scanner.d.ts.map +1 -1
  240. package/dist/esm/common/Scanner.js +5 -1
  241. package/dist/esm/common/Scanner.js.map +1 -1
  242. package/dist/esm/events/OccurrenceManager.js +1 -1
  243. package/dist/esm/events/OccurrenceManager.js.map +1 -1
  244. package/dist/esm/groups/FabricGroups.d.ts +1 -1
  245. package/dist/esm/groups/FabricGroups.js +1 -1
  246. package/dist/esm/groups/Groups.d.ts +1 -1
  247. package/dist/esm/groups/KeySets.d.ts +3 -3
  248. package/dist/esm/groups/KeySets.d.ts.map +1 -1
  249. package/dist/esm/groups/KeySets.js +13 -5
  250. package/dist/esm/groups/KeySets.js.map +1 -1
  251. package/dist/esm/interaction/InteractionClient.d.ts +9 -9
  252. package/dist/esm/interaction/InteractionClient.d.ts.map +1 -1
  253. package/dist/esm/interaction/InteractionClient.js +34 -33
  254. package/dist/esm/interaction/InteractionClient.js.map +1 -1
  255. package/dist/esm/interaction/InteractionMessenger.d.ts +10 -10
  256. package/dist/esm/interaction/InteractionMessenger.d.ts.map +1 -1
  257. package/dist/esm/interaction/InteractionMessenger.js +16 -15
  258. package/dist/esm/interaction/InteractionMessenger.js.map +1 -1
  259. package/dist/esm/interaction/Subscription.d.ts +3 -4
  260. package/dist/esm/interaction/Subscription.d.ts.map +1 -1
  261. package/dist/esm/interaction/Subscription.js +9 -12
  262. package/dist/esm/interaction/Subscription.js.map +1 -1
  263. package/dist/esm/interaction/SubscriptionClient.d.ts +3 -3
  264. package/dist/esm/interaction/SubscriptionClient.d.ts.map +1 -1
  265. package/dist/esm/interaction/SubscriptionClient.js +4 -4
  266. package/dist/esm/interaction/SubscriptionClient.js.map +1 -1
  267. package/dist/esm/mdns/MdnsClient.d.ts +9 -9
  268. package/dist/esm/mdns/MdnsClient.d.ts.map +1 -1
  269. package/dist/esm/mdns/MdnsClient.js +94 -82
  270. package/dist/esm/mdns/MdnsClient.js.map +1 -1
  271. package/dist/esm/mdns/MdnsServer.d.ts.map +1 -1
  272. package/dist/esm/mdns/MdnsServer.js +14 -9
  273. package/dist/esm/mdns/MdnsServer.js.map +1 -1
  274. package/dist/esm/peer/ControllerCommissioner.d.ts +2 -2
  275. package/dist/esm/peer/ControllerCommissioner.d.ts.map +1 -1
  276. package/dist/esm/peer/ControllerCommissioner.js +11 -8
  277. package/dist/esm/peer/ControllerCommissioner.js.map +1 -1
  278. package/dist/esm/peer/ControllerCommissioningFlow.d.ts.map +1 -1
  279. package/dist/esm/peer/ControllerCommissioningFlow.js +44 -35
  280. package/dist/esm/peer/ControllerCommissioningFlow.js.map +1 -1
  281. package/dist/esm/peer/ControllerDiscovery.d.ts +4 -4
  282. package/dist/esm/peer/ControllerDiscovery.d.ts.map +1 -1
  283. package/dist/esm/peer/ControllerDiscovery.js +20 -18
  284. package/dist/esm/peer/ControllerDiscovery.js.map +1 -1
  285. package/dist/esm/peer/InteractionQueue.d.ts.map +1 -1
  286. package/dist/esm/peer/InteractionQueue.js +3 -3
  287. package/dist/esm/peer/InteractionQueue.js.map +1 -1
  288. package/dist/esm/peer/PeerSet.d.ts +2 -2
  289. package/dist/esm/peer/PeerSet.d.ts.map +1 -1
  290. package/dist/esm/peer/PeerSet.js +29 -26
  291. package/dist/esm/peer/PeerSet.js.map +1 -1
  292. package/dist/esm/protocol/DeviceCommissioner.d.ts.map +1 -1
  293. package/dist/esm/protocol/DeviceCommissioner.js +2 -2
  294. package/dist/esm/protocol/DeviceCommissioner.js.map +1 -1
  295. package/dist/esm/protocol/ExchangeManager.d.ts +1 -1
  296. package/dist/esm/protocol/ExchangeManager.d.ts.map +1 -1
  297. package/dist/esm/protocol/ExchangeManager.js +3 -6
  298. package/dist/esm/protocol/ExchangeManager.js.map +1 -1
  299. package/dist/esm/protocol/ExchangeProvider.d.ts +4 -4
  300. package/dist/esm/protocol/ExchangeProvider.d.ts.map +1 -1
  301. package/dist/esm/protocol/ExchangeProvider.js +4 -4
  302. package/dist/esm/protocol/ExchangeProvider.js.map +1 -1
  303. package/dist/esm/protocol/MessageChannel.d.ts +5 -5
  304. package/dist/esm/protocol/MessageChannel.d.ts.map +1 -1
  305. package/dist/esm/protocol/MessageChannel.js +20 -16
  306. package/dist/esm/protocol/MessageChannel.js.map +1 -1
  307. package/dist/esm/protocol/MessageExchange.d.ts +6 -6
  308. package/dist/esm/protocol/MessageExchange.d.ts.map +1 -1
  309. package/dist/esm/protocol/MessageExchange.js +39 -34
  310. package/dist/esm/protocol/MessageExchange.js.map +1 -1
  311. package/dist/esm/securechannel/SecureChannelMessenger.d.ts +8 -8
  312. package/dist/esm/securechannel/SecureChannelMessenger.d.ts.map +1 -1
  313. package/dist/esm/securechannel/SecureChannelMessenger.js +18 -18
  314. package/dist/esm/securechannel/SecureChannelMessenger.js.map +1 -1
  315. package/dist/esm/session/InsecureSession.d.ts +2 -2
  316. package/dist/esm/session/InsecureSession.d.ts.map +1 -1
  317. package/dist/esm/session/InsecureSession.js.map +1 -1
  318. package/dist/esm/session/NodeSession.js +3 -3
  319. package/dist/esm/session/Session.d.ts +7 -7
  320. package/dist/esm/session/Session.d.ts.map +1 -1
  321. package/dist/esm/session/Session.js +27 -20
  322. package/dist/esm/session/Session.js.map +1 -1
  323. package/dist/esm/session/SessionIntervals.d.ts +7 -6
  324. package/dist/esm/session/SessionIntervals.d.ts.map +1 -1
  325. package/dist/esm/session/SessionIntervals.js +8 -8
  326. package/dist/esm/session/SessionIntervals.js.map +1 -1
  327. package/dist/esm/session/SessionManager.d.ts +2 -2
  328. package/dist/esm/session/SessionManager.d.ts.map +1 -1
  329. package/dist/esm/session/SessionManager.js +6 -6
  330. package/dist/esm/session/SessionManager.js.map +1 -1
  331. package/dist/esm/session/case/CaseClient.d.ts +2 -1
  332. package/dist/esm/session/case/CaseClient.d.ts.map +1 -1
  333. package/dist/esm/session/case/CaseClient.js +2 -2
  334. package/dist/esm/session/case/CaseClient.js.map +1 -1
  335. package/dist/esm/session/pase/PaseMessenger.d.ts.map +1 -1
  336. package/dist/esm/session/pase/PaseMessenger.js +5 -11
  337. package/dist/esm/session/pase/PaseMessenger.js.map +1 -1
  338. package/dist/esm/session/pase/PaseServer.d.ts.map +1 -1
  339. package/dist/esm/session/pase/PaseServer.js +2 -1
  340. package/dist/esm/session/pase/PaseServer.js.map +1 -1
  341. package/package.json +6 -6
  342. package/src/action/Val.ts +5 -0
  343. package/src/action/client/ClientInteraction.ts +4 -4
  344. package/src/action/client/ClientSubscription.ts +2 -1
  345. package/src/action/client/ClientSubscriptionHandler.ts +2 -2
  346. package/src/action/client/ClientSubscriptions.ts +14 -8
  347. package/src/action/request/Subscribe.ts +17 -15
  348. package/src/advertisement/Advertisement.ts +18 -8
  349. package/src/advertisement/ble/BleAdvertisement.ts +7 -6
  350. package/src/advertisement/ble/BleAdvertiser.ts +11 -11
  351. package/src/advertisement/mdns/MdnsAdvertisement.ts +20 -9
  352. package/src/advertisement/mdns/MdnsAdvertiser.ts +17 -7
  353. package/src/ble/Ble.ts +11 -2
  354. package/src/ble/BleConsts.ts +5 -5
  355. package/src/ble/BtpSessionHandler.ts +4 -4
  356. package/src/certificate/AttestationCertificateManager.ts +3 -3
  357. package/src/certificate/CertificateAuthority.ts +2 -2
  358. package/src/certificate/kinds/OperationalBase.ts +3 -3
  359. package/src/cluster/client/ClusterClient.ts +8 -8
  360. package/src/cluster/client/ClusterClientTypes.ts +3 -3
  361. package/src/cluster/client/EventClient.ts +5 -5
  362. package/src/common/FailsafeContext.ts +11 -13
  363. package/src/common/FailsafeTimer.ts +11 -13
  364. package/src/common/Scanner.ts +16 -7
  365. package/src/events/OccurrenceManager.ts +1 -1
  366. package/src/groups/FabricGroups.ts +1 -1
  367. package/src/groups/KeySets.ts +14 -6
  368. package/src/interaction/InteractionClient.ts +46 -44
  369. package/src/interaction/InteractionMessenger.ts +24 -22
  370. package/src/interaction/Subscription.ts +10 -14
  371. package/src/interaction/SubscriptionClient.ts +6 -6
  372. package/src/mdns/MdnsClient.ts +105 -82
  373. package/src/mdns/MdnsServer.ts +14 -9
  374. package/src/peer/ControllerCommissioner.ts +12 -9
  375. package/src/peer/ControllerCommissioningFlow.ts +48 -39
  376. package/src/peer/ControllerDiscovery.ts +22 -18
  377. package/src/peer/InteractionQueue.ts +3 -3
  378. package/src/peer/PeerSet.ts +34 -28
  379. package/src/protocol/DeviceCommissioner.ts +2 -2
  380. package/src/protocol/ExchangeManager.ts +3 -6
  381. package/src/protocol/ExchangeProvider.ts +6 -6
  382. package/src/protocol/MessageChannel.ts +26 -21
  383. package/src/protocol/MessageExchange.ts +42 -38
  384. package/src/securechannel/SecureChannelMessenger.ts +16 -22
  385. package/src/session/InsecureSession.ts +2 -2
  386. package/src/session/NodeSession.ts +3 -3
  387. package/src/session/Session.ts +31 -21
  388. package/src/session/SessionIntervals.ts +11 -11
  389. package/src/session/SessionManager.ts +10 -9
  390. package/src/session/case/CaseClient.ts +3 -3
  391. package/src/session/pase/PaseMessenger.ts +5 -11
  392. package/src/session/pase/PaseServer.ts +2 -1
@@ -35,7 +35,7 @@ class Subscription {
35
35
  #isCanceledByPeer;
36
36
  #criteria;
37
37
  #cancelled = (0, import_general.AsyncObservable)();
38
- #maxIntervalMs;
38
+ #maxInterval;
39
39
  constructor(session, id, criteria) {
40
40
  this.#session = session;
41
41
  this.#id = id;
@@ -59,20 +59,17 @@ class Subscription {
59
59
  get cancelled() {
60
60
  return this.#cancelled;
61
61
  }
62
- get maxIntervalMs() {
63
- if (this.#maxIntervalMs === void 0) {
64
- throw new import_general.InternalError("Subscription MaxIntervalMs accessed before it was set");
62
+ get maxInterval() {
63
+ if (this.#maxInterval === void 0) {
64
+ throw new import_general.InternalError("Subscription maxInterval accessed before it was set");
65
65
  }
66
- return this.#maxIntervalMs;
66
+ return this.#maxInterval;
67
67
  }
68
- set maxIntervalMs(value) {
69
- if (this.#maxIntervalMs !== void 0) {
70
- throw new import_general.InternalError("Subscription MaxIntervalMs set twice. This should never happen.");
68
+ set maxInterval(value) {
69
+ if (this.#maxInterval !== void 0) {
70
+ throw new import_general.InternalError("Subscription maxInterval set twice");
71
71
  }
72
- this.#maxIntervalMs = value;
73
- }
74
- get maxInterval() {
75
- return Math.ceil(this.maxIntervalMs / 1e3);
72
+ this.#maxInterval = value;
76
73
  }
77
74
  /**
78
75
  * Update session state. This probably is meaningless except in a server context.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/interaction/Subscription.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAuD;AANvD;AAAA;AAAA;AAAA;AAAA;AAUA,MAAM,SAAS,sBAAO,IAAI,cAAc;AAejC,MAAe,aAAa;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,iBAAa,gCAA8C;AAAA,EAC3D;AAAA,EAEA,YAAY,SAAsB,IAAoB,UAAgC;AAClF,SAAK,WAAW;AAChB,SAAK,MAAM;AACX,SAAK,YAAY;AAAA,EACrB;AAAA,EAEA,IAAI,KAAK;AACL,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,WAAW;AACX,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,WAAW;AACX,WAAO,CAAC,CAAC,KAAK;AAAA,EAClB;AAAA,EAEA,IAAI,mBAAmB;AACnB,WAAO,CAAC,CAAC,KAAK;AAAA,EAClB;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,YAAY;AACZ,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,gBAAwB;AACxB,QAAI,KAAK,mBAAmB,QAAW;AACnC,YAAM,IAAI,6BAAc,uDAAuD;AAAA,IACnF;AACA,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,cAAc,OAAe;AAC7B,QAAI,KAAK,mBAAmB,QAAW;AACnC,YAAM,IAAI,6BAAc,iEAAiE;AAAA,IAC7F;AACA,SAAK,iBAAiB;AAAA,EAC1B;AAAA,EAEA,IAAI,cAAsB;AACtB,WAAO,KAAK,KAAK,KAAK,gBAAgB,GAAI;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,SAAS;AAAA,EAAC;AAAA;AAAA;AAAA;AAAA,EAKhB,IAAc,iBAAiB,OAAgB;AAC3C,SAAK,oBAAoB;AAAA,EAC7B;AAAA,EAEA,IAAc,SAAS,OAAgB;AACnC,SAAK,YAAY;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA,EAQA,MAAgB,UAAyB;AACrC,SAAK,YAAY;AACjB,SAAK,SAAS,cAAc,OAAO,IAAI;AACvC,WAAO,MAAM,wBAAwB,KAAK,EAAE,SAAS,KAAK,SAAS,IAAI,EAAE;AAEzE,SAAK,WAAW,KAAK,IAAI;AAAA,EAC7B;AAAA,EAEU,WAAW;AAEjB,SAAK,SAAS,cAAc,IAAI,IAAI;AACpC,WAAO,MAAM,sBAAsB,KAAK,GAAG,OAAO,KAAK,SAAS,IAAI,EAAE;AAAA,EAC1E;AACJ;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAiE;AANjE;AAAA;AAAA;AAAA;AAAA;AAUA,MAAM,SAAS,sBAAO,IAAI,cAAc;AAejC,MAAe,aAAa;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,iBAAa,gCAA8C;AAAA,EAC3D;AAAA,EAEA,YAAY,SAAsB,IAAoB,UAAgC;AAClF,SAAK,WAAW;AAChB,SAAK,MAAM;AACX,SAAK,YAAY;AAAA,EACrB;AAAA,EAEA,IAAI,KAAK;AACL,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,WAAW;AACX,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,WAAW;AACX,WAAO,CAAC,CAAC,KAAK;AAAA,EAClB;AAAA,EAEA,IAAI,mBAAmB;AACnB,WAAO,CAAC,CAAC,KAAK;AAAA,EAClB;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,YAAY;AACZ,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,cAAc;AACd,QAAI,KAAK,iBAAiB,QAAW;AACjC,YAAM,IAAI,6BAAc,qDAAqD;AAAA,IACjF;AACA,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,YAAY,OAAiB;AAC7B,QAAI,KAAK,iBAAiB,QAAW;AACjC,YAAM,IAAI,6BAAc,oCAAoC;AAAA,IAChE;AACA,SAAK,eAAe;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,SAAS;AAAA,EAAC;AAAA;AAAA;AAAA;AAAA,EAKhB,IAAc,iBAAiB,OAAgB;AAC3C,SAAK,oBAAoB;AAAA,EAC7B;AAAA,EAEA,IAAc,SAAS,OAAgB;AACnC,SAAK,YAAY;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA,EAQA,MAAgB,UAAyB;AACrC,SAAK,YAAY;AACjB,SAAK,SAAS,cAAc,OAAO,IAAI;AACvC,WAAO,MAAM,wBAAwB,KAAK,EAAE,SAAS,KAAK,SAAS,IAAI,EAAE;AAEzE,SAAK,WAAW,KAAK,IAAI;AAAA,EAC7B;AAAA,EAEU,WAAW;AAEjB,SAAK,SAAS,cAAc,IAAI,IAAI;AACpC,WAAO,MAAM,sBAAsB,KAAK,GAAG,OAAO,KAAK,SAAS,IAAI,EAAE;AAAA,EAC1E;AACJ;",
5
5
  "names": []
6
6
  }
@@ -3,14 +3,14 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { Environment, Environmental, MaybePromise } from "#general";
6
+ import { Duration, Environment, Environmental, MaybePromise } from "#general";
7
7
  import { MessageExchange } from "#protocol/MessageExchange.js";
8
8
  import { ProtocolHandler } from "#protocol/ProtocolHandler.js";
9
9
  import { DataReport } from "./InteractionMessenger.js";
10
10
  export interface RegisteredSubscription {
11
11
  id: number;
12
- maximumPeerResponseTimeMs: number;
13
- maxIntervalS: number;
12
+ maximumPeerResponseTime: Duration;
13
+ maxInterval: Duration;
14
14
  onData: (dataReport: DataReport) => MaybePromise<void>;
15
15
  onTimeout?: () => void;
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SubscriptionClient.d.ts","sourceRoot":"","sources":["../../../src/interaction/SubscriptionClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAU,YAAY,EAAe,MAAM,UAAU,CAAC;AACzF,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,UAAU,EAAsC,MAAM,2BAA2B,CAAC;AAI3F,MAAM,WAAW,sBAAsB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,yBAAyB,EAAE,MAAM,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IACvD,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,eAAe;;IACtD,QAAQ,CAAC,EAAE,KAA2B;IACtC,QAAQ,CAAC,qBAAqB,QAAQ;;IAMtC,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAM9C;;OAEG;IACH,GAAG,CAAC,YAAY,EAAE,sBAAsB;IAuBxC;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM;IASX,aAAa,CAAC,QAAQ,EAAE,eAAe;IAsBvC,KAAK;CAKd"}
1
+ {"version":3,"file":"SubscriptionClient.d.ts","sourceRoot":"","sources":["../../../src/interaction/SubscriptionClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAU,YAAY,EAAuB,MAAM,UAAU,CAAC;AAC3G,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,UAAU,EAAsC,MAAM,2BAA2B,CAAC;AAI3F,MAAM,WAAW,sBAAsB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,uBAAuB,EAAE,QAAQ,CAAC;IAClC,WAAW,EAAE,QAAQ,CAAC;IACtB,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;IACvD,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,eAAe;;IACtD,QAAQ,CAAC,EAAE,KAA2B;IACtC,QAAQ,CAAC,qBAAqB,QAAQ;;IAMtC,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAM9C;;OAEG;IACH,GAAG,CAAC,YAAY,EAAE,sBAAsB;IAuBxC;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM;IASX,aAAa,CAAC,QAAQ,EAAE,eAAe;IAsBvC,KAAK;CAKd"}
@@ -54,9 +54,9 @@ class SubscriptionClient {
54
54
  timer.stop();
55
55
  this.#timeouts.delete(id);
56
56
  }
57
- const maxIntervalMs = subscription.maxIntervalS * 1e3 + subscription.maximumPeerResponseTimeMs;
58
- timer = import_general.Time.getTimer("Subscription timeout", maxIntervalMs, () => {
59
- logger.info(`Subscription ${id} timed out after ${maxIntervalMs}ms`);
57
+ const maxInterval = (0, import_general.Millis)(subscription.maxInterval + subscription.maximumPeerResponseTime);
58
+ timer = import_general.Time.getTimer("Subscription timeout", maxInterval, () => {
59
+ logger.info(`Subscription ${id} timed out after ${import_general.Duration.format(maxInterval)}`);
60
60
  this.delete(id);
61
61
  onTimeout();
62
62
  }).start();
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/interaction/SubscriptionClient.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAA8E;AAG9E,mBAAwC;AACxC,kCAA+D;AAV/D;AAAA;AAAA;AAAA;AAAA;AAYA,MAAM,SAAS,sBAAO,IAAI,oBAAoB;AAevC,MAAM,mBAA8C;AAAA,EAC9C,KAAK;AAAA,EACL,wBAAwB;AAAA,EACxB,aAAa,oBAAI,IAA4D;AAAA,EAC7E,YAAY,oBAAI,IAAmB;AAAA,EAE5C,cAAc;AAAA,EAAC;AAAA,EAEf,QAAQ,6BAAc,MAAM,EAAE,KAAkB;AAC5C,UAAM,SAAS,IAAI,mBAAmB;AACtC,QAAI,IAAI,oBAAoB,MAAM;AAClC,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,cAAsC;AACtC,UAAM,EAAE,IAAI,QAAQ,UAAU,IAAI;AAElC,SAAK,WAAW,IAAI,IAAI,MAAM;AAC9B,QAAI,WAAW;AACX,UAAI,QAAQ,KAAK,UAAU,IAAI,EAAE;AACjC,UAAI,UAAU,QAAW;AACrB,cAAM,KAAK;AACX,aAAK,UAAU,OAAO,EAAE;AAAA,MAC5B;AAEA,YAAM,gBAAgB,aAAa,eAAe,MAAO,aAAa;AAEtE,cAAQ,oBAAK,SAAS,wBAAwB,eAAe,MAAM;AAC/D,eAAO,KAAK,gBAAgB,EAAE,oBAAoB,aAAa,IAAI;AACnE,aAAK,OAAO,EAAE;AACd,kBAAU;AAAA,MACd,CAAC,EAAE,MAAM;AAET,WAAK,UAAU,IAAI,IAAI,KAAK;AAAA,IAChC;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,IAAY;AACf,SAAK,WAAW,OAAO,EAAE;AACzB,UAAM,QAAQ,KAAK,UAAU,IAAI,EAAE;AACnC,QAAI,UAAU,QAAW;AACrB,YAAM,KAAK;AACX,WAAK,UAAU,OAAO,EAAE;AAAA,IAC5B;AAAA,EACJ;AAAA,EAEA,MAAM,cAAc,UAA2B;AAC3C,UAAM,YAAY,IAAI,+DAAmC,QAAQ;AAEjE,QAAI;AACJ,QAAI;AAEA,mBAAa,MAAM,UAAU,wBAAwB,CAAC,GAAG,KAAK,WAAW,KAAK,CAAC,CAAC;AAAA,IACpF,UAAE;AACE,gBAAU,MAAM,EAAE,MAAM,WAAS,OAAO,KAAK,kCAAkC,KAAK,CAAC;AAAA,IACzF;AACA,UAAM,iBAAiB,WAAW;AAElC,UAAM,WAAW,KAAK,WAAW,IAAI,cAAc;AACnD,UAAM,QAAQ,KAAK,UAAU,IAAI,cAAc;AAE/C,QAAI,UAAU,QAAW;AACrB,YAAM,KAAK,EAAE,MAAM;AAAA,IACvB;AAEA,UAAM,WAAW,UAAU;AAAA,EAC/B;AAAA,EAEA,MAAM,QAAQ;AACV,SAAK,WAAW,MAAM;AACtB,SAAK,UAAU,QAAQ,WAAS,MAAM,KAAK,CAAC;AAC5C,SAAK,UAAU,MAAM;AAAA,EACzB;AACJ;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAgG;AAGhG,mBAAwC;AACxC,kCAA+D;AAV/D;AAAA;AAAA;AAAA;AAAA;AAYA,MAAM,SAAS,sBAAO,IAAI,oBAAoB;AAevC,MAAM,mBAA8C;AAAA,EAC9C,KAAK;AAAA,EACL,wBAAwB;AAAA,EACxB,aAAa,oBAAI,IAA4D;AAAA,EAC7E,YAAY,oBAAI,IAAmB;AAAA,EAE5C,cAAc;AAAA,EAAC;AAAA,EAEf,QAAQ,6BAAc,MAAM,EAAE,KAAkB;AAC5C,UAAM,SAAS,IAAI,mBAAmB;AACtC,QAAI,IAAI,oBAAoB,MAAM;AAClC,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,cAAsC;AACtC,UAAM,EAAE,IAAI,QAAQ,UAAU,IAAI;AAElC,SAAK,WAAW,IAAI,IAAI,MAAM;AAC9B,QAAI,WAAW;AACX,UAAI,QAAQ,KAAK,UAAU,IAAI,EAAE;AACjC,UAAI,UAAU,QAAW;AACrB,cAAM,KAAK;AACX,aAAK,UAAU,OAAO,EAAE;AAAA,MAC5B;AAEA,YAAM,kBAAc,uBAAO,aAAa,cAAc,aAAa,uBAAuB;AAE1F,cAAQ,oBAAK,SAAS,wBAAwB,aAAa,MAAM;AAC7D,eAAO,KAAK,gBAAgB,EAAE,oBAAoB,wBAAS,OAAO,WAAW,CAAC,EAAE;AAChF,aAAK,OAAO,EAAE;AACd,kBAAU;AAAA,MACd,CAAC,EAAE,MAAM;AAET,WAAK,UAAU,IAAI,IAAI,KAAK;AAAA,IAChC;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,IAAY;AACf,SAAK,WAAW,OAAO,EAAE;AACzB,UAAM,QAAQ,KAAK,UAAU,IAAI,EAAE;AACnC,QAAI,UAAU,QAAW;AACrB,YAAM,KAAK;AACX,WAAK,UAAU,OAAO,EAAE;AAAA,IAC5B;AAAA,EACJ;AAAA,EAEA,MAAM,cAAc,UAA2B;AAC3C,UAAM,YAAY,IAAI,+DAAmC,QAAQ;AAEjE,QAAI;AACJ,QAAI;AAEA,mBAAa,MAAM,UAAU,wBAAwB,CAAC,GAAG,KAAK,WAAW,KAAK,CAAC,CAAC;AAAA,IACpF,UAAE;AACE,gBAAU,MAAM,EAAE,MAAM,WAAS,OAAO,KAAK,kCAAkC,KAAK,CAAC;AAAA,IACzF;AACA,UAAM,iBAAiB,WAAW;AAElC,UAAM,WAAW,KAAK,WAAW,IAAI,cAAc;AACnD,UAAM,QAAQ,KAAK,UAAU,IAAI,cAAc;AAE/C,QAAI,UAAU,QAAW;AACrB,YAAM,KAAK,EAAE,MAAM;AAAA,IACvB;AAEA,UAAM,WAAW,UAAU;AAAA,EAC/B;AAAA,EAEA,MAAM,QAAQ;AACV,SAAK,WAAW,MAAM;AACtB,SAAK,UAAU,QAAQ,WAAS,MAAM,KAAK,CAAC;AAC5C,SAAK,UAAU,MAAM;AAAA,EACzB;AACJ;",
5
5
  "names": []
6
6
  }
@@ -3,7 +3,7 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { BasicSet, Bytes, ChannelType, Diagnostic, Lifespan, ServerAddressIp } from "#general";
6
+ import { BasicSet, Bytes, ChannelType, Diagnostic, Duration, Lifespan, ServerAddressIp } from "#general";
7
7
  import { NodeId } from "#types";
8
8
  import { CommissionableDevice, CommissionableDeviceIdentifiers, DiscoveryData, OperationalDevice, Scanner } from "../common/Scanner.js";
9
9
  import { Fabric } from "../fabric/Fabric.js";
@@ -42,7 +42,7 @@ export declare class MdnsClient implements Scanner {
42
42
  * Method to find an operational device (already commissioned) and return a promise with the list of discovered
43
43
  * IP/ports or an empty array if not found.
44
44
  */
45
- findOperationalDevice({ operationalId }: Fabric, nodeId: NodeId, timeoutSeconds?: number, ignoreExistingRecords?: boolean): Promise<OperationalDevice | undefined>;
45
+ findOperationalDevice({ operationalId }: Fabric, nodeId: NodeId, timeout?: Duration, ignoreExistingRecords?: boolean): Promise<OperationalDevice | undefined>;
46
46
  cancelOperationalDeviceDiscovery(fabric: Fabric, nodeId: NodeId, resolvePromise?: boolean): void;
47
47
  cancelCommissionableDeviceDiscovery(identifier: CommissionableDeviceIdentifiers, resolvePromise?: boolean): void;
48
48
  getDiscoveredOperationalDevice({ operationalId }: Fabric, nodeId: NodeId): OperationalDevice | undefined;
@@ -54,19 +54,19 @@ export declare class MdnsClient implements Scanner {
54
54
  * promise got fulfilled no more queries are send out, but more device entries might be added when discovered later.
55
55
  * These can be requested by the getCommissionableDevices method.
56
56
  */
57
- findCommissionableDevices(identifier: CommissionableDeviceIdentifiers, timeoutSeconds?: number, ignoreExistingRecords?: boolean): Promise<CommissionableDevice[]>;
57
+ findCommissionableDevices(identifier: CommissionableDeviceIdentifiers, timeout?: Duration, ignoreExistingRecords?: boolean): Promise<CommissionableDevice[]>;
58
58
  /**
59
59
  * Discovers commissionable devices based on a defined identifier and returns the first found entries.
60
60
  * If an own cancelSignal promise is used the discovery can only be cancelled via this signal!
61
61
  */
62
- findCommissionableDevicesContinuously(identifier: CommissionableDeviceIdentifiers, callback: (device: CommissionableDevice) => void, timeoutSeconds?: number, cancelSignal?: Promise<void>): Promise<CommissionableDevice[]>;
62
+ findCommissionableDevicesContinuously(identifier: CommissionableDeviceIdentifiers, callback: (device: CommissionableDevice) => void, timeout?: Duration, cancelSignal?: Promise<void>): Promise<CommissionableDevice[]>;
63
63
  getDiscoveredCommissionableDevices(identifier: CommissionableDeviceIdentifiers): {
64
64
  addresses: ServerAddressIp[];
65
65
  discoveredAt: undefined;
66
66
  ttl: undefined;
67
- SII?: number | undefined;
68
- SAI?: number | undefined;
69
- SAT?: number | undefined;
67
+ SII?: Duration | undefined;
68
+ SAI?: Duration | undefined;
69
+ SAT?: Duration | undefined;
70
70
  DN?: string | undefined;
71
71
  DT?: number | undefined;
72
72
  VP?: string | undefined;
@@ -87,8 +87,8 @@ export declare class MdnsClient implements Scanner {
87
87
  * Close all connects, end all timers and resolve all pending promises.
88
88
  */
89
89
  close(): Promise<void>;
90
- static discoveryDataDiagnostics(data: DiscoveryData): Record<string, unknown> & Diagnostic;
91
- static deviceAddressDiagnostics(addresses: Map<string, MatterServerRecordWithExpire>): (Record<string, unknown> & Diagnostic)[];
90
+ static discoveryDataDiagnostics(data: DiscoveryData, kind?: string): Record<string, unknown> & Diagnostic;
91
+ static deviceAddressDiagnostics(addresses: Map<string, MatterServerRecordWithExpire>): Diagnostic;
92
92
  }
93
93
  export {};
94
94
  //# sourceMappingURL=MdnsClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MdnsClient.d.ts","sourceRoot":"","sources":["../../../src/mdns/MdnsClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,QAAQ,EACR,KAAK,EACL,WAAW,EACX,UAAU,EAQV,QAAQ,EAGR,eAAe,EAMlB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,MAAM,EAAY,MAAM,QAAQ,CAAC;AAC1C,OAAO,EACH,oBAAoB,EACpB,+BAA+B,EAC/B,aAAa,EACb,iBAAiB,EACjB,OAAO,EACV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAY7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAM7C,KAAK,4BAA4B,GAAG,eAAe,GAAG,QAAQ,CAAC;AAoC/D;;;;;;;;;GASG;AACH,MAAM,WAAW,yBAAyB;IACtC,gDAAgD;IAChD,cAAc,EAAE,OAAO,CAAC;IAExB,mCAAmC;IACnC,kBAAkB,EAAE;QAChB,aAAa,EAAE,KAAK,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;KACnB,EAAE,CAAC;CACP;AAED;;;GAGG;AACH,qBAAa,UAAW,YAAW,OAAO;;IACtC,QAAQ,CAAC,IAAI,mBAAmB;gBAyCpB,MAAM,EAAE,UAAU;IAW9B,uDAAuD;IACvD,IAAI,uBAAuB,mEAE1B;IAkTD;;;OAGG;IACG,qBAAqB,CACvB,EAAE,aAAa,EAAE,EAAE,MAAM,EACzB,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,MAAM,EACvB,qBAAqB,UAAQ,GAC9B,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAwBzC,gCAAgC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,UAAO;IAKtF,mCAAmC,CAAC,UAAU,EAAE,+BAA+B,EAAE,cAAc,UAAO;IAQtG,8BAA8B,CAAC,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAoLxE;;;;;;;OAOG;IACG,yBAAyB,CAC3B,UAAU,EAAE,+BAA+B,EAC3C,cAAc,SAAI,EAClB,qBAAqB,UAAQ,GAC9B,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAiBlC;;;OAGG;IACG,qCAAqC,CACvC,UAAU,EAAE,+BAA+B,EAC3C,QAAQ,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,EAChD,cAAc,CAAC,EAAE,MAAM,EACvB,YAAY,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAC7B,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAiDlC,kCAAkC,CAAC,UAAU,EAAE,+BAA+B;mBAlOvD,eAAe,EAAE;;;;;;;;;;;;;;;;;oBAxfxB,MAAM;YACd,MAAM;YACN,MAAM;YACN,MAAM;;IA2tBd;;OAEG;IACG,KAAK;IA6tBX,MAAM,CAAC,wBAAwB,CAAC,IAAI,EAAE,aAAa;IAmBnD,MAAM,CAAC,wBAAwB,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,4BAA4B,CAAC;CASvF"}
1
+ {"version":3,"file":"MdnsClient.d.ts","sourceRoot":"","sources":["../../../src/mdns/MdnsClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,QAAQ,EACR,KAAK,EACL,WAAW,EACX,UAAU,EAMV,QAAQ,EAKR,QAAQ,EAOR,eAAe,EAOlB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,MAAM,EAAY,MAAM,QAAQ,CAAC;AAC1C,OAAO,EACH,oBAAoB,EACpB,+BAA+B,EAC/B,aAAa,EACb,iBAAiB,EACjB,OAAO,EACV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAY7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAM7C,KAAK,4BAA4B,GAAG,eAAe,GAAG,QAAQ,CAAC;AAoC/D;;;;;;;;;GASG;AACH,MAAM,WAAW,yBAAyB;IACtC,gDAAgD;IAChD,cAAc,EAAE,OAAO,CAAC;IAExB,mCAAmC;IACnC,kBAAkB,EAAE;QAChB,aAAa,EAAE,KAAK,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;KACnB,EAAE,CAAC;CACP;AAED;;;GAGG;AACH,qBAAa,UAAW,YAAW,OAAO;;IACtC,QAAQ,CAAC,IAAI,mBAAmB;gBAyCpB,MAAM,EAAE,UAAU;IAW9B,uDAAuD;IACvD,IAAI,uBAAuB,mEAE1B;IAkTD;;;OAGG;IACG,qBAAqB,CACvB,EAAE,aAAa,EAAE,EAAE,MAAM,EACzB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,QAAQ,EAClB,qBAAqB,UAAQ,GAC9B,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAwBzC,gCAAgC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,UAAO;IAKtF,mCAAmC,CAAC,UAAU,EAAE,+BAA+B,EAAE,cAAc,UAAO;IAQtG,8BAA8B,CAAC,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAoLxE;;;;;;;OAOG;IACG,yBAAyB,CAC3B,UAAU,EAAE,+BAA+B,EAC3C,OAAO,WAAa,EACpB,qBAAqB,UAAQ,GAC9B,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAiBlC;;;OAGG;IACG,qCAAqC,CACvC,UAAU,EAAE,+BAA+B,EAC3C,QAAQ,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,EAChD,OAAO,CAAC,EAAE,QAAQ,EAClB,YAAY,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAC7B,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAiDlC,kCAAkC,CAAC,UAAU,EAAE,+BAA+B;mBAlOvD,eAAe,EAAE;;;;;;;;;;;;;;;;;oBAxfxB,MAAM;YACd,MAAM;YACN,MAAM;YACN,MAAM;;IA2tBd;;OAEG;IACG,KAAK;IAstBX,MAAM,CAAC,wBAAwB,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,MAAM;IAiBlE,MAAM,CAAC,wBAAwB,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,4BAA4B,CAAC;CAUvF"}
@@ -31,7 +31,7 @@ var import_MdnsConsts = require("./MdnsConsts.js");
31
31
  */
32
32
  const logger = import_general.Logger.get("MdnsClient");
33
33
  const MDNS_EXPIRY_GRACE_PERIOD_FACTOR = 1.05;
34
- const START_ANNOUNCE_INTERVAL_SECONDS = 1.5;
34
+ const START_ANNOUNCE_INTERVAL = (0, import_general.Seconds)(1.5);
35
35
  class MdnsClient {
36
36
  type = import_general.ChannelType.UDP;
37
37
  /** Active announces by queryId with queries and known answers */
@@ -45,7 +45,7 @@ class MdnsClient {
45
45
  /** Waiters for specific queryIds to resolve a promise when a record is discovered */
46
46
  #recordWaiters = /* @__PURE__ */ new Map();
47
47
  #queryTimer;
48
- #nextAnnounceIntervalSeconds = START_ANNOUNCE_INTERVAL_SECONDS;
48
+ #nextAnnounceInterval = START_ANNOUNCE_INTERVAL;
49
49
  #periodicTimer;
50
50
  #closing = false;
51
51
  #socket;
@@ -61,7 +61,7 @@ class MdnsClient {
61
61
  this.#observers.on(this.#socket.receipt, this.#handleMessage.bind(this));
62
62
  this.#periodicTimer = import_general.Time.getPeriodicTimer(
63
63
  "Discovered node expiration",
64
- 60 * 1e3,
64
+ import_general.Minutes.one,
65
65
  () => this.#expire()
66
66
  ).start();
67
67
  this.#observers.on(this.#targetCriteriaProviders.added, () => this.#handleChangedScanTargets());
@@ -119,7 +119,7 @@ class MdnsClient {
119
119
  }
120
120
  }
121
121
  #effectiveTTL(ttl) {
122
- return Math.ceil(ttl * MDNS_EXPIRY_GRACE_PERIOD_FACTOR);
122
+ return (0, import_general.Millis)(ttl * MDNS_EXPIRY_GRACE_PERIOD_FACTOR);
123
123
  }
124
124
  /**
125
125
  * Sends out one DNS-SD query for all collected announce records and start a timer for the next query with doubled
@@ -138,18 +138,14 @@ class MdnsClient {
138
138
  );
139
139
  this.#queryTimer = import_general.Time.getTimer(
140
140
  "MDNS discovery",
141
- this.#nextAnnounceIntervalSeconds * 1e3,
141
+ this.#nextAnnounceInterval,
142
142
  () => this.#sendQueries()
143
143
  ).start();
144
144
  logger.debug(
145
- `Sending ${queries.length} query records for ${this.#activeAnnounceQueries.size} queries with ${answers.length} known answers. Re-Announce in ${this.#nextAnnounceIntervalSeconds} seconds`
146
- );
147
- const nextAnnounceInterval = this.#nextAnnounceIntervalSeconds * 2;
148
- this.#nextAnnounceIntervalSeconds = Math.min(
149
- nextAnnounceInterval,
150
- 60 * 60
151
- /* 1 hour */
145
+ `Sending ${queries.length} query records for ${this.#activeAnnounceQueries.size} queries with ${answers.length} known answers. Re-Announce in ${import_general.Duration.format(this.#nextAnnounceInterval)}`
152
146
  );
147
+ const nextAnnounceInterval = (0, import_general.Millis)(this.#nextAnnounceInterval * 2);
148
+ this.#nextAnnounceInterval = import_general.Duration.min(nextAnnounceInterval, import_general.Hours.one);
153
149
  await this.#socket.send({
154
150
  messageType: import_general.DnsMessageType.Query,
155
151
  queries,
@@ -181,8 +177,8 @@ class MdnsClient {
181
177
  this.#activeAnnounceQueries.set(queryId, { queries, answers });
182
178
  logger.debug(`Set ${queries.length} query records for query ${queryId}: ${import_general.Diagnostic.json(queries)}`);
183
179
  this.#queryTimer?.stop();
184
- this.#nextAnnounceIntervalSeconds = START_ANNOUNCE_INTERVAL_SECONDS;
185
- this.#queryTimer = import_general.Time.getTimer("MDNS discovery", 0, () => this.#sendQueries()).start();
180
+ this.#nextAnnounceInterval = START_ANNOUNCE_INTERVAL;
181
+ this.#queryTimer = import_general.Time.getTimer("MDNS discovery", import_general.Instant, () => this.#sendQueries()).start();
186
182
  }
187
183
  /**
188
184
  * Combines the known answers from all active queries and the known IP addresses from the network
@@ -203,7 +199,7 @@ class MdnsClient {
203
199
  if (this.#activeAnnounceQueries.size === 0) {
204
200
  logger.debug(`Removing last query ${queryId} and stopping announce timer`);
205
201
  this.#queryTimer?.stop();
206
- this.#nextAnnounceIntervalSeconds = START_ANNOUNCE_INTERVAL_SECONDS;
202
+ this.#nextAnnounceInterval = START_ANNOUNCE_INTERVAL;
207
203
  } else {
208
204
  logger.debug(`Removing query ${queryId}`);
209
205
  }
@@ -268,9 +264,9 @@ class MdnsClient {
268
264
  * Registers a deferred promise for a specific queryId together with a timeout and return the promise.
269
265
  * The promise will be resolved when the timer runs out latest.
270
266
  */
271
- async #registerWaiterPromise(queryId, commissionable, timeoutSeconds, resolveOnUpdatedRecords = true, cancelResolver) {
267
+ async #registerWaiterPromise(queryId, commissionable, timeout, resolveOnUpdatedRecords = true, cancelResolver) {
272
268
  const { promise, resolver } = (0, import_general.createPromise)();
273
- const timer = timeoutSeconds !== void 0 ? import_general.Time.getTimer("MDNS timeout", timeoutSeconds * 1e3, () => {
269
+ const timer = timeout !== void 0 ? import_general.Time.getTimer("MDNS timeout", timeout, () => {
274
270
  cancelResolver?.();
275
271
  this.#finishWaiter(queryId, true);
276
272
  }).start() : void 0;
@@ -281,7 +277,7 @@ class MdnsClient {
281
277
  this.#registerOperationalQuery(queryId);
282
278
  }
283
279
  logger.debug(
284
- `Registered waiter for query ${queryId} with ${timeoutSeconds !== void 0 ? `timeout ${timeoutSeconds} seconds` : "no timeout"}${resolveOnUpdatedRecords ? "" : " (not resolving on updated records)"}`
280
+ `Registered waiter for query ${queryId} with ${timeout !== void 0 ? `timeout ${timeout}` : "no timeout"}${resolveOnUpdatedRecords ? "" : " (not resolving on updated records)"}`
285
281
  );
286
282
  await promise;
287
283
  }
@@ -336,14 +332,14 @@ class MdnsClient {
336
332
  * Method to find an operational device (already commissioned) and return a promise with the list of discovered
337
333
  * IP/ports or an empty array if not found.
338
334
  */
339
- async findOperationalDevice({ operationalId }, nodeId, timeoutSeconds, ignoreExistingRecords = false) {
335
+ async findOperationalDevice({ operationalId }, nodeId, timeout, ignoreExistingRecords = false) {
340
336
  if (this.#closing) {
341
337
  throw new import_general.ImplementationError("Cannot discover operational device because scanner is closing.");
342
338
  }
343
339
  const deviceMatterQname = this.#createOperationalMatterQName(operationalId, nodeId);
344
340
  let storedDevice = ignoreExistingRecords ? void 0 : this.#getOperationalDeviceRecords(deviceMatterQname);
345
341
  if (storedDevice === void 0) {
346
- const promise = this.#registerWaiterPromise(deviceMatterQname, false, timeoutSeconds);
342
+ const promise = this.#registerWaiterPromise(deviceMatterQname, false, timeout);
347
343
  this.#setQueryRecords(deviceMatterQname, [
348
344
  {
349
345
  name: deviceMatterQname,
@@ -523,11 +519,11 @@ class MdnsClient {
523
519
  * promise got fulfilled no more queries are send out, but more device entries might be added when discovered later.
524
520
  * These can be requested by the getCommissionableDevices method.
525
521
  */
526
- async findCommissionableDevices(identifier, timeoutSeconds = 5, ignoreExistingRecords = false) {
522
+ async findCommissionableDevices(identifier, timeout = (0, import_general.Seconds)(5), ignoreExistingRecords = false) {
527
523
  let storedRecords = ignoreExistingRecords ? [] : this.#getCommissionableDeviceRecords(identifier).filter(({ addresses }) => addresses.length > 0);
528
524
  if (storedRecords.length === 0) {
529
525
  const queryId = this.#buildCommissionableQueryIdentifier(identifier);
530
- const promise = this.#registerWaiterPromise(queryId, true, timeoutSeconds);
526
+ const promise = this.#registerWaiterPromise(queryId, true, timeout);
531
527
  this.#setQueryRecords(queryId, this.#getCommissionableQueryRecords(identifier));
532
528
  await promise;
533
529
  storedRecords = this.#getCommissionableDeviceRecords(identifier);
@@ -538,9 +534,9 @@ class MdnsClient {
538
534
  * Discovers commissionable devices based on a defined identifier and returns the first found entries.
539
535
  * If an own cancelSignal promise is used the discovery can only be cancelled via this signal!
540
536
  */
541
- async findCommissionableDevicesContinuously(identifier, callback, timeoutSeconds, cancelSignal) {
537
+ async findCommissionableDevicesContinuously(identifier, callback, timeout, cancelSignal) {
542
538
  const discoveredDevices = /* @__PURE__ */ new Set();
543
- const discoveryEndTime = timeoutSeconds ? import_general.Time.nowMs() + timeoutSeconds * 1e3 : void 0;
539
+ const discoveryEndTime = timeout ? import_general.Time.nowMs + timeout : void 0;
544
540
  const queryId = this.#buildCommissionableQueryIdentifier(identifier);
545
541
  this.#setQueryRecords(queryId, this.#getCommissionableQueryRecords(identifier));
546
542
  let queryResolver;
@@ -571,7 +567,7 @@ class MdnsClient {
571
567
  });
572
568
  let remainingTime;
573
569
  if (discoveryEndTime !== void 0) {
574
- remainingTime = Math.ceil((discoveryEndTime - import_general.Time.nowMs()) / 1e3);
570
+ remainingTime = import_general.Seconds.ceil((0, import_general.Timespan)(import_general.Time.nowMs, discoveryEndTime).duration);
575
571
  if (remainingTime <= 0) {
576
572
  break;
577
573
  }
@@ -598,7 +594,7 @@ class MdnsClient {
598
594
  /** Converts the discovery data into a structured format for performant access. */
599
595
  #structureAnswers(...answersList) {
600
596
  const structuredAnswers = {};
601
- const discoveredAt = import_general.Time.nowMs();
597
+ const discoveredAt = import_general.Time.nowMs;
602
598
  answersList.forEach(
603
599
  (answers) => answers.forEach((answer) => {
604
600
  const { name, recordType } = answer;
@@ -854,7 +850,7 @@ class MdnsClient {
854
850
  }
855
851
  #handleOperationalTxtRecord(record, netInterface) {
856
852
  const { name: matterName, value, ttl } = record;
857
- const discoveredAt = import_general.Time.nowMs();
853
+ const discoveredAt = import_general.Time.nowMs;
858
854
  if (ttl === 0) {
859
855
  if (this.#operationalDeviceRecords.has(matterName)) {
860
856
  logger.debug(
@@ -875,19 +871,16 @@ class MdnsClient {
875
871
  device = {
876
872
  ...device,
877
873
  discoveredAt,
878
- ttl: ttl * 1e3,
874
+ ttl,
879
875
  ...txtData
880
876
  };
881
877
  } else {
882
- logger.debug(
883
- `Adding operational device ${matterName} in cache (interface ${netInterface}, ttl=${ttl}) with TXT data:`,
884
- MdnsClient.discoveryDataDiagnostics(txtData)
885
- );
878
+ logNewService(matterName, "operational", txtData);
886
879
  device = {
887
880
  deviceIdentifier: matterName,
888
881
  addresses: /* @__PURE__ */ new Map(),
889
882
  discoveredAt,
890
- ttl: ttl * 1e3,
883
+ ttl,
891
884
  ...txtData
892
885
  };
893
886
  }
@@ -913,12 +906,12 @@ class MdnsClient {
913
906
  if (!deviceExisted && !this.#matchesOperationalCriteria(matterName)) {
914
907
  return;
915
908
  }
916
- const discoveredAt = import_general.Time.nowMs();
909
+ const discoveredAt = import_general.Time.nowMs;
917
910
  const device = this.#operationalDeviceRecords.get(matterName) ?? {
918
911
  deviceIdentifier: matterName,
919
912
  addresses: /* @__PURE__ */ new Map(),
920
913
  discoveredAt,
921
- ttl: ttl * 1e3
914
+ ttl
922
915
  };
923
916
  const ipsInitiallyEmpty = device.addresses.size === 0;
924
917
  const { addresses } = device;
@@ -933,15 +926,12 @@ class MdnsClient {
933
926
  }
934
927
  const address = addresses.get(ip) ?? { ip, port, type: "udp" };
935
928
  address.discoveredAt = discoveredAt;
936
- address.ttl = ttl2 * 1e3;
929
+ address.ttl = ttl2;
937
930
  addresses.set(address.ip, address);
938
931
  }
939
932
  device.addresses = addresses;
940
933
  if (ipsInitiallyEmpty) {
941
- logger.debug(
942
- `Added ${addresses.size} IPs for operational device ${matterName} to cache (interface ${netInterface}):`,
943
- ...MdnsClient.deviceAddressDiagnostics(addresses)
944
- );
934
+ logNewAddresses(matterName, "operational", netInterface, addresses);
945
935
  }
946
936
  this.#operationalDeviceRecords.set(matterName, device);
947
937
  }
@@ -999,10 +989,7 @@ class MdnsClient {
999
989
  const storedRecord = this.#commissionableDeviceRecords.get(name);
1000
990
  if (storedRecord === void 0) {
1001
991
  queryMissingDataForInstances.add(name);
1002
- logger.debug(
1003
- `Found commissionable device ${name} with data:`,
1004
- MdnsClient.discoveryDataDiagnostics(parsedRecord)
1005
- );
992
+ logNewService(name, "commissionable", parsedRecord);
1006
993
  } else {
1007
994
  parsedRecord.addresses = storedRecord.addresses;
1008
995
  }
@@ -1035,8 +1022,8 @@ class MdnsClient {
1035
1022
  continue;
1036
1023
  }
1037
1024
  const matterServer = storedRecord.addresses.get(ip) ?? { ip, port, type: "udp" };
1038
- matterServer.discoveredAt = import_general.Time.nowMs();
1039
- matterServer.ttl = ttl2 * 1e3;
1025
+ matterServer.discoveredAt = import_general.Time.nowMs;
1026
+ matterServer.ttl = ttl2;
1040
1027
  storedRecord.addresses.set(ip, matterServer);
1041
1028
  }
1042
1029
  }
@@ -1053,10 +1040,7 @@ class MdnsClient {
1053
1040
  );
1054
1041
  this.#setQueryRecords(queryId2, queries, answers);
1055
1042
  } else if (!recordAddressesKnown) {
1056
- logger.debug(
1057
- `Added ${storedRecord.addresses.size} IPs for commissionable device ${record.name} to cache (interface ${netInterface}):`,
1058
- ...MdnsClient.deviceAddressDiagnostics(storedRecord.addresses)
1059
- );
1043
+ logNewAddresses(record.name, "commissionable", netInterface, storedRecord.addresses);
1060
1044
  }
1061
1045
  if (storedRecord.addresses.size === 0) continue;
1062
1046
  const queryId = this.#findCommissionableQueryIdentifier(record.name, storedRecord);
@@ -1086,12 +1070,17 @@ class MdnsClient {
1086
1070
  for (const item of value) {
1087
1071
  const [key, value2] = item.split("=");
1088
1072
  if (key === void 0 || value2 === void 0) continue;
1089
- if (["SII", "SAI", "SAT", "T", "D", "CM", "DT", "PH", "ICD"].includes(key)) {
1073
+ if (["T", "D", "CM", "DT", "PH", "ICD"].includes(key)) {
1090
1074
  const intValue = parseInt(value2);
1091
1075
  if (isNaN(intValue)) continue;
1092
1076
  result[key] = intValue;
1093
1077
  } else if (["VP", "DN", "RI", "PI"].includes(key)) {
1094
1078
  result[key] = value2;
1079
+ } else if (["SII", "SAI", "SAT"].includes(key)) {
1080
+ const intValue = parseInt(value2);
1081
+ if (isNaN(intValue)) continue;
1082
+ result[key] = intValue;
1083
+ result[key] = (0, import_general.Millis)(intValue);
1095
1084
  }
1096
1085
  }
1097
1086
  }
@@ -1114,13 +1103,13 @@ class MdnsClient {
1114
1103
  }
1115
1104
  return {
1116
1105
  addresses: /* @__PURE__ */ new Map(),
1117
- discoveredAt: import_general.Time.nowMs(),
1118
- ttl: ttl * 1e3,
1106
+ discoveredAt: import_general.Time.nowMs,
1107
+ ttl,
1119
1108
  ...txtRecord
1120
1109
  };
1121
1110
  }
1122
1111
  #expire() {
1123
- const now = import_general.Time.nowMs();
1112
+ const now = import_general.Time.nowMs;
1124
1113
  [...this.#operationalDeviceRecords.entries()].forEach(([recordKey, { addresses, discoveredAt, ttl }]) => {
1125
1114
  const expires = discoveredAt + this.#effectiveTTL(ttl);
1126
1115
  if (now <= expires) {
@@ -1153,7 +1142,7 @@ class MdnsClient {
1153
1142
  Object.keys(data.operational).forEach((recordType) => {
1154
1143
  const type = parseInt(recordType);
1155
1144
  data.operational[type] = data.operational[type].filter(
1156
- ({ discoveredAt, ttl }) => now < discoveredAt + this.#effectiveTTL(ttl * 1e3)
1145
+ ({ discoveredAt, ttl }) => now < discoveredAt + this.#effectiveTTL(ttl)
1157
1146
  );
1158
1147
  if (data.operational[type].length === 0) {
1159
1148
  delete data.operational[type];
@@ -1164,7 +1153,7 @@ class MdnsClient {
1164
1153
  Object.keys(data.commissionable).forEach((recordType) => {
1165
1154
  const type = parseInt(recordType);
1166
1155
  data.commissionable[type] = data.commissionable[type].filter(
1167
- ({ discoveredAt, ttl }) => now < discoveredAt + this.#effectiveTTL(ttl * 1e3)
1156
+ ({ discoveredAt, ttl }) => now < discoveredAt + this.#effectiveTTL(ttl)
1168
1157
  );
1169
1158
  if (data.commissionable[type].length === 0) {
1170
1159
  delete data.commissionable[type];
@@ -1174,7 +1163,7 @@ class MdnsClient {
1174
1163
  if (data.addressesV6) {
1175
1164
  Object.keys(data.addressesV6).forEach((name) => {
1176
1165
  for (const [ip, { discoveredAt, ttl }] of data.addressesV6[name].entries()) {
1177
- if (now < discoveredAt + this.#effectiveTTL(ttl * 1e3)) continue;
1166
+ if (now < discoveredAt + this.#effectiveTTL(ttl)) continue;
1178
1167
  data.addressesV6[name].delete(ip);
1179
1168
  }
1180
1169
  if (data.addressesV6[name].size === 0) {
@@ -1185,7 +1174,7 @@ class MdnsClient {
1185
1174
  if (data.addressesV4) {
1186
1175
  Object.keys(data.addressesV4).forEach((name) => {
1187
1176
  for (const [ip, { discoveredAt, ttl }] of data.addressesV4[name].entries()) {
1188
- if (now < discoveredAt + this.#effectiveTTL(ttl * 1e3)) continue;
1177
+ if (now < discoveredAt + this.#effectiveTTL(ttl)) continue;
1189
1178
  data.addressesV4[name].delete(ip);
1190
1179
  }
1191
1180
  if (data.addressesV4[name].size === 0) {
@@ -1194,32 +1183,47 @@ class MdnsClient {
1194
1183
  });
1195
1184
  }
1196
1185
  }
1197
- static discoveryDataDiagnostics(data) {
1198
- return import_general.Diagnostic.dict(
1199
- {
1200
- SII: data.SII,
1201
- SAI: data.SAI,
1202
- SAT: data.SAT,
1203
- T: data.T,
1204
- DT: data.DT,
1205
- PH: data.PH,
1206
- ICD: data.ICD,
1207
- VP: data.VP,
1208
- DN: data.DN,
1209
- RI: data.RI,
1210
- PI: data.PI
1211
- },
1212
- true
1213
- );
1186
+ static discoveryDataDiagnostics(data, kind) {
1187
+ return import_general.Diagnostic.dict({
1188
+ kind,
1189
+ SII: import_general.Duration.format(data.SII),
1190
+ SAI: import_general.Duration.format(data.SAI),
1191
+ SAT: import_general.Duration.format(data.SAT),
1192
+ T: data.T,
1193
+ DT: data.DT,
1194
+ PH: data.PH,
1195
+ ICD: data.ICD,
1196
+ VP: data.VP,
1197
+ DN: data.DN,
1198
+ RI: data.RI,
1199
+ PI: data.PI
1200
+ });
1214
1201
  }
1215
1202
  static deviceAddressDiagnostics(addresses) {
1216
- return Array.from(addresses.values()).map(
1217
- (address) => import_general.Diagnostic.dict({
1218
- type: address.type,
1219
- ip: address.ip,
1220
- port: address.port
1221
- })
1222
- );
1203
+ const diagnostic = Array();
1204
+ for (const address of addresses.values()) {
1205
+ if (diagnostic.length) {
1206
+ diagnostic.push(", ");
1207
+ }
1208
+ diagnostic.push(import_general.ServerAddress.diagnosticFor(address));
1209
+ }
1210
+ return import_general.Diagnostic.squash(...diagnostic);
1223
1211
  }
1224
1212
  }
1213
+ function logNewService(service, kind, data) {
1214
+ logger.debug("Found device", import_general.Diagnostic.strong(service), MdnsClient.discoveryDataDiagnostics(data, kind));
1215
+ }
1216
+ function logNewAddresses(service, kind, intf, addresses) {
1217
+ logger.debug(
1218
+ "Added",
1219
+ addresses.size,
1220
+ "addresses for",
1221
+ import_general.Diagnostic.strong(service),
1222
+ import_general.Diagnostic.dict({
1223
+ kind,
1224
+ addrs: MdnsClient.deviceAddressDiagnostics(addresses),
1225
+ intf
1226
+ })
1227
+ );
1228
+ }
1225
1229
  //# sourceMappingURL=MdnsClient.js.map