@matter/thread-br-client 0.0.1

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 (869) hide show
  1. package/README.md +192 -0
  2. package/dist/cjs/coap/CoapClient.d.ts +33 -0
  3. package/dist/cjs/coap/CoapClient.d.ts.map +1 -0
  4. package/dist/cjs/coap/CoapClient.js +281 -0
  5. package/dist/cjs/coap/CoapClient.js.map +6 -0
  6. package/dist/cjs/coap/CoapMessage.d.ts +23 -0
  7. package/dist/cjs/coap/CoapMessage.d.ts.map +1 -0
  8. package/dist/cjs/coap/CoapMessage.js +182 -0
  9. package/dist/cjs/coap/CoapMessage.js.map +6 -0
  10. package/dist/cjs/coap/index.d.ts +8 -0
  11. package/dist/cjs/coap/index.d.ts.map +1 -0
  12. package/dist/cjs/coap/index.js +31 -0
  13. package/dist/cjs/coap/index.js.map +6 -0
  14. package/dist/cjs/commissioner/Commissioner.d.ts +89 -0
  15. package/dist/cjs/commissioner/Commissioner.d.ts.map +1 -0
  16. package/dist/cjs/commissioner/Commissioner.js +188 -0
  17. package/dist/cjs/commissioner/Commissioner.js.map +6 -0
  18. package/dist/cjs/commissioner/LeadKa.d.ts +17 -0
  19. package/dist/cjs/commissioner/LeadKa.d.ts.map +1 -0
  20. package/dist/cjs/commissioner/LeadKa.js +63 -0
  21. package/dist/cjs/commissioner/LeadKa.js.map +6 -0
  22. package/dist/cjs/commissioner/LeadPet.d.ts +14 -0
  23. package/dist/cjs/commissioner/LeadPet.d.ts.map +1 -0
  24. package/dist/cjs/commissioner/LeadPet.js +66 -0
  25. package/dist/cjs/commissioner/LeadPet.js.map +6 -0
  26. package/dist/cjs/commissioner/index.d.ts +12 -0
  27. package/dist/cjs/commissioner/index.d.ts.map +1 -0
  28. package/dist/cjs/commissioner/index.js +38 -0
  29. package/dist/cjs/commissioner/index.js.map +6 -0
  30. package/dist/cjs/credentials/ThreadCredentialsRegistry.d.ts +50 -0
  31. package/dist/cjs/credentials/ThreadCredentialsRegistry.d.ts.map +1 -0
  32. package/dist/cjs/credentials/ThreadCredentialsRegistry.js +119 -0
  33. package/dist/cjs/credentials/ThreadCredentialsRegistry.js.map +6 -0
  34. package/dist/cjs/credentials/ThreadNetworkCredentials.d.ts +26 -0
  35. package/dist/cjs/credentials/ThreadNetworkCredentials.d.ts.map +1 -0
  36. package/dist/cjs/credentials/ThreadNetworkCredentials.js +22 -0
  37. package/dist/cjs/credentials/ThreadNetworkCredentials.js.map +6 -0
  38. package/dist/cjs/credentials/index.d.ts +8 -0
  39. package/dist/cjs/credentials/index.d.ts.map +1 -0
  40. package/dist/cjs/credentials/index.js +30 -0
  41. package/dist/cjs/credentials/index.js.map +6 -0
  42. package/dist/cjs/crypto/AesCmacPrf128.d.ts +24 -0
  43. package/dist/cjs/crypto/AesCmacPrf128.d.ts.map +1 -0
  44. package/dist/cjs/crypto/AesCmacPrf128.js +107 -0
  45. package/dist/cjs/crypto/AesCmacPrf128.js.map +6 -0
  46. package/dist/cjs/crypto/Pbkdf2AesCmac.d.ts +18 -0
  47. package/dist/cjs/crypto/Pbkdf2AesCmac.d.ts.map +1 -0
  48. package/dist/cjs/crypto/Pbkdf2AesCmac.js +62 -0
  49. package/dist/cjs/crypto/Pbkdf2AesCmac.js.map +6 -0
  50. package/dist/cjs/crypto/Pskc.d.ts +21 -0
  51. package/dist/cjs/crypto/Pskc.d.ts.map +1 -0
  52. package/dist/cjs/crypto/Pskc.js +69 -0
  53. package/dist/cjs/crypto/Pskc.js.map +6 -0
  54. package/dist/cjs/crypto/index.d.ts +9 -0
  55. package/dist/cjs/crypto/index.d.ts.map +1 -0
  56. package/dist/cjs/crypto/index.js +35 -0
  57. package/dist/cjs/crypto/index.js.map +6 -0
  58. package/dist/cjs/dataset/OperationalDataset.d.ts +74 -0
  59. package/dist/cjs/dataset/OperationalDataset.d.ts.map +1 -0
  60. package/dist/cjs/dataset/OperationalDataset.js +244 -0
  61. package/dist/cjs/dataset/OperationalDataset.js.map +6 -0
  62. package/dist/cjs/dataset/SecurityPolicy.d.ts +22 -0
  63. package/dist/cjs/dataset/SecurityPolicy.d.ts.map +1 -0
  64. package/dist/cjs/dataset/SecurityPolicy.js +59 -0
  65. package/dist/cjs/dataset/SecurityPolicy.js.map +6 -0
  66. package/dist/cjs/dataset/errors.d.ts +10 -0
  67. package/dist/cjs/dataset/errors.d.ts.map +1 -0
  68. package/dist/cjs/dataset/errors.js +32 -0
  69. package/dist/cjs/dataset/errors.js.map +6 -0
  70. package/dist/cjs/dataset/index.d.ts +9 -0
  71. package/dist/cjs/dataset/index.d.ts.map +1 -0
  72. package/dist/cjs/dataset/index.js +36 -0
  73. package/dist/cjs/dataset/index.js.map +6 -0
  74. package/dist/cjs/dataset/meshcopTlvTypes.d.ts +61 -0
  75. package/dist/cjs/dataset/meshcopTlvTypes.d.ts.map +1 -0
  76. package/dist/cjs/dataset/meshcopTlvTypes.js +82 -0
  77. package/dist/cjs/dataset/meshcopTlvTypes.js.map +6 -0
  78. package/dist/cjs/diagnostic/DefaultTlvSet.d.ts +8 -0
  79. package/dist/cjs/diagnostic/DefaultTlvSet.d.ts.map +1 -0
  80. package/dist/cjs/diagnostic/DefaultTlvSet.js +52 -0
  81. package/dist/cjs/diagnostic/DefaultTlvSet.js.map +6 -0
  82. package/dist/cjs/diagnostic/DiagnosticResponse.d.ts +47 -0
  83. package/dist/cjs/diagnostic/DiagnosticResponse.d.ts.map +1 -0
  84. package/dist/cjs/diagnostic/DiagnosticResponse.js +22 -0
  85. package/dist/cjs/diagnostic/DiagnosticResponse.js.map +6 -0
  86. package/dist/cjs/diagnostic/DiagnosticSource.d.ts +64 -0
  87. package/dist/cjs/diagnostic/DiagnosticSource.d.ts.map +1 -0
  88. package/dist/cjs/diagnostic/DiagnosticSource.js +34 -0
  89. package/dist/cjs/diagnostic/DiagnosticSource.js.map +6 -0
  90. package/dist/cjs/diagnostic/MeshCopDiagnosticSource.d.ts +78 -0
  91. package/dist/cjs/diagnostic/MeshCopDiagnosticSource.d.ts.map +1 -0
  92. package/dist/cjs/diagnostic/MeshCopDiagnosticSource.js +654 -0
  93. package/dist/cjs/diagnostic/MeshCopDiagnosticSource.js.map +6 -0
  94. package/dist/cjs/diagnostic/connectMeshcop.d.ts +38 -0
  95. package/dist/cjs/diagnostic/connectMeshcop.d.ts.map +1 -0
  96. package/dist/cjs/diagnostic/connectMeshcop.js +100 -0
  97. package/dist/cjs/diagnostic/connectMeshcop.js.map +6 -0
  98. package/dist/cjs/diagnostic/errors.d.ts +10 -0
  99. package/dist/cjs/diagnostic/errors.d.ts.map +1 -0
  100. package/dist/cjs/diagnostic/errors.js +32 -0
  101. package/dist/cjs/diagnostic/errors.js.map +6 -0
  102. package/dist/cjs/diagnostic/index.d.ts +13 -0
  103. package/dist/cjs/diagnostic/index.d.ts.map +1 -0
  104. package/dist/cjs/diagnostic/index.js +35 -0
  105. package/dist/cjs/diagnostic/index.js.map +6 -0
  106. package/dist/cjs/discovery/BorderRouterEntry.d.ts +54 -0
  107. package/dist/cjs/discovery/BorderRouterEntry.d.ts.map +1 -0
  108. package/dist/cjs/discovery/BorderRouterEntry.js +22 -0
  109. package/dist/cjs/discovery/BorderRouterEntry.js.map +6 -0
  110. package/dist/cjs/discovery/BorderRouterRegistry.d.ts +36 -0
  111. package/dist/cjs/discovery/BorderRouterRegistry.d.ts.map +1 -0
  112. package/dist/cjs/discovery/BorderRouterRegistry.js +522 -0
  113. package/dist/cjs/discovery/BorderRouterRegistry.js.map +6 -0
  114. package/dist/cjs/discovery/DnssdLikeTypes.d.ts +50 -0
  115. package/dist/cjs/discovery/DnssdLikeTypes.d.ts.map +1 -0
  116. package/dist/cjs/discovery/DnssdLikeTypes.js +22 -0
  117. package/dist/cjs/discovery/DnssdLikeTypes.js.map +6 -0
  118. package/dist/cjs/discovery/index.d.ts +8 -0
  119. package/dist/cjs/discovery/index.d.ts.map +1 -0
  120. package/dist/cjs/discovery/index.js +30 -0
  121. package/dist/cjs/discovery/index.js.map +6 -0
  122. package/dist/cjs/dtls/channel/DtlsChannel.d.ts +39 -0
  123. package/dist/cjs/dtls/channel/DtlsChannel.d.ts.map +1 -0
  124. package/dist/cjs/dtls/channel/DtlsChannel.js +32 -0
  125. package/dist/cjs/dtls/channel/DtlsChannel.js.map +6 -0
  126. package/dist/cjs/dtls/channel/DtlsConnectOpts.d.ts +38 -0
  127. package/dist/cjs/dtls/channel/DtlsConnectOpts.d.ts.map +1 -0
  128. package/dist/cjs/dtls/channel/DtlsConnectOpts.js +22 -0
  129. package/dist/cjs/dtls/channel/DtlsConnectOpts.js.map +6 -0
  130. package/dist/cjs/dtls/channel/DtlsRetransmitTimer.d.ts +43 -0
  131. package/dist/cjs/dtls/channel/DtlsRetransmitTimer.d.ts.map +1 -0
  132. package/dist/cjs/dtls/channel/DtlsRetransmitTimer.js +97 -0
  133. package/dist/cjs/dtls/channel/DtlsRetransmitTimer.js.map +6 -0
  134. package/dist/cjs/dtls/channel/NobleDtlsChannel.d.ts +35 -0
  135. package/dist/cjs/dtls/channel/NobleDtlsChannel.d.ts.map +1 -0
  136. package/dist/cjs/dtls/channel/NobleDtlsChannel.js +440 -0
  137. package/dist/cjs/dtls/channel/NobleDtlsChannel.js.map +6 -0
  138. package/dist/cjs/dtls/channel/connectDtls.d.ts +15 -0
  139. package/dist/cjs/dtls/channel/connectDtls.d.ts.map +1 -0
  140. package/dist/cjs/dtls/channel/connectDtls.js +41 -0
  141. package/dist/cjs/dtls/channel/connectDtls.js.map +6 -0
  142. package/dist/cjs/dtls/channel/index.d.ts +14 -0
  143. package/dist/cjs/dtls/channel/index.d.ts.map +1 -0
  144. package/dist/cjs/dtls/channel/index.js +32 -0
  145. package/dist/cjs/dtls/channel/index.js.map +6 -0
  146. package/dist/cjs/dtls/ecjpake/EcJpakePms.d.ts +35 -0
  147. package/dist/cjs/dtls/ecjpake/EcJpakePms.d.ts.map +1 -0
  148. package/dist/cjs/dtls/ecjpake/EcJpakePms.js +61 -0
  149. package/dist/cjs/dtls/ecjpake/EcJpakePms.js.map +6 -0
  150. package/dist/cjs/dtls/ecjpake/EcJpakeRound.d.ts +119 -0
  151. package/dist/cjs/dtls/ecjpake/EcJpakeRound.d.ts.map +1 -0
  152. package/dist/cjs/dtls/ecjpake/EcJpakeRound.js +248 -0
  153. package/dist/cjs/dtls/ecjpake/EcJpakeRound.js.map +6 -0
  154. package/dist/cjs/dtls/ecjpake/SchnorrZkp.d.ts +60 -0
  155. package/dist/cjs/dtls/ecjpake/SchnorrZkp.d.ts.map +1 -0
  156. package/dist/cjs/dtls/ecjpake/SchnorrZkp.js +162 -0
  157. package/dist/cjs/dtls/ecjpake/SchnorrZkp.js.map +6 -0
  158. package/dist/cjs/dtls/ecjpake/index.d.ts +28 -0
  159. package/dist/cjs/dtls/ecjpake/index.d.ts.map +1 -0
  160. package/dist/cjs/dtls/ecjpake/index.js +34 -0
  161. package/dist/cjs/dtls/ecjpake/index.js.map +6 -0
  162. package/dist/cjs/dtls/handshake/ChangeCipherSpec.d.ts +23 -0
  163. package/dist/cjs/dtls/handshake/ChangeCipherSpec.d.ts.map +1 -0
  164. package/dist/cjs/dtls/handshake/ChangeCipherSpec.js +41 -0
  165. package/dist/cjs/dtls/handshake/ChangeCipherSpec.js.map +6 -0
  166. package/dist/cjs/dtls/handshake/ClientHelloMessage.d.ts +34 -0
  167. package/dist/cjs/dtls/handshake/ClientHelloMessage.d.ts.map +1 -0
  168. package/dist/cjs/dtls/handshake/ClientHelloMessage.js +117 -0
  169. package/dist/cjs/dtls/handshake/ClientHelloMessage.js.map +6 -0
  170. package/dist/cjs/dtls/handshake/ClientKeyExchangeMessage.d.ts +22 -0
  171. package/dist/cjs/dtls/handshake/ClientKeyExchangeMessage.d.ts.map +1 -0
  172. package/dist/cjs/dtls/handshake/ClientKeyExchangeMessage.js +35 -0
  173. package/dist/cjs/dtls/handshake/ClientKeyExchangeMessage.js.map +6 -0
  174. package/dist/cjs/dtls/handshake/DtlsClient.d.ts +57 -0
  175. package/dist/cjs/dtls/handshake/DtlsClient.d.ts.map +1 -0
  176. package/dist/cjs/dtls/handshake/DtlsClient.js +502 -0
  177. package/dist/cjs/dtls/handshake/DtlsClient.js.map +6 -0
  178. package/dist/cjs/dtls/handshake/FinishedMessage.d.ts +13 -0
  179. package/dist/cjs/dtls/handshake/FinishedMessage.d.ts.map +1 -0
  180. package/dist/cjs/dtls/handshake/FinishedMessage.js +48 -0
  181. package/dist/cjs/dtls/handshake/FinishedMessage.js.map +6 -0
  182. package/dist/cjs/dtls/handshake/HandshakeMessage.d.ts +58 -0
  183. package/dist/cjs/dtls/handshake/HandshakeMessage.d.ts.map +1 -0
  184. package/dist/cjs/dtls/handshake/HandshakeMessage.js +117 -0
  185. package/dist/cjs/dtls/handshake/HandshakeMessage.js.map +6 -0
  186. package/dist/cjs/dtls/handshake/HandshakeType.d.ts +29 -0
  187. package/dist/cjs/dtls/handshake/HandshakeType.d.ts.map +1 -0
  188. package/dist/cjs/dtls/handshake/HandshakeType.js +45 -0
  189. package/dist/cjs/dtls/handshake/HandshakeType.js.map +6 -0
  190. package/dist/cjs/dtls/handshake/HelloVerifyRequestMessage.d.ts +11 -0
  191. package/dist/cjs/dtls/handshake/HelloVerifyRequestMessage.d.ts.map +1 -0
  192. package/dist/cjs/dtls/handshake/HelloVerifyRequestMessage.js +49 -0
  193. package/dist/cjs/dtls/handshake/HelloVerifyRequestMessage.js.map +6 -0
  194. package/dist/cjs/dtls/handshake/ServerHelloDoneMessage.d.ts +14 -0
  195. package/dist/cjs/dtls/handshake/ServerHelloDoneMessage.d.ts.map +1 -0
  196. package/dist/cjs/dtls/handshake/ServerHelloDoneMessage.js +37 -0
  197. package/dist/cjs/dtls/handshake/ServerHelloDoneMessage.js.map +6 -0
  198. package/dist/cjs/dtls/handshake/ServerHelloMessage.d.ts +15 -0
  199. package/dist/cjs/dtls/handshake/ServerHelloMessage.d.ts.map +1 -0
  200. package/dist/cjs/dtls/handshake/ServerHelloMessage.js +113 -0
  201. package/dist/cjs/dtls/handshake/ServerHelloMessage.js.map +6 -0
  202. package/dist/cjs/dtls/handshake/ServerKeyExchangeMessage.d.ts +24 -0
  203. package/dist/cjs/dtls/handshake/ServerKeyExchangeMessage.d.ts.map +1 -0
  204. package/dist/cjs/dtls/handshake/ServerKeyExchangeMessage.js +35 -0
  205. package/dist/cjs/dtls/handshake/ServerKeyExchangeMessage.js.map +6 -0
  206. package/dist/cjs/dtls/handshake/index.d.ts +14 -0
  207. package/dist/cjs/dtls/handshake/index.d.ts.map +1 -0
  208. package/dist/cjs/dtls/handshake/index.js +30 -0
  209. package/dist/cjs/dtls/handshake/index.js.map +6 -0
  210. package/dist/cjs/dtls/prf/HandshakeTranscript.d.ts +36 -0
  211. package/dist/cjs/dtls/prf/HandshakeTranscript.d.ts.map +1 -0
  212. package/dist/cjs/dtls/prf/HandshakeTranscript.js +55 -0
  213. package/dist/cjs/dtls/prf/HandshakeTranscript.js.map +6 -0
  214. package/dist/cjs/dtls/prf/TlsPrf.d.ts +82 -0
  215. package/dist/cjs/dtls/prf/TlsPrf.d.ts.map +1 -0
  216. package/dist/cjs/dtls/prf/TlsPrf.js +121 -0
  217. package/dist/cjs/dtls/prf/TlsPrf.js.map +6 -0
  218. package/dist/cjs/dtls/prf/index.d.ts +13 -0
  219. package/dist/cjs/dtls/prf/index.d.ts.map +1 -0
  220. package/dist/cjs/dtls/prf/index.js +32 -0
  221. package/dist/cjs/dtls/prf/index.js.map +6 -0
  222. package/dist/cjs/dtls/record/AesCcm8.d.ts +32 -0
  223. package/dist/cjs/dtls/record/AesCcm8.d.ts.map +1 -0
  224. package/dist/cjs/dtls/record/AesCcm8.js +78 -0
  225. package/dist/cjs/dtls/record/AesCcm8.js.map +6 -0
  226. package/dist/cjs/dtls/record/AntiReplayWindow.d.ts +38 -0
  227. package/dist/cjs/dtls/record/AntiReplayWindow.d.ts.map +1 -0
  228. package/dist/cjs/dtls/record/AntiReplayWindow.js +84 -0
  229. package/dist/cjs/dtls/record/AntiReplayWindow.js.map +6 -0
  230. package/dist/cjs/dtls/record/ContentType.d.ts +19 -0
  231. package/dist/cjs/dtls/record/ContentType.d.ts.map +1 -0
  232. package/dist/cjs/dtls/record/ContentType.js +39 -0
  233. package/dist/cjs/dtls/record/ContentType.js.map +6 -0
  234. package/dist/cjs/dtls/record/DtlsCipherState.d.ts +79 -0
  235. package/dist/cjs/dtls/record/DtlsCipherState.d.ts.map +1 -0
  236. package/dist/cjs/dtls/record/DtlsCipherState.js +173 -0
  237. package/dist/cjs/dtls/record/DtlsCipherState.js.map +6 -0
  238. package/dist/cjs/dtls/record/DtlsRecord.d.ts +89 -0
  239. package/dist/cjs/dtls/record/DtlsRecord.d.ts.map +1 -0
  240. package/dist/cjs/dtls/record/DtlsRecord.js +195 -0
  241. package/dist/cjs/dtls/record/DtlsRecord.js.map +6 -0
  242. package/dist/cjs/dtls/record/index.d.ts +15 -0
  243. package/dist/cjs/dtls/record/index.d.ts.map +1 -0
  244. package/dist/cjs/dtls/record/index.js +42 -0
  245. package/dist/cjs/dtls/record/index.js.map +6 -0
  246. package/dist/cjs/index.d.ts +32 -0
  247. package/dist/cjs/index.d.ts.map +1 -0
  248. package/dist/cjs/index.js +77 -0
  249. package/dist/cjs/index.js.map +6 -0
  250. package/dist/cjs/otbr-rest/OtbrRestCapability.d.ts +22 -0
  251. package/dist/cjs/otbr-rest/OtbrRestCapability.d.ts.map +1 -0
  252. package/dist/cjs/otbr-rest/OtbrRestCapability.js +22 -0
  253. package/dist/cjs/otbr-rest/OtbrRestCapability.js.map +6 -0
  254. package/dist/cjs/otbr-rest/OtbrRestClient.d.ts +257 -0
  255. package/dist/cjs/otbr-rest/OtbrRestClient.d.ts.map +1 -0
  256. package/dist/cjs/otbr-rest/OtbrRestClient.js +544 -0
  257. package/dist/cjs/otbr-rest/OtbrRestClient.js.map +6 -0
  258. package/dist/cjs/otbr-rest/OtbrRestDiagnosticSource.d.ts +88 -0
  259. package/dist/cjs/otbr-rest/OtbrRestDiagnosticSource.d.ts.map +1 -0
  260. package/dist/cjs/otbr-rest/OtbrRestDiagnosticSource.js +156 -0
  261. package/dist/cjs/otbr-rest/OtbrRestDiagnosticSource.js.map +6 -0
  262. package/dist/cjs/otbr-rest/OtbrRestError.d.ts +18 -0
  263. package/dist/cjs/otbr-rest/OtbrRestError.d.ts.map +1 -0
  264. package/dist/cjs/otbr-rest/OtbrRestError.js +42 -0
  265. package/dist/cjs/otbr-rest/OtbrRestError.js.map +6 -0
  266. package/dist/cjs/otbr-rest/OtbrRestProbe.d.ts +17 -0
  267. package/dist/cjs/otbr-rest/OtbrRestProbe.d.ts.map +1 -0
  268. package/dist/cjs/otbr-rest/OtbrRestProbe.js +96 -0
  269. package/dist/cjs/otbr-rest/OtbrRestProbe.js.map +6 -0
  270. package/dist/cjs/otbr-rest/caseNormalizer.d.ts +12 -0
  271. package/dist/cjs/otbr-rest/caseNormalizer.d.ts.map +1 -0
  272. package/dist/cjs/otbr-rest/caseNormalizer.js +59 -0
  273. package/dist/cjs/otbr-rest/caseNormalizer.js.map +6 -0
  274. package/dist/cjs/otbr-rest/index.d.ts +15 -0
  275. package/dist/cjs/otbr-rest/index.d.ts.map +1 -0
  276. package/dist/cjs/otbr-rest/index.js +40 -0
  277. package/dist/cjs/otbr-rest/index.js.map +6 -0
  278. package/dist/cjs/otbr-rest/translation.d.ts +24 -0
  279. package/dist/cjs/otbr-rest/translation.d.ts.map +1 -0
  280. package/dist/cjs/otbr-rest/translation.js +301 -0
  281. package/dist/cjs/otbr-rest/translation.js.map +6 -0
  282. package/dist/cjs/package.json +6 -0
  283. package/dist/cjs/selection/index.d.ts +11 -0
  284. package/dist/cjs/selection/index.d.ts.map +1 -0
  285. package/dist/cjs/selection/index.js +36 -0
  286. package/dist/cjs/selection/index.js.map +6 -0
  287. package/dist/cjs/selection/selectBr.d.ts +37 -0
  288. package/dist/cjs/selection/selectBr.d.ts.map +1 -0
  289. package/dist/cjs/selection/selectBr.js +66 -0
  290. package/dist/cjs/selection/selectBr.js.map +6 -0
  291. package/dist/cjs/selection/selectSource.d.ts +32 -0
  292. package/dist/cjs/selection/selectSource.d.ts.map +1 -0
  293. package/dist/cjs/selection/selectSource.js +43 -0
  294. package/dist/cjs/selection/selectSource.js.map +6 -0
  295. package/dist/cjs/selection/withExtPanIdLock.d.ts +23 -0
  296. package/dist/cjs/selection/withExtPanIdLock.d.ts.map +1 -0
  297. package/dist/cjs/selection/withExtPanIdLock.js +50 -0
  298. package/dist/cjs/selection/withExtPanIdLock.js.map +6 -0
  299. package/dist/cjs/tlv/BasicTlvCodec.d.ts +22 -0
  300. package/dist/cjs/tlv/BasicTlvCodec.d.ts.map +1 -0
  301. package/dist/cjs/tlv/BasicTlvCodec.js +97 -0
  302. package/dist/cjs/tlv/BasicTlvCodec.js.map +6 -0
  303. package/dist/cjs/tlv/NetworkDiagnosticTlv.d.ts +30 -0
  304. package/dist/cjs/tlv/NetworkDiagnosticTlv.d.ts.map +1 -0
  305. package/dist/cjs/tlv/NetworkDiagnosticTlv.js +41 -0
  306. package/dist/cjs/tlv/NetworkDiagnosticTlv.js.map +6 -0
  307. package/dist/cjs/tlv/TypeListTlv.d.ts +23 -0
  308. package/dist/cjs/tlv/TypeListTlv.d.ts.map +1 -0
  309. package/dist/cjs/tlv/TypeListTlv.js +49 -0
  310. package/dist/cjs/tlv/TypeListTlv.js.map +6 -0
  311. package/dist/cjs/tlv/diag/ChildIpv6AddressList.d.ts +22 -0
  312. package/dist/cjs/tlv/diag/ChildIpv6AddressList.d.ts.map +1 -0
  313. package/dist/cjs/tlv/diag/ChildIpv6AddressList.js +48 -0
  314. package/dist/cjs/tlv/diag/ChildIpv6AddressList.js.map +6 -0
  315. package/dist/cjs/tlv/diag/ChildTable.d.ts +29 -0
  316. package/dist/cjs/tlv/diag/ChildTable.d.ts.map +1 -0
  317. package/dist/cjs/tlv/diag/ChildTable.js +91 -0
  318. package/dist/cjs/tlv/diag/ChildTable.js.map +6 -0
  319. package/dist/cjs/tlv/diag/Connectivity.d.ts +45 -0
  320. package/dist/cjs/tlv/diag/Connectivity.d.ts.map +1 -0
  321. package/dist/cjs/tlv/diag/Connectivity.js +99 -0
  322. package/dist/cjs/tlv/diag/Connectivity.js.map +6 -0
  323. package/dist/cjs/tlv/diag/Ipv6AddressList.d.ts +21 -0
  324. package/dist/cjs/tlv/diag/Ipv6AddressList.d.ts.map +1 -0
  325. package/dist/cjs/tlv/diag/Ipv6AddressList.js +61 -0
  326. package/dist/cjs/tlv/diag/Ipv6AddressList.js.map +6 -0
  327. package/dist/cjs/tlv/diag/LeaderData.d.ts +28 -0
  328. package/dist/cjs/tlv/diag/LeaderData.d.ts.map +1 -0
  329. package/dist/cjs/tlv/diag/LeaderData.js +64 -0
  330. package/dist/cjs/tlv/diag/LeaderData.js.map +6 -0
  331. package/dist/cjs/tlv/diag/MacCounters.d.ts +28 -0
  332. package/dist/cjs/tlv/diag/MacCounters.d.ts.map +1 -0
  333. package/dist/cjs/tlv/diag/MacCounters.js +85 -0
  334. package/dist/cjs/tlv/diag/MacCounters.js.map +6 -0
  335. package/dist/cjs/tlv/diag/MleCounters.d.ts +41 -0
  336. package/dist/cjs/tlv/diag/MleCounters.d.ts.map +1 -0
  337. package/dist/cjs/tlv/diag/MleCounters.js +118 -0
  338. package/dist/cjs/tlv/diag/MleCounters.js.map +6 -0
  339. package/dist/cjs/tlv/diag/Mode.d.ts +26 -0
  340. package/dist/cjs/tlv/diag/Mode.d.ts.map +1 -0
  341. package/dist/cjs/tlv/diag/Mode.js +57 -0
  342. package/dist/cjs/tlv/diag/Mode.js.map +6 -0
  343. package/dist/cjs/tlv/diag/NetworkData.d.ts +93 -0
  344. package/dist/cjs/tlv/diag/NetworkData.d.ts.map +1 -0
  345. package/dist/cjs/tlv/diag/NetworkData.js +157 -0
  346. package/dist/cjs/tlv/diag/NetworkData.js.map +6 -0
  347. package/dist/cjs/tlv/diag/Primitives.d.ts +34 -0
  348. package/dist/cjs/tlv/diag/Primitives.d.ts.map +1 -0
  349. package/dist/cjs/tlv/diag/Primitives.js +163 -0
  350. package/dist/cjs/tlv/diag/Primitives.js.map +6 -0
  351. package/dist/cjs/tlv/diag/Route64.d.ts +42 -0
  352. package/dist/cjs/tlv/diag/Route64.d.ts.map +1 -0
  353. package/dist/cjs/tlv/diag/Route64.js +98 -0
  354. package/dist/cjs/tlv/diag/Route64.js.map +6 -0
  355. package/dist/cjs/tlv/diag/RouterNeighbor.d.ts +46 -0
  356. package/dist/cjs/tlv/diag/RouterNeighbor.d.ts.map +1 -0
  357. package/dist/cjs/tlv/diag/RouterNeighbor.js +65 -0
  358. package/dist/cjs/tlv/diag/RouterNeighbor.js.map +6 -0
  359. package/dist/cjs/tlv/diag/Timeout.d.ts +17 -0
  360. package/dist/cjs/tlv/diag/Timeout.d.ts.map +1 -0
  361. package/dist/cjs/tlv/diag/Timeout.js +53 -0
  362. package/dist/cjs/tlv/diag/Timeout.js.map +6 -0
  363. package/dist/cjs/tlv/diag/VendorInfo.d.ts +35 -0
  364. package/dist/cjs/tlv/diag/VendorInfo.d.ts.map +1 -0
  365. package/dist/cjs/tlv/diag/VendorInfo.js +130 -0
  366. package/dist/cjs/tlv/diag/VendorInfo.js.map +6 -0
  367. package/dist/cjs/tlv/diag/index.d.ts +26 -0
  368. package/dist/cjs/tlv/diag/index.d.ts.map +1 -0
  369. package/dist/cjs/tlv/diag/index.js +67 -0
  370. package/dist/cjs/tlv/diag/index.js.map +6 -0
  371. package/dist/cjs/tlv/meshcop/Ip6AddressTlv.d.ts +21 -0
  372. package/dist/cjs/tlv/meshcop/Ip6AddressTlv.d.ts.map +1 -0
  373. package/dist/cjs/tlv/meshcop/Ip6AddressTlv.js +48 -0
  374. package/dist/cjs/tlv/meshcop/Ip6AddressTlv.js.map +6 -0
  375. package/dist/cjs/tlv/meshcop/UdpEncapsulationTlv.d.ts +27 -0
  376. package/dist/cjs/tlv/meshcop/UdpEncapsulationTlv.d.ts.map +1 -0
  377. package/dist/cjs/tlv/meshcop/UdpEncapsulationTlv.js +62 -0
  378. package/dist/cjs/tlv/meshcop/UdpEncapsulationTlv.js.map +6 -0
  379. package/dist/cjs/tlv/networkDiagTlvTypes.d.ts +59 -0
  380. package/dist/cjs/tlv/networkDiagTlvTypes.d.ts.map +1 -0
  381. package/dist/cjs/tlv/networkDiagTlvTypes.js +76 -0
  382. package/dist/cjs/tlv/networkDiagTlvTypes.js.map +6 -0
  383. package/dist/cjs/util/meshLocalAddr.d.ts +27 -0
  384. package/dist/cjs/util/meshLocalAddr.d.ts.map +1 -0
  385. package/dist/cjs/util/meshLocalAddr.js +67 -0
  386. package/dist/cjs/util/meshLocalAddr.js.map +6 -0
  387. package/dist/esm/coap/CoapClient.d.ts +33 -0
  388. package/dist/esm/coap/CoapClient.d.ts.map +1 -0
  389. package/dist/esm/coap/CoapClient.js +270 -0
  390. package/dist/esm/coap/CoapClient.js.map +6 -0
  391. package/dist/esm/coap/CoapMessage.d.ts +23 -0
  392. package/dist/esm/coap/CoapMessage.d.ts.map +1 -0
  393. package/dist/esm/coap/CoapMessage.js +162 -0
  394. package/dist/esm/coap/CoapMessage.js.map +6 -0
  395. package/dist/esm/coap/index.d.ts +8 -0
  396. package/dist/esm/coap/index.d.ts.map +1 -0
  397. package/dist/esm/coap/index.js +11 -0
  398. package/dist/esm/coap/index.js.map +6 -0
  399. package/dist/esm/commissioner/Commissioner.d.ts +89 -0
  400. package/dist/esm/commissioner/Commissioner.d.ts.map +1 -0
  401. package/dist/esm/commissioner/Commissioner.js +168 -0
  402. package/dist/esm/commissioner/Commissioner.js.map +6 -0
  403. package/dist/esm/commissioner/LeadKa.d.ts +17 -0
  404. package/dist/esm/commissioner/LeadKa.d.ts.map +1 -0
  405. package/dist/esm/commissioner/LeadKa.js +43 -0
  406. package/dist/esm/commissioner/LeadKa.js.map +6 -0
  407. package/dist/esm/commissioner/LeadPet.d.ts +14 -0
  408. package/dist/esm/commissioner/LeadPet.d.ts.map +1 -0
  409. package/dist/esm/commissioner/LeadPet.js +46 -0
  410. package/dist/esm/commissioner/LeadPet.js.map +6 -0
  411. package/dist/esm/commissioner/index.d.ts +12 -0
  412. package/dist/esm/commissioner/index.d.ts.map +1 -0
  413. package/dist/esm/commissioner/index.js +23 -0
  414. package/dist/esm/commissioner/index.js.map +6 -0
  415. package/dist/esm/credentials/ThreadCredentialsRegistry.d.ts +50 -0
  416. package/dist/esm/credentials/ThreadCredentialsRegistry.d.ts.map +1 -0
  417. package/dist/esm/credentials/ThreadCredentialsRegistry.js +99 -0
  418. package/dist/esm/credentials/ThreadCredentialsRegistry.js.map +6 -0
  419. package/dist/esm/credentials/ThreadNetworkCredentials.d.ts +26 -0
  420. package/dist/esm/credentials/ThreadNetworkCredentials.d.ts.map +1 -0
  421. package/dist/esm/credentials/ThreadNetworkCredentials.js +6 -0
  422. package/dist/esm/credentials/ThreadNetworkCredentials.js.map +6 -0
  423. package/dist/esm/credentials/index.d.ts +8 -0
  424. package/dist/esm/credentials/index.d.ts.map +1 -0
  425. package/dist/esm/credentials/index.js +10 -0
  426. package/dist/esm/credentials/index.js.map +6 -0
  427. package/dist/esm/crypto/AesCmacPrf128.d.ts +24 -0
  428. package/dist/esm/crypto/AesCmacPrf128.d.ts.map +1 -0
  429. package/dist/esm/crypto/AesCmacPrf128.js +87 -0
  430. package/dist/esm/crypto/AesCmacPrf128.js.map +6 -0
  431. package/dist/esm/crypto/Pbkdf2AesCmac.d.ts +18 -0
  432. package/dist/esm/crypto/Pbkdf2AesCmac.d.ts.map +1 -0
  433. package/dist/esm/crypto/Pbkdf2AesCmac.js +42 -0
  434. package/dist/esm/crypto/Pbkdf2AesCmac.js.map +6 -0
  435. package/dist/esm/crypto/Pskc.d.ts +21 -0
  436. package/dist/esm/crypto/Pskc.d.ts.map +1 -0
  437. package/dist/esm/crypto/Pskc.js +49 -0
  438. package/dist/esm/crypto/Pskc.js.map +6 -0
  439. package/dist/esm/crypto/index.d.ts +9 -0
  440. package/dist/esm/crypto/index.d.ts.map +1 -0
  441. package/dist/esm/crypto/index.js +15 -0
  442. package/dist/esm/crypto/index.js.map +6 -0
  443. package/dist/esm/dataset/OperationalDataset.d.ts +74 -0
  444. package/dist/esm/dataset/OperationalDataset.d.ts.map +1 -0
  445. package/dist/esm/dataset/OperationalDataset.js +224 -0
  446. package/dist/esm/dataset/OperationalDataset.js.map +6 -0
  447. package/dist/esm/dataset/SecurityPolicy.d.ts +22 -0
  448. package/dist/esm/dataset/SecurityPolicy.d.ts.map +1 -0
  449. package/dist/esm/dataset/SecurityPolicy.js +39 -0
  450. package/dist/esm/dataset/SecurityPolicy.js.map +6 -0
  451. package/dist/esm/dataset/errors.d.ts +10 -0
  452. package/dist/esm/dataset/errors.d.ts.map +1 -0
  453. package/dist/esm/dataset/errors.js +12 -0
  454. package/dist/esm/dataset/errors.js.map +6 -0
  455. package/dist/esm/dataset/index.d.ts +9 -0
  456. package/dist/esm/dataset/index.d.ts.map +1 -0
  457. package/dist/esm/dataset/index.js +16 -0
  458. package/dist/esm/dataset/index.js.map +6 -0
  459. package/dist/esm/dataset/meshcopTlvTypes.d.ts +61 -0
  460. package/dist/esm/dataset/meshcopTlvTypes.d.ts.map +1 -0
  461. package/dist/esm/dataset/meshcopTlvTypes.js +62 -0
  462. package/dist/esm/dataset/meshcopTlvTypes.js.map +6 -0
  463. package/dist/esm/diagnostic/DefaultTlvSet.d.ts +8 -0
  464. package/dist/esm/diagnostic/DefaultTlvSet.d.ts.map +1 -0
  465. package/dist/esm/diagnostic/DefaultTlvSet.js +32 -0
  466. package/dist/esm/diagnostic/DefaultTlvSet.js.map +6 -0
  467. package/dist/esm/diagnostic/DiagnosticResponse.d.ts +47 -0
  468. package/dist/esm/diagnostic/DiagnosticResponse.d.ts.map +1 -0
  469. package/dist/esm/diagnostic/DiagnosticResponse.js +6 -0
  470. package/dist/esm/diagnostic/DiagnosticResponse.js.map +6 -0
  471. package/dist/esm/diagnostic/DiagnosticSource.d.ts +64 -0
  472. package/dist/esm/diagnostic/DiagnosticSource.d.ts.map +1 -0
  473. package/dist/esm/diagnostic/DiagnosticSource.js +14 -0
  474. package/dist/esm/diagnostic/DiagnosticSource.js.map +6 -0
  475. package/dist/esm/diagnostic/MeshCopDiagnosticSource.d.ts +78 -0
  476. package/dist/esm/diagnostic/MeshCopDiagnosticSource.d.ts.map +1 -0
  477. package/dist/esm/diagnostic/MeshCopDiagnosticSource.js +663 -0
  478. package/dist/esm/diagnostic/MeshCopDiagnosticSource.js.map +6 -0
  479. package/dist/esm/diagnostic/connectMeshcop.d.ts +38 -0
  480. package/dist/esm/diagnostic/connectMeshcop.d.ts.map +1 -0
  481. package/dist/esm/diagnostic/connectMeshcop.js +80 -0
  482. package/dist/esm/diagnostic/connectMeshcop.js.map +6 -0
  483. package/dist/esm/diagnostic/errors.d.ts +10 -0
  484. package/dist/esm/diagnostic/errors.d.ts.map +1 -0
  485. package/dist/esm/diagnostic/errors.js +12 -0
  486. package/dist/esm/diagnostic/errors.js.map +6 -0
  487. package/dist/esm/diagnostic/index.d.ts +13 -0
  488. package/dist/esm/diagnostic/index.d.ts.map +1 -0
  489. package/dist/esm/diagnostic/index.js +15 -0
  490. package/dist/esm/diagnostic/index.js.map +6 -0
  491. package/dist/esm/discovery/BorderRouterEntry.d.ts +54 -0
  492. package/dist/esm/discovery/BorderRouterEntry.d.ts.map +1 -0
  493. package/dist/esm/discovery/BorderRouterEntry.js +6 -0
  494. package/dist/esm/discovery/BorderRouterEntry.js.map +6 -0
  495. package/dist/esm/discovery/BorderRouterRegistry.d.ts +36 -0
  496. package/dist/esm/discovery/BorderRouterRegistry.d.ts.map +1 -0
  497. package/dist/esm/discovery/BorderRouterRegistry.js +508 -0
  498. package/dist/esm/discovery/BorderRouterRegistry.js.map +6 -0
  499. package/dist/esm/discovery/DnssdLikeTypes.d.ts +50 -0
  500. package/dist/esm/discovery/DnssdLikeTypes.d.ts.map +1 -0
  501. package/dist/esm/discovery/DnssdLikeTypes.js +6 -0
  502. package/dist/esm/discovery/DnssdLikeTypes.js.map +6 -0
  503. package/dist/esm/discovery/index.d.ts +8 -0
  504. package/dist/esm/discovery/index.d.ts.map +1 -0
  505. package/dist/esm/discovery/index.js +10 -0
  506. package/dist/esm/discovery/index.js.map +6 -0
  507. package/dist/esm/dtls/channel/DtlsChannel.d.ts +39 -0
  508. package/dist/esm/dtls/channel/DtlsChannel.d.ts.map +1 -0
  509. package/dist/esm/dtls/channel/DtlsChannel.js +12 -0
  510. package/dist/esm/dtls/channel/DtlsChannel.js.map +6 -0
  511. package/dist/esm/dtls/channel/DtlsConnectOpts.d.ts +38 -0
  512. package/dist/esm/dtls/channel/DtlsConnectOpts.d.ts.map +1 -0
  513. package/dist/esm/dtls/channel/DtlsConnectOpts.js +6 -0
  514. package/dist/esm/dtls/channel/DtlsConnectOpts.js.map +6 -0
  515. package/dist/esm/dtls/channel/DtlsRetransmitTimer.d.ts +43 -0
  516. package/dist/esm/dtls/channel/DtlsRetransmitTimer.d.ts.map +1 -0
  517. package/dist/esm/dtls/channel/DtlsRetransmitTimer.js +77 -0
  518. package/dist/esm/dtls/channel/DtlsRetransmitTimer.js.map +6 -0
  519. package/dist/esm/dtls/channel/NobleDtlsChannel.d.ts +35 -0
  520. package/dist/esm/dtls/channel/NobleDtlsChannel.d.ts.map +1 -0
  521. package/dist/esm/dtls/channel/NobleDtlsChannel.js +432 -0
  522. package/dist/esm/dtls/channel/NobleDtlsChannel.js.map +6 -0
  523. package/dist/esm/dtls/channel/connectDtls.d.ts +15 -0
  524. package/dist/esm/dtls/channel/connectDtls.d.ts.map +1 -0
  525. package/dist/esm/dtls/channel/connectDtls.js +21 -0
  526. package/dist/esm/dtls/channel/connectDtls.js.map +6 -0
  527. package/dist/esm/dtls/channel/index.d.ts +14 -0
  528. package/dist/esm/dtls/channel/index.d.ts.map +1 -0
  529. package/dist/esm/dtls/channel/index.js +12 -0
  530. package/dist/esm/dtls/channel/index.js.map +6 -0
  531. package/dist/esm/dtls/ecjpake/EcJpakePms.d.ts +35 -0
  532. package/dist/esm/dtls/ecjpake/EcJpakePms.d.ts.map +1 -0
  533. package/dist/esm/dtls/ecjpake/EcJpakePms.js +41 -0
  534. package/dist/esm/dtls/ecjpake/EcJpakePms.js.map +6 -0
  535. package/dist/esm/dtls/ecjpake/EcJpakeRound.d.ts +119 -0
  536. package/dist/esm/dtls/ecjpake/EcJpakeRound.d.ts.map +1 -0
  537. package/dist/esm/dtls/ecjpake/EcJpakeRound.js +228 -0
  538. package/dist/esm/dtls/ecjpake/EcJpakeRound.js.map +6 -0
  539. package/dist/esm/dtls/ecjpake/SchnorrZkp.d.ts +60 -0
  540. package/dist/esm/dtls/ecjpake/SchnorrZkp.d.ts.map +1 -0
  541. package/dist/esm/dtls/ecjpake/SchnorrZkp.js +142 -0
  542. package/dist/esm/dtls/ecjpake/SchnorrZkp.js.map +6 -0
  543. package/dist/esm/dtls/ecjpake/index.d.ts +28 -0
  544. package/dist/esm/dtls/ecjpake/index.d.ts.map +1 -0
  545. package/dist/esm/dtls/ecjpake/index.js +14 -0
  546. package/dist/esm/dtls/ecjpake/index.js.map +6 -0
  547. package/dist/esm/dtls/handshake/ChangeCipherSpec.d.ts +23 -0
  548. package/dist/esm/dtls/handshake/ChangeCipherSpec.d.ts.map +1 -0
  549. package/dist/esm/dtls/handshake/ChangeCipherSpec.js +21 -0
  550. package/dist/esm/dtls/handshake/ChangeCipherSpec.js.map +6 -0
  551. package/dist/esm/dtls/handshake/ClientHelloMessage.d.ts +34 -0
  552. package/dist/esm/dtls/handshake/ClientHelloMessage.d.ts.map +1 -0
  553. package/dist/esm/dtls/handshake/ClientHelloMessage.js +97 -0
  554. package/dist/esm/dtls/handshake/ClientHelloMessage.js.map +6 -0
  555. package/dist/esm/dtls/handshake/ClientKeyExchangeMessage.d.ts +22 -0
  556. package/dist/esm/dtls/handshake/ClientKeyExchangeMessage.d.ts.map +1 -0
  557. package/dist/esm/dtls/handshake/ClientKeyExchangeMessage.js +15 -0
  558. package/dist/esm/dtls/handshake/ClientKeyExchangeMessage.js.map +6 -0
  559. package/dist/esm/dtls/handshake/DtlsClient.d.ts +57 -0
  560. package/dist/esm/dtls/handshake/DtlsClient.d.ts.map +1 -0
  561. package/dist/esm/dtls/handshake/DtlsClient.js +482 -0
  562. package/dist/esm/dtls/handshake/DtlsClient.js.map +6 -0
  563. package/dist/esm/dtls/handshake/FinishedMessage.d.ts +13 -0
  564. package/dist/esm/dtls/handshake/FinishedMessage.d.ts.map +1 -0
  565. package/dist/esm/dtls/handshake/FinishedMessage.js +28 -0
  566. package/dist/esm/dtls/handshake/FinishedMessage.js.map +6 -0
  567. package/dist/esm/dtls/handshake/HandshakeMessage.d.ts +58 -0
  568. package/dist/esm/dtls/handshake/HandshakeMessage.d.ts.map +1 -0
  569. package/dist/esm/dtls/handshake/HandshakeMessage.js +97 -0
  570. package/dist/esm/dtls/handshake/HandshakeMessage.js.map +6 -0
  571. package/dist/esm/dtls/handshake/HandshakeType.d.ts +29 -0
  572. package/dist/esm/dtls/handshake/HandshakeType.d.ts.map +1 -0
  573. package/dist/esm/dtls/handshake/HandshakeType.js +25 -0
  574. package/dist/esm/dtls/handshake/HandshakeType.js.map +6 -0
  575. package/dist/esm/dtls/handshake/HelloVerifyRequestMessage.d.ts +11 -0
  576. package/dist/esm/dtls/handshake/HelloVerifyRequestMessage.d.ts.map +1 -0
  577. package/dist/esm/dtls/handshake/HelloVerifyRequestMessage.js +29 -0
  578. package/dist/esm/dtls/handshake/HelloVerifyRequestMessage.js.map +6 -0
  579. package/dist/esm/dtls/handshake/ServerHelloDoneMessage.d.ts +14 -0
  580. package/dist/esm/dtls/handshake/ServerHelloDoneMessage.d.ts.map +1 -0
  581. package/dist/esm/dtls/handshake/ServerHelloDoneMessage.js +17 -0
  582. package/dist/esm/dtls/handshake/ServerHelloDoneMessage.js.map +6 -0
  583. package/dist/esm/dtls/handshake/ServerHelloMessage.d.ts +15 -0
  584. package/dist/esm/dtls/handshake/ServerHelloMessage.d.ts.map +1 -0
  585. package/dist/esm/dtls/handshake/ServerHelloMessage.js +93 -0
  586. package/dist/esm/dtls/handshake/ServerHelloMessage.js.map +6 -0
  587. package/dist/esm/dtls/handshake/ServerKeyExchangeMessage.d.ts +24 -0
  588. package/dist/esm/dtls/handshake/ServerKeyExchangeMessage.d.ts.map +1 -0
  589. package/dist/esm/dtls/handshake/ServerKeyExchangeMessage.js +15 -0
  590. package/dist/esm/dtls/handshake/ServerKeyExchangeMessage.js.map +6 -0
  591. package/dist/esm/dtls/handshake/index.d.ts +14 -0
  592. package/dist/esm/dtls/handshake/index.d.ts.map +1 -0
  593. package/dist/esm/dtls/handshake/index.js +10 -0
  594. package/dist/esm/dtls/handshake/index.js.map +6 -0
  595. package/dist/esm/dtls/prf/HandshakeTranscript.d.ts +36 -0
  596. package/dist/esm/dtls/prf/HandshakeTranscript.d.ts.map +1 -0
  597. package/dist/esm/dtls/prf/HandshakeTranscript.js +35 -0
  598. package/dist/esm/dtls/prf/HandshakeTranscript.js.map +6 -0
  599. package/dist/esm/dtls/prf/TlsPrf.d.ts +82 -0
  600. package/dist/esm/dtls/prf/TlsPrf.d.ts.map +1 -0
  601. package/dist/esm/dtls/prf/TlsPrf.js +101 -0
  602. package/dist/esm/dtls/prf/TlsPrf.js.map +6 -0
  603. package/dist/esm/dtls/prf/index.d.ts +13 -0
  604. package/dist/esm/dtls/prf/index.d.ts.map +1 -0
  605. package/dist/esm/dtls/prf/index.js +12 -0
  606. package/dist/esm/dtls/prf/index.js.map +6 -0
  607. package/dist/esm/dtls/record/AesCcm8.d.ts +32 -0
  608. package/dist/esm/dtls/record/AesCcm8.d.ts.map +1 -0
  609. package/dist/esm/dtls/record/AesCcm8.js +58 -0
  610. package/dist/esm/dtls/record/AesCcm8.js.map +6 -0
  611. package/dist/esm/dtls/record/AntiReplayWindow.d.ts +38 -0
  612. package/dist/esm/dtls/record/AntiReplayWindow.d.ts.map +1 -0
  613. package/dist/esm/dtls/record/AntiReplayWindow.js +64 -0
  614. package/dist/esm/dtls/record/AntiReplayWindow.js.map +6 -0
  615. package/dist/esm/dtls/record/ContentType.d.ts +19 -0
  616. package/dist/esm/dtls/record/ContentType.d.ts.map +1 -0
  617. package/dist/esm/dtls/record/ContentType.js +19 -0
  618. package/dist/esm/dtls/record/ContentType.js.map +6 -0
  619. package/dist/esm/dtls/record/DtlsCipherState.d.ts +79 -0
  620. package/dist/esm/dtls/record/DtlsCipherState.d.ts.map +1 -0
  621. package/dist/esm/dtls/record/DtlsCipherState.js +153 -0
  622. package/dist/esm/dtls/record/DtlsCipherState.js.map +6 -0
  623. package/dist/esm/dtls/record/DtlsRecord.d.ts +89 -0
  624. package/dist/esm/dtls/record/DtlsRecord.d.ts.map +1 -0
  625. package/dist/esm/dtls/record/DtlsRecord.js +175 -0
  626. package/dist/esm/dtls/record/DtlsRecord.js.map +6 -0
  627. package/dist/esm/dtls/record/index.d.ts +15 -0
  628. package/dist/esm/dtls/record/index.d.ts.map +1 -0
  629. package/dist/esm/dtls/record/index.js +29 -0
  630. package/dist/esm/dtls/record/index.js.map +6 -0
  631. package/dist/esm/index.d.ts +32 -0
  632. package/dist/esm/index.d.ts.map +1 -0
  633. package/dist/esm/index.js +74 -0
  634. package/dist/esm/index.js.map +6 -0
  635. package/dist/esm/otbr-rest/OtbrRestCapability.d.ts +22 -0
  636. package/dist/esm/otbr-rest/OtbrRestCapability.d.ts.map +1 -0
  637. package/dist/esm/otbr-rest/OtbrRestCapability.js +6 -0
  638. package/dist/esm/otbr-rest/OtbrRestCapability.js.map +6 -0
  639. package/dist/esm/otbr-rest/OtbrRestClient.d.ts +257 -0
  640. package/dist/esm/otbr-rest/OtbrRestClient.d.ts.map +1 -0
  641. package/dist/esm/otbr-rest/OtbrRestClient.js +524 -0
  642. package/dist/esm/otbr-rest/OtbrRestClient.js.map +6 -0
  643. package/dist/esm/otbr-rest/OtbrRestDiagnosticSource.d.ts +88 -0
  644. package/dist/esm/otbr-rest/OtbrRestDiagnosticSource.d.ts.map +1 -0
  645. package/dist/esm/otbr-rest/OtbrRestDiagnosticSource.js +136 -0
  646. package/dist/esm/otbr-rest/OtbrRestDiagnosticSource.js.map +6 -0
  647. package/dist/esm/otbr-rest/OtbrRestError.d.ts +18 -0
  648. package/dist/esm/otbr-rest/OtbrRestError.d.ts.map +1 -0
  649. package/dist/esm/otbr-rest/OtbrRestError.js +22 -0
  650. package/dist/esm/otbr-rest/OtbrRestError.js.map +6 -0
  651. package/dist/esm/otbr-rest/OtbrRestProbe.d.ts +17 -0
  652. package/dist/esm/otbr-rest/OtbrRestProbe.d.ts.map +1 -0
  653. package/dist/esm/otbr-rest/OtbrRestProbe.js +76 -0
  654. package/dist/esm/otbr-rest/OtbrRestProbe.js.map +6 -0
  655. package/dist/esm/otbr-rest/caseNormalizer.d.ts +12 -0
  656. package/dist/esm/otbr-rest/caseNormalizer.d.ts.map +1 -0
  657. package/dist/esm/otbr-rest/caseNormalizer.js +39 -0
  658. package/dist/esm/otbr-rest/caseNormalizer.js.map +6 -0
  659. package/dist/esm/otbr-rest/index.d.ts +15 -0
  660. package/dist/esm/otbr-rest/index.d.ts.map +1 -0
  661. package/dist/esm/otbr-rest/index.js +20 -0
  662. package/dist/esm/otbr-rest/index.js.map +6 -0
  663. package/dist/esm/otbr-rest/translation.d.ts +24 -0
  664. package/dist/esm/otbr-rest/translation.d.ts.map +1 -0
  665. package/dist/esm/otbr-rest/translation.js +281 -0
  666. package/dist/esm/otbr-rest/translation.js.map +6 -0
  667. package/dist/esm/package.json +6 -0
  668. package/dist/esm/selection/index.d.ts +11 -0
  669. package/dist/esm/selection/index.d.ts.map +1 -0
  670. package/dist/esm/selection/index.js +16 -0
  671. package/dist/esm/selection/index.js.map +6 -0
  672. package/dist/esm/selection/selectBr.d.ts +37 -0
  673. package/dist/esm/selection/selectBr.d.ts.map +1 -0
  674. package/dist/esm/selection/selectBr.js +46 -0
  675. package/dist/esm/selection/selectBr.js.map +6 -0
  676. package/dist/esm/selection/selectSource.d.ts +32 -0
  677. package/dist/esm/selection/selectSource.d.ts.map +1 -0
  678. package/dist/esm/selection/selectSource.js +23 -0
  679. package/dist/esm/selection/selectSource.js.map +6 -0
  680. package/dist/esm/selection/withExtPanIdLock.d.ts +23 -0
  681. package/dist/esm/selection/withExtPanIdLock.d.ts.map +1 -0
  682. package/dist/esm/selection/withExtPanIdLock.js +30 -0
  683. package/dist/esm/selection/withExtPanIdLock.js.map +6 -0
  684. package/dist/esm/tlv/BasicTlvCodec.d.ts +22 -0
  685. package/dist/esm/tlv/BasicTlvCodec.d.ts.map +1 -0
  686. package/dist/esm/tlv/BasicTlvCodec.js +77 -0
  687. package/dist/esm/tlv/BasicTlvCodec.js.map +6 -0
  688. package/dist/esm/tlv/NetworkDiagnosticTlv.d.ts +30 -0
  689. package/dist/esm/tlv/NetworkDiagnosticTlv.d.ts.map +1 -0
  690. package/dist/esm/tlv/NetworkDiagnosticTlv.js +21 -0
  691. package/dist/esm/tlv/NetworkDiagnosticTlv.js.map +6 -0
  692. package/dist/esm/tlv/TypeListTlv.d.ts +23 -0
  693. package/dist/esm/tlv/TypeListTlv.d.ts.map +1 -0
  694. package/dist/esm/tlv/TypeListTlv.js +29 -0
  695. package/dist/esm/tlv/TypeListTlv.js.map +6 -0
  696. package/dist/esm/tlv/diag/ChildIpv6AddressList.d.ts +22 -0
  697. package/dist/esm/tlv/diag/ChildIpv6AddressList.d.ts.map +1 -0
  698. package/dist/esm/tlv/diag/ChildIpv6AddressList.js +28 -0
  699. package/dist/esm/tlv/diag/ChildIpv6AddressList.js.map +6 -0
  700. package/dist/esm/tlv/diag/ChildTable.d.ts +29 -0
  701. package/dist/esm/tlv/diag/ChildTable.d.ts.map +1 -0
  702. package/dist/esm/tlv/diag/ChildTable.js +71 -0
  703. package/dist/esm/tlv/diag/ChildTable.js.map +6 -0
  704. package/dist/esm/tlv/diag/Connectivity.d.ts +45 -0
  705. package/dist/esm/tlv/diag/Connectivity.d.ts.map +1 -0
  706. package/dist/esm/tlv/diag/Connectivity.js +79 -0
  707. package/dist/esm/tlv/diag/Connectivity.js.map +6 -0
  708. package/dist/esm/tlv/diag/Ipv6AddressList.d.ts +21 -0
  709. package/dist/esm/tlv/diag/Ipv6AddressList.d.ts.map +1 -0
  710. package/dist/esm/tlv/diag/Ipv6AddressList.js +41 -0
  711. package/dist/esm/tlv/diag/Ipv6AddressList.js.map +6 -0
  712. package/dist/esm/tlv/diag/LeaderData.d.ts +28 -0
  713. package/dist/esm/tlv/diag/LeaderData.d.ts.map +1 -0
  714. package/dist/esm/tlv/diag/LeaderData.js +44 -0
  715. package/dist/esm/tlv/diag/LeaderData.js.map +6 -0
  716. package/dist/esm/tlv/diag/MacCounters.d.ts +28 -0
  717. package/dist/esm/tlv/diag/MacCounters.d.ts.map +1 -0
  718. package/dist/esm/tlv/diag/MacCounters.js +65 -0
  719. package/dist/esm/tlv/diag/MacCounters.js.map +6 -0
  720. package/dist/esm/tlv/diag/MleCounters.d.ts +41 -0
  721. package/dist/esm/tlv/diag/MleCounters.d.ts.map +1 -0
  722. package/dist/esm/tlv/diag/MleCounters.js +98 -0
  723. package/dist/esm/tlv/diag/MleCounters.js.map +6 -0
  724. package/dist/esm/tlv/diag/Mode.d.ts +26 -0
  725. package/dist/esm/tlv/diag/Mode.d.ts.map +1 -0
  726. package/dist/esm/tlv/diag/Mode.js +37 -0
  727. package/dist/esm/tlv/diag/Mode.js.map +6 -0
  728. package/dist/esm/tlv/diag/NetworkData.d.ts +93 -0
  729. package/dist/esm/tlv/diag/NetworkData.d.ts.map +1 -0
  730. package/dist/esm/tlv/diag/NetworkData.js +137 -0
  731. package/dist/esm/tlv/diag/NetworkData.js.map +6 -0
  732. package/dist/esm/tlv/diag/Primitives.d.ts +34 -0
  733. package/dist/esm/tlv/diag/Primitives.d.ts.map +1 -0
  734. package/dist/esm/tlv/diag/Primitives.js +143 -0
  735. package/dist/esm/tlv/diag/Primitives.js.map +6 -0
  736. package/dist/esm/tlv/diag/Route64.d.ts +42 -0
  737. package/dist/esm/tlv/diag/Route64.d.ts.map +1 -0
  738. package/dist/esm/tlv/diag/Route64.js +78 -0
  739. package/dist/esm/tlv/diag/Route64.js.map +6 -0
  740. package/dist/esm/tlv/diag/RouterNeighbor.d.ts +46 -0
  741. package/dist/esm/tlv/diag/RouterNeighbor.d.ts.map +1 -0
  742. package/dist/esm/tlv/diag/RouterNeighbor.js +45 -0
  743. package/dist/esm/tlv/diag/RouterNeighbor.js.map +6 -0
  744. package/dist/esm/tlv/diag/Timeout.d.ts +17 -0
  745. package/dist/esm/tlv/diag/Timeout.d.ts.map +1 -0
  746. package/dist/esm/tlv/diag/Timeout.js +33 -0
  747. package/dist/esm/tlv/diag/Timeout.js.map +6 -0
  748. package/dist/esm/tlv/diag/VendorInfo.d.ts +35 -0
  749. package/dist/esm/tlv/diag/VendorInfo.d.ts.map +1 -0
  750. package/dist/esm/tlv/diag/VendorInfo.js +110 -0
  751. package/dist/esm/tlv/diag/VendorInfo.js.map +6 -0
  752. package/dist/esm/tlv/diag/index.d.ts +26 -0
  753. package/dist/esm/tlv/diag/index.d.ts.map +1 -0
  754. package/dist/esm/tlv/diag/index.js +55 -0
  755. package/dist/esm/tlv/diag/index.js.map +6 -0
  756. package/dist/esm/tlv/meshcop/Ip6AddressTlv.d.ts +21 -0
  757. package/dist/esm/tlv/meshcop/Ip6AddressTlv.d.ts.map +1 -0
  758. package/dist/esm/tlv/meshcop/Ip6AddressTlv.js +28 -0
  759. package/dist/esm/tlv/meshcop/Ip6AddressTlv.js.map +6 -0
  760. package/dist/esm/tlv/meshcop/UdpEncapsulationTlv.d.ts +27 -0
  761. package/dist/esm/tlv/meshcop/UdpEncapsulationTlv.d.ts.map +1 -0
  762. package/dist/esm/tlv/meshcop/UdpEncapsulationTlv.js +42 -0
  763. package/dist/esm/tlv/meshcop/UdpEncapsulationTlv.js.map +6 -0
  764. package/dist/esm/tlv/networkDiagTlvTypes.d.ts +59 -0
  765. package/dist/esm/tlv/networkDiagTlvTypes.d.ts.map +1 -0
  766. package/dist/esm/tlv/networkDiagTlvTypes.js +56 -0
  767. package/dist/esm/tlv/networkDiagTlvTypes.js.map +6 -0
  768. package/dist/esm/util/meshLocalAddr.d.ts +27 -0
  769. package/dist/esm/util/meshLocalAddr.d.ts.map +1 -0
  770. package/dist/esm/util/meshLocalAddr.js +47 -0
  771. package/dist/esm/util/meshLocalAddr.js.map +6 -0
  772. package/package.json +73 -0
  773. package/src/coap/CoapClient.ts +355 -0
  774. package/src/coap/CoapMessage.ts +190 -0
  775. package/src/coap/index.ts +8 -0
  776. package/src/commissioner/Commissioner.ts +205 -0
  777. package/src/commissioner/LeadKa.ts +48 -0
  778. package/src/commissioner/LeadPet.ts +53 -0
  779. package/src/commissioner/index.ts +17 -0
  780. package/src/credentials/ThreadCredentialsRegistry.ts +117 -0
  781. package/src/credentials/ThreadNetworkCredentials.ts +26 -0
  782. package/src/credentials/index.ts +8 -0
  783. package/src/crypto/AesCmacPrf128.ts +101 -0
  784. package/src/crypto/Pbkdf2AesCmac.ts +57 -0
  785. package/src/crypto/Pskc.ts +57 -0
  786. package/src/crypto/index.ts +9 -0
  787. package/src/dataset/OperationalDataset.ts +326 -0
  788. package/src/dataset/SecurityPolicy.ts +48 -0
  789. package/src/dataset/errors.ts +10 -0
  790. package/src/dataset/index.ts +9 -0
  791. package/src/dataset/meshcopTlvTypes.ts +69 -0
  792. package/src/diagnostic/DefaultTlvSet.ts +31 -0
  793. package/src/diagnostic/DiagnosticResponse.ts +45 -0
  794. package/src/diagnostic/DiagnosticSource.ts +66 -0
  795. package/src/diagnostic/MeshCopDiagnosticSource.ts +808 -0
  796. package/src/diagnostic/connectMeshcop.ts +122 -0
  797. package/src/diagnostic/errors.ts +10 -0
  798. package/src/diagnostic/index.ts +13 -0
  799. package/src/discovery/BorderRouterEntry.ts +54 -0
  800. package/src/discovery/BorderRouterRegistry.ts +645 -0
  801. package/src/discovery/DnssdLikeTypes.ts +51 -0
  802. package/src/discovery/index.ts +8 -0
  803. package/src/dtls/channel/DtlsChannel.ts +42 -0
  804. package/src/dtls/channel/DtlsConnectOpts.ts +50 -0
  805. package/src/dtls/channel/DtlsRetransmitTimer.ts +107 -0
  806. package/src/dtls/channel/NobleDtlsChannel.ts +519 -0
  807. package/src/dtls/channel/connectDtls.ts +26 -0
  808. package/src/dtls/channel/index.ts +15 -0
  809. package/src/dtls/ecjpake/EcJpakePms.ts +65 -0
  810. package/src/dtls/ecjpake/EcJpakeRound.ts +279 -0
  811. package/src/dtls/ecjpake/SchnorrZkp.ts +193 -0
  812. package/src/dtls/ecjpake/index.ts +29 -0
  813. package/src/dtls/handshake/ChangeCipherSpec.ts +32 -0
  814. package/src/dtls/handshake/ClientHelloMessage.ts +150 -0
  815. package/src/dtls/handshake/ClientKeyExchangeMessage.ts +25 -0
  816. package/src/dtls/handshake/DtlsClient.ts +610 -0
  817. package/src/dtls/handshake/FinishedMessage.ts +36 -0
  818. package/src/dtls/handshake/HandshakeMessage.ts +144 -0
  819. package/src/dtls/handshake/HandshakeType.ts +35 -0
  820. package/src/dtls/handshake/HelloVerifyRequestMessage.ts +47 -0
  821. package/src/dtls/handshake/ServerHelloDoneMessage.ts +20 -0
  822. package/src/dtls/handshake/ServerHelloMessage.ts +129 -0
  823. package/src/dtls/handshake/ServerKeyExchangeMessage.ts +31 -0
  824. package/src/dtls/handshake/index.ts +15 -0
  825. package/src/dtls/prf/HandshakeTranscript.ts +52 -0
  826. package/src/dtls/prf/TlsPrf.ts +173 -0
  827. package/src/dtls/prf/index.ts +14 -0
  828. package/src/dtls/record/AesCcm8.ts +83 -0
  829. package/src/dtls/record/AntiReplayWindow.ts +87 -0
  830. package/src/dtls/record/ContentType.ts +23 -0
  831. package/src/dtls/record/DtlsCipherState.ts +202 -0
  832. package/src/dtls/record/DtlsRecord.ts +249 -0
  833. package/src/dtls/record/index.ts +26 -0
  834. package/src/index.ts +93 -0
  835. package/src/otbr-rest/OtbrRestCapability.ts +22 -0
  836. package/src/otbr-rest/OtbrRestClient.ts +644 -0
  837. package/src/otbr-rest/OtbrRestDiagnosticSource.ts +172 -0
  838. package/src/otbr-rest/OtbrRestError.ts +29 -0
  839. package/src/otbr-rest/OtbrRestProbe.ts +85 -0
  840. package/src/otbr-rest/caseNormalizer.ts +49 -0
  841. package/src/otbr-rest/index.ts +21 -0
  842. package/src/otbr-rest/translation.ts +344 -0
  843. package/src/selection/index.ts +11 -0
  844. package/src/selection/selectBr.ts +77 -0
  845. package/src/selection/selectSource.ts +51 -0
  846. package/src/selection/withExtPanIdLock.ts +40 -0
  847. package/src/tlv/BasicTlvCodec.ts +83 -0
  848. package/src/tlv/NetworkDiagnosticTlv.ts +37 -0
  849. package/src/tlv/TypeListTlv.ts +38 -0
  850. package/src/tlv/diag/ChildIpv6AddressList.ts +41 -0
  851. package/src/tlv/diag/ChildTable.ts +92 -0
  852. package/src/tlv/diag/Connectivity.ts +115 -0
  853. package/src/tlv/diag/Ipv6AddressList.ts +47 -0
  854. package/src/tlv/diag/LeaderData.ts +59 -0
  855. package/src/tlv/diag/MacCounters.ts +84 -0
  856. package/src/tlv/diag/MleCounters.ts +147 -0
  857. package/src/tlv/diag/Mode.ts +52 -0
  858. package/src/tlv/diag/NetworkData.ts +241 -0
  859. package/src/tlv/diag/Primitives.ts +146 -0
  860. package/src/tlv/diag/Route64.ts +118 -0
  861. package/src/tlv/diag/RouterNeighbor.ts +85 -0
  862. package/src/tlv/diag/Timeout.ts +36 -0
  863. package/src/tlv/diag/VendorInfo.ts +113 -0
  864. package/src/tlv/diag/index.ts +59 -0
  865. package/src/tlv/meshcop/Ip6AddressTlv.ts +36 -0
  866. package/src/tlv/meshcop/UdpEncapsulationTlv.ts +57 -0
  867. package/src/tlv/networkDiagTlvTypes.ts +69 -0
  868. package/src/tsconfig.json +21 -0
  869. package/src/util/meshLocalAddr.ts +63 -0
@@ -0,0 +1,241 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2026 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { ThreadDiagError } from "../../diagnostic/errors.js";
8
+
9
+ /**
10
+ * Decoded Thread Network Data (Network Diagnostic TLV type 7).
11
+ *
12
+ * Network Data is itself a nested TLV structure. Layout per Thread spec §5.13
13
+ * and OpenThread `src/core/thread/network_data_tlvs.hpp`:
14
+ *
15
+ * Each TLV: [type:1][length:1][value:length]
16
+ * - The type byte packs the stable flag in bit 0: typeByte = (type << 1) | stable.
17
+ * - Network Data TLVs do NOT use the MeshCoP 0xFF extended-length escape, so
18
+ * this stream needs its own walker rather than `BasicTlv.walk`.
19
+ *
20
+ * Top-level TLV types: Has-Route(0), Prefix(1), Border-Router(2), 6LoWPAN-ID(3),
21
+ * Commissioning(4), Service(5), Server(6).
22
+ *
23
+ * Prefix TLV value (`PrefixTlv`):
24
+ * [0] uint8 Domain ID
25
+ * [1] uint8 Prefix Length (bits)
26
+ * [2..] bytes Prefix, ceil(prefixLength/8) bytes
27
+ * [..] TLVs Sub-TLVs (Has-Route, Border-Router, 6LoWPAN-ID)
28
+ *
29
+ * Has-Route TLV value: array of 3-byte entries (`HasRouteEntry`):
30
+ * [0..1] uint16-be RLOC16
31
+ * [2] uint8 flags (preference in bits 7..6)
32
+ *
33
+ * Border-Router TLV value: array of 4-byte entries (`BorderRouterEntry`):
34
+ * [0..1] uint16-be RLOC16
35
+ * [2..3] uint16-be flags (P/S/D/C/R/O/N/DP and preference)
36
+ *
37
+ * 6LoWPAN-ID (Context) TLV value (`ContextTlv`):
38
+ * [0] uint8 compress flag (bit 4) | Context ID (bits 3..0)
39
+ * [1] uint8 Context Length (bits)
40
+ *
41
+ * Service TLV value (`ServiceTlv`):
42
+ * [0] uint8 T flag (bit 7) | reserved | Service ID (bits 3..0)
43
+ * if T == 0: [1..4] uint32-be Enterprise Number; else Enterprise Number is the
44
+ * Thread reserved value (0xFFFFFFFF semantically; encoded by T flag).
45
+ * [n] uint8 Service Data Length
46
+ * [..] bytes Service Data
47
+ * [..] TLVs Server sub-TLVs
48
+ *
49
+ * Server TLV value (`ServerTlv`):
50
+ * [0..1] uint16-be RLOC16
51
+ * [2..] bytes Server Data
52
+ *
53
+ * Anything not understood is preserved as a raw `{ type, stable, value }` entry,
54
+ * and `raw` always holds the full original bytes so no data is lost.
55
+ */
56
+
57
+ export interface NetworkDataEntry {
58
+ type: number;
59
+ stable: boolean;
60
+ value: Uint8Array;
61
+ }
62
+
63
+ export interface HasRouteEntry {
64
+ rloc16: number;
65
+ preference: number;
66
+ }
67
+
68
+ export interface BorderRouterEntry {
69
+ rloc16: number;
70
+ flags: number;
71
+ }
72
+
73
+ export interface NetworkDataPrefix {
74
+ domainId: number;
75
+ prefixLength: number;
76
+ prefix: Uint8Array;
77
+ hasRoutes: HasRouteEntry[];
78
+ borderRouters: BorderRouterEntry[];
79
+ }
80
+
81
+ export interface NetworkDataServer {
82
+ rloc16: number;
83
+ serverData: Uint8Array;
84
+ }
85
+
86
+ export interface NetworkDataService {
87
+ serviceId: number;
88
+ threadEnterprise: boolean;
89
+ enterpriseNumber?: number;
90
+ serviceData: Uint8Array;
91
+ servers: NetworkDataServer[];
92
+ }
93
+
94
+ export interface ThreadNetworkData {
95
+ entries: NetworkDataEntry[];
96
+ prefixes: NetworkDataPrefix[];
97
+ services: NetworkDataService[];
98
+ raw: Uint8Array;
99
+ }
100
+
101
+ const enum NetworkDataTlvType {
102
+ HasRoute = 0,
103
+ Prefix = 1,
104
+ BorderRouter = 2,
105
+ Context = 3,
106
+ Commissioning = 4,
107
+ Service = 5,
108
+ Server = 6,
109
+ }
110
+
111
+ const HAS_ROUTE_ENTRY_BYTES = 3;
112
+ const BORDER_ROUTER_ENTRY_BYTES = 4;
113
+ const HAS_ROUTE_PREFERENCE_SHIFT = 6;
114
+ const SERVICE_THREAD_FLAG = 0x80;
115
+ const SERVICE_ID_MASK = 0x0f;
116
+
117
+ function walkTlvs(blob: Uint8Array): NetworkDataEntry[] {
118
+ const out = new Array<NetworkDataEntry>();
119
+ let offset = 0;
120
+ while (offset < blob.length) {
121
+ if (offset + 2 > blob.length) {
122
+ throw new ThreadDiagError(`Truncated Network Data TLV header at offset ${offset}`);
123
+ }
124
+ const typeByte = blob[offset];
125
+ const length = blob[offset + 1];
126
+ const valueStart = offset + 2;
127
+ const valueEnd = valueStart + length;
128
+ if (valueEnd > blob.length) {
129
+ throw new ThreadDiagError(
130
+ `Truncated Network Data TLV value at offset ${offset} (type=${typeByte >> 1}, length=${length})`,
131
+ );
132
+ }
133
+ out.push({ type: typeByte >> 1, stable: (typeByte & 0x1) !== 0, value: blob.slice(valueStart, valueEnd) });
134
+ offset = valueEnd;
135
+ }
136
+ return out;
137
+ }
138
+
139
+ function parseHasRoutes(value: Uint8Array): HasRouteEntry[] {
140
+ const out = new Array<HasRouteEntry>();
141
+ for (let i = 0; i + HAS_ROUTE_ENTRY_BYTES <= value.length; i += HAS_ROUTE_ENTRY_BYTES) {
142
+ out.push({
143
+ rloc16: (value[i] << 8) | value[i + 1],
144
+ preference: value[i + 2] >> HAS_ROUTE_PREFERENCE_SHIFT,
145
+ });
146
+ }
147
+ return out;
148
+ }
149
+
150
+ function parseBorderRouters(value: Uint8Array): BorderRouterEntry[] {
151
+ const out = new Array<BorderRouterEntry>();
152
+ for (let i = 0; i + BORDER_ROUTER_ENTRY_BYTES <= value.length; i += BORDER_ROUTER_ENTRY_BYTES) {
153
+ out.push({
154
+ rloc16: (value[i] << 8) | value[i + 1],
155
+ flags: (value[i + 2] << 8) | value[i + 3],
156
+ });
157
+ }
158
+ return out;
159
+ }
160
+
161
+ function parsePrefix(value: Uint8Array): NetworkDataPrefix {
162
+ const domainId = value[0];
163
+ const prefixLength = value[1];
164
+ const prefixBytes = Math.ceil(prefixLength / 8);
165
+ const prefix = value.slice(2, 2 + prefixBytes);
166
+
167
+ const hasRoutes = new Array<HasRouteEntry>();
168
+ const borderRouters = new Array<BorderRouterEntry>();
169
+ for (const sub of walkTlvs(value.subarray(2 + prefixBytes))) {
170
+ if (sub.type === NetworkDataTlvType.HasRoute) {
171
+ hasRoutes.push(...parseHasRoutes(sub.value));
172
+ } else if (sub.type === NetworkDataTlvType.BorderRouter) {
173
+ borderRouters.push(...parseBorderRouters(sub.value));
174
+ }
175
+ }
176
+ return { domainId, prefixLength, prefix, hasRoutes, borderRouters };
177
+ }
178
+
179
+ function parseService(value: Uint8Array): NetworkDataService {
180
+ const flags = value[0];
181
+ const threadEnterprise = (flags & SERVICE_THREAD_FLAG) !== 0;
182
+ const serviceId = flags & SERVICE_ID_MASK;
183
+
184
+ let offset = 1;
185
+ let enterpriseNumber: number | undefined;
186
+ if (!threadEnterprise) {
187
+ if (value.length < 5) {
188
+ throw new ThreadDiagError(`Truncated Service TLV: ${value.length} bytes, need 5 for enterprise number`);
189
+ }
190
+ enterpriseNumber = ((value[1] << 24) | (value[2] << 16) | (value[3] << 8) | value[4]) >>> 0;
191
+ offset = 5;
192
+ }
193
+ if (offset >= value.length) {
194
+ throw new ThreadDiagError(`Truncated Service TLV: missing service data length at offset ${offset}`);
195
+ }
196
+ const serviceDataLength = value[offset];
197
+ offset += 1;
198
+ const serviceData = value.slice(offset, offset + serviceDataLength);
199
+ offset += serviceDataLength;
200
+
201
+ const servers = new Array<NetworkDataServer>();
202
+ for (const sub of walkTlvs(value.subarray(offset))) {
203
+ if (sub.type === NetworkDataTlvType.Server) {
204
+ if (sub.value.length < 2) continue;
205
+ servers.push({ rloc16: (sub.value[0] << 8) | sub.value[1], serverData: sub.value.slice(2) });
206
+ }
207
+ }
208
+ return { serviceId, threadEnterprise, enterpriseNumber, serviceData, servers };
209
+ }
210
+
211
+ export namespace NetworkData {
212
+ export function decode(value: Uint8Array): ThreadNetworkData {
213
+ const raw = value.slice();
214
+
215
+ let entries: NetworkDataEntry[];
216
+ try {
217
+ entries = walkTlvs(value);
218
+ } catch {
219
+ // A truncated top-level stream must not abort the whole node's diagnostic
220
+ // decode; `raw` preserves the bytes for any consumer that wants them.
221
+ return { entries: [], prefixes: [], services: [], raw };
222
+ }
223
+
224
+ const prefixes = new Array<NetworkDataPrefix>();
225
+ const services = new Array<NetworkDataService>();
226
+ for (const entry of entries) {
227
+ // Structured sub-TLV parsing is best-effort: a malformed inner Prefix/Service
228
+ // must not discard the top-level entry list or the always-present `raw`.
229
+ try {
230
+ if (entry.type === NetworkDataTlvType.Prefix) {
231
+ prefixes.push(parsePrefix(entry.value));
232
+ } else if (entry.type === NetworkDataTlvType.Service) {
233
+ services.push(parseService(entry.value));
234
+ }
235
+ } catch {
236
+ // Leave this entry as a raw `entries[]` item; `raw` preserves its bytes.
237
+ }
238
+ }
239
+ return { entries, prefixes, services, raw };
240
+ }
241
+ }
@@ -0,0 +1,146 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2026 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { InternalError } from "@matter/general";
8
+ import { ThreadDiagError } from "../../diagnostic/errors.js";
9
+
10
+ /**
11
+ * Small fixed-size primitive Network Diagnostic TLVs.
12
+ *
13
+ * | TLV | Type | Layout |
14
+ * |-----|------|--------|
15
+ * | ExtMacAddress | 0 | 8-byte EUI-64, network byte order |
16
+ * | Address16 | 1 | uint16 BE — RLOC16 |
17
+ * | BatteryLevel | 14 | uint8 (0..100 percent) |
18
+ * | SupplyVoltage | 15 | uint16 BE millivolts |
19
+ * | ChannelPages | 17 | variable-length byte array of supported channel pages |
20
+ * | MaxChildTimeout | 19 | uint32 BE seconds |
21
+ * | Eui64 | 23 | 8-byte EUI-64 (factory-assigned, distinct from ExtMacAddress) |
22
+ *
23
+ * Layouts mirror OpenThread `network_diagnostic_tlvs.hpp` typedefs and the
24
+ * `Client::GetNextDiagTlv` parser.
25
+ */
26
+
27
+ function eui64Decode(value: Uint8Array, name: string): Uint8Array {
28
+ if (value.length !== 8) {
29
+ throw new ThreadDiagError(`${name} TLV must be 8 bytes, got ${value.length}`);
30
+ }
31
+ return value.slice();
32
+ }
33
+
34
+ function eui64Encode(addr: Uint8Array, name: string): Uint8Array {
35
+ if (addr.length !== 8) {
36
+ throw new InternalError(`${name} must be 8 bytes, got ${addr.length}`);
37
+ }
38
+ return addr.slice();
39
+ }
40
+
41
+ export namespace ExtMacAddress {
42
+ export function decode(value: Uint8Array): Uint8Array {
43
+ return eui64Decode(value, "ExtMacAddress");
44
+ }
45
+
46
+ export function encode(addr: Uint8Array): Uint8Array {
47
+ return eui64Encode(addr, "ExtMacAddress");
48
+ }
49
+ }
50
+
51
+ export namespace Eui64 {
52
+ export function decode(value: Uint8Array): Uint8Array {
53
+ return eui64Decode(value, "Eui64");
54
+ }
55
+
56
+ export function encode(addr: Uint8Array): Uint8Array {
57
+ return eui64Encode(addr, "Eui64");
58
+ }
59
+ }
60
+
61
+ export namespace Address16 {
62
+ export function decode(value: Uint8Array): number {
63
+ if (value.length !== 2) {
64
+ throw new ThreadDiagError(`Address16 TLV must be 2 bytes, got ${value.length}`);
65
+ }
66
+ return (value[0] << 8) | value[1];
67
+ }
68
+
69
+ export function encode(rloc16: number): Uint8Array {
70
+ if (!Number.isInteger(rloc16) || rloc16 < 0 || rloc16 > 0xffff) {
71
+ throw new InternalError(`Address16 out of range: ${rloc16}`);
72
+ }
73
+ return new Uint8Array([(rloc16 >> 8) & 0xff, rloc16 & 0xff]);
74
+ }
75
+ }
76
+
77
+ export namespace BatteryLevel {
78
+ export function decode(value: Uint8Array): number {
79
+ if (value.length !== 1) {
80
+ throw new ThreadDiagError(`BatteryLevel TLV must be 1 byte, got ${value.length}`);
81
+ }
82
+ return value[0];
83
+ }
84
+
85
+ export function encode(percent: number): Uint8Array {
86
+ if (!Number.isInteger(percent) || percent < 0 || percent > 0xff) {
87
+ throw new InternalError(`BatteryLevel out of range: ${percent}`);
88
+ }
89
+ return new Uint8Array([percent]);
90
+ }
91
+ }
92
+
93
+ export namespace SupplyVoltage {
94
+ export function decode(value: Uint8Array): number {
95
+ if (value.length !== 2) {
96
+ throw new ThreadDiagError(`SupplyVoltage TLV must be 2 bytes, got ${value.length}`);
97
+ }
98
+ return (value[0] << 8) | value[1];
99
+ }
100
+
101
+ export function encode(millivolts: number): Uint8Array {
102
+ if (!Number.isInteger(millivolts) || millivolts < 0 || millivolts > 0xffff) {
103
+ throw new InternalError(`SupplyVoltage out of range: ${millivolts}`);
104
+ }
105
+ return new Uint8Array([(millivolts >> 8) & 0xff, millivolts & 0xff]);
106
+ }
107
+ }
108
+
109
+ export namespace MaxChildTimeout {
110
+ export function decode(value: Uint8Array): number {
111
+ if (value.length !== 4) {
112
+ throw new ThreadDiagError(`MaxChildTimeout TLV must be 4 bytes, got ${value.length}`);
113
+ }
114
+ return ((value[0] << 24) | (value[1] << 16) | (value[2] << 8) | value[3]) >>> 0;
115
+ }
116
+
117
+ export function encode(seconds: number): Uint8Array {
118
+ if (!Number.isInteger(seconds) || seconds < 0 || seconds > 0xffffffff) {
119
+ throw new InternalError(`MaxChildTimeout out of range: ${seconds}`);
120
+ }
121
+ return new Uint8Array([
122
+ (seconds >>> 24) & 0xff,
123
+ (seconds >>> 16) & 0xff,
124
+ (seconds >>> 8) & 0xff,
125
+ seconds & 0xff,
126
+ ]);
127
+ }
128
+ }
129
+
130
+ export namespace ChannelPages {
131
+ export function decode(value: Uint8Array): number[] {
132
+ return Array.from(value);
133
+ }
134
+
135
+ export function encode(pages: ReadonlyArray<number>): Uint8Array {
136
+ const out = new Uint8Array(pages.length);
137
+ for (let i = 0; i < pages.length; i++) {
138
+ const p = pages[i];
139
+ if (!Number.isInteger(p) || p < 0 || p > 0xff) {
140
+ throw new InternalError(`ChannelPages entry out of range: ${p}`);
141
+ }
142
+ out[i] = p;
143
+ }
144
+ return out;
145
+ }
146
+ }
@@ -0,0 +1,118 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2026 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { InternalError } from "@matter/general";
8
+ import { ThreadDiagError } from "../../diagnostic/errors.js";
9
+
10
+ /**
11
+ * Decoded Route64 TLV (Network Diagnostic TLV type 5).
12
+ *
13
+ * Layout per OpenThread `src/core/thread/mle_tlvs.hpp` `RouteTlv` and
14
+ * `mle_types.hpp` `RouterIdMask`:
15
+ *
16
+ * [0] uint8 ID Sequence
17
+ * [1..8] bytes[8] Router ID Mask, big-endian bit order: router 0 is the
18
+ * MSB of byte 0 (mask = 0x80 >> (id % 8)).
19
+ * [9..] uint8[N] N route-data bytes, one per allocated router (in
20
+ * ascending router-id order).
21
+ *
22
+ * Each route-data byte:
23
+ * bits 7..6 = link quality out (0..3)
24
+ * bits 5..4 = link quality in (0..3)
25
+ * bits 3..0 = route cost (0..15)
26
+ *
27
+ * Note: this is the short (1-byte-per-entry) form. OpenThread's
28
+ * `MLE_LONG_ROUTES` build-time option uses 1.5 bytes per entry — we have
29
+ * never observed it in real Thread 1.x deployments and it is not required
30
+ * for our default set.
31
+ */
32
+ export interface Route64Entry {
33
+ routerId: number;
34
+ linkQualityIn: number;
35
+ linkQualityOut: number;
36
+ routeCost: number;
37
+ }
38
+
39
+ export interface Route64 {
40
+ idSequence: number;
41
+ entries: Route64Entry[];
42
+ }
43
+
44
+ const MASK_BYTES = 8;
45
+ const HEADER_BYTES = 1 + MASK_BYTES;
46
+ const MAX_ROUTER_ID = 62; // OpenThread `kMaxRouterId`.
47
+
48
+ const LINK_QUALITY_OUT_MASK = 0xc0;
49
+ const LINK_QUALITY_OUT_SHIFT = 6;
50
+ const LINK_QUALITY_IN_MASK = 0x30;
51
+ const LINK_QUALITY_IN_SHIFT = 4;
52
+ const ROUTE_COST_MASK = 0x0f;
53
+
54
+ function isRouterIdSet(mask: Uint8Array, routerId: number): boolean {
55
+ return (mask[routerId >> 3] & (0x80 >> (routerId & 0x7))) !== 0;
56
+ }
57
+
58
+ function setRouterIdBit(mask: Uint8Array, routerId: number): void {
59
+ mask[routerId >> 3] |= 0x80 >> (routerId & 0x7);
60
+ }
61
+
62
+ export namespace Route64 {
63
+ export function decode(value: Uint8Array): Route64 {
64
+ if (value.length < HEADER_BYTES) {
65
+ throw new ThreadDiagError(`Route64 TLV too short: ${value.length} bytes (need >=${HEADER_BYTES})`);
66
+ }
67
+ const idSequence = value[0];
68
+ const mask = value.subarray(1, HEADER_BYTES);
69
+
70
+ const allocatedIds = new Array<number>();
71
+ for (let id = 0; id <= MAX_ROUTER_ID; id++) {
72
+ if (isRouterIdSet(mask, id)) allocatedIds.push(id);
73
+ }
74
+
75
+ if (value.length !== HEADER_BYTES + allocatedIds.length) {
76
+ throw new ThreadDiagError(
77
+ `Route64 TLV size mismatch: ${value.length} bytes for ${allocatedIds.length} allocated routers`,
78
+ );
79
+ }
80
+
81
+ const entries = new Array<Route64Entry>();
82
+ for (let i = 0; i < allocatedIds.length; i++) {
83
+ const data = value[HEADER_BYTES + i];
84
+ entries.push({
85
+ routerId: allocatedIds[i],
86
+ linkQualityOut: (data & LINK_QUALITY_OUT_MASK) >> LINK_QUALITY_OUT_SHIFT,
87
+ linkQualityIn: (data & LINK_QUALITY_IN_MASK) >> LINK_QUALITY_IN_SHIFT,
88
+ routeCost: data & ROUTE_COST_MASK,
89
+ });
90
+ }
91
+ return { idSequence, entries };
92
+ }
93
+
94
+ export function encode(route: Route64): Uint8Array {
95
+ const sortedEntries = [...route.entries].sort((a, b) => a.routerId - b.routerId);
96
+
97
+ const out = new Uint8Array(HEADER_BYTES + sortedEntries.length);
98
+ out[0] = route.idSequence & 0xff;
99
+ const mask = out.subarray(1, HEADER_BYTES);
100
+
101
+ for (let i = 0; i < sortedEntries.length; i++) {
102
+ const e = sortedEntries[i];
103
+ if (!Number.isInteger(e.routerId) || e.routerId < 0 || e.routerId > MAX_ROUTER_ID) {
104
+ throw new InternalError(`Route64 router ID out of range: ${e.routerId}`);
105
+ }
106
+ if (i > 0 && sortedEntries[i - 1].routerId === e.routerId) {
107
+ throw new InternalError(`Route64 duplicate router ID: ${e.routerId}`);
108
+ }
109
+ setRouterIdBit(mask, e.routerId);
110
+
111
+ const lqOut = e.linkQualityOut & 0x3;
112
+ const lqIn = e.linkQualityIn & 0x3;
113
+ const cost = e.routeCost & 0xf;
114
+ out[HEADER_BYTES + i] = (lqOut << LINK_QUALITY_OUT_SHIFT) | (lqIn << LINK_QUALITY_IN_SHIFT) | cost;
115
+ }
116
+ return out;
117
+ }
118
+ }
@@ -0,0 +1,85 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2026 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ /**
8
+ * One decoded Router Neighbor entry from Network Diagnostic TLV type 31.
9
+ *
10
+ * Per-entry layout from OpenThread `src/core/thread/net_diag_tlvs.hpp`
11
+ * `RouterNeighborTlvValue` (packed struct, ENTRY_BYTES = 24 bytes total):
12
+ *
13
+ * [0] uint8 mFlags — bit 7 = kFlagsTrackErrRate
14
+ * [1..2] uint16 BE mRloc16
15
+ * [3..10] uint8[8] mExtAddress
16
+ * [11..12] uint16 BE mVersion
17
+ * [13..16] uint32 BE mConnectionTime (seconds since link establishment)
18
+ * [17] uint8 mLinkMargin (dB)
19
+ * [18] int8 mAverageRssi (dBm; 127 = not available / unknown)
20
+ * [19] int8 mLastRssi (dBm; 127 = not available / unknown)
21
+ * [20..21] uint16 BE mFrameErrorRate (0x0000=0%, 0xffff=100%; valid only when supportsErrorRate=true)
22
+ * [22..23] uint16 BE mMessageErrorRate (0x0000=0%, 0xffff=100%; valid only when supportsErrorRate=true)
23
+ */
24
+ export interface RouterNeighborEntry {
25
+ rloc16: number;
26
+ /** 8-byte IEEE EUI-64 extended address. */
27
+ extAddress: Uint8Array;
28
+ version: number;
29
+ /** Seconds elapsed since link establishment. */
30
+ connectionTime: number;
31
+ /** Link margin in dB. */
32
+ linkMargin: number;
33
+ /** Whether this node tracks frame/message error rates (mFlags bit 7). */
34
+ supportsErrorRate: boolean;
35
+ /** Average RSSI in dBm. 127 when not available or unknown. */
36
+ averageRssi: number;
37
+ /** RSSI of the last received frame in dBm. 127 when not available or unknown. */
38
+ lastRssi: number;
39
+ /** Frame error rate as a raw uint16 (0x0000=0%, 0xffff=100%). Valid when supportsErrorRate=true. */
40
+ frameErrorRate: number;
41
+ /** IPv6-message error rate as a raw uint16 (0x0000=0%, 0xffff=100%). Valid when supportsErrorRate=true. */
42
+ messageErrorRate: number;
43
+ }
44
+
45
+ // Per OpenThread `net_diag_tlvs.hpp` `RouterNeighborTlvValue` (24-byte packed struct).
46
+ const ENTRY_BYTES = 24;
47
+ const FLAGS_TRACK_ERR_RATE = 0x80; // kFlagsTrackErrRate = 1 << 7
48
+
49
+ export namespace RouterNeighbor {
50
+ export function decode(value: Uint8Array): RouterNeighborEntry[] {
51
+ const entryCount = Math.floor(value.length / ENTRY_BYTES);
52
+ const entries = new Array<RouterNeighborEntry>();
53
+
54
+ for (let i = 0; i < entryCount; i++) {
55
+ const off = i * ENTRY_BYTES;
56
+ const flags = value[off];
57
+ const rloc16 = (value[off + 1] << 8) | value[off + 2];
58
+ const extAddress = value.slice(off + 3, off + 11);
59
+ const version = (value[off + 11] << 8) | value[off + 12];
60
+ const connectionTime =
61
+ ((value[off + 13] << 24) | (value[off + 14] << 16) | (value[off + 15] << 8) | value[off + 16]) >>> 0;
62
+ const linkMargin = value[off + 17];
63
+ // int8 signed decode: values >= 128 are negative (two's complement).
64
+ const averageRssi = value[off + 18] > 127 ? value[off + 18] - 256 : value[off + 18];
65
+ const lastRssi = value[off + 19] > 127 ? value[off + 19] - 256 : value[off + 19];
66
+ const frameErrorRate = (value[off + 20] << 8) | value[off + 21];
67
+ const messageErrorRate = (value[off + 22] << 8) | value[off + 23];
68
+
69
+ entries.push({
70
+ rloc16,
71
+ extAddress,
72
+ version,
73
+ connectionTime,
74
+ linkMargin,
75
+ supportsErrorRate: (flags & FLAGS_TRACK_ERR_RATE) !== 0,
76
+ averageRssi,
77
+ lastRssi,
78
+ frameErrorRate,
79
+ messageErrorRate,
80
+ });
81
+ }
82
+
83
+ return entries;
84
+ }
85
+ }
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2026 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { InternalError } from "@matter/general";
8
+ import { ThreadDiagError } from "../../diagnostic/errors.js";
9
+
10
+ /**
11
+ * Decoded Timeout TLV (Network Diagnostic TLV type 3).
12
+ *
13
+ * Big-endian uint32 — maximum polling time period (seconds) for SEDs.
14
+ * Source: OpenThread `network_diagnostic_tlvs.hpp` `TimeoutTlv` and
15
+ * `network_diagnostic.cpp` parser.
16
+ */
17
+ export namespace Timeout {
18
+ export function decode(value: Uint8Array): number {
19
+ if (value.length !== 4) {
20
+ throw new ThreadDiagError(`Timeout TLV must be 4 bytes, got ${value.length}`);
21
+ }
22
+ return ((value[0] << 24) | (value[1] << 16) | (value[2] << 8) | value[3]) >>> 0;
23
+ }
24
+
25
+ export function encode(seconds: number): Uint8Array {
26
+ if (!Number.isInteger(seconds) || seconds < 0 || seconds > 0xffffffff) {
27
+ throw new InternalError(`Timeout TLV out of range: ${seconds}`);
28
+ }
29
+ return new Uint8Array([
30
+ (seconds >>> 24) & 0xff,
31
+ (seconds >>> 16) & 0xff,
32
+ (seconds >>> 8) & 0xff,
33
+ seconds & 0xff,
34
+ ]);
35
+ }
36
+ }