@matter/thread-br-client 0.0.1 → 0.17.5-alpha.0-20260706-fd4c49e2e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +5 -5
- package/dist/cjs/coap/CoapClient.d.ts +2 -2
- package/dist/cjs/coap/CoapClient.d.ts.map +1 -1
- package/dist/cjs/coap/CoapClient.js +9 -16
- package/dist/cjs/coap/CoapClient.js.map +1 -1
- package/dist/cjs/coap/CoapMessage.d.ts +11 -6
- package/dist/cjs/coap/CoapMessage.d.ts.map +1 -1
- package/dist/cjs/coap/CoapMessage.js +8 -5
- package/dist/cjs/coap/CoapMessage.js.map +1 -1
- package/dist/cjs/commissioner/Commissioner.d.ts.map +1 -1
- package/dist/cjs/commissioner/Commissioner.js +5 -2
- package/dist/cjs/commissioner/Commissioner.js.map +1 -1
- package/dist/cjs/commissioner/LeadKa.d.ts +3 -3
- package/dist/cjs/commissioner/LeadKa.d.ts.map +1 -1
- package/dist/cjs/commissioner/LeadKa.js +1 -1
- package/dist/cjs/commissioner/LeadKa.js.map +1 -1
- package/dist/cjs/commissioner/LeadPet.d.ts +3 -2
- package/dist/cjs/commissioner/LeadPet.d.ts.map +1 -1
- package/dist/cjs/commissioner/LeadPet.js +4 -3
- package/dist/cjs/commissioner/LeadPet.js.map +1 -1
- package/dist/cjs/credentials/ThreadCredentialsRegistry.d.ts +5 -5
- package/dist/cjs/credentials/ThreadCredentialsRegistry.d.ts.map +1 -1
- package/dist/cjs/credentials/ThreadCredentialsRegistry.js +10 -9
- package/dist/cjs/credentials/ThreadCredentialsRegistry.js.map +1 -1
- package/dist/cjs/credentials/ThreadNetworkCredentials.d.ts +4 -3
- package/dist/cjs/credentials/ThreadNetworkCredentials.d.ts.map +1 -1
- package/dist/cjs/crypto/AesCmacPrf128.d.ts +4 -14
- package/dist/cjs/crypto/AesCmacPrf128.d.ts.map +1 -1
- package/dist/cjs/crypto/AesCmacPrf128.js +7 -71
- package/dist/cjs/crypto/AesCmacPrf128.js.map +2 -2
- package/dist/cjs/crypto/Pbkdf2AesCmac.d.ts +5 -4
- package/dist/cjs/crypto/Pbkdf2AesCmac.d.ts.map +1 -1
- package/dist/cjs/crypto/Pbkdf2AesCmac.js +5 -4
- package/dist/cjs/crypto/Pbkdf2AesCmac.js.map +1 -1
- package/dist/cjs/crypto/Pskc.d.ts +4 -3
- package/dist/cjs/crypto/Pskc.d.ts.map +1 -1
- package/dist/cjs/crypto/Pskc.js +6 -5
- package/dist/cjs/crypto/Pskc.js.map +1 -1
- package/dist/cjs/crypto/index.d.ts +1 -1
- package/dist/cjs/crypto/index.d.ts.map +1 -1
- package/dist/cjs/crypto/index.js +0 -1
- package/dist/cjs/crypto/index.js.map +1 -1
- package/dist/cjs/dataset/OperationalDataset.d.ts +10 -10
- package/dist/cjs/dataset/OperationalDataset.d.ts.map +1 -1
- package/dist/cjs/dataset/OperationalDataset.js +32 -31
- package/dist/cjs/dataset/OperationalDataset.js.map +1 -1
- package/dist/cjs/dataset/SecurityPolicy.d.ts +3 -2
- package/dist/cjs/dataset/SecurityPolicy.d.ts.map +1 -1
- package/dist/cjs/dataset/SecurityPolicy.js +5 -4
- package/dist/cjs/dataset/SecurityPolicy.js.map +1 -1
- package/dist/cjs/diagnostic/DiagnosticResponse.d.ts +5 -4
- package/dist/cjs/diagnostic/DiagnosticResponse.d.ts.map +1 -1
- package/dist/cjs/diagnostic/DiagnosticSource.d.ts +2 -2
- package/dist/cjs/diagnostic/DiagnosticSource.d.ts.map +1 -1
- package/dist/cjs/diagnostic/MeshCopDiagnosticSource.d.ts +7 -3
- package/dist/cjs/diagnostic/MeshCopDiagnosticSource.d.ts.map +1 -1
- package/dist/cjs/diagnostic/MeshCopDiagnosticSource.js +48 -43
- package/dist/cjs/diagnostic/MeshCopDiagnosticSource.js.map +1 -1
- package/dist/cjs/diagnostic/connectMeshcop.d.ts.map +1 -1
- package/dist/cjs/diagnostic/connectMeshcop.js +5 -12
- package/dist/cjs/diagnostic/connectMeshcop.js.map +1 -1
- package/dist/cjs/diagnostic/errors.d.ts +1 -1
- package/dist/cjs/diagnostic/errors.d.ts.map +1 -1
- package/dist/cjs/discovery/BorderRouterRegistry.d.ts.map +1 -1
- package/dist/cjs/discovery/BorderRouterRegistry.js +2 -4
- package/dist/cjs/discovery/BorderRouterRegistry.js.map +1 -1
- package/dist/cjs/dtls/channel/DtlsConnectOpts.d.ts +3 -3
- package/dist/cjs/dtls/channel/DtlsConnectOpts.d.ts.map +1 -1
- package/dist/cjs/dtls/channel/NobleDtlsChannel.d.ts.map +1 -1
- package/dist/cjs/dtls/channel/NobleDtlsChannel.js +89 -58
- package/dist/cjs/dtls/channel/NobleDtlsChannel.js.map +1 -1
- package/dist/cjs/dtls/ecjpake/EcJpakePms.d.ts +5 -4
- package/dist/cjs/dtls/ecjpake/EcJpakePms.d.ts.map +1 -1
- package/dist/cjs/dtls/ecjpake/EcJpakePms.js +4 -5
- package/dist/cjs/dtls/ecjpake/EcJpakePms.js.map +1 -1
- package/dist/cjs/dtls/ecjpake/EcJpakeRound.d.ts +16 -15
- package/dist/cjs/dtls/ecjpake/EcJpakeRound.d.ts.map +1 -1
- package/dist/cjs/dtls/ecjpake/EcJpakeRound.js +40 -29
- package/dist/cjs/dtls/ecjpake/EcJpakeRound.js.map +1 -1
- package/dist/cjs/dtls/ecjpake/SchnorrZkp.d.ts +10 -9
- package/dist/cjs/dtls/ecjpake/SchnorrZkp.d.ts.map +1 -1
- package/dist/cjs/dtls/ecjpake/SchnorrZkp.js +17 -13
- package/dist/cjs/dtls/ecjpake/SchnorrZkp.js.map +1 -1
- package/dist/cjs/dtls/handshake/ChangeCipherSpec.d.ts +2 -1
- package/dist/cjs/dtls/handshake/ChangeCipherSpec.d.ts.map +1 -1
- package/dist/cjs/dtls/handshake/ChangeCipherSpec.js +3 -1
- package/dist/cjs/dtls/handshake/ChangeCipherSpec.js.map +1 -1
- package/dist/cjs/dtls/handshake/ClientHelloMessage.d.ts +27 -4
- package/dist/cjs/dtls/handshake/ClientHelloMessage.d.ts.map +1 -1
- package/dist/cjs/dtls/handshake/ClientHelloMessage.js +3 -1
- package/dist/cjs/dtls/handshake/ClientHelloMessage.js.map +1 -1
- package/dist/cjs/dtls/handshake/ClientKeyExchangeMessage.d.ts +2 -1
- package/dist/cjs/dtls/handshake/ClientKeyExchangeMessage.d.ts.map +1 -1
- package/dist/cjs/dtls/handshake/ClientKeyExchangeMessage.js.map +1 -1
- package/dist/cjs/dtls/handshake/DtlsClient.d.ts +9 -6
- package/dist/cjs/dtls/handshake/DtlsClient.d.ts.map +1 -1
- package/dist/cjs/dtls/handshake/DtlsClient.js +99 -77
- package/dist/cjs/dtls/handshake/DtlsClient.js.map +1 -1
- package/dist/cjs/dtls/handshake/FinishedMessage.d.ts +10 -3
- package/dist/cjs/dtls/handshake/FinishedMessage.d.ts.map +1 -1
- package/dist/cjs/dtls/handshake/FinishedMessage.js +4 -2
- package/dist/cjs/dtls/handshake/FinishedMessage.js.map +1 -1
- package/dist/cjs/dtls/handshake/HandshakeMessage.d.ts +5 -4
- package/dist/cjs/dtls/handshake/HandshakeMessage.d.ts.map +1 -1
- package/dist/cjs/dtls/handshake/HandshakeMessage.js +13 -11
- package/dist/cjs/dtls/handshake/HandshakeMessage.js.map +1 -1
- package/dist/cjs/dtls/handshake/HelloVerifyRequestMessage.d.ts +19 -2
- package/dist/cjs/dtls/handshake/HelloVerifyRequestMessage.d.ts.map +1 -1
- package/dist/cjs/dtls/handshake/HelloVerifyRequestMessage.js +3 -1
- package/dist/cjs/dtls/handshake/HelloVerifyRequestMessage.js.map +1 -1
- package/dist/cjs/dtls/handshake/ServerHelloDoneMessage.d.ts +2 -1
- package/dist/cjs/dtls/handshake/ServerHelloDoneMessage.d.ts.map +1 -1
- package/dist/cjs/dtls/handshake/ServerHelloDoneMessage.js +3 -2
- package/dist/cjs/dtls/handshake/ServerHelloDoneMessage.js.map +1 -1
- package/dist/cjs/dtls/handshake/ServerHelloMessage.d.ts +4 -3
- package/dist/cjs/dtls/handshake/ServerHelloMessage.d.ts.map +1 -1
- package/dist/cjs/dtls/handshake/ServerHelloMessage.js +3 -1
- package/dist/cjs/dtls/handshake/ServerHelloMessage.js.map +1 -1
- package/dist/cjs/dtls/handshake/ServerKeyExchangeMessage.d.ts +2 -1
- package/dist/cjs/dtls/handshake/ServerKeyExchangeMessage.d.ts.map +1 -1
- package/dist/cjs/dtls/handshake/ServerKeyExchangeMessage.js.map +1 -1
- package/dist/cjs/dtls/prf/HandshakeTranscript.d.ts +7 -5
- package/dist/cjs/dtls/prf/HandshakeTranscript.d.ts.map +1 -1
- package/dist/cjs/dtls/prf/HandshakeTranscript.js +14 -9
- package/dist/cjs/dtls/prf/HandshakeTranscript.js.map +1 -1
- package/dist/cjs/dtls/prf/TlsPrf.d.ts +23 -22
- package/dist/cjs/dtls/prf/TlsPrf.d.ts.map +1 -1
- package/dist/cjs/dtls/prf/TlsPrf.js +33 -30
- package/dist/cjs/dtls/prf/TlsPrf.js.map +1 -1
- package/dist/cjs/dtls/record/AesCcm8.d.ts +13 -12
- package/dist/cjs/dtls/record/AesCcm8.d.ts.map +1 -1
- package/dist/cjs/dtls/record/AesCcm8.js +12 -34
- package/dist/cjs/dtls/record/AesCcm8.js.map +1 -1
- package/dist/cjs/dtls/record/DtlsCipherState.d.ts +11 -10
- package/dist/cjs/dtls/record/DtlsCipherState.d.ts.map +1 -1
- package/dist/cjs/dtls/record/DtlsCipherState.js +10 -6
- package/dist/cjs/dtls/record/DtlsCipherState.js.map +1 -1
- package/dist/cjs/dtls/record/DtlsRecord.d.ts +10 -10
- package/dist/cjs/dtls/record/DtlsRecord.d.ts.map +1 -1
- package/dist/cjs/dtls/record/DtlsRecord.js +10 -8
- package/dist/cjs/dtls/record/DtlsRecord.js.map +1 -1
- package/dist/cjs/otbr-rest/OtbrRestCapability.d.ts +3 -4
- package/dist/cjs/otbr-rest/OtbrRestCapability.d.ts.map +1 -1
- package/dist/cjs/otbr-rest/OtbrRestClient.d.ts +27 -8
- package/dist/cjs/otbr-rest/OtbrRestClient.d.ts.map +1 -1
- package/dist/cjs/otbr-rest/OtbrRestClient.js +50 -20
- package/dist/cjs/otbr-rest/OtbrRestClient.js.map +1 -1
- package/dist/cjs/otbr-rest/OtbrRestDiagnosticSource.d.ts +2 -1
- package/dist/cjs/otbr-rest/OtbrRestDiagnosticSource.d.ts.map +1 -1
- package/dist/cjs/otbr-rest/OtbrRestDiagnosticSource.js +3 -3
- package/dist/cjs/otbr-rest/OtbrRestDiagnosticSource.js.map +1 -1
- package/dist/cjs/otbr-rest/OtbrRestProbe.d.ts +6 -4
- package/dist/cjs/otbr-rest/OtbrRestProbe.d.ts.map +1 -1
- package/dist/cjs/otbr-rest/OtbrRestProbe.js +11 -43
- package/dist/cjs/otbr-rest/OtbrRestProbe.js.map +1 -1
- package/dist/cjs/otbr-rest/caseNormalizer.d.ts +7 -0
- package/dist/cjs/otbr-rest/caseNormalizer.d.ts.map +1 -1
- package/dist/cjs/otbr-rest/caseNormalizer.js +11 -0
- package/dist/cjs/otbr-rest/caseNormalizer.js.map +1 -1
- package/dist/cjs/otbr-rest/parseHexBytes.d.ts +22 -0
- package/dist/cjs/otbr-rest/parseHexBytes.d.ts.map +1 -0
- package/dist/cjs/otbr-rest/parseHexBytes.js +50 -0
- package/dist/cjs/otbr-rest/parseHexBytes.js.map +6 -0
- package/dist/cjs/otbr-rest/translation.d.ts +2 -1
- package/dist/cjs/otbr-rest/translation.d.ts.map +1 -1
- package/dist/cjs/otbr-rest/translation.js +20 -22
- package/dist/cjs/otbr-rest/translation.js.map +1 -1
- package/dist/cjs/selection/selectBr.d.ts +8 -4
- package/dist/cjs/selection/selectBr.d.ts.map +1 -1
- package/dist/cjs/selection/selectBr.js +6 -5
- package/dist/cjs/selection/selectBr.js.map +1 -1
- package/dist/cjs/selection/withExtPanIdLock.d.ts +2 -1
- package/dist/cjs/selection/withExtPanIdLock.d.ts.map +1 -1
- package/dist/cjs/selection/withExtPanIdLock.js.map +1 -1
- package/dist/cjs/tlv/BasicTlvCodec.d.ts +4 -4
- package/dist/cjs/tlv/BasicTlvCodec.d.ts.map +1 -1
- package/dist/cjs/tlv/BasicTlvCodec.js +13 -11
- package/dist/cjs/tlv/BasicTlvCodec.js.map +1 -1
- package/dist/cjs/tlv/NetworkDiagnosticTlv.d.ts +3 -2
- package/dist/cjs/tlv/NetworkDiagnosticTlv.d.ts.map +1 -1
- package/dist/cjs/tlv/NetworkDiagnosticTlv.js.map +1 -1
- package/dist/cjs/tlv/TypeListTlv.d.ts +3 -2
- package/dist/cjs/tlv/TypeListTlv.d.ts.map +1 -1
- package/dist/cjs/tlv/TypeListTlv.js +1 -1
- package/dist/cjs/tlv/TypeListTlv.js.map +1 -1
- package/dist/cjs/tlv/diag/ChildIpv6AddressList.d.ts +3 -2
- package/dist/cjs/tlv/diag/ChildIpv6AddressList.d.ts.map +1 -1
- package/dist/cjs/tlv/diag/ChildIpv6AddressList.js +5 -3
- package/dist/cjs/tlv/diag/ChildIpv6AddressList.js.map +1 -1
- package/dist/cjs/tlv/diag/ChildTable.d.ts +3 -2
- package/dist/cjs/tlv/diag/ChildTable.d.ts.map +1 -1
- package/dist/cjs/tlv/diag/ChildTable.js +7 -6
- package/dist/cjs/tlv/diag/ChildTable.js.map +1 -1
- package/dist/cjs/tlv/diag/Connectivity.d.ts +3 -2
- package/dist/cjs/tlv/diag/Connectivity.d.ts.map +1 -1
- package/dist/cjs/tlv/diag/Connectivity.js +14 -14
- package/dist/cjs/tlv/diag/Connectivity.js.map +1 -1
- package/dist/cjs/tlv/diag/Ipv6AddressList.d.ts +3 -2
- package/dist/cjs/tlv/diag/Ipv6AddressList.d.ts.map +1 -1
- package/dist/cjs/tlv/diag/Ipv6AddressList.js +6 -5
- package/dist/cjs/tlv/diag/Ipv6AddressList.js.map +1 -1
- package/dist/cjs/tlv/diag/LeaderData.d.ts +3 -2
- package/dist/cjs/tlv/diag/LeaderData.d.ts.map +1 -1
- package/dist/cjs/tlv/diag/LeaderData.js +8 -7
- package/dist/cjs/tlv/diag/LeaderData.js.map +1 -1
- package/dist/cjs/tlv/diag/MacCounters.d.ts +3 -2
- package/dist/cjs/tlv/diag/MacCounters.d.ts.map +1 -1
- package/dist/cjs/tlv/diag/MacCounters.js +12 -11
- package/dist/cjs/tlv/diag/MacCounters.js.map +1 -1
- package/dist/cjs/tlv/diag/MleCounters.d.ts +3 -2
- package/dist/cjs/tlv/diag/MleCounters.d.ts.map +1 -1
- package/dist/cjs/tlv/diag/MleCounters.js +18 -17
- package/dist/cjs/tlv/diag/MleCounters.js.map +1 -1
- package/dist/cjs/tlv/diag/Mode.d.ts +3 -2
- package/dist/cjs/tlv/diag/Mode.d.ts.map +1 -1
- package/dist/cjs/tlv/diag/Mode.js +5 -3
- package/dist/cjs/tlv/diag/Mode.js.map +1 -1
- package/dist/cjs/tlv/diag/NetworkData.d.ts +7 -6
- package/dist/cjs/tlv/diag/NetworkData.d.ts.map +1 -1
- package/dist/cjs/tlv/diag/NetworkData.js +23 -18
- package/dist/cjs/tlv/diag/NetworkData.js.map +1 -1
- package/dist/cjs/tlv/diag/Primitives.d.ts +15 -14
- package/dist/cjs/tlv/diag/Primitives.d.ts.map +1 -1
- package/dist/cjs/tlv/diag/Primitives.js +25 -19
- package/dist/cjs/tlv/diag/Primitives.js.map +1 -1
- package/dist/cjs/tlv/diag/Route64.d.ts +3 -2
- package/dist/cjs/tlv/diag/Route64.d.ts.map +1 -1
- package/dist/cjs/tlv/diag/Route64.js +8 -7
- package/dist/cjs/tlv/diag/Route64.js.map +1 -1
- package/dist/cjs/tlv/diag/RouterNeighbor.d.ts +3 -2
- package/dist/cjs/tlv/diag/RouterNeighbor.d.ts.map +1 -1
- package/dist/cjs/tlv/diag/RouterNeighbor.js +13 -11
- package/dist/cjs/tlv/diag/RouterNeighbor.js.map +1 -1
- package/dist/cjs/tlv/diag/Timeout.d.ts +3 -2
- package/dist/cjs/tlv/diag/Timeout.d.ts.map +1 -1
- package/dist/cjs/tlv/diag/Timeout.js +4 -3
- package/dist/cjs/tlv/diag/Timeout.js.map +1 -1
- package/dist/cjs/tlv/diag/VendorInfo.d.ts +13 -12
- package/dist/cjs/tlv/diag/VendorInfo.d.ts.map +1 -1
- package/dist/cjs/tlv/diag/VendorInfo.js +4 -3
- package/dist/cjs/tlv/diag/VendorInfo.js.map +1 -1
- package/dist/cjs/tlv/meshcop/Ip6AddressTlv.d.ts +3 -2
- package/dist/cjs/tlv/meshcop/Ip6AddressTlv.d.ts.map +1 -1
- package/dist/cjs/tlv/meshcop/Ip6AddressTlv.js +7 -4
- package/dist/cjs/tlv/meshcop/Ip6AddressTlv.js.map +1 -1
- package/dist/cjs/tlv/meshcop/UdpEncapsulationTlv.d.ts +4 -3
- package/dist/cjs/tlv/meshcop/UdpEncapsulationTlv.d.ts.map +1 -1
- package/dist/cjs/tlv/meshcop/UdpEncapsulationTlv.js +9 -7
- package/dist/cjs/tlv/meshcop/UdpEncapsulationTlv.js.map +1 -1
- package/dist/cjs/util/meshLocalAddr.d.ts +5 -4
- package/dist/cjs/util/meshLocalAddr.d.ts.map +1 -1
- package/dist/cjs/util/meshLocalAddr.js +6 -4
- package/dist/cjs/util/meshLocalAddr.js.map +1 -1
- package/dist/esm/coap/CoapClient.d.ts +2 -2
- package/dist/esm/coap/CoapClient.d.ts.map +1 -1
- package/dist/esm/coap/CoapClient.js +11 -17
- package/dist/esm/coap/CoapClient.js.map +1 -1
- package/dist/esm/coap/CoapMessage.d.ts +11 -6
- package/dist/esm/coap/CoapMessage.d.ts.map +1 -1
- package/dist/esm/coap/CoapMessage.js +8 -5
- package/dist/esm/coap/CoapMessage.js.map +1 -1
- package/dist/esm/commissioner/Commissioner.d.ts.map +1 -1
- package/dist/esm/commissioner/Commissioner.js +5 -2
- package/dist/esm/commissioner/Commissioner.js.map +1 -1
- package/dist/esm/commissioner/LeadKa.d.ts +3 -3
- package/dist/esm/commissioner/LeadKa.d.ts.map +1 -1
- package/dist/esm/commissioner/LeadKa.js +2 -2
- package/dist/esm/commissioner/LeadKa.js.map +1 -1
- package/dist/esm/commissioner/LeadPet.d.ts +3 -2
- package/dist/esm/commissioner/LeadPet.d.ts.map +1 -1
- package/dist/esm/commissioner/LeadPet.js +4 -3
- package/dist/esm/commissioner/LeadPet.js.map +1 -1
- package/dist/esm/credentials/ThreadCredentialsRegistry.d.ts +5 -5
- package/dist/esm/credentials/ThreadCredentialsRegistry.d.ts.map +1 -1
- package/dist/esm/credentials/ThreadCredentialsRegistry.js +10 -9
- package/dist/esm/credentials/ThreadCredentialsRegistry.js.map +1 -1
- package/dist/esm/credentials/ThreadNetworkCredentials.d.ts +4 -3
- package/dist/esm/credentials/ThreadNetworkCredentials.d.ts.map +1 -1
- package/dist/esm/crypto/AesCmacPrf128.d.ts +4 -14
- package/dist/esm/crypto/AesCmacPrf128.d.ts.map +1 -1
- package/dist/esm/crypto/AesCmacPrf128.js +8 -72
- package/dist/esm/crypto/AesCmacPrf128.js.map +2 -2
- package/dist/esm/crypto/Pbkdf2AesCmac.d.ts +5 -4
- package/dist/esm/crypto/Pbkdf2AesCmac.d.ts.map +1 -1
- package/dist/esm/crypto/Pbkdf2AesCmac.js +6 -5
- package/dist/esm/crypto/Pbkdf2AesCmac.js.map +1 -1
- package/dist/esm/crypto/Pskc.d.ts +4 -3
- package/dist/esm/crypto/Pskc.d.ts.map +1 -1
- package/dist/esm/crypto/Pskc.js +7 -6
- package/dist/esm/crypto/Pskc.js.map +1 -1
- package/dist/esm/crypto/index.d.ts +1 -1
- package/dist/esm/crypto/index.d.ts.map +1 -1
- package/dist/esm/crypto/index.js +1 -2
- package/dist/esm/crypto/index.js.map +1 -1
- package/dist/esm/dataset/OperationalDataset.d.ts +10 -10
- package/dist/esm/dataset/OperationalDataset.d.ts.map +1 -1
- package/dist/esm/dataset/OperationalDataset.js +32 -31
- package/dist/esm/dataset/OperationalDataset.js.map +1 -1
- package/dist/esm/dataset/SecurityPolicy.d.ts +3 -2
- package/dist/esm/dataset/SecurityPolicy.d.ts.map +1 -1
- package/dist/esm/dataset/SecurityPolicy.js +6 -5
- package/dist/esm/dataset/SecurityPolicy.js.map +1 -1
- package/dist/esm/diagnostic/DiagnosticResponse.d.ts +5 -4
- package/dist/esm/diagnostic/DiagnosticResponse.d.ts.map +1 -1
- package/dist/esm/diagnostic/DiagnosticSource.d.ts +2 -2
- package/dist/esm/diagnostic/DiagnosticSource.d.ts.map +1 -1
- package/dist/esm/diagnostic/MeshCopDiagnosticSource.d.ts +7 -3
- package/dist/esm/diagnostic/MeshCopDiagnosticSource.d.ts.map +1 -1
- package/dist/esm/diagnostic/MeshCopDiagnosticSource.js +49 -43
- package/dist/esm/diagnostic/MeshCopDiagnosticSource.js.map +1 -1
- package/dist/esm/diagnostic/connectMeshcop.d.ts.map +1 -1
- package/dist/esm/diagnostic/connectMeshcop.js +6 -13
- package/dist/esm/diagnostic/connectMeshcop.js.map +1 -1
- package/dist/esm/diagnostic/errors.d.ts +1 -1
- package/dist/esm/diagnostic/errors.d.ts.map +1 -1
- package/dist/esm/discovery/BorderRouterRegistry.d.ts.map +1 -1
- package/dist/esm/discovery/BorderRouterRegistry.js +2 -4
- package/dist/esm/discovery/BorderRouterRegistry.js.map +1 -1
- package/dist/esm/dtls/channel/DtlsConnectOpts.d.ts +3 -3
- package/dist/esm/dtls/channel/DtlsConnectOpts.d.ts.map +1 -1
- package/dist/esm/dtls/channel/NobleDtlsChannel.d.ts.map +1 -1
- package/dist/esm/dtls/channel/NobleDtlsChannel.js +90 -58
- package/dist/esm/dtls/channel/NobleDtlsChannel.js.map +1 -1
- package/dist/esm/dtls/ecjpake/EcJpakePms.d.ts +5 -4
- package/dist/esm/dtls/ecjpake/EcJpakePms.d.ts.map +1 -1
- package/dist/esm/dtls/ecjpake/EcJpakePms.js +5 -6
- package/dist/esm/dtls/ecjpake/EcJpakePms.js.map +1 -1
- package/dist/esm/dtls/ecjpake/EcJpakeRound.d.ts +16 -15
- package/dist/esm/dtls/ecjpake/EcJpakeRound.d.ts.map +1 -1
- package/dist/esm/dtls/ecjpake/EcJpakeRound.js +41 -30
- package/dist/esm/dtls/ecjpake/EcJpakeRound.js.map +1 -1
- package/dist/esm/dtls/ecjpake/SchnorrZkp.d.ts +10 -9
- package/dist/esm/dtls/ecjpake/SchnorrZkp.d.ts.map +1 -1
- package/dist/esm/dtls/ecjpake/SchnorrZkp.js +18 -14
- package/dist/esm/dtls/ecjpake/SchnorrZkp.js.map +1 -1
- package/dist/esm/dtls/handshake/ChangeCipherSpec.d.ts +2 -1
- package/dist/esm/dtls/handshake/ChangeCipherSpec.d.ts.map +1 -1
- package/dist/esm/dtls/handshake/ChangeCipherSpec.js +3 -1
- package/dist/esm/dtls/handshake/ChangeCipherSpec.js.map +1 -1
- package/dist/esm/dtls/handshake/ClientHelloMessage.d.ts +27 -4
- package/dist/esm/dtls/handshake/ClientHelloMessage.d.ts.map +1 -1
- package/dist/esm/dtls/handshake/ClientHelloMessage.js +4 -2
- package/dist/esm/dtls/handshake/ClientHelloMessage.js.map +1 -1
- package/dist/esm/dtls/handshake/ClientKeyExchangeMessage.d.ts +2 -1
- package/dist/esm/dtls/handshake/ClientKeyExchangeMessage.d.ts.map +1 -1
- package/dist/esm/dtls/handshake/ClientKeyExchangeMessage.js.map +1 -1
- package/dist/esm/dtls/handshake/DtlsClient.d.ts +9 -6
- package/dist/esm/dtls/handshake/DtlsClient.d.ts.map +1 -1
- package/dist/esm/dtls/handshake/DtlsClient.js +100 -78
- package/dist/esm/dtls/handshake/DtlsClient.js.map +1 -1
- package/dist/esm/dtls/handshake/FinishedMessage.d.ts +10 -3
- package/dist/esm/dtls/handshake/FinishedMessage.d.ts.map +1 -1
- package/dist/esm/dtls/handshake/FinishedMessage.js +5 -3
- package/dist/esm/dtls/handshake/FinishedMessage.js.map +1 -1
- package/dist/esm/dtls/handshake/HandshakeMessage.d.ts +5 -4
- package/dist/esm/dtls/handshake/HandshakeMessage.d.ts.map +1 -1
- package/dist/esm/dtls/handshake/HandshakeMessage.js +14 -12
- package/dist/esm/dtls/handshake/HandshakeMessage.js.map +1 -1
- package/dist/esm/dtls/handshake/HelloVerifyRequestMessage.d.ts +19 -2
- package/dist/esm/dtls/handshake/HelloVerifyRequestMessage.d.ts.map +1 -1
- package/dist/esm/dtls/handshake/HelloVerifyRequestMessage.js +3 -1
- package/dist/esm/dtls/handshake/HelloVerifyRequestMessage.js.map +1 -1
- package/dist/esm/dtls/handshake/ServerHelloDoneMessage.d.ts +2 -1
- package/dist/esm/dtls/handshake/ServerHelloDoneMessage.d.ts.map +1 -1
- package/dist/esm/dtls/handshake/ServerHelloDoneMessage.js +3 -2
- package/dist/esm/dtls/handshake/ServerHelloDoneMessage.js.map +1 -1
- package/dist/esm/dtls/handshake/ServerHelloMessage.d.ts +4 -3
- package/dist/esm/dtls/handshake/ServerHelloMessage.d.ts.map +1 -1
- package/dist/esm/dtls/handshake/ServerHelloMessage.js +3 -1
- package/dist/esm/dtls/handshake/ServerHelloMessage.js.map +1 -1
- package/dist/esm/dtls/handshake/ServerKeyExchangeMessage.d.ts +2 -1
- package/dist/esm/dtls/handshake/ServerKeyExchangeMessage.d.ts.map +1 -1
- package/dist/esm/dtls/handshake/ServerKeyExchangeMessage.js.map +1 -1
- package/dist/esm/dtls/prf/HandshakeTranscript.d.ts +7 -5
- package/dist/esm/dtls/prf/HandshakeTranscript.d.ts.map +1 -1
- package/dist/esm/dtls/prf/HandshakeTranscript.js +15 -10
- package/dist/esm/dtls/prf/HandshakeTranscript.js.map +1 -1
- package/dist/esm/dtls/prf/TlsPrf.d.ts +23 -22
- package/dist/esm/dtls/prf/TlsPrf.d.ts.map +1 -1
- package/dist/esm/dtls/prf/TlsPrf.js +34 -31
- package/dist/esm/dtls/prf/TlsPrf.js.map +1 -1
- package/dist/esm/dtls/record/AesCcm8.d.ts +13 -12
- package/dist/esm/dtls/record/AesCcm8.d.ts.map +1 -1
- package/dist/esm/dtls/record/AesCcm8.js +13 -35
- package/dist/esm/dtls/record/AesCcm8.js.map +1 -1
- package/dist/esm/dtls/record/DtlsCipherState.d.ts +11 -10
- package/dist/esm/dtls/record/DtlsCipherState.d.ts.map +1 -1
- package/dist/esm/dtls/record/DtlsCipherState.js +11 -7
- package/dist/esm/dtls/record/DtlsCipherState.js.map +1 -1
- package/dist/esm/dtls/record/DtlsRecord.d.ts +10 -10
- package/dist/esm/dtls/record/DtlsRecord.d.ts.map +1 -1
- package/dist/esm/dtls/record/DtlsRecord.js +11 -9
- package/dist/esm/dtls/record/DtlsRecord.js.map +1 -1
- package/dist/esm/otbr-rest/OtbrRestCapability.d.ts +3 -4
- package/dist/esm/otbr-rest/OtbrRestCapability.d.ts.map +1 -1
- package/dist/esm/otbr-rest/OtbrRestClient.d.ts +27 -8
- package/dist/esm/otbr-rest/OtbrRestClient.d.ts.map +1 -1
- package/dist/esm/otbr-rest/OtbrRestClient.js +51 -21
- package/dist/esm/otbr-rest/OtbrRestClient.js.map +1 -1
- package/dist/esm/otbr-rest/OtbrRestDiagnosticSource.d.ts +2 -1
- package/dist/esm/otbr-rest/OtbrRestDiagnosticSource.d.ts.map +1 -1
- package/dist/esm/otbr-rest/OtbrRestDiagnosticSource.js +4 -4
- package/dist/esm/otbr-rest/OtbrRestDiagnosticSource.js.map +1 -1
- package/dist/esm/otbr-rest/OtbrRestProbe.d.ts +6 -4
- package/dist/esm/otbr-rest/OtbrRestProbe.d.ts.map +1 -1
- package/dist/esm/otbr-rest/OtbrRestProbe.js +12 -44
- package/dist/esm/otbr-rest/OtbrRestProbe.js.map +1 -1
- package/dist/esm/otbr-rest/caseNormalizer.d.ts +7 -0
- package/dist/esm/otbr-rest/caseNormalizer.d.ts.map +1 -1
- package/dist/esm/otbr-rest/caseNormalizer.js +11 -0
- package/dist/esm/otbr-rest/caseNormalizer.js.map +1 -1
- package/dist/esm/otbr-rest/parseHexBytes.d.ts +22 -0
- package/dist/esm/otbr-rest/parseHexBytes.d.ts.map +1 -0
- package/dist/esm/otbr-rest/parseHexBytes.js +30 -0
- package/dist/esm/otbr-rest/parseHexBytes.js.map +6 -0
- package/dist/esm/otbr-rest/translation.d.ts +2 -1
- package/dist/esm/otbr-rest/translation.d.ts.map +1 -1
- package/dist/esm/otbr-rest/translation.js +16 -18
- package/dist/esm/otbr-rest/translation.js.map +1 -1
- package/dist/esm/selection/selectBr.d.ts +8 -4
- package/dist/esm/selection/selectBr.d.ts.map +1 -1
- package/dist/esm/selection/selectBr.js +6 -5
- package/dist/esm/selection/selectBr.js.map +1 -1
- package/dist/esm/selection/withExtPanIdLock.d.ts +2 -1
- package/dist/esm/selection/withExtPanIdLock.d.ts.map +1 -1
- package/dist/esm/selection/withExtPanIdLock.js.map +1 -1
- package/dist/esm/tlv/BasicTlvCodec.d.ts +4 -4
- package/dist/esm/tlv/BasicTlvCodec.d.ts.map +1 -1
- package/dist/esm/tlv/BasicTlvCodec.js +14 -12
- package/dist/esm/tlv/BasicTlvCodec.js.map +1 -1
- package/dist/esm/tlv/NetworkDiagnosticTlv.d.ts +3 -2
- package/dist/esm/tlv/NetworkDiagnosticTlv.d.ts.map +1 -1
- package/dist/esm/tlv/NetworkDiagnosticTlv.js.map +1 -1
- package/dist/esm/tlv/TypeListTlv.d.ts +3 -2
- package/dist/esm/tlv/TypeListTlv.d.ts.map +1 -1
- package/dist/esm/tlv/TypeListTlv.js +2 -2
- package/dist/esm/tlv/TypeListTlv.js.map +1 -1
- package/dist/esm/tlv/diag/ChildIpv6AddressList.d.ts +3 -2
- package/dist/esm/tlv/diag/ChildIpv6AddressList.d.ts.map +1 -1
- package/dist/esm/tlv/diag/ChildIpv6AddressList.js +5 -3
- package/dist/esm/tlv/diag/ChildIpv6AddressList.js.map +1 -1
- package/dist/esm/tlv/diag/ChildTable.d.ts +3 -2
- package/dist/esm/tlv/diag/ChildTable.d.ts.map +1 -1
- package/dist/esm/tlv/diag/ChildTable.js +8 -7
- package/dist/esm/tlv/diag/ChildTable.js.map +1 -1
- package/dist/esm/tlv/diag/Connectivity.d.ts +3 -2
- package/dist/esm/tlv/diag/Connectivity.d.ts.map +1 -1
- package/dist/esm/tlv/diag/Connectivity.js +14 -14
- package/dist/esm/tlv/diag/Connectivity.js.map +1 -1
- package/dist/esm/tlv/diag/Ipv6AddressList.d.ts +3 -2
- package/dist/esm/tlv/diag/Ipv6AddressList.d.ts.map +1 -1
- package/dist/esm/tlv/diag/Ipv6AddressList.js +7 -6
- package/dist/esm/tlv/diag/Ipv6AddressList.js.map +1 -1
- package/dist/esm/tlv/diag/LeaderData.d.ts +3 -2
- package/dist/esm/tlv/diag/LeaderData.d.ts.map +1 -1
- package/dist/esm/tlv/diag/LeaderData.js +9 -8
- package/dist/esm/tlv/diag/LeaderData.js.map +1 -1
- package/dist/esm/tlv/diag/MacCounters.d.ts +3 -2
- package/dist/esm/tlv/diag/MacCounters.d.ts.map +1 -1
- package/dist/esm/tlv/diag/MacCounters.js +13 -12
- package/dist/esm/tlv/diag/MacCounters.js.map +1 -1
- package/dist/esm/tlv/diag/MleCounters.d.ts +3 -2
- package/dist/esm/tlv/diag/MleCounters.d.ts.map +1 -1
- package/dist/esm/tlv/diag/MleCounters.js +19 -18
- package/dist/esm/tlv/diag/MleCounters.js.map +1 -1
- package/dist/esm/tlv/diag/Mode.d.ts +3 -2
- package/dist/esm/tlv/diag/Mode.d.ts.map +1 -1
- package/dist/esm/tlv/diag/Mode.js +5 -3
- package/dist/esm/tlv/diag/Mode.js.map +1 -1
- package/dist/esm/tlv/diag/NetworkData.d.ts +7 -6
- package/dist/esm/tlv/diag/NetworkData.d.ts.map +1 -1
- package/dist/esm/tlv/diag/NetworkData.js +23 -18
- package/dist/esm/tlv/diag/NetworkData.js.map +1 -1
- package/dist/esm/tlv/diag/Primitives.d.ts +15 -14
- package/dist/esm/tlv/diag/Primitives.d.ts.map +1 -1
- package/dist/esm/tlv/diag/Primitives.js +26 -20
- package/dist/esm/tlv/diag/Primitives.js.map +1 -1
- package/dist/esm/tlv/diag/Route64.d.ts +3 -2
- package/dist/esm/tlv/diag/Route64.d.ts.map +1 -1
- package/dist/esm/tlv/diag/Route64.js +9 -8
- package/dist/esm/tlv/diag/Route64.js.map +1 -1
- package/dist/esm/tlv/diag/RouterNeighbor.d.ts +3 -2
- package/dist/esm/tlv/diag/RouterNeighbor.d.ts.map +1 -1
- package/dist/esm/tlv/diag/RouterNeighbor.js +13 -11
- package/dist/esm/tlv/diag/RouterNeighbor.js.map +1 -1
- package/dist/esm/tlv/diag/Timeout.d.ts +3 -2
- package/dist/esm/tlv/diag/Timeout.d.ts.map +1 -1
- package/dist/esm/tlv/diag/Timeout.js +5 -4
- package/dist/esm/tlv/diag/Timeout.js.map +1 -1
- package/dist/esm/tlv/diag/VendorInfo.d.ts +13 -12
- package/dist/esm/tlv/diag/VendorInfo.d.ts.map +1 -1
- package/dist/esm/tlv/diag/VendorInfo.js +5 -4
- package/dist/esm/tlv/diag/VendorInfo.js.map +1 -1
- package/dist/esm/tlv/meshcop/Ip6AddressTlv.d.ts +3 -2
- package/dist/esm/tlv/meshcop/Ip6AddressTlv.d.ts.map +1 -1
- package/dist/esm/tlv/meshcop/Ip6AddressTlv.js +7 -4
- package/dist/esm/tlv/meshcop/Ip6AddressTlv.js.map +1 -1
- package/dist/esm/tlv/meshcop/UdpEncapsulationTlv.d.ts +4 -3
- package/dist/esm/tlv/meshcop/UdpEncapsulationTlv.d.ts.map +1 -1
- package/dist/esm/tlv/meshcop/UdpEncapsulationTlv.js +10 -8
- package/dist/esm/tlv/meshcop/UdpEncapsulationTlv.js.map +1 -1
- package/dist/esm/util/meshLocalAddr.d.ts +5 -4
- package/dist/esm/util/meshLocalAddr.d.ts.map +1 -1
- package/dist/esm/util/meshLocalAddr.js +7 -5
- package/dist/esm/util/meshLocalAddr.js.map +1 -1
- package/package.json +5 -5
- package/src/coap/CoapClient.ts +13 -20
- package/src/coap/CoapMessage.ts +17 -9
- package/src/commissioner/Commissioner.ts +5 -2
- package/src/commissioner/LeadKa.ts +4 -4
- package/src/commissioner/LeadPet.ts +6 -5
- package/src/credentials/ThreadCredentialsRegistry.ts +14 -13
- package/src/credentials/ThreadNetworkCredentials.ts +5 -3
- package/src/crypto/AesCmacPrf128.ts +10 -87
- package/src/crypto/Pbkdf2AesCmac.ts +14 -10
- package/src/crypto/Pskc.ts +7 -6
- package/src/crypto/index.ts +1 -1
- package/src/dataset/OperationalDataset.ts +48 -47
- package/src/dataset/SecurityPolicy.ts +8 -7
- package/src/diagnostic/DiagnosticResponse.ts +5 -4
- package/src/diagnostic/DiagnosticSource.ts +2 -2
- package/src/diagnostic/MeshCopDiagnosticSource.ts +80 -64
- package/src/diagnostic/connectMeshcop.ts +6 -14
- package/src/diagnostic/errors.ts +1 -1
- package/src/discovery/BorderRouterRegistry.ts +2 -4
- package/src/dtls/channel/DtlsConnectOpts.ts +3 -3
- package/src/dtls/channel/NobleDtlsChannel.ts +96 -60
- package/src/dtls/ecjpake/EcJpakePms.ts +5 -6
- package/src/dtls/ecjpake/EcJpakeRound.ts +57 -37
- package/src/dtls/ecjpake/SchnorrZkp.ts +43 -30
- package/src/dtls/handshake/ChangeCipherSpec.ts +3 -1
- package/src/dtls/handshake/ClientHelloMessage.ts +8 -6
- package/src/dtls/handshake/ClientKeyExchangeMessage.ts +2 -1
- package/src/dtls/handshake/DtlsClient.ts +119 -95
- package/src/dtls/handshake/FinishedMessage.ts +5 -3
- package/src/dtls/handshake/HandshakeMessage.ts +18 -16
- package/src/dtls/handshake/HelloVerifyRequestMessage.ts +3 -1
- package/src/dtls/handshake/ServerHelloDoneMessage.ts +5 -3
- package/src/dtls/handshake/ServerHelloMessage.ts +5 -3
- package/src/dtls/handshake/ServerKeyExchangeMessage.ts +2 -1
- package/src/dtls/prf/HandshakeTranscript.ts +18 -11
- package/src/dtls/prf/TlsPrf.ts +68 -54
- package/src/dtls/record/AesCcm8.ts +23 -49
- package/src/dtls/record/DtlsCipherState.ts +20 -16
- package/src/dtls/record/DtlsRecord.ts +17 -15
- package/src/otbr-rest/OtbrRestCapability.ts +4 -4
- package/src/otbr-rest/OtbrRestClient.ts +64 -29
- package/src/otbr-rest/OtbrRestDiagnosticSource.ts +5 -5
- package/src/otbr-rest/OtbrRestProbe.ts +12 -47
- package/src/otbr-rest/caseNormalizer.ts +17 -0
- package/src/otbr-rest/parseHexBytes.ts +47 -0
- package/src/otbr-rest/translation.ts +24 -22
- package/src/selection/selectBr.ts +26 -13
- package/src/selection/withExtPanIdLock.ts +1 -1
- package/src/tlv/BasicTlvCodec.ts +17 -15
- package/src/tlv/NetworkDiagnosticTlv.ts +3 -2
- package/src/tlv/TypeListTlv.ts +4 -4
- package/src/tlv/diag/ChildIpv6AddressList.ts +8 -5
- package/src/tlv/diag/ChildTable.ts +10 -9
- package/src/tlv/diag/Connectivity.ts +16 -16
- package/src/tlv/diag/Ipv6AddressList.ts +9 -8
- package/src/tlv/diag/LeaderData.ts +11 -10
- package/src/tlv/diag/MacCounters.ts +15 -14
- package/src/tlv/diag/MleCounters.ts +21 -20
- package/src/tlv/diag/Mode.ts +7 -5
- package/src/tlv/diag/NetworkData.ts +31 -26
- package/src/tlv/diag/Primitives.ts +42 -36
- package/src/tlv/diag/Route64.ts +11 -10
- package/src/tlv/diag/RouterNeighbor.ts +16 -13
- package/src/tlv/diag/Timeout.ts +7 -6
- package/src/tlv/diag/VendorInfo.ts +19 -18
- package/src/tlv/meshcop/Ip6AddressTlv.ts +9 -6
- package/src/tlv/meshcop/UdpEncapsulationTlv.ts +13 -11
- package/src/util/meshLocalAddr.ts +10 -8
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { Bytes, ImplementationError, Millis, Seconds, Time } from "@matter/general";
|
|
7
7
|
import { OperationalDataset } from "../dataset/OperationalDataset.js";
|
|
8
|
-
import { normalizeKeys } from "./caseNormalizer.js";
|
|
8
|
+
import { detectKeyFormat, normalizeKeys } from "./caseNormalizer.js";
|
|
9
9
|
import { OtbrRestError } from "./OtbrRestError.js";
|
|
10
|
+
import { parseHexBytes, parseRloc16 } from "./parseHexBytes.js";
|
|
10
11
|
const DEFAULT_PORT = 8081;
|
|
11
12
|
const DEFAULT_TIMEOUT = Seconds(5);
|
|
12
13
|
const HTTP_NO_CONTENT = 204;
|
|
@@ -39,6 +40,20 @@ function expectNumber(record, key, where) {
|
|
|
39
40
|
}
|
|
40
41
|
return value;
|
|
41
42
|
}
|
|
43
|
+
function optionalNumber(record, ...keys) {
|
|
44
|
+
for (const key of keys) {
|
|
45
|
+
const value = record[key];
|
|
46
|
+
if (typeof value === "number" && Number.isFinite(value)) return value;
|
|
47
|
+
}
|
|
48
|
+
return void 0;
|
|
49
|
+
}
|
|
50
|
+
function expectRloc16(record, where) {
|
|
51
|
+
const parsed = parseRloc16(record["rloc16"]);
|
|
52
|
+
if (parsed === void 0) {
|
|
53
|
+
throw new OtbrRestError("rest_protocol", `${where}: missing or invalid field rloc16`);
|
|
54
|
+
}
|
|
55
|
+
return parsed;
|
|
56
|
+
}
|
|
42
57
|
function expectRecord(record, key, where) {
|
|
43
58
|
const value = record[key];
|
|
44
59
|
if (!isRecord(value)) {
|
|
@@ -46,15 +61,6 @@ function expectRecord(record, key, where) {
|
|
|
46
61
|
}
|
|
47
62
|
return value;
|
|
48
63
|
}
|
|
49
|
-
function parseHexBytes(hex, expectedLen, where) {
|
|
50
|
-
if (!/^[0-9a-fA-F]*$/.test(hex)) {
|
|
51
|
-
throw new OtbrRestError("rest_protocol", `${where}: not hex`);
|
|
52
|
-
}
|
|
53
|
-
if (hex.length !== expectedLen * 2) {
|
|
54
|
-
throw new OtbrRestError("rest_protocol", `${where}: expected ${expectedLen} bytes, got ${hex.length / 2}`);
|
|
55
|
-
}
|
|
56
|
-
return Bytes.of(Bytes.fromHex(hex));
|
|
57
|
-
}
|
|
58
64
|
class OtbrRestClient {
|
|
59
65
|
#baseUrl;
|
|
60
66
|
#timeout;
|
|
@@ -73,7 +79,7 @@ class OtbrRestClient {
|
|
|
73
79
|
/**
|
|
74
80
|
* Fetch the current node summary from the OTBR `/node` endpoint.
|
|
75
81
|
*
|
|
76
|
-
* @returns Parsed node info with typed fields (binary fields as `
|
|
82
|
+
* @returns Parsed node info with typed fields (binary fields as `Bytes`).
|
|
77
83
|
* @throws {@link OtbrRestError} with code `"rest_unreachable"` on network error or timeout.
|
|
78
84
|
* @throws {@link OtbrRestError} with code `"rest_protocol"` when the response is
|
|
79
85
|
* not a valid JSON object or a required field is missing or has the wrong type.
|
|
@@ -93,15 +99,38 @@ class OtbrRestClient {
|
|
|
93
99
|
leaderRouterId: expectNumber(leaderRaw, "leaderRouterId", `${where}.leaderData`)
|
|
94
100
|
};
|
|
95
101
|
return {
|
|
96
|
-
baId: parseHexBytes(expectString(body, "baId", where),
|
|
102
|
+
baId: parseHexBytes(expectString(body, "baId", where), `${where}.baId`, 16),
|
|
97
103
|
state: expectString(body, "state", where),
|
|
98
|
-
numOfRouter:
|
|
104
|
+
numOfRouter: optionalNumber(body, "numOfRouter", "routerCount"),
|
|
99
105
|
rlocAddress: expectString(body, "rlocAddress", where),
|
|
100
|
-
extAddress: parseHexBytes(expectString(body, "extAddress", where),
|
|
106
|
+
extAddress: parseHexBytes(expectString(body, "extAddress", where), `${where}.extAddress`, 8),
|
|
101
107
|
networkName: expectString(body, "networkName", where),
|
|
102
|
-
rloc16:
|
|
108
|
+
rloc16: expectRloc16(body, where),
|
|
103
109
|
leaderData,
|
|
104
|
-
extPanId: parseHexBytes(expectString(body, "extPanId", where),
|
|
110
|
+
extPanId: parseHexBytes(expectString(body, "extPanId", where), `${where}.extPanId`, 8)
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Lightweight probe of the `/node` endpoint for {@link OtbrRestProbe}.
|
|
115
|
+
*
|
|
116
|
+
* Fetches `/node` once and returns only the fields needed to identify an
|
|
117
|
+
* OTBR REST surface — the observed key casing plus the network name and
|
|
118
|
+
* Extended PAN ID. Unlike {@link getNode} it does not validate the full
|
|
119
|
+
* node schema, so a build that reshapes non-essential fields still probes
|
|
120
|
+
* cleanly.
|
|
121
|
+
*
|
|
122
|
+
* @throws {@link OtbrRestError} `"rest_protocol"` when the response is not an
|
|
123
|
+
* OTBR node object or lacks `networkName`/`extPanId`.
|
|
124
|
+
*/
|
|
125
|
+
async probeNode() {
|
|
126
|
+
const { body, keyFormat } = await this.#fetchJson("/node");
|
|
127
|
+
if (!isRecord(body) || keyFormat === null) {
|
|
128
|
+
throw new OtbrRestError("rest_protocol", "/node did not return an OTBR node object");
|
|
129
|
+
}
|
|
130
|
+
return {
|
|
131
|
+
keyFormat,
|
|
132
|
+
networkName: expectString(body, "networkName", "/node"),
|
|
133
|
+
extPanId: parseHexBytes(expectString(body, "extPanId", "/node"), "/node.extPanId", 8)
|
|
105
134
|
};
|
|
106
135
|
}
|
|
107
136
|
/**
|
|
@@ -179,13 +208,13 @@ class OtbrRestClient {
|
|
|
179
208
|
* Fetch the 8-byte IEEE EUI-64 extended address from `/node/ext-address`.
|
|
180
209
|
*/
|
|
181
210
|
async getExtAddress() {
|
|
182
|
-
return parseHexBytes(await this.#getJsonString("/node/ext-address"),
|
|
211
|
+
return parseHexBytes(await this.#getJsonString("/node/ext-address"), "/node/ext-address", 8);
|
|
183
212
|
}
|
|
184
213
|
/**
|
|
185
214
|
* Fetch the 8-byte Extended PAN ID from `/node/ext-panid`.
|
|
186
215
|
*/
|
|
187
216
|
async getExtPanId() {
|
|
188
|
-
return parseHexBytes(await this.#getJsonString("/node/ext-panid"),
|
|
217
|
+
return parseHexBytes(await this.#getJsonString("/node/ext-panid"), "/node/ext-panid", 8);
|
|
189
218
|
}
|
|
190
219
|
/**
|
|
191
220
|
* Fetch the 16-byte Border Agent ID from `/node/ba-id`.
|
|
@@ -193,7 +222,7 @@ class OtbrRestClient {
|
|
|
193
222
|
* @throws {@link OtbrRestError} `"rest_unsupported"` on older firmware that lacks this endpoint (404).
|
|
194
223
|
*/
|
|
195
224
|
async getBorderAgentId() {
|
|
196
|
-
return parseHexBytes(await this.#getJsonString("/node/ba-id"),
|
|
225
|
+
return parseHexBytes(await this.#getJsonString("/node/ba-id"), "/node/ba-id", 16);
|
|
197
226
|
}
|
|
198
227
|
/**
|
|
199
228
|
* Fetch the leader data record from `/node/leader-data`.
|
|
@@ -442,7 +471,7 @@ class OtbrRestClient {
|
|
|
442
471
|
async #fetchJson(path) {
|
|
443
472
|
const response = await this.#doFetch(path, "application/json");
|
|
444
473
|
if (response.status === HTTP_NO_CONTENT) {
|
|
445
|
-
return { status: response.status, body: null };
|
|
474
|
+
return { status: response.status, body: null, keyFormat: null };
|
|
446
475
|
}
|
|
447
476
|
if (!response.ok) {
|
|
448
477
|
throw new OtbrRestError(errorCodeForStatus(response.status), `GET ${path} returned ${response.status}`, {
|
|
@@ -457,7 +486,8 @@ class OtbrRestClient {
|
|
|
457
486
|
cause: err instanceof Error ? err : void 0
|
|
458
487
|
});
|
|
459
488
|
}
|
|
460
|
-
|
|
489
|
+
const keyFormat = isRecord(parsed) ? detectKeyFormat(parsed) : null;
|
|
490
|
+
return { status: response.status, body: normalizeKeys(parsed), keyFormat };
|
|
461
491
|
}
|
|
462
492
|
async #fetchText(path) {
|
|
463
493
|
const response = await this.#doFetch(path, "text/plain");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/otbr-rest/OtbrRestClient.ts"],
|
|
4
|
-
"mappings": "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",
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Copyright 2022-2026 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { Bytes } from "@matter/general";
|
|
6
7
|
import type { DiagnosticResponse } from "../diagnostic/DiagnosticResponse.js";
|
|
7
8
|
import type { DiagnosticSource, QueryMulticastHandle, QueryMulticastOptions } from "../diagnostic/DiagnosticSource.js";
|
|
8
9
|
import type { OtbrRestCapability } from "./OtbrRestCapability.js";
|
|
@@ -33,7 +34,7 @@ export declare class OtbrRestDiagnosticSource implements DiagnosticSource {
|
|
|
33
34
|
*
|
|
34
35
|
* @param extPanId - 8-byte Extended PAN ID of the network to query.
|
|
35
36
|
*/
|
|
36
|
-
canQuery(extPanId:
|
|
37
|
+
canQuery(extPanId: Bytes): boolean;
|
|
37
38
|
/**
|
|
38
39
|
* Query diagnostics for a single mesh node by RLOC16.
|
|
39
40
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OtbrRestDiagnosticSource.d.ts","sourceRoot":"","sources":["../../../src/otbr-rest/OtbrRestDiagnosticSource.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"OtbrRestDiagnosticSource.d.ts","sourceRoot":"","sources":["../../../src/otbr-rest/OtbrRestDiagnosticSource.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAA+B,MAAM,iBAAiB,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAEvH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAM1D,KAAK,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,gBAAgB,GAAG,SAAS,GAAG,yBAAyB,CAAC,CAAC;AAEjG;;;;;;;;;;;GAWG;AACH,qBAAa,wBAAyB,YAAW,gBAAgB;;IAC7D,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAU;IAKrC;;;OAGG;IACH,YAAY,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,kBAAkB,EAG7D;IAED;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,KAAK,GAAG,OAAO,CAEjC;IAED;;;;;;;;;;;;OAYG;IACG,YAAY,CAAC,MAAM,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAoB7G;IAED;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,EAAE,KAAK,EAAE,qBAAqB,GAAG,oBAAoB,CAwChG;IAED;;;;;;;;;;;;;OAaG;IACG,aAAa,CACf,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,EACzC,SAAS,GAAE,aAAa,CAAC,MAAM,CAA2B,GAC3D,OAAO,CAAC,IAAI,CAAC,CAQf;CACJ"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright 2022-2026 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { Bytes, Logger, Observable } from "@matter/general";
|
|
6
|
+
import { Bytes, errorOf, Logger, Observable } from "@matter/general";
|
|
7
7
|
import { DEFAULT_RESET_TLV_TYPES } from "../diagnostic/DiagnosticSource.js";
|
|
8
8
|
import { OtbrRestError } from "./OtbrRestError.js";
|
|
9
9
|
import { translateNodeJson } from "./translation.js";
|
|
@@ -81,17 +81,17 @@ class OtbrRestDiagnosticSource {
|
|
|
81
81
|
rejectDone = reject;
|
|
82
82
|
});
|
|
83
83
|
const start = Date.now();
|
|
84
|
-
logger.debug(`
|
|
84
|
+
logger.debug(`REST GET /diagnostics ${this.#capability.baseUrl}`);
|
|
85
85
|
void (async () => {
|
|
86
86
|
try {
|
|
87
87
|
const list = await this.#client.getDiagnostics();
|
|
88
88
|
for (const entry of list) {
|
|
89
89
|
onNode.emit(translateNodeJson(entry));
|
|
90
90
|
}
|
|
91
|
-
logger.debug(`
|
|
91
|
+
logger.debug(`REST /diagnostics OK nodes=${list.length} duration=${Date.now() - start}ms`);
|
|
92
92
|
resolveDone();
|
|
93
93
|
} catch (err) {
|
|
94
|
-
const e =
|
|
94
|
+
const e = errorOf(err);
|
|
95
95
|
onError.emit(e);
|
|
96
96
|
rejectDone(e);
|
|
97
97
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/otbr-rest/OtbrRestDiagnosticSource.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,OAAO,QAAQ,kBAAkB;
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,OAAO,SAAS,QAAQ,kBAAkB;AAGnD,SAAS,+BAA+B;AAGxC,SAAS,qBAAqB;AAC9B,SAAS,yBAAyB;AAElC,MAAM,SAAS,OAAO,IAAI,0BAA0B;AAgB7C,MAAM,yBAAqD;AAAA,EACrD,OAAO;AAAA,EAEP;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMT,YAAY,QAAoB,YAAgC;AAC5D,SAAK,UAAU;AACf,SAAK,cAAc;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAS,UAA0B;AAC/B,WAAO,MAAM,SAAS,UAAU,KAAK,YAAY,QAAQ;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeA,MAAM,aAAa,QAA0C,WAAkD;AAC3G,QAAI,OAAO,OAAO,UAAa,OAAO,WAAW,QAAW;AACxD,YAAM,IAAI;AAAA,QACN;AAAA,QACA;AAAA,MACJ;AAAA,IACJ;AACA,QAAI,OAAO,WAAW,QAAW;AAC7B,YAAM,IAAI,cAAc,iBAAiB,6DAA6D;AAAA,IAC1G;AAKA,UAAM,OAAO,MAAM,KAAK,QAAQ,eAAe;AAC/C,eAAW,SAAS,MAAM;AACtB,YAAM,UAAU,kBAAkB,KAAK;AACvC,UAAI,QAAQ,WAAW,OAAO,OAAQ,QAAO;AAAA,IACjD;AACA,UAAM,IAAI,cAAc,iBAAiB,YAAY,OAAO,OAAO,SAAS,EAAE,CAAC,4BAA4B;AAAA,EAC/G;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeA,eAAe,QAA+B,OAAoD;AAK9F,UAAM,SAAS,IAAI,WAAiC;AACpD,UAAM,UAAU,IAAI,WAAoB;AACxC,QAAI;AACJ,QAAI;AACJ,UAAM,OAAO,IAAI,QAAc,CAAC,SAAS,WAAW;AAChD,oBAAc;AACd,mBAAa;AAAA,IACjB,CAAC;AAED,UAAM,QAAQ,KAAK,IAAI;AACvB,WAAO,MAAM,yBAAyB,KAAK,YAAY,OAAO,EAAE;AAChE,UAAM,YAAY;AACd,UAAI;AACA,cAAM,OAAO,MAAM,KAAK,QAAQ,eAAe;AAC/C,mBAAW,SAAS,MAAM;AACtB,iBAAO,KAAK,kBAAkB,KAAK,CAAC;AAAA,QACxC;AACA,eAAO,MAAM,8BAA8B,KAAK,MAAM,aAAa,KAAK,IAAI,IAAI,KAAK,IAAI;AACzF,oBAAY;AAAA,MAChB,SAAS,KAAK;AACV,cAAM,IAAI,QAAQ,GAAG;AACrB,gBAAQ,KAAK,CAAC;AACd,mBAAW,CAAC;AAAA,MAChB;AAAA,IACJ,GAAG;AAEH,WAAO;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO,YAAY;AAEf,cAAM,KAAK,MAAM,MAAM;AAAA,QAAC,CAAC;AAAA,MAC7B;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBA,MAAM,cACF,SACA,YAAmC,yBACtB;AACb,QAAI,KAAK,YAAY,cAAc,SAAS;AACxC,YAAM,IAAI;AAAA,QACN;AAAA,QACA;AAAA,MACJ;AAAA,IACJ;AACA,UAAM,KAAK,QAAQ,wBAAwB,EAAE,QAAQ,8BAA8B,CAAC;AAAA,EACxF;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -7,10 +7,12 @@ import type { OtbrRestCapability } from "./OtbrRestCapability.js";
|
|
|
7
7
|
export declare class OtbrRestProbe {
|
|
8
8
|
/**
|
|
9
9
|
* Probe a host:port for OTBR REST. Returns the detected capability or
|
|
10
|
-
* `null` if the endpoint is not OTBR or not reachable within
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* legacy
|
|
10
|
+
* `null` if the endpoint is not OTBR or not reachable within `timeoutMs`.
|
|
11
|
+
*
|
|
12
|
+
* A single `GET /node` both confirms the endpoint is OTBR and reveals its
|
|
13
|
+
* key casing: legacy builds emit PascalCase keys, post-2024 builds
|
|
14
|
+
* camelCase. Anything that is not a JSON object carrying `networkName` and
|
|
15
|
+
* `extPanId` is treated as "not OTBR".
|
|
14
16
|
*/
|
|
15
17
|
static probe(host: string, port?: number, timeoutMs?: number): Promise<OtbrRestCapability | null>;
|
|
16
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OtbrRestProbe.d.ts","sourceRoot":"","sources":["../../../src/otbr-rest/OtbrRestProbe.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"OtbrRestProbe.d.ts","sourceRoot":"","sources":["../../../src/otbr-rest/OtbrRestProbe.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AASlE,qBAAa,aAAa;IACtB;;;;;;;;OAQG;IACH,OAAa,KAAK,CACd,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,MAA2B,EACjC,SAAS,GAAE,MAA8B,GAC1C,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAkBpC;CACJ"}
|
|
@@ -3,73 +3,41 @@
|
|
|
3
3
|
* Copyright 2022-2026 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { Bytes, Logger,
|
|
6
|
+
import { Bytes, Logger, Seconds } from "@matter/general";
|
|
7
7
|
import { OtbrRestClient } from "./OtbrRestClient.js";
|
|
8
8
|
import { OtbrRestError } from "./OtbrRestError.js";
|
|
9
9
|
const logger = Logger.get("OtbrRestProbe");
|
|
10
10
|
const DEFAULT_PROBE_PORT = 8081;
|
|
11
11
|
const DEFAULT_PROBE_TIMEOUT = Seconds(1);
|
|
12
|
-
const HTTP_OK = 200;
|
|
13
|
-
const HTTP_NOT_FOUND = 404;
|
|
14
12
|
class OtbrRestProbe {
|
|
15
13
|
/**
|
|
16
14
|
* Probe a host:port for OTBR REST. Returns the detected capability or
|
|
17
|
-
* `null` if the endpoint is not OTBR or not reachable within
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* legacy
|
|
15
|
+
* `null` if the endpoint is not OTBR or not reachable within `timeoutMs`.
|
|
16
|
+
*
|
|
17
|
+
* A single `GET /node` both confirms the endpoint is OTBR and reveals its
|
|
18
|
+
* key casing: legacy builds emit PascalCase keys, post-2024 builds
|
|
19
|
+
* camelCase. Anything that is not a JSON object carrying `networkName` and
|
|
20
|
+
* `extPanId` is treated as "not OTBR".
|
|
21
21
|
*/
|
|
22
22
|
static async probe(host, port = DEFAULT_PROBE_PORT, timeoutMs = DEFAULT_PROBE_TIMEOUT) {
|
|
23
23
|
const client = new OtbrRestClient({ host, port, timeoutMs });
|
|
24
24
|
const baseUrl = client.baseUrl;
|
|
25
|
-
logger.debug(`
|
|
26
|
-
const keyFormat = await detectCase(baseUrl, timeoutMs);
|
|
27
|
-
if (keyFormat === null) {
|
|
28
|
-
logger.debug(`[ThreadDiag] probe MISS ${baseUrl} (case detect failed)`);
|
|
29
|
-
return null;
|
|
30
|
-
}
|
|
25
|
+
logger.debug(`probe START ${baseUrl} timeout=${timeoutMs}ms`);
|
|
31
26
|
try {
|
|
32
|
-
const
|
|
27
|
+
const { keyFormat, networkName, extPanId } = await client.probeNode();
|
|
33
28
|
logger.debug(
|
|
34
|
-
`
|
|
29
|
+
`probe OK ${baseUrl} keyFormat=${keyFormat} xp=${Bytes.toHex(extPanId).toUpperCase()} network="${networkName}"`
|
|
35
30
|
);
|
|
36
|
-
return {
|
|
37
|
-
baseUrl,
|
|
38
|
-
keyFormat,
|
|
39
|
-
probedAt: Date.now(),
|
|
40
|
-
networkName: node.networkName,
|
|
41
|
-
extPanId: node.extPanId
|
|
42
|
-
};
|
|
31
|
+
return { baseUrl, keyFormat, probedAt: Date.now(), networkName, extPanId };
|
|
43
32
|
} catch (err) {
|
|
44
33
|
if (err instanceof OtbrRestError) {
|
|
45
|
-
logger.debug(`
|
|
34
|
+
logger.debug(`probe MISS ${baseUrl} /node ${err.code} (${err.message})`);
|
|
46
35
|
return null;
|
|
47
36
|
}
|
|
48
37
|
throw err;
|
|
49
38
|
}
|
|
50
39
|
}
|
|
51
40
|
}
|
|
52
|
-
async function detectCase(baseUrl, timeoutMs) {
|
|
53
|
-
const controller = new AbortController();
|
|
54
|
-
const timer = Time.getTimer("otbr-probe-timeout", Millis(timeoutMs), () => controller.abort()).start();
|
|
55
|
-
try {
|
|
56
|
-
const response = await fetch(`${baseUrl}/api/actions`, {
|
|
57
|
-
method: "GET",
|
|
58
|
-
headers: { Accept: "application/json" },
|
|
59
|
-
signal: controller.signal
|
|
60
|
-
});
|
|
61
|
-
if (response.status === HTTP_OK) return "camel";
|
|
62
|
-
if (response.status === HTTP_NOT_FOUND) return "pascal";
|
|
63
|
-
logger.debug(`probe of ${baseUrl} rejected: /api/actions returned ${response.status}`);
|
|
64
|
-
return null;
|
|
65
|
-
} catch (err) {
|
|
66
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
67
|
-
logger.debug(`probe of ${baseUrl} rejected: /api/actions ${message}`);
|
|
68
|
-
return null;
|
|
69
|
-
} finally {
|
|
70
|
-
timer.stop();
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
41
|
export {
|
|
74
42
|
OtbrRestProbe
|
|
75
43
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/otbr-rest/OtbrRestProbe.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,OAAO,QAAQ,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,OAAO,QAAQ,eAAe;AAEvC,SAAS,sBAAsB;AAC/B,SAAS,qBAAqB;AAE9B,MAAM,SAAS,OAAO,IAAI,eAAe;AAEzC,MAAM,qBAAqB;AAC3B,MAAM,wBAAwB,QAAQ,CAAC;AAEhC,MAAM,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUvB,aAAa,MACT,MACA,OAAe,oBACf,YAAoB,uBACc;AAClC,UAAM,SAAS,IAAI,eAAe,EAAE,MAAM,MAAM,UAAU,CAAC;AAC3D,UAAM,UAAU,OAAO;AACvB,WAAO,MAAM,eAAe,OAAO,YAAY,SAAS,IAAI;AAE5D,QAAI;AACA,YAAM,EAAE,WAAW,aAAa,SAAS,IAAI,MAAM,OAAO,UAAU;AACpE,aAAO;AAAA,QACH,YAAY,OAAO,cAAc,SAAS,OAAO,MAAM,MAAM,QAAQ,EAAE,YAAY,CAAC,aAAa,WAAW;AAAA,MAChH;AACA,aAAO,EAAE,SAAS,WAAW,UAAU,KAAK,IAAI,GAAG,aAAa,SAAS;AAAA,IAC7E,SAAS,KAAK;AACV,UAAI,eAAe,eAAe;AAC9B,eAAO,MAAM,cAAc,OAAO,UAAU,IAAI,IAAI,KAAK,IAAI,OAAO,GAAG;AACvE,eAAO;AAAA,MACX;AACA,YAAM;AAAA,IACV;AAAA,EACJ;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -3,6 +3,13 @@
|
|
|
3
3
|
* Copyright 2022-2026 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
/**
|
|
7
|
+
* Classify an OTBR REST response object by its key casing: legacy builds emit
|
|
8
|
+
* PascalCase (`NetworkName`), post-2024 builds camelCase (`networkName`). Any
|
|
9
|
+
* uppercase-first key marks the object as pascal; a non-empty object with only
|
|
10
|
+
* lowercase-first keys is camel. An empty object yields `null` — no signal.
|
|
11
|
+
*/
|
|
12
|
+
export declare function detectKeyFormat(raw: Record<string, unknown>): "camel" | "pascal" | null;
|
|
6
13
|
/**
|
|
7
14
|
* Recursively rewrites object keys from PascalCase (or already-camelCase) to
|
|
8
15
|
* camelCase. Idempotent — running it twice yields identical output. Arrays,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"caseNormalizer.d.ts","sourceRoot":"","sources":["../../../src/otbr-rest/caseNormalizer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA2BH;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAYrD"}
|
|
1
|
+
{"version":3,"file":"caseNormalizer.d.ts","sourceRoot":"","sources":["../../../src/otbr-rest/caseNormalizer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA2BH;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,GAAG,QAAQ,GAAG,IAAI,CASvF;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAYrD"}
|
|
@@ -20,6 +20,16 @@ function isPlainObject(value) {
|
|
|
20
20
|
const proto = Object.getPrototypeOf(value);
|
|
21
21
|
return proto === Object.prototype || proto === null;
|
|
22
22
|
}
|
|
23
|
+
function detectKeyFormat(raw) {
|
|
24
|
+
let sawKey = false;
|
|
25
|
+
for (const key of Object.keys(raw)) {
|
|
26
|
+
if (key.length === 0) continue;
|
|
27
|
+
sawKey = true;
|
|
28
|
+
const first = key.charCodeAt(0);
|
|
29
|
+
if (first >= 65 && first <= 90) return "pascal";
|
|
30
|
+
}
|
|
31
|
+
return sawKey ? "camel" : null;
|
|
32
|
+
}
|
|
23
33
|
function normalizeKeys(value) {
|
|
24
34
|
if (Array.isArray(value)) {
|
|
25
35
|
return value.map((item) => normalizeKeys(item));
|
|
@@ -34,6 +44,7 @@ function normalizeKeys(value) {
|
|
|
34
44
|
return value;
|
|
35
45
|
}
|
|
36
46
|
export {
|
|
47
|
+
detectKeyFormat,
|
|
37
48
|
normalizeKeys
|
|
38
49
|
};
|
|
39
50
|
//# sourceMappingURL=caseNormalizer.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/otbr-rest/caseNormalizer.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAWA,MAAM,YAA8C;AAAA,EAChD,MAAM;AAAA,EACN,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,MAAM;AACV;AAEA,SAAS,aAAa,KAAqB;AACvC,QAAM,SAAS,UAAU,GAAG;AAC5B,MAAI,WAAW,OAAW,QAAO;AACjC,MAAI,IAAI,WAAW,EAAG,QAAO;AAC7B,SAAO,IAAI,OAAO,CAAC,EAAE,YAAY,IAAI,IAAI,MAAM,CAAC;AACpD;AAEA,SAAS,cAAc,OAAkD;AACrE,MAAI,UAAU,QAAQ,OAAO,UAAU,SAAU,QAAO;AACxD,QAAM,QAAQ,OAAO,eAAe,KAAK;AACzC,SAAO,UAAU,OAAO,aAAa,UAAU;AACnD;AAOO,SAAS,cAAc,OAAyB;AACnD,MAAI,MAAM,QAAQ,KAAK,GAAG;AACtB,WAAO,MAAM,IAAI,UAAQ,cAAc,IAAI,CAAC;AAAA,EAChD;AACA,MAAI,cAAc,KAAK,GAAG;AACtB,UAAM,MAA+B,CAAC;AACtC,eAAW,CAAC,GAAG,CAAC,KAAK,OAAO,QAAQ,KAAK,GAAG;AACxC,UAAI,aAAa,CAAC,CAAC,IAAI,cAAc,CAAC;AAAA,IAC1C;AACA,WAAO;AAAA,EACX;AACA,SAAO;AACX;",
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAWA,MAAM,YAA8C;AAAA,EAChD,MAAM;AAAA,EACN,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,MAAM;AACV;AAEA,SAAS,aAAa,KAAqB;AACvC,QAAM,SAAS,UAAU,GAAG;AAC5B,MAAI,WAAW,OAAW,QAAO;AACjC,MAAI,IAAI,WAAW,EAAG,QAAO;AAC7B,SAAO,IAAI,OAAO,CAAC,EAAE,YAAY,IAAI,IAAI,MAAM,CAAC;AACpD;AAEA,SAAS,cAAc,OAAkD;AACrE,MAAI,UAAU,QAAQ,OAAO,UAAU,SAAU,QAAO;AACxD,QAAM,QAAQ,OAAO,eAAe,KAAK;AACzC,SAAO,UAAU,OAAO,aAAa,UAAU;AACnD;AAQO,SAAS,gBAAgB,KAAyD;AACrF,MAAI,SAAS;AACb,aAAW,OAAO,OAAO,KAAK,GAAG,GAAG;AAChC,QAAI,IAAI,WAAW,EAAG;AACtB,aAAS;AACT,UAAM,QAAQ,IAAI,WAAW,CAAC;AAC9B,QAAI,SAAS,MAAM,SAAS,GAAI,QAAO;AAAA,EAC3C;AACA,SAAO,SAAS,UAAU;AAC9B;AAOO,SAAS,cAAc,OAAyB;AACnD,MAAI,MAAM,QAAQ,KAAK,GAAG;AACtB,WAAO,MAAM,IAAI,UAAQ,cAAc,IAAI,CAAC;AAAA,EAChD;AACA,MAAI,cAAc,KAAK,GAAG;AACtB,UAAM,MAA+B,CAAC;AACtC,eAAW,CAAC,GAAG,CAAC,KAAK,OAAO,QAAQ,KAAK,GAAG;AACxC,UAAI,aAAa,CAAC,CAAC,IAAI,cAAc,CAAC;AAAA,IAC1C;AACA,WAAO;AAAA,EACX;AACA,SAAO;AACX;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2026 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Bytes } from "@matter/general";
|
|
7
|
+
/**
|
|
8
|
+
* Decode a hex string into {@link Bytes}, rejecting non-hex characters, odd
|
|
9
|
+
* length, and (if `expectedLen` is given) a wrong byte count.
|
|
10
|
+
*
|
|
11
|
+
* `Bytes.fromHex` does not itself reject non-hex characters, so this
|
|
12
|
+
* validation is load-bearing.
|
|
13
|
+
*/
|
|
14
|
+
export declare function parseHexBytes(hex: string, where: string, expectedLen?: number): Bytes;
|
|
15
|
+
/**
|
|
16
|
+
* Parse a 16-bit RLOC, accepting either a JSON number (legacy builds) or a hex
|
|
17
|
+
* string like `"0x4800"` (post-2024 builds). Returns `undefined` for absent,
|
|
18
|
+
* malformed, or out-of-16-bit-range input — callers decide whether that is an
|
|
19
|
+
* error (`/node`) or a skippable field (`/diagnostics`).
|
|
20
|
+
*/
|
|
21
|
+
export declare function parseRloc16(value: unknown): number | undefined;
|
|
22
|
+
//# sourceMappingURL=parseHexBytes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseHexBytes.d.ts","sourceRoot":"","sources":["../../../src/otbr-rest/parseHexBytes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGxC;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAWrF;AAKD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAQ9D"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2026 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Bytes } from "@matter/general";
|
|
7
|
+
import { OtbrRestError } from "./OtbrRestError.js";
|
|
8
|
+
function parseHexBytes(hex, where, expectedLen) {
|
|
9
|
+
if (!/^[0-9a-fA-F]*$/.test(hex)) {
|
|
10
|
+
throw new OtbrRestError("rest_protocol", `${where}: not hex`);
|
|
11
|
+
}
|
|
12
|
+
if (hex.length % 2 !== 0) {
|
|
13
|
+
throw new OtbrRestError("rest_protocol", `${where}: odd hex length`);
|
|
14
|
+
}
|
|
15
|
+
if (expectedLen !== void 0 && hex.length !== expectedLen * 2) {
|
|
16
|
+
throw new OtbrRestError("rest_protocol", `${where}: expected ${expectedLen} bytes, got ${hex.length / 2}`);
|
|
17
|
+
}
|
|
18
|
+
return Bytes.fromHex(hex);
|
|
19
|
+
}
|
|
20
|
+
const RLOC16_MAX = 65535;
|
|
21
|
+
const RLOC16_STRING = /^(?:0x[0-9a-fA-F]{1,4}|[0-9]{1,5})$/;
|
|
22
|
+
function parseRloc16(value) {
|
|
23
|
+
const parsed = typeof value === "number" ? value : typeof value === "string" && RLOC16_STRING.test(value) ? Number(value) : NaN;
|
|
24
|
+
return Number.isInteger(parsed) && parsed >= 0 && parsed <= RLOC16_MAX ? parsed : void 0;
|
|
25
|
+
}
|
|
26
|
+
export {
|
|
27
|
+
parseHexBytes,
|
|
28
|
+
parseRloc16
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=parseHexBytes.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/otbr-rest/parseHexBytes.ts"],
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,aAAa;AACtB,SAAS,qBAAqB;AASvB,SAAS,cAAc,KAAa,OAAe,aAA6B;AACnF,MAAI,CAAC,iBAAiB,KAAK,GAAG,GAAG;AAC7B,UAAM,IAAI,cAAc,iBAAiB,GAAG,KAAK,WAAW;AAAA,EAChE;AACA,MAAI,IAAI,SAAS,MAAM,GAAG;AACtB,UAAM,IAAI,cAAc,iBAAiB,GAAG,KAAK,kBAAkB;AAAA,EACvE;AACA,MAAI,gBAAgB,UAAa,IAAI,WAAW,cAAc,GAAG;AAC7D,UAAM,IAAI,cAAc,iBAAiB,GAAG,KAAK,cAAc,WAAW,eAAe,IAAI,SAAS,CAAC,EAAE;AAAA,EAC7G;AACA,SAAO,MAAM,QAAQ,GAAG;AAC5B;AAEA,MAAM,aAAa;AACnB,MAAM,gBAAgB;AAQf,SAAS,YAAY,OAAoC;AAC5D,QAAM,SACF,OAAO,UAAU,WACX,QACA,OAAO,UAAU,YAAY,cAAc,KAAK,KAAK,IACnD,OAAO,KAAK,IACZ;AACZ,SAAO,OAAO,UAAU,MAAM,KAAK,UAAU,KAAK,UAAU,aAAa,SAAS;AACtF;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -3,13 +3,14 @@
|
|
|
3
3
|
* Copyright 2022-2026 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { Bytes } from "@matter/general";
|
|
6
7
|
import type { DiagnosticResponse } from "../diagnostic/DiagnosticResponse.js";
|
|
7
8
|
/**
|
|
8
9
|
* Parse an IPv6 textual address into 16 bytes. Supports full forms and `::`
|
|
9
10
|
* compression. Does not handle IPv4-mapped (`::ffff:1.2.3.4`) or zone IDs
|
|
10
11
|
* (`%`); OTBR `IP6AddressList` never returns either.
|
|
11
12
|
*/
|
|
12
|
-
declare function parseIpv6(text: string):
|
|
13
|
+
declare function parseIpv6(text: string): Bytes;
|
|
13
14
|
/**
|
|
14
15
|
* Translate a single OTBR `/diagnostics` entry (already key-normalized to
|
|
15
16
|
* camelCase) into a {@link DiagnosticResponse}. Skips fields the entry does
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translation.d.ts","sourceRoot":"","sources":["../../../src/otbr-rest/translation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"translation.d.ts","sourceRoot":"","sources":["../../../src/otbr-rest/translation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAwL9E;;;;GAIG;AACH,iBAAS,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAuCtC;AASD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,kBAAkB,CA6FnE;AAED,eAAO,MAAM,WAAW;;CAAgB,CAAC"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import { Bytes } from "@matter/general";
|
|
7
7
|
import { NetworkData } from "../tlv/diag/NetworkData.js";
|
|
8
8
|
import { OtbrRestError } from "./OtbrRestError.js";
|
|
9
|
+
import { parseHexBytes, parseRloc16 } from "./parseHexBytes.js";
|
|
9
10
|
const TIMEOUT_EXP_MIN = 4;
|
|
10
11
|
const IPV6_BYTES = 16;
|
|
11
12
|
const IPV6_GROUPS = 8;
|
|
@@ -29,18 +30,6 @@ function requireNumber(record, key, where) {
|
|
|
29
30
|
if (v === void 0) throw new OtbrRestError("rest_protocol", `${where}: missing numeric ${key}`);
|
|
30
31
|
return v;
|
|
31
32
|
}
|
|
32
|
-
function parseHexBytes(hex, where, expectedLen) {
|
|
33
|
-
if (!/^[0-9a-fA-F]*$/.test(hex)) {
|
|
34
|
-
throw new OtbrRestError("rest_protocol", `${where}: not hex`);
|
|
35
|
-
}
|
|
36
|
-
if (hex.length % 2 !== 0) {
|
|
37
|
-
throw new OtbrRestError("rest_protocol", `${where}: odd hex length`);
|
|
38
|
-
}
|
|
39
|
-
if (expectedLen !== void 0 && hex.length !== expectedLen * 2) {
|
|
40
|
-
throw new OtbrRestError("rest_protocol", `${where}: expected ${expectedLen} bytes, got ${hex.length / 2}`);
|
|
41
|
-
}
|
|
42
|
-
return Bytes.of(Bytes.fromHex(hex));
|
|
43
|
-
}
|
|
44
33
|
function translateMode(input) {
|
|
45
34
|
return {
|
|
46
35
|
rxOnWhenIdle: requireNumber(input, "rxOnWhenIdle", "mode") !== 0,
|
|
@@ -109,12 +98,21 @@ function translateMacCounters(input) {
|
|
|
109
98
|
ifOutDiscards: requireNumber(input, "ifOutDiscards", "macCounters")
|
|
110
99
|
};
|
|
111
100
|
}
|
|
101
|
+
const UINT64_MAX = 18446744073709551615n;
|
|
112
102
|
function requireBigInt(record, key, where) {
|
|
113
103
|
const v = record[key];
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
104
|
+
let n;
|
|
105
|
+
if (typeof v === "bigint") {
|
|
106
|
+
n = v;
|
|
107
|
+
} else if (typeof v === "string" && /^\d+$/.test(v)) {
|
|
108
|
+
n = BigInt(v);
|
|
109
|
+
} else {
|
|
110
|
+
const num = asNumber(v);
|
|
111
|
+
if (num === void 0) throw new OtbrRestError("rest_protocol", `${where}: missing numeric ${key}`);
|
|
112
|
+
n = BigInt(Math.trunc(num));
|
|
113
|
+
}
|
|
114
|
+
if (n < 0n || n > UINT64_MAX) throw new OtbrRestError("rest_protocol", `${where}: ${key} outside uint64 range`);
|
|
115
|
+
return n;
|
|
118
116
|
}
|
|
119
117
|
function translateMleCounters(input) {
|
|
120
118
|
return {
|
|
@@ -212,7 +210,7 @@ function translateNodeJson(json) {
|
|
|
212
210
|
if (extAddress !== void 0) {
|
|
213
211
|
result.extMacAddress = parseHexBytes(extAddress, "extAddress", 8);
|
|
214
212
|
}
|
|
215
|
-
const rloc16 =
|
|
213
|
+
const rloc16 = parseRloc16(json["rloc16"]);
|
|
216
214
|
if (rloc16 !== void 0) result.rloc16 = rloc16;
|
|
217
215
|
const mode = asRecord(json["mode"]);
|
|
218
216
|
if (mode !== void 0) result.mode = translateMode(mode);
|
|
@@ -249,7 +247,7 @@ function translateNodeJson(json) {
|
|
|
249
247
|
const channelPages = asString(json["channelPages"]);
|
|
250
248
|
if (channelPages !== void 0) {
|
|
251
249
|
const bytes = parseHexBytes(channelPages, "channelPages");
|
|
252
|
-
result.channelPages = Array.from(bytes);
|
|
250
|
+
result.channelPages = Array.from(Bytes.of(bytes));
|
|
253
251
|
}
|
|
254
252
|
const maxChildTimeout = asNumber(json["maxChildTimeout"]);
|
|
255
253
|
if (maxChildTimeout !== void 0) result.maxChildTimeout = maxChildTimeout;
|