@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.
- package/README.md +192 -0
- package/dist/cjs/coap/CoapClient.d.ts +33 -0
- package/dist/cjs/coap/CoapClient.d.ts.map +1 -0
- package/dist/cjs/coap/CoapClient.js +281 -0
- package/dist/cjs/coap/CoapClient.js.map +6 -0
- package/dist/cjs/coap/CoapMessage.d.ts +23 -0
- package/dist/cjs/coap/CoapMessage.d.ts.map +1 -0
- package/dist/cjs/coap/CoapMessage.js +182 -0
- package/dist/cjs/coap/CoapMessage.js.map +6 -0
- package/dist/cjs/coap/index.d.ts +8 -0
- package/dist/cjs/coap/index.d.ts.map +1 -0
- package/dist/cjs/coap/index.js +31 -0
- package/dist/cjs/coap/index.js.map +6 -0
- package/dist/cjs/commissioner/Commissioner.d.ts +89 -0
- package/dist/cjs/commissioner/Commissioner.d.ts.map +1 -0
- package/dist/cjs/commissioner/Commissioner.js +188 -0
- package/dist/cjs/commissioner/Commissioner.js.map +6 -0
- package/dist/cjs/commissioner/LeadKa.d.ts +17 -0
- package/dist/cjs/commissioner/LeadKa.d.ts.map +1 -0
- package/dist/cjs/commissioner/LeadKa.js +63 -0
- package/dist/cjs/commissioner/LeadKa.js.map +6 -0
- package/dist/cjs/commissioner/LeadPet.d.ts +14 -0
- package/dist/cjs/commissioner/LeadPet.d.ts.map +1 -0
- package/dist/cjs/commissioner/LeadPet.js +66 -0
- package/dist/cjs/commissioner/LeadPet.js.map +6 -0
- package/dist/cjs/commissioner/index.d.ts +12 -0
- package/dist/cjs/commissioner/index.d.ts.map +1 -0
- package/dist/cjs/commissioner/index.js +38 -0
- package/dist/cjs/commissioner/index.js.map +6 -0
- package/dist/cjs/credentials/ThreadCredentialsRegistry.d.ts +50 -0
- package/dist/cjs/credentials/ThreadCredentialsRegistry.d.ts.map +1 -0
- package/dist/cjs/credentials/ThreadCredentialsRegistry.js +119 -0
- package/dist/cjs/credentials/ThreadCredentialsRegistry.js.map +6 -0
- package/dist/cjs/credentials/ThreadNetworkCredentials.d.ts +26 -0
- package/dist/cjs/credentials/ThreadNetworkCredentials.d.ts.map +1 -0
- package/dist/cjs/credentials/ThreadNetworkCredentials.js +22 -0
- package/dist/cjs/credentials/ThreadNetworkCredentials.js.map +6 -0
- package/dist/cjs/credentials/index.d.ts +8 -0
- package/dist/cjs/credentials/index.d.ts.map +1 -0
- package/dist/cjs/credentials/index.js +30 -0
- package/dist/cjs/credentials/index.js.map +6 -0
- package/dist/cjs/crypto/AesCmacPrf128.d.ts +24 -0
- package/dist/cjs/crypto/AesCmacPrf128.d.ts.map +1 -0
- package/dist/cjs/crypto/AesCmacPrf128.js +107 -0
- package/dist/cjs/crypto/AesCmacPrf128.js.map +6 -0
- package/dist/cjs/crypto/Pbkdf2AesCmac.d.ts +18 -0
- package/dist/cjs/crypto/Pbkdf2AesCmac.d.ts.map +1 -0
- package/dist/cjs/crypto/Pbkdf2AesCmac.js +62 -0
- package/dist/cjs/crypto/Pbkdf2AesCmac.js.map +6 -0
- package/dist/cjs/crypto/Pskc.d.ts +21 -0
- package/dist/cjs/crypto/Pskc.d.ts.map +1 -0
- package/dist/cjs/crypto/Pskc.js +69 -0
- package/dist/cjs/crypto/Pskc.js.map +6 -0
- package/dist/cjs/crypto/index.d.ts +9 -0
- package/dist/cjs/crypto/index.d.ts.map +1 -0
- package/dist/cjs/crypto/index.js +35 -0
- package/dist/cjs/crypto/index.js.map +6 -0
- package/dist/cjs/dataset/OperationalDataset.d.ts +74 -0
- package/dist/cjs/dataset/OperationalDataset.d.ts.map +1 -0
- package/dist/cjs/dataset/OperationalDataset.js +244 -0
- package/dist/cjs/dataset/OperationalDataset.js.map +6 -0
- package/dist/cjs/dataset/SecurityPolicy.d.ts +22 -0
- package/dist/cjs/dataset/SecurityPolicy.d.ts.map +1 -0
- package/dist/cjs/dataset/SecurityPolicy.js +59 -0
- package/dist/cjs/dataset/SecurityPolicy.js.map +6 -0
- package/dist/cjs/dataset/errors.d.ts +10 -0
- package/dist/cjs/dataset/errors.d.ts.map +1 -0
- package/dist/cjs/dataset/errors.js +32 -0
- package/dist/cjs/dataset/errors.js.map +6 -0
- package/dist/cjs/dataset/index.d.ts +9 -0
- package/dist/cjs/dataset/index.d.ts.map +1 -0
- package/dist/cjs/dataset/index.js +36 -0
- package/dist/cjs/dataset/index.js.map +6 -0
- package/dist/cjs/dataset/meshcopTlvTypes.d.ts +61 -0
- package/dist/cjs/dataset/meshcopTlvTypes.d.ts.map +1 -0
- package/dist/cjs/dataset/meshcopTlvTypes.js +82 -0
- package/dist/cjs/dataset/meshcopTlvTypes.js.map +6 -0
- package/dist/cjs/diagnostic/DefaultTlvSet.d.ts +8 -0
- package/dist/cjs/diagnostic/DefaultTlvSet.d.ts.map +1 -0
- package/dist/cjs/diagnostic/DefaultTlvSet.js +52 -0
- package/dist/cjs/diagnostic/DefaultTlvSet.js.map +6 -0
- package/dist/cjs/diagnostic/DiagnosticResponse.d.ts +47 -0
- package/dist/cjs/diagnostic/DiagnosticResponse.d.ts.map +1 -0
- package/dist/cjs/diagnostic/DiagnosticResponse.js +22 -0
- package/dist/cjs/diagnostic/DiagnosticResponse.js.map +6 -0
- package/dist/cjs/diagnostic/DiagnosticSource.d.ts +64 -0
- package/dist/cjs/diagnostic/DiagnosticSource.d.ts.map +1 -0
- package/dist/cjs/diagnostic/DiagnosticSource.js +34 -0
- package/dist/cjs/diagnostic/DiagnosticSource.js.map +6 -0
- package/dist/cjs/diagnostic/MeshCopDiagnosticSource.d.ts +78 -0
- package/dist/cjs/diagnostic/MeshCopDiagnosticSource.d.ts.map +1 -0
- package/dist/cjs/diagnostic/MeshCopDiagnosticSource.js +654 -0
- package/dist/cjs/diagnostic/MeshCopDiagnosticSource.js.map +6 -0
- package/dist/cjs/diagnostic/connectMeshcop.d.ts +38 -0
- package/dist/cjs/diagnostic/connectMeshcop.d.ts.map +1 -0
- package/dist/cjs/diagnostic/connectMeshcop.js +100 -0
- package/dist/cjs/diagnostic/connectMeshcop.js.map +6 -0
- package/dist/cjs/diagnostic/errors.d.ts +10 -0
- package/dist/cjs/diagnostic/errors.d.ts.map +1 -0
- package/dist/cjs/diagnostic/errors.js +32 -0
- package/dist/cjs/diagnostic/errors.js.map +6 -0
- package/dist/cjs/diagnostic/index.d.ts +13 -0
- package/dist/cjs/diagnostic/index.d.ts.map +1 -0
- package/dist/cjs/diagnostic/index.js +35 -0
- package/dist/cjs/diagnostic/index.js.map +6 -0
- package/dist/cjs/discovery/BorderRouterEntry.d.ts +54 -0
- package/dist/cjs/discovery/BorderRouterEntry.d.ts.map +1 -0
- package/dist/cjs/discovery/BorderRouterEntry.js +22 -0
- package/dist/cjs/discovery/BorderRouterEntry.js.map +6 -0
- package/dist/cjs/discovery/BorderRouterRegistry.d.ts +36 -0
- package/dist/cjs/discovery/BorderRouterRegistry.d.ts.map +1 -0
- package/dist/cjs/discovery/BorderRouterRegistry.js +522 -0
- package/dist/cjs/discovery/BorderRouterRegistry.js.map +6 -0
- package/dist/cjs/discovery/DnssdLikeTypes.d.ts +50 -0
- package/dist/cjs/discovery/DnssdLikeTypes.d.ts.map +1 -0
- package/dist/cjs/discovery/DnssdLikeTypes.js +22 -0
- package/dist/cjs/discovery/DnssdLikeTypes.js.map +6 -0
- package/dist/cjs/discovery/index.d.ts +8 -0
- package/dist/cjs/discovery/index.d.ts.map +1 -0
- package/dist/cjs/discovery/index.js +30 -0
- package/dist/cjs/discovery/index.js.map +6 -0
- package/dist/cjs/dtls/channel/DtlsChannel.d.ts +39 -0
- package/dist/cjs/dtls/channel/DtlsChannel.d.ts.map +1 -0
- package/dist/cjs/dtls/channel/DtlsChannel.js +32 -0
- package/dist/cjs/dtls/channel/DtlsChannel.js.map +6 -0
- package/dist/cjs/dtls/channel/DtlsConnectOpts.d.ts +38 -0
- package/dist/cjs/dtls/channel/DtlsConnectOpts.d.ts.map +1 -0
- package/dist/cjs/dtls/channel/DtlsConnectOpts.js +22 -0
- package/dist/cjs/dtls/channel/DtlsConnectOpts.js.map +6 -0
- package/dist/cjs/dtls/channel/DtlsRetransmitTimer.d.ts +43 -0
- package/dist/cjs/dtls/channel/DtlsRetransmitTimer.d.ts.map +1 -0
- package/dist/cjs/dtls/channel/DtlsRetransmitTimer.js +97 -0
- package/dist/cjs/dtls/channel/DtlsRetransmitTimer.js.map +6 -0
- package/dist/cjs/dtls/channel/NobleDtlsChannel.d.ts +35 -0
- package/dist/cjs/dtls/channel/NobleDtlsChannel.d.ts.map +1 -0
- package/dist/cjs/dtls/channel/NobleDtlsChannel.js +440 -0
- package/dist/cjs/dtls/channel/NobleDtlsChannel.js.map +6 -0
- package/dist/cjs/dtls/channel/connectDtls.d.ts +15 -0
- package/dist/cjs/dtls/channel/connectDtls.d.ts.map +1 -0
- package/dist/cjs/dtls/channel/connectDtls.js +41 -0
- package/dist/cjs/dtls/channel/connectDtls.js.map +6 -0
- package/dist/cjs/dtls/channel/index.d.ts +14 -0
- package/dist/cjs/dtls/channel/index.d.ts.map +1 -0
- package/dist/cjs/dtls/channel/index.js +32 -0
- package/dist/cjs/dtls/channel/index.js.map +6 -0
- package/dist/cjs/dtls/ecjpake/EcJpakePms.d.ts +35 -0
- package/dist/cjs/dtls/ecjpake/EcJpakePms.d.ts.map +1 -0
- package/dist/cjs/dtls/ecjpake/EcJpakePms.js +61 -0
- package/dist/cjs/dtls/ecjpake/EcJpakePms.js.map +6 -0
- package/dist/cjs/dtls/ecjpake/EcJpakeRound.d.ts +119 -0
- package/dist/cjs/dtls/ecjpake/EcJpakeRound.d.ts.map +1 -0
- package/dist/cjs/dtls/ecjpake/EcJpakeRound.js +248 -0
- package/dist/cjs/dtls/ecjpake/EcJpakeRound.js.map +6 -0
- package/dist/cjs/dtls/ecjpake/SchnorrZkp.d.ts +60 -0
- package/dist/cjs/dtls/ecjpake/SchnorrZkp.d.ts.map +1 -0
- package/dist/cjs/dtls/ecjpake/SchnorrZkp.js +162 -0
- package/dist/cjs/dtls/ecjpake/SchnorrZkp.js.map +6 -0
- package/dist/cjs/dtls/ecjpake/index.d.ts +28 -0
- package/dist/cjs/dtls/ecjpake/index.d.ts.map +1 -0
- package/dist/cjs/dtls/ecjpake/index.js +34 -0
- package/dist/cjs/dtls/ecjpake/index.js.map +6 -0
- package/dist/cjs/dtls/handshake/ChangeCipherSpec.d.ts +23 -0
- package/dist/cjs/dtls/handshake/ChangeCipherSpec.d.ts.map +1 -0
- package/dist/cjs/dtls/handshake/ChangeCipherSpec.js +41 -0
- package/dist/cjs/dtls/handshake/ChangeCipherSpec.js.map +6 -0
- package/dist/cjs/dtls/handshake/ClientHelloMessage.d.ts +34 -0
- package/dist/cjs/dtls/handshake/ClientHelloMessage.d.ts.map +1 -0
- package/dist/cjs/dtls/handshake/ClientHelloMessage.js +117 -0
- package/dist/cjs/dtls/handshake/ClientHelloMessage.js.map +6 -0
- package/dist/cjs/dtls/handshake/ClientKeyExchangeMessage.d.ts +22 -0
- package/dist/cjs/dtls/handshake/ClientKeyExchangeMessage.d.ts.map +1 -0
- package/dist/cjs/dtls/handshake/ClientKeyExchangeMessage.js +35 -0
- package/dist/cjs/dtls/handshake/ClientKeyExchangeMessage.js.map +6 -0
- package/dist/cjs/dtls/handshake/DtlsClient.d.ts +57 -0
- package/dist/cjs/dtls/handshake/DtlsClient.d.ts.map +1 -0
- package/dist/cjs/dtls/handshake/DtlsClient.js +502 -0
- package/dist/cjs/dtls/handshake/DtlsClient.js.map +6 -0
- package/dist/cjs/dtls/handshake/FinishedMessage.d.ts +13 -0
- package/dist/cjs/dtls/handshake/FinishedMessage.d.ts.map +1 -0
- package/dist/cjs/dtls/handshake/FinishedMessage.js +48 -0
- package/dist/cjs/dtls/handshake/FinishedMessage.js.map +6 -0
- package/dist/cjs/dtls/handshake/HandshakeMessage.d.ts +58 -0
- package/dist/cjs/dtls/handshake/HandshakeMessage.d.ts.map +1 -0
- package/dist/cjs/dtls/handshake/HandshakeMessage.js +117 -0
- package/dist/cjs/dtls/handshake/HandshakeMessage.js.map +6 -0
- package/dist/cjs/dtls/handshake/HandshakeType.d.ts +29 -0
- package/dist/cjs/dtls/handshake/HandshakeType.d.ts.map +1 -0
- package/dist/cjs/dtls/handshake/HandshakeType.js +45 -0
- package/dist/cjs/dtls/handshake/HandshakeType.js.map +6 -0
- package/dist/cjs/dtls/handshake/HelloVerifyRequestMessage.d.ts +11 -0
- package/dist/cjs/dtls/handshake/HelloVerifyRequestMessage.d.ts.map +1 -0
- package/dist/cjs/dtls/handshake/HelloVerifyRequestMessage.js +49 -0
- package/dist/cjs/dtls/handshake/HelloVerifyRequestMessage.js.map +6 -0
- package/dist/cjs/dtls/handshake/ServerHelloDoneMessage.d.ts +14 -0
- package/dist/cjs/dtls/handshake/ServerHelloDoneMessage.d.ts.map +1 -0
- package/dist/cjs/dtls/handshake/ServerHelloDoneMessage.js +37 -0
- package/dist/cjs/dtls/handshake/ServerHelloDoneMessage.js.map +6 -0
- package/dist/cjs/dtls/handshake/ServerHelloMessage.d.ts +15 -0
- package/dist/cjs/dtls/handshake/ServerHelloMessage.d.ts.map +1 -0
- package/dist/cjs/dtls/handshake/ServerHelloMessage.js +113 -0
- package/dist/cjs/dtls/handshake/ServerHelloMessage.js.map +6 -0
- package/dist/cjs/dtls/handshake/ServerKeyExchangeMessage.d.ts +24 -0
- package/dist/cjs/dtls/handshake/ServerKeyExchangeMessage.d.ts.map +1 -0
- package/dist/cjs/dtls/handshake/ServerKeyExchangeMessage.js +35 -0
- package/dist/cjs/dtls/handshake/ServerKeyExchangeMessage.js.map +6 -0
- package/dist/cjs/dtls/handshake/index.d.ts +14 -0
- package/dist/cjs/dtls/handshake/index.d.ts.map +1 -0
- package/dist/cjs/dtls/handshake/index.js +30 -0
- package/dist/cjs/dtls/handshake/index.js.map +6 -0
- package/dist/cjs/dtls/prf/HandshakeTranscript.d.ts +36 -0
- package/dist/cjs/dtls/prf/HandshakeTranscript.d.ts.map +1 -0
- package/dist/cjs/dtls/prf/HandshakeTranscript.js +55 -0
- package/dist/cjs/dtls/prf/HandshakeTranscript.js.map +6 -0
- package/dist/cjs/dtls/prf/TlsPrf.d.ts +82 -0
- package/dist/cjs/dtls/prf/TlsPrf.d.ts.map +1 -0
- package/dist/cjs/dtls/prf/TlsPrf.js +121 -0
- package/dist/cjs/dtls/prf/TlsPrf.js.map +6 -0
- package/dist/cjs/dtls/prf/index.d.ts +13 -0
- package/dist/cjs/dtls/prf/index.d.ts.map +1 -0
- package/dist/cjs/dtls/prf/index.js +32 -0
- package/dist/cjs/dtls/prf/index.js.map +6 -0
- package/dist/cjs/dtls/record/AesCcm8.d.ts +32 -0
- package/dist/cjs/dtls/record/AesCcm8.d.ts.map +1 -0
- package/dist/cjs/dtls/record/AesCcm8.js +78 -0
- package/dist/cjs/dtls/record/AesCcm8.js.map +6 -0
- package/dist/cjs/dtls/record/AntiReplayWindow.d.ts +38 -0
- package/dist/cjs/dtls/record/AntiReplayWindow.d.ts.map +1 -0
- package/dist/cjs/dtls/record/AntiReplayWindow.js +84 -0
- package/dist/cjs/dtls/record/AntiReplayWindow.js.map +6 -0
- package/dist/cjs/dtls/record/ContentType.d.ts +19 -0
- package/dist/cjs/dtls/record/ContentType.d.ts.map +1 -0
- package/dist/cjs/dtls/record/ContentType.js +39 -0
- package/dist/cjs/dtls/record/ContentType.js.map +6 -0
- package/dist/cjs/dtls/record/DtlsCipherState.d.ts +79 -0
- package/dist/cjs/dtls/record/DtlsCipherState.d.ts.map +1 -0
- package/dist/cjs/dtls/record/DtlsCipherState.js +173 -0
- package/dist/cjs/dtls/record/DtlsCipherState.js.map +6 -0
- package/dist/cjs/dtls/record/DtlsRecord.d.ts +89 -0
- package/dist/cjs/dtls/record/DtlsRecord.d.ts.map +1 -0
- package/dist/cjs/dtls/record/DtlsRecord.js +195 -0
- package/dist/cjs/dtls/record/DtlsRecord.js.map +6 -0
- package/dist/cjs/dtls/record/index.d.ts +15 -0
- package/dist/cjs/dtls/record/index.d.ts.map +1 -0
- package/dist/cjs/dtls/record/index.js +42 -0
- package/dist/cjs/dtls/record/index.js.map +6 -0
- package/dist/cjs/index.d.ts +32 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +77 -0
- package/dist/cjs/index.js.map +6 -0
- package/dist/cjs/otbr-rest/OtbrRestCapability.d.ts +22 -0
- package/dist/cjs/otbr-rest/OtbrRestCapability.d.ts.map +1 -0
- package/dist/cjs/otbr-rest/OtbrRestCapability.js +22 -0
- package/dist/cjs/otbr-rest/OtbrRestCapability.js.map +6 -0
- package/dist/cjs/otbr-rest/OtbrRestClient.d.ts +257 -0
- package/dist/cjs/otbr-rest/OtbrRestClient.d.ts.map +1 -0
- package/dist/cjs/otbr-rest/OtbrRestClient.js +544 -0
- package/dist/cjs/otbr-rest/OtbrRestClient.js.map +6 -0
- package/dist/cjs/otbr-rest/OtbrRestDiagnosticSource.d.ts +88 -0
- package/dist/cjs/otbr-rest/OtbrRestDiagnosticSource.d.ts.map +1 -0
- package/dist/cjs/otbr-rest/OtbrRestDiagnosticSource.js +156 -0
- package/dist/cjs/otbr-rest/OtbrRestDiagnosticSource.js.map +6 -0
- package/dist/cjs/otbr-rest/OtbrRestError.d.ts +18 -0
- package/dist/cjs/otbr-rest/OtbrRestError.d.ts.map +1 -0
- package/dist/cjs/otbr-rest/OtbrRestError.js +42 -0
- package/dist/cjs/otbr-rest/OtbrRestError.js.map +6 -0
- package/dist/cjs/otbr-rest/OtbrRestProbe.d.ts +17 -0
- package/dist/cjs/otbr-rest/OtbrRestProbe.d.ts.map +1 -0
- package/dist/cjs/otbr-rest/OtbrRestProbe.js +96 -0
- package/dist/cjs/otbr-rest/OtbrRestProbe.js.map +6 -0
- package/dist/cjs/otbr-rest/caseNormalizer.d.ts +12 -0
- package/dist/cjs/otbr-rest/caseNormalizer.d.ts.map +1 -0
- package/dist/cjs/otbr-rest/caseNormalizer.js +59 -0
- package/dist/cjs/otbr-rest/caseNormalizer.js.map +6 -0
- package/dist/cjs/otbr-rest/index.d.ts +15 -0
- package/dist/cjs/otbr-rest/index.d.ts.map +1 -0
- package/dist/cjs/otbr-rest/index.js +40 -0
- package/dist/cjs/otbr-rest/index.js.map +6 -0
- package/dist/cjs/otbr-rest/translation.d.ts +24 -0
- package/dist/cjs/otbr-rest/translation.d.ts.map +1 -0
- package/dist/cjs/otbr-rest/translation.js +301 -0
- package/dist/cjs/otbr-rest/translation.js.map +6 -0
- package/dist/cjs/package.json +6 -0
- package/dist/cjs/selection/index.d.ts +11 -0
- package/dist/cjs/selection/index.d.ts.map +1 -0
- package/dist/cjs/selection/index.js +36 -0
- package/dist/cjs/selection/index.js.map +6 -0
- package/dist/cjs/selection/selectBr.d.ts +37 -0
- package/dist/cjs/selection/selectBr.d.ts.map +1 -0
- package/dist/cjs/selection/selectBr.js +66 -0
- package/dist/cjs/selection/selectBr.js.map +6 -0
- package/dist/cjs/selection/selectSource.d.ts +32 -0
- package/dist/cjs/selection/selectSource.d.ts.map +1 -0
- package/dist/cjs/selection/selectSource.js +43 -0
- package/dist/cjs/selection/selectSource.js.map +6 -0
- package/dist/cjs/selection/withExtPanIdLock.d.ts +23 -0
- package/dist/cjs/selection/withExtPanIdLock.d.ts.map +1 -0
- package/dist/cjs/selection/withExtPanIdLock.js +50 -0
- package/dist/cjs/selection/withExtPanIdLock.js.map +6 -0
- package/dist/cjs/tlv/BasicTlvCodec.d.ts +22 -0
- package/dist/cjs/tlv/BasicTlvCodec.d.ts.map +1 -0
- package/dist/cjs/tlv/BasicTlvCodec.js +97 -0
- package/dist/cjs/tlv/BasicTlvCodec.js.map +6 -0
- package/dist/cjs/tlv/NetworkDiagnosticTlv.d.ts +30 -0
- package/dist/cjs/tlv/NetworkDiagnosticTlv.d.ts.map +1 -0
- package/dist/cjs/tlv/NetworkDiagnosticTlv.js +41 -0
- package/dist/cjs/tlv/NetworkDiagnosticTlv.js.map +6 -0
- package/dist/cjs/tlv/TypeListTlv.d.ts +23 -0
- package/dist/cjs/tlv/TypeListTlv.d.ts.map +1 -0
- package/dist/cjs/tlv/TypeListTlv.js +49 -0
- package/dist/cjs/tlv/TypeListTlv.js.map +6 -0
- package/dist/cjs/tlv/diag/ChildIpv6AddressList.d.ts +22 -0
- package/dist/cjs/tlv/diag/ChildIpv6AddressList.d.ts.map +1 -0
- package/dist/cjs/tlv/diag/ChildIpv6AddressList.js +48 -0
- package/dist/cjs/tlv/diag/ChildIpv6AddressList.js.map +6 -0
- package/dist/cjs/tlv/diag/ChildTable.d.ts +29 -0
- package/dist/cjs/tlv/diag/ChildTable.d.ts.map +1 -0
- package/dist/cjs/tlv/diag/ChildTable.js +91 -0
- package/dist/cjs/tlv/diag/ChildTable.js.map +6 -0
- package/dist/cjs/tlv/diag/Connectivity.d.ts +45 -0
- package/dist/cjs/tlv/diag/Connectivity.d.ts.map +1 -0
- package/dist/cjs/tlv/diag/Connectivity.js +99 -0
- package/dist/cjs/tlv/diag/Connectivity.js.map +6 -0
- package/dist/cjs/tlv/diag/Ipv6AddressList.d.ts +21 -0
- package/dist/cjs/tlv/diag/Ipv6AddressList.d.ts.map +1 -0
- package/dist/cjs/tlv/diag/Ipv6AddressList.js +61 -0
- package/dist/cjs/tlv/diag/Ipv6AddressList.js.map +6 -0
- package/dist/cjs/tlv/diag/LeaderData.d.ts +28 -0
- package/dist/cjs/tlv/diag/LeaderData.d.ts.map +1 -0
- package/dist/cjs/tlv/diag/LeaderData.js +64 -0
- package/dist/cjs/tlv/diag/LeaderData.js.map +6 -0
- package/dist/cjs/tlv/diag/MacCounters.d.ts +28 -0
- package/dist/cjs/tlv/diag/MacCounters.d.ts.map +1 -0
- package/dist/cjs/tlv/diag/MacCounters.js +85 -0
- package/dist/cjs/tlv/diag/MacCounters.js.map +6 -0
- package/dist/cjs/tlv/diag/MleCounters.d.ts +41 -0
- package/dist/cjs/tlv/diag/MleCounters.d.ts.map +1 -0
- package/dist/cjs/tlv/diag/MleCounters.js +118 -0
- package/dist/cjs/tlv/diag/MleCounters.js.map +6 -0
- package/dist/cjs/tlv/diag/Mode.d.ts +26 -0
- package/dist/cjs/tlv/diag/Mode.d.ts.map +1 -0
- package/dist/cjs/tlv/diag/Mode.js +57 -0
- package/dist/cjs/tlv/diag/Mode.js.map +6 -0
- package/dist/cjs/tlv/diag/NetworkData.d.ts +93 -0
- package/dist/cjs/tlv/diag/NetworkData.d.ts.map +1 -0
- package/dist/cjs/tlv/diag/NetworkData.js +157 -0
- package/dist/cjs/tlv/diag/NetworkData.js.map +6 -0
- package/dist/cjs/tlv/diag/Primitives.d.ts +34 -0
- package/dist/cjs/tlv/diag/Primitives.d.ts.map +1 -0
- package/dist/cjs/tlv/diag/Primitives.js +163 -0
- package/dist/cjs/tlv/diag/Primitives.js.map +6 -0
- package/dist/cjs/tlv/diag/Route64.d.ts +42 -0
- package/dist/cjs/tlv/diag/Route64.d.ts.map +1 -0
- package/dist/cjs/tlv/diag/Route64.js +98 -0
- package/dist/cjs/tlv/diag/Route64.js.map +6 -0
- package/dist/cjs/tlv/diag/RouterNeighbor.d.ts +46 -0
- package/dist/cjs/tlv/diag/RouterNeighbor.d.ts.map +1 -0
- package/dist/cjs/tlv/diag/RouterNeighbor.js +65 -0
- package/dist/cjs/tlv/diag/RouterNeighbor.js.map +6 -0
- package/dist/cjs/tlv/diag/Timeout.d.ts +17 -0
- package/dist/cjs/tlv/diag/Timeout.d.ts.map +1 -0
- package/dist/cjs/tlv/diag/Timeout.js +53 -0
- package/dist/cjs/tlv/diag/Timeout.js.map +6 -0
- package/dist/cjs/tlv/diag/VendorInfo.d.ts +35 -0
- package/dist/cjs/tlv/diag/VendorInfo.d.ts.map +1 -0
- package/dist/cjs/tlv/diag/VendorInfo.js +130 -0
- package/dist/cjs/tlv/diag/VendorInfo.js.map +6 -0
- package/dist/cjs/tlv/diag/index.d.ts +26 -0
- package/dist/cjs/tlv/diag/index.d.ts.map +1 -0
- package/dist/cjs/tlv/diag/index.js +67 -0
- package/dist/cjs/tlv/diag/index.js.map +6 -0
- package/dist/cjs/tlv/meshcop/Ip6AddressTlv.d.ts +21 -0
- package/dist/cjs/tlv/meshcop/Ip6AddressTlv.d.ts.map +1 -0
- package/dist/cjs/tlv/meshcop/Ip6AddressTlv.js +48 -0
- package/dist/cjs/tlv/meshcop/Ip6AddressTlv.js.map +6 -0
- package/dist/cjs/tlv/meshcop/UdpEncapsulationTlv.d.ts +27 -0
- package/dist/cjs/tlv/meshcop/UdpEncapsulationTlv.d.ts.map +1 -0
- package/dist/cjs/tlv/meshcop/UdpEncapsulationTlv.js +62 -0
- package/dist/cjs/tlv/meshcop/UdpEncapsulationTlv.js.map +6 -0
- package/dist/cjs/tlv/networkDiagTlvTypes.d.ts +59 -0
- package/dist/cjs/tlv/networkDiagTlvTypes.d.ts.map +1 -0
- package/dist/cjs/tlv/networkDiagTlvTypes.js +76 -0
- package/dist/cjs/tlv/networkDiagTlvTypes.js.map +6 -0
- package/dist/cjs/util/meshLocalAddr.d.ts +27 -0
- package/dist/cjs/util/meshLocalAddr.d.ts.map +1 -0
- package/dist/cjs/util/meshLocalAddr.js +67 -0
- package/dist/cjs/util/meshLocalAddr.js.map +6 -0
- package/dist/esm/coap/CoapClient.d.ts +33 -0
- package/dist/esm/coap/CoapClient.d.ts.map +1 -0
- package/dist/esm/coap/CoapClient.js +270 -0
- package/dist/esm/coap/CoapClient.js.map +6 -0
- package/dist/esm/coap/CoapMessage.d.ts +23 -0
- package/dist/esm/coap/CoapMessage.d.ts.map +1 -0
- package/dist/esm/coap/CoapMessage.js +162 -0
- package/dist/esm/coap/CoapMessage.js.map +6 -0
- package/dist/esm/coap/index.d.ts +8 -0
- package/dist/esm/coap/index.d.ts.map +1 -0
- package/dist/esm/coap/index.js +11 -0
- package/dist/esm/coap/index.js.map +6 -0
- package/dist/esm/commissioner/Commissioner.d.ts +89 -0
- package/dist/esm/commissioner/Commissioner.d.ts.map +1 -0
- package/dist/esm/commissioner/Commissioner.js +168 -0
- package/dist/esm/commissioner/Commissioner.js.map +6 -0
- package/dist/esm/commissioner/LeadKa.d.ts +17 -0
- package/dist/esm/commissioner/LeadKa.d.ts.map +1 -0
- package/dist/esm/commissioner/LeadKa.js +43 -0
- package/dist/esm/commissioner/LeadKa.js.map +6 -0
- package/dist/esm/commissioner/LeadPet.d.ts +14 -0
- package/dist/esm/commissioner/LeadPet.d.ts.map +1 -0
- package/dist/esm/commissioner/LeadPet.js +46 -0
- package/dist/esm/commissioner/LeadPet.js.map +6 -0
- package/dist/esm/commissioner/index.d.ts +12 -0
- package/dist/esm/commissioner/index.d.ts.map +1 -0
- package/dist/esm/commissioner/index.js +23 -0
- package/dist/esm/commissioner/index.js.map +6 -0
- package/dist/esm/credentials/ThreadCredentialsRegistry.d.ts +50 -0
- package/dist/esm/credentials/ThreadCredentialsRegistry.d.ts.map +1 -0
- package/dist/esm/credentials/ThreadCredentialsRegistry.js +99 -0
- package/dist/esm/credentials/ThreadCredentialsRegistry.js.map +6 -0
- package/dist/esm/credentials/ThreadNetworkCredentials.d.ts +26 -0
- package/dist/esm/credentials/ThreadNetworkCredentials.d.ts.map +1 -0
- package/dist/esm/credentials/ThreadNetworkCredentials.js +6 -0
- package/dist/esm/credentials/ThreadNetworkCredentials.js.map +6 -0
- package/dist/esm/credentials/index.d.ts +8 -0
- package/dist/esm/credentials/index.d.ts.map +1 -0
- package/dist/esm/credentials/index.js +10 -0
- package/dist/esm/credentials/index.js.map +6 -0
- package/dist/esm/crypto/AesCmacPrf128.d.ts +24 -0
- package/dist/esm/crypto/AesCmacPrf128.d.ts.map +1 -0
- package/dist/esm/crypto/AesCmacPrf128.js +87 -0
- package/dist/esm/crypto/AesCmacPrf128.js.map +6 -0
- package/dist/esm/crypto/Pbkdf2AesCmac.d.ts +18 -0
- package/dist/esm/crypto/Pbkdf2AesCmac.d.ts.map +1 -0
- package/dist/esm/crypto/Pbkdf2AesCmac.js +42 -0
- package/dist/esm/crypto/Pbkdf2AesCmac.js.map +6 -0
- package/dist/esm/crypto/Pskc.d.ts +21 -0
- package/dist/esm/crypto/Pskc.d.ts.map +1 -0
- package/dist/esm/crypto/Pskc.js +49 -0
- package/dist/esm/crypto/Pskc.js.map +6 -0
- package/dist/esm/crypto/index.d.ts +9 -0
- package/dist/esm/crypto/index.d.ts.map +1 -0
- package/dist/esm/crypto/index.js +15 -0
- package/dist/esm/crypto/index.js.map +6 -0
- package/dist/esm/dataset/OperationalDataset.d.ts +74 -0
- package/dist/esm/dataset/OperationalDataset.d.ts.map +1 -0
- package/dist/esm/dataset/OperationalDataset.js +224 -0
- package/dist/esm/dataset/OperationalDataset.js.map +6 -0
- package/dist/esm/dataset/SecurityPolicy.d.ts +22 -0
- package/dist/esm/dataset/SecurityPolicy.d.ts.map +1 -0
- package/dist/esm/dataset/SecurityPolicy.js +39 -0
- package/dist/esm/dataset/SecurityPolicy.js.map +6 -0
- package/dist/esm/dataset/errors.d.ts +10 -0
- package/dist/esm/dataset/errors.d.ts.map +1 -0
- package/dist/esm/dataset/errors.js +12 -0
- package/dist/esm/dataset/errors.js.map +6 -0
- package/dist/esm/dataset/index.d.ts +9 -0
- package/dist/esm/dataset/index.d.ts.map +1 -0
- package/dist/esm/dataset/index.js +16 -0
- package/dist/esm/dataset/index.js.map +6 -0
- package/dist/esm/dataset/meshcopTlvTypes.d.ts +61 -0
- package/dist/esm/dataset/meshcopTlvTypes.d.ts.map +1 -0
- package/dist/esm/dataset/meshcopTlvTypes.js +62 -0
- package/dist/esm/dataset/meshcopTlvTypes.js.map +6 -0
- package/dist/esm/diagnostic/DefaultTlvSet.d.ts +8 -0
- package/dist/esm/diagnostic/DefaultTlvSet.d.ts.map +1 -0
- package/dist/esm/diagnostic/DefaultTlvSet.js +32 -0
- package/dist/esm/diagnostic/DefaultTlvSet.js.map +6 -0
- package/dist/esm/diagnostic/DiagnosticResponse.d.ts +47 -0
- package/dist/esm/diagnostic/DiagnosticResponse.d.ts.map +1 -0
- package/dist/esm/diagnostic/DiagnosticResponse.js +6 -0
- package/dist/esm/diagnostic/DiagnosticResponse.js.map +6 -0
- package/dist/esm/diagnostic/DiagnosticSource.d.ts +64 -0
- package/dist/esm/diagnostic/DiagnosticSource.d.ts.map +1 -0
- package/dist/esm/diagnostic/DiagnosticSource.js +14 -0
- package/dist/esm/diagnostic/DiagnosticSource.js.map +6 -0
- package/dist/esm/diagnostic/MeshCopDiagnosticSource.d.ts +78 -0
- package/dist/esm/diagnostic/MeshCopDiagnosticSource.d.ts.map +1 -0
- package/dist/esm/diagnostic/MeshCopDiagnosticSource.js +663 -0
- package/dist/esm/diagnostic/MeshCopDiagnosticSource.js.map +6 -0
- package/dist/esm/diagnostic/connectMeshcop.d.ts +38 -0
- package/dist/esm/diagnostic/connectMeshcop.d.ts.map +1 -0
- package/dist/esm/diagnostic/connectMeshcop.js +80 -0
- package/dist/esm/diagnostic/connectMeshcop.js.map +6 -0
- package/dist/esm/diagnostic/errors.d.ts +10 -0
- package/dist/esm/diagnostic/errors.d.ts.map +1 -0
- package/dist/esm/diagnostic/errors.js +12 -0
- package/dist/esm/diagnostic/errors.js.map +6 -0
- package/dist/esm/diagnostic/index.d.ts +13 -0
- package/dist/esm/diagnostic/index.d.ts.map +1 -0
- package/dist/esm/diagnostic/index.js +15 -0
- package/dist/esm/diagnostic/index.js.map +6 -0
- package/dist/esm/discovery/BorderRouterEntry.d.ts +54 -0
- package/dist/esm/discovery/BorderRouterEntry.d.ts.map +1 -0
- package/dist/esm/discovery/BorderRouterEntry.js +6 -0
- package/dist/esm/discovery/BorderRouterEntry.js.map +6 -0
- package/dist/esm/discovery/BorderRouterRegistry.d.ts +36 -0
- package/dist/esm/discovery/BorderRouterRegistry.d.ts.map +1 -0
- package/dist/esm/discovery/BorderRouterRegistry.js +508 -0
- package/dist/esm/discovery/BorderRouterRegistry.js.map +6 -0
- package/dist/esm/discovery/DnssdLikeTypes.d.ts +50 -0
- package/dist/esm/discovery/DnssdLikeTypes.d.ts.map +1 -0
- package/dist/esm/discovery/DnssdLikeTypes.js +6 -0
- package/dist/esm/discovery/DnssdLikeTypes.js.map +6 -0
- package/dist/esm/discovery/index.d.ts +8 -0
- package/dist/esm/discovery/index.d.ts.map +1 -0
- package/dist/esm/discovery/index.js +10 -0
- package/dist/esm/discovery/index.js.map +6 -0
- package/dist/esm/dtls/channel/DtlsChannel.d.ts +39 -0
- package/dist/esm/dtls/channel/DtlsChannel.d.ts.map +1 -0
- package/dist/esm/dtls/channel/DtlsChannel.js +12 -0
- package/dist/esm/dtls/channel/DtlsChannel.js.map +6 -0
- package/dist/esm/dtls/channel/DtlsConnectOpts.d.ts +38 -0
- package/dist/esm/dtls/channel/DtlsConnectOpts.d.ts.map +1 -0
- package/dist/esm/dtls/channel/DtlsConnectOpts.js +6 -0
- package/dist/esm/dtls/channel/DtlsConnectOpts.js.map +6 -0
- package/dist/esm/dtls/channel/DtlsRetransmitTimer.d.ts +43 -0
- package/dist/esm/dtls/channel/DtlsRetransmitTimer.d.ts.map +1 -0
- package/dist/esm/dtls/channel/DtlsRetransmitTimer.js +77 -0
- package/dist/esm/dtls/channel/DtlsRetransmitTimer.js.map +6 -0
- package/dist/esm/dtls/channel/NobleDtlsChannel.d.ts +35 -0
- package/dist/esm/dtls/channel/NobleDtlsChannel.d.ts.map +1 -0
- package/dist/esm/dtls/channel/NobleDtlsChannel.js +432 -0
- package/dist/esm/dtls/channel/NobleDtlsChannel.js.map +6 -0
- package/dist/esm/dtls/channel/connectDtls.d.ts +15 -0
- package/dist/esm/dtls/channel/connectDtls.d.ts.map +1 -0
- package/dist/esm/dtls/channel/connectDtls.js +21 -0
- package/dist/esm/dtls/channel/connectDtls.js.map +6 -0
- package/dist/esm/dtls/channel/index.d.ts +14 -0
- package/dist/esm/dtls/channel/index.d.ts.map +1 -0
- package/dist/esm/dtls/channel/index.js +12 -0
- package/dist/esm/dtls/channel/index.js.map +6 -0
- package/dist/esm/dtls/ecjpake/EcJpakePms.d.ts +35 -0
- package/dist/esm/dtls/ecjpake/EcJpakePms.d.ts.map +1 -0
- package/dist/esm/dtls/ecjpake/EcJpakePms.js +41 -0
- package/dist/esm/dtls/ecjpake/EcJpakePms.js.map +6 -0
- package/dist/esm/dtls/ecjpake/EcJpakeRound.d.ts +119 -0
- package/dist/esm/dtls/ecjpake/EcJpakeRound.d.ts.map +1 -0
- package/dist/esm/dtls/ecjpake/EcJpakeRound.js +228 -0
- package/dist/esm/dtls/ecjpake/EcJpakeRound.js.map +6 -0
- package/dist/esm/dtls/ecjpake/SchnorrZkp.d.ts +60 -0
- package/dist/esm/dtls/ecjpake/SchnorrZkp.d.ts.map +1 -0
- package/dist/esm/dtls/ecjpake/SchnorrZkp.js +142 -0
- package/dist/esm/dtls/ecjpake/SchnorrZkp.js.map +6 -0
- package/dist/esm/dtls/ecjpake/index.d.ts +28 -0
- package/dist/esm/dtls/ecjpake/index.d.ts.map +1 -0
- package/dist/esm/dtls/ecjpake/index.js +14 -0
- package/dist/esm/dtls/ecjpake/index.js.map +6 -0
- package/dist/esm/dtls/handshake/ChangeCipherSpec.d.ts +23 -0
- package/dist/esm/dtls/handshake/ChangeCipherSpec.d.ts.map +1 -0
- package/dist/esm/dtls/handshake/ChangeCipherSpec.js +21 -0
- package/dist/esm/dtls/handshake/ChangeCipherSpec.js.map +6 -0
- package/dist/esm/dtls/handshake/ClientHelloMessage.d.ts +34 -0
- package/dist/esm/dtls/handshake/ClientHelloMessage.d.ts.map +1 -0
- package/dist/esm/dtls/handshake/ClientHelloMessage.js +97 -0
- package/dist/esm/dtls/handshake/ClientHelloMessage.js.map +6 -0
- package/dist/esm/dtls/handshake/ClientKeyExchangeMessage.d.ts +22 -0
- package/dist/esm/dtls/handshake/ClientKeyExchangeMessage.d.ts.map +1 -0
- package/dist/esm/dtls/handshake/ClientKeyExchangeMessage.js +15 -0
- package/dist/esm/dtls/handshake/ClientKeyExchangeMessage.js.map +6 -0
- package/dist/esm/dtls/handshake/DtlsClient.d.ts +57 -0
- package/dist/esm/dtls/handshake/DtlsClient.d.ts.map +1 -0
- package/dist/esm/dtls/handshake/DtlsClient.js +482 -0
- package/dist/esm/dtls/handshake/DtlsClient.js.map +6 -0
- package/dist/esm/dtls/handshake/FinishedMessage.d.ts +13 -0
- package/dist/esm/dtls/handshake/FinishedMessage.d.ts.map +1 -0
- package/dist/esm/dtls/handshake/FinishedMessage.js +28 -0
- package/dist/esm/dtls/handshake/FinishedMessage.js.map +6 -0
- package/dist/esm/dtls/handshake/HandshakeMessage.d.ts +58 -0
- package/dist/esm/dtls/handshake/HandshakeMessage.d.ts.map +1 -0
- package/dist/esm/dtls/handshake/HandshakeMessage.js +97 -0
- package/dist/esm/dtls/handshake/HandshakeMessage.js.map +6 -0
- package/dist/esm/dtls/handshake/HandshakeType.d.ts +29 -0
- package/dist/esm/dtls/handshake/HandshakeType.d.ts.map +1 -0
- package/dist/esm/dtls/handshake/HandshakeType.js +25 -0
- package/dist/esm/dtls/handshake/HandshakeType.js.map +6 -0
- package/dist/esm/dtls/handshake/HelloVerifyRequestMessage.d.ts +11 -0
- package/dist/esm/dtls/handshake/HelloVerifyRequestMessage.d.ts.map +1 -0
- package/dist/esm/dtls/handshake/HelloVerifyRequestMessage.js +29 -0
- package/dist/esm/dtls/handshake/HelloVerifyRequestMessage.js.map +6 -0
- package/dist/esm/dtls/handshake/ServerHelloDoneMessage.d.ts +14 -0
- package/dist/esm/dtls/handshake/ServerHelloDoneMessage.d.ts.map +1 -0
- package/dist/esm/dtls/handshake/ServerHelloDoneMessage.js +17 -0
- package/dist/esm/dtls/handshake/ServerHelloDoneMessage.js.map +6 -0
- package/dist/esm/dtls/handshake/ServerHelloMessage.d.ts +15 -0
- package/dist/esm/dtls/handshake/ServerHelloMessage.d.ts.map +1 -0
- package/dist/esm/dtls/handshake/ServerHelloMessage.js +93 -0
- package/dist/esm/dtls/handshake/ServerHelloMessage.js.map +6 -0
- package/dist/esm/dtls/handshake/ServerKeyExchangeMessage.d.ts +24 -0
- package/dist/esm/dtls/handshake/ServerKeyExchangeMessage.d.ts.map +1 -0
- package/dist/esm/dtls/handshake/ServerKeyExchangeMessage.js +15 -0
- package/dist/esm/dtls/handshake/ServerKeyExchangeMessage.js.map +6 -0
- package/dist/esm/dtls/handshake/index.d.ts +14 -0
- package/dist/esm/dtls/handshake/index.d.ts.map +1 -0
- package/dist/esm/dtls/handshake/index.js +10 -0
- package/dist/esm/dtls/handshake/index.js.map +6 -0
- package/dist/esm/dtls/prf/HandshakeTranscript.d.ts +36 -0
- package/dist/esm/dtls/prf/HandshakeTranscript.d.ts.map +1 -0
- package/dist/esm/dtls/prf/HandshakeTranscript.js +35 -0
- package/dist/esm/dtls/prf/HandshakeTranscript.js.map +6 -0
- package/dist/esm/dtls/prf/TlsPrf.d.ts +82 -0
- package/dist/esm/dtls/prf/TlsPrf.d.ts.map +1 -0
- package/dist/esm/dtls/prf/TlsPrf.js +101 -0
- package/dist/esm/dtls/prf/TlsPrf.js.map +6 -0
- package/dist/esm/dtls/prf/index.d.ts +13 -0
- package/dist/esm/dtls/prf/index.d.ts.map +1 -0
- package/dist/esm/dtls/prf/index.js +12 -0
- package/dist/esm/dtls/prf/index.js.map +6 -0
- package/dist/esm/dtls/record/AesCcm8.d.ts +32 -0
- package/dist/esm/dtls/record/AesCcm8.d.ts.map +1 -0
- package/dist/esm/dtls/record/AesCcm8.js +58 -0
- package/dist/esm/dtls/record/AesCcm8.js.map +6 -0
- package/dist/esm/dtls/record/AntiReplayWindow.d.ts +38 -0
- package/dist/esm/dtls/record/AntiReplayWindow.d.ts.map +1 -0
- package/dist/esm/dtls/record/AntiReplayWindow.js +64 -0
- package/dist/esm/dtls/record/AntiReplayWindow.js.map +6 -0
- package/dist/esm/dtls/record/ContentType.d.ts +19 -0
- package/dist/esm/dtls/record/ContentType.d.ts.map +1 -0
- package/dist/esm/dtls/record/ContentType.js +19 -0
- package/dist/esm/dtls/record/ContentType.js.map +6 -0
- package/dist/esm/dtls/record/DtlsCipherState.d.ts +79 -0
- package/dist/esm/dtls/record/DtlsCipherState.d.ts.map +1 -0
- package/dist/esm/dtls/record/DtlsCipherState.js +153 -0
- package/dist/esm/dtls/record/DtlsCipherState.js.map +6 -0
- package/dist/esm/dtls/record/DtlsRecord.d.ts +89 -0
- package/dist/esm/dtls/record/DtlsRecord.d.ts.map +1 -0
- package/dist/esm/dtls/record/DtlsRecord.js +175 -0
- package/dist/esm/dtls/record/DtlsRecord.js.map +6 -0
- package/dist/esm/dtls/record/index.d.ts +15 -0
- package/dist/esm/dtls/record/index.d.ts.map +1 -0
- package/dist/esm/dtls/record/index.js +29 -0
- package/dist/esm/dtls/record/index.js.map +6 -0
- package/dist/esm/index.d.ts +32 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +74 -0
- package/dist/esm/index.js.map +6 -0
- package/dist/esm/otbr-rest/OtbrRestCapability.d.ts +22 -0
- package/dist/esm/otbr-rest/OtbrRestCapability.d.ts.map +1 -0
- package/dist/esm/otbr-rest/OtbrRestCapability.js +6 -0
- package/dist/esm/otbr-rest/OtbrRestCapability.js.map +6 -0
- package/dist/esm/otbr-rest/OtbrRestClient.d.ts +257 -0
- package/dist/esm/otbr-rest/OtbrRestClient.d.ts.map +1 -0
- package/dist/esm/otbr-rest/OtbrRestClient.js +524 -0
- package/dist/esm/otbr-rest/OtbrRestClient.js.map +6 -0
- package/dist/esm/otbr-rest/OtbrRestDiagnosticSource.d.ts +88 -0
- package/dist/esm/otbr-rest/OtbrRestDiagnosticSource.d.ts.map +1 -0
- package/dist/esm/otbr-rest/OtbrRestDiagnosticSource.js +136 -0
- package/dist/esm/otbr-rest/OtbrRestDiagnosticSource.js.map +6 -0
- package/dist/esm/otbr-rest/OtbrRestError.d.ts +18 -0
- package/dist/esm/otbr-rest/OtbrRestError.d.ts.map +1 -0
- package/dist/esm/otbr-rest/OtbrRestError.js +22 -0
- package/dist/esm/otbr-rest/OtbrRestError.js.map +6 -0
- package/dist/esm/otbr-rest/OtbrRestProbe.d.ts +17 -0
- package/dist/esm/otbr-rest/OtbrRestProbe.d.ts.map +1 -0
- package/dist/esm/otbr-rest/OtbrRestProbe.js +76 -0
- package/dist/esm/otbr-rest/OtbrRestProbe.js.map +6 -0
- package/dist/esm/otbr-rest/caseNormalizer.d.ts +12 -0
- package/dist/esm/otbr-rest/caseNormalizer.d.ts.map +1 -0
- package/dist/esm/otbr-rest/caseNormalizer.js +39 -0
- package/dist/esm/otbr-rest/caseNormalizer.js.map +6 -0
- package/dist/esm/otbr-rest/index.d.ts +15 -0
- package/dist/esm/otbr-rest/index.d.ts.map +1 -0
- package/dist/esm/otbr-rest/index.js +20 -0
- package/dist/esm/otbr-rest/index.js.map +6 -0
- package/dist/esm/otbr-rest/translation.d.ts +24 -0
- package/dist/esm/otbr-rest/translation.d.ts.map +1 -0
- package/dist/esm/otbr-rest/translation.js +281 -0
- package/dist/esm/otbr-rest/translation.js.map +6 -0
- package/dist/esm/package.json +6 -0
- package/dist/esm/selection/index.d.ts +11 -0
- package/dist/esm/selection/index.d.ts.map +1 -0
- package/dist/esm/selection/index.js +16 -0
- package/dist/esm/selection/index.js.map +6 -0
- package/dist/esm/selection/selectBr.d.ts +37 -0
- package/dist/esm/selection/selectBr.d.ts.map +1 -0
- package/dist/esm/selection/selectBr.js +46 -0
- package/dist/esm/selection/selectBr.js.map +6 -0
- package/dist/esm/selection/selectSource.d.ts +32 -0
- package/dist/esm/selection/selectSource.d.ts.map +1 -0
- package/dist/esm/selection/selectSource.js +23 -0
- package/dist/esm/selection/selectSource.js.map +6 -0
- package/dist/esm/selection/withExtPanIdLock.d.ts +23 -0
- package/dist/esm/selection/withExtPanIdLock.d.ts.map +1 -0
- package/dist/esm/selection/withExtPanIdLock.js +30 -0
- package/dist/esm/selection/withExtPanIdLock.js.map +6 -0
- package/dist/esm/tlv/BasicTlvCodec.d.ts +22 -0
- package/dist/esm/tlv/BasicTlvCodec.d.ts.map +1 -0
- package/dist/esm/tlv/BasicTlvCodec.js +77 -0
- package/dist/esm/tlv/BasicTlvCodec.js.map +6 -0
- package/dist/esm/tlv/NetworkDiagnosticTlv.d.ts +30 -0
- package/dist/esm/tlv/NetworkDiagnosticTlv.d.ts.map +1 -0
- package/dist/esm/tlv/NetworkDiagnosticTlv.js +21 -0
- package/dist/esm/tlv/NetworkDiagnosticTlv.js.map +6 -0
- package/dist/esm/tlv/TypeListTlv.d.ts +23 -0
- package/dist/esm/tlv/TypeListTlv.d.ts.map +1 -0
- package/dist/esm/tlv/TypeListTlv.js +29 -0
- package/dist/esm/tlv/TypeListTlv.js.map +6 -0
- package/dist/esm/tlv/diag/ChildIpv6AddressList.d.ts +22 -0
- package/dist/esm/tlv/diag/ChildIpv6AddressList.d.ts.map +1 -0
- package/dist/esm/tlv/diag/ChildIpv6AddressList.js +28 -0
- package/dist/esm/tlv/diag/ChildIpv6AddressList.js.map +6 -0
- package/dist/esm/tlv/diag/ChildTable.d.ts +29 -0
- package/dist/esm/tlv/diag/ChildTable.d.ts.map +1 -0
- package/dist/esm/tlv/diag/ChildTable.js +71 -0
- package/dist/esm/tlv/diag/ChildTable.js.map +6 -0
- package/dist/esm/tlv/diag/Connectivity.d.ts +45 -0
- package/dist/esm/tlv/diag/Connectivity.d.ts.map +1 -0
- package/dist/esm/tlv/diag/Connectivity.js +79 -0
- package/dist/esm/tlv/diag/Connectivity.js.map +6 -0
- package/dist/esm/tlv/diag/Ipv6AddressList.d.ts +21 -0
- package/dist/esm/tlv/diag/Ipv6AddressList.d.ts.map +1 -0
- package/dist/esm/tlv/diag/Ipv6AddressList.js +41 -0
- package/dist/esm/tlv/diag/Ipv6AddressList.js.map +6 -0
- package/dist/esm/tlv/diag/LeaderData.d.ts +28 -0
- package/dist/esm/tlv/diag/LeaderData.d.ts.map +1 -0
- package/dist/esm/tlv/diag/LeaderData.js +44 -0
- package/dist/esm/tlv/diag/LeaderData.js.map +6 -0
- package/dist/esm/tlv/diag/MacCounters.d.ts +28 -0
- package/dist/esm/tlv/diag/MacCounters.d.ts.map +1 -0
- package/dist/esm/tlv/diag/MacCounters.js +65 -0
- package/dist/esm/tlv/diag/MacCounters.js.map +6 -0
- package/dist/esm/tlv/diag/MleCounters.d.ts +41 -0
- package/dist/esm/tlv/diag/MleCounters.d.ts.map +1 -0
- package/dist/esm/tlv/diag/MleCounters.js +98 -0
- package/dist/esm/tlv/diag/MleCounters.js.map +6 -0
- package/dist/esm/tlv/diag/Mode.d.ts +26 -0
- package/dist/esm/tlv/diag/Mode.d.ts.map +1 -0
- package/dist/esm/tlv/diag/Mode.js +37 -0
- package/dist/esm/tlv/diag/Mode.js.map +6 -0
- package/dist/esm/tlv/diag/NetworkData.d.ts +93 -0
- package/dist/esm/tlv/diag/NetworkData.d.ts.map +1 -0
- package/dist/esm/tlv/diag/NetworkData.js +137 -0
- package/dist/esm/tlv/diag/NetworkData.js.map +6 -0
- package/dist/esm/tlv/diag/Primitives.d.ts +34 -0
- package/dist/esm/tlv/diag/Primitives.d.ts.map +1 -0
- package/dist/esm/tlv/diag/Primitives.js +143 -0
- package/dist/esm/tlv/diag/Primitives.js.map +6 -0
- package/dist/esm/tlv/diag/Route64.d.ts +42 -0
- package/dist/esm/tlv/diag/Route64.d.ts.map +1 -0
- package/dist/esm/tlv/diag/Route64.js +78 -0
- package/dist/esm/tlv/diag/Route64.js.map +6 -0
- package/dist/esm/tlv/diag/RouterNeighbor.d.ts +46 -0
- package/dist/esm/tlv/diag/RouterNeighbor.d.ts.map +1 -0
- package/dist/esm/tlv/diag/RouterNeighbor.js +45 -0
- package/dist/esm/tlv/diag/RouterNeighbor.js.map +6 -0
- package/dist/esm/tlv/diag/Timeout.d.ts +17 -0
- package/dist/esm/tlv/diag/Timeout.d.ts.map +1 -0
- package/dist/esm/tlv/diag/Timeout.js +33 -0
- package/dist/esm/tlv/diag/Timeout.js.map +6 -0
- package/dist/esm/tlv/diag/VendorInfo.d.ts +35 -0
- package/dist/esm/tlv/diag/VendorInfo.d.ts.map +1 -0
- package/dist/esm/tlv/diag/VendorInfo.js +110 -0
- package/dist/esm/tlv/diag/VendorInfo.js.map +6 -0
- package/dist/esm/tlv/diag/index.d.ts +26 -0
- package/dist/esm/tlv/diag/index.d.ts.map +1 -0
- package/dist/esm/tlv/diag/index.js +55 -0
- package/dist/esm/tlv/diag/index.js.map +6 -0
- package/dist/esm/tlv/meshcop/Ip6AddressTlv.d.ts +21 -0
- package/dist/esm/tlv/meshcop/Ip6AddressTlv.d.ts.map +1 -0
- package/dist/esm/tlv/meshcop/Ip6AddressTlv.js +28 -0
- package/dist/esm/tlv/meshcop/Ip6AddressTlv.js.map +6 -0
- package/dist/esm/tlv/meshcop/UdpEncapsulationTlv.d.ts +27 -0
- package/dist/esm/tlv/meshcop/UdpEncapsulationTlv.d.ts.map +1 -0
- package/dist/esm/tlv/meshcop/UdpEncapsulationTlv.js +42 -0
- package/dist/esm/tlv/meshcop/UdpEncapsulationTlv.js.map +6 -0
- package/dist/esm/tlv/networkDiagTlvTypes.d.ts +59 -0
- package/dist/esm/tlv/networkDiagTlvTypes.d.ts.map +1 -0
- package/dist/esm/tlv/networkDiagTlvTypes.js +56 -0
- package/dist/esm/tlv/networkDiagTlvTypes.js.map +6 -0
- package/dist/esm/util/meshLocalAddr.d.ts +27 -0
- package/dist/esm/util/meshLocalAddr.d.ts.map +1 -0
- package/dist/esm/util/meshLocalAddr.js +47 -0
- package/dist/esm/util/meshLocalAddr.js.map +6 -0
- package/package.json +73 -0
- package/src/coap/CoapClient.ts +355 -0
- package/src/coap/CoapMessage.ts +190 -0
- package/src/coap/index.ts +8 -0
- package/src/commissioner/Commissioner.ts +205 -0
- package/src/commissioner/LeadKa.ts +48 -0
- package/src/commissioner/LeadPet.ts +53 -0
- package/src/commissioner/index.ts +17 -0
- package/src/credentials/ThreadCredentialsRegistry.ts +117 -0
- package/src/credentials/ThreadNetworkCredentials.ts +26 -0
- package/src/credentials/index.ts +8 -0
- package/src/crypto/AesCmacPrf128.ts +101 -0
- package/src/crypto/Pbkdf2AesCmac.ts +57 -0
- package/src/crypto/Pskc.ts +57 -0
- package/src/crypto/index.ts +9 -0
- package/src/dataset/OperationalDataset.ts +326 -0
- package/src/dataset/SecurityPolicy.ts +48 -0
- package/src/dataset/errors.ts +10 -0
- package/src/dataset/index.ts +9 -0
- package/src/dataset/meshcopTlvTypes.ts +69 -0
- package/src/diagnostic/DefaultTlvSet.ts +31 -0
- package/src/diagnostic/DiagnosticResponse.ts +45 -0
- package/src/diagnostic/DiagnosticSource.ts +66 -0
- package/src/diagnostic/MeshCopDiagnosticSource.ts +808 -0
- package/src/diagnostic/connectMeshcop.ts +122 -0
- package/src/diagnostic/errors.ts +10 -0
- package/src/diagnostic/index.ts +13 -0
- package/src/discovery/BorderRouterEntry.ts +54 -0
- package/src/discovery/BorderRouterRegistry.ts +645 -0
- package/src/discovery/DnssdLikeTypes.ts +51 -0
- package/src/discovery/index.ts +8 -0
- package/src/dtls/channel/DtlsChannel.ts +42 -0
- package/src/dtls/channel/DtlsConnectOpts.ts +50 -0
- package/src/dtls/channel/DtlsRetransmitTimer.ts +107 -0
- package/src/dtls/channel/NobleDtlsChannel.ts +519 -0
- package/src/dtls/channel/connectDtls.ts +26 -0
- package/src/dtls/channel/index.ts +15 -0
- package/src/dtls/ecjpake/EcJpakePms.ts +65 -0
- package/src/dtls/ecjpake/EcJpakeRound.ts +279 -0
- package/src/dtls/ecjpake/SchnorrZkp.ts +193 -0
- package/src/dtls/ecjpake/index.ts +29 -0
- package/src/dtls/handshake/ChangeCipherSpec.ts +32 -0
- package/src/dtls/handshake/ClientHelloMessage.ts +150 -0
- package/src/dtls/handshake/ClientKeyExchangeMessage.ts +25 -0
- package/src/dtls/handshake/DtlsClient.ts +610 -0
- package/src/dtls/handshake/FinishedMessage.ts +36 -0
- package/src/dtls/handshake/HandshakeMessage.ts +144 -0
- package/src/dtls/handshake/HandshakeType.ts +35 -0
- package/src/dtls/handshake/HelloVerifyRequestMessage.ts +47 -0
- package/src/dtls/handshake/ServerHelloDoneMessage.ts +20 -0
- package/src/dtls/handshake/ServerHelloMessage.ts +129 -0
- package/src/dtls/handshake/ServerKeyExchangeMessage.ts +31 -0
- package/src/dtls/handshake/index.ts +15 -0
- package/src/dtls/prf/HandshakeTranscript.ts +52 -0
- package/src/dtls/prf/TlsPrf.ts +173 -0
- package/src/dtls/prf/index.ts +14 -0
- package/src/dtls/record/AesCcm8.ts +83 -0
- package/src/dtls/record/AntiReplayWindow.ts +87 -0
- package/src/dtls/record/ContentType.ts +23 -0
- package/src/dtls/record/DtlsCipherState.ts +202 -0
- package/src/dtls/record/DtlsRecord.ts +249 -0
- package/src/dtls/record/index.ts +26 -0
- package/src/index.ts +93 -0
- package/src/otbr-rest/OtbrRestCapability.ts +22 -0
- package/src/otbr-rest/OtbrRestClient.ts +644 -0
- package/src/otbr-rest/OtbrRestDiagnosticSource.ts +172 -0
- package/src/otbr-rest/OtbrRestError.ts +29 -0
- package/src/otbr-rest/OtbrRestProbe.ts +85 -0
- package/src/otbr-rest/caseNormalizer.ts +49 -0
- package/src/otbr-rest/index.ts +21 -0
- package/src/otbr-rest/translation.ts +344 -0
- package/src/selection/index.ts +11 -0
- package/src/selection/selectBr.ts +77 -0
- package/src/selection/selectSource.ts +51 -0
- package/src/selection/withExtPanIdLock.ts +40 -0
- package/src/tlv/BasicTlvCodec.ts +83 -0
- package/src/tlv/NetworkDiagnosticTlv.ts +37 -0
- package/src/tlv/TypeListTlv.ts +38 -0
- package/src/tlv/diag/ChildIpv6AddressList.ts +41 -0
- package/src/tlv/diag/ChildTable.ts +92 -0
- package/src/tlv/diag/Connectivity.ts +115 -0
- package/src/tlv/diag/Ipv6AddressList.ts +47 -0
- package/src/tlv/diag/LeaderData.ts +59 -0
- package/src/tlv/diag/MacCounters.ts +84 -0
- package/src/tlv/diag/MleCounters.ts +147 -0
- package/src/tlv/diag/Mode.ts +52 -0
- package/src/tlv/diag/NetworkData.ts +241 -0
- package/src/tlv/diag/Primitives.ts +146 -0
- package/src/tlv/diag/Route64.ts +118 -0
- package/src/tlv/diag/RouterNeighbor.ts +85 -0
- package/src/tlv/diag/Timeout.ts +36 -0
- package/src/tlv/diag/VendorInfo.ts +113 -0
- package/src/tlv/diag/index.ts +59 -0
- package/src/tlv/meshcop/Ip6AddressTlv.ts +36 -0
- package/src/tlv/meshcop/UdpEncapsulationTlv.ts +57 -0
- package/src/tlv/networkDiagTlvTypes.ts +69 -0
- package/src/tsconfig.json +21 -0
- package/src/util/meshLocalAddr.ts +63 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2026 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { ImplementationError } from "@matter/general";
|
|
8
|
+
import { pbkdf2AesCmac } from "./Pbkdf2AesCmac.js";
|
|
9
|
+
|
|
10
|
+
const SALT_PREFIX = new TextEncoder().encode("Thread");
|
|
11
|
+
const EXT_PAN_ID_LENGTH = 8;
|
|
12
|
+
const NETWORK_NAME_MAX_BYTES = 16;
|
|
13
|
+
const PASSPHRASE_MIN_BYTES = 6;
|
|
14
|
+
const PASSPHRASE_MAX_BYTES = 255;
|
|
15
|
+
// Thread spec §8.4 / openthread `meshcop.cpp::GeneratePskc`: 16384 PBKDF2 iterations.
|
|
16
|
+
const ITERATIONS = 16384;
|
|
17
|
+
const PSKC_LENGTH = 16;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Thread MeshCoP PSKc derivation.
|
|
21
|
+
*
|
|
22
|
+
* Mirrors `openthread/src/core/meshcop/meshcop.cpp::GeneratePskc`. The salt
|
|
23
|
+
* concatenation order is `"Thread" || extPanId || networkName` — confirmed
|
|
24
|
+
* against the openthread main branch (the alternative `extPanId || "Thread"
|
|
25
|
+
* || networkName` ordering is wrong).
|
|
26
|
+
*/
|
|
27
|
+
export namespace Pskc {
|
|
28
|
+
export function derive(args: { passphrase: string; extPanId: Uint8Array; networkName: string }): Uint8Array {
|
|
29
|
+
const password = new TextEncoder().encode(args.passphrase);
|
|
30
|
+
if (password.length < PASSPHRASE_MIN_BYTES || password.length > PASSPHRASE_MAX_BYTES) {
|
|
31
|
+
throw new ImplementationError(
|
|
32
|
+
`passphrase UTF-8 length must be ${PASSPHRASE_MIN_BYTES}..${PASSPHRASE_MAX_BYTES} bytes, got ${password.length}`,
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
if (args.extPanId.length !== EXT_PAN_ID_LENGTH) {
|
|
36
|
+
throw new ImplementationError(`extPanId must be ${EXT_PAN_ID_LENGTH} bytes, got ${args.extPanId.length}`);
|
|
37
|
+
}
|
|
38
|
+
const networkNameBytes = new TextEncoder().encode(args.networkName);
|
|
39
|
+
if (networkNameBytes.length === 0 || networkNameBytes.length > NETWORK_NAME_MAX_BYTES) {
|
|
40
|
+
throw new ImplementationError(
|
|
41
|
+
`networkName UTF-8 length must be 1..${NETWORK_NAME_MAX_BYTES} bytes, got ${networkNameBytes.length}`,
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const salt = new Uint8Array(SALT_PREFIX.length + EXT_PAN_ID_LENGTH + networkNameBytes.length);
|
|
46
|
+
salt.set(SALT_PREFIX, 0);
|
|
47
|
+
salt.set(args.extPanId, SALT_PREFIX.length);
|
|
48
|
+
salt.set(networkNameBytes, SALT_PREFIX.length + EXT_PAN_ID_LENGTH);
|
|
49
|
+
|
|
50
|
+
return pbkdf2AesCmac({
|
|
51
|
+
password,
|
|
52
|
+
salt,
|
|
53
|
+
iterations: ITERATIONS,
|
|
54
|
+
dkLen: PSKC_LENGTH,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2026 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { Bytes } from "@matter/general";
|
|
8
|
+
import { type BasicTlvEntry, BasicTlv } from "../tlv/BasicTlvCodec.js";
|
|
9
|
+
import { ThreadDatasetError } from "./errors.js";
|
|
10
|
+
import { MeshCopTlvType } from "./meshcopTlvTypes.js";
|
|
11
|
+
import { SecurityPolicy } from "./SecurityPolicy.js";
|
|
12
|
+
|
|
13
|
+
export { ThreadDatasetError } from "./errors.js";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Decoded Thread Operational Dataset.
|
|
17
|
+
*
|
|
18
|
+
* Each named accessor mirrors a MeshCoP TLV defined in {@link MeshCopTlvType}.
|
|
19
|
+
* Unknown TLVs survive a decode/encode round-trip via {@link unknownTlvs}.
|
|
20
|
+
*
|
|
21
|
+
* Datasets returned by {@link OperationalDataset.decode} also carry hidden
|
|
22
|
+
* replay state so {@link OperationalDataset.encode} can reproduce the source
|
|
23
|
+
* bytes verbatim when no field has been mutated — preserving non-canonical
|
|
24
|
+
* encodings (legacy 1-byte CHANNEL forms, vendor-specific orderings) emitted
|
|
25
|
+
* by real Border Routers.
|
|
26
|
+
*/
|
|
27
|
+
export interface OperationalDataset {
|
|
28
|
+
channel?: number;
|
|
29
|
+
panId?: number;
|
|
30
|
+
extPanId?: Uint8Array;
|
|
31
|
+
networkName?: string;
|
|
32
|
+
pskc?: Uint8Array;
|
|
33
|
+
networkKey?: Uint8Array;
|
|
34
|
+
meshLocalPrefix?: Uint8Array;
|
|
35
|
+
securityPolicy?: SecurityPolicy;
|
|
36
|
+
activeTimestamp?: Uint8Array;
|
|
37
|
+
pendingTimestamp?: Uint8Array;
|
|
38
|
+
delayTimer?: number;
|
|
39
|
+
channelMask?: Uint8Array;
|
|
40
|
+
unknownTlvs: Array<{ type: number; value: Uint8Array }>;
|
|
41
|
+
raw: Uint8Array;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export namespace OperationalDataset {
|
|
45
|
+
/**
|
|
46
|
+
* Decodes a Thread Operational Dataset from either raw bytes or a hex string.
|
|
47
|
+
*
|
|
48
|
+
* Accepts a whitespace-tolerant hex string (whitespace is stripped before
|
|
49
|
+
* parsing) or pre-parsed `Bytes` (e.g. a `Uint8Array`) of MeshCoP TLV bytes. Unknown TLVs survive the
|
|
50
|
+
* round-trip via {@link OperationalDataset.unknownTlvs}. Throws on malformed
|
|
51
|
+
* input (bad hex or TLV structure violations).
|
|
52
|
+
*/
|
|
53
|
+
export function decode(input: Bytes | string): OperationalDataset {
|
|
54
|
+
const blob = typeof input === "string" ? Bytes.of(Bytes.fromHex(input.replace(/\s+/g, ""))) : Bytes.of(input);
|
|
55
|
+
const entries = BasicTlv.walk(blob);
|
|
56
|
+
const unknownTlvs = new Array<{ type: number; value: Uint8Array }>();
|
|
57
|
+
const originalTlvs = entries.map(e => ({ type: e.type, value: e.value.slice() }));
|
|
58
|
+
const ds: OperationalDataset = {
|
|
59
|
+
unknownTlvs,
|
|
60
|
+
raw: blob.slice(),
|
|
61
|
+
};
|
|
62
|
+
ORIGINAL_TLVS.set(ds, originalTlvs);
|
|
63
|
+
|
|
64
|
+
for (const entry of entries) {
|
|
65
|
+
applyKnownTlvToDataset(ds, entry, unknownTlvs);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return ds;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Encode a Thread Operational Dataset to MeshCoP TLV bytes.
|
|
73
|
+
*
|
|
74
|
+
* Datasets produced by {@link decode} are re-encoded with replay fidelity:
|
|
75
|
+
* unmodified known TLVs reproduce their original bytes (preserving non-canonical
|
|
76
|
+
* encodings from real Border Routers), while mutated fields are re-encoded
|
|
77
|
+
* canonically. Datasets constructed directly (without a prior `decode`) are
|
|
78
|
+
* always encoded in canonical form.
|
|
79
|
+
*
|
|
80
|
+
* @param ds - Dataset to encode; may be a decoded or manually constructed object.
|
|
81
|
+
* @returns MeshCoP TLV byte sequence.
|
|
82
|
+
*/
|
|
83
|
+
export function encode(ds: OperationalDataset): Uint8Array {
|
|
84
|
+
const originals = ORIGINAL_TLVS.get(ds);
|
|
85
|
+
if (originals !== undefined) {
|
|
86
|
+
return encodeWithReplay(ds, originals);
|
|
87
|
+
}
|
|
88
|
+
return BasicTlv.encode(canonicalEntries(ds));
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Return a copy of the dataset with `pskc` and `networkKey` cleared.
|
|
93
|
+
*
|
|
94
|
+
* Safe to log or expose via the public API — secret material is removed
|
|
95
|
+
* while all other fields (channel, network name, timestamps, etc.) are retained.
|
|
96
|
+
*
|
|
97
|
+
* @param ds - Source dataset; not mutated.
|
|
98
|
+
* @returns Shallow copy with secret fields set to `undefined`.
|
|
99
|
+
*/
|
|
100
|
+
export function redact(ds: OperationalDataset): OperationalDataset {
|
|
101
|
+
return { ...ds, pskc: undefined, networkKey: undefined };
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Replay state for {@link OperationalDataset.encode}. Held off-interface so the
|
|
107
|
+
* public type stays a plain dataset shape; the entry is reclaimed automatically
|
|
108
|
+
* when the dataset is garbage-collected.
|
|
109
|
+
*/
|
|
110
|
+
const ORIGINAL_TLVS = new WeakMap<OperationalDataset, ReadonlyArray<BasicTlvEntry>>();
|
|
111
|
+
|
|
112
|
+
function applyKnownTlvToDataset(
|
|
113
|
+
ds: OperationalDataset,
|
|
114
|
+
entry: BasicTlvEntry,
|
|
115
|
+
unknownTlvs: Array<{ type: number; value: Uint8Array }>,
|
|
116
|
+
): void {
|
|
117
|
+
switch (entry.type) {
|
|
118
|
+
case MeshCopTlvType.CHANNEL:
|
|
119
|
+
ds.channel = decodeChannel(entry.value);
|
|
120
|
+
break;
|
|
121
|
+
case MeshCopTlvType.PANID:
|
|
122
|
+
if (entry.value.length !== 2) {
|
|
123
|
+
throw new ThreadDatasetError(`PANID TLV must be 2 bytes, got ${entry.value.length}`);
|
|
124
|
+
}
|
|
125
|
+
ds.panId = (entry.value[0] << 8) | entry.value[1];
|
|
126
|
+
break;
|
|
127
|
+
case MeshCopTlvType.EXTPANID:
|
|
128
|
+
if (entry.value.length !== 8) {
|
|
129
|
+
throw new ThreadDatasetError(`EXTPANID TLV must be 8 bytes, got ${entry.value.length}`);
|
|
130
|
+
}
|
|
131
|
+
ds.extPanId = entry.value.slice();
|
|
132
|
+
break;
|
|
133
|
+
case MeshCopTlvType.NETWORK_NAME:
|
|
134
|
+
ds.networkName = new TextDecoder("utf-8").decode(entry.value);
|
|
135
|
+
break;
|
|
136
|
+
case MeshCopTlvType.PSKC:
|
|
137
|
+
ds.pskc = entry.value.slice();
|
|
138
|
+
break;
|
|
139
|
+
case MeshCopTlvType.NETWORK_KEY:
|
|
140
|
+
if (entry.value.length !== 16) {
|
|
141
|
+
throw new ThreadDatasetError(`NETWORK_KEY TLV must be 16 bytes, got ${entry.value.length}`);
|
|
142
|
+
}
|
|
143
|
+
ds.networkKey = entry.value.slice();
|
|
144
|
+
break;
|
|
145
|
+
case MeshCopTlvType.MESH_LOCAL_PREFIX:
|
|
146
|
+
if (entry.value.length !== 8) {
|
|
147
|
+
throw new ThreadDatasetError(`MESH_LOCAL_PREFIX TLV must be 8 bytes, got ${entry.value.length}`);
|
|
148
|
+
}
|
|
149
|
+
ds.meshLocalPrefix = entry.value.slice();
|
|
150
|
+
break;
|
|
151
|
+
case MeshCopTlvType.SECURITY_POLICY:
|
|
152
|
+
ds.securityPolicy = SecurityPolicy.decode(entry.value);
|
|
153
|
+
break;
|
|
154
|
+
case MeshCopTlvType.ACTIVE_TIMESTAMP:
|
|
155
|
+
if (entry.value.length !== 8) {
|
|
156
|
+
throw new ThreadDatasetError(`ACTIVE_TIMESTAMP TLV must be 8 bytes, got ${entry.value.length}`);
|
|
157
|
+
}
|
|
158
|
+
ds.activeTimestamp = entry.value.slice();
|
|
159
|
+
break;
|
|
160
|
+
case MeshCopTlvType.PENDING_TIMESTAMP:
|
|
161
|
+
if (entry.value.length !== 8) {
|
|
162
|
+
throw new ThreadDatasetError(`PENDING_TIMESTAMP TLV must be 8 bytes, got ${entry.value.length}`);
|
|
163
|
+
}
|
|
164
|
+
ds.pendingTimestamp = entry.value.slice();
|
|
165
|
+
break;
|
|
166
|
+
case MeshCopTlvType.DELAY_TIMER:
|
|
167
|
+
if (entry.value.length !== 4) {
|
|
168
|
+
throw new ThreadDatasetError(`DELAY_TIMER TLV must be 4 bytes, got ${entry.value.length}`);
|
|
169
|
+
}
|
|
170
|
+
ds.delayTimer = (entry.value[0] << 24) | (entry.value[1] << 16) | (entry.value[2] << 8) | entry.value[3];
|
|
171
|
+
break;
|
|
172
|
+
case MeshCopTlvType.CHANNEL_MASK:
|
|
173
|
+
ds.channelMask = entry.value.slice();
|
|
174
|
+
break;
|
|
175
|
+
default:
|
|
176
|
+
unknownTlvs.push({ type: entry.type, value: entry.value.slice() });
|
|
177
|
+
break;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
function encodeWithReplay(ds: OperationalDataset, originals: ReadonlyArray<BasicTlvEntry>): Uint8Array {
|
|
182
|
+
const seenKnownTypes = new Set<number>();
|
|
183
|
+
const unknownCursor = new Map<number, number>();
|
|
184
|
+
const out = new Array<BasicTlvEntry>();
|
|
185
|
+
const scratch: OperationalDataset = { unknownTlvs: [], raw: EMPTY_BYTES };
|
|
186
|
+
|
|
187
|
+
for (const original of originals) {
|
|
188
|
+
const known = KNOWN_TLV_HANDLERS.get(original.type);
|
|
189
|
+
if (known !== undefined) {
|
|
190
|
+
seenKnownTypes.add(original.type);
|
|
191
|
+
const canonical = known.encodeCurrent(ds);
|
|
192
|
+
if (canonical === undefined) continue;
|
|
193
|
+
// Compare named values rather than bytes so non-canonical encodings (e.g. the
|
|
194
|
+
// legacy 1-byte CHANNEL form) replay unchanged when the caller hasn't mutated.
|
|
195
|
+
applyKnownTlvToDataset(scratch, original, scratch.unknownTlvs);
|
|
196
|
+
if (known.equalsCurrent(ds, scratch)) {
|
|
197
|
+
out.push({ type: original.type, value: original.value });
|
|
198
|
+
} else {
|
|
199
|
+
out.push({ type: original.type, value: canonical });
|
|
200
|
+
}
|
|
201
|
+
continue;
|
|
202
|
+
}
|
|
203
|
+
const start = unknownCursor.get(original.type) ?? 0;
|
|
204
|
+
const matchIdx = ds.unknownTlvs.findIndex(
|
|
205
|
+
(u, i) => i >= start && u.type === original.type && Bytes.areEqual(u.value, original.value),
|
|
206
|
+
);
|
|
207
|
+
if (matchIdx === -1) continue;
|
|
208
|
+
unknownCursor.set(original.type, matchIdx + 1);
|
|
209
|
+
out.push({ type: original.type, value: original.value });
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
for (const known of KNOWN_TLV_HANDLERS.values()) {
|
|
213
|
+
if (seenKnownTypes.has(known.type)) continue;
|
|
214
|
+
const canonical = known.encodeCurrent(ds);
|
|
215
|
+
if (canonical === undefined) continue;
|
|
216
|
+
out.push({ type: known.type, value: canonical });
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
return BasicTlv.encode(out);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
const EMPTY_BYTES = new Uint8Array();
|
|
223
|
+
|
|
224
|
+
function canonicalEntries(ds: OperationalDataset): BasicTlvEntry[] {
|
|
225
|
+
const out = new Array<BasicTlvEntry>();
|
|
226
|
+
for (const known of KNOWN_TLV_HANDLERS.values()) {
|
|
227
|
+
const canonical = known.encodeCurrent(ds);
|
|
228
|
+
if (canonical === undefined) continue;
|
|
229
|
+
out.push({ type: known.type, value: canonical });
|
|
230
|
+
}
|
|
231
|
+
for (const u of ds.unknownTlvs) {
|
|
232
|
+
out.push({ type: u.type, value: u.value.slice() });
|
|
233
|
+
}
|
|
234
|
+
return out;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Each handler erases its field type behind a closure so the heterogeneous
|
|
239
|
+
* registry can live in a single Map without per-field casts at the call site.
|
|
240
|
+
*/
|
|
241
|
+
interface KnownTlvHandler {
|
|
242
|
+
type: number;
|
|
243
|
+
/** Returns the canonical encoding of the named accessor, or undefined when unset. */
|
|
244
|
+
encodeCurrent(ds: OperationalDataset): Uint8Array | undefined;
|
|
245
|
+
/** Whether ds[field] structurally equals other[field]. Used for replay decisions. */
|
|
246
|
+
equalsCurrent(ds: OperationalDataset, other: OperationalDataset): boolean;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
function handler<K extends keyof OperationalDataset>(
|
|
250
|
+
type: number,
|
|
251
|
+
field: K,
|
|
252
|
+
encodeValue: (value: OperationalDataset[K] & {}) => Uint8Array,
|
|
253
|
+
equals: (a: OperationalDataset[K] & {}, b: OperationalDataset[K] & {}) => boolean,
|
|
254
|
+
): KnownTlvHandler {
|
|
255
|
+
return {
|
|
256
|
+
type,
|
|
257
|
+
encodeCurrent(ds) {
|
|
258
|
+
const value = ds[field];
|
|
259
|
+
if (value === undefined) return undefined;
|
|
260
|
+
return encodeValue(value);
|
|
261
|
+
},
|
|
262
|
+
equalsCurrent(ds, other) {
|
|
263
|
+
const a = ds[field];
|
|
264
|
+
const b = other[field];
|
|
265
|
+
if (a === undefined || b === undefined) return a === b;
|
|
266
|
+
return equals(a, b);
|
|
267
|
+
},
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
const eqNumber = (a: number, b: number): boolean => a === b;
|
|
272
|
+
const eqString = (a: string, b: string): boolean => a === b;
|
|
273
|
+
const eqBytes = (a: Uint8Array, b: Uint8Array): boolean => Bytes.areEqual(a, b);
|
|
274
|
+
const eqSecurityPolicy = (a: SecurityPolicy, b: SecurityPolicy): boolean =>
|
|
275
|
+
a.rotationTime === b.rotationTime && a.flags === b.flags;
|
|
276
|
+
|
|
277
|
+
const KNOWN_TLV_HANDLERS: Map<number, KnownTlvHandler> = (() => {
|
|
278
|
+
const list: KnownTlvHandler[] = [
|
|
279
|
+
handler(
|
|
280
|
+
MeshCopTlvType.CHANNEL,
|
|
281
|
+
"channel",
|
|
282
|
+
value => new Uint8Array([0x00, (value >> 8) & 0xff, value & 0xff]),
|
|
283
|
+
eqNumber,
|
|
284
|
+
),
|
|
285
|
+
handler(MeshCopTlvType.PANID, "panId", value => new Uint8Array([(value >> 8) & 0xff, value & 0xff]), eqNumber),
|
|
286
|
+
handler(MeshCopTlvType.EXTPANID, "extPanId", value => value, eqBytes),
|
|
287
|
+
handler(MeshCopTlvType.NETWORK_NAME, "networkName", value => new TextEncoder().encode(value), eqString),
|
|
288
|
+
handler(MeshCopTlvType.PSKC, "pskc", value => value, eqBytes),
|
|
289
|
+
handler(MeshCopTlvType.NETWORK_KEY, "networkKey", value => value, eqBytes),
|
|
290
|
+
handler(MeshCopTlvType.MESH_LOCAL_PREFIX, "meshLocalPrefix", value => value, eqBytes),
|
|
291
|
+
handler(
|
|
292
|
+
MeshCopTlvType.SECURITY_POLICY,
|
|
293
|
+
"securityPolicy",
|
|
294
|
+
value => SecurityPolicy.encode(value),
|
|
295
|
+
eqSecurityPolicy,
|
|
296
|
+
),
|
|
297
|
+
handler(MeshCopTlvType.ACTIVE_TIMESTAMP, "activeTimestamp", value => value, eqBytes),
|
|
298
|
+
handler(MeshCopTlvType.PENDING_TIMESTAMP, "pendingTimestamp", value => value, eqBytes),
|
|
299
|
+
handler(
|
|
300
|
+
MeshCopTlvType.DELAY_TIMER,
|
|
301
|
+
"delayTimer",
|
|
302
|
+
value => new Uint8Array([(value >> 24) & 0xff, (value >> 16) & 0xff, (value >> 8) & 0xff, value & 0xff]),
|
|
303
|
+
eqNumber,
|
|
304
|
+
),
|
|
305
|
+
handler(MeshCopTlvType.CHANNEL_MASK, "channelMask", value => value, eqBytes),
|
|
306
|
+
];
|
|
307
|
+
list.sort((a, b) => a.type - b.type);
|
|
308
|
+
const map = new Map<number, KnownTlvHandler>();
|
|
309
|
+
for (const h of list) map.set(h.type, h);
|
|
310
|
+
return map;
|
|
311
|
+
})();
|
|
312
|
+
|
|
313
|
+
/**
|
|
314
|
+
* Real-world OpenThread datasets sometimes encode CHANNEL as a single byte
|
|
315
|
+
* (the channel number directly) instead of the spec-conformant 3-byte form
|
|
316
|
+
* (channel-page:1 + channel:2). Both forms are accepted on decode.
|
|
317
|
+
*/
|
|
318
|
+
function decodeChannel(value: Uint8Array): number {
|
|
319
|
+
if (value.length === 1) {
|
|
320
|
+
return value[0];
|
|
321
|
+
}
|
|
322
|
+
if (value.length === 3) {
|
|
323
|
+
return (value[1] << 8) | value[2];
|
|
324
|
+
}
|
|
325
|
+
throw new ThreadDatasetError(`CHANNEL TLV must be 1 or 3 bytes, got ${value.length}`);
|
|
326
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2026 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { ImplementationError } from "@matter/general";
|
|
8
|
+
import { ThreadDatasetError } from "./errors.js";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* MeshCoP Security Policy TLV (type 12) is a fixed 4-byte payload: 2-byte
|
|
12
|
+
* big-endian rotation time (hours) followed by 2 bytes of policy flags.
|
|
13
|
+
*
|
|
14
|
+
* Flag bits track the version-dependent layout in Thread spec §8.10.1.15;
|
|
15
|
+
* we expose the raw 16-bit value so callers can interpret bits as needed
|
|
16
|
+
* without locking the codec to a particular Thread revision.
|
|
17
|
+
*/
|
|
18
|
+
export interface SecurityPolicy {
|
|
19
|
+
rotationTime: number;
|
|
20
|
+
flags: number;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export namespace SecurityPolicy {
|
|
24
|
+
export function decode(value: Uint8Array): SecurityPolicy {
|
|
25
|
+
if (value.length !== 4) {
|
|
26
|
+
throw new ThreadDatasetError(`Security policy must be 4 bytes, got ${value.length}`);
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
rotationTime: (value[0] << 8) | value[1],
|
|
30
|
+
flags: (value[2] << 8) | value[3],
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export function encode(policy: SecurityPolicy): Uint8Array {
|
|
35
|
+
if (policy.rotationTime < 0 || policy.rotationTime > 0xffff) {
|
|
36
|
+
throw new ImplementationError(`Security policy rotationTime out of range: ${policy.rotationTime}`);
|
|
37
|
+
}
|
|
38
|
+
if (policy.flags < 0 || policy.flags > 0xffff) {
|
|
39
|
+
throw new ImplementationError(`Security policy flags out of range: ${policy.flags}`);
|
|
40
|
+
}
|
|
41
|
+
return new Uint8Array([
|
|
42
|
+
(policy.rotationTime >> 8) & 0xff,
|
|
43
|
+
policy.rotationTime & 0xff,
|
|
44
|
+
(policy.flags >> 8) & 0xff,
|
|
45
|
+
policy.flags & 0xff,
|
|
46
|
+
]);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2026 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { MatterError } from "@matter/general";
|
|
8
|
+
|
|
9
|
+
/** Thrown when a Thread Operational Dataset cannot be decoded from malformed MeshCoP TLV bytes. */
|
|
10
|
+
export class ThreadDatasetError extends MatterError {}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2026 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export { MeshCopTlvType, MeshCopTlvTypeName } from "./meshcopTlvTypes.js";
|
|
8
|
+
export { OperationalDataset, ThreadDatasetError } from "./OperationalDataset.js";
|
|
9
|
+
export { SecurityPolicy } from "./SecurityPolicy.js";
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2026 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* MeshCoP TLV type identifiers (Thread 1.4 spec §8.10 plus the Agners' Python
|
|
9
|
+
* reference parser https://gist.github.com/agners/0338576e0003318b63ec1ea75adc90f9).
|
|
10
|
+
*
|
|
11
|
+
* Used to decode operational dataset blobs and to drive both the named-accessor
|
|
12
|
+
* mapping and reverse lookup for diagnostics.
|
|
13
|
+
*/
|
|
14
|
+
export const MeshCopTlvType = {
|
|
15
|
+
CHANNEL: 0,
|
|
16
|
+
PANID: 1,
|
|
17
|
+
EXTPANID: 2,
|
|
18
|
+
NETWORK_NAME: 3,
|
|
19
|
+
PSKC: 4,
|
|
20
|
+
NETWORK_KEY: 5,
|
|
21
|
+
NETWORK_KEY_SEQUENCE: 6,
|
|
22
|
+
MESH_LOCAL_PREFIX: 7,
|
|
23
|
+
STEERING_DATA: 8,
|
|
24
|
+
BORDER_AGENT_LOCATOR: 9,
|
|
25
|
+
COMMISSIONER_ID: 10,
|
|
26
|
+
COMMISSIONER_SESSION_ID: 11,
|
|
27
|
+
SECURITY_POLICY: 12,
|
|
28
|
+
GET: 13,
|
|
29
|
+
ACTIVE_TIMESTAMP: 14,
|
|
30
|
+
COMMISSIONER_UDP_PORT: 15,
|
|
31
|
+
STATE: 16,
|
|
32
|
+
JOINER_DTLS_ENCAPSULATION: 17,
|
|
33
|
+
JOINER_UDP_PORT: 18,
|
|
34
|
+
JOINER_IID: 19,
|
|
35
|
+
JOINER_ROUTER_LOCATOR: 20,
|
|
36
|
+
JOINER_ROUTER_KEK: 21,
|
|
37
|
+
DURATION: 23,
|
|
38
|
+
PROVISIONING_URL: 32,
|
|
39
|
+
VENDOR_NAME: 33,
|
|
40
|
+
VENDOR_MODEL: 34,
|
|
41
|
+
VENDOR_SW_VERSION: 35,
|
|
42
|
+
VENDOR_DATA: 36,
|
|
43
|
+
VENDOR_STACK_VERSION: 37,
|
|
44
|
+
UDP_ENCAPSULATION: 48,
|
|
45
|
+
IPV6_ADDRESS: 49,
|
|
46
|
+
PENDING_TIMESTAMP: 51,
|
|
47
|
+
DELAY_TIMER: 52,
|
|
48
|
+
CHANNEL_MASK: 53,
|
|
49
|
+
COUNT: 54,
|
|
50
|
+
PERIOD: 55,
|
|
51
|
+
SCAN_DURATION: 56,
|
|
52
|
+
ENERGY_LIST: 57,
|
|
53
|
+
THREAD_DOMAIN_NAME: 59,
|
|
54
|
+
WAKEUP_CHANNEL: 74,
|
|
55
|
+
DISCOVERY_REQUEST: 128,
|
|
56
|
+
DISCOVERY_RESPONSE: 129,
|
|
57
|
+
JOINER_ADVERTISEMENT: 241,
|
|
58
|
+
} as const;
|
|
59
|
+
|
|
60
|
+
export type MeshCopTlvTypeKey = keyof typeof MeshCopTlvType;
|
|
61
|
+
export type MeshCopTlvTypeValue = (typeof MeshCopTlvType)[MeshCopTlvTypeKey];
|
|
62
|
+
|
|
63
|
+
export const MeshCopTlvTypeName: Record<number, MeshCopTlvTypeKey> = (() => {
|
|
64
|
+
const out: Record<number, MeshCopTlvTypeKey> = {};
|
|
65
|
+
for (const [key, value] of Object.entries(MeshCopTlvType) as Array<[MeshCopTlvTypeKey, MeshCopTlvTypeValue]>) {
|
|
66
|
+
out[value] = key;
|
|
67
|
+
}
|
|
68
|
+
return out;
|
|
69
|
+
})();
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2026 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { NetworkDiagTlvType } from "../tlv/networkDiagTlvTypes.js";
|
|
8
|
+
|
|
9
|
+
/** Default diagnostic TLV set: spec §4.9 core topology + identity + health (counters, power, firmware). */
|
|
10
|
+
export const DefaultTlvSet: ReadonlyArray<number> = [
|
|
11
|
+
NetworkDiagTlvType.EXT_MAC_ADDRESS,
|
|
12
|
+
NetworkDiagTlvType.ADDRESS16,
|
|
13
|
+
NetworkDiagTlvType.MODE,
|
|
14
|
+
NetworkDiagTlvType.CONNECTIVITY,
|
|
15
|
+
NetworkDiagTlvType.ROUTE64,
|
|
16
|
+
NetworkDiagTlvType.LEADER_DATA,
|
|
17
|
+
NetworkDiagTlvType.IPV6_ADDRESS_LIST,
|
|
18
|
+
NetworkDiagTlvType.CHILD_TABLE,
|
|
19
|
+
NetworkDiagTlvType.VERSION,
|
|
20
|
+
NetworkDiagTlvType.VENDOR_NAME,
|
|
21
|
+
NetworkDiagTlvType.VENDOR_MODEL,
|
|
22
|
+
NetworkDiagTlvType.VENDOR_SW_VERSION,
|
|
23
|
+
NetworkDiagTlvType.TIMEOUT,
|
|
24
|
+
NetworkDiagTlvType.MAC_COUNTERS,
|
|
25
|
+
NetworkDiagTlvType.MLE_COUNTERS,
|
|
26
|
+
NetworkDiagTlvType.BATTERY_LEVEL,
|
|
27
|
+
NetworkDiagTlvType.SUPPLY_VOLTAGE,
|
|
28
|
+
NetworkDiagTlvType.MAX_CHILD_TIMEOUT,
|
|
29
|
+
NetworkDiagTlvType.EUI64,
|
|
30
|
+
NetworkDiagTlvType.THREAD_STACK_VERSION,
|
|
31
|
+
];
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2026 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import type { ChildIpv6Addresses } from "../tlv/diag/ChildIpv6AddressList.js";
|
|
8
|
+
import type { ChildTableEntry } from "../tlv/diag/ChildTable.js";
|
|
9
|
+
import type { Connectivity } from "../tlv/diag/Connectivity.js";
|
|
10
|
+
import type { LeaderData } from "../tlv/diag/LeaderData.js";
|
|
11
|
+
import type { MacCounters } from "../tlv/diag/MacCounters.js";
|
|
12
|
+
import type { MleCounters } from "../tlv/diag/MleCounters.js";
|
|
13
|
+
import type { Mode } from "../tlv/diag/Mode.js";
|
|
14
|
+
import type { ThreadNetworkData } from "../tlv/diag/NetworkData.js";
|
|
15
|
+
import type { Route64 } from "../tlv/diag/Route64.js";
|
|
16
|
+
import type { RouterNeighborEntry } from "../tlv/diag/RouterNeighbor.js";
|
|
17
|
+
|
|
18
|
+
export interface DiagnosticResponse {
|
|
19
|
+
extMacAddress?: Uint8Array;
|
|
20
|
+
rloc16?: number;
|
|
21
|
+
mode?: Mode;
|
|
22
|
+
timeout?: number;
|
|
23
|
+
connectivity?: Connectivity;
|
|
24
|
+
route64?: Route64;
|
|
25
|
+
leaderData?: LeaderData;
|
|
26
|
+
networkData?: ThreadNetworkData;
|
|
27
|
+
ipv6Addresses?: Uint8Array[];
|
|
28
|
+
macCounters?: MacCounters;
|
|
29
|
+
batteryLevel?: number;
|
|
30
|
+
supplyVoltage?: number;
|
|
31
|
+
childTable?: ChildTableEntry[];
|
|
32
|
+
childIpv6Addresses?: ChildIpv6Addresses;
|
|
33
|
+
routerNeighbors?: RouterNeighborEntry[];
|
|
34
|
+
channelPages?: number[];
|
|
35
|
+
maxChildTimeout?: number;
|
|
36
|
+
eui64?: Uint8Array;
|
|
37
|
+
version?: number;
|
|
38
|
+
vendorName?: string;
|
|
39
|
+
vendorModel?: string;
|
|
40
|
+
vendorSwVersion?: string;
|
|
41
|
+
threadStackVersion?: string;
|
|
42
|
+
vendorAppUrl?: string;
|
|
43
|
+
mleCounters?: MleCounters;
|
|
44
|
+
unknown: Array<{ type: number; value: Uint8Array }>;
|
|
45
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2026 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import type { Observable } from "@matter/general";
|
|
8
|
+
import { NetworkDiagTlvType } from "../tlv/networkDiagTlvTypes.js";
|
|
9
|
+
import type { DiagnosticResponse } from "./DiagnosticResponse.js";
|
|
10
|
+
|
|
11
|
+
export interface QueryMulticastOptions {
|
|
12
|
+
tlvTypes: number[];
|
|
13
|
+
/** Total window during which responses are accepted. Default 20_000 ms. */
|
|
14
|
+
windowMs?: number;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/** Default TLV types zeroed by {@link DiagnosticSource.resetCounters} when none are specified. */
|
|
18
|
+
export const DEFAULT_RESET_TLV_TYPES: ReadonlyArray<number> = [
|
|
19
|
+
NetworkDiagTlvType.MAC_COUNTERS,
|
|
20
|
+
NetworkDiagTlvType.MLE_COUNTERS,
|
|
21
|
+
];
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Live handle for a streaming multicast diagnostic query.
|
|
25
|
+
*
|
|
26
|
+
* Implementations emit one `onNode` event per decoded response and resolve
|
|
27
|
+
* `done` once the collection window closes (or `close()` is called). The
|
|
28
|
+
* consumer is free to act on each arrival immediately and may accumulate a
|
|
29
|
+
* snapshot at any time.
|
|
30
|
+
*/
|
|
31
|
+
export interface QueryMulticastHandle {
|
|
32
|
+
/** Fired once per parsed `DiagnosticResponse`. */
|
|
33
|
+
readonly onNode: Observable<[DiagnosticResponse]>;
|
|
34
|
+
/** Transport-level errors that did not abort the handle (e.g. one decode failure). */
|
|
35
|
+
readonly onError: Observable<[Error]>;
|
|
36
|
+
/** Resolves when the window has fully elapsed or `close()` completed. */
|
|
37
|
+
readonly done: Promise<void>;
|
|
38
|
+
/** Tear down the underlying listener/DTLS session early. Idempotent. */
|
|
39
|
+
close(): Promise<void>;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export interface DiagnosticSource {
|
|
43
|
+
readonly kind: "meshcop" | "otbr-rest";
|
|
44
|
+
canQuery(extPanId: Uint8Array): boolean;
|
|
45
|
+
queryUnicast(target: { rloc16?: number; ip?: string }, tlvTypes: number[]): Promise<DiagnosticResponse>;
|
|
46
|
+
/**
|
|
47
|
+
* Issue a multicast diagnostic query (DIAG_GET for MeshCoP, /diagnostics
|
|
48
|
+
* snapshot for REST) and stream parsed responses through the returned
|
|
49
|
+
* handle. The handle remains open for `opts.windowMs` (default 20_000)
|
|
50
|
+
* unless closed explicitly.
|
|
51
|
+
*/
|
|
52
|
+
queryMulticast(scope: "ff03::1" | "ff03::2", opts: QueryMulticastOptions): QueryMulticastHandle;
|
|
53
|
+
/**
|
|
54
|
+
* Zero MAC and MLE counters on a single mesh node (MGMT_DIAG_RESET).
|
|
55
|
+
*
|
|
56
|
+
* Sends a DIAG_RESET command to the target node. Only counter TLV types
|
|
57
|
+
* are meaningful here; non-counter types in `tlvTypes` are passed through
|
|
58
|
+
* unchanged and the node will ignore them. Mutating but low-risk —
|
|
59
|
+
* counters only, no network state is altered.
|
|
60
|
+
*
|
|
61
|
+
* @param target - Node to reset. `rloc16` is required for both sources.
|
|
62
|
+
* @param tlvTypes - TLV type IDs to include in the TypeList. Defaults to
|
|
63
|
+
* `[MAC_COUNTERS, MLE_COUNTERS]` (types 9 and 34).
|
|
64
|
+
*/
|
|
65
|
+
resetCounters(target: { rloc16?: number; ip?: string }, tlvTypes?: ReadonlyArray<number>): Promise<void>;
|
|
66
|
+
}
|