@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.
Files changed (309) hide show
  1. package/LICENSE +1 -1
  2. package/dist/cjs/action/client/ClientInteraction.d.ts +12 -5
  3. package/dist/cjs/action/client/ClientInteraction.d.ts.map +1 -1
  4. package/dist/cjs/action/client/ClientInteraction.js +39 -15
  5. package/dist/cjs/action/client/ClientInteraction.js.map +1 -1
  6. package/dist/cjs/action/client/ClientRead.d.ts +10 -0
  7. package/dist/cjs/action/client/ClientRead.d.ts.map +1 -0
  8. package/dist/cjs/action/client/ClientRead.js +22 -0
  9. package/dist/cjs/action/client/ClientRead.js.map +6 -0
  10. package/dist/cjs/action/client/ClientRequest.d.ts +20 -0
  11. package/dist/cjs/action/client/ClientRequest.d.ts.map +1 -0
  12. package/dist/cjs/action/client/ClientRequest.js +22 -0
  13. package/dist/cjs/action/client/ClientRequest.js.map +6 -0
  14. package/dist/cjs/action/client/ClientWrite.d.ts +10 -0
  15. package/dist/cjs/action/client/ClientWrite.d.ts.map +1 -0
  16. package/dist/cjs/action/client/ClientWrite.js +22 -0
  17. package/dist/cjs/action/client/ClientWrite.js.map +6 -0
  18. package/dist/cjs/action/client/QueuedClientInteraction.d.ts +49 -0
  19. package/dist/cjs/action/client/QueuedClientInteraction.d.ts.map +1 -0
  20. package/dist/cjs/action/client/QueuedClientInteraction.js +160 -0
  21. package/dist/cjs/action/client/QueuedClientInteraction.js.map +6 -0
  22. package/dist/cjs/action/client/index.d.ts +4 -0
  23. package/dist/cjs/action/client/index.d.ts.map +1 -1
  24. package/dist/cjs/action/client/index.js +4 -0
  25. package/dist/cjs/action/client/index.js.map +1 -1
  26. package/dist/cjs/action/client/subscription/ClientSubscribe.d.ts +2 -1
  27. package/dist/cjs/action/client/subscription/ClientSubscribe.d.ts.map +1 -1
  28. package/dist/cjs/action/client/subscription/ClientSubscriptionHandler.d.ts.map +1 -1
  29. package/dist/cjs/action/client/subscription/ClientSubscriptionHandler.js +14 -3
  30. package/dist/cjs/action/client/subscription/ClientSubscriptionHandler.js.map +1 -1
  31. package/dist/cjs/action/client/subscription/SustainedSubscription.d.ts +1 -1
  32. package/dist/cjs/action/client/subscription/SustainedSubscription.d.ts.map +1 -1
  33. package/dist/cjs/action/client/subscription/SustainedSubscription.js +1 -4
  34. package/dist/cjs/action/client/subscription/SustainedSubscription.js.map +1 -1
  35. package/dist/cjs/action/request/Invoke.d.ts +7 -1
  36. package/dist/cjs/action/request/Invoke.d.ts.map +1 -1
  37. package/dist/cjs/action/request/Invoke.js +0 -3
  38. package/dist/cjs/action/request/Invoke.js.map +1 -1
  39. package/dist/cjs/action/request/Read.d.ts.map +1 -1
  40. package/dist/cjs/action/request/Read.js +3 -2
  41. package/dist/cjs/action/request/Read.js.map +1 -1
  42. package/dist/cjs/action/request/Specifier.d.ts +1 -1
  43. package/dist/cjs/action/request/Specifier.d.ts.map +1 -1
  44. package/dist/cjs/action/request/Specifier.js +3 -0
  45. package/dist/cjs/action/request/Specifier.js.map +1 -1
  46. package/dist/cjs/action/request/Write.d.ts +1 -0
  47. package/dist/cjs/action/request/Write.d.ts.map +1 -1
  48. package/dist/cjs/action/request/Write.js +10 -2
  49. package/dist/cjs/action/request/Write.js.map +1 -1
  50. package/dist/cjs/action/response/ReadResult.d.ts +1 -1
  51. package/dist/cjs/action/response/ReadResult.d.ts.map +1 -1
  52. package/dist/cjs/cluster/client/ClusterClientTypes.d.ts +37 -8
  53. package/dist/cjs/cluster/client/ClusterClientTypes.d.ts.map +1 -1
  54. package/dist/cjs/cluster/client/index.d.ts +0 -3
  55. package/dist/cjs/cluster/client/index.d.ts.map +1 -1
  56. package/dist/cjs/cluster/client/index.js +0 -3
  57. package/dist/cjs/cluster/client/index.js.map +1 -1
  58. package/dist/cjs/interaction/InteractionMessenger.d.ts.map +1 -1
  59. package/dist/cjs/interaction/InteractionMessenger.js +3 -2
  60. package/dist/cjs/interaction/InteractionMessenger.js.map +1 -1
  61. package/dist/cjs/interaction/SubscriptionClient.d.ts.map +1 -1
  62. package/dist/cjs/interaction/SubscriptionClient.js +2 -1
  63. package/dist/cjs/interaction/SubscriptionClient.js.map +1 -1
  64. package/dist/cjs/interaction/index.d.ts +1 -1
  65. package/dist/cjs/interaction/index.d.ts.map +1 -1
  66. package/dist/cjs/interaction/index.js +1 -1
  67. package/dist/cjs/interaction/index.js.map +1 -1
  68. package/dist/cjs/peer/CommissioningError.d.ts +13 -0
  69. package/dist/cjs/peer/CommissioningError.d.ts.map +1 -0
  70. package/dist/cjs/peer/CommissioningError.js +32 -0
  71. package/dist/cjs/peer/CommissioningError.js.map +6 -0
  72. package/dist/cjs/peer/ControllerCommissioner.d.ts +2 -3
  73. package/dist/cjs/peer/ControllerCommissioner.d.ts.map +1 -1
  74. package/dist/cjs/peer/ControllerCommissioner.js +20 -13
  75. package/dist/cjs/peer/ControllerCommissioner.js.map +2 -2
  76. package/dist/cjs/peer/ControllerCommissioningFlow.d.ts +7 -16
  77. package/dist/cjs/peer/ControllerCommissioningFlow.d.ts.map +1 -1
  78. package/dist/cjs/peer/ControllerCommissioningFlow.js +395 -178
  79. package/dist/cjs/peer/ControllerCommissioningFlow.js.map +1 -1
  80. package/dist/cjs/peer/ControllerDiscovery.d.ts +4 -0
  81. package/dist/cjs/peer/ControllerDiscovery.d.ts.map +1 -1
  82. package/dist/cjs/peer/ControllerDiscovery.js +6 -3
  83. package/dist/cjs/peer/ControllerDiscovery.js.map +1 -1
  84. package/dist/cjs/peer/InteractionQueue.d.ts +2 -2
  85. package/dist/cjs/peer/InteractionQueue.d.ts.map +1 -1
  86. package/dist/cjs/peer/InteractionQueue.js +1 -1
  87. package/dist/cjs/peer/InteractionQueue.js.map +1 -1
  88. package/dist/cjs/peer/PeerAddressStore.d.ts +0 -9
  89. package/dist/cjs/peer/PeerAddressStore.d.ts.map +1 -1
  90. package/dist/cjs/peer/PeerAddressStore.js.map +1 -1
  91. package/dist/cjs/peer/PeerSet.d.ts +0 -2
  92. package/dist/cjs/peer/PeerSet.d.ts.map +1 -1
  93. package/dist/cjs/peer/PeerSet.js +32 -18
  94. package/dist/cjs/peer/PeerSet.js.map +1 -1
  95. package/dist/cjs/peer/PhysicalDeviceProperties.js +1 -1
  96. package/dist/cjs/peer/PhysicalDeviceProperties.js.map +1 -1
  97. package/dist/cjs/peer/index.d.ts +1 -0
  98. package/dist/cjs/peer/index.d.ts.map +1 -1
  99. package/dist/cjs/peer/index.js +1 -0
  100. package/dist/cjs/peer/index.js.map +1 -1
  101. package/dist/cjs/protocol/DeviceCommissioner.d.ts.map +1 -1
  102. package/dist/cjs/protocol/DeviceCommissioner.js.map +1 -1
  103. package/dist/cjs/protocol/ExchangeManager.js +2 -2
  104. package/dist/cjs/protocol/ExchangeManager.js.map +1 -1
  105. package/dist/cjs/protocol/ExchangeProvider.d.ts +13 -4
  106. package/dist/cjs/protocol/ExchangeProvider.d.ts.map +1 -1
  107. package/dist/cjs/protocol/ExchangeProvider.js +5 -3
  108. package/dist/cjs/protocol/ExchangeProvider.js.map +1 -1
  109. package/dist/cjs/session/NodeSession.d.ts +5 -2
  110. package/dist/cjs/session/NodeSession.d.ts.map +1 -1
  111. package/dist/cjs/session/NodeSession.js +5 -4
  112. package/dist/cjs/session/NodeSession.js.map +1 -1
  113. package/dist/cjs/session/Session.d.ts +5 -3
  114. package/dist/cjs/session/Session.d.ts.map +1 -1
  115. package/dist/cjs/session/Session.js +8 -4
  116. package/dist/cjs/session/Session.js.map +1 -1
  117. package/dist/cjs/session/SessionManager.d.ts +8 -0
  118. package/dist/cjs/session/SessionManager.d.ts.map +1 -1
  119. package/dist/cjs/session/SessionManager.js +16 -2
  120. package/dist/cjs/session/SessionManager.js.map +1 -1
  121. package/dist/esm/action/client/ClientInteraction.d.ts +12 -5
  122. package/dist/esm/action/client/ClientInteraction.d.ts.map +1 -1
  123. package/dist/esm/action/client/ClientInteraction.js +42 -16
  124. package/dist/esm/action/client/ClientInteraction.js.map +1 -1
  125. package/dist/esm/action/client/ClientRead.d.ts +10 -0
  126. package/dist/esm/action/client/ClientRead.d.ts.map +1 -0
  127. package/dist/esm/action/client/ClientRead.js +6 -0
  128. package/dist/esm/action/client/ClientRead.js.map +6 -0
  129. package/dist/esm/action/client/ClientRequest.d.ts +20 -0
  130. package/dist/esm/action/client/ClientRequest.d.ts.map +1 -0
  131. package/dist/esm/action/client/ClientRequest.js +6 -0
  132. package/dist/esm/action/client/ClientRequest.js.map +6 -0
  133. package/dist/esm/action/client/ClientWrite.d.ts +10 -0
  134. package/dist/esm/action/client/ClientWrite.d.ts.map +1 -0
  135. package/dist/esm/action/client/ClientWrite.js +6 -0
  136. package/dist/esm/action/client/ClientWrite.js.map +6 -0
  137. package/dist/esm/action/client/QueuedClientInteraction.d.ts +49 -0
  138. package/dist/esm/action/client/QueuedClientInteraction.d.ts.map +1 -0
  139. package/dist/esm/action/client/QueuedClientInteraction.js +140 -0
  140. package/dist/esm/action/client/QueuedClientInteraction.js.map +6 -0
  141. package/dist/esm/action/client/index.d.ts +4 -0
  142. package/dist/esm/action/client/index.d.ts.map +1 -1
  143. package/dist/esm/action/client/index.js +4 -0
  144. package/dist/esm/action/client/index.js.map +1 -1
  145. package/dist/esm/action/client/subscription/ClientSubscribe.d.ts +2 -1
  146. package/dist/esm/action/client/subscription/ClientSubscribe.d.ts.map +1 -1
  147. package/dist/esm/action/client/subscription/ClientSubscriptionHandler.d.ts.map +1 -1
  148. package/dist/esm/action/client/subscription/ClientSubscriptionHandler.js +14 -3
  149. package/dist/esm/action/client/subscription/ClientSubscriptionHandler.js.map +1 -1
  150. package/dist/esm/action/client/subscription/SustainedSubscription.d.ts +1 -1
  151. package/dist/esm/action/client/subscription/SustainedSubscription.d.ts.map +1 -1
  152. package/dist/esm/action/client/subscription/SustainedSubscription.js +1 -4
  153. package/dist/esm/action/client/subscription/SustainedSubscription.js.map +1 -1
  154. package/dist/esm/action/request/Invoke.d.ts +7 -1
  155. package/dist/esm/action/request/Invoke.d.ts.map +1 -1
  156. package/dist/esm/action/request/Invoke.js +0 -3
  157. package/dist/esm/action/request/Invoke.js.map +1 -1
  158. package/dist/esm/action/request/Read.d.ts.map +1 -1
  159. package/dist/esm/action/request/Read.js +3 -2
  160. package/dist/esm/action/request/Read.js.map +1 -1
  161. package/dist/esm/action/request/Specifier.d.ts +1 -1
  162. package/dist/esm/action/request/Specifier.d.ts.map +1 -1
  163. package/dist/esm/action/request/Specifier.js +3 -0
  164. package/dist/esm/action/request/Specifier.js.map +1 -1
  165. package/dist/esm/action/request/Write.d.ts +1 -0
  166. package/dist/esm/action/request/Write.d.ts.map +1 -1
  167. package/dist/esm/action/request/Write.js +10 -2
  168. package/dist/esm/action/request/Write.js.map +1 -1
  169. package/dist/esm/action/response/ReadResult.d.ts +1 -1
  170. package/dist/esm/action/response/ReadResult.d.ts.map +1 -1
  171. package/dist/esm/cluster/client/ClusterClientTypes.d.ts +37 -8
  172. package/dist/esm/cluster/client/ClusterClientTypes.d.ts.map +1 -1
  173. package/dist/esm/cluster/client/index.d.ts +0 -3
  174. package/dist/esm/cluster/client/index.d.ts.map +1 -1
  175. package/dist/esm/cluster/client/index.js +0 -3
  176. package/dist/esm/cluster/client/index.js.map +1 -1
  177. package/dist/esm/interaction/InteractionMessenger.d.ts.map +1 -1
  178. package/dist/esm/interaction/InteractionMessenger.js +4 -3
  179. package/dist/esm/interaction/InteractionMessenger.js.map +1 -1
  180. package/dist/esm/interaction/SubscriptionClient.d.ts.map +1 -1
  181. package/dist/esm/interaction/SubscriptionClient.js +2 -1
  182. package/dist/esm/interaction/SubscriptionClient.js.map +1 -1
  183. package/dist/esm/interaction/index.d.ts +1 -1
  184. package/dist/esm/interaction/index.d.ts.map +1 -1
  185. package/dist/esm/interaction/index.js +1 -1
  186. package/dist/esm/peer/CommissioningError.d.ts +13 -0
  187. package/dist/esm/peer/CommissioningError.d.ts.map +1 -0
  188. package/dist/esm/peer/CommissioningError.js +12 -0
  189. package/dist/esm/peer/CommissioningError.js.map +6 -0
  190. package/dist/esm/peer/ControllerCommissioner.d.ts +2 -3
  191. package/dist/esm/peer/ControllerCommissioner.d.ts.map +1 -1
  192. package/dist/esm/peer/ControllerCommissioner.js +19 -13
  193. package/dist/esm/peer/ControllerCommissioner.js.map +2 -2
  194. package/dist/esm/peer/ControllerCommissioningFlow.d.ts +7 -16
  195. package/dist/esm/peer/ControllerCommissioningFlow.d.ts.map +1 -1
  196. package/dist/esm/peer/ControllerCommissioningFlow.js +380 -162
  197. package/dist/esm/peer/ControllerCommissioningFlow.js.map +1 -1
  198. package/dist/esm/peer/ControllerDiscovery.d.ts +4 -0
  199. package/dist/esm/peer/ControllerDiscovery.d.ts.map +1 -1
  200. package/dist/esm/peer/ControllerDiscovery.js +4 -1
  201. package/dist/esm/peer/ControllerDiscovery.js.map +1 -1
  202. package/dist/esm/peer/InteractionQueue.d.ts +2 -2
  203. package/dist/esm/peer/InteractionQueue.d.ts.map +1 -1
  204. package/dist/esm/peer/InteractionQueue.js +2 -2
  205. package/dist/esm/peer/InteractionQueue.js.map +1 -1
  206. package/dist/esm/peer/PeerAddressStore.d.ts +0 -9
  207. package/dist/esm/peer/PeerAddressStore.d.ts.map +1 -1
  208. package/dist/esm/peer/PeerAddressStore.js.map +1 -1
  209. package/dist/esm/peer/PeerSet.d.ts +0 -2
  210. package/dist/esm/peer/PeerSet.d.ts.map +1 -1
  211. package/dist/esm/peer/PeerSet.js +32 -18
  212. package/dist/esm/peer/PeerSet.js.map +1 -1
  213. package/dist/esm/peer/PhysicalDeviceProperties.js +1 -1
  214. package/dist/esm/peer/PhysicalDeviceProperties.js.map +1 -1
  215. package/dist/esm/peer/index.d.ts +1 -0
  216. package/dist/esm/peer/index.d.ts.map +1 -1
  217. package/dist/esm/peer/index.js +1 -0
  218. package/dist/esm/peer/index.js.map +1 -1
  219. package/dist/esm/protocol/DeviceCommissioner.d.ts.map +1 -1
  220. package/dist/esm/protocol/DeviceCommissioner.js.map +1 -1
  221. package/dist/esm/protocol/ExchangeManager.js +2 -2
  222. package/dist/esm/protocol/ExchangeManager.js.map +1 -1
  223. package/dist/esm/protocol/ExchangeProvider.d.ts +13 -4
  224. package/dist/esm/protocol/ExchangeProvider.d.ts.map +1 -1
  225. package/dist/esm/protocol/ExchangeProvider.js +5 -3
  226. package/dist/esm/protocol/ExchangeProvider.js.map +1 -1
  227. package/dist/esm/session/NodeSession.d.ts +5 -2
  228. package/dist/esm/session/NodeSession.d.ts.map +1 -1
  229. package/dist/esm/session/NodeSession.js +5 -4
  230. package/dist/esm/session/NodeSession.js.map +1 -1
  231. package/dist/esm/session/Session.d.ts +5 -3
  232. package/dist/esm/session/Session.d.ts.map +1 -1
  233. package/dist/esm/session/Session.js +8 -4
  234. package/dist/esm/session/Session.js.map +1 -1
  235. package/dist/esm/session/SessionManager.d.ts +8 -0
  236. package/dist/esm/session/SessionManager.d.ts.map +1 -1
  237. package/dist/esm/session/SessionManager.js +17 -2
  238. package/dist/esm/session/SessionManager.js.map +1 -1
  239. package/package.json +6 -6
  240. package/src/action/client/ClientInteraction.ts +58 -19
  241. package/src/action/client/ClientRead.ts +10 -0
  242. package/src/action/client/ClientRequest.ts +20 -0
  243. package/src/action/client/ClientWrite.ts +10 -0
  244. package/src/action/client/QueuedClientInteraction.ts +91 -0
  245. package/src/action/client/index.ts +4 -0
  246. package/src/action/client/subscription/ClientSubscribe.ts +2 -1
  247. package/src/action/client/subscription/ClientSubscriptionHandler.ts +14 -3
  248. package/src/action/client/subscription/SustainedSubscription.ts +6 -9
  249. package/src/action/request/Invoke.ts +11 -4
  250. package/src/action/request/Read.ts +3 -2
  251. package/src/action/request/Specifier.ts +4 -1
  252. package/src/action/request/Write.ts +11 -2
  253. package/src/action/response/ReadResult.ts +1 -1
  254. package/src/cluster/client/ClusterClientTypes.ts +47 -7
  255. package/src/cluster/client/index.ts +0 -3
  256. package/src/interaction/InteractionMessenger.ts +5 -4
  257. package/src/interaction/SubscriptionClient.ts +2 -1
  258. package/src/interaction/index.ts +1 -1
  259. package/src/peer/CommissioningError.ts +13 -0
  260. package/src/peer/ControllerCommissioner.ts +21 -13
  261. package/src/peer/ControllerCommissioningFlow.ts +418 -186
  262. package/src/peer/ControllerDiscovery.ts +4 -1
  263. package/src/peer/InteractionQueue.ts +2 -2
  264. package/src/peer/PeerAddressStore.ts +0 -9
  265. package/src/peer/PeerSet.ts +56 -23
  266. package/src/peer/PhysicalDeviceProperties.ts +1 -1
  267. package/src/peer/index.ts +1 -0
  268. package/src/protocol/DeviceCommissioner.ts +0 -1
  269. package/src/protocol/ExchangeManager.ts +2 -2
  270. package/src/protocol/ExchangeProvider.ts +9 -7
  271. package/src/session/NodeSession.ts +5 -4
  272. package/src/session/Session.ts +8 -4
  273. package/src/session/SessionManager.ts +19 -2
  274. package/dist/cjs/cluster/client/AttributeClient.d.ts +0 -75
  275. package/dist/cjs/cluster/client/AttributeClient.d.ts.map +0 -1
  276. package/dist/cjs/cluster/client/AttributeClient.js +0 -209
  277. package/dist/cjs/cluster/client/AttributeClient.js.map +0 -6
  278. package/dist/cjs/cluster/client/ClusterClient.d.ts +0 -11
  279. package/dist/cjs/cluster/client/ClusterClient.d.ts.map +0 -1
  280. package/dist/cjs/cluster/client/ClusterClient.js +0 -335
  281. package/dist/cjs/cluster/client/ClusterClient.js.map +0 -6
  282. package/dist/cjs/cluster/client/EventClient.d.ts +0 -33
  283. package/dist/cjs/cluster/client/EventClient.d.ts.map +0 -1
  284. package/dist/cjs/cluster/client/EventClient.js +0 -89
  285. package/dist/cjs/cluster/client/EventClient.js.map +0 -6
  286. package/dist/cjs/interaction/InteractionClient.d.ts +0 -375
  287. package/dist/cjs/interaction/InteractionClient.d.ts.map +0 -1
  288. package/dist/cjs/interaction/InteractionClient.js +0 -1046
  289. package/dist/cjs/interaction/InteractionClient.js.map +0 -6
  290. package/dist/esm/cluster/client/AttributeClient.d.ts +0 -75
  291. package/dist/esm/cluster/client/AttributeClient.d.ts.map +0 -1
  292. package/dist/esm/cluster/client/AttributeClient.js +0 -189
  293. package/dist/esm/cluster/client/AttributeClient.js.map +0 -6
  294. package/dist/esm/cluster/client/ClusterClient.d.ts +0 -11
  295. package/dist/esm/cluster/client/ClusterClient.d.ts.map +0 -1
  296. package/dist/esm/cluster/client/ClusterClient.js +0 -320
  297. package/dist/esm/cluster/client/ClusterClient.js.map +0 -6
  298. package/dist/esm/cluster/client/EventClient.d.ts +0 -33
  299. package/dist/esm/cluster/client/EventClient.d.ts.map +0 -1
  300. package/dist/esm/cluster/client/EventClient.js +0 -69
  301. package/dist/esm/cluster/client/EventClient.js.map +0 -6
  302. package/dist/esm/interaction/InteractionClient.d.ts +0 -375
  303. package/dist/esm/interaction/InteractionClient.d.ts.map +0 -1
  304. package/dist/esm/interaction/InteractionClient.js +0 -1047
  305. package/dist/esm/interaction/InteractionClient.js.map +0 -6
  306. package/src/cluster/client/AttributeClient.ts +0 -230
  307. package/src/cluster/client/ClusterClient.ts +0 -433
  308. package/src/cluster/client/EventClient.ts +0 -99
  309. 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,75 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2025 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { Attribute, AttributeId, ClusterId, EndpointNumber, TlvSchema } from "#types";
7
- import { InteractionClient } from "../../interaction/InteractionClient.js";
8
- /**
9
- * Factory function to create an AttributeClient for a given attribute.
10
- */
11
- export declare function createAttributeClient<T>(attribute: Attribute<T, any>, name: string, endpointId: EndpointNumber | undefined, clusterId: ClusterId, interactionClient: InteractionClient, present?: boolean): AttributeClient<T>;
12
- /**
13
- * General class for AttributeClients
14
- */
15
- export declare class AttributeClient<T = any> {
16
- #private;
17
- readonly attribute: Attribute<T, any>;
18
- readonly name: string;
19
- readonly endpointId: EndpointNumber | undefined;
20
- readonly clusterId: ClusterId;
21
- protected readonly schema: TlvSchema<any>;
22
- readonly id: AttributeId;
23
- constructor(attribute: Attribute<T, any>, name: string, endpointId: EndpointNumber | undefined, clusterId: ClusterId, interactionClient: InteractionClient);
24
- /**
25
- * Set the value of the attribute. When dataVersion parameter is provided the value is only set when the
26
- * cluster dataVersion of the server matches. If it does not match it is rejected with an Error.
27
- */
28
- set(value: T, dataVersion?: number): Promise<void>;
29
- get fabricScoped(): boolean;
30
- getLocal(): T | undefined;
31
- /**
32
- * Get the value of the attribute. Fabric scoped reads are always done with the remote.
33
- * The `requestFromRemote` parameter allowed to force or prevent remote reads:
34
- * - `true` forces a remote read
35
- * - `false` forces a local read, return undefined if no value is available
36
- * - `undefined` returns local values if available or if the read is fabric filtered, otherwise remote read
37
- */
38
- get(requestFromRemote?: boolean, isFabricFiltered?: boolean): Promise<T | undefined>;
39
- /**
40
- * Get the value with version of the attribute. Fabric scoped reads are always done with the remote.
41
- * The `requestFromRemote` parameter allowed to force or prevent remote reads:
42
- * - `true` forces a remote read
43
- * - `false` forces a local read, return undefined if no value is available
44
- * - `undefined` returns local values if available or if the read is fabric filtered, otherwise remote read
45
- */
46
- getWithVersion(requestFromRemote?: boolean, isFabricFiltered?: boolean): Promise<{
47
- value: T;
48
- version: number;
49
- } | undefined>;
50
- /** Subscribe to the attribute. */
51
- subscribe(minIntervalFloorSeconds: number, maxIntervalCeilingSeconds: number, knownDataVersion?: number, isFabricFiltered?: boolean): Promise<{
52
- maxInterval: number;
53
- }>;
54
- /**
55
- * Update the value of the attribute. Just internally used!
56
- * @private
57
- */
58
- update(value: T): void;
59
- /** Add a listener to the attribute. */
60
- addListener(listener: (newValue: T) => void): void;
61
- /** Remove a listener from the attribute. */
62
- removeListener(listener: (newValue: T) => void): void;
63
- }
64
- /**
65
- * Special AttributeClient class to allow identifying attributes that are supported because reported by the Devices.
66
- */
67
- export declare class SupportedAttributeClient<T> extends AttributeClient<T> {
68
- }
69
- /**
70
- * Special AttributeClient class to allow identifying attributes that are supported because reported by the Devices,
71
- * but the contained attribute is unknown.
72
- */
73
- export declare class UnknownSupportedAttributeClient extends SupportedAttributeClient<any> {
74
- }
75
- //# sourceMappingURL=AttributeClient.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AttributeClient.d.ts","sourceRoot":"","sources":["../../../../src/cluster/client/AttributeClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,SAAS,EAAkB,WAAW,EAAE,SAAS,EAAE,cAAc,EAAe,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAE3E;;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"}
@@ -1,189 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2025 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { ImplementationError } from "#general";
7
- import { FabricIndex as FabricIndexElement } from "#model";
8
- import { NoAssociatedFabricError } from "#protocol/errors.js";
9
- import { AttributeError, FabricIndex } from "#types";
10
- function createAttributeClient(attribute, name, endpointId, clusterId, interactionClient, present = false) {
11
- if (attribute.unknown) {
12
- return new UnknownSupportedAttributeClient(attribute, name, endpointId, clusterId, interactionClient);
13
- }
14
- if (present) {
15
- return new SupportedAttributeClient(attribute, name, endpointId, clusterId, interactionClient);
16
- }
17
- return new AttributeClient(attribute, name, endpointId, clusterId, interactionClient);
18
- }
19
- class AttributeClient {
20
- constructor(attribute, name, endpointId, clusterId, interactionClient) {
21
- this.attribute = attribute;
22
- this.name = name;
23
- this.endpointId = endpointId;
24
- this.clusterId = clusterId;
25
- const { schema, writable, fabricScoped, id, omitChanges } = attribute;
26
- this.schema = schema;
27
- this.#isWritable = writable;
28
- this.#isFabricScoped = fabricScoped;
29
- this.#updatedBySubscriptions = !omitChanges;
30
- this.id = id;
31
- this.#interactionClient = interactionClient;
32
- }
33
- #isWritable;
34
- #isFabricScoped;
35
- #updatedBySubscriptions;
36
- schema;
37
- #listeners = new Array();
38
- id;
39
- #interactionClient;
40
- /**
41
- * Set the value of the attribute. When dataVersion parameter is provided the value is only set when the
42
- * cluster dataVersion of the server matches. If it does not match it is rejected with an Error.
43
- */
44
- async set(value, dataVersion) {
45
- if (!this.#isWritable) throw new AttributeError(`Attribute ${this.name} is not writable`);
46
- value = this.schema.injectField(
47
- value,
48
- FabricIndexElement.id,
49
- FabricIndex.OMIT_FABRIC,
50
- (existingFieldIndex) => existingFieldIndex === void 0
51
- );
52
- this.schema.validate(value);
53
- if (this.#isFabricScoped) {
54
- value = this.schema.removeField(
55
- value,
56
- FabricIndexElement.id,
57
- (existingFieldIndex) => existingFieldIndex === FabricIndex.OMIT_FABRIC
58
- );
59
- try {
60
- const sessionFabric = this.#interactionClient.session.associatedFabric;
61
- value = this.schema.removeField(
62
- value,
63
- FabricIndexElement.id,
64
- (existingFieldIndex) => existingFieldIndex.index === sessionFabric.fabricIndex
65
- );
66
- } catch (e) {
67
- NoAssociatedFabricError.accept(e);
68
- }
69
- }
70
- return await this.#interactionClient.setAttribute({
71
- attributeData: {
72
- endpointId: this.endpointId,
73
- clusterId: this.clusterId,
74
- attribute: this.attribute,
75
- value,
76
- dataVersion
77
- }
78
- });
79
- }
80
- get fabricScoped() {
81
- return this.#isFabricScoped;
82
- }
83
- getLocal() {
84
- if (this.endpointId === void 0) {
85
- throw new ImplementationError(`Cannot read attribute ${this.name} without endpointId.`);
86
- }
87
- return this.#interactionClient.getStoredAttribute({
88
- endpointId: this.endpointId,
89
- clusterId: this.clusterId,
90
- attribute: this.attribute
91
- });
92
- }
93
- /**
94
- * Get the value of the attribute. Fabric scoped reads are always done with the remote.
95
- * The `requestFromRemote` parameter allowed to force or prevent remote reads:
96
- * - `true` forces a remote read
97
- * - `false` forces a local read, return undefined if no value is available
98
- * - `undefined` returns local values if available or if the read is fabric filtered, otherwise remote read
99
- */
100
- async get(requestFromRemote, isFabricFiltered = true) {
101
- if (this.endpointId === void 0) {
102
- throw new ImplementationError(`Cannot read attribute ${this.name} without endpointId.`);
103
- }
104
- if (requestFromRemote === void 0) {
105
- requestFromRemote = this.#isFabricScoped || !this.#updatedBySubscriptions ? true : void 0;
106
- } else if (!requestFromRemote && this.#isFabricScoped) {
107
- requestFromRemote = true;
108
- }
109
- return await this.#interactionClient.getAttribute({
110
- endpointId: this.endpointId,
111
- clusterId: this.clusterId,
112
- attribute: this.attribute,
113
- isFabricFiltered,
114
- requestFromRemote
115
- });
116
- }
117
- /**
118
- * Get the value with version of the attribute. Fabric scoped reads are always done with the remote.
119
- * The `requestFromRemote` parameter allowed to force or prevent remote reads:
120
- * - `true` forces a remote read
121
- * - `false` forces a local read, return undefined if no value is available
122
- * - `undefined` returns local values if available or if the read is fabric filtered, otherwise remote read
123
- */
124
- async getWithVersion(requestFromRemote, isFabricFiltered = true) {
125
- if (this.endpointId === void 0) {
126
- throw new ImplementationError(`Cannot read attribute ${this.name} without endpointId.`);
127
- }
128
- if (requestFromRemote === void 0) {
129
- requestFromRemote = this.#isFabricScoped || !this.#updatedBySubscriptions ? true : void 0;
130
- } else if (!requestFromRemote && this.#isFabricScoped) {
131
- requestFromRemote = true;
132
- }
133
- return await this.#interactionClient.getAttributeWithVersion({
134
- endpointId: this.endpointId,
135
- clusterId: this.clusterId,
136
- attribute: this.attribute,
137
- isFabricFiltered,
138
- requestFromRemote
139
- });
140
- }
141
- /** Subscribe to the attribute. */
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
- }
146
- if (!this.#updatedBySubscriptions) {
147
- throw new ImplementationError(`Attribute ${this.name} is not updated by subscriptions.`);
148
- }
149
- return this.#interactionClient.subscribeAttribute({
150
- endpointId: this.endpointId,
151
- clusterId: this.clusterId,
152
- attribute: this.attribute,
153
- minIntervalFloorSeconds,
154
- maxIntervalCeilingSeconds,
155
- isFabricFiltered,
156
- knownDataVersion,
157
- listener: this.update.bind(this)
158
- });
159
- }
160
- /**
161
- * Update the value of the attribute. Just internally used!
162
- * @private
163
- */
164
- update(value) {
165
- this.#listeners.forEach((listener) => listener(value));
166
- }
167
- /** Add a listener to the attribute. */
168
- addListener(listener) {
169
- this.#listeners.push(listener);
170
- }
171
- /** Remove a listener from the attribute. */
172
- removeListener(listener) {
173
- const entryIndex = this.#listeners.indexOf(listener);
174
- if (entryIndex !== -1) {
175
- this.#listeners.splice(entryIndex, 1);
176
- }
177
- }
178
- }
179
- class SupportedAttributeClient extends AttributeClient {
180
- }
181
- class UnknownSupportedAttributeClient extends SupportedAttributeClient {
182
- }
183
- export {
184
- AttributeClient,
185
- SupportedAttributeClient,
186
- UnknownSupportedAttributeClient,
187
- createAttributeClient
188
- };
189
- //# sourceMappingURL=AttributeClient.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/cluster/client/AttributeClient.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,2BAA2B;AACpC,SAAS,eAAe,0BAA0B;AAClD,SAAS,+BAA+B;AACxC,SAAoB,gBAAwD,mBAA8B;AAMnG,SAAS,sBACZ,WACA,MACA,YACA,WACA,mBACA,UAAU,OACQ;AAClB,MAAI,UAAU,SAAS;AACnB,WAAO,IAAI,gCAAgC,WAAW,MAAM,YAAY,WAAW,iBAAiB;AAAA,EACxG;AACA,MAAI,SAAS;AACT,WAAO,IAAI,yBAAyB,WAAW,MAAM,YAAY,WAAW,iBAAiB;AAAA,EACjG;AACA,SAAO,IAAI,gBAAgB,WAAW,MAAM,YAAY,WAAW,iBAAiB;AACxF;AAKO,MAAM,gBAAyB;AAAA,EASlC,YACa,WACA,MACA,YACA,WACT,mBACF;AALW;AACA;AACA;AACA;AAGT,UAAM,EAAE,QAAQ,UAAU,cAAc,IAAI,YAAY,IAAI;AAC5D,SAAK,SAAS;AACd,SAAK,cAAc;AACnB,SAAK,kBAAkB;AACvB,SAAK,0BAA0B,CAAC;AAChC,SAAK,KAAK;AACV,SAAK,qBAAqB;AAAA,EAC9B;AAAA,EAtBS;AAAA,EACA;AAAA,EACA;AAAA,EACU;AAAA,EACV,aAAa,IAAI,MAA6B;AAAA,EAC9C;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsBT,MAAM,IAAI,OAAU,aAAsB;AACtC,QAAI,CAAC,KAAK,YAAa,OAAM,IAAI,eAAe,aAAa,KAAK,IAAI,kBAAkB;AAExF,YAAQ,KAAK,OAAO;AAAA,MAChB;AAAA,MACQ,mBAAmB;AAAA,MAC3B,YAAY;AAAA,MACZ,wBAAsB,uBAAuB;AAAA,IACjD;AAEA,SAAK,OAAO,SAAS,KAAK;AAE1B,QAAI,KAAK,iBAAiB;AAEtB,cAAQ,KAAK,OAAO;AAAA,QAChB;AAAA,QACQ,mBAAmB;AAAA,QAC3B,wBAAsB,uBAAuB,YAAY;AAAA,MAC7D;AAEA,UAAI;AACA,cAAM,gBAAgB,KAAK,mBAAmB,QAAQ;AAEtD,gBAAQ,KAAK,OAAO;AAAA,UAChB;AAAA,UACQ,mBAAmB;AAAA,UAC3B,wBAAsB,mBAAmB,UAAU,cAAc;AAAA,QACrE;AAAA,MACJ,SAAS,GAAG;AACR,gCAAwB,OAAO,CAAC;AAAA,MACpC;AAAA,IACJ;AAEA,WAAO,MAAM,KAAK,mBAAmB,aAAgB;AAAA,MACjD,eAAe;AAAA,QACX,YAAY,KAAK;AAAA,QACjB,WAAW,KAAK;AAAA,QAChB,WAAW,KAAK;AAAA,QAChB;AAAA,QACA;AAAA,MACJ;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,WAAW;AACP,QAAI,KAAK,eAAe,QAAW;AAC/B,YAAM,IAAI,oBAAoB,yBAAyB,KAAK,IAAI,sBAAsB;AAAA,IAC1F;AACA,WAAO,KAAK,mBAAmB,mBAAmB;AAAA,MAC9C,YAAY,KAAK;AAAA,MACjB,WAAW,KAAK;AAAA,MAChB,WAAW,KAAK;AAAA,IACpB,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,IAAI,mBAA6B,mBAAmB,MAAM;AAC5D,QAAI,KAAK,eAAe,QAAW;AAC/B,YAAM,IAAI,oBAAoB,yBAAyB,KAAK,IAAI,sBAAsB;AAAA,IAC1F;AACA,QAAI,sBAAsB,QAAW;AACjC,0BAAoB,KAAK,mBAAmB,CAAC,KAAK,0BAA0B,OAAO;AAAA,IACvF,WAAW,CAAC,qBAAqB,KAAK,iBAAiB;AACnD,0BAAoB;AAAA,IACxB;AACA,WAAO,MAAM,KAAK,mBAAmB,aAAa;AAAA,MAC9C,YAAY,KAAK;AAAA,MACjB,WAAW,KAAK;AAAA,MAChB,WAAW,KAAK;AAAA,MAChB;AAAA,MACA;AAAA,IACJ,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,eAAe,mBAA6B,mBAAmB,MAAM;AACvE,QAAI,KAAK,eAAe,QAAW;AAC/B,YAAM,IAAI,oBAAoB,yBAAyB,KAAK,IAAI,sBAAsB;AAAA,IAC1F;AACA,QAAI,sBAAsB,QAAW;AACjC,0BAAoB,KAAK,mBAAmB,CAAC,KAAK,0BAA0B,OAAO;AAAA,IACvF,WAAW,CAAC,qBAAqB,KAAK,iBAAiB;AACnD,0BAAoB;AAAA,IACxB;AACA,WAAO,MAAM,KAAK,mBAAmB,wBAAwB;AAAA,MACzD,YAAY,KAAK;AAAA,MACjB,WAAW,KAAK;AAAA,MAChB,WAAW,KAAK;AAAA,MAChB;AAAA,MACA;AAAA,IACJ,CAAC;AAAA,EACL;AAAA;AAAA,EAGA,MAAM,UACF,yBACA,2BACA,kBACA,mBAAmB,MACrB;AACE,QAAI,KAAK,eAAe,QAAW;AAC/B,YAAM,IAAI,oBAAoB,yBAAyB,KAAK,IAAI,sBAAsB;AAAA,IAC1F;AACA,QAAI,CAAC,KAAK,yBAAyB;AAC/B,YAAM,IAAI,oBAAoB,aAAa,KAAK,IAAI,mCAAmC;AAAA,IAC3F;AACA,WAAO,KAAK,mBAAmB,mBAAmB;AAAA,MAC9C,YAAY,KAAK;AAAA,MACjB,WAAW,KAAK;AAAA,MAChB,WAAW,KAAK;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU,KAAK,OAAO,KAAK,IAAI;AAAA,IACnC,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,OAAU;AACb,SAAK,WAAW,QAAQ,cAAY,SAAS,KAAK,CAAC;AAAA,EACvD;AAAA;AAAA,EAGA,YAAY,UAAiC;AACzC,SAAK,WAAW,KAAK,QAAQ;AAAA,EACjC;AAAA;AAAA,EAGA,eAAe,UAAiC;AAC5C,UAAM,aAAa,KAAK,WAAW,QAAQ,QAAQ;AACnD,QAAI,eAAe,IAAI;AACnB,WAAK,WAAW,OAAO,YAAY,CAAC;AAAA,IACxC;AAAA,EACJ;AACJ;AAKO,MAAM,iCAAoC,gBAAmB;AAAC;AAM9D,MAAM,wCAAwC,yBAA8B;AAAC;",
5
- "names": []
6
- }
@@ -1,11 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2025 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { ClusterType, EndpointNumber, GlobalAttributes } from "#types";
7
- import { InteractionClient } from "../../interaction/InteractionClient.js";
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>;
11
- //# sourceMappingURL=ClusterClient.d.ts.map
@@ -1 +0,0 @@
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,CAsXrB"}
@@ -1,320 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2025 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { capitalize, Diagnostic, ImplementationError, Logger, Merge } from "#general";
7
- import {
8
- GlobalAttributes,
9
- StatusCode,
10
- StatusResponseError,
11
- UnknownAttribute
12
- } from "#types";
13
- import { createAttributeClient } from "./AttributeClient.js";
14
- import { createEventClient } from "./EventClient.js";
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
- }
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
- }
27
- function addAttributeToResult(attribute, attributeName) {
28
- attributes[attributeName] = createAttributeClient(
29
- attribute,
30
- attributeName,
31
- endpointId,
32
- clusterId,
33
- interactionClient,
34
- !!globalAttributeValues?.attributeList?.includes(attribute.id)
35
- );
36
- attributes[attribute.id] = attributes[attributeName];
37
- attributeToId[attribute.id] = attributeName;
38
- const capitalizedAttributeName = capitalize(attributeName);
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
- }
43
- try {
44
- return await attributes[attributeName].get(requestFromRemote, isFabricFiltered);
45
- } catch (e) {
46
- if (StatusResponseError.is(e, StatusCode.UnsupportedAttribute)) {
47
- return void 0;
48
- }
49
- throw e;
50
- }
51
- };
52
- result[`get${capitalizedAttributeName}AttributeFromCache`] = () => {
53
- if (isGroupAddress) {
54
- throw new ImplementationError("Group cluster clients do not support reading attributes");
55
- }
56
- return attributes[attributeName].getLocal();
57
- };
58
- result[`set${capitalizedAttributeName}Attribute`] = async (value, dataVersion) => attributes[attributeName].set(value, dataVersion);
59
- result[`subscribe${capitalizedAttributeName}Attribute`] = async (listener, minIntervalS, maxIntervalS, knownDataVersion, isFabricFiltered) => {
60
- if (isGroupAddress) {
61
- throw new ImplementationError("Group cluster clients do not support subscribing attributes");
62
- }
63
- attributes[attributeName].addListener(listener);
64
- return attributes[attributeName].subscribe(
65
- minIntervalS,
66
- maxIntervalS,
67
- knownDataVersion,
68
- isFabricFiltered
69
- );
70
- };
71
- result[`add${capitalizedAttributeName}AttributeListener`] = (listener) => {
72
- if (isGroupAddress) {
73
- throw new ImplementationError("Group cluster clients do not support subscribing attributes");
74
- }
75
- attributes[attributeName].addListener(listener);
76
- };
77
- result[`remove${capitalizedAttributeName}AttributeListener`] = (listener) => {
78
- if (isGroupAddress) {
79
- throw new ImplementationError("Group cluster clients do not support subscribing attributes");
80
- }
81
- attributes[attributeName].removeListener(listener);
82
- };
83
- }
84
- function addEventToResult(event, eventName) {
85
- events[eventName] = createEventClient(event, eventName, endpointId, clusterId, interactionClient);
86
- events[event.id] = events[eventName];
87
- eventToId[event.id] = eventName;
88
- const capitalizedEventName = capitalize(eventName);
89
- result[`get${capitalizedEventName}Event`] = async (minimumEventNumber, isFabricFiltered) => {
90
- if (isGroupAddress) {
91
- throw new ImplementationError("Group cluster clients do not support reading events");
92
- }
93
- try {
94
- return await events[eventName].get(minimumEventNumber, isFabricFiltered);
95
- } catch (e) {
96
- if (StatusResponseError.is(e, StatusCode.UnsupportedEvent)) {
97
- return void 0;
98
- }
99
- throw e;
100
- }
101
- };
102
- result[`subscribe${capitalizedEventName}Event`] = async (listener, minIntervalS, maxIntervalS, isUrgent, minimumEventNumber, isFabricFiltered) => {
103
- if (isGroupAddress) {
104
- throw new ImplementationError("Group cluster clients do not support subscribing to events");
105
- }
106
- events[eventName].addListener(listener);
107
- return events[eventName].subscribe(
108
- minIntervalS,
109
- maxIntervalS,
110
- isUrgent,
111
- minimumEventNumber,
112
- isFabricFiltered
113
- );
114
- };
115
- result[`add${capitalizedEventName}EventListener`] = (listener) => {
116
- if (isGroupAddress) {
117
- throw new ImplementationError("Group cluster clients do not support subscribing events");
118
- }
119
- events[eventName].addListener(listener);
120
- };
121
- result[`remove${capitalizedEventName}EventListener`] = (listener) => {
122
- if (isGroupAddress) {
123
- throw new ImplementationError("Group cluster clients do not support subscribing events");
124
- }
125
- events[eventName].removeListener(listener);
126
- };
127
- }
128
- const {
129
- id: clusterId,
130
- name,
131
- commands: commandDef,
132
- attributes: attributeDef,
133
- events: eventDef,
134
- features,
135
- supportedFeatures,
136
- revision,
137
- unknown
138
- } = clusterDef;
139
- const attributes = {};
140
- const events = {};
141
- const commands = {};
142
- let reportedFeatures = void 0;
143
- if (globalAttributeValues !== void 0) {
144
- if (globalAttributeValues.featureMap !== void 0) {
145
- reportedFeatures = globalAttributeValues.featureMap;
146
- }
147
- }
148
- const result = {
149
- id: clusterId,
150
- name,
151
- revision: globalAttributeValues?.clusterRevision ?? revision,
152
- _type: "ClusterClient",
153
- supportedFeatures: reportedFeatures ?? supportedFeatures ?? {},
154
- isUnknown: unknown,
155
- endpointId,
156
- attributes,
157
- events,
158
- commands,
159
- subscribeAllAttributes: async (options) => {
160
- if (isGroupAddress) {
161
- throw new ImplementationError("Group cluster clients do not support subscribing attributes");
162
- }
163
- const {
164
- minIntervalFloorSeconds,
165
- maxIntervalCeilingSeconds,
166
- keepSubscriptions,
167
- isFabricFiltered,
168
- eventFilters,
169
- dataVersionFilters
170
- } = options;
171
- return interactionClient.subscribeMultipleAttributesAndEvents({
172
- attributes: [{ endpointId, clusterId }],
173
- events: [{ endpointId, clusterId }],
174
- minIntervalFloorSeconds,
175
- maxIntervalCeilingSeconds,
176
- keepSubscriptions,
177
- isFabricFiltered,
178
- eventFilters,
179
- dataVersionFilters,
180
- attributeListener: (attributeData) => {
181
- const { path, value } = attributeData;
182
- result._triggerAttributeUpdate(path.attributeId, value);
183
- },
184
- eventListener: (eventData) => {
185
- const { path, events: newEvents } = eventData;
186
- result._triggerEventUpdate(path.eventId, newEvents);
187
- }
188
- });
189
- },
190
- /** Trigger a value change for an Attributed, used by subscriptions. */
191
- _triggerAttributeUpdate(attributeId, value) {
192
- const attributeName = attributeToId[attributeId];
193
- if (attributeName === void 0) {
194
- logger.warn("Unknown attribute id", attributeId);
195
- return;
196
- }
197
- if (attributes[attributeName] !== void 0) {
198
- attributes[attributeName].update(value);
199
- } else {
200
- logger.warn("Attribute not found", attributeName, "in list", Object.keys(attributes));
201
- }
202
- },
203
- /** Trigger a value change for an Event, used by subscriptions. */
204
- _triggerEventUpdate(eventId, eventData) {
205
- const eventName = eventToId[eventId];
206
- if (eventName === void 0) {
207
- logger.warn("Unknown event id", eventId);
208
- return;
209
- }
210
- if (events[eventName] !== void 0) {
211
- const event = events[eventName];
212
- eventData.forEach((data) => event.update(data));
213
- } else {
214
- logger.warn("Event not found", eventName, "in list", Object.keys(events));
215
- }
216
- },
217
- isAttributeSupported: (attributeId) => {
218
- if (isGroupAddress) {
219
- throw new ImplementationError("Group cluster clients do not allow to determine attribute existence.");
220
- }
221
- return !!globalAttributeValues?.attributeList?.includes(attributeId);
222
- },
223
- isAttributeSupportedByName: (attributeName) => {
224
- if (isGroupAddress) {
225
- throw new ImplementationError("Group cluster clients do not allow to determine attribute existence.");
226
- }
227
- const attribute = attributes[attributeName];
228
- if (attribute === void 0) {
229
- return false;
230
- }
231
- return !!globalAttributeValues?.attributeList?.includes(attribute.id);
232
- },
233
- isCommandSupported: (commandId) => {
234
- if (isGroupAddress) {
235
- throw new ImplementationError("Group cluster clients do not allow to determine command existence.");
236
- }
237
- return !!globalAttributeValues?.acceptedCommandList?.includes(commandId);
238
- },
239
- isCommandSupportedByName: (commandName) => {
240
- if (isGroupAddress) {
241
- throw new ImplementationError("Group cluster clients do not allow to determine attribute existence.");
242
- }
243
- const command = commandDef[commandName];
244
- if (command === void 0) {
245
- return false;
246
- }
247
- return !!globalAttributeValues?.acceptedCommandList?.includes(command.requestId);
248
- }
249
- };
250
- const attributeToId = {};
251
- const allAttributeDefs = Merge(
252
- attributeDef,
253
- GlobalAttributes(features)
254
- );
255
- for (const attributeName in allAttributeDefs) {
256
- addAttributeToResult(allAttributeDefs[attributeName], attributeName);
257
- }
258
- if (globalAttributeValues?.attributeList !== void 0) {
259
- for (const attributeId of globalAttributeValues.attributeList) {
260
- if (attributeToId[attributeId] === void 0) {
261
- const attribute = UnknownAttribute(attributeId);
262
- addAttributeToResult(attribute, `unknownAttribute_${Diagnostic.hex(attributeId)}`);
263
- logger.info(
264
- `Added unknown attribute ${Diagnostic.hex(attributeId)} to cluster ${Diagnostic.hex(clusterId)}`
265
- );
266
- }
267
- }
268
- }
269
- const eventToId = {};
270
- for (const eventName in eventDef) {
271
- addEventToResult(eventDef[eventName], eventName);
272
- }
273
- const commandToId = {};
274
- for (const commandName in commandDef) {
275
- const { requestId } = commandDef[commandName];
276
- commandToId[requestId] = commandName;
277
- commands[commandName] = async (request, options = {}) => {
278
- const {
279
- asTimedRequest,
280
- timedRequestTimeout,
281
- useExtendedFailSafeMessageResponseTimeout,
282
- expectedProcessingTime
283
- } = options;
284
- if (isGroupAddress) {
285
- return interactionClient.invokeWithSuppressedResponse({
286
- clusterId,
287
- command: commandDef[commandName],
288
- request,
289
- asTimedRequest,
290
- timedRequestTimeout
291
- });
292
- }
293
- return interactionClient.invoke({
294
- endpointId,
295
- clusterId,
296
- command: commandDef[commandName],
297
- request,
298
- asTimedRequest,
299
- timedRequestTimeout,
300
- expectedProcessingTime,
301
- useExtendedFailSafeMessageResponseTimeout
302
- });
303
- };
304
- commands[requestId] = commands[commandName];
305
- result[commandName] = result.commands[commandName];
306
- }
307
- if (globalAttributeValues?.acceptedCommandList !== void 0) {
308
- for (const requestId of globalAttributeValues.acceptedCommandList) {
309
- if (commandToId[requestId] === void 0) {
310
- logger.info(`Ignoring unknown command ${requestId} at cluster ${Diagnostic.hex(clusterId)}`);
311
- }
312
- }
313
- }
314
- return result;
315
- }
316
- export {
317
- ClusterClient,
318
- GroupClusterClient
319
- };
320
- //# sourceMappingURL=ClusterClient.js.map