@matter/thread-br-client 0.0.1 → 0.17.5-alpha.0-20260706-fd4c49e2e

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 (575) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +5 -5
  3. package/dist/cjs/coap/CoapClient.d.ts +2 -2
  4. package/dist/cjs/coap/CoapClient.d.ts.map +1 -1
  5. package/dist/cjs/coap/CoapClient.js +9 -16
  6. package/dist/cjs/coap/CoapClient.js.map +1 -1
  7. package/dist/cjs/coap/CoapMessage.d.ts +11 -6
  8. package/dist/cjs/coap/CoapMessage.d.ts.map +1 -1
  9. package/dist/cjs/coap/CoapMessage.js +8 -5
  10. package/dist/cjs/coap/CoapMessage.js.map +1 -1
  11. package/dist/cjs/commissioner/Commissioner.d.ts.map +1 -1
  12. package/dist/cjs/commissioner/Commissioner.js +5 -2
  13. package/dist/cjs/commissioner/Commissioner.js.map +1 -1
  14. package/dist/cjs/commissioner/LeadKa.d.ts +3 -3
  15. package/dist/cjs/commissioner/LeadKa.d.ts.map +1 -1
  16. package/dist/cjs/commissioner/LeadKa.js +1 -1
  17. package/dist/cjs/commissioner/LeadKa.js.map +1 -1
  18. package/dist/cjs/commissioner/LeadPet.d.ts +3 -2
  19. package/dist/cjs/commissioner/LeadPet.d.ts.map +1 -1
  20. package/dist/cjs/commissioner/LeadPet.js +4 -3
  21. package/dist/cjs/commissioner/LeadPet.js.map +1 -1
  22. package/dist/cjs/credentials/ThreadCredentialsRegistry.d.ts +5 -5
  23. package/dist/cjs/credentials/ThreadCredentialsRegistry.d.ts.map +1 -1
  24. package/dist/cjs/credentials/ThreadCredentialsRegistry.js +10 -9
  25. package/dist/cjs/credentials/ThreadCredentialsRegistry.js.map +1 -1
  26. package/dist/cjs/credentials/ThreadNetworkCredentials.d.ts +4 -3
  27. package/dist/cjs/credentials/ThreadNetworkCredentials.d.ts.map +1 -1
  28. package/dist/cjs/crypto/AesCmacPrf128.d.ts +4 -14
  29. package/dist/cjs/crypto/AesCmacPrf128.d.ts.map +1 -1
  30. package/dist/cjs/crypto/AesCmacPrf128.js +7 -71
  31. package/dist/cjs/crypto/AesCmacPrf128.js.map +2 -2
  32. package/dist/cjs/crypto/Pbkdf2AesCmac.d.ts +5 -4
  33. package/dist/cjs/crypto/Pbkdf2AesCmac.d.ts.map +1 -1
  34. package/dist/cjs/crypto/Pbkdf2AesCmac.js +5 -4
  35. package/dist/cjs/crypto/Pbkdf2AesCmac.js.map +1 -1
  36. package/dist/cjs/crypto/Pskc.d.ts +4 -3
  37. package/dist/cjs/crypto/Pskc.d.ts.map +1 -1
  38. package/dist/cjs/crypto/Pskc.js +6 -5
  39. package/dist/cjs/crypto/Pskc.js.map +1 -1
  40. package/dist/cjs/crypto/index.d.ts +1 -1
  41. package/dist/cjs/crypto/index.d.ts.map +1 -1
  42. package/dist/cjs/crypto/index.js +0 -1
  43. package/dist/cjs/crypto/index.js.map +1 -1
  44. package/dist/cjs/dataset/OperationalDataset.d.ts +10 -10
  45. package/dist/cjs/dataset/OperationalDataset.d.ts.map +1 -1
  46. package/dist/cjs/dataset/OperationalDataset.js +32 -31
  47. package/dist/cjs/dataset/OperationalDataset.js.map +1 -1
  48. package/dist/cjs/dataset/SecurityPolicy.d.ts +3 -2
  49. package/dist/cjs/dataset/SecurityPolicy.d.ts.map +1 -1
  50. package/dist/cjs/dataset/SecurityPolicy.js +5 -4
  51. package/dist/cjs/dataset/SecurityPolicy.js.map +1 -1
  52. package/dist/cjs/diagnostic/DiagnosticResponse.d.ts +5 -4
  53. package/dist/cjs/diagnostic/DiagnosticResponse.d.ts.map +1 -1
  54. package/dist/cjs/diagnostic/DiagnosticSource.d.ts +2 -2
  55. package/dist/cjs/diagnostic/DiagnosticSource.d.ts.map +1 -1
  56. package/dist/cjs/diagnostic/MeshCopDiagnosticSource.d.ts +7 -3
  57. package/dist/cjs/diagnostic/MeshCopDiagnosticSource.d.ts.map +1 -1
  58. package/dist/cjs/diagnostic/MeshCopDiagnosticSource.js +48 -43
  59. package/dist/cjs/diagnostic/MeshCopDiagnosticSource.js.map +1 -1
  60. package/dist/cjs/diagnostic/connectMeshcop.d.ts.map +1 -1
  61. package/dist/cjs/diagnostic/connectMeshcop.js +5 -12
  62. package/dist/cjs/diagnostic/connectMeshcop.js.map +1 -1
  63. package/dist/cjs/diagnostic/errors.d.ts +1 -1
  64. package/dist/cjs/diagnostic/errors.d.ts.map +1 -1
  65. package/dist/cjs/discovery/BorderRouterRegistry.d.ts.map +1 -1
  66. package/dist/cjs/discovery/BorderRouterRegistry.js +2 -4
  67. package/dist/cjs/discovery/BorderRouterRegistry.js.map +1 -1
  68. package/dist/cjs/dtls/channel/DtlsConnectOpts.d.ts +3 -3
  69. package/dist/cjs/dtls/channel/DtlsConnectOpts.d.ts.map +1 -1
  70. package/dist/cjs/dtls/channel/NobleDtlsChannel.d.ts.map +1 -1
  71. package/dist/cjs/dtls/channel/NobleDtlsChannel.js +89 -58
  72. package/dist/cjs/dtls/channel/NobleDtlsChannel.js.map +1 -1
  73. package/dist/cjs/dtls/ecjpake/EcJpakePms.d.ts +5 -4
  74. package/dist/cjs/dtls/ecjpake/EcJpakePms.d.ts.map +1 -1
  75. package/dist/cjs/dtls/ecjpake/EcJpakePms.js +4 -5
  76. package/dist/cjs/dtls/ecjpake/EcJpakePms.js.map +1 -1
  77. package/dist/cjs/dtls/ecjpake/EcJpakeRound.d.ts +16 -15
  78. package/dist/cjs/dtls/ecjpake/EcJpakeRound.d.ts.map +1 -1
  79. package/dist/cjs/dtls/ecjpake/EcJpakeRound.js +40 -29
  80. package/dist/cjs/dtls/ecjpake/EcJpakeRound.js.map +1 -1
  81. package/dist/cjs/dtls/ecjpake/SchnorrZkp.d.ts +10 -9
  82. package/dist/cjs/dtls/ecjpake/SchnorrZkp.d.ts.map +1 -1
  83. package/dist/cjs/dtls/ecjpake/SchnorrZkp.js +17 -13
  84. package/dist/cjs/dtls/ecjpake/SchnorrZkp.js.map +1 -1
  85. package/dist/cjs/dtls/handshake/ChangeCipherSpec.d.ts +2 -1
  86. package/dist/cjs/dtls/handshake/ChangeCipherSpec.d.ts.map +1 -1
  87. package/dist/cjs/dtls/handshake/ChangeCipherSpec.js +3 -1
  88. package/dist/cjs/dtls/handshake/ChangeCipherSpec.js.map +1 -1
  89. package/dist/cjs/dtls/handshake/ClientHelloMessage.d.ts +27 -4
  90. package/dist/cjs/dtls/handshake/ClientHelloMessage.d.ts.map +1 -1
  91. package/dist/cjs/dtls/handshake/ClientHelloMessage.js +3 -1
  92. package/dist/cjs/dtls/handshake/ClientHelloMessage.js.map +1 -1
  93. package/dist/cjs/dtls/handshake/ClientKeyExchangeMessage.d.ts +2 -1
  94. package/dist/cjs/dtls/handshake/ClientKeyExchangeMessage.d.ts.map +1 -1
  95. package/dist/cjs/dtls/handshake/ClientKeyExchangeMessage.js.map +1 -1
  96. package/dist/cjs/dtls/handshake/DtlsClient.d.ts +9 -6
  97. package/dist/cjs/dtls/handshake/DtlsClient.d.ts.map +1 -1
  98. package/dist/cjs/dtls/handshake/DtlsClient.js +99 -77
  99. package/dist/cjs/dtls/handshake/DtlsClient.js.map +1 -1
  100. package/dist/cjs/dtls/handshake/FinishedMessage.d.ts +10 -3
  101. package/dist/cjs/dtls/handshake/FinishedMessage.d.ts.map +1 -1
  102. package/dist/cjs/dtls/handshake/FinishedMessage.js +4 -2
  103. package/dist/cjs/dtls/handshake/FinishedMessage.js.map +1 -1
  104. package/dist/cjs/dtls/handshake/HandshakeMessage.d.ts +5 -4
  105. package/dist/cjs/dtls/handshake/HandshakeMessage.d.ts.map +1 -1
  106. package/dist/cjs/dtls/handshake/HandshakeMessage.js +13 -11
  107. package/dist/cjs/dtls/handshake/HandshakeMessage.js.map +1 -1
  108. package/dist/cjs/dtls/handshake/HelloVerifyRequestMessage.d.ts +19 -2
  109. package/dist/cjs/dtls/handshake/HelloVerifyRequestMessage.d.ts.map +1 -1
  110. package/dist/cjs/dtls/handshake/HelloVerifyRequestMessage.js +3 -1
  111. package/dist/cjs/dtls/handshake/HelloVerifyRequestMessage.js.map +1 -1
  112. package/dist/cjs/dtls/handshake/ServerHelloDoneMessage.d.ts +2 -1
  113. package/dist/cjs/dtls/handshake/ServerHelloDoneMessage.d.ts.map +1 -1
  114. package/dist/cjs/dtls/handshake/ServerHelloDoneMessage.js +3 -2
  115. package/dist/cjs/dtls/handshake/ServerHelloDoneMessage.js.map +1 -1
  116. package/dist/cjs/dtls/handshake/ServerHelloMessage.d.ts +4 -3
  117. package/dist/cjs/dtls/handshake/ServerHelloMessage.d.ts.map +1 -1
  118. package/dist/cjs/dtls/handshake/ServerHelloMessage.js +3 -1
  119. package/dist/cjs/dtls/handshake/ServerHelloMessage.js.map +1 -1
  120. package/dist/cjs/dtls/handshake/ServerKeyExchangeMessage.d.ts +2 -1
  121. package/dist/cjs/dtls/handshake/ServerKeyExchangeMessage.d.ts.map +1 -1
  122. package/dist/cjs/dtls/handshake/ServerKeyExchangeMessage.js.map +1 -1
  123. package/dist/cjs/dtls/prf/HandshakeTranscript.d.ts +7 -5
  124. package/dist/cjs/dtls/prf/HandshakeTranscript.d.ts.map +1 -1
  125. package/dist/cjs/dtls/prf/HandshakeTranscript.js +14 -9
  126. package/dist/cjs/dtls/prf/HandshakeTranscript.js.map +1 -1
  127. package/dist/cjs/dtls/prf/TlsPrf.d.ts +23 -22
  128. package/dist/cjs/dtls/prf/TlsPrf.d.ts.map +1 -1
  129. package/dist/cjs/dtls/prf/TlsPrf.js +33 -30
  130. package/dist/cjs/dtls/prf/TlsPrf.js.map +1 -1
  131. package/dist/cjs/dtls/record/AesCcm8.d.ts +13 -12
  132. package/dist/cjs/dtls/record/AesCcm8.d.ts.map +1 -1
  133. package/dist/cjs/dtls/record/AesCcm8.js +12 -34
  134. package/dist/cjs/dtls/record/AesCcm8.js.map +1 -1
  135. package/dist/cjs/dtls/record/DtlsCipherState.d.ts +11 -10
  136. package/dist/cjs/dtls/record/DtlsCipherState.d.ts.map +1 -1
  137. package/dist/cjs/dtls/record/DtlsCipherState.js +10 -6
  138. package/dist/cjs/dtls/record/DtlsCipherState.js.map +1 -1
  139. package/dist/cjs/dtls/record/DtlsRecord.d.ts +10 -10
  140. package/dist/cjs/dtls/record/DtlsRecord.d.ts.map +1 -1
  141. package/dist/cjs/dtls/record/DtlsRecord.js +10 -8
  142. package/dist/cjs/dtls/record/DtlsRecord.js.map +1 -1
  143. package/dist/cjs/otbr-rest/OtbrRestCapability.d.ts +3 -4
  144. package/dist/cjs/otbr-rest/OtbrRestCapability.d.ts.map +1 -1
  145. package/dist/cjs/otbr-rest/OtbrRestClient.d.ts +27 -8
  146. package/dist/cjs/otbr-rest/OtbrRestClient.d.ts.map +1 -1
  147. package/dist/cjs/otbr-rest/OtbrRestClient.js +50 -20
  148. package/dist/cjs/otbr-rest/OtbrRestClient.js.map +1 -1
  149. package/dist/cjs/otbr-rest/OtbrRestDiagnosticSource.d.ts +2 -1
  150. package/dist/cjs/otbr-rest/OtbrRestDiagnosticSource.d.ts.map +1 -1
  151. package/dist/cjs/otbr-rest/OtbrRestDiagnosticSource.js +3 -3
  152. package/dist/cjs/otbr-rest/OtbrRestDiagnosticSource.js.map +1 -1
  153. package/dist/cjs/otbr-rest/OtbrRestProbe.d.ts +6 -4
  154. package/dist/cjs/otbr-rest/OtbrRestProbe.d.ts.map +1 -1
  155. package/dist/cjs/otbr-rest/OtbrRestProbe.js +11 -43
  156. package/dist/cjs/otbr-rest/OtbrRestProbe.js.map +1 -1
  157. package/dist/cjs/otbr-rest/caseNormalizer.d.ts +7 -0
  158. package/dist/cjs/otbr-rest/caseNormalizer.d.ts.map +1 -1
  159. package/dist/cjs/otbr-rest/caseNormalizer.js +11 -0
  160. package/dist/cjs/otbr-rest/caseNormalizer.js.map +1 -1
  161. package/dist/cjs/otbr-rest/parseHexBytes.d.ts +22 -0
  162. package/dist/cjs/otbr-rest/parseHexBytes.d.ts.map +1 -0
  163. package/dist/cjs/otbr-rest/parseHexBytes.js +50 -0
  164. package/dist/cjs/otbr-rest/parseHexBytes.js.map +6 -0
  165. package/dist/cjs/otbr-rest/translation.d.ts +2 -1
  166. package/dist/cjs/otbr-rest/translation.d.ts.map +1 -1
  167. package/dist/cjs/otbr-rest/translation.js +20 -22
  168. package/dist/cjs/otbr-rest/translation.js.map +1 -1
  169. package/dist/cjs/selection/selectBr.d.ts +8 -4
  170. package/dist/cjs/selection/selectBr.d.ts.map +1 -1
  171. package/dist/cjs/selection/selectBr.js +6 -5
  172. package/dist/cjs/selection/selectBr.js.map +1 -1
  173. package/dist/cjs/selection/withExtPanIdLock.d.ts +2 -1
  174. package/dist/cjs/selection/withExtPanIdLock.d.ts.map +1 -1
  175. package/dist/cjs/selection/withExtPanIdLock.js.map +1 -1
  176. package/dist/cjs/tlv/BasicTlvCodec.d.ts +4 -4
  177. package/dist/cjs/tlv/BasicTlvCodec.d.ts.map +1 -1
  178. package/dist/cjs/tlv/BasicTlvCodec.js +13 -11
  179. package/dist/cjs/tlv/BasicTlvCodec.js.map +1 -1
  180. package/dist/cjs/tlv/NetworkDiagnosticTlv.d.ts +3 -2
  181. package/dist/cjs/tlv/NetworkDiagnosticTlv.d.ts.map +1 -1
  182. package/dist/cjs/tlv/NetworkDiagnosticTlv.js.map +1 -1
  183. package/dist/cjs/tlv/TypeListTlv.d.ts +3 -2
  184. package/dist/cjs/tlv/TypeListTlv.d.ts.map +1 -1
  185. package/dist/cjs/tlv/TypeListTlv.js +1 -1
  186. package/dist/cjs/tlv/TypeListTlv.js.map +1 -1
  187. package/dist/cjs/tlv/diag/ChildIpv6AddressList.d.ts +3 -2
  188. package/dist/cjs/tlv/diag/ChildIpv6AddressList.d.ts.map +1 -1
  189. package/dist/cjs/tlv/diag/ChildIpv6AddressList.js +5 -3
  190. package/dist/cjs/tlv/diag/ChildIpv6AddressList.js.map +1 -1
  191. package/dist/cjs/tlv/diag/ChildTable.d.ts +3 -2
  192. package/dist/cjs/tlv/diag/ChildTable.d.ts.map +1 -1
  193. package/dist/cjs/tlv/diag/ChildTable.js +7 -6
  194. package/dist/cjs/tlv/diag/ChildTable.js.map +1 -1
  195. package/dist/cjs/tlv/diag/Connectivity.d.ts +3 -2
  196. package/dist/cjs/tlv/diag/Connectivity.d.ts.map +1 -1
  197. package/dist/cjs/tlv/diag/Connectivity.js +14 -14
  198. package/dist/cjs/tlv/diag/Connectivity.js.map +1 -1
  199. package/dist/cjs/tlv/diag/Ipv6AddressList.d.ts +3 -2
  200. package/dist/cjs/tlv/diag/Ipv6AddressList.d.ts.map +1 -1
  201. package/dist/cjs/tlv/diag/Ipv6AddressList.js +6 -5
  202. package/dist/cjs/tlv/diag/Ipv6AddressList.js.map +1 -1
  203. package/dist/cjs/tlv/diag/LeaderData.d.ts +3 -2
  204. package/dist/cjs/tlv/diag/LeaderData.d.ts.map +1 -1
  205. package/dist/cjs/tlv/diag/LeaderData.js +8 -7
  206. package/dist/cjs/tlv/diag/LeaderData.js.map +1 -1
  207. package/dist/cjs/tlv/diag/MacCounters.d.ts +3 -2
  208. package/dist/cjs/tlv/diag/MacCounters.d.ts.map +1 -1
  209. package/dist/cjs/tlv/diag/MacCounters.js +12 -11
  210. package/dist/cjs/tlv/diag/MacCounters.js.map +1 -1
  211. package/dist/cjs/tlv/diag/MleCounters.d.ts +3 -2
  212. package/dist/cjs/tlv/diag/MleCounters.d.ts.map +1 -1
  213. package/dist/cjs/tlv/diag/MleCounters.js +18 -17
  214. package/dist/cjs/tlv/diag/MleCounters.js.map +1 -1
  215. package/dist/cjs/tlv/diag/Mode.d.ts +3 -2
  216. package/dist/cjs/tlv/diag/Mode.d.ts.map +1 -1
  217. package/dist/cjs/tlv/diag/Mode.js +5 -3
  218. package/dist/cjs/tlv/diag/Mode.js.map +1 -1
  219. package/dist/cjs/tlv/diag/NetworkData.d.ts +7 -6
  220. package/dist/cjs/tlv/diag/NetworkData.d.ts.map +1 -1
  221. package/dist/cjs/tlv/diag/NetworkData.js +23 -18
  222. package/dist/cjs/tlv/diag/NetworkData.js.map +1 -1
  223. package/dist/cjs/tlv/diag/Primitives.d.ts +15 -14
  224. package/dist/cjs/tlv/diag/Primitives.d.ts.map +1 -1
  225. package/dist/cjs/tlv/diag/Primitives.js +25 -19
  226. package/dist/cjs/tlv/diag/Primitives.js.map +1 -1
  227. package/dist/cjs/tlv/diag/Route64.d.ts +3 -2
  228. package/dist/cjs/tlv/diag/Route64.d.ts.map +1 -1
  229. package/dist/cjs/tlv/diag/Route64.js +8 -7
  230. package/dist/cjs/tlv/diag/Route64.js.map +1 -1
  231. package/dist/cjs/tlv/diag/RouterNeighbor.d.ts +3 -2
  232. package/dist/cjs/tlv/diag/RouterNeighbor.d.ts.map +1 -1
  233. package/dist/cjs/tlv/diag/RouterNeighbor.js +13 -11
  234. package/dist/cjs/tlv/diag/RouterNeighbor.js.map +1 -1
  235. package/dist/cjs/tlv/diag/Timeout.d.ts +3 -2
  236. package/dist/cjs/tlv/diag/Timeout.d.ts.map +1 -1
  237. package/dist/cjs/tlv/diag/Timeout.js +4 -3
  238. package/dist/cjs/tlv/diag/Timeout.js.map +1 -1
  239. package/dist/cjs/tlv/diag/VendorInfo.d.ts +13 -12
  240. package/dist/cjs/tlv/diag/VendorInfo.d.ts.map +1 -1
  241. package/dist/cjs/tlv/diag/VendorInfo.js +4 -3
  242. package/dist/cjs/tlv/diag/VendorInfo.js.map +1 -1
  243. package/dist/cjs/tlv/meshcop/Ip6AddressTlv.d.ts +3 -2
  244. package/dist/cjs/tlv/meshcop/Ip6AddressTlv.d.ts.map +1 -1
  245. package/dist/cjs/tlv/meshcop/Ip6AddressTlv.js +7 -4
  246. package/dist/cjs/tlv/meshcop/Ip6AddressTlv.js.map +1 -1
  247. package/dist/cjs/tlv/meshcop/UdpEncapsulationTlv.d.ts +4 -3
  248. package/dist/cjs/tlv/meshcop/UdpEncapsulationTlv.d.ts.map +1 -1
  249. package/dist/cjs/tlv/meshcop/UdpEncapsulationTlv.js +9 -7
  250. package/dist/cjs/tlv/meshcop/UdpEncapsulationTlv.js.map +1 -1
  251. package/dist/cjs/util/meshLocalAddr.d.ts +5 -4
  252. package/dist/cjs/util/meshLocalAddr.d.ts.map +1 -1
  253. package/dist/cjs/util/meshLocalAddr.js +6 -4
  254. package/dist/cjs/util/meshLocalAddr.js.map +1 -1
  255. package/dist/esm/coap/CoapClient.d.ts +2 -2
  256. package/dist/esm/coap/CoapClient.d.ts.map +1 -1
  257. package/dist/esm/coap/CoapClient.js +11 -17
  258. package/dist/esm/coap/CoapClient.js.map +1 -1
  259. package/dist/esm/coap/CoapMessage.d.ts +11 -6
  260. package/dist/esm/coap/CoapMessage.d.ts.map +1 -1
  261. package/dist/esm/coap/CoapMessage.js +8 -5
  262. package/dist/esm/coap/CoapMessage.js.map +1 -1
  263. package/dist/esm/commissioner/Commissioner.d.ts.map +1 -1
  264. package/dist/esm/commissioner/Commissioner.js +5 -2
  265. package/dist/esm/commissioner/Commissioner.js.map +1 -1
  266. package/dist/esm/commissioner/LeadKa.d.ts +3 -3
  267. package/dist/esm/commissioner/LeadKa.d.ts.map +1 -1
  268. package/dist/esm/commissioner/LeadKa.js +2 -2
  269. package/dist/esm/commissioner/LeadKa.js.map +1 -1
  270. package/dist/esm/commissioner/LeadPet.d.ts +3 -2
  271. package/dist/esm/commissioner/LeadPet.d.ts.map +1 -1
  272. package/dist/esm/commissioner/LeadPet.js +4 -3
  273. package/dist/esm/commissioner/LeadPet.js.map +1 -1
  274. package/dist/esm/credentials/ThreadCredentialsRegistry.d.ts +5 -5
  275. package/dist/esm/credentials/ThreadCredentialsRegistry.d.ts.map +1 -1
  276. package/dist/esm/credentials/ThreadCredentialsRegistry.js +10 -9
  277. package/dist/esm/credentials/ThreadCredentialsRegistry.js.map +1 -1
  278. package/dist/esm/credentials/ThreadNetworkCredentials.d.ts +4 -3
  279. package/dist/esm/credentials/ThreadNetworkCredentials.d.ts.map +1 -1
  280. package/dist/esm/crypto/AesCmacPrf128.d.ts +4 -14
  281. package/dist/esm/crypto/AesCmacPrf128.d.ts.map +1 -1
  282. package/dist/esm/crypto/AesCmacPrf128.js +8 -72
  283. package/dist/esm/crypto/AesCmacPrf128.js.map +2 -2
  284. package/dist/esm/crypto/Pbkdf2AesCmac.d.ts +5 -4
  285. package/dist/esm/crypto/Pbkdf2AesCmac.d.ts.map +1 -1
  286. package/dist/esm/crypto/Pbkdf2AesCmac.js +6 -5
  287. package/dist/esm/crypto/Pbkdf2AesCmac.js.map +1 -1
  288. package/dist/esm/crypto/Pskc.d.ts +4 -3
  289. package/dist/esm/crypto/Pskc.d.ts.map +1 -1
  290. package/dist/esm/crypto/Pskc.js +7 -6
  291. package/dist/esm/crypto/Pskc.js.map +1 -1
  292. package/dist/esm/crypto/index.d.ts +1 -1
  293. package/dist/esm/crypto/index.d.ts.map +1 -1
  294. package/dist/esm/crypto/index.js +1 -2
  295. package/dist/esm/crypto/index.js.map +1 -1
  296. package/dist/esm/dataset/OperationalDataset.d.ts +10 -10
  297. package/dist/esm/dataset/OperationalDataset.d.ts.map +1 -1
  298. package/dist/esm/dataset/OperationalDataset.js +32 -31
  299. package/dist/esm/dataset/OperationalDataset.js.map +1 -1
  300. package/dist/esm/dataset/SecurityPolicy.d.ts +3 -2
  301. package/dist/esm/dataset/SecurityPolicy.d.ts.map +1 -1
  302. package/dist/esm/dataset/SecurityPolicy.js +6 -5
  303. package/dist/esm/dataset/SecurityPolicy.js.map +1 -1
  304. package/dist/esm/diagnostic/DiagnosticResponse.d.ts +5 -4
  305. package/dist/esm/diagnostic/DiagnosticResponse.d.ts.map +1 -1
  306. package/dist/esm/diagnostic/DiagnosticSource.d.ts +2 -2
  307. package/dist/esm/diagnostic/DiagnosticSource.d.ts.map +1 -1
  308. package/dist/esm/diagnostic/MeshCopDiagnosticSource.d.ts +7 -3
  309. package/dist/esm/diagnostic/MeshCopDiagnosticSource.d.ts.map +1 -1
  310. package/dist/esm/diagnostic/MeshCopDiagnosticSource.js +49 -43
  311. package/dist/esm/diagnostic/MeshCopDiagnosticSource.js.map +1 -1
  312. package/dist/esm/diagnostic/connectMeshcop.d.ts.map +1 -1
  313. package/dist/esm/diagnostic/connectMeshcop.js +6 -13
  314. package/dist/esm/diagnostic/connectMeshcop.js.map +1 -1
  315. package/dist/esm/diagnostic/errors.d.ts +1 -1
  316. package/dist/esm/diagnostic/errors.d.ts.map +1 -1
  317. package/dist/esm/discovery/BorderRouterRegistry.d.ts.map +1 -1
  318. package/dist/esm/discovery/BorderRouterRegistry.js +2 -4
  319. package/dist/esm/discovery/BorderRouterRegistry.js.map +1 -1
  320. package/dist/esm/dtls/channel/DtlsConnectOpts.d.ts +3 -3
  321. package/dist/esm/dtls/channel/DtlsConnectOpts.d.ts.map +1 -1
  322. package/dist/esm/dtls/channel/NobleDtlsChannel.d.ts.map +1 -1
  323. package/dist/esm/dtls/channel/NobleDtlsChannel.js +90 -58
  324. package/dist/esm/dtls/channel/NobleDtlsChannel.js.map +1 -1
  325. package/dist/esm/dtls/ecjpake/EcJpakePms.d.ts +5 -4
  326. package/dist/esm/dtls/ecjpake/EcJpakePms.d.ts.map +1 -1
  327. package/dist/esm/dtls/ecjpake/EcJpakePms.js +5 -6
  328. package/dist/esm/dtls/ecjpake/EcJpakePms.js.map +1 -1
  329. package/dist/esm/dtls/ecjpake/EcJpakeRound.d.ts +16 -15
  330. package/dist/esm/dtls/ecjpake/EcJpakeRound.d.ts.map +1 -1
  331. package/dist/esm/dtls/ecjpake/EcJpakeRound.js +41 -30
  332. package/dist/esm/dtls/ecjpake/EcJpakeRound.js.map +1 -1
  333. package/dist/esm/dtls/ecjpake/SchnorrZkp.d.ts +10 -9
  334. package/dist/esm/dtls/ecjpake/SchnorrZkp.d.ts.map +1 -1
  335. package/dist/esm/dtls/ecjpake/SchnorrZkp.js +18 -14
  336. package/dist/esm/dtls/ecjpake/SchnorrZkp.js.map +1 -1
  337. package/dist/esm/dtls/handshake/ChangeCipherSpec.d.ts +2 -1
  338. package/dist/esm/dtls/handshake/ChangeCipherSpec.d.ts.map +1 -1
  339. package/dist/esm/dtls/handshake/ChangeCipherSpec.js +3 -1
  340. package/dist/esm/dtls/handshake/ChangeCipherSpec.js.map +1 -1
  341. package/dist/esm/dtls/handshake/ClientHelloMessage.d.ts +27 -4
  342. package/dist/esm/dtls/handshake/ClientHelloMessage.d.ts.map +1 -1
  343. package/dist/esm/dtls/handshake/ClientHelloMessage.js +4 -2
  344. package/dist/esm/dtls/handshake/ClientHelloMessage.js.map +1 -1
  345. package/dist/esm/dtls/handshake/ClientKeyExchangeMessage.d.ts +2 -1
  346. package/dist/esm/dtls/handshake/ClientKeyExchangeMessage.d.ts.map +1 -1
  347. package/dist/esm/dtls/handshake/ClientKeyExchangeMessage.js.map +1 -1
  348. package/dist/esm/dtls/handshake/DtlsClient.d.ts +9 -6
  349. package/dist/esm/dtls/handshake/DtlsClient.d.ts.map +1 -1
  350. package/dist/esm/dtls/handshake/DtlsClient.js +100 -78
  351. package/dist/esm/dtls/handshake/DtlsClient.js.map +1 -1
  352. package/dist/esm/dtls/handshake/FinishedMessage.d.ts +10 -3
  353. package/dist/esm/dtls/handshake/FinishedMessage.d.ts.map +1 -1
  354. package/dist/esm/dtls/handshake/FinishedMessage.js +5 -3
  355. package/dist/esm/dtls/handshake/FinishedMessage.js.map +1 -1
  356. package/dist/esm/dtls/handshake/HandshakeMessage.d.ts +5 -4
  357. package/dist/esm/dtls/handshake/HandshakeMessage.d.ts.map +1 -1
  358. package/dist/esm/dtls/handshake/HandshakeMessage.js +14 -12
  359. package/dist/esm/dtls/handshake/HandshakeMessage.js.map +1 -1
  360. package/dist/esm/dtls/handshake/HelloVerifyRequestMessage.d.ts +19 -2
  361. package/dist/esm/dtls/handshake/HelloVerifyRequestMessage.d.ts.map +1 -1
  362. package/dist/esm/dtls/handshake/HelloVerifyRequestMessage.js +3 -1
  363. package/dist/esm/dtls/handshake/HelloVerifyRequestMessage.js.map +1 -1
  364. package/dist/esm/dtls/handshake/ServerHelloDoneMessage.d.ts +2 -1
  365. package/dist/esm/dtls/handshake/ServerHelloDoneMessage.d.ts.map +1 -1
  366. package/dist/esm/dtls/handshake/ServerHelloDoneMessage.js +3 -2
  367. package/dist/esm/dtls/handshake/ServerHelloDoneMessage.js.map +1 -1
  368. package/dist/esm/dtls/handshake/ServerHelloMessage.d.ts +4 -3
  369. package/dist/esm/dtls/handshake/ServerHelloMessage.d.ts.map +1 -1
  370. package/dist/esm/dtls/handshake/ServerHelloMessage.js +3 -1
  371. package/dist/esm/dtls/handshake/ServerHelloMessage.js.map +1 -1
  372. package/dist/esm/dtls/handshake/ServerKeyExchangeMessage.d.ts +2 -1
  373. package/dist/esm/dtls/handshake/ServerKeyExchangeMessage.d.ts.map +1 -1
  374. package/dist/esm/dtls/handshake/ServerKeyExchangeMessage.js.map +1 -1
  375. package/dist/esm/dtls/prf/HandshakeTranscript.d.ts +7 -5
  376. package/dist/esm/dtls/prf/HandshakeTranscript.d.ts.map +1 -1
  377. package/dist/esm/dtls/prf/HandshakeTranscript.js +15 -10
  378. package/dist/esm/dtls/prf/HandshakeTranscript.js.map +1 -1
  379. package/dist/esm/dtls/prf/TlsPrf.d.ts +23 -22
  380. package/dist/esm/dtls/prf/TlsPrf.d.ts.map +1 -1
  381. package/dist/esm/dtls/prf/TlsPrf.js +34 -31
  382. package/dist/esm/dtls/prf/TlsPrf.js.map +1 -1
  383. package/dist/esm/dtls/record/AesCcm8.d.ts +13 -12
  384. package/dist/esm/dtls/record/AesCcm8.d.ts.map +1 -1
  385. package/dist/esm/dtls/record/AesCcm8.js +13 -35
  386. package/dist/esm/dtls/record/AesCcm8.js.map +1 -1
  387. package/dist/esm/dtls/record/DtlsCipherState.d.ts +11 -10
  388. package/dist/esm/dtls/record/DtlsCipherState.d.ts.map +1 -1
  389. package/dist/esm/dtls/record/DtlsCipherState.js +11 -7
  390. package/dist/esm/dtls/record/DtlsCipherState.js.map +1 -1
  391. package/dist/esm/dtls/record/DtlsRecord.d.ts +10 -10
  392. package/dist/esm/dtls/record/DtlsRecord.d.ts.map +1 -1
  393. package/dist/esm/dtls/record/DtlsRecord.js +11 -9
  394. package/dist/esm/dtls/record/DtlsRecord.js.map +1 -1
  395. package/dist/esm/otbr-rest/OtbrRestCapability.d.ts +3 -4
  396. package/dist/esm/otbr-rest/OtbrRestCapability.d.ts.map +1 -1
  397. package/dist/esm/otbr-rest/OtbrRestClient.d.ts +27 -8
  398. package/dist/esm/otbr-rest/OtbrRestClient.d.ts.map +1 -1
  399. package/dist/esm/otbr-rest/OtbrRestClient.js +51 -21
  400. package/dist/esm/otbr-rest/OtbrRestClient.js.map +1 -1
  401. package/dist/esm/otbr-rest/OtbrRestDiagnosticSource.d.ts +2 -1
  402. package/dist/esm/otbr-rest/OtbrRestDiagnosticSource.d.ts.map +1 -1
  403. package/dist/esm/otbr-rest/OtbrRestDiagnosticSource.js +4 -4
  404. package/dist/esm/otbr-rest/OtbrRestDiagnosticSource.js.map +1 -1
  405. package/dist/esm/otbr-rest/OtbrRestProbe.d.ts +6 -4
  406. package/dist/esm/otbr-rest/OtbrRestProbe.d.ts.map +1 -1
  407. package/dist/esm/otbr-rest/OtbrRestProbe.js +12 -44
  408. package/dist/esm/otbr-rest/OtbrRestProbe.js.map +1 -1
  409. package/dist/esm/otbr-rest/caseNormalizer.d.ts +7 -0
  410. package/dist/esm/otbr-rest/caseNormalizer.d.ts.map +1 -1
  411. package/dist/esm/otbr-rest/caseNormalizer.js +11 -0
  412. package/dist/esm/otbr-rest/caseNormalizer.js.map +1 -1
  413. package/dist/esm/otbr-rest/parseHexBytes.d.ts +22 -0
  414. package/dist/esm/otbr-rest/parseHexBytes.d.ts.map +1 -0
  415. package/dist/esm/otbr-rest/parseHexBytes.js +30 -0
  416. package/dist/esm/otbr-rest/parseHexBytes.js.map +6 -0
  417. package/dist/esm/otbr-rest/translation.d.ts +2 -1
  418. package/dist/esm/otbr-rest/translation.d.ts.map +1 -1
  419. package/dist/esm/otbr-rest/translation.js +16 -18
  420. package/dist/esm/otbr-rest/translation.js.map +1 -1
  421. package/dist/esm/selection/selectBr.d.ts +8 -4
  422. package/dist/esm/selection/selectBr.d.ts.map +1 -1
  423. package/dist/esm/selection/selectBr.js +6 -5
  424. package/dist/esm/selection/selectBr.js.map +1 -1
  425. package/dist/esm/selection/withExtPanIdLock.d.ts +2 -1
  426. package/dist/esm/selection/withExtPanIdLock.d.ts.map +1 -1
  427. package/dist/esm/selection/withExtPanIdLock.js.map +1 -1
  428. package/dist/esm/tlv/BasicTlvCodec.d.ts +4 -4
  429. package/dist/esm/tlv/BasicTlvCodec.d.ts.map +1 -1
  430. package/dist/esm/tlv/BasicTlvCodec.js +14 -12
  431. package/dist/esm/tlv/BasicTlvCodec.js.map +1 -1
  432. package/dist/esm/tlv/NetworkDiagnosticTlv.d.ts +3 -2
  433. package/dist/esm/tlv/NetworkDiagnosticTlv.d.ts.map +1 -1
  434. package/dist/esm/tlv/NetworkDiagnosticTlv.js.map +1 -1
  435. package/dist/esm/tlv/TypeListTlv.d.ts +3 -2
  436. package/dist/esm/tlv/TypeListTlv.d.ts.map +1 -1
  437. package/dist/esm/tlv/TypeListTlv.js +2 -2
  438. package/dist/esm/tlv/TypeListTlv.js.map +1 -1
  439. package/dist/esm/tlv/diag/ChildIpv6AddressList.d.ts +3 -2
  440. package/dist/esm/tlv/diag/ChildIpv6AddressList.d.ts.map +1 -1
  441. package/dist/esm/tlv/diag/ChildIpv6AddressList.js +5 -3
  442. package/dist/esm/tlv/diag/ChildIpv6AddressList.js.map +1 -1
  443. package/dist/esm/tlv/diag/ChildTable.d.ts +3 -2
  444. package/dist/esm/tlv/diag/ChildTable.d.ts.map +1 -1
  445. package/dist/esm/tlv/diag/ChildTable.js +8 -7
  446. package/dist/esm/tlv/diag/ChildTable.js.map +1 -1
  447. package/dist/esm/tlv/diag/Connectivity.d.ts +3 -2
  448. package/dist/esm/tlv/diag/Connectivity.d.ts.map +1 -1
  449. package/dist/esm/tlv/diag/Connectivity.js +14 -14
  450. package/dist/esm/tlv/diag/Connectivity.js.map +1 -1
  451. package/dist/esm/tlv/diag/Ipv6AddressList.d.ts +3 -2
  452. package/dist/esm/tlv/diag/Ipv6AddressList.d.ts.map +1 -1
  453. package/dist/esm/tlv/diag/Ipv6AddressList.js +7 -6
  454. package/dist/esm/tlv/diag/Ipv6AddressList.js.map +1 -1
  455. package/dist/esm/tlv/diag/LeaderData.d.ts +3 -2
  456. package/dist/esm/tlv/diag/LeaderData.d.ts.map +1 -1
  457. package/dist/esm/tlv/diag/LeaderData.js +9 -8
  458. package/dist/esm/tlv/diag/LeaderData.js.map +1 -1
  459. package/dist/esm/tlv/diag/MacCounters.d.ts +3 -2
  460. package/dist/esm/tlv/diag/MacCounters.d.ts.map +1 -1
  461. package/dist/esm/tlv/diag/MacCounters.js +13 -12
  462. package/dist/esm/tlv/diag/MacCounters.js.map +1 -1
  463. package/dist/esm/tlv/diag/MleCounters.d.ts +3 -2
  464. package/dist/esm/tlv/diag/MleCounters.d.ts.map +1 -1
  465. package/dist/esm/tlv/diag/MleCounters.js +19 -18
  466. package/dist/esm/tlv/diag/MleCounters.js.map +1 -1
  467. package/dist/esm/tlv/diag/Mode.d.ts +3 -2
  468. package/dist/esm/tlv/diag/Mode.d.ts.map +1 -1
  469. package/dist/esm/tlv/diag/Mode.js +5 -3
  470. package/dist/esm/tlv/diag/Mode.js.map +1 -1
  471. package/dist/esm/tlv/diag/NetworkData.d.ts +7 -6
  472. package/dist/esm/tlv/diag/NetworkData.d.ts.map +1 -1
  473. package/dist/esm/tlv/diag/NetworkData.js +23 -18
  474. package/dist/esm/tlv/diag/NetworkData.js.map +1 -1
  475. package/dist/esm/tlv/diag/Primitives.d.ts +15 -14
  476. package/dist/esm/tlv/diag/Primitives.d.ts.map +1 -1
  477. package/dist/esm/tlv/diag/Primitives.js +26 -20
  478. package/dist/esm/tlv/diag/Primitives.js.map +1 -1
  479. package/dist/esm/tlv/diag/Route64.d.ts +3 -2
  480. package/dist/esm/tlv/diag/Route64.d.ts.map +1 -1
  481. package/dist/esm/tlv/diag/Route64.js +9 -8
  482. package/dist/esm/tlv/diag/Route64.js.map +1 -1
  483. package/dist/esm/tlv/diag/RouterNeighbor.d.ts +3 -2
  484. package/dist/esm/tlv/diag/RouterNeighbor.d.ts.map +1 -1
  485. package/dist/esm/tlv/diag/RouterNeighbor.js +13 -11
  486. package/dist/esm/tlv/diag/RouterNeighbor.js.map +1 -1
  487. package/dist/esm/tlv/diag/Timeout.d.ts +3 -2
  488. package/dist/esm/tlv/diag/Timeout.d.ts.map +1 -1
  489. package/dist/esm/tlv/diag/Timeout.js +5 -4
  490. package/dist/esm/tlv/diag/Timeout.js.map +1 -1
  491. package/dist/esm/tlv/diag/VendorInfo.d.ts +13 -12
  492. package/dist/esm/tlv/diag/VendorInfo.d.ts.map +1 -1
  493. package/dist/esm/tlv/diag/VendorInfo.js +5 -4
  494. package/dist/esm/tlv/diag/VendorInfo.js.map +1 -1
  495. package/dist/esm/tlv/meshcop/Ip6AddressTlv.d.ts +3 -2
  496. package/dist/esm/tlv/meshcop/Ip6AddressTlv.d.ts.map +1 -1
  497. package/dist/esm/tlv/meshcop/Ip6AddressTlv.js +7 -4
  498. package/dist/esm/tlv/meshcop/Ip6AddressTlv.js.map +1 -1
  499. package/dist/esm/tlv/meshcop/UdpEncapsulationTlv.d.ts +4 -3
  500. package/dist/esm/tlv/meshcop/UdpEncapsulationTlv.d.ts.map +1 -1
  501. package/dist/esm/tlv/meshcop/UdpEncapsulationTlv.js +10 -8
  502. package/dist/esm/tlv/meshcop/UdpEncapsulationTlv.js.map +1 -1
  503. package/dist/esm/util/meshLocalAddr.d.ts +5 -4
  504. package/dist/esm/util/meshLocalAddr.d.ts.map +1 -1
  505. package/dist/esm/util/meshLocalAddr.js +7 -5
  506. package/dist/esm/util/meshLocalAddr.js.map +1 -1
  507. package/package.json +5 -5
  508. package/src/coap/CoapClient.ts +13 -20
  509. package/src/coap/CoapMessage.ts +17 -9
  510. package/src/commissioner/Commissioner.ts +5 -2
  511. package/src/commissioner/LeadKa.ts +4 -4
  512. package/src/commissioner/LeadPet.ts +6 -5
  513. package/src/credentials/ThreadCredentialsRegistry.ts +14 -13
  514. package/src/credentials/ThreadNetworkCredentials.ts +5 -3
  515. package/src/crypto/AesCmacPrf128.ts +10 -87
  516. package/src/crypto/Pbkdf2AesCmac.ts +14 -10
  517. package/src/crypto/Pskc.ts +7 -6
  518. package/src/crypto/index.ts +1 -1
  519. package/src/dataset/OperationalDataset.ts +48 -47
  520. package/src/dataset/SecurityPolicy.ts +8 -7
  521. package/src/diagnostic/DiagnosticResponse.ts +5 -4
  522. package/src/diagnostic/DiagnosticSource.ts +2 -2
  523. package/src/diagnostic/MeshCopDiagnosticSource.ts +80 -64
  524. package/src/diagnostic/connectMeshcop.ts +6 -14
  525. package/src/diagnostic/errors.ts +1 -1
  526. package/src/discovery/BorderRouterRegistry.ts +2 -4
  527. package/src/dtls/channel/DtlsConnectOpts.ts +3 -3
  528. package/src/dtls/channel/NobleDtlsChannel.ts +96 -60
  529. package/src/dtls/ecjpake/EcJpakePms.ts +5 -6
  530. package/src/dtls/ecjpake/EcJpakeRound.ts +57 -37
  531. package/src/dtls/ecjpake/SchnorrZkp.ts +43 -30
  532. package/src/dtls/handshake/ChangeCipherSpec.ts +3 -1
  533. package/src/dtls/handshake/ClientHelloMessage.ts +8 -6
  534. package/src/dtls/handshake/ClientKeyExchangeMessage.ts +2 -1
  535. package/src/dtls/handshake/DtlsClient.ts +119 -95
  536. package/src/dtls/handshake/FinishedMessage.ts +5 -3
  537. package/src/dtls/handshake/HandshakeMessage.ts +18 -16
  538. package/src/dtls/handshake/HelloVerifyRequestMessage.ts +3 -1
  539. package/src/dtls/handshake/ServerHelloDoneMessage.ts +5 -3
  540. package/src/dtls/handshake/ServerHelloMessage.ts +5 -3
  541. package/src/dtls/handshake/ServerKeyExchangeMessage.ts +2 -1
  542. package/src/dtls/prf/HandshakeTranscript.ts +18 -11
  543. package/src/dtls/prf/TlsPrf.ts +68 -54
  544. package/src/dtls/record/AesCcm8.ts +23 -49
  545. package/src/dtls/record/DtlsCipherState.ts +20 -16
  546. package/src/dtls/record/DtlsRecord.ts +17 -15
  547. package/src/otbr-rest/OtbrRestCapability.ts +4 -4
  548. package/src/otbr-rest/OtbrRestClient.ts +64 -29
  549. package/src/otbr-rest/OtbrRestDiagnosticSource.ts +5 -5
  550. package/src/otbr-rest/OtbrRestProbe.ts +12 -47
  551. package/src/otbr-rest/caseNormalizer.ts +17 -0
  552. package/src/otbr-rest/parseHexBytes.ts +47 -0
  553. package/src/otbr-rest/translation.ts +24 -22
  554. package/src/selection/selectBr.ts +26 -13
  555. package/src/selection/withExtPanIdLock.ts +1 -1
  556. package/src/tlv/BasicTlvCodec.ts +17 -15
  557. package/src/tlv/NetworkDiagnosticTlv.ts +3 -2
  558. package/src/tlv/TypeListTlv.ts +4 -4
  559. package/src/tlv/diag/ChildIpv6AddressList.ts +8 -5
  560. package/src/tlv/diag/ChildTable.ts +10 -9
  561. package/src/tlv/diag/Connectivity.ts +16 -16
  562. package/src/tlv/diag/Ipv6AddressList.ts +9 -8
  563. package/src/tlv/diag/LeaderData.ts +11 -10
  564. package/src/tlv/diag/MacCounters.ts +15 -14
  565. package/src/tlv/diag/MleCounters.ts +21 -20
  566. package/src/tlv/diag/Mode.ts +7 -5
  567. package/src/tlv/diag/NetworkData.ts +31 -26
  568. package/src/tlv/diag/Primitives.ts +42 -36
  569. package/src/tlv/diag/Route64.ts +11 -10
  570. package/src/tlv/diag/RouterNeighbor.ts +16 -13
  571. package/src/tlv/diag/Timeout.ts +7 -6
  572. package/src/tlv/diag/VendorInfo.ts +19 -18
  573. package/src/tlv/meshcop/Ip6AddressTlv.ts +9 -6
  574. package/src/tlv/meshcop/UdpEncapsulationTlv.ts +13 -11
  575. package/src/util/meshLocalAddr.ts +10 -8
@@ -7,8 +7,10 @@
7
7
  import {
8
8
  Bytes,
9
9
  Crypto,
10
+ type Duration,
10
11
  type Entropy,
11
12
  type Environment,
13
+ errorOf,
12
14
  ImplementationError,
13
15
  Logger,
14
16
  Millis,
@@ -99,6 +101,8 @@ export interface EnergyScanOpts {
99
101
  count: number;
100
102
  period: number;
101
103
  scanDuration: number;
104
+ /** How long to wait for the `c/er` report before failing. Defaults to 30s. */
105
+ timeout?: Duration;
102
106
  }
103
107
 
104
108
  export interface EnergyScanEntry {
@@ -109,6 +113,8 @@ export interface EnergyScanEntry {
109
113
  export interface PanIdQueryOpts {
110
114
  panId: number;
111
115
  channelMask: number;
116
+ /** How long to wait for a `c/pc` conflict before resolving `undefined`. Defaults to 30s. */
117
+ timeout?: Duration;
112
118
  }
113
119
 
114
120
  export interface PanIdConflict {
@@ -131,14 +137,14 @@ export class MeshCopDiagnosticSource implements DiagnosticSource {
131
137
  readonly #commissioner: Pick<Commissioner, "withSession">;
132
138
  readonly #coap: Pick<CoapClient, "request" | "listen">;
133
139
  readonly #entropy: Entropy;
134
- readonly #mlPrefix?: Uint8Array;
140
+ readonly #mlPrefix?: Bytes;
135
141
  #innerMessageId: number;
136
142
 
137
143
  constructor(
138
144
  commissioner: Pick<Commissioner, "withSession">,
139
145
  coap: Pick<CoapClient, "request" | "listen">,
140
146
  environment: Environment,
141
- mlPrefix?: Uint8Array,
147
+ mlPrefix?: Bytes,
142
148
  ) {
143
149
  this.#commissioner = commissioner;
144
150
  this.#coap = coap;
@@ -147,7 +153,7 @@ export class MeshCopDiagnosticSource implements DiagnosticSource {
147
153
  this.#innerMessageId = this.#entropy.randomUint16;
148
154
  }
149
155
 
150
- canQuery(_extPanId: Uint8Array): boolean {
156
+ canQuery(_extPanId: Bytes): boolean {
151
157
  return true;
152
158
  }
153
159
 
@@ -181,26 +187,28 @@ export class MeshCopDiagnosticSource implements DiagnosticSource {
181
187
  const unsubscribe = this.#coap.listen(PROXY_RX_URI, msg => {
182
188
  const inner = unwrapProxyRx(msg.payload);
183
189
  if (inner === undefined) {
184
- logger.debug("[ThreadDiag] unicast c/ur unwrap empty, dropping");
190
+ logger.debug("unicast c/ur unwrap empty, dropping");
185
191
  return;
186
192
  }
187
193
  this.#ackInnerIfNeeded(inner);
188
194
  if (!tokensEqual(inner.message.token, token)) {
189
195
  logger.debug(
190
- `[ThreadDiag] unicast c/ur token mismatch want=${Bytes.toHex(token)} got=${Bytes.toHex(inner.message.token)}, dropping`,
196
+ `unicast c/ur token mismatch want=${Bytes.toHex(token)} got=${Bytes.toHex(inner.message.token)}, dropping`,
191
197
  );
192
198
  return;
193
199
  }
194
200
  try {
195
201
  resolveResponse(decodeResponse(inner.message.payload));
196
202
  } catch (err) {
197
- rejectResponse(err instanceof Error ? err : new Error(String(err)));
203
+ rejectResponse(errorOf(err));
198
204
  }
199
205
  });
200
206
 
201
207
  const timer = Time.getTimer("meshcop-unicast-timeout", DEFAULT_UNICAST_TIMEOUT, () => {
202
208
  rejectResponse(
203
- new Error(`MeshCopDiagnosticSource: unicast diagnostic to ${formatIp6(targetAddr)} timed out`),
209
+ new ThreadDiagError(
210
+ `MeshCopDiagnosticSource: unicast diagnostic to ${formatIp6(targetAddr)} timed out`,
211
+ ),
204
212
  );
205
213
  }).start();
206
214
 
@@ -251,7 +259,7 @@ export class MeshCopDiagnosticSource implements DiagnosticSource {
251
259
  fillTimers = [];
252
260
  unsubscribe?.();
253
261
  logger.debug(
254
- `[ThreadDiag] queryMulticast DONE nodes=${nodeCount} duration=${Date.now() - start}ms window=${windowMs}ms`,
262
+ `queryMulticast DONE nodes=${nodeCount} duration=${Date.now() - start}ms window=${windowMs}ms`,
255
263
  );
256
264
  resolveTeardown();
257
265
  };
@@ -264,7 +272,7 @@ export class MeshCopDiagnosticSource implements DiagnosticSource {
264
272
  const sessionPromise = this.#commissioner
265
273
  .withSession(async () => {
266
274
  if (closed) return;
267
- logger.debug(`[ThreadDiag] queryMulticast START tlvs=${opts.tlvTypes.length} window=${windowMs}ms`);
275
+ logger.debug(`queryMulticast START tlvs=${opts.tlvTypes.length} window=${windowMs}ms`);
268
276
  const collected = new Array<DiagnosticResponse>();
269
277
  const probed = new Set<number>();
270
278
  const seenProxyRx = new Set<string>();
@@ -278,20 +286,20 @@ export class MeshCopDiagnosticSource implements DiagnosticSource {
278
286
  seenProxyRx.add(rawKey);
279
287
  const inner = unwrapProxyRx(msg.payload);
280
288
  if (inner === undefined) {
281
- logger.debug("[ThreadDiag] c/ur unwrap empty, dropping");
289
+ logger.debug("c/ur unwrap empty, dropping");
282
290
  return;
283
291
  }
284
292
  this.#ackInnerIfNeeded(inner);
285
- if (inner.message.payload.length === 0) return;
293
+ if (inner.message.payload.byteLength === 0) return;
286
294
  try {
287
295
  const decoded = decodeResponse(inner.message.payload);
288
296
  collected.push(decoded);
289
297
  nodeCount++;
290
- logger.debug(`[ThreadDiag] c/ur arrival from=${formatIp6(inner.sourceAddr)}`);
298
+ logger.debug(`c/ur arrival from=${formatIp6(inner.sourceAddr)}`);
291
299
  onNode.emit(decoded);
292
300
  } catch (err) {
293
- logger.warn("[ThreadDiag] failed to decode c/ur inner payload, dropping:", err);
294
- onError.emit(err instanceof Error ? err : new Error(String(err)));
301
+ logger.warn("failed to decode c/ur inner payload, dropping:", err);
302
+ onError.emit(errorOf(err));
295
303
  }
296
304
  });
297
305
 
@@ -310,10 +318,10 @@ export class MeshCopDiagnosticSource implements DiagnosticSource {
310
318
  uriPath: PROXY_TX_URI,
311
319
  payload: proxyPayload,
312
320
  });
313
- logger.debug(`[ThreadDiag] c/ut ProxyTx (/d/dq -> ${scope}) sent`);
321
+ logger.debug(`c/ut ProxyTx (/d/dq -> ${scope}) sent`);
314
322
  } catch (err) {
315
- logger.warn(`[ThreadDiag] c/ut ProxyTx send failed: ${err}`);
316
- onError.emit(err instanceof Error ? err : new Error(String(err)));
323
+ logger.warn(`c/ut ProxyTx send failed: ${err}`);
324
+ onError.emit(errorOf(err));
317
325
  }
318
326
 
319
327
  if (this.#mlPrefix !== undefined && !closed) {
@@ -326,7 +334,7 @@ export class MeshCopDiagnosticSource implements DiagnosticSource {
326
334
  const target = deriveMeshLocalAddress(mlPrefix, (routerId << 10) & 0xffff);
327
335
  const fillToken = this.#freshToken();
328
336
  const fillInner = this.#encodeInnerDiag("CON", DIAG_GET_URI, opts.tlvTypes, fillToken);
329
- logger.debug(`[ThreadDiag] unicast-fill router=${routerId} target=${formatIp6(target)}`);
337
+ logger.debug(`unicast-fill router=${routerId} target=${formatIp6(target)}`);
330
338
  void this.#coap
331
339
  .request({
332
340
  type: "NON",
@@ -334,9 +342,7 @@ export class MeshCopDiagnosticSource implements DiagnosticSource {
334
342
  uriPath: PROXY_TX_URI,
335
343
  payload: this.#wrapProxyTx(target, fillInner),
336
344
  })
337
- .catch(err =>
338
- logger.warn(`[ThreadDiag] unicast-fill router=${routerId} send failed: ${err}`),
339
- );
345
+ .catch(err => logger.warn(`unicast-fill router=${routerId} send failed: ${err}`));
340
346
  }
341
347
  };
342
348
  fillTimers = [
@@ -352,13 +358,13 @@ export class MeshCopDiagnosticSource implements DiagnosticSource {
352
358
  ).start(),
353
359
  ];
354
360
  } else {
355
- logger.debug("[ThreadDiag] unicast-fill skipped: no mesh-local prefix");
361
+ logger.debug("unicast-fill skipped: no mesh-local prefix");
356
362
  }
357
363
 
358
364
  await teardownPromise;
359
365
  })
360
366
  .catch(err => {
361
- onError.emit(err instanceof Error ? err : new Error(String(err)));
367
+ onError.emit(errorOf(err));
362
368
  teardown();
363
369
  });
364
370
 
@@ -419,18 +425,21 @@ export class MeshCopDiagnosticSource implements DiagnosticSource {
419
425
  rejectReport = rej;
420
426
  });
421
427
 
428
+ // Start the timer before registering the listener: an out-of-range
429
+ // timeout makes getTimer throw, and doing so first avoids leaking
430
+ // the listener that a later throw would strand.
431
+ const timer = Time.getTimer("energy-scan-timeout", opts.timeout ?? DEFAULT_SCAN_TIMEOUT, () => {
432
+ rejectReport(new ThreadDiagError("MeshCopDiagnosticSource: energyScan timed out waiting for c/er"));
433
+ }).start();
434
+
422
435
  const unsubscribe = this.#coap.listen(ENERGY_REPORT_URI, msg => {
423
436
  try {
424
437
  resolveReport(decodeEnergyReport(msg.payload, opts.channelMask));
425
438
  } catch (err) {
426
- rejectReport(err instanceof Error ? err : new Error(String(err)));
439
+ rejectReport(errorOf(err));
427
440
  }
428
441
  });
429
442
 
430
- const timer = Time.getTimer("energy-scan-timeout", DEFAULT_SCAN_TIMEOUT, () => {
431
- rejectReport(new Error("MeshCopDiagnosticSource: energyScan timed out waiting for c/er"));
432
- }).start();
433
-
434
443
  try {
435
444
  await this.#coap.request({
436
445
  type: "NON",
@@ -468,19 +477,21 @@ export class MeshCopDiagnosticSource implements DiagnosticSource {
468
477
  rejectReport = rej;
469
478
  });
470
479
 
480
+ // No conflict = no c/pc arrives; resolve undefined after timeout.
481
+ // Start the timer before the listener so an out-of-range timeout
482
+ // throws from getTimer without leaking the listener.
483
+ const timer = Time.getTimer("panid-query-timeout", opts.timeout ?? DEFAULT_SCAN_TIMEOUT, () => {
484
+ resolveReport(undefined);
485
+ }).start();
486
+
471
487
  const unsubscribe = this.#coap.listen(PANID_CONFLICT_URI, msg => {
472
488
  try {
473
489
  resolveReport(decodePanIdConflict(msg.payload, opts.panId));
474
490
  } catch (err) {
475
- rejectReport(err instanceof Error ? err : new Error(String(err)));
491
+ rejectReport(errorOf(err));
476
492
  }
477
493
  });
478
494
 
479
- // No conflict = no c/pc arrives; resolve undefined after timeout.
480
- const timer = Time.getTimer("panid-query-timeout", DEFAULT_SCAN_TIMEOUT, () => {
481
- resolveReport(undefined);
482
- }).start();
483
-
484
495
  try {
485
496
  await this.#coap.request({
486
497
  type: "NON",
@@ -496,7 +507,7 @@ export class MeshCopDiagnosticSource implements DiagnosticSource {
496
507
  });
497
508
  }
498
509
 
499
- #encodeInnerDiag(type: "CON" | "NON", uriPath: string[], tlvTypes: number[], token: Uint8Array): Uint8Array {
510
+ #encodeInnerDiag(type: "CON" | "NON", uriPath: string[], tlvTypes: number[], token: Bytes): Bytes {
500
511
  return CoapMessage.encode({
501
512
  type,
502
513
  code: "0.02",
@@ -510,11 +521,11 @@ export class MeshCopDiagnosticSource implements DiagnosticSource {
510
521
  }
511
522
 
512
523
  #wrapProxyTx(
513
- targetAddr: Uint8Array,
514
- innerCoapBytes: Uint8Array,
524
+ targetAddr: Bytes,
525
+ innerCoapBytes: Bytes,
515
526
  sourcePort = PROXY_SRC_PORT,
516
527
  destinationPort = TMF_PORT,
517
- ): Uint8Array {
528
+ ): Bytes {
518
529
  return BasicTlv.encode([
519
530
  {
520
531
  type: MeshCopTlvType.UDP_ENCAPSULATION,
@@ -544,7 +555,7 @@ export class MeshCopDiagnosticSource implements DiagnosticSource {
544
555
  const proxyPayload = this.#wrapProxyTx(inner.sourceAddr, ackBytes, inner.destinationPort, inner.sourcePort);
545
556
  void this.#coap
546
557
  .request({ type: "NON", code: "0.02", uriPath: PROXY_TX_URI, payload: proxyPayload })
547
- .catch(err => logger.debug("[ThreadDiag] inner ACK send failed:", err));
558
+ .catch(err => logger.debug("inner ACK send failed:", err));
548
559
  }
549
560
 
550
561
  #nextInnerMessageId(): number {
@@ -553,13 +564,13 @@ export class MeshCopDiagnosticSource implements DiagnosticSource {
553
564
  return id;
554
565
  }
555
566
 
556
- #freshToken(): Uint8Array {
567
+ #freshToken(): Bytes {
557
568
  return Bytes.of(this.#entropy.randomBytes(4));
558
569
  }
559
570
  }
560
571
 
561
572
  interface ProxyRxInner {
562
- sourceAddr: Uint8Array;
573
+ sourceAddr: Bytes;
563
574
  sourcePort: number;
564
575
  destinationPort: number;
565
576
  message: CoapMessage;
@@ -571,17 +582,17 @@ interface ProxyRxInner {
571
582
  * responder's source address. Returns `undefined` if the required TLVs are
572
583
  * absent or the inner CoAP message cannot be parsed.
573
584
  */
574
- function unwrapProxyRx(payload: Uint8Array): ProxyRxInner | undefined {
585
+ function unwrapProxyRx(payload: Bytes): ProxyRxInner | undefined {
575
586
  let entries: ReturnType<typeof BasicTlv.walk>;
576
587
  try {
577
588
  entries = BasicTlv.walk(payload);
578
589
  } catch (err) {
579
- logger.warn("[ThreadDiag] c/ur outer TLV parse failed, dropping:", err);
590
+ logger.warn("c/ur outer TLV parse failed, dropping:", err);
580
591
  return undefined;
581
592
  }
582
593
 
583
594
  let encap: ReturnType<typeof UdpEncapsulationTlv.decode> | undefined;
584
- let sourceAddr: Uint8Array | undefined;
595
+ let sourceAddr: Bytes | undefined;
585
596
  for (const entry of entries) {
586
597
  if (entry.type === MeshCopTlvType.UDP_ENCAPSULATION) {
587
598
  encap = UdpEncapsulationTlv.decode(entry.value);
@@ -591,7 +602,7 @@ function unwrapProxyRx(payload: Uint8Array): ProxyRxInner | undefined {
591
602
  }
592
603
  if (encap === undefined || sourceAddr === undefined) {
593
604
  logger.debug(
594
- `[ThreadDiag] c/ur missing TLVs: encap=${encap !== undefined} ip6=${sourceAddr !== undefined} types=[${entries.map(e => e.type).join(",")}]`,
605
+ `c/ur missing TLVs: encap=${encap !== undefined} ip6=${sourceAddr !== undefined} types=[${entries.map(e => e.type).join(",")}]`,
595
606
  );
596
607
  return undefined;
597
608
  }
@@ -600,21 +611,23 @@ function unwrapProxyRx(payload: Uint8Array): ProxyRxInner | undefined {
600
611
  try {
601
612
  inner = CoapMessage.decode(encap.payload);
602
613
  } catch (err) {
603
- logger.warn("[ThreadDiag] c/ur inner CoAP parse failed, dropping:", err);
614
+ logger.warn("c/ur inner CoAP parse failed, dropping:", err);
604
615
  return undefined;
605
616
  }
606
617
  return { sourceAddr, sourcePort: encap.sourcePort, destinationPort: encap.destinationPort, message: inner };
607
618
  }
608
619
 
609
- function tokensEqual(a: Uint8Array, b: Uint8Array): boolean {
610
- if (a.length !== b.length) return false;
611
- for (let i = 0; i < a.length; i++) {
612
- if (a[i] !== b[i]) return false;
620
+ function tokensEqual(a: Bytes, b: Bytes): boolean {
621
+ const bufA = Bytes.of(a);
622
+ const bufB = Bytes.of(b);
623
+ if (bufA.length !== bufB.length) return false;
624
+ for (let i = 0; i < bufA.length; i++) {
625
+ if (bufA[i] !== bufB[i]) return false;
613
626
  }
614
627
  return true;
615
628
  }
616
629
 
617
- function encodeScanRequest(opts: EnergyScanOpts): Uint8Array {
630
+ function encodeScanRequest(opts: EnergyScanOpts): Bytes {
618
631
  const mask = new Uint8Array(4);
619
632
  mask[0] = (opts.channelMask >> 24) & 0xff;
620
633
  mask[1] = (opts.channelMask >> 16) & 0xff;
@@ -637,13 +650,13 @@ function encodeScanRequest(opts: EnergyScanOpts): Uint8Array {
637
650
  ]);
638
651
  }
639
652
 
640
- function decodeEnergyReport(payload: Uint8Array, channelMask: number): Array<EnergyScanEntry> {
653
+ function decodeEnergyReport(payload: Bytes, channelMask: number): Array<EnergyScanEntry> {
641
654
  const entries = BasicTlv.walk(payload);
642
655
  const energyEntry = entries.find(e => e.type === MeshCopTlvType.ENERGY_LIST);
643
656
  if (energyEntry === undefined) {
644
657
  throw new ThreadDiagError("MeshCopDiagnosticSource: c/er missing ENERGY_LIST TLV");
645
658
  }
646
- const energyBytes = energyEntry.value;
659
+ const energyBytes = Bytes.of(energyEntry.value);
647
660
  const result = new Array<EnergyScanEntry>();
648
661
  let byteIndex = 0;
649
662
  for (let ch = 0; ch < 32; ch++) {
@@ -658,7 +671,7 @@ function decodeEnergyReport(payload: Uint8Array, channelMask: number): Array<Ene
658
671
  return result;
659
672
  }
660
673
 
661
- function encodePanIdQuery(opts: PanIdQueryOpts): Uint8Array {
674
+ function encodePanIdQuery(opts: PanIdQueryOpts): Bytes {
662
675
  const mask = new Uint8Array(4);
663
676
  mask[0] = (opts.channelMask >> 24) & 0xff;
664
677
  mask[1] = (opts.channelMask >> 16) & 0xff;
@@ -675,25 +688,28 @@ function encodePanIdQuery(opts: PanIdQueryOpts): Uint8Array {
675
688
  ]);
676
689
  }
677
690
 
678
- function decodePanIdConflict(payload: Uint8Array, expectedPanId: number): PanIdConflict {
691
+ function decodePanIdConflict(payload: Bytes, expectedPanId: number): PanIdConflict {
679
692
  const entries = BasicTlv.walk(payload);
680
693
  const maskEntry = entries.find(e => e.type === MeshCopTlvType.CHANNEL_MASK);
681
694
  if (maskEntry === undefined) {
682
695
  throw new ThreadDiagError("MeshCopDiagnosticSource: c/pc missing CHANNEL_MASK TLV");
683
696
  }
684
- const mv = maskEntry.value;
697
+ const mv = Bytes.of(maskEntry.value);
685
698
  if (mv.length < 4) {
686
699
  throw new ThreadDiagError(`MeshCopDiagnosticSource: c/pc CHANNEL_MASK too short (${mv.length} bytes)`);
687
700
  }
688
701
  const conflictChannelMask = ((mv[0] << 24) | (mv[1] << 16) | (mv[2] << 8) | mv[3]) >>> 0;
689
702
 
690
703
  const panIdEntry = entries.find(e => e.type === MeshCopTlvType.PANID);
691
- if (panIdEntry !== undefined && panIdEntry.value.length >= 2) {
692
- const reportedPanId = (panIdEntry.value[0] << 8) | panIdEntry.value[1];
693
- if (reportedPanId !== expectedPanId) {
694
- logger.warn(
695
- `[ThreadDiag] c/pc PAN-ID mismatch: expected=0x${expectedPanId.toString(16)} got=0x${reportedPanId.toString(16)}, ignoring`,
696
- );
704
+ if (panIdEntry !== undefined) {
705
+ const panIdValue = Bytes.of(panIdEntry.value);
706
+ if (panIdValue.length >= 2) {
707
+ const reportedPanId = (panIdValue[0] << 8) | panIdValue[1];
708
+ if (reportedPanId !== expectedPanId) {
709
+ logger.warn(
710
+ `c/pc PAN-ID mismatch: expected=0x${expectedPanId.toString(16)} got=0x${reportedPanId.toString(16)}, ignoring`,
711
+ );
712
+ }
697
713
  }
698
714
  }
699
715
 
@@ -717,9 +733,9 @@ export function missingRouterIds(responses: ReadonlyArray<DiagnosticResponse>):
717
733
  return missing.sort((a, b) => a - b);
718
734
  }
719
735
 
720
- function decodeResponse(payload: Uint8Array): DiagnosticResponse {
736
+ function decodeResponse(payload: Bytes): DiagnosticResponse {
721
737
  const entries = NetworkDiagnosticTlv.decode(payload);
722
- const result: DiagnosticResponse = { unknown: new Array<{ type: number; value: Uint8Array }>() };
738
+ const result: DiagnosticResponse = { unknown: new Array<{ type: number; value: Bytes }>() };
723
739
 
724
740
  for (const entry of entries) {
725
741
  switch (entry.type) {
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- import { type Environment, ImplementationError, Logger } from "@matter/general";
7
+ import { type Environment, ImplementationError, Logger, ServerAddress } from "@matter/general";
8
8
  import { CoapClient } from "../coap/CoapClient.js";
9
9
  import { Commissioner } from "../commissioner/Commissioner.js";
10
10
  import type { ThreadNetworkCredentials } from "../credentials/ThreadNetworkCredentials.js";
@@ -51,7 +51,7 @@ export async function connectMeshcop(opts: ConnectMeshcopOpts): Promise<MeshcopH
51
51
  throw new ImplementationError("connectMeshcop: BR has no meshcopPort and no opts.port override");
52
52
  }
53
53
 
54
- logger.debug(`[ThreadDiag] connectMeshcop START ${address}:${port}`);
54
+ logger.debug(`connectMeshcop START ${address}:${port}`);
55
55
  const dtlsStart = Date.now();
56
56
  const channel = await (opts.makeConnect ?? connectDtls)({
57
57
  address,
@@ -60,7 +60,7 @@ export async function connectMeshcop(opts: ConnectMeshcopOpts): Promise<MeshcopH
60
60
  type: address.includes(":") ? "udp6" : "udp4",
61
61
  environment: opts.environment,
62
62
  });
63
- logger.debug(`[ThreadDiag] DTLS handshake OK ${address}:${port} duration=${Date.now() - dtlsStart}ms`);
63
+ logger.debug(`DTLS handshake OK ${address}:${port} duration=${Date.now() - dtlsStart}ms`);
64
64
 
65
65
  try {
66
66
  const coap = new CoapClient(channel, opts.environment);
@@ -69,12 +69,12 @@ export async function connectMeshcop(opts: ConnectMeshcopOpts): Promise<MeshcopH
69
69
  return {
70
70
  source,
71
71
  close: async () => {
72
- logger.debug(`[ThreadDiag] connectMeshcop CLOSE ${address}:${port}`);
72
+ logger.debug(`connectMeshcop CLOSE ${address}:${port}`);
73
73
  await coap.close();
74
74
  },
75
75
  };
76
76
  } catch (err) {
77
- logger.warn(`[ThreadDiag] connectMeshcop post-DTLS setup FAIL ${address}:${port}: ${err}`);
77
+ logger.warn(`connectMeshcop post-DTLS setup FAIL ${address}:${port}: ${err}`);
78
78
  await channel.close().catch(() => {});
79
79
  throw err;
80
80
  }
@@ -87,7 +87,7 @@ function selectBrAddress(addresses: readonly string[]): string {
87
87
 
88
88
  const usable = new Array<string>();
89
89
  for (const addr of addresses) {
90
- if (!isLinkLocal(addr)) usable.push(addr);
90
+ if (!ServerAddress.isIpv6LinkLocal(addr)) usable.push(addr);
91
91
  }
92
92
  if (usable.length === 0) {
93
93
  throw new ImplementationError(
@@ -98,14 +98,6 @@ function selectBrAddress(addresses: readonly string[]): string {
98
98
  return rankAddress(usable)[0];
99
99
  }
100
100
 
101
- function isLinkLocal(addr: string): boolean {
102
- const lower = addr.toLowerCase();
103
- if (lower.startsWith("fe8") || lower.startsWith("fe9") || lower.startsWith("fea") || lower.startsWith("feb")) {
104
- return true;
105
- }
106
- return false;
107
- }
108
-
109
101
  /**
110
102
  * Order: ULA IPv6 → other IPv6 → IPv4. ULA covers `fc00::/7` (`fc??`/`fd??`),
111
103
  * which is what the OpenThread / OTBR routing prefix lives in.
@@ -6,5 +6,5 @@
6
6
 
7
7
  import { MatterError } from "@matter/general";
8
8
 
9
- /** Thrown when a MeshCoP diagnostic response carries malformed or missing TLVs. */
9
+ /** Thrown when a MeshCoP diagnostic exchange fails — a malformed/missing TLV or a timed-out response. */
10
10
  export class ThreadDiagError extends MatterError {}
@@ -335,9 +335,7 @@ export class BorderRouterRegistry {
335
335
  // malformed; vendor stays unknown until/unless a `_meshcop` record arrives.
336
336
  xaKey = deriveXaFromTrelInstance(name.qname);
337
337
  if (xaKey !== undefined) {
338
- logger.info(
339
- `[ThreadDiag] TREL instance xa derived from instance name qname="${name.qname}" xa=${xaKey}`,
340
- );
338
+ logger.info(`TREL instance xa derived from instance name qname="${name.qname}" xa=${xaKey}`);
341
339
  }
342
340
  }
343
341
  if (xaKey === undefined) {
@@ -347,7 +345,7 @@ export class BorderRouterRegistry {
347
345
  const nn = params.get("nn");
348
346
  const vn = params.get("vn");
349
347
  logger.info(
350
- `[ThreadDiag] BR instance dropped (no valid xa) qname="${name.qname}" source=${source} xa=${xaInfo} nn="${nn ?? ""}" vn="${vn ?? ""}"`,
348
+ `BR instance dropped (no valid xa) qname="${name.qname}" source=${source} xa=${xaInfo} nn="${nn ?? ""}" vn="${vn ?? ""}"`,
351
349
  );
352
350
  return;
353
351
  }
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- import type { Environment } from "@matter/general";
7
+ import type { Bytes, Environment } from "@matter/general";
8
8
 
9
9
  /**
10
10
  * Connection parameters consumed by {@link connectDtls}. The `random` and
@@ -19,7 +19,7 @@ export interface DtlsConnectOpts {
19
19
  port: number;
20
20
 
21
21
  /** EC-JPAKE password (PSKc — 16 bytes for Thread MeshCoP). */
22
- password: Uint8Array;
22
+ password: Bytes;
23
23
 
24
24
  /** Override the IPv4/IPv6 binding hint; default inferred from `address`. */
25
25
  type?: "udp4" | "udp6";
@@ -40,7 +40,7 @@ export interface DtlsConnectOpts {
40
40
  connectTimeoutMs?: number;
41
41
 
42
42
  /** Override `random()` for deterministic testing. Production: CSPRNG. */
43
- random?: () => Uint8Array;
43
+ random?: () => Bytes;
44
44
 
45
45
  /** Override `ephemeralScalar()` for deterministic testing. Production: CSPRNG-backed. */
46
46
  ephemeralScalar?: () => bigint;