@matter/protocol 0.11.0-alpha.0-20241005-e3e4e4a7a
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/dist/cjs/MatterDevice.d.ts +79 -0
- package/dist/cjs/MatterDevice.d.ts.map +1 -0
- package/dist/cjs/MatterDevice.js +253 -0
- package/dist/cjs/MatterDevice.js.map +6 -0
- package/dist/cjs/ble/Ble.d.ts +29 -0
- package/dist/cjs/ble/Ble.d.ts.map +1 -0
- package/dist/cjs/ble/Ble.js +50 -0
- package/dist/cjs/ble/Ble.js.map +6 -0
- package/dist/cjs/ble/BleConsts.d.ts +32 -0
- package/dist/cjs/ble/BleConsts.d.ts.map +1 -0
- package/dist/cjs/ble/BleConsts.js +53 -0
- package/dist/cjs/ble/BleConsts.js.map +6 -0
- package/dist/cjs/ble/BtpSessionHandler.d.ts +87 -0
- package/dist/cjs/ble/BtpSessionHandler.d.ts.map +1 -0
- package/dist/cjs/ble/BtpSessionHandler.js +432 -0
- package/dist/cjs/ble/BtpSessionHandler.js.map +6 -0
- package/dist/cjs/ble/index.d.ts +9 -0
- package/dist/cjs/ble/index.d.ts.map +1 -0
- package/dist/cjs/ble/index.js +26 -0
- package/dist/cjs/ble/index.js.map +6 -0
- package/dist/cjs/certificate/AttestationCertificateManager.d.ts +28 -0
- package/dist/cjs/certificate/AttestationCertificateManager.d.ts.map +1 -0
- package/dist/cjs/certificate/AttestationCertificateManager.js +171 -0
- package/dist/cjs/certificate/AttestationCertificateManager.js.map +6 -0
- package/dist/cjs/certificate/CertificateManager.d.ts +575 -0
- package/dist/cjs/certificate/CertificateManager.d.ts.map +1 -0
- package/dist/cjs/certificate/CertificateManager.js +810 -0
- package/dist/cjs/certificate/CertificateManager.js.map +6 -0
- package/dist/cjs/certificate/CertificationDeclarationManager.d.ts +5 -0
- package/dist/cjs/certificate/CertificationDeclarationManager.d.ts.map +1 -0
- package/dist/cjs/certificate/CertificationDeclarationManager.js +54 -0
- package/dist/cjs/certificate/CertificationDeclarationManager.js.map +6 -0
- package/dist/cjs/certificate/ChipPAAuthorities.d.ts +14 -0
- package/dist/cjs/certificate/ChipPAAuthorities.d.ts.map +1 -0
- package/dist/cjs/certificate/ChipPAAuthorities.js +57 -0
- package/dist/cjs/certificate/ChipPAAuthorities.js.map +6 -0
- package/dist/cjs/certificate/DeviceCertification.d.ts +30 -0
- package/dist/cjs/certificate/DeviceCertification.d.ts.map +1 -0
- package/dist/cjs/certificate/DeviceCertification.js +103 -0
- package/dist/cjs/certificate/DeviceCertification.js.map +6 -0
- package/dist/cjs/certificate/RootCertificateManager.d.ts +33 -0
- package/dist/cjs/certificate/RootCertificateManager.d.ts.map +1 -0
- package/dist/cjs/certificate/RootCertificateManager.js +142 -0
- package/dist/cjs/certificate/RootCertificateManager.js.map +6 -0
- package/dist/cjs/certificate/index.d.ts +12 -0
- package/dist/cjs/certificate/index.d.ts.map +1 -0
- package/dist/cjs/certificate/index.js +29 -0
- package/dist/cjs/certificate/index.js.map +6 -0
- package/dist/cjs/cluster/client/AttributeClient.d.ts +61 -0
- package/dist/cjs/cluster/client/AttributeClient.d.ts.map +1 -0
- package/dist/cjs/cluster/client/AttributeClient.js +177 -0
- package/dist/cjs/cluster/client/AttributeClient.js.map +6 -0
- package/dist/cjs/cluster/client/ClusterClient.d.ts +10 -0
- package/dist/cjs/cluster/client/ClusterClient.d.ts.map +1 -0
- package/dist/cjs/cluster/client/ClusterClient.js +281 -0
- package/dist/cjs/cluster/client/ClusterClient.js.map +6 -0
- package/dist/cjs/cluster/client/ClusterClientTypes.d.ts +171 -0
- package/dist/cjs/cluster/client/ClusterClientTypes.d.ts.map +1 -0
- package/dist/cjs/cluster/client/ClusterClientTypes.js +22 -0
- package/dist/cjs/cluster/client/ClusterClientTypes.js.map +6 -0
- package/dist/cjs/cluster/client/EventClient.d.ts +41 -0
- package/dist/cjs/cluster/client/EventClient.d.ts.map +1 -0
- package/dist/cjs/cluster/client/EventClient.js +94 -0
- package/dist/cjs/cluster/client/EventClient.js.map +6 -0
- package/dist/cjs/cluster/client/index.d.ts +10 -0
- package/dist/cjs/cluster/client/index.d.ts.map +1 -0
- package/dist/cjs/cluster/client/index.js +27 -0
- package/dist/cjs/cluster/client/index.js.map +6 -0
- package/dist/cjs/cluster/index.d.ts +8 -0
- package/dist/cjs/cluster/index.d.ts.map +1 -0
- package/dist/cjs/cluster/index.js +25 -0
- package/dist/cjs/cluster/index.js.map +6 -0
- package/dist/cjs/cluster/server/AttributeServer.d.ts +307 -0
- package/dist/cjs/cluster/server/AttributeServer.d.ts.map +1 -0
- package/dist/cjs/cluster/server/AttributeServer.js +734 -0
- package/dist/cjs/cluster/server/AttributeServer.js.map +6 -0
- package/dist/cjs/cluster/server/ClusterDatasource.d.ts +16 -0
- package/dist/cjs/cluster/server/ClusterDatasource.d.ts.map +1 -0
- package/dist/cjs/cluster/server/ClusterDatasource.js +22 -0
- package/dist/cjs/cluster/server/ClusterDatasource.js.map +6 -0
- package/dist/cjs/cluster/server/ClusterServer.d.ts +40 -0
- package/dist/cjs/cluster/server/ClusterServer.d.ts.map +1 -0
- package/dist/cjs/cluster/server/ClusterServer.js +22 -0
- package/dist/cjs/cluster/server/ClusterServer.js.map +6 -0
- package/dist/cjs/cluster/server/CommandServer.d.ts +34 -0
- package/dist/cjs/cluster/server/CommandServer.d.ts.map +1 -0
- package/dist/cjs/cluster/server/CommandServer.js +76 -0
- package/dist/cjs/cluster/server/CommandServer.js.map +6 -0
- package/dist/cjs/cluster/server/EventServer.d.ts +41 -0
- package/dist/cjs/cluster/server/EventServer.d.ts.map +1 -0
- package/dist/cjs/cluster/server/EventServer.js +149 -0
- package/dist/cjs/cluster/server/EventServer.js.map +6 -0
- package/dist/cjs/cluster/server/index.d.ts +11 -0
- package/dist/cjs/cluster/server/index.d.ts.map +1 -0
- package/dist/cjs/cluster/server/index.js +28 -0
- package/dist/cjs/cluster/server/index.js.map +6 -0
- package/dist/cjs/codec/BtpCodec.d.ts +78 -0
- package/dist/cjs/codec/BtpCodec.d.ts.map +1 -0
- package/dist/cjs/codec/BtpCodec.js +254 -0
- package/dist/cjs/codec/BtpCodec.js.map +6 -0
- package/dist/cjs/codec/MessageCodec.d.ts +63 -0
- package/dist/cjs/codec/MessageCodec.d.ts.map +1 -0
- package/dist/cjs/codec/MessageCodec.js +220 -0
- package/dist/cjs/codec/MessageCodec.js.map +6 -0
- package/dist/cjs/codec/index.d.ts +9 -0
- package/dist/cjs/codec/index.d.ts.map +1 -0
- package/dist/cjs/codec/index.js +36 -0
- package/dist/cjs/codec/index.js.map +6 -0
- package/dist/cjs/common/FailsafeContext.d.ts +79 -0
- package/dist/cjs/common/FailsafeContext.d.ts.map +1 -0
- package/dist/cjs/common/FailsafeContext.js +237 -0
- package/dist/cjs/common/FailsafeContext.js.map +6 -0
- package/dist/cjs/common/FailsafeTimer.d.ts +25 -0
- package/dist/cjs/common/FailsafeTimer.d.ts.map +1 -0
- package/dist/cjs/common/FailsafeTimer.js +91 -0
- package/dist/cjs/common/FailsafeTimer.js.map +6 -0
- package/dist/cjs/common/InstanceBroadcaster.d.ts +273 -0
- package/dist/cjs/common/InstanceBroadcaster.d.ts.map +1 -0
- package/dist/cjs/common/InstanceBroadcaster.js +139 -0
- package/dist/cjs/common/InstanceBroadcaster.js.map +6 -0
- package/dist/cjs/common/OperationalCredentialsTypes.d.ts +21 -0
- package/dist/cjs/common/OperationalCredentialsTypes.d.ts.map +1 -0
- package/dist/cjs/common/OperationalCredentialsTypes.js +45 -0
- package/dist/cjs/common/OperationalCredentialsTypes.js.map +6 -0
- package/dist/cjs/common/Scanner.d.ts +121 -0
- package/dist/cjs/common/Scanner.d.ts.map +1 -0
- package/dist/cjs/common/Scanner.js +51 -0
- package/dist/cjs/common/Scanner.js.map +6 -0
- package/dist/cjs/common/index.d.ts +12 -0
- package/dist/cjs/common/index.d.ts.map +1 -0
- package/dist/cjs/common/index.js +29 -0
- package/dist/cjs/common/index.js.map +6 -0
- package/dist/cjs/endpoint/EndpointInterface.d.ts +37 -0
- package/dist/cjs/endpoint/EndpointInterface.d.ts.map +1 -0
- package/dist/cjs/endpoint/EndpointInterface.js +22 -0
- package/dist/cjs/endpoint/EndpointInterface.js.map +6 -0
- package/dist/cjs/endpoint/EndpointStructureLogger.d.ts +31 -0
- package/dist/cjs/endpoint/EndpointStructureLogger.d.ts.map +1 -0
- package/dist/cjs/endpoint/EndpointStructureLogger.js +236 -0
- package/dist/cjs/endpoint/EndpointStructureLogger.js.map +6 -0
- package/dist/cjs/endpoint/index.d.ts +8 -0
- package/dist/cjs/endpoint/index.d.ts.map +1 -0
- package/dist/cjs/endpoint/index.js +25 -0
- package/dist/cjs/endpoint/index.js.map +6 -0
- package/dist/cjs/fabric/Fabric.d.ts +121 -0
- package/dist/cjs/fabric/Fabric.d.ts.map +1 -0
- package/dist/cjs/fabric/Fabric.js +427 -0
- package/dist/cjs/fabric/Fabric.js.map +6 -0
- package/dist/cjs/fabric/FabricManager.d.ts +44 -0
- package/dist/cjs/fabric/FabricManager.d.ts.map +1 -0
- package/dist/cjs/fabric/FabricManager.js +209 -0
- package/dist/cjs/fabric/FabricManager.js.map +6 -0
- package/dist/cjs/fabric/index.d.ts +8 -0
- package/dist/cjs/fabric/index.d.ts.map +1 -0
- package/dist/cjs/fabric/index.js +25 -0
- package/dist/cjs/fabric/index.js.map +6 -0
- package/dist/cjs/index.d.ts +20 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +37 -0
- package/dist/cjs/index.js.map +6 -0
- package/dist/cjs/interaction/AccessControlManager.d.ts +49 -0
- package/dist/cjs/interaction/AccessControlManager.d.ts.map +1 -0
- package/dist/cjs/interaction/AccessControlManager.js +248 -0
- package/dist/cjs/interaction/AccessControlManager.js.map +6 -0
- package/dist/cjs/interaction/AttributeDataDecoder.d.ts +52 -0
- package/dist/cjs/interaction/AttributeDataDecoder.d.ts.map +1 -0
- package/dist/cjs/interaction/AttributeDataDecoder.js +185 -0
- package/dist/cjs/interaction/AttributeDataDecoder.js.map +6 -0
- package/dist/cjs/interaction/AttributeDataEncoder.d.ts +71 -0
- package/dist/cjs/interaction/AttributeDataEncoder.d.ts.map +1 -0
- package/dist/cjs/interaction/AttributeDataEncoder.js +190 -0
- package/dist/cjs/interaction/AttributeDataEncoder.js.map +6 -0
- package/dist/cjs/interaction/EventDataDecoder.d.ts +30 -0
- package/dist/cjs/interaction/EventDataDecoder.d.ts.map +1 -0
- package/dist/cjs/interaction/EventDataDecoder.js +103 -0
- package/dist/cjs/interaction/EventDataDecoder.js.map +6 -0
- package/dist/cjs/interaction/EventHandler.d.ts +42 -0
- package/dist/cjs/interaction/EventHandler.d.ts.map +1 -0
- package/dist/cjs/interaction/EventHandler.js +112 -0
- package/dist/cjs/interaction/EventHandler.js.map +6 -0
- package/dist/cjs/interaction/InteractionClient.d.ts +294 -0
- package/dist/cjs/interaction/InteractionClient.d.ts.map +1 -0
- package/dist/cjs/interaction/InteractionClient.js +829 -0
- package/dist/cjs/interaction/InteractionClient.js.map +6 -0
- package/dist/cjs/interaction/InteractionEndpointStructure.d.ts +59 -0
- package/dist/cjs/interaction/InteractionEndpointStructure.d.ts.map +1 -0
- package/dist/cjs/interaction/InteractionEndpointStructure.js +341 -0
- package/dist/cjs/interaction/InteractionEndpointStructure.js.map +6 -0
- package/dist/cjs/interaction/InteractionMessenger.d.ts +315 -0
- package/dist/cjs/interaction/InteractionMessenger.d.ts.map +1 -0
- package/dist/cjs/interaction/InteractionMessenger.js +484 -0
- package/dist/cjs/interaction/InteractionMessenger.js.map +6 -0
- package/dist/cjs/interaction/InteractionServer.d.ts +97 -0
- package/dist/cjs/interaction/InteractionServer.d.ts.map +1 -0
- package/dist/cjs/interaction/InteractionServer.js +1026 -0
- package/dist/cjs/interaction/InteractionServer.js.map +6 -0
- package/dist/cjs/interaction/ServerSubscription.d.ts +121 -0
- package/dist/cjs/interaction/ServerSubscription.d.ts.map +1 -0
- package/dist/cjs/interaction/ServerSubscription.js +672 -0
- package/dist/cjs/interaction/ServerSubscription.js.map +6 -0
- package/dist/cjs/interaction/Subscription.d.ts +44 -0
- package/dist/cjs/interaction/Subscription.d.ts.map +1 -0
- package/dist/cjs/interaction/Subscription.js +85 -0
- package/dist/cjs/interaction/Subscription.js.map +6 -0
- package/dist/cjs/interaction/SubscriptionOptions.d.ts +43 -0
- package/dist/cjs/interaction/SubscriptionOptions.d.ts.map +1 -0
- package/dist/cjs/interaction/SubscriptionOptions.js +46 -0
- package/dist/cjs/interaction/SubscriptionOptions.js.map +6 -0
- package/dist/cjs/interaction/index.d.ts +17 -0
- package/dist/cjs/interaction/index.d.ts.map +1 -0
- package/dist/cjs/interaction/index.js +34 -0
- package/dist/cjs/interaction/index.js.map +6 -0
- package/dist/cjs/mdns/MdnsBroadcaster.d.ts +34 -0
- package/dist/cjs/mdns/MdnsBroadcaster.d.ts.map +1 -0
- package/dist/cjs/mdns/MdnsBroadcaster.js +338 -0
- package/dist/cjs/mdns/MdnsBroadcaster.js.map +6 -0
- package/dist/cjs/mdns/MdnsConsts.d.ts +19 -0
- package/dist/cjs/mdns/MdnsConsts.d.ts.map +1 -0
- package/dist/cjs/mdns/MdnsConsts.js +52 -0
- package/dist/cjs/mdns/MdnsConsts.js.map +6 -0
- package/dist/cjs/mdns/MdnsInstanceBroadcaster.d.ts +28 -0
- package/dist/cjs/mdns/MdnsInstanceBroadcaster.d.ts.map +1 -0
- package/dist/cjs/mdns/MdnsInstanceBroadcaster.js +87 -0
- package/dist/cjs/mdns/MdnsInstanceBroadcaster.js.map +6 -0
- package/dist/cjs/mdns/MdnsScanner.d.ts +79 -0
- package/dist/cjs/mdns/MdnsScanner.d.ts.map +1 -0
- package/dist/cjs/mdns/MdnsScanner.js +842 -0
- package/dist/cjs/mdns/MdnsScanner.js.map +6 -0
- package/dist/cjs/mdns/MdnsServer.d.ts +29 -0
- package/dist/cjs/mdns/MdnsServer.d.ts.map +1 -0
- package/dist/cjs/mdns/MdnsServer.js +275 -0
- package/dist/cjs/mdns/MdnsServer.js.map +6 -0
- package/dist/cjs/mdns/MdnsService.d.ts +28 -0
- package/dist/cjs/mdns/MdnsService.d.ts.map +1 -0
- package/dist/cjs/mdns/MdnsService.js +95 -0
- package/dist/cjs/mdns/MdnsService.js.map +6 -0
- package/dist/cjs/mdns/index.d.ts +12 -0
- package/dist/cjs/mdns/index.d.ts.map +1 -0
- package/dist/cjs/mdns/index.js +29 -0
- package/dist/cjs/mdns/index.js.map +6 -0
- package/dist/cjs/package.json +10 -0
- package/dist/cjs/peer/ControllerCommissioner.d.ts +82 -0
- package/dist/cjs/peer/ControllerCommissioner.d.ts.map +1 -0
- package/dist/cjs/peer/ControllerCommissioner.js +224 -0
- package/dist/cjs/peer/ControllerCommissioner.js.map +6 -0
- package/dist/cjs/peer/ControllerCommissioningFlow.d.ts +88 -0
- package/dist/cjs/peer/ControllerCommissioningFlow.d.ts.map +1 -0
- package/dist/cjs/peer/ControllerCommissioningFlow.js +849 -0
- package/dist/cjs/peer/ControllerCommissioningFlow.js.map +6 -0
- package/dist/cjs/peer/ControllerDiscovery.d.ts +43 -0
- package/dist/cjs/peer/ControllerDiscovery.d.ts.map +1 -0
- package/dist/cjs/peer/ControllerDiscovery.js +192 -0
- package/dist/cjs/peer/ControllerDiscovery.js.map +6 -0
- package/dist/cjs/peer/OperationalPeer.d.ts +28 -0
- package/dist/cjs/peer/OperationalPeer.d.ts.map +1 -0
- package/dist/cjs/peer/OperationalPeer.js +22 -0
- package/dist/cjs/peer/OperationalPeer.js.map +6 -0
- package/dist/cjs/peer/PeerAddress.d.ts +30 -0
- package/dist/cjs/peer/PeerAddress.d.ts.map +1 -0
- package/dist/cjs/peer/PeerAddress.js +71 -0
- package/dist/cjs/peer/PeerAddress.js.map +6 -0
- package/dist/cjs/peer/PeerSet.d.ts +98 -0
- package/dist/cjs/peer/PeerSet.d.ts.map +1 -0
- package/dist/cjs/peer/PeerSet.js +500 -0
- package/dist/cjs/peer/PeerSet.js.map +6 -0
- package/dist/cjs/peer/PeerStore.d.ts +17 -0
- package/dist/cjs/peer/PeerStore.d.ts.map +1 -0
- package/dist/cjs/peer/PeerStore.js +31 -0
- package/dist/cjs/peer/PeerStore.js.map +6 -0
- package/dist/cjs/peer/index.d.ts +13 -0
- package/dist/cjs/peer/index.d.ts.map +1 -0
- package/dist/cjs/peer/index.js +30 -0
- package/dist/cjs/peer/index.js.map +6 -0
- package/dist/cjs/protocol/ChannelManager.d.ts +30 -0
- package/dist/cjs/protocol/ChannelManager.d.ts.map +1 -0
- package/dist/cjs/protocol/ChannelManager.js +168 -0
- package/dist/cjs/protocol/ChannelManager.js.map +6 -0
- package/dist/cjs/protocol/DeviceAdvertiser.d.ts +43 -0
- package/dist/cjs/protocol/DeviceAdvertiser.d.ts.map +1 -0
- package/dist/cjs/protocol/DeviceAdvertiser.js +185 -0
- package/dist/cjs/protocol/DeviceAdvertiser.js.map +6 -0
- package/dist/cjs/protocol/DeviceCommissioner.d.ts +49 -0
- package/dist/cjs/protocol/DeviceCommissioner.d.ts.map +1 -0
- package/dist/cjs/protocol/DeviceCommissioner.js +198 -0
- package/dist/cjs/protocol/DeviceCommissioner.js.map +6 -0
- package/dist/cjs/protocol/ExchangeManager.d.ts +73 -0
- package/dist/cjs/protocol/ExchangeManager.d.ts.map +1 -0
- package/dist/cjs/protocol/ExchangeManager.js +407 -0
- package/dist/cjs/protocol/ExchangeManager.js.map +6 -0
- package/dist/cjs/protocol/MessageCounter.d.ts +57 -0
- package/dist/cjs/protocol/MessageCounter.d.ts.map +1 -0
- package/dist/cjs/protocol/MessageCounter.js +104 -0
- package/dist/cjs/protocol/MessageCounter.js.map +6 -0
- package/dist/cjs/protocol/MessageExchange.d.ts +84 -0
- package/dist/cjs/protocol/MessageExchange.d.ts.map +1 -0
- package/dist/cjs/protocol/MessageExchange.js +508 -0
- package/dist/cjs/protocol/MessageExchange.js.map +6 -0
- package/dist/cjs/protocol/MessageReceptionState.d.ts +65 -0
- package/dist/cjs/protocol/MessageReceptionState.d.ts.map +1 -0
- package/dist/cjs/protocol/MessageReceptionState.js +173 -0
- package/dist/cjs/protocol/MessageReceptionState.js.map +6 -0
- package/dist/cjs/protocol/ProtocolHandler.d.ts +13 -0
- package/dist/cjs/protocol/ProtocolHandler.d.ts.map +1 -0
- package/dist/cjs/protocol/ProtocolHandler.js +22 -0
- package/dist/cjs/protocol/ProtocolHandler.js.map +6 -0
- package/dist/cjs/protocol/index.d.ts +14 -0
- package/dist/cjs/protocol/index.d.ts.map +1 -0
- package/dist/cjs/protocol/index.js +31 -0
- package/dist/cjs/protocol/index.js.map +6 -0
- package/dist/cjs/securechannel/SecureChannelMessenger.d.ts +53 -0
- package/dist/cjs/securechannel/SecureChannelMessenger.d.ts.map +1 -0
- package/dist/cjs/securechannel/SecureChannelMessenger.js +143 -0
- package/dist/cjs/securechannel/SecureChannelMessenger.js.map +6 -0
- package/dist/cjs/securechannel/SecureChannelProtocol.d.ts +31 -0
- package/dist/cjs/securechannel/SecureChannelProtocol.d.ts.map +1 -0
- package/dist/cjs/securechannel/SecureChannelProtocol.js +140 -0
- package/dist/cjs/securechannel/SecureChannelProtocol.js.map +6 -0
- package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.d.ts +23 -0
- package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.d.ts.map +1 -0
- package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.js +53 -0
- package/dist/cjs/securechannel/SecureChannelStatusMessageSchema.js.map +6 -0
- package/dist/cjs/securechannel/index.d.ts +9 -0
- package/dist/cjs/securechannel/index.d.ts.map +1 -0
- package/dist/cjs/securechannel/index.js +26 -0
- package/dist/cjs/securechannel/index.js.map +6 -0
- package/dist/cjs/session/InsecureSession.d.ts +38 -0
- package/dist/cjs/session/InsecureSession.d.ts.map +1 -0
- package/dist/cjs/session/InsecureSession.js +95 -0
- package/dist/cjs/session/InsecureSession.js.map +6 -0
- package/dist/cjs/session/SecureSession.d.ts +81 -0
- package/dist/cjs/session/SecureSession.d.ts.map +1 -0
- package/dist/cjs/session/SecureSession.js +291 -0
- package/dist/cjs/session/SecureSession.js.map +6 -0
- package/dist/cjs/session/Session.d.ts +102 -0
- package/dist/cjs/session/Session.d.ts.map +1 -0
- package/dist/cjs/session/Session.js +141 -0
- package/dist/cjs/session/Session.js.map +6 -0
- package/dist/cjs/session/SessionManager.d.ts +132 -0
- package/dist/cjs/session/SessionManager.d.ts.map +1 -0
- package/dist/cjs/session/SessionManager.js +410 -0
- package/dist/cjs/session/SessionManager.js.map +6 -0
- package/dist/cjs/session/case/CaseClient.d.ts +18 -0
- package/dist/cjs/session/case/CaseClient.d.ts.map +1 -0
- package/dist/cjs/session/case/CaseClient.js +216 -0
- package/dist/cjs/session/case/CaseClient.js.map +6 -0
- package/dist/cjs/session/case/CaseMessages.d.ts +82 -0
- package/dist/cjs/session/case/CaseMessages.d.ts.map +1 -0
- package/dist/cjs/session/case/CaseMessages.js +97 -0
- package/dist/cjs/session/case/CaseMessages.js.map +6 -0
- package/dist/cjs/session/case/CaseMessenger.d.ts +79 -0
- package/dist/cjs/session/case/CaseMessenger.d.ts.map +1 -0
- package/dist/cjs/session/case/CaseMessenger.js +74 -0
- package/dist/cjs/session/case/CaseMessenger.js.map +6 -0
- package/dist/cjs/session/case/CaseServer.d.ts +18 -0
- package/dist/cjs/session/case/CaseServer.d.ts.map +1 -0
- package/dist/cjs/session/case/CaseServer.js +232 -0
- package/dist/cjs/session/case/CaseServer.js.map +6 -0
- package/dist/cjs/session/index.d.ts +18 -0
- package/dist/cjs/session/index.d.ts.map +1 -0
- package/dist/cjs/session/index.js +35 -0
- package/dist/cjs/session/index.js.map +6 -0
- package/dist/cjs/session/pase/PaseClient.d.ts +18 -0
- package/dist/cjs/session/pase/PaseClient.d.ts.map +1 -0
- package/dist/cjs/session/pase/PaseClient.js +101 -0
- package/dist/cjs/session/pase/PaseClient.js.map +6 -0
- package/dist/cjs/session/pase/PaseMessages.d.ts +85 -0
- package/dist/cjs/session/pase/PaseMessages.d.ts.map +1 -0
- package/dist/cjs/session/pase/PaseMessages.js +88 -0
- package/dist/cjs/session/pase/PaseMessages.js.map +6 -0
- package/dist/cjs/session/pase/PaseMessenger.d.ts +75 -0
- package/dist/cjs/session/pase/PaseMessenger.d.ts.map +1 -0
- package/dist/cjs/session/pase/PaseMessenger.js +86 -0
- package/dist/cjs/session/pase/PaseMessenger.js.map +6 -0
- package/dist/cjs/session/pase/PaseServer.d.ts +29 -0
- package/dist/cjs/session/pase/PaseServer.d.ts.map +1 -0
- package/dist/cjs/session/pase/PaseServer.js +159 -0
- package/dist/cjs/session/pase/PaseServer.js.map +6 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -0
- package/dist/esm/MatterDevice.d.ts +79 -0
- package/dist/esm/MatterDevice.d.ts.map +1 -0
- package/dist/esm/MatterDevice.js +239 -0
- package/dist/esm/MatterDevice.js.map +6 -0
- package/dist/esm/ble/Ble.d.ts +29 -0
- package/dist/esm/ble/Ble.d.ts.map +1 -0
- package/dist/esm/ble/Ble.js +30 -0
- package/dist/esm/ble/Ble.js.map +6 -0
- package/dist/esm/ble/BleConsts.d.ts +32 -0
- package/dist/esm/ble/BleConsts.d.ts.map +1 -0
- package/dist/esm/ble/BleConsts.js +33 -0
- package/dist/esm/ble/BleConsts.js.map +6 -0
- package/dist/esm/ble/BtpSessionHandler.d.ts +87 -0
- package/dist/esm/ble/BtpSessionHandler.d.ts.map +1 -0
- package/dist/esm/ble/BtpSessionHandler.js +419 -0
- package/dist/esm/ble/BtpSessionHandler.js.map +6 -0
- package/dist/esm/ble/index.d.ts +9 -0
- package/dist/esm/ble/index.d.ts.map +1 -0
- package/dist/esm/ble/index.js +9 -0
- package/dist/esm/ble/index.js.map +6 -0
- package/dist/esm/certificate/AttestationCertificateManager.d.ts +28 -0
- package/dist/esm/certificate/AttestationCertificateManager.d.ts.map +1 -0
- package/dist/esm/certificate/AttestationCertificateManager.js +155 -0
- package/dist/esm/certificate/AttestationCertificateManager.js.map +6 -0
- package/dist/esm/certificate/CertificateManager.d.ts +575 -0
- package/dist/esm/certificate/CertificateManager.d.ts.map +1 -0
- package/dist/esm/certificate/CertificateManager.js +837 -0
- package/dist/esm/certificate/CertificateManager.js.map +6 -0
- package/dist/esm/certificate/CertificationDeclarationManager.d.ts +5 -0
- package/dist/esm/certificate/CertificationDeclarationManager.d.ts.map +1 -0
- package/dist/esm/certificate/CertificationDeclarationManager.js +34 -0
- package/dist/esm/certificate/CertificationDeclarationManager.js.map +6 -0
- package/dist/esm/certificate/ChipPAAuthorities.d.ts +14 -0
- package/dist/esm/certificate/ChipPAAuthorities.d.ts.map +1 -0
- package/dist/esm/certificate/ChipPAAuthorities.js +37 -0
- package/dist/esm/certificate/ChipPAAuthorities.js.map +6 -0
- package/dist/esm/certificate/DeviceCertification.d.ts +30 -0
- package/dist/esm/certificate/DeviceCertification.d.ts.map +1 -0
- package/dist/esm/certificate/DeviceCertification.js +83 -0
- package/dist/esm/certificate/DeviceCertification.js.map +6 -0
- package/dist/esm/certificate/RootCertificateManager.d.ts +33 -0
- package/dist/esm/certificate/RootCertificateManager.d.ts.map +1 -0
- package/dist/esm/certificate/RootCertificateManager.js +139 -0
- package/dist/esm/certificate/RootCertificateManager.js.map +6 -0
- package/dist/esm/certificate/index.d.ts +12 -0
- package/dist/esm/certificate/index.d.ts.map +1 -0
- package/dist/esm/certificate/index.js +12 -0
- package/dist/esm/certificate/index.js.map +6 -0
- package/dist/esm/cluster/client/AttributeClient.d.ts +61 -0
- package/dist/esm/cluster/client/AttributeClient.d.ts.map +1 -0
- package/dist/esm/cluster/client/AttributeClient.js +157 -0
- package/dist/esm/cluster/client/AttributeClient.js.map +6 -0
- package/dist/esm/cluster/client/ClusterClient.d.ts +10 -0
- package/dist/esm/cluster/client/ClusterClient.d.ts.map +1 -0
- package/dist/esm/cluster/client/ClusterClient.js +267 -0
- package/dist/esm/cluster/client/ClusterClient.js.map +6 -0
- package/dist/esm/cluster/client/ClusterClientTypes.d.ts +171 -0
- package/dist/esm/cluster/client/ClusterClientTypes.d.ts.map +1 -0
- package/dist/esm/cluster/client/ClusterClientTypes.js +6 -0
- package/dist/esm/cluster/client/ClusterClientTypes.js.map +6 -0
- package/dist/esm/cluster/client/EventClient.d.ts +41 -0
- package/dist/esm/cluster/client/EventClient.d.ts.map +1 -0
- package/dist/esm/cluster/client/EventClient.js +74 -0
- package/dist/esm/cluster/client/EventClient.js.map +6 -0
- package/dist/esm/cluster/client/index.d.ts +10 -0
- package/dist/esm/cluster/client/index.d.ts.map +1 -0
- package/dist/esm/cluster/client/index.js +10 -0
- package/dist/esm/cluster/client/index.js.map +6 -0
- package/dist/esm/cluster/index.d.ts +8 -0
- package/dist/esm/cluster/index.d.ts.map +1 -0
- package/dist/esm/cluster/index.js +8 -0
- package/dist/esm/cluster/index.js.map +6 -0
- package/dist/esm/cluster/server/AttributeServer.d.ts +307 -0
- package/dist/esm/cluster/server/AttributeServer.d.ts.map +1 -0
- package/dist/esm/cluster/server/AttributeServer.js +718 -0
- package/dist/esm/cluster/server/AttributeServer.js.map +6 -0
- package/dist/esm/cluster/server/ClusterDatasource.d.ts +16 -0
- package/dist/esm/cluster/server/ClusterDatasource.d.ts.map +1 -0
- package/dist/esm/cluster/server/ClusterDatasource.js +6 -0
- package/dist/esm/cluster/server/ClusterDatasource.js.map +6 -0
- package/dist/esm/cluster/server/ClusterServer.d.ts +40 -0
- package/dist/esm/cluster/server/ClusterServer.d.ts.map +1 -0
- package/dist/esm/cluster/server/ClusterServer.js +6 -0
- package/dist/esm/cluster/server/ClusterServer.js.map +6 -0
- package/dist/esm/cluster/server/CommandServer.d.ts +34 -0
- package/dist/esm/cluster/server/CommandServer.d.ts.map +1 -0
- package/dist/esm/cluster/server/CommandServer.js +56 -0
- package/dist/esm/cluster/server/CommandServer.js.map +6 -0
- package/dist/esm/cluster/server/EventServer.d.ts +41 -0
- package/dist/esm/cluster/server/EventServer.d.ts.map +1 -0
- package/dist/esm/cluster/server/EventServer.js +137 -0
- package/dist/esm/cluster/server/EventServer.js.map +6 -0
- package/dist/esm/cluster/server/index.d.ts +11 -0
- package/dist/esm/cluster/server/index.d.ts.map +1 -0
- package/dist/esm/cluster/server/index.js +11 -0
- package/dist/esm/cluster/server/index.js.map +6 -0
- package/dist/esm/codec/BtpCodec.d.ts +78 -0
- package/dist/esm/codec/BtpCodec.d.ts.map +1 -0
- package/dist/esm/codec/BtpCodec.js +234 -0
- package/dist/esm/codec/BtpCodec.js.map +6 -0
- package/dist/esm/codec/MessageCodec.d.ts +63 -0
- package/dist/esm/codec/MessageCodec.d.ts.map +1 -0
- package/dist/esm/codec/MessageCodec.js +200 -0
- package/dist/esm/codec/MessageCodec.js.map +6 -0
- package/dist/esm/codec/index.d.ts +9 -0
- package/dist/esm/codec/index.d.ts.map +1 -0
- package/dist/esm/codec/index.js +15 -0
- package/dist/esm/codec/index.js.map +6 -0
- package/dist/esm/common/FailsafeContext.d.ts +79 -0
- package/dist/esm/common/FailsafeContext.d.ts.map +1 -0
- package/dist/esm/common/FailsafeContext.js +217 -0
- package/dist/esm/common/FailsafeContext.js.map +6 -0
- package/dist/esm/common/FailsafeTimer.d.ts +25 -0
- package/dist/esm/common/FailsafeTimer.d.ts.map +1 -0
- package/dist/esm/common/FailsafeTimer.js +71 -0
- package/dist/esm/common/FailsafeTimer.js.map +6 -0
- package/dist/esm/common/InstanceBroadcaster.d.ts +273 -0
- package/dist/esm/common/InstanceBroadcaster.d.ts.map +1 -0
- package/dist/esm/common/InstanceBroadcaster.js +119 -0
- package/dist/esm/common/InstanceBroadcaster.js.map +6 -0
- package/dist/esm/common/OperationalCredentialsTypes.d.ts +21 -0
- package/dist/esm/common/OperationalCredentialsTypes.d.ts.map +1 -0
- package/dist/esm/common/OperationalCredentialsTypes.js +25 -0
- package/dist/esm/common/OperationalCredentialsTypes.js.map +6 -0
- package/dist/esm/common/Scanner.d.ts +121 -0
- package/dist/esm/common/Scanner.d.ts.map +1 -0
- package/dist/esm/common/Scanner.js +31 -0
- package/dist/esm/common/Scanner.js.map +6 -0
- package/dist/esm/common/index.d.ts +12 -0
- package/dist/esm/common/index.d.ts.map +1 -0
- package/dist/esm/common/index.js +12 -0
- package/dist/esm/common/index.js.map +6 -0
- package/dist/esm/endpoint/EndpointInterface.d.ts +37 -0
- package/dist/esm/endpoint/EndpointInterface.d.ts.map +1 -0
- package/dist/esm/endpoint/EndpointInterface.js +6 -0
- package/dist/esm/endpoint/EndpointInterface.js.map +6 -0
- package/dist/esm/endpoint/EndpointStructureLogger.d.ts +31 -0
- package/dist/esm/endpoint/EndpointStructureLogger.d.ts.map +1 -0
- package/dist/esm/endpoint/EndpointStructureLogger.js +216 -0
- package/dist/esm/endpoint/EndpointStructureLogger.js.map +6 -0
- package/dist/esm/endpoint/index.d.ts +8 -0
- package/dist/esm/endpoint/index.d.ts.map +1 -0
- package/dist/esm/endpoint/index.js +8 -0
- package/dist/esm/endpoint/index.js.map +6 -0
- package/dist/esm/fabric/Fabric.d.ts +121 -0
- package/dist/esm/fabric/Fabric.d.ts.map +1 -0
- package/dist/esm/fabric/Fabric.js +422 -0
- package/dist/esm/fabric/Fabric.js.map +6 -0
- package/dist/esm/fabric/FabricManager.d.ts +44 -0
- package/dist/esm/fabric/FabricManager.d.ts.map +1 -0
- package/dist/esm/fabric/FabricManager.js +200 -0
- package/dist/esm/fabric/FabricManager.js.map +6 -0
- package/dist/esm/fabric/index.d.ts +8 -0
- package/dist/esm/fabric/index.d.ts.map +1 -0
- package/dist/esm/fabric/index.js +8 -0
- package/dist/esm/fabric/index.js.map +6 -0
- package/dist/esm/index.d.ts +20 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +20 -0
- package/dist/esm/index.js.map +6 -0
- package/dist/esm/interaction/AccessControlManager.d.ts +49 -0
- package/dist/esm/interaction/AccessControlManager.d.ts.map +1 -0
- package/dist/esm/interaction/AccessControlManager.js +228 -0
- package/dist/esm/interaction/AccessControlManager.js.map +6 -0
- package/dist/esm/interaction/AttributeDataDecoder.d.ts +52 -0
- package/dist/esm/interaction/AttributeDataDecoder.d.ts.map +1 -0
- package/dist/esm/interaction/AttributeDataDecoder.js +171 -0
- package/dist/esm/interaction/AttributeDataDecoder.js.map +6 -0
- package/dist/esm/interaction/AttributeDataEncoder.d.ts +71 -0
- package/dist/esm/interaction/AttributeDataEncoder.d.ts.map +1 -0
- package/dist/esm/interaction/AttributeDataEncoder.js +174 -0
- package/dist/esm/interaction/AttributeDataEncoder.js.map +6 -0
- package/dist/esm/interaction/EventDataDecoder.d.ts +30 -0
- package/dist/esm/interaction/EventDataDecoder.d.ts.map +1 -0
- package/dist/esm/interaction/EventDataDecoder.js +87 -0
- package/dist/esm/interaction/EventDataDecoder.js.map +6 -0
- package/dist/esm/interaction/EventHandler.d.ts +42 -0
- package/dist/esm/interaction/EventHandler.d.ts.map +1 -0
- package/dist/esm/interaction/EventHandler.js +96 -0
- package/dist/esm/interaction/EventHandler.js.map +6 -0
- package/dist/esm/interaction/InteractionClient.d.ts +294 -0
- package/dist/esm/interaction/InteractionClient.d.ts.map +1 -0
- package/dist/esm/interaction/InteractionClient.js +827 -0
- package/dist/esm/interaction/InteractionClient.js.map +6 -0
- package/dist/esm/interaction/InteractionEndpointStructure.d.ts +59 -0
- package/dist/esm/interaction/InteractionEndpointStructure.d.ts.map +1 -0
- package/dist/esm/interaction/InteractionEndpointStructure.js +343 -0
- package/dist/esm/interaction/InteractionEndpointStructure.js.map +6 -0
- package/dist/esm/interaction/InteractionMessenger.d.ts +315 -0
- package/dist/esm/interaction/InteractionMessenger.d.ts.map +1 -0
- package/dist/esm/interaction/InteractionMessenger.js +489 -0
- package/dist/esm/interaction/InteractionMessenger.js.map +6 -0
- package/dist/esm/interaction/InteractionServer.d.ts +97 -0
- package/dist/esm/interaction/InteractionServer.d.ts.map +1 -0
- package/dist/esm/interaction/InteractionServer.js +1027 -0
- package/dist/esm/interaction/InteractionServer.js.map +6 -0
- package/dist/esm/interaction/ServerSubscription.d.ts +121 -0
- package/dist/esm/interaction/ServerSubscription.d.ts.map +1 -0
- package/dist/esm/interaction/ServerSubscription.js +669 -0
- package/dist/esm/interaction/ServerSubscription.js.map +6 -0
- package/dist/esm/interaction/Subscription.d.ts +44 -0
- package/dist/esm/interaction/Subscription.d.ts.map +1 -0
- package/dist/esm/interaction/Subscription.js +65 -0
- package/dist/esm/interaction/Subscription.js.map +6 -0
- package/dist/esm/interaction/SubscriptionOptions.d.ts +43 -0
- package/dist/esm/interaction/SubscriptionOptions.d.ts.map +1 -0
- package/dist/esm/interaction/SubscriptionOptions.js +26 -0
- package/dist/esm/interaction/SubscriptionOptions.js.map +6 -0
- package/dist/esm/interaction/index.d.ts +17 -0
- package/dist/esm/interaction/index.d.ts.map +1 -0
- package/dist/esm/interaction/index.js +17 -0
- package/dist/esm/interaction/index.js.map +6 -0
- package/dist/esm/mdns/MdnsBroadcaster.d.ts +34 -0
- package/dist/esm/mdns/MdnsBroadcaster.d.ts.map +1 -0
- package/dist/esm/mdns/MdnsBroadcaster.js +351 -0
- package/dist/esm/mdns/MdnsBroadcaster.js.map +6 -0
- package/dist/esm/mdns/MdnsConsts.d.ts +19 -0
- package/dist/esm/mdns/MdnsConsts.d.ts.map +1 -0
- package/dist/esm/mdns/MdnsConsts.js +32 -0
- package/dist/esm/mdns/MdnsConsts.js.map +6 -0
- package/dist/esm/mdns/MdnsInstanceBroadcaster.d.ts +28 -0
- package/dist/esm/mdns/MdnsInstanceBroadcaster.d.ts.map +1 -0
- package/dist/esm/mdns/MdnsInstanceBroadcaster.js +67 -0
- package/dist/esm/mdns/MdnsInstanceBroadcaster.js.map +6 -0
- package/dist/esm/mdns/MdnsScanner.d.ts +79 -0
- package/dist/esm/mdns/MdnsScanner.d.ts.map +1 -0
- package/dist/esm/mdns/MdnsScanner.js +847 -0
- package/dist/esm/mdns/MdnsScanner.js.map +6 -0
- package/dist/esm/mdns/MdnsServer.d.ts +29 -0
- package/dist/esm/mdns/MdnsServer.d.ts.map +1 -0
- package/dist/esm/mdns/MdnsServer.js +266 -0
- package/dist/esm/mdns/MdnsServer.js.map +6 -0
- package/dist/esm/mdns/MdnsService.d.ts +28 -0
- package/dist/esm/mdns/MdnsService.d.ts.map +1 -0
- package/dist/esm/mdns/MdnsService.js +83 -0
- package/dist/esm/mdns/MdnsService.js.map +6 -0
- package/dist/esm/mdns/index.d.ts +12 -0
- package/dist/esm/mdns/index.d.ts.map +1 -0
- package/dist/esm/mdns/index.js +12 -0
- package/dist/esm/mdns/index.js.map +6 -0
- package/dist/esm/package.json +10 -0
- package/dist/esm/peer/ControllerCommissioner.d.ts +82 -0
- package/dist/esm/peer/ControllerCommissioner.d.ts.map +1 -0
- package/dist/esm/peer/ControllerCommissioner.js +211 -0
- package/dist/esm/peer/ControllerCommissioner.js.map +6 -0
- package/dist/esm/peer/ControllerCommissioningFlow.d.ts +88 -0
- package/dist/esm/peer/ControllerCommissioningFlow.d.ts.map +1 -0
- package/dist/esm/peer/ControllerCommissioningFlow.js +832 -0
- package/dist/esm/peer/ControllerCommissioningFlow.js.map +6 -0
- package/dist/esm/peer/ControllerDiscovery.d.ts +43 -0
- package/dist/esm/peer/ControllerDiscovery.d.ts.map +1 -0
- package/dist/esm/peer/ControllerDiscovery.js +172 -0
- package/dist/esm/peer/ControllerDiscovery.js.map +6 -0
- package/dist/esm/peer/OperationalPeer.d.ts +28 -0
- package/dist/esm/peer/OperationalPeer.d.ts.map +1 -0
- package/dist/esm/peer/OperationalPeer.js +6 -0
- package/dist/esm/peer/OperationalPeer.js.map +6 -0
- package/dist/esm/peer/PeerAddress.d.ts +30 -0
- package/dist/esm/peer/PeerAddress.d.ts.map +1 -0
- package/dist/esm/peer/PeerAddress.js +51 -0
- package/dist/esm/peer/PeerAddress.js.map +6 -0
- package/dist/esm/peer/PeerSet.d.ts +98 -0
- package/dist/esm/peer/PeerSet.d.ts.map +1 -0
- package/dist/esm/peer/PeerSet.js +495 -0
- package/dist/esm/peer/PeerSet.js.map +6 -0
- package/dist/esm/peer/PeerStore.d.ts +17 -0
- package/dist/esm/peer/PeerStore.d.ts.map +1 -0
- package/dist/esm/peer/PeerStore.js +11 -0
- package/dist/esm/peer/PeerStore.js.map +6 -0
- package/dist/esm/peer/index.d.ts +13 -0
- package/dist/esm/peer/index.d.ts.map +1 -0
- package/dist/esm/peer/index.js +13 -0
- package/dist/esm/peer/index.js.map +6 -0
- package/dist/esm/protocol/ChannelManager.d.ts +30 -0
- package/dist/esm/protocol/ChannelManager.d.ts.map +1 -0
- package/dist/esm/protocol/ChannelManager.js +148 -0
- package/dist/esm/protocol/ChannelManager.js.map +6 -0
- package/dist/esm/protocol/DeviceAdvertiser.d.ts +43 -0
- package/dist/esm/protocol/DeviceAdvertiser.d.ts.map +1 -0
- package/dist/esm/protocol/DeviceAdvertiser.js +173 -0
- package/dist/esm/protocol/DeviceAdvertiser.js.map +6 -0
- package/dist/esm/protocol/DeviceCommissioner.d.ts +49 -0
- package/dist/esm/protocol/DeviceCommissioner.d.ts.map +1 -0
- package/dist/esm/protocol/DeviceCommissioner.js +187 -0
- package/dist/esm/protocol/DeviceCommissioner.js.map +6 -0
- package/dist/esm/protocol/ExchangeManager.d.ts +73 -0
- package/dist/esm/protocol/ExchangeManager.d.ts.map +1 -0
- package/dist/esm/protocol/ExchangeManager.js +398 -0
- package/dist/esm/protocol/ExchangeManager.js.map +6 -0
- package/dist/esm/protocol/MessageCounter.d.ts +57 -0
- package/dist/esm/protocol/MessageCounter.d.ts.map +1 -0
- package/dist/esm/protocol/MessageCounter.js +84 -0
- package/dist/esm/protocol/MessageCounter.js.map +6 -0
- package/dist/esm/protocol/MessageExchange.d.ts +84 -0
- package/dist/esm/protocol/MessageExchange.d.ts.map +1 -0
- package/dist/esm/protocol/MessageExchange.js +504 -0
- package/dist/esm/protocol/MessageExchange.js.map +6 -0
- package/dist/esm/protocol/MessageReceptionState.d.ts +65 -0
- package/dist/esm/protocol/MessageReceptionState.d.ts.map +1 -0
- package/dist/esm/protocol/MessageReceptionState.js +153 -0
- package/dist/esm/protocol/MessageReceptionState.js.map +6 -0
- package/dist/esm/protocol/ProtocolHandler.d.ts +13 -0
- package/dist/esm/protocol/ProtocolHandler.d.ts.map +1 -0
- package/dist/esm/protocol/ProtocolHandler.js +6 -0
- package/dist/esm/protocol/ProtocolHandler.js.map +6 -0
- package/dist/esm/protocol/index.d.ts +14 -0
- package/dist/esm/protocol/index.d.ts.map +1 -0
- package/dist/esm/protocol/index.js +14 -0
- package/dist/esm/protocol/index.js.map +6 -0
- package/dist/esm/securechannel/SecureChannelMessenger.d.ts +53 -0
- package/dist/esm/securechannel/SecureChannelMessenger.d.ts.map +1 -0
- package/dist/esm/securechannel/SecureChannelMessenger.js +128 -0
- package/dist/esm/securechannel/SecureChannelMessenger.js.map +6 -0
- package/dist/esm/securechannel/SecureChannelProtocol.d.ts +31 -0
- package/dist/esm/securechannel/SecureChannelProtocol.d.ts.map +1 -0
- package/dist/esm/securechannel/SecureChannelProtocol.js +127 -0
- package/dist/esm/securechannel/SecureChannelProtocol.js.map +6 -0
- package/dist/esm/securechannel/SecureChannelStatusMessageSchema.d.ts +23 -0
- package/dist/esm/securechannel/SecureChannelStatusMessageSchema.d.ts.map +1 -0
- package/dist/esm/securechannel/SecureChannelStatusMessageSchema.js +33 -0
- package/dist/esm/securechannel/SecureChannelStatusMessageSchema.js.map +6 -0
- package/dist/esm/securechannel/index.d.ts +9 -0
- package/dist/esm/securechannel/index.d.ts.map +1 -0
- package/dist/esm/securechannel/index.js +9 -0
- package/dist/esm/securechannel/index.js.map +6 -0
- package/dist/esm/session/InsecureSession.d.ts +38 -0
- package/dist/esm/session/InsecureSession.d.ts.map +1 -0
- package/dist/esm/session/InsecureSession.js +75 -0
- package/dist/esm/session/InsecureSession.js.map +6 -0
- package/dist/esm/session/SecureSession.d.ts +81 -0
- package/dist/esm/session/SecureSession.d.ts.map +1 -0
- package/dist/esm/session/SecureSession.js +281 -0
- package/dist/esm/session/SecureSession.js.map +6 -0
- package/dist/esm/session/Session.d.ts +102 -0
- package/dist/esm/session/Session.d.ts.map +1 -0
- package/dist/esm/session/Session.js +121 -0
- package/dist/esm/session/Session.js.map +6 -0
- package/dist/esm/session/SessionManager.d.ts +132 -0
- package/dist/esm/session/SessionManager.d.ts.map +1 -0
- package/dist/esm/session/SessionManager.js +411 -0
- package/dist/esm/session/SessionManager.js.map +6 -0
- package/dist/esm/session/case/CaseClient.d.ts +18 -0
- package/dist/esm/session/case/CaseClient.d.ts.map +1 -0
- package/dist/esm/session/case/CaseClient.js +208 -0
- package/dist/esm/session/case/CaseClient.js.map +6 -0
- package/dist/esm/session/case/CaseMessages.d.ts +82 -0
- package/dist/esm/session/case/CaseMessages.d.ts.map +1 -0
- package/dist/esm/session/case/CaseMessages.js +83 -0
- package/dist/esm/session/case/CaseMessages.js.map +6 -0
- package/dist/esm/session/case/CaseMessenger.d.ts +79 -0
- package/dist/esm/session/case/CaseMessenger.d.ts.map +1 -0
- package/dist/esm/session/case/CaseMessenger.js +54 -0
- package/dist/esm/session/case/CaseMessenger.js.map +6 -0
- package/dist/esm/session/case/CaseServer.d.ts +18 -0
- package/dist/esm/session/case/CaseServer.d.ts.map +1 -0
- package/dist/esm/session/case/CaseServer.js +224 -0
- package/dist/esm/session/case/CaseServer.js.map +6 -0
- package/dist/esm/session/index.d.ts +18 -0
- package/dist/esm/session/index.d.ts.map +1 -0
- package/dist/esm/session/index.js +18 -0
- package/dist/esm/session/index.js.map +6 -0
- package/dist/esm/session/pase/PaseClient.d.ts +18 -0
- package/dist/esm/session/pase/PaseClient.d.ts.map +1 -0
- package/dist/esm/session/pase/PaseClient.js +81 -0
- package/dist/esm/session/pase/PaseClient.js.map +6 -0
- package/dist/esm/session/pase/PaseMessages.d.ts +85 -0
- package/dist/esm/session/pase/PaseMessages.d.ts.map +1 -0
- package/dist/esm/session/pase/PaseMessages.js +68 -0
- package/dist/esm/session/pase/PaseMessages.js.map +6 -0
- package/dist/esm/session/pase/PaseMessenger.d.ts +75 -0
- package/dist/esm/session/pase/PaseMessenger.d.ts.map +1 -0
- package/dist/esm/session/pase/PaseMessenger.js +75 -0
- package/dist/esm/session/pase/PaseMessenger.js.map +6 -0
- package/dist/esm/session/pase/PaseServer.d.ts +29 -0
- package/dist/esm/session/pase/PaseServer.d.ts.map +1 -0
- package/dist/esm/session/pase/PaseServer.js +148 -0
- package/dist/esm/session/pase/PaseServer.js.map +6 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -0
- package/package.json +83 -0
- package/src/MatterDevice.ts +319 -0
- package/src/ble/Ble.ts +40 -0
- package/src/ble/BleConsts.ts +41 -0
- package/src/ble/BtpSessionHandler.ts +490 -0
- package/src/ble/index.ts +9 -0
- package/src/certificate/AttestationCertificateManager.ts +166 -0
- package/src/certificate/CertificateManager.ts +1136 -0
- package/src/certificate/CertificationDeclarationManager.ts +52 -0
- package/src/certificate/ChipPAAuthorities.ts +35 -0
- package/src/certificate/DeviceCertification.ts +116 -0
- package/src/certificate/RootCertificateManager.ts +179 -0
- package/src/certificate/index.ts +12 -0
- package/src/cluster/client/AttributeClient.ts +196 -0
- package/src/cluster/client/ClusterClient.ts +354 -0
- package/src/cluster/client/ClusterClientTypes.ts +257 -0
- package/src/cluster/client/EventClient.ts +110 -0
- package/src/cluster/client/index.ts +10 -0
- package/src/cluster/index.ts +8 -0
- package/src/cluster/server/AttributeServer.ts +986 -0
- package/src/cluster/server/ClusterDatasource.ts +17 -0
- package/src/cluster/server/ClusterServer.ts +46 -0
- package/src/cluster/server/CommandServer.ts +89 -0
- package/src/cluster/server/EventServer.ts +198 -0
- package/src/cluster/server/index.ts +11 -0
- package/src/codec/BtpCodec.ts +333 -0
- package/src/codec/MessageCodec.ts +276 -0
- package/src/codec/index.ts +9 -0
- package/src/common/FailsafeContext.ts +330 -0
- package/src/common/FailsafeTimer.ts +91 -0
- package/src/common/InstanceBroadcaster.ts +220 -0
- package/src/common/OperationalCredentialsTypes.ts +24 -0
- package/src/common/Scanner.ts +188 -0
- package/src/common/index.ts +12 -0
- package/src/endpoint/EndpointInterface.ts +41 -0
- package/src/endpoint/EndpointStructureLogger.ts +277 -0
- package/src/endpoint/index.ts +8 -0
- package/src/fabric/Fabric.ts +528 -0
- package/src/fabric/FabricManager.ts +231 -0
- package/src/fabric/index.ts +8 -0
- package/src/index.ts +20 -0
- package/src/interaction/AccessControlManager.ts +343 -0
- package/src/interaction/AttributeDataDecoder.ts +266 -0
- package/src/interaction/AttributeDataEncoder.ts +268 -0
- package/src/interaction/EventDataDecoder.ts +133 -0
- package/src/interaction/EventHandler.ts +141 -0
- package/src/interaction/InteractionClient.ts +1215 -0
- package/src/interaction/InteractionEndpointStructure.ts +462 -0
- package/src/interaction/InteractionMessenger.ts +592 -0
- package/src/interaction/InteractionServer.ts +1428 -0
- package/src/interaction/ServerSubscription.ts +908 -0
- package/src/interaction/Subscription.ts +89 -0
- package/src/interaction/SubscriptionOptions.ts +49 -0
- package/src/interaction/index.ts +17 -0
- package/src/mdns/MdnsBroadcaster.ts +415 -0
- package/src/mdns/MdnsConsts.ts +24 -0
- package/src/mdns/MdnsInstanceBroadcaster.ts +88 -0
- package/src/mdns/MdnsScanner.ts +1042 -0
- package/src/mdns/MdnsServer.ts +322 -0
- package/src/mdns/MdnsService.ts +102 -0
- package/src/mdns/index.ts +12 -0
- package/src/peer/ControllerCommissioner.ts +372 -0
- package/src/peer/ControllerCommissioningFlow.ts +1127 -0
- package/src/peer/ControllerDiscovery.ts +231 -0
- package/src/peer/OperationalPeer.ts +32 -0
- package/src/peer/PeerAddress.ts +78 -0
- package/src/peer/PeerSet.ts +684 -0
- package/src/peer/PeerStore.ts +19 -0
- package/src/peer/index.ts +13 -0
- package/src/protocol/ChannelManager.ts +168 -0
- package/src/protocol/DeviceAdvertiser.ts +208 -0
- package/src/protocol/DeviceCommissioner.ts +280 -0
- package/src/protocol/ExchangeManager.ts +493 -0
- package/src/protocol/MessageCounter.ts +128 -0
- package/src/protocol/MessageExchange.ts +662 -0
- package/src/protocol/MessageReceptionState.ts +207 -0
- package/src/protocol/ProtocolHandler.ts +14 -0
- package/src/protocol/index.ts +14 -0
- package/src/securechannel/SecureChannelMessenger.ts +166 -0
- package/src/securechannel/SecureChannelProtocol.ts +150 -0
- package/src/securechannel/SecureChannelStatusMessageSchema.ts +40 -0
- package/src/securechannel/index.ts +10 -0
- package/src/session/InsecureSession.ts +96 -0
- package/src/session/SecureSession.ts +349 -0
- package/src/session/Session.ts +188 -0
- package/src/session/SessionManager.ts +559 -0
- package/src/session/case/CaseClient.ts +235 -0
- package/src/session/case/CaseMessages.ts +81 -0
- package/src/session/case/CaseMessenger.ts +57 -0
- package/src/session/case/CaseServer.ts +269 -0
- package/src/session/index.ts +21 -0
- package/src/session/pase/PaseClient.ts +100 -0
- package/src/session/pase/PaseMessages.ts +72 -0
- package/src/session/pase/PaseMessenger.ts +86 -0
- package/src/session/pase/PaseServer.ts +187 -0
- package/src/tsconfig.json +20 -0
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { Bytes, DataReader, DataWriter, Diagnostic, Endian, NotImplementedError, UnexpectedDataError } from "#general";
|
|
8
|
+
import { GroupId, NodeId } from "#types";
|
|
9
|
+
|
|
10
|
+
export interface PacketHeader {
|
|
11
|
+
sessionId: number;
|
|
12
|
+
sessionType: SessionType;
|
|
13
|
+
hasPrivacyEnhancements: boolean;
|
|
14
|
+
isControlMessage: boolean;
|
|
15
|
+
hasMessageExtensions: boolean;
|
|
16
|
+
messageId: number;
|
|
17
|
+
sourceNodeId?: NodeId;
|
|
18
|
+
destNodeId?: NodeId;
|
|
19
|
+
destGroupId?: number;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface DecodedPacketHeader extends PacketHeader {
|
|
23
|
+
securityFlags: number; // The SecurityFlags as pure data field to be used as nonce
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface PayloadHeader {
|
|
27
|
+
exchangeId: number;
|
|
28
|
+
protocolId: number;
|
|
29
|
+
messageType: number;
|
|
30
|
+
isInitiatorMessage: boolean;
|
|
31
|
+
requiresAck: boolean;
|
|
32
|
+
ackedMessageId?: number;
|
|
33
|
+
hasSecuredExtension: boolean;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export interface Packet {
|
|
37
|
+
header: PacketHeader;
|
|
38
|
+
messageExtension?: Uint8Array;
|
|
39
|
+
applicationPayload: Uint8Array;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export interface DecodedPacket extends Packet {
|
|
43
|
+
header: DecodedPacketHeader;
|
|
44
|
+
}
|
|
45
|
+
export interface Message {
|
|
46
|
+
packetHeader: PacketHeader;
|
|
47
|
+
payloadHeader: PayloadHeader;
|
|
48
|
+
securityExtension?: Uint8Array;
|
|
49
|
+
payload: Uint8Array;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export interface DecodedMessage extends Message {
|
|
53
|
+
packetHeader: DecodedPacketHeader;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const HEADER_VERSION = 0x00;
|
|
57
|
+
|
|
58
|
+
export enum SessionType {
|
|
59
|
+
Group = 1,
|
|
60
|
+
Unicast = 0,
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
const COMMON_VENDOR_ID = 0x0000;
|
|
64
|
+
|
|
65
|
+
const enum PacketHeaderFlag {
|
|
66
|
+
HasDestNodeId = 0b00000001,
|
|
67
|
+
HasDestGroupId = 0b00000010,
|
|
68
|
+
HasSourceNodeId = 0b00000100,
|
|
69
|
+
Reserved = 0b00001000,
|
|
70
|
+
VersionMask = 0b11110000,
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
const enum PayloadHeaderFlag {
|
|
74
|
+
IsInitiatorMessage = 0b00000001,
|
|
75
|
+
IsAckMessage = 0b00000010,
|
|
76
|
+
RequiresAck = 0b00000100,
|
|
77
|
+
HasSecureExtension = 0b00001000,
|
|
78
|
+
HasVendorId = 0b00010000,
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
const enum SecurityFlag {
|
|
82
|
+
HasPrivacyEnhancements = 0b10000000,
|
|
83
|
+
IsControlMessage = 0b01000000,
|
|
84
|
+
HasMessageExtension = 0b00100000,
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export class MessageCodec {
|
|
88
|
+
static decodePacket(data: Uint8Array): DecodedPacket {
|
|
89
|
+
const reader = new DataReader(data, Endian.Little);
|
|
90
|
+
const header = this.decodePacketHeader(reader);
|
|
91
|
+
|
|
92
|
+
let messageExtension: Uint8Array | undefined = undefined;
|
|
93
|
+
if (header.hasMessageExtensions) {
|
|
94
|
+
const extensionLength = reader.readUInt16();
|
|
95
|
+
messageExtension = reader.readByteArray(extensionLength);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
const applicationPayload = reader.getRemainingBytes();
|
|
99
|
+
return {
|
|
100
|
+
header,
|
|
101
|
+
messageExtension,
|
|
102
|
+
applicationPayload,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
static decodePayload({ header, applicationPayload }: DecodedPacket): DecodedMessage {
|
|
107
|
+
const reader = new DataReader(applicationPayload, Endian.Little);
|
|
108
|
+
const payloadHeader = this.decodePayloadHeader(reader);
|
|
109
|
+
let securityExtension: Uint8Array | undefined = undefined;
|
|
110
|
+
if (payloadHeader.hasSecuredExtension) {
|
|
111
|
+
const extensionLength = reader.readUInt16();
|
|
112
|
+
securityExtension = reader.readByteArray(extensionLength);
|
|
113
|
+
}
|
|
114
|
+
return {
|
|
115
|
+
packetHeader: header,
|
|
116
|
+
payloadHeader,
|
|
117
|
+
securityExtension,
|
|
118
|
+
payload: reader.getRemainingBytes(),
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
static encodePayload({ packetHeader, payloadHeader, payload, securityExtension }: Message): Packet {
|
|
123
|
+
if (securityExtension !== undefined || payloadHeader.hasSecuredExtension) {
|
|
124
|
+
throw new NotImplementedError(`Security extensions not supported when encoding a payload.`);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
return {
|
|
128
|
+
header: packetHeader,
|
|
129
|
+
applicationPayload: Bytes.concat(this.encodePayloadHeader(payloadHeader), payload),
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
static encodePacket({ header, applicationPayload, messageExtension }: Packet): Uint8Array {
|
|
134
|
+
if (messageExtension !== undefined || header.hasMessageExtensions) {
|
|
135
|
+
throw new NotImplementedError(`Message extensions not supported when encoding a packet.`);
|
|
136
|
+
}
|
|
137
|
+
return Bytes.concat(this.encodePacketHeader(header), applicationPayload);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
private static decodePacketHeader(reader: DataReader<Endian.Little>): DecodedPacketHeader {
|
|
141
|
+
// Read and parse message flags
|
|
142
|
+
const flags = reader.readUInt8();
|
|
143
|
+
const version = (flags & PacketHeaderFlag.VersionMask) >> 4;
|
|
144
|
+
const hasDestNodeId = (flags & PacketHeaderFlag.HasDestNodeId) !== 0;
|
|
145
|
+
const hasDestGroupId = (flags & PacketHeaderFlag.HasDestGroupId) !== 0;
|
|
146
|
+
const hasSourceNodeId = (flags & PacketHeaderFlag.HasSourceNodeId) !== 0;
|
|
147
|
+
|
|
148
|
+
if (hasDestNodeId && hasDestGroupId)
|
|
149
|
+
throw new UnexpectedDataError(
|
|
150
|
+
"The header cannot contain destination group and node at the same time. Reserved for future use. Discard message.",
|
|
151
|
+
);
|
|
152
|
+
if (version !== HEADER_VERSION) throw new NotImplementedError(`Unsupported header version ${version}.`);
|
|
153
|
+
|
|
154
|
+
const sessionId = reader.readUInt16();
|
|
155
|
+
const securityFlags = reader.readUInt8();
|
|
156
|
+
const messageId = reader.readUInt32();
|
|
157
|
+
const sourceNodeId = hasSourceNodeId ? NodeId(reader.readUInt64()) : undefined;
|
|
158
|
+
const destNodeId = hasDestNodeId ? NodeId(reader.readUInt64()) : undefined;
|
|
159
|
+
const destGroupId = hasDestGroupId ? GroupId(reader.readUInt16()) : undefined;
|
|
160
|
+
|
|
161
|
+
const sessionType = securityFlags & 0b00000011;
|
|
162
|
+
if (sessionType !== SessionType.Group && sessionType !== SessionType.Unicast)
|
|
163
|
+
throw new UnexpectedDataError(`Unsupported session type ${sessionType}`);
|
|
164
|
+
const hasPrivacyEnhancements = (securityFlags & SecurityFlag.HasPrivacyEnhancements) !== 0;
|
|
165
|
+
if (hasPrivacyEnhancements) throw new NotImplementedError(`Privacy enhancements not supported`);
|
|
166
|
+
const isControlMessage = (securityFlags & SecurityFlag.IsControlMessage) !== 0;
|
|
167
|
+
if (isControlMessage) throw new NotImplementedError(`Control Messages not supported`);
|
|
168
|
+
const hasMessageExtensions = (securityFlags & SecurityFlag.HasMessageExtension) !== 0;
|
|
169
|
+
|
|
170
|
+
return {
|
|
171
|
+
securityFlags,
|
|
172
|
+
sessionId,
|
|
173
|
+
sourceNodeId,
|
|
174
|
+
messageId,
|
|
175
|
+
destGroupId,
|
|
176
|
+
destNodeId,
|
|
177
|
+
sessionType,
|
|
178
|
+
hasPrivacyEnhancements,
|
|
179
|
+
isControlMessage,
|
|
180
|
+
hasMessageExtensions,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
private static decodePayloadHeader(reader: DataReader<Endian.Little>): PayloadHeader {
|
|
185
|
+
const exchangeFlags = reader.readUInt8();
|
|
186
|
+
const isInitiatorMessage = (exchangeFlags & PayloadHeaderFlag.IsInitiatorMessage) !== 0;
|
|
187
|
+
const isAckMessage = (exchangeFlags & PayloadHeaderFlag.IsAckMessage) !== 0;
|
|
188
|
+
const requiresAck = (exchangeFlags & PayloadHeaderFlag.RequiresAck) !== 0;
|
|
189
|
+
const hasSecuredExtension = (exchangeFlags & PayloadHeaderFlag.HasSecureExtension) !== 0;
|
|
190
|
+
const hasVendorId = (exchangeFlags & PayloadHeaderFlag.HasVendorId) !== 0;
|
|
191
|
+
|
|
192
|
+
const messageType = reader.readUInt8();
|
|
193
|
+
const exchangeId = reader.readUInt16();
|
|
194
|
+
const vendorId = hasVendorId ? reader.readUInt16() : COMMON_VENDOR_ID;
|
|
195
|
+
const protocolId = (vendorId << 16) | reader.readUInt16();
|
|
196
|
+
const ackedMessageId = isAckMessage ? reader.readUInt32() : undefined;
|
|
197
|
+
|
|
198
|
+
return {
|
|
199
|
+
protocolId,
|
|
200
|
+
exchangeId,
|
|
201
|
+
messageType,
|
|
202
|
+
isInitiatorMessage,
|
|
203
|
+
requiresAck,
|
|
204
|
+
ackedMessageId,
|
|
205
|
+
hasSecuredExtension,
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
static encodePacketHeader({
|
|
210
|
+
messageId: messageCounter,
|
|
211
|
+
sessionId,
|
|
212
|
+
destGroupId,
|
|
213
|
+
destNodeId,
|
|
214
|
+
sourceNodeId,
|
|
215
|
+
sessionType,
|
|
216
|
+
}: PacketHeader) {
|
|
217
|
+
const writer = new DataWriter(Endian.Little);
|
|
218
|
+
const flags =
|
|
219
|
+
(HEADER_VERSION << 4) |
|
|
220
|
+
(destGroupId !== undefined ? PacketHeaderFlag.HasDestGroupId : 0) |
|
|
221
|
+
(destNodeId !== undefined ? PacketHeaderFlag.HasDestNodeId : 0) |
|
|
222
|
+
(sourceNodeId !== undefined ? PacketHeaderFlag.HasSourceNodeId : 0);
|
|
223
|
+
const securityFlags = sessionType;
|
|
224
|
+
|
|
225
|
+
writer.writeUInt8(flags);
|
|
226
|
+
writer.writeUInt16(sessionId);
|
|
227
|
+
writer.writeUInt8(securityFlags);
|
|
228
|
+
writer.writeUInt32(messageCounter);
|
|
229
|
+
if (sourceNodeId !== undefined) writer.writeUInt64(sourceNodeId);
|
|
230
|
+
if (destNodeId !== undefined) writer.writeUInt64(destNodeId);
|
|
231
|
+
if (destGroupId !== undefined) writer.writeUInt32(destGroupId);
|
|
232
|
+
return writer.toByteArray();
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
static messageDiagnostics(
|
|
236
|
+
{
|
|
237
|
+
packetHeader: { messageId, sessionId },
|
|
238
|
+
payloadHeader: { exchangeId, messageType, protocolId, ackedMessageId, requiresAck },
|
|
239
|
+
payload,
|
|
240
|
+
}: Message,
|
|
241
|
+
isDuplicate = false,
|
|
242
|
+
) {
|
|
243
|
+
return Diagnostic.dict({
|
|
244
|
+
id: `${sessionId}/${exchangeId}/${messageId}`,
|
|
245
|
+
type: `${protocolId}/${messageType}`,
|
|
246
|
+
acked: ackedMessageId,
|
|
247
|
+
reqAck: requiresAck,
|
|
248
|
+
duplicate: isDuplicate,
|
|
249
|
+
payload: payload,
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
private static encodePayloadHeader({
|
|
254
|
+
exchangeId,
|
|
255
|
+
isInitiatorMessage,
|
|
256
|
+
messageType,
|
|
257
|
+
protocolId,
|
|
258
|
+
requiresAck,
|
|
259
|
+
ackedMessageId: ackedMessageCounter,
|
|
260
|
+
}: PayloadHeader) {
|
|
261
|
+
const writer = new DataWriter(Endian.Little);
|
|
262
|
+
const vendorId = (protocolId & 0xffff0000) >> 16;
|
|
263
|
+
const flags =
|
|
264
|
+
(isInitiatorMessage ? PayloadHeaderFlag.IsInitiatorMessage : 0) |
|
|
265
|
+
(ackedMessageCounter !== undefined ? PayloadHeaderFlag.IsAckMessage : 0) |
|
|
266
|
+
(requiresAck ? PayloadHeaderFlag.RequiresAck : 0) |
|
|
267
|
+
(vendorId !== COMMON_VENDOR_ID ? PayloadHeaderFlag.HasVendorId : 0);
|
|
268
|
+
|
|
269
|
+
writer.writeUInt8(flags);
|
|
270
|
+
writer.writeUInt8(messageType);
|
|
271
|
+
writer.writeUInt16(exchangeId);
|
|
272
|
+
vendorId !== COMMON_VENDOR_ID ? writer.writeUInt32(protocolId) : writer.writeUInt16(protocolId);
|
|
273
|
+
if (ackedMessageCounter !== undefined) writer.writeUInt32(ackedMessageCounter);
|
|
274
|
+
return writer.toByteArray();
|
|
275
|
+
}
|
|
276
|
+
}
|
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { AsyncObservable, Construction, Logger, MatterFlowError, UnexpectedDataError } from "#general";
|
|
8
|
+
import { CaseAuthenticatedTag, NodeId, ValidationError, VendorId } from "#types";
|
|
9
|
+
import { Fabric, FabricBuilder } from "../fabric/Fabric.js";
|
|
10
|
+
import { FabricManager } from "../fabric/FabricManager.js";
|
|
11
|
+
import { SessionManager } from "../session/SessionManager.js";
|
|
12
|
+
import { FailsafeTimer, MatterFabricConflictError } from "./FailsafeTimer.js";
|
|
13
|
+
|
|
14
|
+
const logger = Logger.get("FailsafeContext");
|
|
15
|
+
|
|
16
|
+
export class MatterFabricInvalidAdminSubjectError extends MatterFlowError {}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* A "timed operation" is a command or sequence of commands that operate with a failsafe timer that will abort the
|
|
20
|
+
* operation if it does not complete within a specific window.
|
|
21
|
+
*
|
|
22
|
+
* FailsafeContext maintains the failsafe timer and tracks information required to rollback state if the operation
|
|
23
|
+
* aborts.
|
|
24
|
+
*
|
|
25
|
+
* Timed operations are exclusive for a node.
|
|
26
|
+
*/
|
|
27
|
+
export abstract class FailsafeContext {
|
|
28
|
+
#sessions: SessionManager;
|
|
29
|
+
#fabrics: FabricManager;
|
|
30
|
+
#failsafe?: FailsafeTimer;
|
|
31
|
+
#construction: Construction<FailsafeContext>;
|
|
32
|
+
#associatedFabric?: Fabric;
|
|
33
|
+
#csrSessionId?: number;
|
|
34
|
+
#forUpdateNoc?: boolean;
|
|
35
|
+
#fabricBuilder = new FabricBuilder();
|
|
36
|
+
|
|
37
|
+
#commissioned = AsyncObservable<[], void>();
|
|
38
|
+
|
|
39
|
+
constructor(options: FailsafeContext.Options) {
|
|
40
|
+
const { expiryLengthSeconds, associatedFabric, maxCumulativeFailsafeSeconds } = options;
|
|
41
|
+
|
|
42
|
+
this.#sessions = options.sessions;
|
|
43
|
+
this.#fabrics = options.fabrics;
|
|
44
|
+
this.#associatedFabric = options.associatedFabric;
|
|
45
|
+
|
|
46
|
+
this.#construction = Construction(this, async () => {
|
|
47
|
+
// Ensure derived class construction is complete
|
|
48
|
+
await Promise.resolve();
|
|
49
|
+
|
|
50
|
+
await this.storeEndpointState();
|
|
51
|
+
|
|
52
|
+
// If ExpiryLengthSeconds is non-zero and the fail-safe timer was not currently armed, then the fail-safe
|
|
53
|
+
// timer SHALL be armed for that duration.
|
|
54
|
+
this.#failsafe = new FailsafeTimer(
|
|
55
|
+
associatedFabric,
|
|
56
|
+
expiryLengthSeconds,
|
|
57
|
+
maxCumulativeFailsafeSeconds,
|
|
58
|
+
() => this.#failSafeExpired(),
|
|
59
|
+
);
|
|
60
|
+
logger.debug(`Arm failSafe timer for ${expiryLengthSeconds}s.`);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
async extend(fabric: Fabric | undefined, expiryLengthSeconds: number) {
|
|
65
|
+
await this.#construction;
|
|
66
|
+
await this.#failsafe?.reArm(fabric, expiryLengthSeconds);
|
|
67
|
+
if (expiryLengthSeconds > 0) {
|
|
68
|
+
logger.debug(`Extend failSafe timer for ${expiryLengthSeconds}s.`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
get fabricIndex() {
|
|
73
|
+
return this.#fabricBuilder.fabricIndex;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
get construction() {
|
|
77
|
+
return this.#construction;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
get commissioned() {
|
|
81
|
+
return this.#commissioned;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
get associatedFabric() {
|
|
85
|
+
return this.#associatedFabric;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
get csrSessionId() {
|
|
89
|
+
return this.#csrSessionId;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
get forUpdateNoc() {
|
|
93
|
+
return this.#forUpdateNoc;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
get hasRootCert() {
|
|
97
|
+
return this.#fabricBuilder.hasRootCert();
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
get rootCert() {
|
|
101
|
+
return this.#fabricBuilder.rootCert;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
async completeCommission() {
|
|
105
|
+
// 1. The Fail-Safe timer associated with the current Fail-Safe context SHALL be disarmed.
|
|
106
|
+
if (this.#failsafe === undefined) {
|
|
107
|
+
throw new MatterFlowError("armFailSafe should be called first!"); // TODO
|
|
108
|
+
}
|
|
109
|
+
this.#failsafe.complete();
|
|
110
|
+
|
|
111
|
+
if (this.fabricIndex !== undefined) {
|
|
112
|
+
await this.#fabrics.persistFabrics();
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
this.#failsafe = undefined;
|
|
116
|
+
|
|
117
|
+
// 2. The commissioning window at the Server SHALL be closed.
|
|
118
|
+
await this.commissioned.emit();
|
|
119
|
+
|
|
120
|
+
// TODO 3. Any temporary administrative privileges automatically granted to any open PASE session SHALL be revoked (see Section 6.6.2.8, “Bootstrapping of the Access Control Cluster”).
|
|
121
|
+
|
|
122
|
+
// 4. The Secure Session Context of any PASE session still established at the Server SHALL be cleared.
|
|
123
|
+
await this.removePaseSession();
|
|
124
|
+
|
|
125
|
+
await this.close();
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
getFailSafeContext() {
|
|
129
|
+
if (this.#failsafe === undefined) throw new MatterFlowError("armFailSafe should be called first!");
|
|
130
|
+
return this.#failsafe;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
getNextFabricIndex() {
|
|
134
|
+
return this.#fabrics.getNextFabricIndex();
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
async addFabric(fabric: Fabric) {
|
|
138
|
+
this.#fabrics.addFabric(fabric);
|
|
139
|
+
if (this.#failsafe !== undefined) {
|
|
140
|
+
this.#associatedFabric = this.#failsafe.associatedFabric = fabric;
|
|
141
|
+
}
|
|
142
|
+
return fabric.fabricIndex;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
async updateFabric(fabric: Fabric) {
|
|
146
|
+
await this.#fabrics.updateFabric(fabric);
|
|
147
|
+
await this.#sessions.deleteResumptionRecordsForFabric(fabric);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Handles a CSR from OperationalCredentials cluster and stores additional internal information for further
|
|
152
|
+
* validity checks.
|
|
153
|
+
*/
|
|
154
|
+
createCertificateSigningRequest(isForUpdateNoc: boolean, sessionId: number) {
|
|
155
|
+
if (this.#fabrics.findByKeypair(this.#fabricBuilder.keyPair)) {
|
|
156
|
+
throw new MatterFlowError("Key pair already exists."); // becomes Failure as StateResponse
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
const result = this.#fabricBuilder.createCertificateSigningRequest();
|
|
160
|
+
this.#csrSessionId = sessionId;
|
|
161
|
+
this.#forUpdateNoc = isForUpdateNoc;
|
|
162
|
+
return result;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
async removePaseSession() {
|
|
166
|
+
const session = this.#sessions.getPaseSession();
|
|
167
|
+
if (session) {
|
|
168
|
+
await session.close(true);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
async close() {
|
|
173
|
+
await this.#construction;
|
|
174
|
+
await this.#construction.close(async () => {
|
|
175
|
+
if (this.#failsafe) {
|
|
176
|
+
await this.#failsafe.close();
|
|
177
|
+
this.#failsafe = undefined;
|
|
178
|
+
await this.rollback();
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/** Handles adding a trusted root certificate from Operational Credentials cluster. */
|
|
184
|
+
setRootCert(rootCert: Uint8Array) {
|
|
185
|
+
this.#fabricBuilder.setRootCert(rootCert);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Build a new Fabric object based on an existing fabric for the "UpdateNoc" case of the Operational Credentials
|
|
190
|
+
* cluster.
|
|
191
|
+
*/
|
|
192
|
+
async buildUpdatedFabric(nocValue: Uint8Array, icacValue: Uint8Array | undefined) {
|
|
193
|
+
if (this.associatedFabric === undefined) {
|
|
194
|
+
throw new MatterFlowError("No fabric associated with failsafe context, but we prepare an Fabric update.");
|
|
195
|
+
}
|
|
196
|
+
this.#fabricBuilder.initializeFromFabricForUpdate(this.associatedFabric);
|
|
197
|
+
this.#fabricBuilder.setOperationalCert(nocValue, icacValue);
|
|
198
|
+
return await this.#fabricBuilder.build(this.associatedFabric.fabricIndex);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/** Build a new Fabric object for a new fabric for the "AddNoc" case of the Operational Credentials cluster. */
|
|
202
|
+
async buildFabric(nocData: {
|
|
203
|
+
nocValue: Uint8Array;
|
|
204
|
+
icacValue: Uint8Array | undefined;
|
|
205
|
+
adminVendorId: VendorId;
|
|
206
|
+
ipkValue: Uint8Array;
|
|
207
|
+
caseAdminSubject: NodeId;
|
|
208
|
+
}) {
|
|
209
|
+
const builder = this.#fabricBuilder;
|
|
210
|
+
|
|
211
|
+
const { nocValue, icacValue, adminVendorId, ipkValue, caseAdminSubject } = nocData;
|
|
212
|
+
|
|
213
|
+
// Handle error if the CaseAdminSubject field is not a valid ACL subject in the context of AuthMode set to CASE
|
|
214
|
+
if (!NodeId.isOperationalNodeId(caseAdminSubject) && !NodeId.isCaseAuthenticatedTag(caseAdminSubject)) {
|
|
215
|
+
try {
|
|
216
|
+
if (CaseAuthenticatedTag.getVersion(NodeId.extractAsCaseAuthenticatedTag(caseAdminSubject)) === 0) {
|
|
217
|
+
throw new MatterFabricInvalidAdminSubjectError();
|
|
218
|
+
}
|
|
219
|
+
} catch (error) {
|
|
220
|
+
// Validation error can happen when parsing the CaseAuthenticatedTag, then it is invalid too
|
|
221
|
+
if (error instanceof ValidationError || error instanceof UnexpectedDataError) {
|
|
222
|
+
throw new MatterFabricInvalidAdminSubjectError();
|
|
223
|
+
} else {
|
|
224
|
+
throw error;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
builder.setOperationalCert(nocValue, icacValue);
|
|
230
|
+
const fabricAlreadyExisting = this.#fabrics.getFabrics().find(fabric => builder.matchesToFabric(fabric));
|
|
231
|
+
|
|
232
|
+
if (fabricAlreadyExisting) {
|
|
233
|
+
throw new MatterFabricConflictError(
|
|
234
|
+
`Fabric with Id ${builder.fabricId} and Node Id ${builder.nodeId} already exists.`,
|
|
235
|
+
);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
return builder
|
|
239
|
+
.setRootVendorId(adminVendorId)
|
|
240
|
+
.setIdentityProtectionKey(ipkValue)
|
|
241
|
+
.setRootNodeId(caseAdminSubject)
|
|
242
|
+
.build(this.#fabrics.getNextFabricIndex());
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
async #failSafeExpired() {
|
|
246
|
+
logger.info("Failsafe timer expired, Reset fabric builder.");
|
|
247
|
+
|
|
248
|
+
await this.close();
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
protected async rollback() {
|
|
252
|
+
if (this.fabricIndex !== undefined && !this.#forUpdateNoc) {
|
|
253
|
+
logger.debug(`Revoking fabric with index ${this.fabricIndex}`);
|
|
254
|
+
await this.#fabrics.revokeFabric(this.fabricIndex);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
// On expiry of the fail-safe timer, the following actions SHALL be performed in order:
|
|
258
|
+
// 1. Terminate any open PASE secure session by clearing any associated Secure Session Context at the Server.
|
|
259
|
+
await this.removePaseSession();
|
|
260
|
+
|
|
261
|
+
// TODO 2. Revoke the temporary administrative privileges granted to any open PASE session (see Section 6.6.2.8, “Bootstrapping of the Access Control Cluster”) at the Server.
|
|
262
|
+
|
|
263
|
+
// 3. If an AddNOC or UpdateNOC command has been successfully invoked, terminate all CASE sessions associated with the Fabric whose Fabric Index is recorded in the Fail-Safe context (see Section 11.9.6.2, “ArmFailSafe Command”) by clearing any associated Secure Session Context at the Server.
|
|
264
|
+
let fabric: Fabric | undefined = undefined;
|
|
265
|
+
if (this.fabricIndex !== undefined) {
|
|
266
|
+
const fabricIndex = this.fabricIndex;
|
|
267
|
+
fabric = this.#fabrics.getFabrics().find(fabric => fabric.fabricIndex === fabricIndex);
|
|
268
|
+
if (fabric !== undefined) {
|
|
269
|
+
const session = this.#sessions.getSessionForNode(fabric.addressOf(fabric.rootNodeId));
|
|
270
|
+
if (session !== undefined && session.isSecure) {
|
|
271
|
+
await session.close(false);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
// 4. Reset the configuration of all Network Commissioning Networks attribute to their state prior to the
|
|
277
|
+
// Fail-Safe being armed.
|
|
278
|
+
await this.restoreNetworkState();
|
|
279
|
+
|
|
280
|
+
// 5. If an UpdateNOC command had been successfully invoked, revert the state of operational key pair, NOC and
|
|
281
|
+
// ICAC for that Fabric to the state prior to the Fail-Safe timer being armed, for the Fabric Index that was
|
|
282
|
+
// the subject of the UpdateNOC command.
|
|
283
|
+
if (this.#forUpdateNoc && this.associatedFabric !== undefined) {
|
|
284
|
+
// update FabricManager and Resumption records but leave current session intact
|
|
285
|
+
await this.restoreFabric(this.associatedFabric);
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
// 6. If an AddNOC command had been successfully invoked, achieve the equivalent effect of invoking the RemoveFabric command against the Fabric Index stored in the Fail-Safe Context for the Fabric Index that was the subject of the AddNOC command. This SHALL remove all associations to that Fabric including all fabric-scoped data, and MAY possibly factory-reset the device depending on current device state. This SHALL only apply to Fabrics added during the fail-safe period as the result of the AddNOC command.
|
|
289
|
+
// 7. Remove any RCACs added by the AddTrustedRootCertificate command that are not currently referenced by any entry in the Fabrics attribute.
|
|
290
|
+
if (!this.#forUpdateNoc && fabric !== undefined) {
|
|
291
|
+
const fabricIndex = this.fabricIndex;
|
|
292
|
+
if (fabricIndex !== undefined) {
|
|
293
|
+
const fabric = this.#fabrics.getFabrics().find(fabric => fabric.fabricIndex === fabricIndex);
|
|
294
|
+
if (fabric !== undefined) {
|
|
295
|
+
await this.revokeFabric(fabric);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
// 8. Reset the Breadcrumb attribute to zero.
|
|
301
|
+
await this.restoreBreadcrumb();
|
|
302
|
+
|
|
303
|
+
// TODO 9. Optionally: if no factory-reset resulted from the previous steps, it is RECOMMENDED that the
|
|
304
|
+
// Node rollback the state of all non fabric-scoped data present in the Fail-Safe context.
|
|
305
|
+
// In theory happens automatically by revoking last fabric
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
abstract storeEndpointState(): Promise<void>;
|
|
309
|
+
|
|
310
|
+
/** Restore Cluster data when the FailSafe context expired. */
|
|
311
|
+
abstract restoreNetworkState(): Promise<void>;
|
|
312
|
+
|
|
313
|
+
async restoreFabric(fabric: Fabric) {
|
|
314
|
+
await this.updateFabric(fabric);
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
abstract revokeFabric(fabric: Fabric): Promise<void>;
|
|
318
|
+
|
|
319
|
+
abstract restoreBreadcrumb(): Promise<void>;
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
export namespace FailsafeContext {
|
|
323
|
+
export interface Options {
|
|
324
|
+
sessions: SessionManager;
|
|
325
|
+
fabrics: FabricManager;
|
|
326
|
+
expiryLengthSeconds: number;
|
|
327
|
+
maxCumulativeFailsafeSeconds: number;
|
|
328
|
+
associatedFabric: Fabric | undefined;
|
|
329
|
+
}
|
|
330
|
+
}
|