@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
@@ -5,8 +5,9 @@
5
5
  */
6
6
  import { Bytes, ImplementationError, Millis, Seconds, Time } from "@matter/general";
7
7
  import { OperationalDataset } from "../dataset/OperationalDataset.js";
8
- import { normalizeKeys } from "./caseNormalizer.js";
8
+ import { detectKeyFormat, normalizeKeys } from "./caseNormalizer.js";
9
9
  import { OtbrRestError } from "./OtbrRestError.js";
10
+ import { parseHexBytes, parseRloc16 } from "./parseHexBytes.js";
10
11
  const DEFAULT_PORT = 8081;
11
12
  const DEFAULT_TIMEOUT = Seconds(5);
12
13
  const HTTP_NO_CONTENT = 204;
@@ -39,6 +40,20 @@ function expectNumber(record, key, where) {
39
40
  }
40
41
  return value;
41
42
  }
43
+ function optionalNumber(record, ...keys) {
44
+ for (const key of keys) {
45
+ const value = record[key];
46
+ if (typeof value === "number" && Number.isFinite(value)) return value;
47
+ }
48
+ return void 0;
49
+ }
50
+ function expectRloc16(record, where) {
51
+ const parsed = parseRloc16(record["rloc16"]);
52
+ if (parsed === void 0) {
53
+ throw new OtbrRestError("rest_protocol", `${where}: missing or invalid field rloc16`);
54
+ }
55
+ return parsed;
56
+ }
42
57
  function expectRecord(record, key, where) {
43
58
  const value = record[key];
44
59
  if (!isRecord(value)) {
@@ -46,15 +61,6 @@ function expectRecord(record, key, where) {
46
61
  }
47
62
  return value;
48
63
  }
49
- function parseHexBytes(hex, expectedLen, where) {
50
- if (!/^[0-9a-fA-F]*$/.test(hex)) {
51
- throw new OtbrRestError("rest_protocol", `${where}: not hex`);
52
- }
53
- if (hex.length !== expectedLen * 2) {
54
- throw new OtbrRestError("rest_protocol", `${where}: expected ${expectedLen} bytes, got ${hex.length / 2}`);
55
- }
56
- return Bytes.of(Bytes.fromHex(hex));
57
- }
58
64
  class OtbrRestClient {
59
65
  #baseUrl;
60
66
  #timeout;
@@ -73,7 +79,7 @@ class OtbrRestClient {
73
79
  /**
74
80
  * Fetch the current node summary from the OTBR `/node` endpoint.
75
81
  *
76
- * @returns Parsed node info with typed fields (binary fields as `Uint8Array`).
82
+ * @returns Parsed node info with typed fields (binary fields as `Bytes`).
77
83
  * @throws {@link OtbrRestError} with code `"rest_unreachable"` on network error or timeout.
78
84
  * @throws {@link OtbrRestError} with code `"rest_protocol"` when the response is
79
85
  * not a valid JSON object or a required field is missing or has the wrong type.
@@ -93,15 +99,38 @@ class OtbrRestClient {
93
99
  leaderRouterId: expectNumber(leaderRaw, "leaderRouterId", `${where}.leaderData`)
94
100
  };
95
101
  return {
96
- baId: parseHexBytes(expectString(body, "baId", where), 16, `${where}.baId`),
102
+ baId: parseHexBytes(expectString(body, "baId", where), `${where}.baId`, 16),
97
103
  state: expectString(body, "state", where),
98
- numOfRouter: expectNumber(body, "numOfRouter", where),
104
+ numOfRouter: optionalNumber(body, "numOfRouter", "routerCount"),
99
105
  rlocAddress: expectString(body, "rlocAddress", where),
100
- extAddress: parseHexBytes(expectString(body, "extAddress", where), 8, `${where}.extAddress`),
106
+ extAddress: parseHexBytes(expectString(body, "extAddress", where), `${where}.extAddress`, 8),
101
107
  networkName: expectString(body, "networkName", where),
102
- rloc16: expectNumber(body, "rloc16", where),
108
+ rloc16: expectRloc16(body, where),
103
109
  leaderData,
104
- extPanId: parseHexBytes(expectString(body, "extPanId", where), 8, `${where}.extPanId`)
110
+ extPanId: parseHexBytes(expectString(body, "extPanId", where), `${where}.extPanId`, 8)
111
+ };
112
+ }
113
+ /**
114
+ * Lightweight probe of the `/node` endpoint for {@link OtbrRestProbe}.
115
+ *
116
+ * Fetches `/node` once and returns only the fields needed to identify an
117
+ * OTBR REST surface — the observed key casing plus the network name and
118
+ * Extended PAN ID. Unlike {@link getNode} it does not validate the full
119
+ * node schema, so a build that reshapes non-essential fields still probes
120
+ * cleanly.
121
+ *
122
+ * @throws {@link OtbrRestError} `"rest_protocol"` when the response is not an
123
+ * OTBR node object or lacks `networkName`/`extPanId`.
124
+ */
125
+ async probeNode() {
126
+ const { body, keyFormat } = await this.#fetchJson("/node");
127
+ if (!isRecord(body) || keyFormat === null) {
128
+ throw new OtbrRestError("rest_protocol", "/node did not return an OTBR node object");
129
+ }
130
+ return {
131
+ keyFormat,
132
+ networkName: expectString(body, "networkName", "/node"),
133
+ extPanId: parseHexBytes(expectString(body, "extPanId", "/node"), "/node.extPanId", 8)
105
134
  };
106
135
  }
107
136
  /**
@@ -179,13 +208,13 @@ class OtbrRestClient {
179
208
  * Fetch the 8-byte IEEE EUI-64 extended address from `/node/ext-address`.
180
209
  */
181
210
  async getExtAddress() {
182
- return parseHexBytes(await this.#getJsonString("/node/ext-address"), 8, "/node/ext-address");
211
+ return parseHexBytes(await this.#getJsonString("/node/ext-address"), "/node/ext-address", 8);
183
212
  }
184
213
  /**
185
214
  * Fetch the 8-byte Extended PAN ID from `/node/ext-panid`.
186
215
  */
187
216
  async getExtPanId() {
188
- return parseHexBytes(await this.#getJsonString("/node/ext-panid"), 8, "/node/ext-panid");
217
+ return parseHexBytes(await this.#getJsonString("/node/ext-panid"), "/node/ext-panid", 8);
189
218
  }
190
219
  /**
191
220
  * Fetch the 16-byte Border Agent ID from `/node/ba-id`.
@@ -193,7 +222,7 @@ class OtbrRestClient {
193
222
  * @throws {@link OtbrRestError} `"rest_unsupported"` on older firmware that lacks this endpoint (404).
194
223
  */
195
224
  async getBorderAgentId() {
196
- return parseHexBytes(await this.#getJsonString("/node/ba-id"), 16, "/node/ba-id");
225
+ return parseHexBytes(await this.#getJsonString("/node/ba-id"), "/node/ba-id", 16);
197
226
  }
198
227
  /**
199
228
  * Fetch the leader data record from `/node/leader-data`.
@@ -442,7 +471,7 @@ class OtbrRestClient {
442
471
  async #fetchJson(path) {
443
472
  const response = await this.#doFetch(path, "application/json");
444
473
  if (response.status === HTTP_NO_CONTENT) {
445
- return { status: response.status, body: null };
474
+ return { status: response.status, body: null, keyFormat: null };
446
475
  }
447
476
  if (!response.ok) {
448
477
  throw new OtbrRestError(errorCodeForStatus(response.status), `GET ${path} returned ${response.status}`, {
@@ -457,7 +486,8 @@ class OtbrRestClient {
457
486
  cause: err instanceof Error ? err : void 0
458
487
  });
459
488
  }
460
- return { status: response.status, body: normalizeKeys(parsed) };
489
+ const keyFormat = isRecord(parsed) ? detectKeyFormat(parsed) : null;
490
+ return { status: response.status, body: normalizeKeys(parsed), keyFormat };
461
491
  }
462
492
  async #fetchText(path) {
463
493
  const response = await this.#doFetch(path, "text/plain");
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/otbr-rest/OtbrRestClient.ts"],
4
- "mappings": "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",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,OAAsB,qBAAqB,QAAQ,SAAS,YAAmB;AACxF,SAAS,0BAA0B;AACnC,SAAS,iBAAiB,qBAAqB;AAC/C,SAAS,qBAA6C;AACtD,SAAS,eAAe,mBAAmB;AAgD3C,MAAM,eAAe;AACrB,MAAM,kBAAkB,QAAQ,CAAC;AACjC,MAAM,kBAAkB;AAQxB,SAAS,mBAAmB,QAAmC;AAC3D,UAAQ,QAAQ;AAAA,IACZ,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX,KAAK;AACD,aAAO;AAAA,IACX;AACI,aAAO;AAAA,EACf;AACJ;AAQA,SAAS,SAAS,OAAkD;AAChE,SAAO,UAAU,QAAQ,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK;AAC9E;AAEA,SAAS,aAAa,QAAiC,KAAa,OAAuB;AACvF,QAAM,QAAQ,OAAO,GAAG;AACxB,MAAI,OAAO,UAAU,UAAU;AAC3B,UAAM,IAAI,cAAc,iBAAiB,GAAG,KAAK,iCAAiC,GAAG,EAAE;AAAA,EAC3F;AACA,SAAO;AACX;AAEA,SAAS,aAAa,QAAiC,KAAa,OAAuB;AACvF,QAAM,QAAQ,OAAO,GAAG;AACxB,MAAI,OAAO,UAAU,YAAY,CAAC,OAAO,SAAS,KAAK,GAAG;AACtD,UAAM,IAAI,cAAc,iBAAiB,GAAG,KAAK,kCAAkC,GAAG,EAAE;AAAA,EAC5F;AACA,SAAO;AACX;AAGA,SAAS,eAAe,WAAoC,MAAoC;AAC5F,aAAW,OAAO,MAAM;AACpB,UAAM,QAAQ,OAAO,GAAG;AACxB,QAAI,OAAO,UAAU,YAAY,OAAO,SAAS,KAAK,EAAG,QAAO;AAAA,EACpE;AACA,SAAO;AACX;AAEA,SAAS,aAAa,QAAiC,OAAuB;AAC1E,QAAM,SAAS,YAAY,OAAO,QAAQ,CAAC;AAC3C,MAAI,WAAW,QAAW;AACtB,UAAM,IAAI,cAAc,iBAAiB,GAAG,KAAK,mCAAmC;AAAA,EACxF;AACA,SAAO;AACX;AAEA,SAAS,aAAa,QAAiC,KAAa,OAAwC;AACxG,QAAM,QAAQ,OAAO,GAAG;AACxB,MAAI,CAAC,SAAS,KAAK,GAAG;AAClB,UAAM,IAAI,cAAc,iBAAiB,GAAG,KAAK,iCAAiC,GAAG,EAAE;AAAA,EAC3F;AACA,SAAO;AACX;AAgBO,MAAM,eAAe;AAAA,EACf;AAAA,EACA;AAAA;AAAA;AAAA;AAAA,EAKT,YAAY,MAA6B;AACrC,UAAM,OAAO,KAAK,QAAQ;AAC1B,UAAM,OAAO,KAAK,KAAK,SAAS,GAAG,KAAK,CAAC,KAAK,KAAK,WAAW,GAAG,IAAI,IAAI,KAAK,IAAI,MAAM,KAAK;AAC7F,SAAK,WAAW,UAAU,IAAI,IAAI,IAAI;AACtC,SAAK,WAAW,KAAK,cAAc,SAAY,OAAO,KAAK,SAAS,IAAI;AAAA,EAC5E;AAAA,EAEA,IAAI,UAAkB;AAClB,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,UAAiC;AACnC,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,OAAO;AAC9C,QAAI,CAAC,SAAS,IAAI,GAAG;AACjB,YAAM,IAAI,cAAc,iBAAiB,oCAAoC;AAAA,IACjF;AACA,UAAM,QAAQ;AACd,UAAM,YAAY,aAAa,MAAM,cAAc,KAAK;AACxD,UAAM,aAA6B;AAAA,MAC/B,aAAa,aAAa,WAAW,eAAe,GAAG,KAAK,aAAa;AAAA,MACzE,WAAW,aAAa,WAAW,aAAa,GAAG,KAAK,aAAa;AAAA,MACrE,aAAa,aAAa,WAAW,eAAe,GAAG,KAAK,aAAa;AAAA,MACzE,mBAAmB,aAAa,WAAW,qBAAqB,GAAG,KAAK,aAAa;AAAA,MACrF,gBAAgB,aAAa,WAAW,kBAAkB,GAAG,KAAK,aAAa;AAAA,IACnF;AACA,WAAO;AAAA,MACH,MAAM,cAAc,aAAa,MAAM,QAAQ,KAAK,GAAG,GAAG,KAAK,SAAS,EAAE;AAAA,MAC1E,OAAO,aAAa,MAAM,SAAS,KAAK;AAAA,MACxC,aAAa,eAAe,MAAM,eAAe,aAAa;AAAA,MAC9D,aAAa,aAAa,MAAM,eAAe,KAAK;AAAA,MACpD,YAAY,cAAc,aAAa,MAAM,cAAc,KAAK,GAAG,GAAG,KAAK,eAAe,CAAC;AAAA,MAC3F,aAAa,aAAa,MAAM,eAAe,KAAK;AAAA,MACpD,QAAQ,aAAa,MAAM,KAAK;AAAA,MAChC;AAAA,MACA,UAAU,cAAc,aAAa,MAAM,YAAY,KAAK,GAAG,GAAG,KAAK,aAAa,CAAC;AAAA,IACzF;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,MAAM,YAA8F;AAChG,UAAM,EAAE,MAAM,UAAU,IAAI,MAAM,KAAK,WAAW,OAAO;AACzD,QAAI,CAAC,SAAS,IAAI,KAAK,cAAc,MAAM;AACvC,YAAM,IAAI,cAAc,iBAAiB,0CAA0C;AAAA,IACvF;AACA,WAAO;AAAA,MACH;AAAA,MACA,aAAa,aAAa,MAAM,eAAe,OAAO;AAAA,MACtD,UAAU,cAAc,aAAa,MAAM,YAAY,OAAO,GAAG,kBAAkB,CAAC;AAAA,IACxF;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,MAAM,iBAAqC;AACvC,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,cAAc;AACrD,QAAI,CAAC,MAAM,QAAQ,IAAI,GAAG;AACtB,YAAM,IAAI,cAAc,iBAAiB,0CAA0C;AAAA,IACvF;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,MAAM,aAAsC;AACxC,UAAM,SAAS,MAAM,KAAK,WAAW,sBAAsB;AAC3D,UAAM,UAAU,MAAM,KAAK,WAAW,uBAAuB;AAC7D,UAAM,MAAsB,CAAC;AAC7B,QAAI,WAAW,OAAW,KAAI,YAAY;AAC1C,QAAI,YAAY,OAAW,KAAI,aAAa;AAC5C,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,WAA4B;AAC9B,WAAO,KAAK,eAAe,aAAa;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,iBAAkC;AACpC,WAAO,KAAK,eAAe,oBAAoB;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,UAA2B;AAC7B,WAAO,KAAK,eAAe,YAAY;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,YAA6B;AAC/B,WAAO,KAAK,eAAe,cAAc;AAAA,EAC7C;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,iBAAkC;AACpC,WAAO,KAAK,eAAe,qBAAqB;AAAA,EACpD;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,gBAAgC;AAClC,WAAO,cAAc,MAAM,KAAK,eAAe,mBAAmB,GAAG,qBAAqB,CAAC;AAAA,EAC/F;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,cAA8B;AAChC,WAAO,cAAc,MAAM,KAAK,eAAe,iBAAiB,GAAG,mBAAmB,CAAC;AAAA,EAC3F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,mBAAmC;AACrC,WAAO,cAAc,MAAM,KAAK,eAAe,aAAa,GAAG,eAAe,EAAE;AAAA,EACpF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,gBAAyC;AAC3C,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,mBAAmB;AAC1D,QAAI,CAAC,SAAS,IAAI,GAAG;AACjB,YAAM,IAAI,cAAc,iBAAiB,gDAAgD;AAAA,IAC7F;AACA,UAAM,QAAQ;AACd,WAAO;AAAA,MACH,aAAa,aAAa,MAAM,eAAe,KAAK;AAAA,MACpD,WAAW,aAAa,MAAM,aAAa,KAAK;AAAA,MAChD,aAAa,aAAa,MAAM,eAAe,KAAK;AAAA,MACpD,mBAAmB,aAAa,MAAM,qBAAqB,KAAK;AAAA,MAChE,gBAAgB,aAAa,MAAM,kBAAkB,KAAK;AAAA,IAC9D;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,mBAA4D;AAC9D,WAAO,KAAK,YAAY,sBAAsB;AAAA,EAClD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,oBAA6D;AAC/D,WAAO,KAAK,YAAY,uBAAuB;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,wBAAyC;AAC3C,WAAO,KAAK,eAAe,2BAA2B;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,uBAAwC;AAC1C,WAAO,KAAK,eAAe,0BAA0B;AAAA,EACzD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,aAAiC;AACnC,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,2BAA2B;AAClE,QAAI,CAAC,MAAM,QAAQ,IAAI,GAAG;AACtB,YAAM,IAAI,cAAc,iBAAiB,uDAAuD;AAAA,IACpG;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,SAAS,QAAgC;AAC3C,UAAM,KAAK,QAAQ,OAAO,eAAe;AAAA,MACrC,aAAa;AAAA,MACb,MAAM,KAAK,UAAU,SAAS,WAAW,SAAS;AAAA,IACtD,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,iBAAiB,SAAqD;AACxE,UAAM,KAAK,YAAY,wBAAwB,OAAO;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,sBAAqC;AACvC,UAAM,KAAK,QAAQ,UAAU,sBAAsB;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,kBAAkB,SAAqD;AACzE,UAAM,KAAK,YAAY,yBAAyB,OAAO;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,uBAAsC;AACxC,UAAM,KAAK,QAAQ,UAAU,uBAAuB;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,eAA8B;AAChC,UAAM,KAAK,QAAQ,UAAU,OAAO;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,qBAAqB,QAAgC;AACvD,UAAM,KAAK,QAAQ,OAAO,4BAA4B;AAAA,MAClD,aAAa;AAAA,MACb,MAAM,KAAK,UAAU,SAAS,WAAW,SAAS;AAAA,IACtD,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,UAAU,QAAmC;AAC/C,QAAI,OAAO,UAAU,UAAa,OAAO,cAAc,QAAW;AAC9D,YAAM,IAAI,oBAAoB,sDAAsD;AAAA,IACxF;AACA,UAAM,UAAmC,EAAE,MAAM,OAAO,KAAK;AAC7D,QAAI,OAAO,UAAU,OAAW,SAAQ,QAAQ,OAAO;AACvD,QAAI,OAAO,cAAc,OAAW,SAAQ,YAAY,OAAO;AAC/D,QAAI,OAAO,mBAAmB,OAAW,SAAQ,UAAU,OAAO;AAClE,UAAM,KAAK,QAAQ,QAAQ,6BAA6B;AAAA,MACpD,aAAa;AAAA,MACb,MAAM,KAAK,UAAU,OAAO;AAAA,IAChC,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,aAAa,UAAiC;AAChD,UAAM,KAAK,QAAQ,UAAU,6BAA6B;AAAA,MACtD,aAAa;AAAA,MACb,MAAM,KAAK,UAAU,QAAQ;AAAA,IACjC,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,YAAY,MAAuD;AACrE,UAAM,MAAM,MAAM,KAAK,WAAW,IAAI;AACtC,QAAI,QAAQ,UAAa,IAAI,WAAW,EAAG,QAAO;AAClD,QAAI;AACA,aAAO,mBAAmB,OAAO,GAAG;AAAA,IACxC,SAAS,KAAK;AACV,YAAM,IAAI,cAAc,iBAAiB,OAAO,IAAI,oCAAoC;AAAA,QACpF,OAAO,eAAe,QAAQ,MAAM;AAAA,MACxC,CAAC;AAAA,IACL;AAAA,EACJ;AAAA,EAEA,MAAM,YAAY,MAAc,SAAqD;AACjF,UAAM,MAAM,OAAO,YAAY,WAAW,UAAU,MAAM,MAAM,mBAAmB,OAAO,OAAO,CAAC;AAClG,UAAM,KAAK,QAAQ,OAAO,MAAM,EAAE,aAAa,cAAc,MAAM,IAAI,CAAC;AAAA,EAC5E;AAAA,EAEA,MAAM,eAAe,MAA+B;AAChD,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAAI;AAC3C,QAAI,OAAO,SAAS,UAAU;AAC1B,YAAM,IAAI,cAAc,iBAAiB,OAAO,IAAI,0BAA0B;AAAA,IAClF;AACA,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,eAAe,MAA+B;AAChD,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,WAAW,IAAI;AAC3C,QAAI,OAAO,SAAS,YAAY,CAAC,OAAO,SAAS,IAAI,GAAG;AACpD,YAAM,IAAI,cAAc,iBAAiB,OAAO,IAAI,0BAA0B;AAAA,IAClF;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MAAM,wBAAwB,MAA8C;AACxE,UAAM,KAAK,aAAa,IAAI;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MAAM,kBAAkB,MAA8C;AAClE,UAAM,KAAK,aAAa,IAAI;AAAA,EAChC;AAAA,EAEA,MAAM,aAAa,MAA8C;AAC7D,UAAM,MAAM,GAAG,KAAK,QAAQ;AAC5B,UAAM,aAAa,IAAI,gBAAgB;AACvC,UAAM,QAAe,KAAK;AAAA,MAAS;AAAA,MAA6B,KAAK;AAAA,MAAU,MAC3E,WAAW,MAAM;AAAA,IACrB,EAAE,MAAM;AACR,QAAI;AACJ,QAAI;AACA,iBAAW,MAAM,MAAM,KAAK;AAAA,QACxB,QAAQ;AAAA,QACR,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,QAC9C,MAAM,KAAK,UAAU,IAAI;AAAA,QACzB,QAAQ,WAAW;AAAA,MACvB,CAAC;AAAA,IACL,SAAS,KAAK;AACV,YAAM,UAAU,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAC/D,YAAM,IAAI,cAAc,oBAAoB,6BAA6B,OAAO,IAAI;AAAA,QAChF,OAAO,eAAe,QAAQ,MAAM;AAAA,MACxC,CAAC;AAAA,IACL,UAAE;AACE,YAAM,KAAK;AAAA,IACf;AACA,QAAI,CAAC,SAAS,IAAI;AACd,YAAM,IAAI,cAAc,iBAAiB,8BAA8B,SAAS,MAAM,IAAI;AAAA,QACtF,YAAY,SAAS;AAAA,MACzB,CAAC;AAAA,IACL;AAAA,EACJ;AAAA,EAEA,MAAM,WAAW,MAAoC;AACjD,UAAM,WAAW,MAAM,KAAK,SAAS,MAAM,kBAAkB;AAC7D,QAAI,SAAS,WAAW,iBAAiB;AACrC,aAAO,EAAE,QAAQ,SAAS,QAAQ,MAAM,MAAM,WAAW,KAAK;AAAA,IAClE;AACA,QAAI,CAAC,SAAS,IAAI;AACd,YAAM,IAAI,cAAc,mBAAmB,SAAS,MAAM,GAAG,OAAO,IAAI,aAAa,SAAS,MAAM,IAAI;AAAA,QACpG,YAAY,SAAS;AAAA,MACzB,CAAC;AAAA,IACL;AACA,QAAI;AACJ,QAAI;AACA,eAAS,KAAK,MAAM,SAAS,IAAI;AAAA,IACrC,SAAS,KAAK;AACV,YAAM,IAAI,cAAc,iBAAiB,OAAO,IAAI,2BAA2B;AAAA,QAC3E,OAAO,eAAe,QAAQ,MAAM;AAAA,MACxC,CAAC;AAAA,IACL;AACA,UAAM,YAAY,SAAS,MAAM,IAAI,gBAAgB,MAAM,IAAI;AAC/D,WAAO,EAAE,QAAQ,SAAS,QAAQ,MAAM,cAAc,MAAM,GAAG,UAAU;AAAA,EAC7E;AAAA,EAEA,MAAM,WAAW,MAA2C;AACxD,UAAM,WAAW,MAAM,KAAK,SAAS,MAAM,YAAY;AACvD,QAAI,SAAS,WAAW,gBAAiB,QAAO;AAChD,QAAI,CAAC,SAAS,IAAI;AACd,YAAM,IAAI,cAAc,mBAAmB,SAAS,MAAM,GAAG,OAAO,IAAI,aAAa,SAAS,MAAM,IAAI;AAAA,QACpG,YAAY,SAAS;AAAA,MACzB,CAAC;AAAA,IACL;AACA,WAAO,SAAS;AAAA,EACpB;AAAA,EAEA,MAAM,SAAS,MAAc,QAAwE;AACjG,UAAM,MAAM,GAAG,KAAK,QAAQ,GAAG,IAAI;AACnC,UAAM,aAAa,IAAI,gBAAgB;AACvC,UAAM,QAAe,KAAK,SAAS,sBAAsB,KAAK,UAAU,MAAM,WAAW,MAAM,CAAC,EAAE,MAAM;AACxG,QAAI;AACA,YAAM,WAAW,MAAM,MAAM,KAAK;AAAA,QAC9B,QAAQ;AAAA,QACR,SAAS,EAAE,QAAQ,OAAO;AAAA,QAC1B,QAAQ,WAAW;AAAA,MACvB,CAAC;AAGD,YAAM,OAAO,MAAM,SAAS,KAAK;AACjC,aAAO,EAAE,QAAQ,SAAS,QAAQ,IAAI,SAAS,IAAI,KAAK;AAAA,IAC5D,SAAS,KAAK;AACV,YAAM,UAAU,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAC/D,YAAM,IAAI,cAAc,oBAAoB,OAAO,IAAI,YAAY,OAAO,IAAI;AAAA,QAC1E,OAAO,eAAe,QAAQ,MAAM;AAAA,MACxC,CAAC;AAAA,IACL,UAAE;AACE,YAAM,KAAK;AAAA,IACf;AAAA,EACJ;AAAA,EAEA,MAAM,QACF,QACA,MACA,MACa;AACb,UAAM,MAAM,GAAG,KAAK,QAAQ,GAAG,IAAI;AACnC,UAAM,aAAa,IAAI,gBAAgB;AACvC,UAAM,QAAe,KAAK,SAAS,uBAAuB,KAAK,UAAU,MAAM,WAAW,MAAM,CAAC,EAAE,MAAM;AACzG,UAAM,UAAkC,CAAC;AACzC,QAAI,MAAM,gBAAgB,OAAW,SAAQ,cAAc,IAAI,KAAK;AACpE,QAAI;AACJ,QAAI;AACJ,QAAI;AACA,YAAM,WAAW,MAAM,MAAM,KAAK,EAAE,QAAQ,SAAS,MAAM,MAAM,MAAM,QAAQ,WAAW,OAAO,CAAC;AAGlG,YAAM,SAAS,KAAK;AACpB,eAAS,SAAS;AAClB,WAAK,SAAS;AAAA,IAClB,SAAS,KAAK;AACV,YAAM,UAAU,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAC/D,YAAM,IAAI,cAAc,oBAAoB,GAAG,MAAM,IAAI,IAAI,YAAY,OAAO,IAAI;AAAA,QAChF,OAAO,eAAe,QAAQ,MAAM;AAAA,MACxC,CAAC;AAAA,IACL,UAAE;AACE,YAAM,KAAK;AAAA,IACf;AACA,QAAI,CAAC,IAAI;AACL,YAAM,IAAI,cAAc,mBAAmB,MAAM,GAAG,GAAG,MAAM,IAAI,IAAI,aAAa,MAAM,IAAI;AAAA,QACxF,YAAY;AAAA,MAChB,CAAC;AAAA,IACL;AAAA,EACJ;AACJ;",
5
5
  "names": []
6
6
  }
@@ -3,6 +3,7 @@
3
3
  * Copyright 2022-2026 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { Bytes } from "@matter/general";
6
7
  import type { DiagnosticResponse } from "../diagnostic/DiagnosticResponse.js";
7
8
  import type { DiagnosticSource, QueryMulticastHandle, QueryMulticastOptions } from "../diagnostic/DiagnosticSource.js";
8
9
  import type { OtbrRestCapability } from "./OtbrRestCapability.js";
@@ -33,7 +34,7 @@ export declare class OtbrRestDiagnosticSource implements DiagnosticSource {
33
34
  *
34
35
  * @param extPanId - 8-byte Extended PAN ID of the network to query.
35
36
  */
36
- canQuery(extPanId: Uint8Array): boolean;
37
+ canQuery(extPanId: Bytes): boolean;
37
38
  /**
38
39
  * Query diagnostics for a single mesh node by RLOC16.
39
40
  *
@@ -1 +1 @@
1
- {"version":3,"file":"OtbrRestDiagnosticSource.d.ts","sourceRoot":"","sources":["../../../src/otbr-rest/OtbrRestDiagnosticSource.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAEvH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAM1D,KAAK,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,gBAAgB,GAAG,SAAS,GAAG,yBAAyB,CAAC,CAAC;AAEjG;;;;;;;;;;;GAWG;AACH,qBAAa,wBAAyB,YAAW,gBAAgB;;IAC7D,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAU;IAKrC;;;OAGG;IACH,YAAY,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAG7D;IAED;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAEtC;IAED;;;;;;;;;;;;OAYG;IACG,YAAY,CAAC,MAAM,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAoB7G;IAED;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,EAAE,KAAK,EAAE,qBAAqB,GAAG,oBAAoB,CAwChG;IAED;;;;;;;;;;;;;OAaG;IACG,aAAa,CACf,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,EACzC,SAAS,GAAE,aAAa,CAAC,MAAM,CAA2B,GAC3D,OAAO,CAAC,IAAI,CAAC,CAQf;CACJ"}
1
+ {"version":3,"file":"OtbrRestDiagnosticSource.d.ts","sourceRoot":"","sources":["../../../src/otbr-rest/OtbrRestDiagnosticSource.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAA+B,MAAM,iBAAiB,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAEvH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAM1D,KAAK,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,gBAAgB,GAAG,SAAS,GAAG,yBAAyB,CAAC,CAAC;AAEjG;;;;;;;;;;;GAWG;AACH,qBAAa,wBAAyB,YAAW,gBAAgB;;IAC7D,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAU;IAKrC;;;OAGG;IACH,YAAY,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAG7D;IAED;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAG,OAAO,CAEjC;IAED;;;;;;;;;;;;OAYG;IACG,YAAY,CAAC,MAAM,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAoB7G;IAED;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,EAAE,KAAK,EAAE,qBAAqB,GAAG,oBAAoB,CAwChG;IAED;;;;;;;;;;;;;OAaG;IACG,aAAa,CACf,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,EACzC,SAAS,GAAE,aAAa,CAAC,MAAM,CAA2B,GAC3D,OAAO,CAAC,IAAI,CAAC,CAQf;CACJ"}
@@ -3,7 +3,7 @@
3
3
  * Copyright 2022-2026 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { Bytes, Logger, Observable } from "@matter/general";
6
+ import { Bytes, errorOf, Logger, Observable } from "@matter/general";
7
7
  import { DEFAULT_RESET_TLV_TYPES } from "../diagnostic/DiagnosticSource.js";
8
8
  import { OtbrRestError } from "./OtbrRestError.js";
9
9
  import { translateNodeJson } from "./translation.js";
@@ -81,17 +81,17 @@ class OtbrRestDiagnosticSource {
81
81
  rejectDone = reject;
82
82
  });
83
83
  const start = Date.now();
84
- logger.debug(`[ThreadDiag] REST GET /diagnostics ${this.#capability.baseUrl}`);
84
+ logger.debug(`REST GET /diagnostics ${this.#capability.baseUrl}`);
85
85
  void (async () => {
86
86
  try {
87
87
  const list = await this.#client.getDiagnostics();
88
88
  for (const entry of list) {
89
89
  onNode.emit(translateNodeJson(entry));
90
90
  }
91
- logger.debug(`[ThreadDiag] REST /diagnostics OK nodes=${list.length} duration=${Date.now() - start}ms`);
91
+ logger.debug(`REST /diagnostics OK nodes=${list.length} duration=${Date.now() - start}ms`);
92
92
  resolveDone();
93
93
  } catch (err) {
94
- const e = err instanceof Error ? err : new Error(String(err));
94
+ const e = errorOf(err);
95
95
  onError.emit(e);
96
96
  rejectDone(e);
97
97
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/otbr-rest/OtbrRestDiagnosticSource.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,OAAO,QAAQ,kBAAkB;AAG1C,SAAS,+BAA+B;AAGxC,SAAS,qBAAqB;AAC9B,SAAS,yBAAyB;AAElC,MAAM,SAAS,OAAO,IAAI,0BAA0B;AAgB7C,MAAM,yBAAqD;AAAA,EACrD,OAAO;AAAA,EAEP;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMT,YAAY,QAAoB,YAAgC;AAC5D,SAAK,UAAU;AACf,SAAK,cAAc;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAS,UAA+B;AACpC,WAAO,MAAM,SAAS,UAAU,KAAK,YAAY,QAAQ;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeA,MAAM,aAAa,QAA0C,WAAkD;AAC3G,QAAI,OAAO,OAAO,UAAa,OAAO,WAAW,QAAW;AACxD,YAAM,IAAI;AAAA,QACN;AAAA,QACA;AAAA,MACJ;AAAA,IACJ;AACA,QAAI,OAAO,WAAW,QAAW;AAC7B,YAAM,IAAI,cAAc,iBAAiB,6DAA6D;AAAA,IAC1G;AAKA,UAAM,OAAO,MAAM,KAAK,QAAQ,eAAe;AAC/C,eAAW,SAAS,MAAM;AACtB,YAAM,UAAU,kBAAkB,KAAK;AACvC,UAAI,QAAQ,WAAW,OAAO,OAAQ,QAAO;AAAA,IACjD;AACA,UAAM,IAAI,cAAc,iBAAiB,YAAY,OAAO,OAAO,SAAS,EAAE,CAAC,4BAA4B;AAAA,EAC/G;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeA,eAAe,QAA+B,OAAoD;AAK9F,UAAM,SAAS,IAAI,WAAiC;AACpD,UAAM,UAAU,IAAI,WAAoB;AACxC,QAAI;AACJ,QAAI;AACJ,UAAM,OAAO,IAAI,QAAc,CAAC,SAAS,WAAW;AAChD,oBAAc;AACd,mBAAa;AAAA,IACjB,CAAC;AAED,UAAM,QAAQ,KAAK,IAAI;AACvB,WAAO,MAAM,sCAAsC,KAAK,YAAY,OAAO,EAAE;AAC7E,UAAM,YAAY;AACd,UAAI;AACA,cAAM,OAAO,MAAM,KAAK,QAAQ,eAAe;AAC/C,mBAAW,SAAS,MAAM;AACtB,iBAAO,KAAK,kBAAkB,KAAK,CAAC;AAAA,QACxC;AACA,eAAO,MAAM,2CAA2C,KAAK,MAAM,aAAa,KAAK,IAAI,IAAI,KAAK,IAAI;AACtG,oBAAY;AAAA,MAChB,SAAS,KAAK;AACV,cAAM,IAAI,eAAe,QAAQ,MAAM,IAAI,MAAM,OAAO,GAAG,CAAC;AAC5D,gBAAQ,KAAK,CAAC;AACd,mBAAW,CAAC;AAAA,MAChB;AAAA,IACJ,GAAG;AAEH,WAAO;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO,YAAY;AAEf,cAAM,KAAK,MAAM,MAAM;AAAA,QAAC,CAAC;AAAA,MAC7B;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBA,MAAM,cACF,SACA,YAAmC,yBACtB;AACb,QAAI,KAAK,YAAY,cAAc,SAAS;AACxC,YAAM,IAAI;AAAA,QACN;AAAA,QACA;AAAA,MACJ;AAAA,IACJ;AACA,UAAM,KAAK,QAAQ,wBAAwB,EAAE,QAAQ,8BAA8B,CAAC;AAAA,EACxF;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,OAAO,SAAS,QAAQ,kBAAkB;AAGnD,SAAS,+BAA+B;AAGxC,SAAS,qBAAqB;AAC9B,SAAS,yBAAyB;AAElC,MAAM,SAAS,OAAO,IAAI,0BAA0B;AAgB7C,MAAM,yBAAqD;AAAA,EACrD,OAAO;AAAA,EAEP;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMT,YAAY,QAAoB,YAAgC;AAC5D,SAAK,UAAU;AACf,SAAK,cAAc;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAS,UAA0B;AAC/B,WAAO,MAAM,SAAS,UAAU,KAAK,YAAY,QAAQ;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeA,MAAM,aAAa,QAA0C,WAAkD;AAC3G,QAAI,OAAO,OAAO,UAAa,OAAO,WAAW,QAAW;AACxD,YAAM,IAAI;AAAA,QACN;AAAA,QACA;AAAA,MACJ;AAAA,IACJ;AACA,QAAI,OAAO,WAAW,QAAW;AAC7B,YAAM,IAAI,cAAc,iBAAiB,6DAA6D;AAAA,IAC1G;AAKA,UAAM,OAAO,MAAM,KAAK,QAAQ,eAAe;AAC/C,eAAW,SAAS,MAAM;AACtB,YAAM,UAAU,kBAAkB,KAAK;AACvC,UAAI,QAAQ,WAAW,OAAO,OAAQ,QAAO;AAAA,IACjD;AACA,UAAM,IAAI,cAAc,iBAAiB,YAAY,OAAO,OAAO,SAAS,EAAE,CAAC,4BAA4B;AAAA,EAC/G;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeA,eAAe,QAA+B,OAAoD;AAK9F,UAAM,SAAS,IAAI,WAAiC;AACpD,UAAM,UAAU,IAAI,WAAoB;AACxC,QAAI;AACJ,QAAI;AACJ,UAAM,OAAO,IAAI,QAAc,CAAC,SAAS,WAAW;AAChD,oBAAc;AACd,mBAAa;AAAA,IACjB,CAAC;AAED,UAAM,QAAQ,KAAK,IAAI;AACvB,WAAO,MAAM,yBAAyB,KAAK,YAAY,OAAO,EAAE;AAChE,UAAM,YAAY;AACd,UAAI;AACA,cAAM,OAAO,MAAM,KAAK,QAAQ,eAAe;AAC/C,mBAAW,SAAS,MAAM;AACtB,iBAAO,KAAK,kBAAkB,KAAK,CAAC;AAAA,QACxC;AACA,eAAO,MAAM,8BAA8B,KAAK,MAAM,aAAa,KAAK,IAAI,IAAI,KAAK,IAAI;AACzF,oBAAY;AAAA,MAChB,SAAS,KAAK;AACV,cAAM,IAAI,QAAQ,GAAG;AACrB,gBAAQ,KAAK,CAAC;AACd,mBAAW,CAAC;AAAA,MAChB;AAAA,IACJ,GAAG;AAEH,WAAO;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO,YAAY;AAEf,cAAM,KAAK,MAAM,MAAM;AAAA,QAAC,CAAC;AAAA,MAC7B;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBA,MAAM,cACF,SACA,YAAmC,yBACtB;AACb,QAAI,KAAK,YAAY,cAAc,SAAS;AACxC,YAAM,IAAI;AAAA,QACN;AAAA,QACA;AAAA,MACJ;AAAA,IACJ;AACA,UAAM,KAAK,QAAQ,wBAAwB,EAAE,QAAQ,8BAA8B,CAAC;AAAA,EACxF;AACJ;",
5
5
  "names": []
6
6
  }
@@ -7,10 +7,12 @@ import type { OtbrRestCapability } from "./OtbrRestCapability.js";
7
7
  export declare class OtbrRestProbe {
8
8
  /**
9
9
  * Probe a host:port for OTBR REST. Returns the detected capability or
10
- * `null` if the endpoint is not OTBR or not reachable within
11
- * `timeoutMs`. Detection mirrors python-otbr-api: a 200 on
12
- * `/api/actions` indicates the modern camelCase backend, a 404 the
13
- * legacy pascalCase backend; everything else is "not OTBR".
10
+ * `null` if the endpoint is not OTBR or not reachable within `timeoutMs`.
11
+ *
12
+ * A single `GET /node` both confirms the endpoint is OTBR and reveals its
13
+ * key casing: legacy builds emit PascalCase keys, post-2024 builds
14
+ * camelCase. Anything that is not a JSON object carrying `networkName` and
15
+ * `extPanId` is treated as "not OTBR".
14
16
  */
15
17
  static probe(host: string, port?: number, timeoutMs?: number): Promise<OtbrRestCapability | null>;
16
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"OtbrRestProbe.d.ts","sourceRoot":"","sources":["../../../src/otbr-rest/OtbrRestProbe.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAYlE,qBAAa,aAAa;IACtB;;;;;;OAMG;IACH,OAAa,KAAK,CACd,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,MAA2B,EACjC,SAAS,GAAE,MAA8B,GAC1C,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CA8BpC;CACJ"}
1
+ {"version":3,"file":"OtbrRestProbe.d.ts","sourceRoot":"","sources":["../../../src/otbr-rest/OtbrRestProbe.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AASlE,qBAAa,aAAa;IACtB;;;;;;;;OAQG;IACH,OAAa,KAAK,CACd,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,MAA2B,EACjC,SAAS,GAAE,MAA8B,GAC1C,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAkBpC;CACJ"}
@@ -3,73 +3,41 @@
3
3
  * Copyright 2022-2026 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { Bytes, Logger, Millis, Seconds, Time } from "@matter/general";
6
+ import { Bytes, Logger, Seconds } from "@matter/general";
7
7
  import { OtbrRestClient } from "./OtbrRestClient.js";
8
8
  import { OtbrRestError } from "./OtbrRestError.js";
9
9
  const logger = Logger.get("OtbrRestProbe");
10
10
  const DEFAULT_PROBE_PORT = 8081;
11
11
  const DEFAULT_PROBE_TIMEOUT = Seconds(1);
12
- const HTTP_OK = 200;
13
- const HTTP_NOT_FOUND = 404;
14
12
  class OtbrRestProbe {
15
13
  /**
16
14
  * Probe a host:port for OTBR REST. Returns the detected capability or
17
- * `null` if the endpoint is not OTBR or not reachable within
18
- * `timeoutMs`. Detection mirrors python-otbr-api: a 200 on
19
- * `/api/actions` indicates the modern camelCase backend, a 404 the
20
- * legacy pascalCase backend; everything else is "not OTBR".
15
+ * `null` if the endpoint is not OTBR or not reachable within `timeoutMs`.
16
+ *
17
+ * A single `GET /node` both confirms the endpoint is OTBR and reveals its
18
+ * key casing: legacy builds emit PascalCase keys, post-2024 builds
19
+ * camelCase. Anything that is not a JSON object carrying `networkName` and
20
+ * `extPanId` is treated as "not OTBR".
21
21
  */
22
22
  static async probe(host, port = DEFAULT_PROBE_PORT, timeoutMs = DEFAULT_PROBE_TIMEOUT) {
23
23
  const client = new OtbrRestClient({ host, port, timeoutMs });
24
24
  const baseUrl = client.baseUrl;
25
- logger.debug(`[ThreadDiag] probe START ${baseUrl} timeout=${timeoutMs}ms`);
26
- const keyFormat = await detectCase(baseUrl, timeoutMs);
27
- if (keyFormat === null) {
28
- logger.debug(`[ThreadDiag] probe MISS ${baseUrl} (case detect failed)`);
29
- return null;
30
- }
25
+ logger.debug(`probe START ${baseUrl} timeout=${timeoutMs}ms`);
31
26
  try {
32
- const node = await client.getNode();
27
+ const { keyFormat, networkName, extPanId } = await client.probeNode();
33
28
  logger.debug(
34
- `[ThreadDiag] probe OK ${baseUrl} keyFormat=${keyFormat} xp=${Bytes.toHex(node.extPanId).toUpperCase()} network="${node.networkName}"`
29
+ `probe OK ${baseUrl} keyFormat=${keyFormat} xp=${Bytes.toHex(extPanId).toUpperCase()} network="${networkName}"`
35
30
  );
36
- return {
37
- baseUrl,
38
- keyFormat,
39
- probedAt: Date.now(),
40
- networkName: node.networkName,
41
- extPanId: node.extPanId
42
- };
31
+ return { baseUrl, keyFormat, probedAt: Date.now(), networkName, extPanId };
43
32
  } catch (err) {
44
33
  if (err instanceof OtbrRestError) {
45
- logger.debug(`[ThreadDiag] probe MISS ${baseUrl} /node ${err.code} (${err.message})`);
34
+ logger.debug(`probe MISS ${baseUrl} /node ${err.code} (${err.message})`);
46
35
  return null;
47
36
  }
48
37
  throw err;
49
38
  }
50
39
  }
51
40
  }
52
- async function detectCase(baseUrl, timeoutMs) {
53
- const controller = new AbortController();
54
- const timer = Time.getTimer("otbr-probe-timeout", Millis(timeoutMs), () => controller.abort()).start();
55
- try {
56
- const response = await fetch(`${baseUrl}/api/actions`, {
57
- method: "GET",
58
- headers: { Accept: "application/json" },
59
- signal: controller.signal
60
- });
61
- if (response.status === HTTP_OK) return "camel";
62
- if (response.status === HTTP_NOT_FOUND) return "pascal";
63
- logger.debug(`probe of ${baseUrl} rejected: /api/actions returned ${response.status}`);
64
- return null;
65
- } catch (err) {
66
- const message = err instanceof Error ? err.message : String(err);
67
- logger.debug(`probe of ${baseUrl} rejected: /api/actions ${message}`);
68
- return null;
69
- } finally {
70
- timer.stop();
71
- }
72
- }
73
41
  export {
74
42
  OtbrRestProbe
75
43
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/otbr-rest/OtbrRestProbe.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,OAAO,QAAQ,QAAQ,SAAS,YAAmB;AAE5D,SAAS,sBAAsB;AAC/B,SAAS,qBAAqB;AAE9B,MAAM,SAAS,OAAO,IAAI,eAAe;AAEzC,MAAM,qBAAqB;AAC3B,MAAM,wBAAwB,QAAQ,CAAC;AAEvC,MAAM,UAAU;AAChB,MAAM,iBAAiB;AAEhB,MAAM,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQvB,aAAa,MACT,MACA,OAAe,oBACf,YAAoB,uBACc;AAClC,UAAM,SAAS,IAAI,eAAe,EAAE,MAAM,MAAM,UAAU,CAAC;AAC3D,UAAM,UAAU,OAAO;AACvB,WAAO,MAAM,4BAA4B,OAAO,YAAY,SAAS,IAAI;AAEzE,UAAM,YAAY,MAAM,WAAW,SAAS,SAAS;AACrD,QAAI,cAAc,MAAM;AACpB,aAAO,MAAM,2BAA2B,OAAO,uBAAuB;AACtE,aAAO;AAAA,IACX;AAEA,QAAI;AACA,YAAM,OAAO,MAAM,OAAO,QAAQ;AAClC,aAAO;AAAA,QACH,yBAAyB,OAAO,cAAc,SAAS,OAAO,MAAM,MAAM,KAAK,QAAQ,EAAE,YAAY,CAAC,aAAa,KAAK,WAAW;AAAA,MACvI;AACA,aAAO;AAAA,QACH;AAAA,QACA;AAAA,QACA,UAAU,KAAK,IAAI;AAAA,QACnB,aAAa,KAAK;AAAA,QAClB,UAAU,KAAK;AAAA,MACnB;AAAA,IACJ,SAAS,KAAK;AACV,UAAI,eAAe,eAAe;AAC9B,eAAO,MAAM,2BAA2B,OAAO,UAAU,IAAI,IAAI,KAAK,IAAI,OAAO,GAAG;AACpF,eAAO;AAAA,MACX;AACA,YAAM;AAAA,IACV;AAAA,EACJ;AACJ;AAEA,eAAe,WAAW,SAAiB,WAAuD;AAC9F,QAAM,aAAa,IAAI,gBAAgB;AACvC,QAAM,QAAe,KAAK,SAAS,sBAAsB,OAAO,SAAS,GAAG,MAAM,WAAW,MAAM,CAAC,EAAE,MAAM;AAC5G,MAAI;AACA,UAAM,WAAW,MAAM,MAAM,GAAG,OAAO,gBAAgB;AAAA,MACnD,QAAQ;AAAA,MACR,SAAS,EAAE,QAAQ,mBAAmB;AAAA,MACtC,QAAQ,WAAW;AAAA,IACvB,CAAC;AACD,QAAI,SAAS,WAAW,QAAS,QAAO;AACxC,QAAI,SAAS,WAAW,eAAgB,QAAO;AAC/C,WAAO,MAAM,YAAY,OAAO,oCAAoC,SAAS,MAAM,EAAE;AACrF,WAAO;AAAA,EACX,SAAS,KAAK;AACV,UAAM,UAAU,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAC/D,WAAO,MAAM,YAAY,OAAO,2BAA2B,OAAO,EAAE;AACpE,WAAO;AAAA,EACX,UAAE;AACE,UAAM,KAAK;AAAA,EACf;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,OAAO,QAAQ,eAAe;AAEvC,SAAS,sBAAsB;AAC/B,SAAS,qBAAqB;AAE9B,MAAM,SAAS,OAAO,IAAI,eAAe;AAEzC,MAAM,qBAAqB;AAC3B,MAAM,wBAAwB,QAAQ,CAAC;AAEhC,MAAM,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUvB,aAAa,MACT,MACA,OAAe,oBACf,YAAoB,uBACc;AAClC,UAAM,SAAS,IAAI,eAAe,EAAE,MAAM,MAAM,UAAU,CAAC;AAC3D,UAAM,UAAU,OAAO;AACvB,WAAO,MAAM,eAAe,OAAO,YAAY,SAAS,IAAI;AAE5D,QAAI;AACA,YAAM,EAAE,WAAW,aAAa,SAAS,IAAI,MAAM,OAAO,UAAU;AACpE,aAAO;AAAA,QACH,YAAY,OAAO,cAAc,SAAS,OAAO,MAAM,MAAM,QAAQ,EAAE,YAAY,CAAC,aAAa,WAAW;AAAA,MAChH;AACA,aAAO,EAAE,SAAS,WAAW,UAAU,KAAK,IAAI,GAAG,aAAa,SAAS;AAAA,IAC7E,SAAS,KAAK;AACV,UAAI,eAAe,eAAe;AAC9B,eAAO,MAAM,cAAc,OAAO,UAAU,IAAI,IAAI,KAAK,IAAI,OAAO,GAAG;AACvE,eAAO;AAAA,MACX;AACA,YAAM;AAAA,IACV;AAAA,EACJ;AACJ;",
5
5
  "names": []
6
6
  }
@@ -3,6 +3,13 @@
3
3
  * Copyright 2022-2026 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ /**
7
+ * Classify an OTBR REST response object by its key casing: legacy builds emit
8
+ * PascalCase (`NetworkName`), post-2024 builds camelCase (`networkName`). Any
9
+ * uppercase-first key marks the object as pascal; a non-empty object with only
10
+ * lowercase-first keys is camel. An empty object yields `null` — no signal.
11
+ */
12
+ export declare function detectKeyFormat(raw: Record<string, unknown>): "camel" | "pascal" | null;
6
13
  /**
7
14
  * Recursively rewrites object keys from PascalCase (or already-camelCase) to
8
15
  * camelCase. Idempotent — running it twice yields identical output. Arrays,
@@ -1 +1 @@
1
- {"version":3,"file":"caseNormalizer.d.ts","sourceRoot":"","sources":["../../../src/otbr-rest/caseNormalizer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA2BH;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAYrD"}
1
+ {"version":3,"file":"caseNormalizer.d.ts","sourceRoot":"","sources":["../../../src/otbr-rest/caseNormalizer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA2BH;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,GAAG,QAAQ,GAAG,IAAI,CASvF;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAYrD"}
@@ -20,6 +20,16 @@ function isPlainObject(value) {
20
20
  const proto = Object.getPrototypeOf(value);
21
21
  return proto === Object.prototype || proto === null;
22
22
  }
23
+ function detectKeyFormat(raw) {
24
+ let sawKey = false;
25
+ for (const key of Object.keys(raw)) {
26
+ if (key.length === 0) continue;
27
+ sawKey = true;
28
+ const first = key.charCodeAt(0);
29
+ if (first >= 65 && first <= 90) return "pascal";
30
+ }
31
+ return sawKey ? "camel" : null;
32
+ }
23
33
  function normalizeKeys(value) {
24
34
  if (Array.isArray(value)) {
25
35
  return value.map((item) => normalizeKeys(item));
@@ -34,6 +44,7 @@ function normalizeKeys(value) {
34
44
  return value;
35
45
  }
36
46
  export {
47
+ detectKeyFormat,
37
48
  normalizeKeys
38
49
  };
39
50
  //# sourceMappingURL=caseNormalizer.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/otbr-rest/caseNormalizer.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAWA,MAAM,YAA8C;AAAA,EAChD,MAAM;AAAA,EACN,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,MAAM;AACV;AAEA,SAAS,aAAa,KAAqB;AACvC,QAAM,SAAS,UAAU,GAAG;AAC5B,MAAI,WAAW,OAAW,QAAO;AACjC,MAAI,IAAI,WAAW,EAAG,QAAO;AAC7B,SAAO,IAAI,OAAO,CAAC,EAAE,YAAY,IAAI,IAAI,MAAM,CAAC;AACpD;AAEA,SAAS,cAAc,OAAkD;AACrE,MAAI,UAAU,QAAQ,OAAO,UAAU,SAAU,QAAO;AACxD,QAAM,QAAQ,OAAO,eAAe,KAAK;AACzC,SAAO,UAAU,OAAO,aAAa,UAAU;AACnD;AAOO,SAAS,cAAc,OAAyB;AACnD,MAAI,MAAM,QAAQ,KAAK,GAAG;AACtB,WAAO,MAAM,IAAI,UAAQ,cAAc,IAAI,CAAC;AAAA,EAChD;AACA,MAAI,cAAc,KAAK,GAAG;AACtB,UAAM,MAA+B,CAAC;AACtC,eAAW,CAAC,GAAG,CAAC,KAAK,OAAO,QAAQ,KAAK,GAAG;AACxC,UAAI,aAAa,CAAC,CAAC,IAAI,cAAc,CAAC;AAAA,IAC1C;AACA,WAAO;AAAA,EACX;AACA,SAAO;AACX;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAWA,MAAM,YAA8C;AAAA,EAChD,MAAM;AAAA,EACN,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,MAAM;AACV;AAEA,SAAS,aAAa,KAAqB;AACvC,QAAM,SAAS,UAAU,GAAG;AAC5B,MAAI,WAAW,OAAW,QAAO;AACjC,MAAI,IAAI,WAAW,EAAG,QAAO;AAC7B,SAAO,IAAI,OAAO,CAAC,EAAE,YAAY,IAAI,IAAI,MAAM,CAAC;AACpD;AAEA,SAAS,cAAc,OAAkD;AACrE,MAAI,UAAU,QAAQ,OAAO,UAAU,SAAU,QAAO;AACxD,QAAM,QAAQ,OAAO,eAAe,KAAK;AACzC,SAAO,UAAU,OAAO,aAAa,UAAU;AACnD;AAQO,SAAS,gBAAgB,KAAyD;AACrF,MAAI,SAAS;AACb,aAAW,OAAO,OAAO,KAAK,GAAG,GAAG;AAChC,QAAI,IAAI,WAAW,EAAG;AACtB,aAAS;AACT,UAAM,QAAQ,IAAI,WAAW,CAAC;AAC9B,QAAI,SAAS,MAAM,SAAS,GAAI,QAAO;AAAA,EAC3C;AACA,SAAO,SAAS,UAAU;AAC9B;AAOO,SAAS,cAAc,OAAyB;AACnD,MAAI,MAAM,QAAQ,KAAK,GAAG;AACtB,WAAO,MAAM,IAAI,UAAQ,cAAc,IAAI,CAAC;AAAA,EAChD;AACA,MAAI,cAAc,KAAK,GAAG;AACtB,UAAM,MAA+B,CAAC;AACtC,eAAW,CAAC,GAAG,CAAC,KAAK,OAAO,QAAQ,KAAK,GAAG;AACxC,UAAI,aAAa,CAAC,CAAC,IAAI,cAAc,CAAC;AAAA,IAC1C;AACA,WAAO;AAAA,EACX;AACA,SAAO;AACX;",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2026 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Bytes } from "@matter/general";
7
+ /**
8
+ * Decode a hex string into {@link Bytes}, rejecting non-hex characters, odd
9
+ * length, and (if `expectedLen` is given) a wrong byte count.
10
+ *
11
+ * `Bytes.fromHex` does not itself reject non-hex characters, so this
12
+ * validation is load-bearing.
13
+ */
14
+ export declare function parseHexBytes(hex: string, where: string, expectedLen?: number): Bytes;
15
+ /**
16
+ * Parse a 16-bit RLOC, accepting either a JSON number (legacy builds) or a hex
17
+ * string like `"0x4800"` (post-2024 builds). Returns `undefined` for absent,
18
+ * malformed, or out-of-16-bit-range input — callers decide whether that is an
19
+ * error (`/node`) or a skippable field (`/diagnostics`).
20
+ */
21
+ export declare function parseRloc16(value: unknown): number | undefined;
22
+ //# sourceMappingURL=parseHexBytes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseHexBytes.d.ts","sourceRoot":"","sources":["../../../src/otbr-rest/parseHexBytes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGxC;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAWrF;AAKD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAQ9D"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2026 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Bytes } from "@matter/general";
7
+ import { OtbrRestError } from "./OtbrRestError.js";
8
+ function parseHexBytes(hex, where, expectedLen) {
9
+ if (!/^[0-9a-fA-F]*$/.test(hex)) {
10
+ throw new OtbrRestError("rest_protocol", `${where}: not hex`);
11
+ }
12
+ if (hex.length % 2 !== 0) {
13
+ throw new OtbrRestError("rest_protocol", `${where}: odd hex length`);
14
+ }
15
+ if (expectedLen !== void 0 && hex.length !== expectedLen * 2) {
16
+ throw new OtbrRestError("rest_protocol", `${where}: expected ${expectedLen} bytes, got ${hex.length / 2}`);
17
+ }
18
+ return Bytes.fromHex(hex);
19
+ }
20
+ const RLOC16_MAX = 65535;
21
+ const RLOC16_STRING = /^(?:0x[0-9a-fA-F]{1,4}|[0-9]{1,5})$/;
22
+ function parseRloc16(value) {
23
+ const parsed = typeof value === "number" ? value : typeof value === "string" && RLOC16_STRING.test(value) ? Number(value) : NaN;
24
+ return Number.isInteger(parsed) && parsed >= 0 && parsed <= RLOC16_MAX ? parsed : void 0;
25
+ }
26
+ export {
27
+ parseHexBytes,
28
+ parseRloc16
29
+ };
30
+ //# sourceMappingURL=parseHexBytes.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/otbr-rest/parseHexBytes.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,aAAa;AACtB,SAAS,qBAAqB;AASvB,SAAS,cAAc,KAAa,OAAe,aAA6B;AACnF,MAAI,CAAC,iBAAiB,KAAK,GAAG,GAAG;AAC7B,UAAM,IAAI,cAAc,iBAAiB,GAAG,KAAK,WAAW;AAAA,EAChE;AACA,MAAI,IAAI,SAAS,MAAM,GAAG;AACtB,UAAM,IAAI,cAAc,iBAAiB,GAAG,KAAK,kBAAkB;AAAA,EACvE;AACA,MAAI,gBAAgB,UAAa,IAAI,WAAW,cAAc,GAAG;AAC7D,UAAM,IAAI,cAAc,iBAAiB,GAAG,KAAK,cAAc,WAAW,eAAe,IAAI,SAAS,CAAC,EAAE;AAAA,EAC7G;AACA,SAAO,MAAM,QAAQ,GAAG;AAC5B;AAEA,MAAM,aAAa;AACnB,MAAM,gBAAgB;AAQf,SAAS,YAAY,OAAoC;AAC5D,QAAM,SACF,OAAO,UAAU,WACX,QACA,OAAO,UAAU,YAAY,cAAc,KAAK,KAAK,IACnD,OAAO,KAAK,IACZ;AACZ,SAAO,OAAO,UAAU,MAAM,KAAK,UAAU,KAAK,UAAU,aAAa,SAAS;AACtF;",
5
+ "names": []
6
+ }
@@ -3,13 +3,14 @@
3
3
  * Copyright 2022-2026 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { Bytes } from "@matter/general";
6
7
  import type { DiagnosticResponse } from "../diagnostic/DiagnosticResponse.js";
7
8
  /**
8
9
  * Parse an IPv6 textual address into 16 bytes. Supports full forms and `::`
9
10
  * compression. Does not handle IPv4-mapped (`::ffff:1.2.3.4`) or zone IDs
10
11
  * (`%`); OTBR `IP6AddressList` never returns either.
11
12
  */
12
- declare function parseIpv6(text: string): Uint8Array;
13
+ declare function parseIpv6(text: string): Bytes;
13
14
  /**
14
15
  * Translate a single OTBR `/diagnostics` entry (already key-normalized to
15
16
  * camelCase) into a {@link DiagnosticResponse}. Skips fields the entry does
@@ -1 +1 @@
1
- {"version":3,"file":"translation.d.ts","sourceRoot":"","sources":["../../../src/otbr-rest/translation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAsL9E;;;;GAIG;AACH,iBAAS,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAuC3C;AASD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,kBAAkB,CA6FnE;AAED,eAAO,MAAM,WAAW;;CAAgB,CAAC"}
1
+ {"version":3,"file":"translation.d.ts","sourceRoot":"","sources":["../../../src/otbr-rest/translation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAwL9E;;;;GAIG;AACH,iBAAS,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAuCtC;AASD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,kBAAkB,CA6FnE;AAED,eAAO,MAAM,WAAW;;CAAgB,CAAC"}
@@ -6,6 +6,7 @@
6
6
  import { Bytes } from "@matter/general";
7
7
  import { NetworkData } from "../tlv/diag/NetworkData.js";
8
8
  import { OtbrRestError } from "./OtbrRestError.js";
9
+ import { parseHexBytes, parseRloc16 } from "./parseHexBytes.js";
9
10
  const TIMEOUT_EXP_MIN = 4;
10
11
  const IPV6_BYTES = 16;
11
12
  const IPV6_GROUPS = 8;
@@ -29,18 +30,6 @@ function requireNumber(record, key, where) {
29
30
  if (v === void 0) throw new OtbrRestError("rest_protocol", `${where}: missing numeric ${key}`);
30
31
  return v;
31
32
  }
32
- function parseHexBytes(hex, where, expectedLen) {
33
- if (!/^[0-9a-fA-F]*$/.test(hex)) {
34
- throw new OtbrRestError("rest_protocol", `${where}: not hex`);
35
- }
36
- if (hex.length % 2 !== 0) {
37
- throw new OtbrRestError("rest_protocol", `${where}: odd hex length`);
38
- }
39
- if (expectedLen !== void 0 && hex.length !== expectedLen * 2) {
40
- throw new OtbrRestError("rest_protocol", `${where}: expected ${expectedLen} bytes, got ${hex.length / 2}`);
41
- }
42
- return Bytes.of(Bytes.fromHex(hex));
43
- }
44
33
  function translateMode(input) {
45
34
  return {
46
35
  rxOnWhenIdle: requireNumber(input, "rxOnWhenIdle", "mode") !== 0,
@@ -109,12 +98,21 @@ function translateMacCounters(input) {
109
98
  ifOutDiscards: requireNumber(input, "ifOutDiscards", "macCounters")
110
99
  };
111
100
  }
101
+ const UINT64_MAX = 18446744073709551615n;
112
102
  function requireBigInt(record, key, where) {
113
103
  const v = record[key];
114
- if (typeof v === "bigint") return v;
115
- const n = asNumber(v);
116
- if (n === void 0) throw new OtbrRestError("rest_protocol", `${where}: missing numeric ${key}`);
117
- return BigInt(Math.trunc(n));
104
+ let n;
105
+ if (typeof v === "bigint") {
106
+ n = v;
107
+ } else if (typeof v === "string" && /^\d+$/.test(v)) {
108
+ n = BigInt(v);
109
+ } else {
110
+ const num = asNumber(v);
111
+ if (num === void 0) throw new OtbrRestError("rest_protocol", `${where}: missing numeric ${key}`);
112
+ n = BigInt(Math.trunc(num));
113
+ }
114
+ if (n < 0n || n > UINT64_MAX) throw new OtbrRestError("rest_protocol", `${where}: ${key} outside uint64 range`);
115
+ return n;
118
116
  }
119
117
  function translateMleCounters(input) {
120
118
  return {
@@ -212,7 +210,7 @@ function translateNodeJson(json) {
212
210
  if (extAddress !== void 0) {
213
211
  result.extMacAddress = parseHexBytes(extAddress, "extAddress", 8);
214
212
  }
215
- const rloc16 = asNumber(json["rloc16"]);
213
+ const rloc16 = parseRloc16(json["rloc16"]);
216
214
  if (rloc16 !== void 0) result.rloc16 = rloc16;
217
215
  const mode = asRecord(json["mode"]);
218
216
  if (mode !== void 0) result.mode = translateMode(mode);
@@ -249,7 +247,7 @@ function translateNodeJson(json) {
249
247
  const channelPages = asString(json["channelPages"]);
250
248
  if (channelPages !== void 0) {
251
249
  const bytes = parseHexBytes(channelPages, "channelPages");
252
- result.channelPages = Array.from(bytes);
250
+ result.channelPages = Array.from(Bytes.of(bytes));
253
251
  }
254
252
  const maxChildTimeout = asNumber(json["maxChildTimeout"]);
255
253
  if (maxChildTimeout !== void 0) result.maxChildTimeout = maxChildTimeout;