@matter/protocol 0.13.1-alpha.0-20250517-99a1e848a → 0.14.0-alpha.0-20250521-979eda05d

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.
Files changed (266) hide show
  1. package/dist/cjs/action/Interactable.d.ts +1 -1
  2. package/dist/cjs/action/Interactable.d.ts.map +1 -1
  3. package/dist/cjs/action/client/ClientInteraction.d.ts +1 -1
  4. package/dist/cjs/action/client/ClientInteraction.d.ts.map +1 -1
  5. package/dist/cjs/action/client/ClientInteraction.js +50 -8
  6. package/dist/cjs/action/client/ClientInteraction.js.map +1 -1
  7. package/dist/cjs/action/protocols.d.ts +49 -15
  8. package/dist/cjs/action/protocols.d.ts.map +1 -1
  9. package/dist/cjs/action/request/Invoke.d.ts +10 -1
  10. package/dist/cjs/action/request/Invoke.d.ts.map +1 -1
  11. package/dist/cjs/action/request/Invoke.js +17 -5
  12. package/dist/cjs/action/request/Invoke.js.map +1 -1
  13. package/dist/cjs/action/request/Read.d.ts.map +1 -1
  14. package/dist/cjs/action/request/Read.js +1 -1
  15. package/dist/cjs/action/request/Read.js.map +1 -1
  16. package/dist/cjs/action/request/Write.d.ts +2 -0
  17. package/dist/cjs/action/request/Write.d.ts.map +1 -1
  18. package/dist/cjs/action/request/Write.js.map +1 -1
  19. package/dist/cjs/action/response/InvokeResult.d.ts +22 -6
  20. package/dist/cjs/action/response/InvokeResult.d.ts.map +1 -1
  21. package/dist/cjs/action/server/AttributeReadResponse.d.ts.map +1 -1
  22. package/dist/cjs/action/server/AttributeReadResponse.js +1 -2
  23. package/dist/cjs/action/server/AttributeReadResponse.js.map +2 -2
  24. package/dist/cjs/action/server/CommandInvokeResponse.d.ts +25 -0
  25. package/dist/cjs/action/server/CommandInvokeResponse.d.ts.map +1 -0
  26. package/dist/cjs/action/server/CommandInvokeResponse.js +331 -0
  27. package/dist/cjs/action/server/CommandInvokeResponse.js.map +6 -0
  28. package/dist/cjs/action/server/EventReadResponse.js +1 -1
  29. package/dist/cjs/action/server/ServerInteraction.d.ts +1 -3
  30. package/dist/cjs/action/server/ServerInteraction.d.ts.map +1 -1
  31. package/dist/cjs/action/server/ServerInteraction.js +4 -2
  32. package/dist/cjs/action/server/ServerInteraction.js.map +1 -1
  33. package/dist/cjs/action/server/index.d.ts +1 -0
  34. package/dist/cjs/action/server/index.d.ts.map +1 -1
  35. package/dist/cjs/action/server/index.js +1 -0
  36. package/dist/cjs/action/server/index.js.map +1 -1
  37. package/dist/cjs/cluster/client/AttributeClient.d.ts +2 -0
  38. package/dist/cjs/cluster/client/AttributeClient.d.ts.map +1 -1
  39. package/dist/cjs/cluster/client/AttributeClient.js +10 -0
  40. package/dist/cjs/cluster/client/AttributeClient.js.map +1 -1
  41. package/dist/cjs/cluster/client/ClusterClientTypes.d.ts +0 -4
  42. package/dist/cjs/cluster/client/ClusterClientTypes.d.ts.map +1 -1
  43. package/dist/cjs/cluster/index.d.ts +0 -1
  44. package/dist/cjs/cluster/index.d.ts.map +1 -1
  45. package/dist/cjs/cluster/index.js +0 -1
  46. package/dist/cjs/cluster/index.js.map +1 -1
  47. package/dist/cjs/index.d.ts +0 -1
  48. package/dist/cjs/index.d.ts.map +1 -1
  49. package/dist/cjs/index.js +0 -1
  50. package/dist/cjs/index.js.map +1 -1
  51. package/dist/cjs/interaction/AttributeDataEncoder.d.ts +1 -1
  52. package/dist/cjs/interaction/InteractionClient.d.ts +13 -0
  53. package/dist/cjs/interaction/InteractionClient.d.ts.map +1 -1
  54. package/dist/cjs/interaction/InteractionClient.js +14 -0
  55. package/dist/cjs/interaction/InteractionClient.js.map +1 -1
  56. package/dist/cjs/interaction/InteractionMessenger.d.ts +8 -8
  57. package/dist/cjs/interaction/SubscriptionClient.d.ts +1 -1
  58. package/dist/cjs/interaction/SubscriptionClient.d.ts.map +1 -1
  59. package/dist/cjs/interaction/SubscriptionClient.js +2 -2
  60. package/dist/cjs/interaction/SubscriptionClient.js.map +1 -1
  61. package/dist/cjs/interaction/index.d.ts +0 -1
  62. package/dist/cjs/interaction/index.d.ts.map +1 -1
  63. package/dist/cjs/interaction/index.js +0 -1
  64. package/dist/cjs/interaction/index.js.map +1 -1
  65. package/dist/cjs/peer/InteractionQueue.d.ts +1 -1
  66. package/dist/cjs/peer/InteractionQueue.d.ts.map +1 -1
  67. package/dist/cjs/peer/InteractionQueue.js +1 -1
  68. package/dist/cjs/peer/PeerAddress.d.ts +1 -1
  69. package/dist/cjs/peer/PeerAddress.d.ts.map +1 -1
  70. package/dist/cjs/peer/PeerAddressStore.d.ts +2 -2
  71. package/dist/cjs/peer/PeerAddressStore.d.ts.map +1 -1
  72. package/dist/cjs/peer/PeerSet.js +1 -1
  73. package/dist/cjs/session/pase/PaseClient.d.ts.map +1 -1
  74. package/dist/cjs/session/pase/PaseClient.js +2 -3
  75. package/dist/cjs/session/pase/PaseClient.js.map +2 -2
  76. package/dist/esm/action/Interactable.d.ts +1 -1
  77. package/dist/esm/action/Interactable.d.ts.map +1 -1
  78. package/dist/esm/action/client/ClientInteraction.d.ts +1 -1
  79. package/dist/esm/action/client/ClientInteraction.d.ts.map +1 -1
  80. package/dist/esm/action/client/ClientInteraction.js +50 -8
  81. package/dist/esm/action/client/ClientInteraction.js.map +1 -1
  82. package/dist/esm/action/protocols.d.ts +49 -15
  83. package/dist/esm/action/protocols.d.ts.map +1 -1
  84. package/dist/esm/action/request/Invoke.d.ts +10 -1
  85. package/dist/esm/action/request/Invoke.d.ts.map +1 -1
  86. package/dist/esm/action/request/Invoke.js +17 -5
  87. package/dist/esm/action/request/Invoke.js.map +1 -1
  88. package/dist/esm/action/request/Read.d.ts.map +1 -1
  89. package/dist/esm/action/request/Read.js +1 -1
  90. package/dist/esm/action/request/Read.js.map +1 -1
  91. package/dist/esm/action/request/Write.d.ts +2 -0
  92. package/dist/esm/action/request/Write.d.ts.map +1 -1
  93. package/dist/esm/action/request/Write.js.map +1 -1
  94. package/dist/esm/action/response/InvokeResult.d.ts +22 -6
  95. package/dist/esm/action/response/InvokeResult.d.ts.map +1 -1
  96. package/dist/esm/action/server/AttributeReadResponse.d.ts.map +1 -1
  97. package/dist/esm/action/server/AttributeReadResponse.js +1 -1
  98. package/dist/esm/action/server/AttributeReadResponse.js.map +1 -1
  99. package/dist/esm/action/server/CommandInvokeResponse.d.ts +25 -0
  100. package/dist/esm/action/server/CommandInvokeResponse.d.ts.map +1 -0
  101. package/dist/esm/action/server/CommandInvokeResponse.js +317 -0
  102. package/dist/esm/action/server/CommandInvokeResponse.js.map +6 -0
  103. package/dist/esm/action/server/EventReadResponse.js +1 -1
  104. package/dist/esm/action/server/ServerInteraction.d.ts +1 -3
  105. package/dist/esm/action/server/ServerInteraction.d.ts.map +1 -1
  106. package/dist/esm/action/server/ServerInteraction.js +4 -2
  107. package/dist/esm/action/server/ServerInteraction.js.map +1 -1
  108. package/dist/esm/action/server/index.d.ts +1 -0
  109. package/dist/esm/action/server/index.d.ts.map +1 -1
  110. package/dist/esm/action/server/index.js +1 -0
  111. package/dist/esm/action/server/index.js.map +1 -1
  112. package/dist/esm/cluster/client/AttributeClient.d.ts +2 -0
  113. package/dist/esm/cluster/client/AttributeClient.d.ts.map +1 -1
  114. package/dist/esm/cluster/client/AttributeClient.js +10 -0
  115. package/dist/esm/cluster/client/AttributeClient.js.map +1 -1
  116. package/dist/esm/cluster/client/ClusterClientTypes.d.ts +0 -4
  117. package/dist/esm/cluster/client/ClusterClientTypes.d.ts.map +1 -1
  118. package/dist/esm/cluster/index.d.ts +0 -1
  119. package/dist/esm/cluster/index.d.ts.map +1 -1
  120. package/dist/esm/cluster/index.js +0 -1
  121. package/dist/esm/cluster/index.js.map +1 -1
  122. package/dist/esm/index.d.ts +0 -1
  123. package/dist/esm/index.d.ts.map +1 -1
  124. package/dist/esm/index.js +0 -1
  125. package/dist/esm/index.js.map +1 -1
  126. package/dist/esm/interaction/AttributeDataEncoder.d.ts +1 -1
  127. package/dist/esm/interaction/InteractionClient.d.ts +13 -0
  128. package/dist/esm/interaction/InteractionClient.d.ts.map +1 -1
  129. package/dist/esm/interaction/InteractionClient.js +14 -0
  130. package/dist/esm/interaction/InteractionClient.js.map +1 -1
  131. package/dist/esm/interaction/InteractionMessenger.d.ts +8 -8
  132. package/dist/esm/interaction/SubscriptionClient.d.ts +1 -1
  133. package/dist/esm/interaction/SubscriptionClient.d.ts.map +1 -1
  134. package/dist/esm/interaction/SubscriptionClient.js +2 -2
  135. package/dist/esm/interaction/SubscriptionClient.js.map +1 -1
  136. package/dist/esm/interaction/index.d.ts +0 -1
  137. package/dist/esm/interaction/index.d.ts.map +1 -1
  138. package/dist/esm/interaction/index.js +0 -1
  139. package/dist/esm/interaction/index.js.map +1 -1
  140. package/dist/esm/peer/InteractionQueue.d.ts +1 -1
  141. package/dist/esm/peer/InteractionQueue.d.ts.map +1 -1
  142. package/dist/esm/peer/InteractionQueue.js +1 -1
  143. package/dist/esm/peer/PeerAddress.d.ts +1 -1
  144. package/dist/esm/peer/PeerAddress.d.ts.map +1 -1
  145. package/dist/esm/peer/PeerAddressStore.d.ts +2 -2
  146. package/dist/esm/peer/PeerAddressStore.d.ts.map +1 -1
  147. package/dist/esm/peer/PeerSet.js +1 -1
  148. package/dist/esm/session/pase/PaseClient.d.ts.map +1 -1
  149. package/dist/esm/session/pase/PaseClient.js +1 -2
  150. package/dist/esm/session/pase/PaseClient.js.map +1 -1
  151. package/package.json +6 -6
  152. package/src/action/Interactable.ts +1 -1
  153. package/src/action/client/ClientInteraction.ts +53 -16
  154. package/src/action/protocols.ts +70 -16
  155. package/src/action/request/Invoke.ts +32 -5
  156. package/src/action/request/Read.ts +1 -1
  157. package/src/action/request/Write.ts +4 -1
  158. package/src/action/response/InvokeResult.ts +26 -6
  159. package/src/action/response/ReadResult.ts +1 -1
  160. package/src/action/server/AttributeReadResponse.ts +1 -1
  161. package/src/action/server/CommandInvokeResponse.ts +427 -0
  162. package/src/action/server/EventReadResponse.ts +1 -1
  163. package/src/action/server/ServerInteraction.ts +6 -5
  164. package/src/action/server/index.ts +1 -0
  165. package/src/cluster/client/AttributeClient.ts +12 -0
  166. package/src/cluster/client/ClusterClientTypes.ts +0 -6
  167. package/src/cluster/index.ts +0 -1
  168. package/src/index.ts +0 -1
  169. package/src/interaction/InteractionClient.ts +24 -0
  170. package/src/interaction/SubscriptionClient.ts +2 -2
  171. package/src/interaction/index.ts +0 -1
  172. package/src/peer/InteractionQueue.ts +1 -1
  173. package/src/peer/PeerAddress.ts +1 -1
  174. package/src/peer/PeerAddressStore.ts +2 -2
  175. package/src/peer/PeerSet.ts +1 -1
  176. package/src/session/pase/PaseClient.ts +1 -2
  177. package/dist/cjs/cluster/server/AttributeServer.d.ts +0 -307
  178. package/dist/cjs/cluster/server/AttributeServer.d.ts.map +0 -1
  179. package/dist/cjs/cluster/server/AttributeServer.js +0 -736
  180. package/dist/cjs/cluster/server/AttributeServer.js.map +0 -6
  181. package/dist/cjs/cluster/server/ClusterDatasource.d.ts +0 -16
  182. package/dist/cjs/cluster/server/ClusterDatasource.d.ts.map +0 -1
  183. package/dist/cjs/cluster/server/ClusterDatasource.js +0 -22
  184. package/dist/cjs/cluster/server/ClusterDatasource.js.map +0 -6
  185. package/dist/cjs/cluster/server/ClusterServer.d.ts +0 -40
  186. package/dist/cjs/cluster/server/ClusterServer.d.ts.map +0 -1
  187. package/dist/cjs/cluster/server/ClusterServer.js +0 -22
  188. package/dist/cjs/cluster/server/ClusterServer.js.map +0 -6
  189. package/dist/cjs/cluster/server/CommandServer.d.ts +0 -34
  190. package/dist/cjs/cluster/server/CommandServer.d.ts.map +0 -1
  191. package/dist/cjs/cluster/server/CommandServer.js +0 -76
  192. package/dist/cjs/cluster/server/CommandServer.js.map +0 -6
  193. package/dist/cjs/cluster/server/EventServer.d.ts +0 -42
  194. package/dist/cjs/cluster/server/EventServer.d.ts.map +0 -1
  195. package/dist/cjs/cluster/server/EventServer.js +0 -152
  196. package/dist/cjs/cluster/server/EventServer.js.map +0 -6
  197. package/dist/cjs/cluster/server/index.d.ts +0 -11
  198. package/dist/cjs/cluster/server/index.d.ts.map +0 -1
  199. package/dist/cjs/cluster/server/index.js +0 -28
  200. package/dist/cjs/cluster/server/index.js.map +0 -6
  201. package/dist/cjs/endpoint/EndpointInterface.d.ts +0 -37
  202. package/dist/cjs/endpoint/EndpointInterface.d.ts.map +0 -1
  203. package/dist/cjs/endpoint/EndpointInterface.js +0 -22
  204. package/dist/cjs/endpoint/EndpointInterface.js.map +0 -6
  205. package/dist/cjs/endpoint/EndpointStructureLogger.d.ts +0 -31
  206. package/dist/cjs/endpoint/EndpointStructureLogger.d.ts.map +0 -1
  207. package/dist/cjs/endpoint/EndpointStructureLogger.js +0 -230
  208. package/dist/cjs/endpoint/EndpointStructureLogger.js.map +0 -6
  209. package/dist/cjs/endpoint/index.d.ts +0 -8
  210. package/dist/cjs/endpoint/index.d.ts.map +0 -1
  211. package/dist/cjs/endpoint/index.js +0 -25
  212. package/dist/cjs/endpoint/index.js.map +0 -6
  213. package/dist/cjs/interaction/InteractionEndpointStructure.d.ts +0 -95
  214. package/dist/cjs/interaction/InteractionEndpointStructure.d.ts.map +0 -1
  215. package/dist/cjs/interaction/InteractionEndpointStructure.js +0 -359
  216. package/dist/cjs/interaction/InteractionEndpointStructure.js.map +0 -6
  217. package/dist/esm/cluster/server/AttributeServer.d.ts +0 -307
  218. package/dist/esm/cluster/server/AttributeServer.d.ts.map +0 -1
  219. package/dist/esm/cluster/server/AttributeServer.js +0 -729
  220. package/dist/esm/cluster/server/AttributeServer.js.map +0 -6
  221. package/dist/esm/cluster/server/ClusterDatasource.d.ts +0 -16
  222. package/dist/esm/cluster/server/ClusterDatasource.d.ts.map +0 -1
  223. package/dist/esm/cluster/server/ClusterDatasource.js +0 -6
  224. package/dist/esm/cluster/server/ClusterDatasource.js.map +0 -6
  225. package/dist/esm/cluster/server/ClusterServer.d.ts +0 -40
  226. package/dist/esm/cluster/server/ClusterServer.d.ts.map +0 -1
  227. package/dist/esm/cluster/server/ClusterServer.js +0 -6
  228. package/dist/esm/cluster/server/ClusterServer.js.map +0 -6
  229. package/dist/esm/cluster/server/CommandServer.d.ts +0 -34
  230. package/dist/esm/cluster/server/CommandServer.d.ts.map +0 -1
  231. package/dist/esm/cluster/server/CommandServer.js +0 -56
  232. package/dist/esm/cluster/server/CommandServer.js.map +0 -6
  233. package/dist/esm/cluster/server/EventServer.d.ts +0 -42
  234. package/dist/esm/cluster/server/EventServer.d.ts.map +0 -1
  235. package/dist/esm/cluster/server/EventServer.js +0 -141
  236. package/dist/esm/cluster/server/EventServer.js.map +0 -6
  237. package/dist/esm/cluster/server/index.d.ts +0 -11
  238. package/dist/esm/cluster/server/index.d.ts.map +0 -1
  239. package/dist/esm/cluster/server/index.js +0 -11
  240. package/dist/esm/cluster/server/index.js.map +0 -6
  241. package/dist/esm/endpoint/EndpointInterface.d.ts +0 -37
  242. package/dist/esm/endpoint/EndpointInterface.d.ts.map +0 -1
  243. package/dist/esm/endpoint/EndpointInterface.js +0 -6
  244. package/dist/esm/endpoint/EndpointInterface.js.map +0 -6
  245. package/dist/esm/endpoint/EndpointStructureLogger.d.ts +0 -31
  246. package/dist/esm/endpoint/EndpointStructureLogger.d.ts.map +0 -1
  247. package/dist/esm/endpoint/EndpointStructureLogger.js +0 -210
  248. package/dist/esm/endpoint/EndpointStructureLogger.js.map +0 -6
  249. package/dist/esm/endpoint/index.d.ts +0 -8
  250. package/dist/esm/endpoint/index.d.ts.map +0 -1
  251. package/dist/esm/endpoint/index.js +0 -8
  252. package/dist/esm/endpoint/index.js.map +0 -6
  253. package/dist/esm/interaction/InteractionEndpointStructure.d.ts +0 -95
  254. package/dist/esm/interaction/InteractionEndpointStructure.d.ts.map +0 -1
  255. package/dist/esm/interaction/InteractionEndpointStructure.js +0 -355
  256. package/dist/esm/interaction/InteractionEndpointStructure.js.map +0 -6
  257. package/src/cluster/server/AttributeServer.ts +0 -997
  258. package/src/cluster/server/ClusterDatasource.ts +0 -17
  259. package/src/cluster/server/ClusterServer.ts +0 -46
  260. package/src/cluster/server/CommandServer.ts +0 -89
  261. package/src/cluster/server/EventServer.ts +0 -202
  262. package/src/cluster/server/index.ts +0 -11
  263. package/src/endpoint/EndpointInterface.ts +0 -41
  264. package/src/endpoint/EndpointStructureLogger.ts +0 -270
  265. package/src/endpoint/index.ts +0 -8
  266. package/src/interaction/InteractionEndpointStructure.ts +0 -510
@@ -1,307 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2025 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { MatterError } from "#general";
7
- import { AccessLevel } from "#model";
8
- import { Attribute, AttributeId, Attributes, BitSchema, Cluster, Commands, Events, TlvSchema, TypeFromPartialBitSchema } from "#types";
9
- import { Message } from "../../codec/MessageCodec.js";
10
- import { EndpointInterface } from "../../endpoint/EndpointInterface.js";
11
- import { Fabric } from "../../fabric/Fabric.js";
12
- import { SecureSession } from "../../session/SecureSession.js";
13
- import { Session } from "../../session/Session.js";
14
- import { ClusterDatasource } from "./ClusterDatasource.js";
15
- /**
16
- * Thrown when an operation cannot complete because fabric information is
17
- * unavailable.
18
- */
19
- export declare class FabricScopeError extends MatterError {
20
- }
21
- export type AnyAttributeServer<T = any> = AttributeServer<T> | FabricScopedAttributeServer<T> | FixedAttributeServer<T>;
22
- type DelayedChangeData = {
23
- oldValue: any;
24
- newValue: any;
25
- changed: boolean;
26
- };
27
- /**
28
- * Factory function to create an attribute server.
29
- */
30
- export declare function createAttributeServer<T, F extends BitSchema, SF extends TypeFromPartialBitSchema<F>, A extends Attributes, C extends Commands, E extends Events>(clusterDef: Cluster<F, SF, A, C, E>, attributeDef: Attribute<T, F>, attributeName: string, initValue: T, datasource: ClusterDatasource, getter?: (session?: Session, endpoint?: EndpointInterface, isFabricFiltered?: boolean, message?: Message) => T, setter?: (value: T, session?: Session, endpoint?: EndpointInterface, message?: Message) => boolean, validator?: (value: T, session?: Session, endpoint?: EndpointInterface) => void): FixedAttributeServer<T>;
31
- /**
32
- * Base class for all attribute servers.
33
- */
34
- export declare abstract class BaseAttributeServer<T> {
35
- #private;
36
- readonly id: AttributeId;
37
- readonly name: string;
38
- readonly schema: TlvSchema<T>;
39
- readonly isWritable: boolean;
40
- readonly isSubscribable: boolean;
41
- readonly requiresTimedInteraction: boolean;
42
- /**
43
- * The value is undefined when getter/setter are used. But we still handle the version number here.
44
- */
45
- protected value: T | undefined;
46
- protected endpoint?: EndpointInterface;
47
- readonly defaultValue: T;
48
- constructor(id: AttributeId, name: string, readAcl: AccessLevel | undefined, writeAcl: AccessLevel | undefined, schema: TlvSchema<T>, isWritable: boolean, isSubscribable: boolean, requiresTimedInteraction: boolean, initValue: T, defaultValue: T | undefined);
49
- get hasFabricSensitiveData(): boolean;
50
- validateWithSchema(value: T): void;
51
- assignToEndpoint(endpoint: EndpointInterface): void;
52
- /**
53
- * Initialize the value of the attribute, used when a persisted value is set initially or when values needs to be
54
- * adjusted before the Device gets announced. Do not use this method to change values when the device is in use!
55
- */
56
- abstract init(value: T | undefined): void;
57
- get writeAcl(): AccessLevel;
58
- get readAcl(): AccessLevel;
59
- }
60
- /**
61
- * Attribute server class that handled fixed attribute values that never change and is the base class for other
62
- * Attribute server types.
63
- */
64
- export declare class FixedAttributeServer<T> extends BaseAttributeServer<T> {
65
- protected readonly datasource: ClusterDatasource;
66
- readonly isFixed: boolean;
67
- protected readonly getter: (session?: Session, endpoint?: EndpointInterface, isFabricFiltered?: boolean, message?: Message) => T;
68
- constructor(id: AttributeId, name: string, readAcl: AccessLevel | undefined, writeAcl: AccessLevel | undefined, schema: TlvSchema<T>, isWritable: boolean, isSubscribable: boolean, requiresTimedInteraction: boolean, initValue: T, defaultValue: T | undefined, datasource: ClusterDatasource,
69
- /**
70
- * Optional getter function to handle special requirements or the data are stored in different places.
71
- *
72
- * @param session the session that is requesting the value (if any)
73
- * @param endpoint the endpoint the cluster server of this attribute is assigned to
74
- * @param isFabricFiltered whether the read request is fabric scoped or not
75
- * @param message the wire message that initiated the request (if any)
76
- */
77
- getter?: (session?: Session, endpoint?: EndpointInterface, isFabricFiltered?: boolean, message?: Message) => T);
78
- /**
79
- * Get the value of the attribute. This method is used by the Interaction model to read the value of the attribute
80
- * and includes the ACL check. It should not be used locally in the code!
81
- *
82
- * If a getter is defined the value is determined by that getter method.
83
- */
84
- get(session: Session, isFabricFiltered: boolean, message?: Message): T;
85
- /**
86
- * Get the value of the attribute including the version number. This method is used by the Interaction model to read
87
- * the value of the attribute and includes the ACL check. It should not be used locally in the code!
88
- *
89
- * If a getter is defined the value is determined by that getter method. The version number is always 0 for fixed
90
- * attributes.
91
- */
92
- getWithVersion(session: Session, isFabricFiltered: boolean, message?: Message): {
93
- version: number;
94
- value: T;
95
- };
96
- /**
97
- * Get the value of the attribute locally. This method should be used locally in the code and does not include the
98
- * ACL check.
99
- * If a getter is defined the value is determined by that getter method.
100
- */
101
- getLocal(): T;
102
- /**
103
- * Initialize the value of the attribute, used when a persisted value is set initially or when values needs to be
104
- * adjusted before the Device gets announced. Do not use this method to change values when the device is in use!
105
- * If a getter or setter is defined the value must be undefined The version number must also be undefined.
106
- */
107
- init(value: T | undefined): void;
108
- /**
109
- * Add an internal listener that is called when the value of the attribute changes. The listener is called with the
110
- * new value and the version number.
111
- */
112
- addValueChangeListener(_listener: (value: T, version: number) => void): void;
113
- /**
114
- * Remove an internal listener.
115
- */
116
- removeValueChangeListener(_listener: (value: T, version: number) => void): void;
117
- /**
118
- * Add an external listener that is called when the value of the attribute changes. The listener is called with the
119
- * new value and the old value.
120
- */
121
- addValueSetListener(_listener: (newValue: T, oldValue: T) => void): void;
122
- /**
123
- * Add an external listener that is called when the value of the attribute changes. The listener is called with the
124
- * new value and the old value. This method is a convenient alias for addValueSetListener.
125
- */
126
- subscribe(_listener: (newValue: T, oldValue: T) => void): void;
127
- /**
128
- * Remove an external listener.
129
- */
130
- removeValueSetListener(_listener: (newValue: T, oldValue: T) => void): void;
131
- }
132
- /**
133
- * Attribute server for normal attributes that can be read and written.
134
- */
135
- export declare class AttributeServer<T> extends FixedAttributeServer<T> {
136
- readonly isFixed = false;
137
- protected readonly valueChangeListeners: ((value: T, version: number) => void)[];
138
- protected readonly valueSetListeners: ((newValue: T, oldValue: T) => void)[];
139
- protected readonly setter: (value: T, session?: Session, endpoint?: EndpointInterface, message?: Message) => boolean;
140
- protected readonly validator: (value: T, session?: Session, endpoint?: EndpointInterface) => void;
141
- protected delayedChangeData?: DelayedChangeData;
142
- constructor(id: AttributeId, name: string, readAcl: AccessLevel | undefined, writeAcl: AccessLevel | undefined, schema: TlvSchema<T>, isWritable: boolean, isSubscribable: boolean, requiresTimedInteraction: boolean, initValue: T, defaultValue: T | undefined, datasource: ClusterDatasource, getter?: (session?: Session, endpoint?: EndpointInterface, isFabricFiltered?: boolean, message?: Message) => T,
143
- /**
144
- * Optional setter function to handle special requirements or the data are stored in different places. If a
145
- * setter method is used for a writable attribute, the getter method must be implemented as well. The method
146
- * needs to return if the stored value has changed or not.
147
- *
148
- * @param value the value to be set.
149
- * @param session the session that is requesting the value (if any).
150
- * @param endpoint the endpoint the cluster server of this attribute is assigned to.
151
- * @returns true if the value has changed, false otherwise.
152
- */
153
- setter?: (value: T, session?: Session, endpoint?: EndpointInterface, message?: Message) => boolean,
154
- /**
155
- * Optional Validator function to handle special requirements for verification of stored data. The method should
156
- * throw an error if the value is not valid. If a StatusResponseError is thrown this one is also returned to the
157
- * client.
158
- *
159
- * If a setter is used then no validator should be used as the setter should handle the validation itself!
160
- *
161
- * @param value the value to be set.
162
- * @param session the session that is requesting the value (if any).
163
- * @param endpoint the endpoint the cluster server of this attribute is assigned to.
164
- */
165
- validator?: (value: T, session?: Session, endpoint?: EndpointInterface) => void);
166
- /**
167
- * Initialize the value of the attribute, used when a persisted value is set initially or when values needs to be
168
- * adjusted before the Device gets announced. Do not use this method to change values when the device is in use!
169
- */
170
- init(value: T | undefined): void;
171
- /**
172
- * Set the value of the attribute. This method is used by the Interaction model to write the value of the attribute
173
- * and includes the ACL check. It should not be used locally in the code!
174
- *
175
- * If a setter is defined this setter method is called to store the value.
176
- *
177
- * Listeners are called when the value changes (internal listeners) or in any case (external listeners).
178
- */
179
- set(value: T, session: Session, message?: Message, delayChangeEvents?: boolean): void;
180
- /**
181
- * Method that contains the logic to set a value "from remote" (e.g. from a client).
182
- */
183
- protected setRemote(value: T, session: Session, message?: Message, delayChangeEvents?: boolean): void;
184
- /**
185
- * Set the value of the attribute locally. This method should be used locally in the code and does not include the
186
- * ACL check.
187
- *
188
- * If a setter is defined this setter method is called to validate and store the value.
189
- *
190
- * Else if a validator is defined the value is validated before it is stored.
191
- *
192
- * Listeners are called when the value changes (internal listeners) or in any case (external listeners).
193
- */
194
- setLocal(value: T): void;
195
- /**
196
- * Helper Method to process the set of a value in a generic way. This method is used internally.
197
- */
198
- protected processSet(value: T, session?: Session, message?: Message, delayChangeEvents?: boolean): void;
199
- triggerDelayedChangeEvents(): void;
200
- /**
201
- * Helper Method to handle needed version increases and trigger the relevant listeners. This method is used
202
- * internally.
203
- */
204
- protected handleVersionAndTriggerListeners(value: T, oldValue: T | undefined, considerVersionChanged: boolean): void;
205
- /**
206
- * When the value is handled by getter or setter methods and is changed by other processes this method can be used
207
- * to notify the attribute server that the value has changed. This will increase the version number and trigger the
208
- * listeners.
209
- *
210
- * ACL checks needs to be performed before calling this method.
211
- */
212
- updated(session: SecureSession): void;
213
- /**
214
- * When the value is handled by getter or setter methods and is changed by other processes and no session from the
215
- * originating process is known this method can be used to notify the attribute server that the value has changed.
216
- * This will increase the version number and trigger the listeners.
217
- *
218
- * ACL checks needs to be performed before calling this method.
219
- */
220
- updatedLocal(): void;
221
- /**
222
- * Add an internal listener that is called when the value of the attribute changes. The listener is called with the
223
- * new value and the version number.
224
- */
225
- addValueChangeListener(listener: (value: T, version: number) => void): void;
226
- /**
227
- * Remove an internal listener.
228
- */
229
- removeValueChangeListener(listener: (value: T, version: number) => void): void;
230
- /**
231
- * Add an external listener that is called when the value of the attribute changes. The listener is called with the
232
- * new value and the old value.
233
- */
234
- addValueSetListener(listener: (newValue: T, oldValue: T) => void): void;
235
- /**
236
- * Add an external listener that is called when the value of the attribute changes. The listener is called with the
237
- * new value and the old value. This method is a convenient alias for addValueSetListener.
238
- */
239
- subscribe(listener: (newValue: T, oldValue: T) => void): void;
240
- /**
241
- * Remove an external listener.
242
- */
243
- removeValueSetListener(listener: (newValue: T, oldValue: T) => void): void;
244
- }
245
- export declare function genericFabricScopedAttributeGetterFromFabric<T>(fabric: Fabric, cluster: Cluster<any, any, any, any, any>, attributeName: string, defaultValue: T): T;
246
- export declare function genericFabricScopedAttributeGetter<T>(session: Session | undefined, isFabricFiltered: boolean, cluster: Cluster<any, any, any, any, any>, attributeName: string, defaultValue: T, fabrics: Fabric[]): T;
247
- export declare function genericFabricScopedAttributeSetterForFabric<T>(fabric: Fabric, cluster: Cluster<any, any, any, any, any>, attributeName: string, value: T, defaultValue?: T): boolean;
248
- export declare function genericFabricScopedAttributeSetter<T>(value: T, session: Session | undefined, cluster: Cluster<any, any, any, any, any>, attributeName: string, defaultValue?: T): boolean;
249
- /**
250
- * Attribute server which is getting and setting the value for a defined fabric. The values are automatically persisted
251
- * on fabric level if no custom getter or setter is defined.
252
- */
253
- export declare class FabricScopedAttributeServer<T> extends AttributeServer<T> {
254
- #private;
255
- readonly cluster: Cluster<any, any, any, any, any>;
256
- private readonly isCustomGetter;
257
- private readonly isCustomSetter;
258
- private readonly fabricSensitiveElementsToRemove;
259
- constructor(id: AttributeId, name: string, readAcl: AccessLevel | undefined, writeAcl: AccessLevel | undefined, schema: TlvSchema<T>, isWritable: boolean, isSubscribable: boolean, requiresTimedInteraction: boolean, initValue: T, defaultValue: T | undefined, cluster: Cluster<any, any, any, any, any>, datasource: ClusterDatasource, getter?: (session?: Session, endpoint?: EndpointInterface, isFabricFiltered?: boolean) => T, setter?: (value: T, session?: Session, endpoint?: EndpointInterface, message?: Message) => boolean, validator?: (value: T, session?: Session, endpoint?: EndpointInterface) => void);
260
- get hasFabricSensitiveData(): boolean;
261
- /**
262
- * Sanitize the value of the attribute by removing fabric sensitive fields that do not belong to the
263
- * associated fabric
264
- */
265
- sanitizeFabricSensitiveFields(value: T, associatedFabric?: Fabric): any[] | T;
266
- /**
267
- * Initialize the attribute with a value. Because the value is stored on fabric level this method only initializes
268
- * the version number.
269
- */
270
- init(value: T | undefined): void;
271
- /**
272
- * Fabric scoped enhancement of set to allow setting special fabricindex locally.
273
- */
274
- set(value: T, session: Session, message: Message, delayChangeEvents?: boolean, preserveFabricIndex?: boolean): void;
275
- /**
276
- * Method that contains the logic to set a value "from remote" (e.g. from a client). For Fabric scoped attributes
277
- * we need to inject the fabric index into the value.
278
- */
279
- protected setRemote(value: T, session: Session, message: Message, delayChangeEvents?: boolean, preserveFabricIndex?: boolean): void;
280
- /**
281
- * Set Local is not allowed for fabric scoped attributes. Use setLocalForFabric instead.
282
- */
283
- setLocal(_value: T): void;
284
- /**
285
- * Set the value of the attribute locally for a fabric. This method should be used locally in the code and does not
286
- * include the ACL check.
287
- * If a setter is defined this method cannot be used!
288
- * If a validator is defined the value is validated before it is stored.
289
- * Listeners are called when the value changes (internal listeners) or in any case (external listeners).
290
- */
291
- setLocalForFabric(value: T, fabric: Fabric): void;
292
- /**
293
- * When the value is handled by getter or setter methods and is changed by other processes and no session from the
294
- * originating process is known this method can be used to notify the attribute server that the value has changed.
295
- * This will increase the version number and trigger the listeners.
296
- * ACL checks needs to be performed before calling this method.
297
- */
298
- updatedLocalForFabric(fabric: Fabric): void;
299
- /**
300
- * Get the value of the attribute locally for a special Fabric. This method should be used locally in the code and
301
- * does not include the ACL check.
302
- * If a getter is defined this method returns an error and the value should be retrieved directly internally.
303
- */
304
- getLocalForFabric(fabric: Fabric): T;
305
- }
306
- export {};
307
- //# sourceMappingURL=AttributeServer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AttributeServer.d.ts","sourceRoot":"","sources":["../../../../src/cluster/server/AttributeServer.ts"],"names":[],"mappings":"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"}