@matter/protocol 0.14.1-alpha.0-20250605-9fc134af0 → 0.14.1-alpha.0-20250606-a9bcd03f9
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/dist/cjs/action/server/AccessControl.d.ts +5 -7
- package/dist/cjs/action/server/AccessControl.d.ts.map +1 -1
- package/dist/cjs/action/server/AccessControl.js.map +1 -1
- package/dist/cjs/action/server/AttributeWriteResponse.d.ts.map +1 -1
- package/dist/cjs/action/server/AttributeWriteResponse.js +23 -0
- package/dist/cjs/action/server/AttributeWriteResponse.js.map +1 -1
- package/dist/cjs/action/server/CommandInvokeResponse.d.ts.map +1 -1
- package/dist/cjs/action/server/CommandInvokeResponse.js +24 -1
- package/dist/cjs/action/server/CommandInvokeResponse.js.map +1 -1
- package/dist/cjs/action/server/DataResponse.d.ts +1 -1
- package/dist/cjs/action/server/DataResponse.d.ts.map +1 -1
- package/dist/cjs/action/server/Subject.d.ts +25 -0
- package/dist/cjs/action/server/Subject.d.ts.map +1 -0
- package/dist/cjs/action/server/Subject.js +54 -0
- package/dist/cjs/action/server/Subject.js.map +6 -0
- package/dist/cjs/action/server/index.d.ts +1 -0
- package/dist/cjs/action/server/index.d.ts.map +1 -1
- package/dist/cjs/action/server/index.js +1 -0
- package/dist/cjs/action/server/index.js.map +1 -1
- package/dist/cjs/certificate/DeviceCertification.d.ts +2 -2
- package/dist/cjs/certificate/DeviceCertification.d.ts.map +1 -1
- package/dist/cjs/certificate/DeviceCertification.js.map +1 -1
- package/dist/cjs/cluster/client/AttributeClient.d.ts +3 -3
- package/dist/cjs/cluster/client/AttributeClient.d.ts.map +1 -1
- package/dist/cjs/cluster/client/AttributeClient.js +14 -2
- package/dist/cjs/cluster/client/AttributeClient.js.map +1 -1
- package/dist/cjs/cluster/client/ClusterClient.d.ts +3 -2
- package/dist/cjs/cluster/client/ClusterClient.d.ts.map +1 -1
- package/dist/cjs/cluster/client/ClusterClient.js +60 -1
- package/dist/cjs/cluster/client/ClusterClient.js.map +1 -1
- package/dist/cjs/cluster/client/ClusterClientTypes.d.ts +33 -8
- package/dist/cjs/cluster/client/ClusterClientTypes.d.ts.map +1 -1
- package/dist/cjs/cluster/client/EventClient.d.ts +3 -3
- package/dist/cjs/cluster/client/EventClient.d.ts.map +1 -1
- package/dist/cjs/cluster/client/EventClient.js +7 -0
- package/dist/cjs/cluster/client/EventClient.js.map +1 -1
- package/dist/cjs/codec/MessageCodec.d.ts.map +1 -1
- package/dist/cjs/codec/MessageCodec.js +31 -6
- package/dist/cjs/codec/MessageCodec.js.map +1 -1
- package/dist/cjs/fabric/Fabric.d.ts +20 -30
- package/dist/cjs/fabric/Fabric.d.ts.map +1 -1
- package/dist/cjs/fabric/Fabric.js +38 -62
- package/dist/cjs/fabric/Fabric.js.map +2 -2
- package/dist/cjs/fabric/FabricManager.d.ts.map +1 -1
- package/dist/cjs/fabric/FabricManager.js +10 -4
- package/dist/cjs/fabric/FabricManager.js.map +1 -1
- package/dist/cjs/groups/FabricGroupsManager.d.ts +46 -0
- package/dist/cjs/groups/FabricGroupsManager.d.ts.map +1 -0
- package/dist/cjs/groups/FabricGroupsManager.js +155 -0
- package/dist/cjs/groups/FabricGroupsManager.js.map +6 -0
- package/dist/cjs/groups/Groups.d.ts +34 -0
- package/dist/cjs/groups/Groups.d.ts.map +1 -0
- package/dist/cjs/groups/Groups.js +89 -0
- package/dist/cjs/groups/Groups.js.map +6 -0
- package/dist/cjs/groups/KeySets.d.ts +64 -0
- package/dist/cjs/groups/KeySets.d.ts.map +1 -0
- package/dist/cjs/groups/KeySets.js +179 -0
- package/dist/cjs/groups/KeySets.js.map +6 -0
- package/dist/cjs/groups/MessagingState.d.ts +24 -0
- package/dist/cjs/groups/MessagingState.d.ts.map +1 -0
- package/dist/cjs/groups/MessagingState.js +91 -0
- package/dist/cjs/groups/MessagingState.js.map +6 -0
- package/dist/cjs/groups/index.d.ts +8 -0
- package/dist/cjs/groups/index.d.ts.map +1 -0
- package/dist/cjs/groups/index.js +25 -0
- package/dist/cjs/groups/index.js.map +6 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/interaction/AccessControlManager.d.ts +4 -13
- package/dist/cjs/interaction/AccessControlManager.d.ts.map +1 -1
- package/dist/cjs/interaction/AccessControlManager.js +38 -47
- package/dist/cjs/interaction/AccessControlManager.js.map +1 -1
- package/dist/cjs/interaction/InteractionClient.d.ts +5 -4
- package/dist/cjs/interaction/InteractionClient.d.ts.map +1 -1
- package/dist/cjs/interaction/InteractionClient.js +53 -3
- package/dist/cjs/interaction/InteractionClient.js.map +1 -1
- package/dist/cjs/interaction/InteractionMessenger.d.ts.map +1 -1
- package/dist/cjs/interaction/InteractionMessenger.js +15 -0
- package/dist/cjs/interaction/InteractionMessenger.js.map +1 -1
- package/dist/cjs/interaction/Subscription.d.ts +3 -3
- package/dist/cjs/interaction/Subscription.d.ts.map +1 -1
- package/dist/cjs/interaction/Subscription.js.map +1 -1
- package/dist/cjs/peer/PeerAddress.d.ts +1 -0
- package/dist/cjs/peer/PeerAddress.d.ts.map +1 -1
- package/dist/cjs/peer/PeerAddress.js +5 -0
- package/dist/cjs/peer/PeerAddress.js.map +1 -1
- package/dist/cjs/peer/PeerSet.d.ts.map +1 -1
- package/dist/cjs/peer/PeerSet.js +31 -2
- package/dist/cjs/peer/PeerSet.js.map +1 -1
- package/dist/cjs/protocol/ChannelManager.d.ts.map +1 -1
- package/dist/cjs/protocol/ChannelManager.js +7 -8
- package/dist/cjs/protocol/ChannelManager.js.map +1 -1
- package/dist/cjs/protocol/ExchangeManager.d.ts.map +1 -1
- package/dist/cjs/protocol/ExchangeManager.js +39 -25
- package/dist/cjs/protocol/ExchangeManager.js.map +1 -1
- package/dist/cjs/protocol/MessageExchange.d.ts +1 -1
- package/dist/cjs/protocol/MessageExchange.d.ts.map +1 -1
- package/dist/cjs/protocol/MessageExchange.js +32 -4
- package/dist/cjs/protocol/MessageExchange.js.map +1 -1
- package/dist/cjs/protocol/MessageReceptionState.d.ts +1 -1
- package/dist/cjs/securechannel/SecureChannelProtocol.js +1 -1
- package/dist/cjs/securechannel/SecureChannelProtocol.js.map +1 -1
- package/dist/cjs/session/GroupSession.d.ts +56 -0
- package/dist/cjs/session/GroupSession.d.ts.map +1 -0
- package/dist/cjs/session/GroupSession.js +188 -0
- package/dist/cjs/session/GroupSession.js.map +6 -0
- package/dist/cjs/session/InsecureSession.d.ts +2 -1
- package/dist/cjs/session/InsecureSession.d.ts.map +1 -1
- package/dist/cjs/session/InsecureSession.js +3 -2
- package/dist/cjs/session/InsecureSession.js.map +1 -1
- package/dist/cjs/session/NodeSession.d.ts +88 -0
- package/dist/cjs/session/NodeSession.d.ts.map +1 -0
- package/dist/cjs/session/NodeSession.js +318 -0
- package/dist/cjs/session/NodeSession.js.map +6 -0
- package/dist/cjs/session/SecureSession.d.ts +10 -75
- package/dist/cjs/session/SecureSession.d.ts.map +1 -1
- package/dist/cjs/session/SecureSession.js +9 -280
- package/dist/cjs/session/SecureSession.js.map +2 -2
- package/dist/cjs/session/Session.d.ts +6 -5
- package/dist/cjs/session/Session.d.ts.map +1 -1
- package/dist/cjs/session/Session.js +11 -1
- package/dist/cjs/session/Session.js.map +1 -1
- package/dist/cjs/session/SessionManager.d.ts +27 -9
- package/dist/cjs/session/SessionManager.d.ts.map +1 -1
- package/dist/cjs/session/SessionManager.js +83 -5
- package/dist/cjs/session/SessionManager.js.map +2 -2
- package/dist/cjs/session/case/CaseClient.d.ts +1 -1
- package/dist/cjs/session/case/CaseClient.js +2 -2
- package/dist/cjs/session/case/CaseClient.js.map +1 -1
- package/dist/cjs/session/index.d.ts +2 -0
- package/dist/cjs/session/index.d.ts.map +1 -1
- package/dist/cjs/session/index.js +2 -0
- package/dist/cjs/session/index.js.map +1 -1
- package/dist/cjs/session/pase/PaseClient.d.ts +1 -1
- package/dist/esm/action/server/AccessControl.d.ts +5 -7
- package/dist/esm/action/server/AccessControl.d.ts.map +1 -1
- package/dist/esm/action/server/AccessControl.js.map +1 -1
- package/dist/esm/action/server/AttributeWriteResponse.d.ts.map +1 -1
- package/dist/esm/action/server/AttributeWriteResponse.js +23 -0
- package/dist/esm/action/server/AttributeWriteResponse.js.map +1 -1
- package/dist/esm/action/server/CommandInvokeResponse.d.ts.map +1 -1
- package/dist/esm/action/server/CommandInvokeResponse.js +24 -1
- package/dist/esm/action/server/CommandInvokeResponse.js.map +1 -1
- package/dist/esm/action/server/DataResponse.d.ts +1 -1
- package/dist/esm/action/server/DataResponse.d.ts.map +1 -1
- package/dist/esm/action/server/Subject.d.ts +25 -0
- package/dist/esm/action/server/Subject.d.ts.map +1 -0
- package/dist/esm/action/server/Subject.js +34 -0
- package/dist/esm/action/server/Subject.js.map +6 -0
- package/dist/esm/action/server/index.d.ts +1 -0
- package/dist/esm/action/server/index.d.ts.map +1 -1
- package/dist/esm/action/server/index.js +1 -0
- package/dist/esm/action/server/index.js.map +1 -1
- package/dist/esm/certificate/DeviceCertification.d.ts +2 -2
- package/dist/esm/certificate/DeviceCertification.d.ts.map +1 -1
- package/dist/esm/certificate/DeviceCertification.js.map +1 -1
- package/dist/esm/cluster/client/AttributeClient.d.ts +3 -3
- package/dist/esm/cluster/client/AttributeClient.d.ts.map +1 -1
- package/dist/esm/cluster/client/AttributeClient.js +13 -1
- package/dist/esm/cluster/client/AttributeClient.js.map +1 -1
- package/dist/esm/cluster/client/ClusterClient.d.ts +3 -2
- package/dist/esm/cluster/client/ClusterClient.d.ts.map +1 -1
- package/dist/esm/cluster/client/ClusterClient.js +61 -2
- package/dist/esm/cluster/client/ClusterClient.js.map +1 -1
- package/dist/esm/cluster/client/ClusterClientTypes.d.ts +33 -8
- package/dist/esm/cluster/client/ClusterClientTypes.d.ts.map +1 -1
- package/dist/esm/cluster/client/EventClient.d.ts +3 -3
- package/dist/esm/cluster/client/EventClient.d.ts.map +1 -1
- package/dist/esm/cluster/client/EventClient.js +7 -0
- package/dist/esm/cluster/client/EventClient.js.map +1 -1
- package/dist/esm/codec/MessageCodec.d.ts.map +1 -1
- package/dist/esm/codec/MessageCodec.js +41 -7
- package/dist/esm/codec/MessageCodec.js.map +1 -1
- package/dist/esm/fabric/Fabric.d.ts +20 -30
- package/dist/esm/fabric/Fabric.d.ts.map +1 -1
- package/dist/esm/fabric/Fabric.js +38 -62
- package/dist/esm/fabric/Fabric.js.map +2 -2
- package/dist/esm/fabric/FabricManager.d.ts.map +1 -1
- package/dist/esm/fabric/FabricManager.js +10 -4
- package/dist/esm/fabric/FabricManager.js.map +1 -1
- package/dist/esm/groups/FabricGroupsManager.d.ts +46 -0
- package/dist/esm/groups/FabricGroupsManager.d.ts.map +1 -0
- package/dist/esm/groups/FabricGroupsManager.js +135 -0
- package/dist/esm/groups/FabricGroupsManager.js.map +6 -0
- package/dist/esm/groups/Groups.d.ts +34 -0
- package/dist/esm/groups/Groups.d.ts.map +1 -0
- package/dist/esm/groups/Groups.js +69 -0
- package/dist/esm/groups/Groups.js.map +6 -0
- package/dist/esm/groups/KeySets.d.ts +64 -0
- package/dist/esm/groups/KeySets.d.ts.map +1 -0
- package/dist/esm/groups/KeySets.js +159 -0
- package/dist/esm/groups/KeySets.js.map +6 -0
- package/dist/esm/groups/MessagingState.d.ts +24 -0
- package/dist/esm/groups/MessagingState.d.ts.map +1 -0
- package/dist/esm/groups/MessagingState.js +71 -0
- package/dist/esm/groups/MessagingState.js.map +6 -0
- package/dist/esm/groups/index.d.ts +8 -0
- package/dist/esm/groups/index.d.ts.map +1 -0
- package/dist/esm/groups/index.js +8 -0
- package/dist/esm/groups/index.js.map +6 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/interaction/AccessControlManager.d.ts +4 -13
- package/dist/esm/interaction/AccessControlManager.d.ts.map +1 -1
- package/dist/esm/interaction/AccessControlManager.js +39 -48
- package/dist/esm/interaction/AccessControlManager.js.map +1 -1
- package/dist/esm/interaction/InteractionClient.d.ts +5 -4
- package/dist/esm/interaction/InteractionClient.d.ts.map +1 -1
- package/dist/esm/interaction/InteractionClient.js +54 -4
- package/dist/esm/interaction/InteractionClient.js.map +1 -1
- package/dist/esm/interaction/InteractionMessenger.d.ts.map +1 -1
- package/dist/esm/interaction/InteractionMessenger.js +15 -0
- package/dist/esm/interaction/InteractionMessenger.js.map +1 -1
- package/dist/esm/interaction/Subscription.d.ts +3 -3
- package/dist/esm/interaction/Subscription.d.ts.map +1 -1
- package/dist/esm/interaction/Subscription.js.map +1 -1
- package/dist/esm/peer/PeerAddress.d.ts +1 -0
- package/dist/esm/peer/PeerAddress.d.ts.map +1 -1
- package/dist/esm/peer/PeerAddress.js +5 -0
- package/dist/esm/peer/PeerAddress.js.map +1 -1
- package/dist/esm/peer/PeerSet.d.ts.map +1 -1
- package/dist/esm/peer/PeerSet.js +33 -3
- package/dist/esm/peer/PeerSet.js.map +1 -1
- package/dist/esm/protocol/ChannelManager.d.ts.map +1 -1
- package/dist/esm/protocol/ChannelManager.js +7 -8
- package/dist/esm/protocol/ChannelManager.js.map +1 -1
- package/dist/esm/protocol/ExchangeManager.d.ts.map +1 -1
- package/dist/esm/protocol/ExchangeManager.js +41 -27
- package/dist/esm/protocol/ExchangeManager.js.map +1 -1
- package/dist/esm/protocol/MessageExchange.d.ts +1 -1
- package/dist/esm/protocol/MessageExchange.d.ts.map +1 -1
- package/dist/esm/protocol/MessageExchange.js +39 -5
- package/dist/esm/protocol/MessageExchange.js.map +1 -1
- package/dist/esm/protocol/MessageReceptionState.d.ts +1 -1
- package/dist/esm/securechannel/SecureChannelProtocol.js +2 -2
- package/dist/esm/securechannel/SecureChannelProtocol.js.map +1 -1
- package/dist/esm/session/GroupSession.d.ts +56 -0
- package/dist/esm/session/GroupSession.d.ts.map +1 -0
- package/dist/esm/session/GroupSession.js +177 -0
- package/dist/esm/session/GroupSession.js.map +6 -0
- package/dist/esm/session/InsecureSession.d.ts +2 -1
- package/dist/esm/session/InsecureSession.d.ts.map +1 -1
- package/dist/esm/session/InsecureSession.js +3 -2
- package/dist/esm/session/InsecureSession.js.map +1 -1
- package/dist/esm/session/NodeSession.d.ts +88 -0
- package/dist/esm/session/NodeSession.d.ts.map +1 -0
- package/dist/esm/session/NodeSession.js +298 -0
- package/dist/esm/session/NodeSession.js.map +6 -0
- package/dist/esm/session/SecureSession.d.ts +10 -75
- package/dist/esm/session/SecureSession.d.ts.map +1 -1
- package/dist/esm/session/SecureSession.js +10 -291
- package/dist/esm/session/SecureSession.js.map +2 -2
- package/dist/esm/session/Session.d.ts +6 -5
- package/dist/esm/session/Session.d.ts.map +1 -1
- package/dist/esm/session/Session.js +12 -2
- package/dist/esm/session/Session.js.map +1 -1
- package/dist/esm/session/SessionManager.d.ts +27 -9
- package/dist/esm/session/SessionManager.d.ts.map +1 -1
- package/dist/esm/session/SessionManager.js +84 -6
- package/dist/esm/session/SessionManager.js.map +1 -1
- package/dist/esm/session/case/CaseClient.d.ts +1 -1
- package/dist/esm/session/case/CaseClient.js +2 -2
- package/dist/esm/session/case/CaseClient.js.map +1 -1
- package/dist/esm/session/index.d.ts +2 -0
- package/dist/esm/session/index.d.ts.map +1 -1
- package/dist/esm/session/index.js +2 -0
- package/dist/esm/session/index.js.map +1 -1
- package/dist/esm/session/pase/PaseClient.d.ts +1 -1
- package/package.json +6 -6
- package/src/action/server/AccessControl.ts +4 -7
- package/src/action/server/AttributeWriteResponse.ts +29 -7
- package/src/action/server/CommandInvokeResponse.ts +28 -7
- package/src/action/server/DataResponse.ts +1 -1
- package/src/action/server/Subject.ts +45 -0
- package/src/action/server/index.ts +1 -0
- package/src/certificate/DeviceCertification.ts +2 -2
- package/src/cluster/client/AttributeClient.ts +15 -3
- package/src/cluster/client/ClusterClient.ts +90 -4
- package/src/cluster/client/ClusterClientTypes.ts +38 -9
- package/src/cluster/client/EventClient.ts +9 -2
- package/src/codec/MessageCodec.ts +49 -8
- package/src/fabric/Fabric.ts +51 -85
- package/src/fabric/FabricManager.ts +11 -4
- package/src/groups/FabricGroupsManager.ts +164 -0
- package/src/groups/Groups.ts +81 -0
- package/src/groups/KeySets.ts +194 -0
- package/src/groups/MessagingState.ts +76 -0
- package/src/groups/index.ts +8 -0
- package/src/index.ts +1 -0
- package/src/interaction/AccessControlManager.ts +49 -81
- package/src/interaction/InteractionClient.ts +66 -6
- package/src/interaction/InteractionMessenger.ts +15 -0
- package/src/interaction/Subscription.ts +3 -3
- package/src/peer/PeerAddress.ts +4 -0
- package/src/peer/PeerSet.ts +39 -4
- package/src/protocol/ChannelManager.ts +7 -9
- package/src/protocol/ExchangeManager.ts +51 -35
- package/src/protocol/MessageExchange.ts +42 -7
- package/src/protocol/MessageReceptionState.ts +2 -2
- package/src/securechannel/SecureChannelProtocol.ts +2 -2
- package/src/session/GroupSession.ts +223 -0
- package/src/session/InsecureSession.ts +3 -2
- package/src/session/NodeSession.ts +367 -0
- package/src/session/SecureSession.ts +14 -363
- package/src/session/Session.ts +17 -6
- package/src/session/SessionManager.ts +94 -14
- package/src/session/case/CaseClient.ts +2 -2
- package/src/session/index.ts +2 -3
|
@@ -8,7 +8,7 @@ import { InteractionClient } from "../../interaction/InteractionClient.js";
|
|
|
8
8
|
/**
|
|
9
9
|
* Factory function to create an AttributeClient for a given attribute.
|
|
10
10
|
*/
|
|
11
|
-
export declare function createAttributeClient<T>(attribute: Attribute<T, any>, name: string, endpointId: EndpointNumber, clusterId: ClusterId, interactionClient: InteractionClient, present?: boolean): AttributeClient<T>;
|
|
11
|
+
export declare function createAttributeClient<T>(attribute: Attribute<T, any>, name: string, endpointId: EndpointNumber | undefined, clusterId: ClusterId, interactionClient: InteractionClient, present?: boolean): AttributeClient<T>;
|
|
12
12
|
/**
|
|
13
13
|
* General class for AttributeClients
|
|
14
14
|
*/
|
|
@@ -16,11 +16,11 @@ export declare class AttributeClient<T = any> {
|
|
|
16
16
|
#private;
|
|
17
17
|
readonly attribute: Attribute<T, any>;
|
|
18
18
|
readonly name: string;
|
|
19
|
-
readonly endpointId: EndpointNumber;
|
|
19
|
+
readonly endpointId: EndpointNumber | undefined;
|
|
20
20
|
readonly clusterId: ClusterId;
|
|
21
21
|
protected readonly schema: TlvSchema<any>;
|
|
22
22
|
readonly id: AttributeId;
|
|
23
|
-
constructor(attribute: Attribute<T, any>, name: string, endpointId: EndpointNumber, clusterId: ClusterId, interactionClient: InteractionClient);
|
|
23
|
+
constructor(attribute: Attribute<T, any>, name: string, endpointId: EndpointNumber | undefined, clusterId: ClusterId, interactionClient: InteractionClient);
|
|
24
24
|
/**
|
|
25
25
|
* Set the value of the attribute. When dataVersion parameter is provided the value is only set when the
|
|
26
26
|
* cluster dataVersion of the server matches. If it does not match it is rejected with an Error.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttributeClient.d.ts","sourceRoot":"","sources":["../../../../src/cluster/client/AttributeClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,SAAS,EAAkB,WAAW,EAAE,SAAS,EAAE,cAAc,EAAe,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAG3E;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACnC,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAC5B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"AttributeClient.d.ts","sourceRoot":"","sources":["../../../../src/cluster/client/AttributeClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,SAAS,EAAkB,WAAW,EAAE,SAAS,EAAE,cAAc,EAAe,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAG3E;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACnC,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAC5B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,cAAc,GAAG,SAAS,EACtC,SAAS,EAAE,SAAS,EACpB,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,UAAQ,GAChB,eAAe,CAAC,CAAC,CAAC,CAQpB;AAED;;GAEG;AACH,qBAAa,eAAe,CAAC,CAAC,GAAG,GAAG;;IAU5B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,UAAU,EAAE,cAAc,GAAG,SAAS;IAC/C,QAAQ,CAAC,SAAS,EAAE,SAAS;IATjC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;IAE1C,QAAQ,CAAC,EAAE,EAAE,WAAW,CAAC;gBAIZ,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAC5B,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,cAAc,GAAG,SAAS,EACtC,SAAS,EAAE,SAAS,EAC7B,iBAAiB,EAAE,iBAAiB;IAWxC;;;OAGG;IACG,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM;IA4CxC,IAAI,YAAY,YAEf;IAED,QAAQ;IAWR;;;;;;OAMG;IACG,GAAG,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,gBAAgB,UAAO;IAkB9D;;;;;;OAMG;IACG,cAAc,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,gBAAgB,UAAO;;;;IAkBzE,kCAAkC;IAC5B,SAAS,CACX,uBAAuB,EAAE,MAAM,EAC/B,yBAAyB,EAAE,MAAM,EACjC,gBAAgB,CAAC,EAAE,MAAM,EACzB,gBAAgB,UAAO;;;IAoB3B;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,CAAC;IAIf,uCAAuC;IACvC,WAAW,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI;IAI3C,4CAA4C;IAC5C,cAAc,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI;CAMjD;AAED;;GAEG;AACH,qBAAa,wBAAwB,CAAC,CAAC,CAAE,SAAQ,eAAe,CAAC,CAAC,CAAC;CAAG;AAEtE;;;GAGG;AACH,qBAAa,+BAAgC,SAAQ,wBAAwB,CAAC,GAAG,CAAC;CAAG"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { ImplementationError } from "#general";
|
|
7
7
|
import { FabricIndex as FabricIndexElement } from "#model";
|
|
8
8
|
import { AttributeError, FabricIndex } from "#types";
|
|
9
|
-
import { NoAssociatedFabricError } from "../../session/
|
|
9
|
+
import { NoAssociatedFabricError } from "../../session/NodeSession.js";
|
|
10
10
|
function createAttributeClient(attribute, name, endpointId, clusterId, interactionClient, present = false) {
|
|
11
11
|
if (attribute.unknown) {
|
|
12
12
|
return new UnknownSupportedAttributeClient(attribute, name, endpointId, clusterId, interactionClient);
|
|
@@ -81,6 +81,9 @@ class AttributeClient {
|
|
|
81
81
|
return this.#isFabricScoped;
|
|
82
82
|
}
|
|
83
83
|
getLocal() {
|
|
84
|
+
if (this.endpointId === void 0) {
|
|
85
|
+
throw new ImplementationError(`Cannot read attribute ${this.name} without endpointId.`);
|
|
86
|
+
}
|
|
84
87
|
return this.#interactionClient.getStoredAttribute({
|
|
85
88
|
endpointId: this.endpointId,
|
|
86
89
|
clusterId: this.clusterId,
|
|
@@ -95,6 +98,9 @@ class AttributeClient {
|
|
|
95
98
|
* - `undefined` returns local values if available or if the read is fabric filtered, otherwise remote read
|
|
96
99
|
*/
|
|
97
100
|
async get(requestFromRemote, isFabricFiltered = true) {
|
|
101
|
+
if (this.endpointId === void 0) {
|
|
102
|
+
throw new ImplementationError(`Cannot read attribute ${this.name} without endpointId.`);
|
|
103
|
+
}
|
|
98
104
|
if (requestFromRemote === void 0) {
|
|
99
105
|
requestFromRemote = this.#isFabricScoped || !this.#updatedBySubscriptions ? true : void 0;
|
|
100
106
|
} else if (!requestFromRemote && this.#isFabricScoped) {
|
|
@@ -116,6 +122,9 @@ class AttributeClient {
|
|
|
116
122
|
* - `undefined` returns local values if available or if the read is fabric filtered, otherwise remote read
|
|
117
123
|
*/
|
|
118
124
|
async getWithVersion(requestFromRemote, isFabricFiltered = true) {
|
|
125
|
+
if (this.endpointId === void 0) {
|
|
126
|
+
throw new ImplementationError(`Cannot read attribute ${this.name} without endpointId.`);
|
|
127
|
+
}
|
|
119
128
|
if (requestFromRemote === void 0) {
|
|
120
129
|
requestFromRemote = this.#isFabricScoped || !this.#updatedBySubscriptions ? true : void 0;
|
|
121
130
|
} else if (!requestFromRemote && this.#isFabricScoped) {
|
|
@@ -131,6 +140,9 @@ class AttributeClient {
|
|
|
131
140
|
}
|
|
132
141
|
/** Subscribe to the attribute. */
|
|
133
142
|
async subscribe(minIntervalFloorSeconds, maxIntervalCeilingSeconds, knownDataVersion, isFabricFiltered = true) {
|
|
143
|
+
if (this.endpointId === void 0) {
|
|
144
|
+
throw new ImplementationError(`Cannot read attribute ${this.name} without endpointId.`);
|
|
145
|
+
}
|
|
134
146
|
if (!this.#updatedBySubscriptions) {
|
|
135
147
|
throw new ImplementationError(`Attribute ${this.name} is not updated by subscriptions.`);
|
|
136
148
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/cluster/client/AttributeClient.ts"],
|
|
4
|
-
"mappings": "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",
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { ClusterType, EndpointNumber, GlobalAttributes } from "#types";
|
|
7
7
|
import { InteractionClient } from "../../interaction/InteractionClient.js";
|
|
8
|
-
import { AttributeClientValues, ClusterClientObj } from "./ClusterClientTypes.js";
|
|
9
|
-
export declare function
|
|
8
|
+
import { AttributeClientValues, ClusterClientObj, GroupClusterClientObj } from "./ClusterClientTypes.js";
|
|
9
|
+
export declare function GroupClusterClient<const T extends ClusterType>(clusterDef: T, interactionClient: InteractionClient, globalAttributeValues?: Partial<AttributeClientValues<GlobalAttributes<T["features"]>>>): GroupClusterClientObj<T>;
|
|
10
|
+
export declare function ClusterClient<const T extends ClusterType>(clusterDef: T, endpointId: EndpointNumber | undefined, interactionClient: InteractionClient, globalAttributeValues?: Partial<AttributeClientValues<GlobalAttributes<T["features"]>>>): ClusterClientObj<T>;
|
|
10
11
|
//# sourceMappingURL=ClusterClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClusterClient.d.ts","sourceRoot":"","sources":["../../../../src/cluster/client/ClusterClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAIH,WAAW,EAGX,cAAc,EAGd,gBAAgB,EAOnB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAE3E,OAAO,EAEH,qBAAqB,EACrB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"ClusterClient.d.ts","sourceRoot":"","sources":["../../../../src/cluster/client/ClusterClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAIH,WAAW,EAGX,cAAc,EAGd,gBAAgB,EAOnB,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAE3E,OAAO,EAEH,qBAAqB,EACrB,gBAAgB,EAEhB,qBAAqB,EAGxB,MAAM,yBAAyB,CAAC;AAKjC,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,CAAC,SAAS,WAAW,EAC1D,UAAU,EAAE,CAAC,EACb,iBAAiB,EAAE,iBAAiB,EACpC,qBAAqB,GAAE,OAAO,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAM,GAC5F,qBAAqB,CAAC,CAAC,CAAC,CAM1B;AAED,wBAAgB,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,WAAW,EACrD,UAAU,EAAE,CAAC,EACb,UAAU,EAAE,cAAc,GAAG,SAAS,EACtC,iBAAiB,EAAE,iBAAiB,EACpC,qBAAqB,GAAE,OAAO,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAM,GAC5F,gBAAgB,CAAC,CAAC,CAAC,CAwWrB"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { capitalize, Diagnostic, Logger, Merge } from "#general";
|
|
6
|
+
import { capitalize, Diagnostic, ImplementationError, Logger, Merge } from "#general";
|
|
7
7
|
import {
|
|
8
8
|
GlobalAttributes,
|
|
9
9
|
StatusCode,
|
|
@@ -13,7 +13,17 @@ import {
|
|
|
13
13
|
import { createAttributeClient } from "./AttributeClient.js";
|
|
14
14
|
import { createEventClient } from "./EventClient.js";
|
|
15
15
|
const logger = Logger.get("ClusterClient");
|
|
16
|
+
function GroupClusterClient(clusterDef, interactionClient, globalAttributeValues = {}) {
|
|
17
|
+
if (!interactionClient.isGroupAddress) {
|
|
18
|
+
throw new Error("GroupClusterClient must be used with a GroupAddress InteractionClient");
|
|
19
|
+
}
|
|
20
|
+
return ClusterClient(clusterDef, void 0, interactionClient, globalAttributeValues);
|
|
21
|
+
}
|
|
16
22
|
function ClusterClient(clusterDef, endpointId, interactionClient, globalAttributeValues = {}) {
|
|
23
|
+
const isGroupAddress = interactionClient.isGroupAddress;
|
|
24
|
+
if (isGroupAddress !== (endpointId === void 0)) {
|
|
25
|
+
throw new Error("Endpoint ID must be defined for a Non-Group ClusterClient");
|
|
26
|
+
}
|
|
17
27
|
function addAttributeToResult(attribute, attributeName) {
|
|
18
28
|
attributes[attributeName] = createAttributeClient(
|
|
19
29
|
attribute,
|
|
@@ -27,6 +37,9 @@ function ClusterClient(clusterDef, endpointId, interactionClient, globalAttribut
|
|
|
27
37
|
attributeToId[attribute.id] = attributeName;
|
|
28
38
|
const capitalizedAttributeName = capitalize(attributeName);
|
|
29
39
|
result[`get${capitalizedAttributeName}Attribute`] = async (requestFromRemote, isFabricFiltered = true) => {
|
|
40
|
+
if (isGroupAddress) {
|
|
41
|
+
throw new ImplementationError("Group cluster clients do not support reading attributes");
|
|
42
|
+
}
|
|
30
43
|
try {
|
|
31
44
|
return await attributes[attributeName].get(requestFromRemote, isFabricFiltered);
|
|
32
45
|
} catch (e) {
|
|
@@ -38,6 +51,9 @@ function ClusterClient(clusterDef, endpointId, interactionClient, globalAttribut
|
|
|
38
51
|
};
|
|
39
52
|
result[`set${capitalizedAttributeName}Attribute`] = async (value, dataVersion) => attributes[attributeName].set(value, dataVersion);
|
|
40
53
|
result[`subscribe${capitalizedAttributeName}Attribute`] = async (listener, minIntervalS, maxIntervalS, knownDataVersion, isFabricFiltered) => {
|
|
54
|
+
if (isGroupAddress) {
|
|
55
|
+
throw new ImplementationError("Group cluster clients do not support subscribing attributes");
|
|
56
|
+
}
|
|
41
57
|
attributes[attributeName].addListener(listener);
|
|
42
58
|
return attributes[attributeName].subscribe(
|
|
43
59
|
minIntervalS,
|
|
@@ -47,9 +63,15 @@ function ClusterClient(clusterDef, endpointId, interactionClient, globalAttribut
|
|
|
47
63
|
);
|
|
48
64
|
};
|
|
49
65
|
result[`add${capitalizedAttributeName}AttributeListener`] = (listener) => {
|
|
66
|
+
if (isGroupAddress) {
|
|
67
|
+
throw new ImplementationError("Group cluster clients do not support subscribing attributes");
|
|
68
|
+
}
|
|
50
69
|
attributes[attributeName].addListener(listener);
|
|
51
70
|
};
|
|
52
71
|
result[`remove${capitalizedAttributeName}AttributeListener`] = (listener) => {
|
|
72
|
+
if (isGroupAddress) {
|
|
73
|
+
throw new ImplementationError("Group cluster clients do not support subscribing attributes");
|
|
74
|
+
}
|
|
53
75
|
attributes[attributeName].removeListener(listener);
|
|
54
76
|
};
|
|
55
77
|
}
|
|
@@ -59,6 +81,9 @@ function ClusterClient(clusterDef, endpointId, interactionClient, globalAttribut
|
|
|
59
81
|
eventToId[event.id] = eventName;
|
|
60
82
|
const capitalizedEventName = capitalize(eventName);
|
|
61
83
|
result[`get${capitalizedEventName}Event`] = async (minimumEventNumber, isFabricFiltered) => {
|
|
84
|
+
if (isGroupAddress) {
|
|
85
|
+
throw new ImplementationError("Group cluster clients do not support reading events");
|
|
86
|
+
}
|
|
62
87
|
try {
|
|
63
88
|
return await events[eventName].get(minimumEventNumber, isFabricFiltered);
|
|
64
89
|
} catch (e) {
|
|
@@ -69,6 +94,9 @@ function ClusterClient(clusterDef, endpointId, interactionClient, globalAttribut
|
|
|
69
94
|
}
|
|
70
95
|
};
|
|
71
96
|
result[`subscribe${capitalizedEventName}Event`] = async (listener, minIntervalS, maxIntervalS, isUrgent, minimumEventNumber, isFabricFiltered) => {
|
|
97
|
+
if (isGroupAddress) {
|
|
98
|
+
throw new ImplementationError("Group cluster clients do not support subscribing to events");
|
|
99
|
+
}
|
|
72
100
|
events[eventName].addListener(listener);
|
|
73
101
|
return events[eventName].subscribe(
|
|
74
102
|
minIntervalS,
|
|
@@ -79,9 +107,15 @@ function ClusterClient(clusterDef, endpointId, interactionClient, globalAttribut
|
|
|
79
107
|
);
|
|
80
108
|
};
|
|
81
109
|
result[`add${capitalizedEventName}EventListener`] = (listener) => {
|
|
110
|
+
if (isGroupAddress) {
|
|
111
|
+
throw new ImplementationError("Group cluster clients do not support subscribing events");
|
|
112
|
+
}
|
|
82
113
|
events[eventName].addListener(listener);
|
|
83
114
|
};
|
|
84
115
|
result[`remove${capitalizedEventName}EventListener`] = (listener) => {
|
|
116
|
+
if (isGroupAddress) {
|
|
117
|
+
throw new ImplementationError("Group cluster clients do not support subscribing events");
|
|
118
|
+
}
|
|
85
119
|
events[eventName].removeListener(listener);
|
|
86
120
|
};
|
|
87
121
|
}
|
|
@@ -117,6 +151,9 @@ function ClusterClient(clusterDef, endpointId, interactionClient, globalAttribut
|
|
|
117
151
|
events,
|
|
118
152
|
commands,
|
|
119
153
|
subscribeAllAttributes: async (options) => {
|
|
154
|
+
if (isGroupAddress) {
|
|
155
|
+
throw new ImplementationError("Group cluster clients do not support subscribing attributes");
|
|
156
|
+
}
|
|
120
157
|
const {
|
|
121
158
|
minIntervalFloorSeconds,
|
|
122
159
|
maxIntervalCeilingSeconds,
|
|
@@ -172,9 +209,15 @@ function ClusterClient(clusterDef, endpointId, interactionClient, globalAttribut
|
|
|
172
209
|
}
|
|
173
210
|
},
|
|
174
211
|
isAttributeSupported: (attributeId) => {
|
|
212
|
+
if (isGroupAddress) {
|
|
213
|
+
throw new ImplementationError("Group cluster clients do not allow to determine attribute existence.");
|
|
214
|
+
}
|
|
175
215
|
return !!globalAttributeValues?.attributeList?.includes(attributeId);
|
|
176
216
|
},
|
|
177
217
|
isAttributeSupportedByName: (attributeName) => {
|
|
218
|
+
if (isGroupAddress) {
|
|
219
|
+
throw new ImplementationError("Group cluster clients do not allow to determine attribute existence.");
|
|
220
|
+
}
|
|
178
221
|
const attribute = attributes[attributeName];
|
|
179
222
|
if (attribute === void 0) {
|
|
180
223
|
return false;
|
|
@@ -182,9 +225,15 @@ function ClusterClient(clusterDef, endpointId, interactionClient, globalAttribut
|
|
|
182
225
|
return !!globalAttributeValues?.attributeList?.includes(attribute.id);
|
|
183
226
|
},
|
|
184
227
|
isCommandSupported: (commandId) => {
|
|
228
|
+
if (isGroupAddress) {
|
|
229
|
+
throw new ImplementationError("Group cluster clients do not allow to determine command existence.");
|
|
230
|
+
}
|
|
185
231
|
return !!globalAttributeValues?.acceptedCommandList?.includes(commandId);
|
|
186
232
|
},
|
|
187
233
|
isCommandSupportedByName: (commandName) => {
|
|
234
|
+
if (isGroupAddress) {
|
|
235
|
+
throw new ImplementationError("Group cluster clients do not allow to determine attribute existence.");
|
|
236
|
+
}
|
|
188
237
|
const command = commandDef[commandName];
|
|
189
238
|
if (command === void 0) {
|
|
190
239
|
return false;
|
|
@@ -221,6 +270,15 @@ function ClusterClient(clusterDef, endpointId, interactionClient, globalAttribut
|
|
|
221
270
|
commandToId[requestId] = commandName;
|
|
222
271
|
commands[commandName] = async (request, options = {}) => {
|
|
223
272
|
const { asTimedRequest, timedRequestTimeoutMs, useExtendedFailSafeMessageResponseTimeout } = options;
|
|
273
|
+
if (isGroupAddress) {
|
|
274
|
+
return interactionClient.invokeWithSuppressedResponse({
|
|
275
|
+
clusterId,
|
|
276
|
+
command: commandDef[commandName],
|
|
277
|
+
request,
|
|
278
|
+
asTimedRequest,
|
|
279
|
+
timedRequestTimeoutMs
|
|
280
|
+
});
|
|
281
|
+
}
|
|
224
282
|
return interactionClient.invoke({
|
|
225
283
|
endpointId,
|
|
226
284
|
clusterId,
|
|
@@ -244,6 +302,7 @@ function ClusterClient(clusterDef, endpointId, interactionClient, globalAttribut
|
|
|
244
302
|
return result;
|
|
245
303
|
}
|
|
246
304
|
export {
|
|
247
|
-
ClusterClient
|
|
305
|
+
ClusterClient,
|
|
306
|
+
GroupClusterClient
|
|
248
307
|
};
|
|
249
308
|
//# sourceMappingURL=ClusterClient.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/cluster/client/ClusterClient.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,YAAY,YAAY,QAAQ,aAAa;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -36,6 +36,17 @@ export type SignatureFromCommandSpec<C extends Command<any, any, any>> = (reques
|
|
|
36
36
|
*/
|
|
37
37
|
useExtendedFailSafeMessageResponseTimeout?: boolean;
|
|
38
38
|
}) => Promise<ResponseType<C>>;
|
|
39
|
+
export type SignatureFromCommandSpecWithoutResponse<C extends Command<any, any, any>> = (request: RequestType<C>, options?: {
|
|
40
|
+
/** Send this command as a timed request also when not required. Default timeout are 10 seconds. */
|
|
41
|
+
asTimedRequest?: boolean;
|
|
42
|
+
/** Override the request timeout when the command is sent as times request. Default are 10s. */
|
|
43
|
+
timedRequestTimeoutMs?: number;
|
|
44
|
+
/**
|
|
45
|
+
* Use the extended fail-safe message response timeout of 30 seconds. Use this for all commands
|
|
46
|
+
* executed during an activated FailSafe context!
|
|
47
|
+
*/
|
|
48
|
+
useExtendedFailSafeMessageResponseTimeout?: boolean;
|
|
49
|
+
}) => Promise<void>;
|
|
39
50
|
type GetterTypeFromSpec<A extends Attribute<any, any>> = A extends OptionalAttribute<infer T, any> ? T | undefined : AttributeJsType<A>;
|
|
40
51
|
type ClientAttributeGetters<A extends Attributes> = Omit<{
|
|
41
52
|
[P in keyof A as `get${Capitalize<string & P>}Attribute`]: (requestFromRemote?: boolean, isFabricFiltered?: boolean) => Promise<GetterTypeFromSpec<A[P]>>;
|
|
@@ -62,6 +73,9 @@ type ClientAttributeListeners<A extends Attributes> = {
|
|
|
62
73
|
type CommandServers<C extends Commands> = {
|
|
63
74
|
[P in keyof C]: SignatureFromCommandSpec<C[P]>;
|
|
64
75
|
};
|
|
76
|
+
type NoResponseCommandServers<C extends Commands> = {
|
|
77
|
+
[P in keyof C]: SignatureFromCommandSpecWithoutResponse<C[P]>;
|
|
78
|
+
};
|
|
65
79
|
type ClientEventGetters<E extends Events> = {
|
|
66
80
|
[P in keyof E as `get${Capitalize<string & P>}Event`]: (minimumEventNumber?: number | bigint, isFabricFiltered?: boolean) => Promise<DecodedEventData<EventType<E[P]>>>;
|
|
67
81
|
};
|
|
@@ -73,8 +87,8 @@ type ClientEventListeners<E extends Events> = {
|
|
|
73
87
|
} & {
|
|
74
88
|
[P in keyof E as `remove${Capitalize<string & P>}EventListener`]: (listener: (value: DecodedEventData<EventType<E[P]>>) => void) => void;
|
|
75
89
|
};
|
|
76
|
-
/** Strongly typed interface of a cluster client */
|
|
77
|
-
export type
|
|
90
|
+
/** Strongly typed interface of a group cluster client (limited functionalities) */
|
|
91
|
+
export type BaseClusterClientObj<T extends ClusterType = ClusterType> = {
|
|
78
92
|
/**
|
|
79
93
|
* Cluster ID
|
|
80
94
|
* @readonly
|
|
@@ -102,11 +116,6 @@ export type ClusterClientObj<T extends ClusterType = ClusterType> = {
|
|
|
102
116
|
* @readonly
|
|
103
117
|
*/
|
|
104
118
|
readonly isUnknown: boolean;
|
|
105
|
-
/**
|
|
106
|
-
* Endpoint ID the cluster is on.
|
|
107
|
-
* @readonly
|
|
108
|
-
*/
|
|
109
|
-
readonly endpointId: number;
|
|
110
119
|
/**
|
|
111
120
|
* Supported Features of the cluster
|
|
112
121
|
* @readonly
|
|
@@ -118,6 +127,22 @@ export type ClusterClientObj<T extends ClusterType = ClusterType> = {
|
|
|
118
127
|
* @readonly
|
|
119
128
|
*/
|
|
120
129
|
readonly attributes: AttributeClients<T["features"], T["attributes"]>;
|
|
130
|
+
} & ClientAttributeSetters<T["attributes"]>;
|
|
131
|
+
export type GroupClusterClientObj<T extends ClusterType = ClusterType> = BaseClusterClientObj<T> & {
|
|
132
|
+
/**
|
|
133
|
+
* Commands of the cluster as object with named keys. This can be used to discover the commands of the cluster
|
|
134
|
+
* programmatically.
|
|
135
|
+
* @readonly
|
|
136
|
+
*/
|
|
137
|
+
readonly commands: NoResponseCommandServers<T["commands"]>;
|
|
138
|
+
} & NoResponseCommandServers<T["commands"]>;
|
|
139
|
+
/** Strongly typed interface of a cluster client */
|
|
140
|
+
export type ClusterClientObj<T extends ClusterType = ClusterType> = BaseClusterClientObj<T> & {
|
|
141
|
+
/**
|
|
142
|
+
* Endpoint ID the cluster is on.
|
|
143
|
+
* @readonly
|
|
144
|
+
*/
|
|
145
|
+
readonly endpointId: number;
|
|
121
146
|
/**
|
|
122
147
|
* Events of the cluster as object with named keys. This can be used to discover the events of the cluster
|
|
123
148
|
* programmatically.
|
|
@@ -154,7 +179,7 @@ export type ClusterClientObj<T extends ClusterType = ClusterType> = {
|
|
|
154
179
|
isCommandSupported: (commandId: CommandId) => boolean;
|
|
155
180
|
/** Returns if a given Command with provided name is present and supported at the connected cluster server. */
|
|
156
181
|
isCommandSupportedByName: (commandName: string) => boolean;
|
|
157
|
-
} & ClientAttributeGetters<T["attributes"]> & ClientGlobalAttributeGetters<T["features"]> &
|
|
182
|
+
} & ClientAttributeGetters<T["attributes"]> & ClientGlobalAttributeGetters<T["features"]> & ClientAttributeSubscribers<T["attributes"]> & ClientAttributeListeners<T["attributes"]> & CommandServers<T["commands"]> & ClientEventGetters<T["events"]> & ClientEventSubscribers<T["events"]> & ClientEventListeners<T["events"]>;
|
|
158
183
|
export type ClusterClientObjInternal<T extends ClusterType = ClusterType> = ClusterClientObj<T> & {
|
|
159
184
|
/**
|
|
160
185
|
* Trigger an attribute update. This is mainly used internally and not needed to be called by the user.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClusterClientTypes.d.ts","sourceRoot":"","sources":["../../../../src/cluster/client/ClusterClientTypes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EACH,SAAS,EACT,WAAW,EACX,eAAe,EACf,UAAU,EACV,SAAS,EACT,SAAS,EACT,WAAW,EACX,OAAO,EACP,SAAS,EACT,QAAQ,EACR,cAAc,EACd,OAAO,EACP,SAAS,EACT,MAAM,EACN,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,yBAAyB,EACzB,WAAW,EACX,YAAY,EACZ,cAAc,EACd,wBAAwB,EACxB,cAAc,EACd,iBAAiB,EACpB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,SAAS,UAAU,IAAI,KAAK,CAC3E,KAAK,CACD;KAAG,CAAC,IAAI,uBAAuB,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,EAC7E;KAAG,CAAC,IAAI,sBAAsB,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;CAAE,CAC3F,EACD;KAAG,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAC/F,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,UAAU,IAAI,KAAK,CAC3D;KAAG,CAAC,IAAI,uBAAuB,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,EAC5D;KAAG,CAAC,IAAI,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAC/D,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,KAAK,CAC9C;KAAG,CAAC,IAAI,mBAAmB,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,EAC/D;KAAG,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;CAAE,CAC7E,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAAC,CAAC,SAAS,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CACrE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EACvB,OAAO,CAAC,EAAE;IACN,mGAAmG;IACnG,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,+FAA+F;IAC/F,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B;;;OAGG;IACH,yCAAyC,CAAC,EAAE,OAAO,CAAC;CACvD,KACA,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ClusterClientTypes.d.ts","sourceRoot":"","sources":["../../../../src/cluster/client/ClusterClientTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { InteractionClient } from "../../interaction/InteractionClient.js";
|
|
|
9
9
|
/**
|
|
10
10
|
* Factory function to create an EVentClient for a given event.
|
|
11
11
|
*/
|
|
12
|
-
export declare function createEventClient<T>(event: Event<T, any>, name: string, endpointId: EndpointNumber, clusterId: ClusterId, interactionClient: InteractionClient): EventClient<T>;
|
|
12
|
+
export declare function createEventClient<T>(event: Event<T, any>, name: string, endpointId: EndpointNumber | undefined, clusterId: ClusterId, interactionClient: InteractionClient): EventClient<T>;
|
|
13
13
|
/**
|
|
14
14
|
* General class for EventClients
|
|
15
15
|
*/
|
|
@@ -17,10 +17,10 @@ export declare class EventClient<T> {
|
|
|
17
17
|
#private;
|
|
18
18
|
readonly event: Event<T, any>;
|
|
19
19
|
readonly name: string;
|
|
20
|
-
readonly endpointId: EndpointNumber;
|
|
20
|
+
readonly endpointId: EndpointNumber | undefined;
|
|
21
21
|
readonly clusterId: ClusterId;
|
|
22
22
|
readonly id: EventId;
|
|
23
|
-
constructor(event: Event<T, any>, name: string, endpointId: EndpointNumber, clusterId: ClusterId, interactionClient: InteractionClient);
|
|
23
|
+
constructor(event: Event<T, any>, name: string, endpointId: EndpointNumber | undefined, clusterId: ClusterId, interactionClient: InteractionClient);
|
|
24
24
|
get(minimumEventNumber?: EventNumber, isFabricFiltered?: boolean): Promise<DecodedEventData<T>[] | undefined>;
|
|
25
25
|
subscribe(minIntervalFloorSeconds: number, maxIntervalCeilingSeconds: number, isUrgent?: boolean, minimumEventNumber?: EventNumber, isFabricFiltered?: boolean): Promise<{
|
|
26
26
|
maxInterval: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventClient.d.ts","sourceRoot":"","sources":["../../../../src/cluster/client/EventClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"EventClient.d.ts","sourceRoot":"","sources":["../../../../src/cluster/client/EventClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAE3E;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAC/B,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EACpB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,cAAc,GAAG,SAAS,EACtC,SAAS,EAAE,SAAS,EACpB,iBAAiB,EAAE,iBAAiB,GACrC,WAAW,CAAC,CAAC,CAAC,CAEhB;AAED;;GAEG;AACH,qBAAa,WAAW,CAAC,CAAC;;IAMlB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,UAAU,EAAE,cAAc,GAAG,SAAS;IAC/C,QAAQ,CAAC,SAAS,EAAE,SAAS;IAPjC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;gBAIR,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EACpB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,cAAc,GAAG,SAAS,EACtC,SAAS,EAAE,SAAS,EAC7B,iBAAiB,EAAE,iBAAiB;IAMlC,GAAG,CACL,kBAAkB,CAAC,EAAE,WAAW,EAChC,gBAAgB,CAAC,EAAE,OAAO,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC;IAavC,SAAS,CACX,uBAAuB,EAAE,MAAM,EAC/B,yBAAyB,EAAE,MAAM,EACjC,QAAQ,UAAO,EACf,kBAAkB,CAAC,EAAE,WAAW,EAChC,gBAAgB,CAAC,EAAE,OAAO;;;IAkB9B,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAMpC,WAAW,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,IAAI;IAI7D,cAAc,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,IAAI;CAMnE"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { ImplementationError } from "#general";
|
|
6
7
|
function createEventClient(event, name, endpointId, clusterId, interactionClient) {
|
|
7
8
|
return new EventClient(event, name, endpointId, clusterId, interactionClient);
|
|
8
9
|
}
|
|
@@ -19,6 +20,9 @@ class EventClient {
|
|
|
19
20
|
id;
|
|
20
21
|
#interactionClient;
|
|
21
22
|
async get(minimumEventNumber, isFabricFiltered) {
|
|
23
|
+
if (this.endpointId === void 0) {
|
|
24
|
+
throw new ImplementationError("Cannot read event without endpointId");
|
|
25
|
+
}
|
|
22
26
|
return await this.#interactionClient.getEvent({
|
|
23
27
|
endpointId: this.endpointId,
|
|
24
28
|
clusterId: this.clusterId,
|
|
@@ -28,6 +32,9 @@ class EventClient {
|
|
|
28
32
|
});
|
|
29
33
|
}
|
|
30
34
|
async subscribe(minIntervalFloorSeconds, maxIntervalCeilingSeconds, isUrgent = true, minimumEventNumber, isFabricFiltered) {
|
|
35
|
+
if (this.endpointId === void 0) {
|
|
36
|
+
throw new ImplementationError("Cannot read event without endpointId");
|
|
37
|
+
}
|
|
31
38
|
return await this.#interactionClient.subscribeEvent({
|
|
32
39
|
endpointId: this.endpointId,
|
|
33
40
|
clusterId: this.clusterId,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/cluster/client/EventClient.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,2BAA2B;AAQ7B,SAAS,kBACZ,OACA,MACA,YACA,WACA,mBACc;AACd,SAAO,IAAI,YAAY,OAAO,MAAM,YAAY,WAAW,iBAAiB;AAChF;AAKO,MAAM,YAAe;AAAA,EAKxB,YACa,OACA,MACA,YACA,WACT,mBACF;AALW;AACA;AACA;AACA;AAGT,SAAK,KAAK,MAAM;AAChB,SAAK,qBAAqB;AAAA,EAC9B;AAAA,EAbS,aAAa,IAAI,MAA4C;AAAA,EAC7D;AAAA,EACA;AAAA,EAaT,MAAM,IACF,oBACA,kBAC0C;AAC1C,QAAI,KAAK,eAAe,QAAW;AAC/B,YAAM,IAAI,oBAAoB,sCAAsC;AAAA,IACxE;AACA,WAAO,MAAM,KAAK,mBAAmB,SAAS;AAAA,MAC1C,YAAY,KAAK;AAAA,MACjB,WAAW,KAAK;AAAA,MAChB,OAAO,KAAK;AAAA,MACZ;AAAA,MACA;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,UACF,yBACA,2BACA,WAAW,MACX,oBACA,kBACF;AACE,QAAI,KAAK,eAAe,QAAW;AAC/B,YAAM,IAAI,oBAAoB,sCAAsC;AAAA,IACxE;AACA,WAAO,MAAM,KAAK,mBAAmB,eAAe;AAAA,MAChD,YAAY,KAAK;AAAA,MACjB,WAAW,KAAK;AAAA,MAChB,OAAO,KAAK;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU,KAAK,OAAO,KAAK,IAAI;AAAA,IACnC,CAAC;AAAA,EACL;AAAA,EAEA,OAAO,UAA+B;AAClC,eAAW,YAAY,KAAK,YAAY;AACpC,eAAS,QAAQ;AAAA,IACrB;AAAA,EACJ;AAAA,EAEA,YAAY,UAAmD;AAC3D,SAAK,WAAW,KAAK,QAAQ;AAAA,EACjC;AAAA,EAEA,eAAe,UAAmD;AAC9D,UAAM,aAAa,KAAK,WAAW,QAAQ,QAAQ;AACnD,QAAI,eAAe,IAAI;AACnB,WAAK,WAAW,OAAO,YAAY,CAAC;AAAA,IACxC;AAAA,EACJ;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageCodec.d.ts","sourceRoot":"","sources":["../../../src/codec/MessageCodec.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"MessageCodec.d.ts","sourceRoot":"","sources":["../../../src/codec/MessageCodec.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAIH,UAAU,EAKb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAoC,MAAM,EAAiD,MAAM,QAAQ,CAAC;AAGjH,MAAM,WAAW,YAAY;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,WAAW,CAAC;IACzB,sBAAsB,EAAE,OAAO,CAAC;IAChC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mBAAoB,SAAQ,YAAY;IACrD,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,MAAM;IACnB,MAAM,EAAE,YAAY,CAAC;IACrB,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAC9B,kBAAkB,EAAE,UAAU,CAAC;CAClC;AAED,MAAM,WAAW,aAAc,SAAQ,MAAM;IACzC,MAAM,EAAE,mBAAmB,CAAC;CAC/B;AACD,MAAM,WAAW,OAAO;IACpB,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC/B,OAAO,EAAE,UAAU,CAAC;CACvB;AAED,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC3C,YAAY,EAAE,mBAAmB,CAAC;CACrC;AAID,oBAAY,WAAW;IACnB,KAAK,IAAI;IACT,OAAO,IAAI;CACd;AA2CD,qBAAa,YAAY;IACrB,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,aAAa;IAkBpD,MAAM,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,aAAa,GAAG,cAAc;IAuBnF,MAAM,CAAC,aAAa,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,OAAO,GAAG,MAAM;IAWlG,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,EAAE,MAAM,GAAG,UAAU;IAOzF,OAAO,CAAC,MAAM,CAAC,kBAAkB;IA8DjC,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAyBlC,MAAM,CAAC,kBAAkB,CAAC,EACtB,SAAS,EAAE,cAAc,EACzB,SAAS,EACT,WAAW,EACX,UAAU,EACV,YAAY,EACZ,WAAW,GACd,EAAE,YAAY;IAyBf,MAAM,CAAC,kBAAkB,CACrB,EACI,YAAY,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EACtC,aAAa,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,EACnF,OAAO,GACV,EAAE,OAAO,EACV,UAAU,CAAC,EAAE,kBAAkB;IA0BnC,OAAO,CAAC,MAAM,CAAC,mBAAmB;CA2BrC"}
|
|
@@ -3,7 +3,16 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
Bytes,
|
|
8
|
+
DataReader,
|
|
9
|
+
DataWriter,
|
|
10
|
+
Diagnostic,
|
|
11
|
+
Endian,
|
|
12
|
+
InternalError,
|
|
13
|
+
NotImplementedError,
|
|
14
|
+
UnexpectedDataError
|
|
15
|
+
} from "#general";
|
|
7
16
|
import { GroupId, INTERACTION_PROTOCOL_ID, NodeId, SECURE_CHANNEL_PROTOCOL_ID, SecureMessageType } from "#types";
|
|
8
17
|
import { MessageType } from "../interaction/InteractionMessenger.js";
|
|
9
18
|
const HEADER_VERSION = 0;
|
|
@@ -33,6 +42,7 @@ var SecurityFlag = /* @__PURE__ */ ((SecurityFlag2) => {
|
|
|
33
42
|
SecurityFlag2[SecurityFlag2["HasPrivacyEnhancements"] = 128] = "HasPrivacyEnhancements";
|
|
34
43
|
SecurityFlag2[SecurityFlag2["IsControlMessage"] = 64] = "IsControlMessage";
|
|
35
44
|
SecurityFlag2[SecurityFlag2["HasMessageExtension"] = 32] = "HasMessageExtension";
|
|
45
|
+
SecurityFlag2[SecurityFlag2["SessionTypeMask"] = 3] = "SessionTypeMask";
|
|
36
46
|
return SecurityFlag2;
|
|
37
47
|
})(SecurityFlag || {});
|
|
38
48
|
function mapProtocolAndMessageType(protocolId, messageType) {
|
|
@@ -74,6 +84,11 @@ class MessageCodec {
|
|
|
74
84
|
const extensionLength = reader.readUInt16();
|
|
75
85
|
securityExtension = reader.readByteArray(extensionLength);
|
|
76
86
|
}
|
|
87
|
+
if (header.sessionType === 1 /* Group */ && !header.isControlMessage) {
|
|
88
|
+
if (payloadHeader.requiresAck || payloadHeader.ackedMessageId) {
|
|
89
|
+
throw new UnexpectedDataError(`Group data messages cannot have requiresAck or ackedMessageId set.`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
77
92
|
return {
|
|
78
93
|
packetHeader: header,
|
|
79
94
|
payloadHeader,
|
|
@@ -113,13 +128,29 @@ class MessageCodec {
|
|
|
113
128
|
const sourceNodeId = hasSourceNodeId ? NodeId(reader.readUInt64()) : void 0;
|
|
114
129
|
const destNodeId = hasDestNodeId ? NodeId(reader.readUInt64()) : void 0;
|
|
115
130
|
const destGroupId = hasDestGroupId ? GroupId(reader.readUInt16()) : void 0;
|
|
116
|
-
const sessionType = securityFlags & 3
|
|
117
|
-
if (sessionType !== 1 /* Group */ && sessionType !== 0 /* Unicast */)
|
|
118
|
-
throw new UnexpectedDataError(`Unsupported session type ${sessionType}
|
|
131
|
+
const sessionType = securityFlags & 3 /* SessionTypeMask */;
|
|
132
|
+
if (sessionType !== 1 /* Group */ && sessionType !== 0 /* Unicast */) {
|
|
133
|
+
throw new UnexpectedDataError(`Unsupported session type ${sessionType}.`);
|
|
134
|
+
}
|
|
135
|
+
if (sessionType === 0 /* Unicast */ && hasDestGroupId) {
|
|
136
|
+
throw new UnexpectedDataError(`Unicast session cannot have destination group id.`);
|
|
137
|
+
}
|
|
138
|
+
if (sessionType === 1 /* Group */) {
|
|
139
|
+
if (!hasDestGroupId && !hasDestNodeId) {
|
|
140
|
+
throw new UnexpectedDataError(`Group session must have destination group id or destination node id.`);
|
|
141
|
+
}
|
|
142
|
+
if (!hasSourceNodeId) {
|
|
143
|
+
throw new UnexpectedDataError(`Group session must have source node id.`);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
119
146
|
const hasPrivacyEnhancements = (securityFlags & 128 /* HasPrivacyEnhancements */) !== 0;
|
|
120
|
-
if (hasPrivacyEnhancements)
|
|
147
|
+
if (hasPrivacyEnhancements) {
|
|
148
|
+
throw new NotImplementedError(`Privacy enhancements not supported.`);
|
|
149
|
+
}
|
|
121
150
|
const isControlMessage = (securityFlags & 64 /* IsControlMessage */) !== 0;
|
|
122
|
-
if (isControlMessage)
|
|
151
|
+
if (isControlMessage) {
|
|
152
|
+
throw new NotImplementedError(`Control Messages not supported.`);
|
|
153
|
+
}
|
|
123
154
|
const hasMessageExtensions = (securityFlags & 32 /* HasMessageExtension */) !== 0;
|
|
124
155
|
return {
|
|
125
156
|
securityFlags,
|
|
@@ -164,6 +195,9 @@ class MessageCodec {
|
|
|
164
195
|
sourceNodeId,
|
|
165
196
|
sessionType
|
|
166
197
|
}) {
|
|
198
|
+
if (sessionType === 1 /* Group */ && (destGroupId === void 0 || sourceNodeId === void 0 || destNodeId !== void 0)) {
|
|
199
|
+
throw new InternalError(`Group session must have destination group id or source node id.`);
|
|
200
|
+
}
|
|
167
201
|
const writer = new DataWriter(Endian.Little);
|
|
168
202
|
const flags = HEADER_VERSION << 4 | (destGroupId !== void 0 ? 2 /* HasDestGroupId */ : 0) | (destNodeId !== void 0 ? 1 /* HasDestNodeId */ : 0) | (sourceNodeId !== void 0 ? 4 /* HasSourceNodeId */ : 0);
|
|
169
203
|
const securityFlags = sessionType;
|
|
@@ -173,7 +207,7 @@ class MessageCodec {
|
|
|
173
207
|
writer.writeUInt32(messageCounter);
|
|
174
208
|
if (sourceNodeId !== void 0) writer.writeUInt64(sourceNodeId);
|
|
175
209
|
if (destNodeId !== void 0) writer.writeUInt64(destNodeId);
|
|
176
|
-
if (destGroupId !== void 0) writer.
|
|
210
|
+
if (destGroupId !== void 0) writer.writeUInt16(destGroupId);
|
|
177
211
|
return writer.toByteArray();
|
|
178
212
|
}
|
|
179
213
|
static messageDiagnostics({
|