@matter/protocol 0.16.0-alpha.0-20251213-e83db3732 → 0.16.0-alpha.0-20251217-038f88085
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 +1 -1
- package/dist/cjs/action/client/ClientInteraction.d.ts +12 -5
- package/dist/cjs/action/client/ClientInteraction.d.ts.map +1 -1
- package/dist/cjs/action/client/ClientInteraction.js +39 -15
- package/dist/cjs/action/client/ClientInteraction.js.map +1 -1
- package/dist/cjs/action/client/ClientRead.d.ts +10 -0
- package/dist/cjs/action/client/ClientRead.d.ts.map +1 -0
- package/dist/cjs/action/client/ClientRead.js +22 -0
- package/dist/cjs/action/client/ClientRead.js.map +6 -0
- package/dist/cjs/action/client/ClientRequest.d.ts +20 -0
- package/dist/cjs/action/client/ClientRequest.d.ts.map +1 -0
- package/dist/cjs/action/client/ClientRequest.js +22 -0
- package/dist/cjs/action/client/ClientRequest.js.map +6 -0
- package/dist/cjs/action/client/ClientWrite.d.ts +10 -0
- package/dist/cjs/action/client/ClientWrite.d.ts.map +1 -0
- package/dist/cjs/action/client/ClientWrite.js +22 -0
- package/dist/cjs/action/client/ClientWrite.js.map +6 -0
- package/dist/cjs/action/client/QueuedClientInteraction.d.ts +49 -0
- package/dist/cjs/action/client/QueuedClientInteraction.d.ts.map +1 -0
- package/dist/cjs/action/client/QueuedClientInteraction.js +160 -0
- package/dist/cjs/action/client/QueuedClientInteraction.js.map +6 -0
- package/dist/cjs/action/client/index.d.ts +4 -0
- package/dist/cjs/action/client/index.d.ts.map +1 -1
- package/dist/cjs/action/client/index.js +4 -0
- package/dist/cjs/action/client/index.js.map +1 -1
- package/dist/cjs/action/client/subscription/ClientSubscribe.d.ts +2 -1
- package/dist/cjs/action/client/subscription/ClientSubscribe.d.ts.map +1 -1
- package/dist/cjs/action/client/subscription/ClientSubscriptionHandler.d.ts.map +1 -1
- package/dist/cjs/action/client/subscription/ClientSubscriptionHandler.js +14 -3
- package/dist/cjs/action/client/subscription/ClientSubscriptionHandler.js.map +1 -1
- package/dist/cjs/action/client/subscription/SustainedSubscription.d.ts +1 -1
- package/dist/cjs/action/client/subscription/SustainedSubscription.d.ts.map +1 -1
- package/dist/cjs/action/client/subscription/SustainedSubscription.js +1 -4
- package/dist/cjs/action/client/subscription/SustainedSubscription.js.map +1 -1
- package/dist/cjs/action/request/Invoke.d.ts +7 -1
- package/dist/cjs/action/request/Invoke.d.ts.map +1 -1
- package/dist/cjs/action/request/Invoke.js +0 -3
- package/dist/cjs/action/request/Invoke.js.map +1 -1
- package/dist/cjs/action/request/Read.d.ts.map +1 -1
- package/dist/cjs/action/request/Read.js +3 -2
- package/dist/cjs/action/request/Read.js.map +1 -1
- package/dist/cjs/action/request/Specifier.d.ts +1 -1
- package/dist/cjs/action/request/Specifier.d.ts.map +1 -1
- package/dist/cjs/action/request/Specifier.js +3 -0
- package/dist/cjs/action/request/Specifier.js.map +1 -1
- package/dist/cjs/action/request/Write.d.ts +1 -0
- package/dist/cjs/action/request/Write.d.ts.map +1 -1
- package/dist/cjs/action/request/Write.js +10 -2
- package/dist/cjs/action/request/Write.js.map +1 -1
- package/dist/cjs/action/response/ReadResult.d.ts +1 -1
- package/dist/cjs/action/response/ReadResult.d.ts.map +1 -1
- package/dist/cjs/cluster/client/ClusterClientTypes.d.ts +37 -8
- package/dist/cjs/cluster/client/ClusterClientTypes.d.ts.map +1 -1
- package/dist/cjs/cluster/client/index.d.ts +0 -3
- package/dist/cjs/cluster/client/index.d.ts.map +1 -1
- package/dist/cjs/cluster/client/index.js +0 -3
- package/dist/cjs/cluster/client/index.js.map +1 -1
- package/dist/cjs/interaction/InteractionMessenger.d.ts.map +1 -1
- package/dist/cjs/interaction/InteractionMessenger.js +3 -2
- package/dist/cjs/interaction/InteractionMessenger.js.map +1 -1
- package/dist/cjs/interaction/SubscriptionClient.d.ts.map +1 -1
- package/dist/cjs/interaction/SubscriptionClient.js +2 -1
- package/dist/cjs/interaction/SubscriptionClient.js.map +1 -1
- package/dist/cjs/interaction/index.d.ts +1 -1
- package/dist/cjs/interaction/index.d.ts.map +1 -1
- package/dist/cjs/interaction/index.js +1 -1
- package/dist/cjs/interaction/index.js.map +1 -1
- package/dist/cjs/peer/CommissioningError.d.ts +13 -0
- package/dist/cjs/peer/CommissioningError.d.ts.map +1 -0
- package/dist/cjs/peer/CommissioningError.js +32 -0
- package/dist/cjs/peer/CommissioningError.js.map +6 -0
- package/dist/cjs/peer/ControllerCommissioner.d.ts +2 -3
- package/dist/cjs/peer/ControllerCommissioner.d.ts.map +1 -1
- package/dist/cjs/peer/ControllerCommissioner.js +20 -13
- package/dist/cjs/peer/ControllerCommissioner.js.map +2 -2
- package/dist/cjs/peer/ControllerCommissioningFlow.d.ts +7 -16
- package/dist/cjs/peer/ControllerCommissioningFlow.d.ts.map +1 -1
- package/dist/cjs/peer/ControllerCommissioningFlow.js +395 -178
- package/dist/cjs/peer/ControllerCommissioningFlow.js.map +1 -1
- package/dist/cjs/peer/ControllerDiscovery.d.ts +4 -0
- package/dist/cjs/peer/ControllerDiscovery.d.ts.map +1 -1
- package/dist/cjs/peer/ControllerDiscovery.js +6 -3
- package/dist/cjs/peer/ControllerDiscovery.js.map +1 -1
- package/dist/cjs/peer/InteractionQueue.d.ts +2 -2
- package/dist/cjs/peer/InteractionQueue.d.ts.map +1 -1
- package/dist/cjs/peer/InteractionQueue.js +1 -1
- package/dist/cjs/peer/InteractionQueue.js.map +1 -1
- package/dist/cjs/peer/PeerAddressStore.d.ts +0 -9
- package/dist/cjs/peer/PeerAddressStore.d.ts.map +1 -1
- package/dist/cjs/peer/PeerAddressStore.js.map +1 -1
- package/dist/cjs/peer/PeerSet.d.ts +0 -2
- package/dist/cjs/peer/PeerSet.d.ts.map +1 -1
- package/dist/cjs/peer/PeerSet.js +32 -18
- package/dist/cjs/peer/PeerSet.js.map +1 -1
- package/dist/cjs/peer/PhysicalDeviceProperties.js +1 -1
- package/dist/cjs/peer/PhysicalDeviceProperties.js.map +1 -1
- package/dist/cjs/peer/index.d.ts +1 -0
- package/dist/cjs/peer/index.d.ts.map +1 -1
- package/dist/cjs/peer/index.js +1 -0
- package/dist/cjs/peer/index.js.map +1 -1
- package/dist/cjs/protocol/DeviceCommissioner.d.ts.map +1 -1
- package/dist/cjs/protocol/DeviceCommissioner.js.map +1 -1
- package/dist/cjs/protocol/ExchangeManager.js +2 -2
- package/dist/cjs/protocol/ExchangeManager.js.map +1 -1
- package/dist/cjs/protocol/ExchangeProvider.d.ts +13 -4
- package/dist/cjs/protocol/ExchangeProvider.d.ts.map +1 -1
- package/dist/cjs/protocol/ExchangeProvider.js +5 -3
- package/dist/cjs/protocol/ExchangeProvider.js.map +1 -1
- package/dist/cjs/session/NodeSession.d.ts +5 -2
- package/dist/cjs/session/NodeSession.d.ts.map +1 -1
- package/dist/cjs/session/NodeSession.js +5 -4
- package/dist/cjs/session/NodeSession.js.map +1 -1
- package/dist/cjs/session/Session.d.ts +5 -3
- package/dist/cjs/session/Session.d.ts.map +1 -1
- package/dist/cjs/session/Session.js +8 -4
- package/dist/cjs/session/Session.js.map +1 -1
- package/dist/cjs/session/SessionManager.d.ts +8 -0
- package/dist/cjs/session/SessionManager.d.ts.map +1 -1
- package/dist/cjs/session/SessionManager.js +16 -2
- package/dist/cjs/session/SessionManager.js.map +1 -1
- package/dist/esm/action/client/ClientInteraction.d.ts +12 -5
- package/dist/esm/action/client/ClientInteraction.d.ts.map +1 -1
- package/dist/esm/action/client/ClientInteraction.js +42 -16
- package/dist/esm/action/client/ClientInteraction.js.map +1 -1
- package/dist/esm/action/client/ClientRead.d.ts +10 -0
- package/dist/esm/action/client/ClientRead.d.ts.map +1 -0
- package/dist/esm/action/client/ClientRead.js +6 -0
- package/dist/esm/action/client/ClientRead.js.map +6 -0
- package/dist/esm/action/client/ClientRequest.d.ts +20 -0
- package/dist/esm/action/client/ClientRequest.d.ts.map +1 -0
- package/dist/esm/action/client/ClientRequest.js +6 -0
- package/dist/esm/action/client/ClientRequest.js.map +6 -0
- package/dist/esm/action/client/ClientWrite.d.ts +10 -0
- package/dist/esm/action/client/ClientWrite.d.ts.map +1 -0
- package/dist/esm/action/client/ClientWrite.js +6 -0
- package/dist/esm/action/client/ClientWrite.js.map +6 -0
- package/dist/esm/action/client/QueuedClientInteraction.d.ts +49 -0
- package/dist/esm/action/client/QueuedClientInteraction.d.ts.map +1 -0
- package/dist/esm/action/client/QueuedClientInteraction.js +140 -0
- package/dist/esm/action/client/QueuedClientInteraction.js.map +6 -0
- package/dist/esm/action/client/index.d.ts +4 -0
- package/dist/esm/action/client/index.d.ts.map +1 -1
- package/dist/esm/action/client/index.js +4 -0
- package/dist/esm/action/client/index.js.map +1 -1
- package/dist/esm/action/client/subscription/ClientSubscribe.d.ts +2 -1
- package/dist/esm/action/client/subscription/ClientSubscribe.d.ts.map +1 -1
- package/dist/esm/action/client/subscription/ClientSubscriptionHandler.d.ts.map +1 -1
- package/dist/esm/action/client/subscription/ClientSubscriptionHandler.js +14 -3
- package/dist/esm/action/client/subscription/ClientSubscriptionHandler.js.map +1 -1
- package/dist/esm/action/client/subscription/SustainedSubscription.d.ts +1 -1
- package/dist/esm/action/client/subscription/SustainedSubscription.d.ts.map +1 -1
- package/dist/esm/action/client/subscription/SustainedSubscription.js +1 -4
- package/dist/esm/action/client/subscription/SustainedSubscription.js.map +1 -1
- package/dist/esm/action/request/Invoke.d.ts +7 -1
- package/dist/esm/action/request/Invoke.d.ts.map +1 -1
- package/dist/esm/action/request/Invoke.js +0 -3
- package/dist/esm/action/request/Invoke.js.map +1 -1
- package/dist/esm/action/request/Read.d.ts.map +1 -1
- package/dist/esm/action/request/Read.js +3 -2
- package/dist/esm/action/request/Read.js.map +1 -1
- package/dist/esm/action/request/Specifier.d.ts +1 -1
- package/dist/esm/action/request/Specifier.d.ts.map +1 -1
- package/dist/esm/action/request/Specifier.js +3 -0
- package/dist/esm/action/request/Specifier.js.map +1 -1
- package/dist/esm/action/request/Write.d.ts +1 -0
- package/dist/esm/action/request/Write.d.ts.map +1 -1
- package/dist/esm/action/request/Write.js +10 -2
- package/dist/esm/action/request/Write.js.map +1 -1
- package/dist/esm/action/response/ReadResult.d.ts +1 -1
- package/dist/esm/action/response/ReadResult.d.ts.map +1 -1
- package/dist/esm/cluster/client/ClusterClientTypes.d.ts +37 -8
- package/dist/esm/cluster/client/ClusterClientTypes.d.ts.map +1 -1
- package/dist/esm/cluster/client/index.d.ts +0 -3
- package/dist/esm/cluster/client/index.d.ts.map +1 -1
- package/dist/esm/cluster/client/index.js +0 -3
- package/dist/esm/cluster/client/index.js.map +1 -1
- package/dist/esm/interaction/InteractionMessenger.d.ts.map +1 -1
- package/dist/esm/interaction/InteractionMessenger.js +4 -3
- package/dist/esm/interaction/InteractionMessenger.js.map +1 -1
- package/dist/esm/interaction/SubscriptionClient.d.ts.map +1 -1
- package/dist/esm/interaction/SubscriptionClient.js +2 -1
- package/dist/esm/interaction/SubscriptionClient.js.map +1 -1
- package/dist/esm/interaction/index.d.ts +1 -1
- package/dist/esm/interaction/index.d.ts.map +1 -1
- package/dist/esm/interaction/index.js +1 -1
- package/dist/esm/peer/CommissioningError.d.ts +13 -0
- package/dist/esm/peer/CommissioningError.d.ts.map +1 -0
- package/dist/esm/peer/CommissioningError.js +12 -0
- package/dist/esm/peer/CommissioningError.js.map +6 -0
- package/dist/esm/peer/ControllerCommissioner.d.ts +2 -3
- package/dist/esm/peer/ControllerCommissioner.d.ts.map +1 -1
- package/dist/esm/peer/ControllerCommissioner.js +19 -13
- package/dist/esm/peer/ControllerCommissioner.js.map +2 -2
- package/dist/esm/peer/ControllerCommissioningFlow.d.ts +7 -16
- package/dist/esm/peer/ControllerCommissioningFlow.d.ts.map +1 -1
- package/dist/esm/peer/ControllerCommissioningFlow.js +380 -162
- package/dist/esm/peer/ControllerCommissioningFlow.js.map +1 -1
- package/dist/esm/peer/ControllerDiscovery.d.ts +4 -0
- package/dist/esm/peer/ControllerDiscovery.d.ts.map +1 -1
- package/dist/esm/peer/ControllerDiscovery.js +4 -1
- package/dist/esm/peer/ControllerDiscovery.js.map +1 -1
- package/dist/esm/peer/InteractionQueue.d.ts +2 -2
- package/dist/esm/peer/InteractionQueue.d.ts.map +1 -1
- package/dist/esm/peer/InteractionQueue.js +2 -2
- package/dist/esm/peer/InteractionQueue.js.map +1 -1
- package/dist/esm/peer/PeerAddressStore.d.ts +0 -9
- package/dist/esm/peer/PeerAddressStore.d.ts.map +1 -1
- package/dist/esm/peer/PeerAddressStore.js.map +1 -1
- package/dist/esm/peer/PeerSet.d.ts +0 -2
- package/dist/esm/peer/PeerSet.d.ts.map +1 -1
- package/dist/esm/peer/PeerSet.js +32 -18
- package/dist/esm/peer/PeerSet.js.map +1 -1
- package/dist/esm/peer/PhysicalDeviceProperties.js +1 -1
- package/dist/esm/peer/PhysicalDeviceProperties.js.map +1 -1
- package/dist/esm/peer/index.d.ts +1 -0
- package/dist/esm/peer/index.d.ts.map +1 -1
- package/dist/esm/peer/index.js +1 -0
- package/dist/esm/peer/index.js.map +1 -1
- package/dist/esm/protocol/DeviceCommissioner.d.ts.map +1 -1
- package/dist/esm/protocol/DeviceCommissioner.js.map +1 -1
- package/dist/esm/protocol/ExchangeManager.js +2 -2
- package/dist/esm/protocol/ExchangeManager.js.map +1 -1
- package/dist/esm/protocol/ExchangeProvider.d.ts +13 -4
- package/dist/esm/protocol/ExchangeProvider.d.ts.map +1 -1
- package/dist/esm/protocol/ExchangeProvider.js +5 -3
- package/dist/esm/protocol/ExchangeProvider.js.map +1 -1
- package/dist/esm/session/NodeSession.d.ts +5 -2
- package/dist/esm/session/NodeSession.d.ts.map +1 -1
- package/dist/esm/session/NodeSession.js +5 -4
- package/dist/esm/session/NodeSession.js.map +1 -1
- package/dist/esm/session/Session.d.ts +5 -3
- package/dist/esm/session/Session.d.ts.map +1 -1
- package/dist/esm/session/Session.js +8 -4
- package/dist/esm/session/Session.js.map +1 -1
- package/dist/esm/session/SessionManager.d.ts +8 -0
- package/dist/esm/session/SessionManager.d.ts.map +1 -1
- package/dist/esm/session/SessionManager.js +17 -2
- package/dist/esm/session/SessionManager.js.map +1 -1
- package/package.json +6 -6
- package/src/action/client/ClientInteraction.ts +58 -19
- package/src/action/client/ClientRead.ts +10 -0
- package/src/action/client/ClientRequest.ts +20 -0
- package/src/action/client/ClientWrite.ts +10 -0
- package/src/action/client/QueuedClientInteraction.ts +91 -0
- package/src/action/client/index.ts +4 -0
- package/src/action/client/subscription/ClientSubscribe.ts +2 -1
- package/src/action/client/subscription/ClientSubscriptionHandler.ts +14 -3
- package/src/action/client/subscription/SustainedSubscription.ts +6 -9
- package/src/action/request/Invoke.ts +11 -4
- package/src/action/request/Read.ts +3 -2
- package/src/action/request/Specifier.ts +4 -1
- package/src/action/request/Write.ts +11 -2
- package/src/action/response/ReadResult.ts +1 -1
- package/src/cluster/client/ClusterClientTypes.ts +47 -7
- package/src/cluster/client/index.ts +0 -3
- package/src/interaction/InteractionMessenger.ts +5 -4
- package/src/interaction/SubscriptionClient.ts +2 -1
- package/src/interaction/index.ts +1 -1
- package/src/peer/CommissioningError.ts +13 -0
- package/src/peer/ControllerCommissioner.ts +21 -13
- package/src/peer/ControllerCommissioningFlow.ts +418 -186
- package/src/peer/ControllerDiscovery.ts +4 -1
- package/src/peer/InteractionQueue.ts +2 -2
- package/src/peer/PeerAddressStore.ts +0 -9
- package/src/peer/PeerSet.ts +56 -23
- package/src/peer/PhysicalDeviceProperties.ts +1 -1
- package/src/peer/index.ts +1 -0
- package/src/protocol/DeviceCommissioner.ts +0 -1
- package/src/protocol/ExchangeManager.ts +2 -2
- package/src/protocol/ExchangeProvider.ts +9 -7
- package/src/session/NodeSession.ts +5 -4
- package/src/session/Session.ts +8 -4
- package/src/session/SessionManager.ts +19 -2
- package/dist/cjs/cluster/client/AttributeClient.d.ts +0 -75
- package/dist/cjs/cluster/client/AttributeClient.d.ts.map +0 -1
- package/dist/cjs/cluster/client/AttributeClient.js +0 -209
- package/dist/cjs/cluster/client/AttributeClient.js.map +0 -6
- package/dist/cjs/cluster/client/ClusterClient.d.ts +0 -11
- package/dist/cjs/cluster/client/ClusterClient.d.ts.map +0 -1
- package/dist/cjs/cluster/client/ClusterClient.js +0 -335
- package/dist/cjs/cluster/client/ClusterClient.js.map +0 -6
- package/dist/cjs/cluster/client/EventClient.d.ts +0 -33
- package/dist/cjs/cluster/client/EventClient.d.ts.map +0 -1
- package/dist/cjs/cluster/client/EventClient.js +0 -89
- package/dist/cjs/cluster/client/EventClient.js.map +0 -6
- package/dist/cjs/interaction/InteractionClient.d.ts +0 -375
- package/dist/cjs/interaction/InteractionClient.d.ts.map +0 -1
- package/dist/cjs/interaction/InteractionClient.js +0 -1046
- package/dist/cjs/interaction/InteractionClient.js.map +0 -6
- package/dist/esm/cluster/client/AttributeClient.d.ts +0 -75
- package/dist/esm/cluster/client/AttributeClient.d.ts.map +0 -1
- package/dist/esm/cluster/client/AttributeClient.js +0 -189
- package/dist/esm/cluster/client/AttributeClient.js.map +0 -6
- package/dist/esm/cluster/client/ClusterClient.d.ts +0 -11
- package/dist/esm/cluster/client/ClusterClient.d.ts.map +0 -1
- package/dist/esm/cluster/client/ClusterClient.js +0 -320
- package/dist/esm/cluster/client/ClusterClient.js.map +0 -6
- package/dist/esm/cluster/client/EventClient.d.ts +0 -33
- package/dist/esm/cluster/client/EventClient.d.ts.map +0 -1
- package/dist/esm/cluster/client/EventClient.js +0 -69
- package/dist/esm/cluster/client/EventClient.js.map +0 -6
- package/dist/esm/interaction/InteractionClient.d.ts +0 -375
- package/dist/esm/interaction/InteractionClient.d.ts.map +0 -1
- package/dist/esm/interaction/InteractionClient.js +0 -1047
- package/dist/esm/interaction/InteractionClient.js.map +0 -6
- package/src/cluster/client/AttributeClient.ts +0 -230
- package/src/cluster/client/ClusterClient.ts +0 -433
- package/src/cluster/client/EventClient.ts +0 -99
- package/src/interaction/InteractionClient.ts +0 -1614
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/interaction/InteractionClient.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": ["endpointId", "clusterId", "subscriptionId", "report", "event", "commandFields"]
|
|
6
|
-
}
|
|
@@ -1,230 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import { ImplementationError } from "#general";
|
|
8
|
-
import { FabricIndex as FabricIndexElement } from "#model";
|
|
9
|
-
import { NoAssociatedFabricError } from "#protocol/errors.js";
|
|
10
|
-
import { Attribute, AttributeError, AttributeId, ClusterId, EndpointNumber, FabricIndex, TlvSchema } from "#types";
|
|
11
|
-
import { InteractionClient } from "../../interaction/InteractionClient.js";
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Factory function to create an AttributeClient for a given attribute.
|
|
15
|
-
*/
|
|
16
|
-
export function createAttributeClient<T>(
|
|
17
|
-
attribute: Attribute<T, any>,
|
|
18
|
-
name: string,
|
|
19
|
-
endpointId: EndpointNumber | undefined,
|
|
20
|
-
clusterId: ClusterId,
|
|
21
|
-
interactionClient: InteractionClient,
|
|
22
|
-
present = false,
|
|
23
|
-
): AttributeClient<T> {
|
|
24
|
-
if (attribute.unknown) {
|
|
25
|
-
return new UnknownSupportedAttributeClient(attribute, name, endpointId, clusterId, interactionClient);
|
|
26
|
-
}
|
|
27
|
-
if (present) {
|
|
28
|
-
return new SupportedAttributeClient(attribute, name, endpointId, clusterId, interactionClient);
|
|
29
|
-
}
|
|
30
|
-
return new AttributeClient(attribute, name, endpointId, clusterId, interactionClient);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* General class for AttributeClients
|
|
35
|
-
*/
|
|
36
|
-
export class AttributeClient<T = any> {
|
|
37
|
-
readonly #isWritable: boolean;
|
|
38
|
-
readonly #isFabricScoped: boolean;
|
|
39
|
-
readonly #updatedBySubscriptions: boolean;
|
|
40
|
-
protected readonly schema: TlvSchema<any>;
|
|
41
|
-
readonly #listeners = new Array<(newValue: T) => void>();
|
|
42
|
-
readonly id: AttributeId;
|
|
43
|
-
readonly #interactionClient: InteractionClient;
|
|
44
|
-
|
|
45
|
-
constructor(
|
|
46
|
-
readonly attribute: Attribute<T, any>,
|
|
47
|
-
readonly name: string,
|
|
48
|
-
readonly endpointId: EndpointNumber | undefined,
|
|
49
|
-
readonly clusterId: ClusterId,
|
|
50
|
-
interactionClient: InteractionClient,
|
|
51
|
-
) {
|
|
52
|
-
const { schema, writable, fabricScoped, id, omitChanges } = attribute;
|
|
53
|
-
this.schema = schema;
|
|
54
|
-
this.#isWritable = writable;
|
|
55
|
-
this.#isFabricScoped = fabricScoped;
|
|
56
|
-
this.#updatedBySubscriptions = !omitChanges;
|
|
57
|
-
this.id = id;
|
|
58
|
-
this.#interactionClient = interactionClient;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Set the value of the attribute. When dataVersion parameter is provided the value is only set when the
|
|
63
|
-
* cluster dataVersion of the server matches. If it does not match it is rejected with an Error.
|
|
64
|
-
*/
|
|
65
|
-
async set(value: T, dataVersion?: number) {
|
|
66
|
-
if (!this.#isWritable) throw new AttributeError(`Attribute ${this.name} is not writable`);
|
|
67
|
-
|
|
68
|
-
value = this.schema.injectField(
|
|
69
|
-
value,
|
|
70
|
-
<number>FabricIndexElement.id,
|
|
71
|
-
FabricIndex.OMIT_FABRIC,
|
|
72
|
-
existingFieldIndex => existingFieldIndex === undefined,
|
|
73
|
-
);
|
|
74
|
-
|
|
75
|
-
this.schema.validate(value);
|
|
76
|
-
|
|
77
|
-
if (this.#isFabricScoped) {
|
|
78
|
-
// Remove fabric index from structures if the OMIT_FABRIC instance was used (Should be used for all outgoing writes)
|
|
79
|
-
value = this.schema.removeField(
|
|
80
|
-
value,
|
|
81
|
-
<number>FabricIndexElement.id,
|
|
82
|
-
existingFieldIndex => existingFieldIndex === FabricIndex.OMIT_FABRIC,
|
|
83
|
-
);
|
|
84
|
-
|
|
85
|
-
try {
|
|
86
|
-
const sessionFabric = this.#interactionClient.session.associatedFabric;
|
|
87
|
-
// also remove fabric index if it is the same as the session fabric
|
|
88
|
-
value = this.schema.removeField(
|
|
89
|
-
value,
|
|
90
|
-
<number>FabricIndexElement.id,
|
|
91
|
-
existingFieldIndex => existingFieldIndex.index === sessionFabric.fabricIndex,
|
|
92
|
-
);
|
|
93
|
-
} catch (e) {
|
|
94
|
-
NoAssociatedFabricError.accept(e);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
return await this.#interactionClient.setAttribute<T>({
|
|
99
|
-
attributeData: {
|
|
100
|
-
endpointId: this.endpointId,
|
|
101
|
-
clusterId: this.clusterId,
|
|
102
|
-
attribute: this.attribute,
|
|
103
|
-
value,
|
|
104
|
-
dataVersion,
|
|
105
|
-
},
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
get fabricScoped() {
|
|
110
|
-
return this.#isFabricScoped;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
getLocal() {
|
|
114
|
-
if (this.endpointId === undefined) {
|
|
115
|
-
throw new ImplementationError(`Cannot read attribute ${this.name} without endpointId.`);
|
|
116
|
-
}
|
|
117
|
-
return this.#interactionClient.getStoredAttribute({
|
|
118
|
-
endpointId: this.endpointId,
|
|
119
|
-
clusterId: this.clusterId,
|
|
120
|
-
attribute: this.attribute,
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* Get the value of the attribute. Fabric scoped reads are always done with the remote.
|
|
126
|
-
* The `requestFromRemote` parameter allowed to force or prevent remote reads:
|
|
127
|
-
* - `true` forces a remote read
|
|
128
|
-
* - `false` forces a local read, return undefined if no value is available
|
|
129
|
-
* - `undefined` returns local values if available or if the read is fabric filtered, otherwise remote read
|
|
130
|
-
*/
|
|
131
|
-
async get(requestFromRemote?: boolean, isFabricFiltered = true) {
|
|
132
|
-
if (this.endpointId === undefined) {
|
|
133
|
-
throw new ImplementationError(`Cannot read attribute ${this.name} without endpointId.`);
|
|
134
|
-
}
|
|
135
|
-
if (requestFromRemote === undefined) {
|
|
136
|
-
requestFromRemote = this.#isFabricScoped || !this.#updatedBySubscriptions ? true : undefined;
|
|
137
|
-
} else if (!requestFromRemote && this.#isFabricScoped) {
|
|
138
|
-
requestFromRemote = true;
|
|
139
|
-
}
|
|
140
|
-
return await this.#interactionClient.getAttribute({
|
|
141
|
-
endpointId: this.endpointId,
|
|
142
|
-
clusterId: this.clusterId,
|
|
143
|
-
attribute: this.attribute,
|
|
144
|
-
isFabricFiltered,
|
|
145
|
-
requestFromRemote,
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
/**
|
|
150
|
-
* Get the value with version of the attribute. Fabric scoped reads are always done with the remote.
|
|
151
|
-
* The `requestFromRemote` parameter allowed to force or prevent remote reads:
|
|
152
|
-
* - `true` forces a remote read
|
|
153
|
-
* - `false` forces a local read, return undefined if no value is available
|
|
154
|
-
* - `undefined` returns local values if available or if the read is fabric filtered, otherwise remote read
|
|
155
|
-
*/
|
|
156
|
-
async getWithVersion(requestFromRemote?: boolean, isFabricFiltered = true) {
|
|
157
|
-
if (this.endpointId === undefined) {
|
|
158
|
-
throw new ImplementationError(`Cannot read attribute ${this.name} without endpointId.`);
|
|
159
|
-
}
|
|
160
|
-
if (requestFromRemote === undefined) {
|
|
161
|
-
requestFromRemote = this.#isFabricScoped || !this.#updatedBySubscriptions ? true : undefined;
|
|
162
|
-
} else if (!requestFromRemote && this.#isFabricScoped) {
|
|
163
|
-
requestFromRemote = true;
|
|
164
|
-
}
|
|
165
|
-
return await this.#interactionClient.getAttributeWithVersion({
|
|
166
|
-
endpointId: this.endpointId,
|
|
167
|
-
clusterId: this.clusterId,
|
|
168
|
-
attribute: this.attribute,
|
|
169
|
-
isFabricFiltered,
|
|
170
|
-
requestFromRemote,
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
/** Subscribe to the attribute. */
|
|
175
|
-
async subscribe(
|
|
176
|
-
minIntervalFloorSeconds: number,
|
|
177
|
-
maxIntervalCeilingSeconds: number,
|
|
178
|
-
knownDataVersion?: number,
|
|
179
|
-
isFabricFiltered = true,
|
|
180
|
-
) {
|
|
181
|
-
if (this.endpointId === undefined) {
|
|
182
|
-
throw new ImplementationError(`Cannot read attribute ${this.name} without endpointId.`);
|
|
183
|
-
}
|
|
184
|
-
if (!this.#updatedBySubscriptions) {
|
|
185
|
-
throw new ImplementationError(`Attribute ${this.name} is not updated by subscriptions.`);
|
|
186
|
-
}
|
|
187
|
-
return this.#interactionClient.subscribeAttribute({
|
|
188
|
-
endpointId: this.endpointId,
|
|
189
|
-
clusterId: this.clusterId,
|
|
190
|
-
attribute: this.attribute,
|
|
191
|
-
minIntervalFloorSeconds,
|
|
192
|
-
maxIntervalCeilingSeconds,
|
|
193
|
-
isFabricFiltered,
|
|
194
|
-
knownDataVersion,
|
|
195
|
-
listener: this.update.bind(this),
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
/**
|
|
200
|
-
* Update the value of the attribute. Just internally used!
|
|
201
|
-
* @private
|
|
202
|
-
*/
|
|
203
|
-
update(value: T) {
|
|
204
|
-
this.#listeners.forEach(listener => listener(value));
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
/** Add a listener to the attribute. */
|
|
208
|
-
addListener(listener: (newValue: T) => void) {
|
|
209
|
-
this.#listeners.push(listener);
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
/** Remove a listener from the attribute. */
|
|
213
|
-
removeListener(listener: (newValue: T) => void) {
|
|
214
|
-
const entryIndex = this.#listeners.indexOf(listener);
|
|
215
|
-
if (entryIndex !== -1) {
|
|
216
|
-
this.#listeners.splice(entryIndex, 1);
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
/**
|
|
222
|
-
* Special AttributeClient class to allow identifying attributes that are supported because reported by the Devices.
|
|
223
|
-
*/
|
|
224
|
-
export class SupportedAttributeClient<T> extends AttributeClient<T> {}
|
|
225
|
-
|
|
226
|
-
/**
|
|
227
|
-
* Special AttributeClient class to allow identifying attributes that are supported because reported by the Devices,
|
|
228
|
-
* but the contained attribute is unknown.
|
|
229
|
-
*/
|
|
230
|
-
export class UnknownSupportedAttributeClient extends SupportedAttributeClient<any> {}
|