@matter-server/ws-controller 0.2.2 → 0.2.4-alpha.0-20260116-d0b21f3

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 (28) hide show
  1. package/dist/esm/controller/AttributeDataCache.d.ts.map +1 -1
  2. package/dist/esm/controller/AttributeDataCache.js +6 -0
  3. package/dist/esm/controller/AttributeDataCache.js.map +1 -1
  4. package/dist/esm/controller/ControllerCommandHandler.d.ts +2 -3
  5. package/dist/esm/controller/ControllerCommandHandler.d.ts.map +1 -1
  6. package/dist/esm/controller/ControllerCommandHandler.js +46 -103
  7. package/dist/esm/controller/ControllerCommandHandler.js.map +2 -2
  8. package/dist/esm/controller/CustomClusterPoller.d.ts +47 -0
  9. package/dist/esm/controller/CustomClusterPoller.d.ts.map +1 -0
  10. package/dist/esm/controller/CustomClusterPoller.js +171 -0
  11. package/dist/esm/controller/CustomClusterPoller.js.map +6 -0
  12. package/dist/esm/controller/TestNodeCommandHandler.d.ts +1 -6
  13. package/dist/esm/controller/TestNodeCommandHandler.d.ts.map +1 -1
  14. package/dist/esm/controller/TestNodeCommandHandler.js +0 -41
  15. package/dist/esm/controller/TestNodeCommandHandler.js.map +1 -1
  16. package/dist/esm/server/WebSocketControllerHandler.d.ts +1 -1
  17. package/dist/esm/server/WebSocketControllerHandler.d.ts.map +1 -1
  18. package/dist/esm/server/WebSocketControllerHandler.js +4 -2
  19. package/dist/esm/server/WebSocketControllerHandler.js.map +1 -1
  20. package/dist/esm/types/CommandHandler.d.ts +0 -4
  21. package/dist/esm/types/CommandHandler.d.ts.map +1 -1
  22. package/package.json +4 -4
  23. package/src/controller/AttributeDataCache.ts +6 -0
  24. package/src/controller/ControllerCommandHandler.ts +59 -128
  25. package/src/controller/CustomClusterPoller.ts +250 -0
  26. package/src/controller/TestNodeCommandHandler.ts +0 -56
  27. package/src/server/WebSocketControllerHandler.ts +4 -2
  28. package/src/types/CommandHandler.ts +0 -5
@@ -1 +1 @@
1
- {"version":3,"file":"AttributeDataCache.d.ts","sourceRoot":"","sources":["../../../src/controller/AttributeDataCache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAA2B,MAAM,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAEpE,OAAO,EAAY,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAGtE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAU5D;;;;;;GAMG;AACH,qBAAa,kBAAkB;;IAG3B;;;OAGG;IACH,GAAG,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAI3B;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI5B;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAI9B;;;OAGG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,2BAA2B,CAAC,GAAG,CAAC,GAAG,IAAI;IAgC7E;;;OAGG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAkB/C;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;CA4E/B"}
1
+ {"version":3,"file":"AttributeDataCache.d.ts","sourceRoot":"","sources":["../../../src/controller/AttributeDataCache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAA2B,MAAM,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAEpE,OAAO,EAAY,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAGtE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAU5D;;;;;;GAMG;AACH,qBAAa,kBAAkB;;IAG3B;;;OAGG;IACH,GAAG,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAI3B;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI5B;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAI9B;;;OAGG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,2BAA2B,CAAC,GAAG,CAAC,GAAG,IAAI;IAmC7E;;;OAGG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAkB/C;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;CA+E/B"}
@@ -59,6 +59,9 @@ class AttributeDataCache {
59
59
  clusterData?.attributes[attributeId],
60
60
  clusterData?.model
61
61
  );
62
+ if (convertedValue === void 0) {
63
+ return;
64
+ }
62
65
  clusterCache.set(attributeId, convertedValue);
63
66
  }
64
67
  /**
@@ -134,6 +137,9 @@ class AttributeDataCache {
134
137
  clusterData?.attributes[attribute.id],
135
138
  clusterData?.model
136
139
  );
140
+ if (convertedValue === void 0) {
141
+ continue;
142
+ }
137
143
  clusterCache.set(attribute.id, convertedValue);
138
144
  }
139
145
  if (clusterCache.size) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/controller/AttributeDataCache.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -10,7 +10,7 @@ import { DecodedAttributeReportValue, DecodedEventReportValue } from "@matter/ma
10
10
  import { EndpointNumber, VendorId } from "@matter/main/types";
11
11
  import { CommissioningController } from "@project-chip/matter.js";
12
12
  import { NodeStates } from "@project-chip/matter.js/device";
13
- import { AttributeResponseStatus, AttributesData, CommissioningRequest, CommissioningResponse, DiscoveryRequest, DiscoveryResponse, InvokeByIdRequest, InvokeRequest, MatterNodeData, OpenCommissioningWindowRequest, OpenCommissioningWindowResponse, ReadAttributeRequest, ReadAttributeResponse, ReadEventRequest, ReadEventResponse, SubscribeAttributeRequest, SubscribeAttributeResponse, SubscribeEventRequest, SubscribeEventResponse, WriteAttributeByIdRequest, WriteAttributeRequest } from "../types/CommandHandler.js";
13
+ import { AttributeResponseStatus, AttributesData, CommissioningRequest, CommissioningResponse, DiscoveryRequest, DiscoveryResponse, InvokeByIdRequest, InvokeRequest, MatterNodeData, OpenCommissioningWindowRequest, OpenCommissioningWindowResponse, ReadEventRequest, ReadEventResponse, SubscribeAttributeRequest, SubscribeAttributeResponse, SubscribeEventRequest, SubscribeEventResponse, WriteAttributeByIdRequest, WriteAttributeRequest } from "../types/CommandHandler.js";
14
14
  import { AccessControlEntry, AttributeWriteResult, BindingTarget, MatterSoftwareVersion, NodePingResult } from "../types/WebSocketMessageTypes.js";
15
15
  export declare class ControllerCommandHandler {
16
16
  #private;
@@ -46,7 +46,7 @@ export declare class ControllerCommandHandler {
46
46
  getNodeDetails(nodeId: NodeId, lastInterviewDate?: Date): Promise<MatterNodeData>;
47
47
  /**
48
48
  * Read multiple attributes from a node by path strings.
49
- * Handles wildcards in paths.
49
+ * Supports wildcards in paths. Batches up to 9 paths per read call.
50
50
  */
51
51
  handleReadAttributes(nodeId: NodeId, attributePaths: string[], fabricFiltered?: boolean): Promise<AttributesData>;
52
52
  /**
@@ -55,7 +55,6 @@ export declare class ControllerCommandHandler {
55
55
  */
56
56
  setFabricLabel(label: string | null): Promise<void>;
57
57
  disconnectNode(nodeId: NodeId): Promise<void>;
58
- handleReadAttribute(data: ReadAttributeRequest): Promise<ReadAttributeResponse>;
59
58
  handleReadEvent(data: ReadEventRequest): Promise<ReadEventResponse>;
60
59
  handleSubscribeAttribute(data: SubscribeAttributeRequest): Promise<SubscribeAttributeResponse>;
61
60
  handleSubscribeEvent(data: SubscribeEventRequest): Promise<SubscribeEventResponse>;
@@ -1 +1 @@
1
- {"version":3,"file":"ControllerCommandHandler.d.ts","sourceRoot":"","sources":["../../../src/controller/ControllerCommandHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ControllerCommandHandler.d.ts","sourceRoot":"","sources":["../../../src/controller/ControllerCommandHandler.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,6 @@
6
6
  import { AsyncObservable, isObject } from "@matter/general";
7
7
  import {
8
8
  Bytes,
9
- ClusterBehavior,
10
9
  FabricIndex,
11
10
  ipv4BytesToString,
12
11
  ipv6BytesToString,
@@ -31,6 +30,7 @@ import {
31
30
  } from "@matter/main/protocol";
32
31
  import {
33
32
  Attribute,
33
+ AttributeId,
34
34
  ClusterId,
35
35
  Command,
36
36
  DeviceTypeId,
@@ -65,6 +65,7 @@ import {
65
65
  UpdateSource
66
66
  } from "../types/WebSocketMessageTypes.js";
67
67
  import { pingIp } from "../util/network.js";
68
+ import { CustomClusterPoller } from "./CustomClusterPoller.js";
68
69
  import { Nodes } from "./Nodes.js";
69
70
  const logger = Logger.get("ControllerCommandHandler");
70
71
  class ControllerCommandHandler {
@@ -77,6 +78,8 @@ class ControllerCommandHandler {
77
78
  #nodes = new Nodes();
78
79
  /** Cache of available updates keyed by nodeId */
79
80
  #availableUpdates = /* @__PURE__ */ new Map();
81
+ /** Poller for custom cluster attributes (Eve energy, etc.) */
82
+ #customClusterPoller;
80
83
  events = {
81
84
  started: new AsyncObservable(),
82
85
  attributeChanged: new Observable(),
@@ -92,6 +95,9 @@ class ControllerCommandHandler {
92
95
  this.#controller = controllerInstance;
93
96
  this.#bleEnabled = bleEnabled;
94
97
  this.#otaEnabled = otaEnabled;
98
+ this.#customClusterPoller = new CustomClusterPoller({
99
+ handleReadAttributes: (nodeId, paths, fabricFiltered) => this.handleReadAttributes(nodeId, paths, fabricFiltered)
100
+ });
95
101
  }
96
102
  get started() {
97
103
  return this.#started;
@@ -146,6 +152,7 @@ class ControllerCommandHandler {
146
152
  }
147
153
  close() {
148
154
  if (!this.#started) return;
155
+ this.#customClusterPoller.stop();
149
156
  return this.#controller.close();
150
157
  }
151
158
  async #registerNode(nodeId) {
@@ -159,6 +166,10 @@ class ControllerCommandHandler {
159
166
  node.events.stateChanged.on((state) => {
160
167
  if (state === NodeStates.Connected) {
161
168
  attributeCache.update(node);
169
+ const attributes = attributeCache.get(nodeId);
170
+ if (attributes) {
171
+ this.#customClusterPoller.registerNode(nodeId, attributes);
172
+ }
162
173
  }
163
174
  this.events.nodeStateChanged.emit(nodeId, state);
164
175
  });
@@ -174,6 +185,10 @@ class ControllerCommandHandler {
174
185
  this.#nodes.set(nodeId, node);
175
186
  if (node.initialized) {
176
187
  attributeCache.add(node);
188
+ const attributes = attributeCache.get(nodeId);
189
+ if (attributes) {
190
+ this.#customClusterPoller.registerNode(nodeId, attributes);
191
+ }
177
192
  }
178
193
  return node;
179
194
  }
@@ -256,90 +271,43 @@ class ControllerCommandHandler {
256
271
  }
257
272
  /**
258
273
  * Read multiple attributes from a node by path strings.
259
- * Handles wildcards in paths.
274
+ * Supports wildcards in paths. Batches up to 9 paths per read call.
260
275
  */
261
276
  async handleReadAttributes(nodeId, attributePaths, fabricFiltered = false) {
262
- const node = this.#nodes.get(nodeId);
263
277
  const result = {};
264
- const hasWildcards = attributePaths.some((path) => path.includes("*"));
265
- let allAttributes;
266
- if (hasWildcards) {
267
- if (!node.initialized) {
268
- throw new Error(`Node ${nodeId} not ready`);
269
- }
270
- const rootEndpoint = node.getRootEndpoint();
271
- if (rootEndpoint === void 0) {
272
- throw new Error(`Node ${nodeId} not ready`);
273
- }
274
- allAttributes = {};
275
- this.#collectAttributesFromEndpoint(rootEndpoint, allAttributes);
276
- }
277
- for (const path of attributePaths) {
278
- const { endpointId, clusterId, attributeId } = splitAttributePath(path);
279
- if (path.includes("*") && allAttributes !== void 0) {
280
- for (const [attrPath, value] of Object.entries(allAttributes)) {
281
- const parts = attrPath.split("/").map(Number);
282
- if ((endpointId === void 0 || parts[0] === endpointId) && (clusterId === void 0 || parts[1] === clusterId) && (attributeId === void 0 || parts[2] === attributeId)) {
283
- result[attrPath] = value;
284
- }
285
- }
286
- continue;
287
- }
288
- const { values, status } = await this.handleReadAttribute({
289
- nodeId,
290
- endpointId,
291
- clusterId,
292
- attributeId,
293
- fabricFiltered
278
+ const client = await this.#nodes.interactionClientFor(nodeId);
279
+ const batchSize = 9;
280
+ const parsedPaths = attributePaths.map((path) => splitAttributePath(path));
281
+ for (let i = 0; i < parsedPaths.length; i += batchSize) {
282
+ const batch = parsedPaths.slice(i, i + batchSize);
283
+ const attributes = batch.map(({ endpointId, clusterId, attributeId }) => ({
284
+ endpointId: endpointId !== void 0 ? EndpointNumber(endpointId) : void 0,
285
+ clusterId: clusterId !== void 0 ? ClusterId(clusterId) : void 0,
286
+ attributeId: attributeId !== void 0 ? AttributeId(attributeId) : void 0
287
+ }));
288
+ const { attributeData, attributeStatus } = await client.getMultipleAttributesAndStatus({
289
+ attributes,
290
+ isFabricFiltered: fabricFiltered
294
291
  });
295
- if (values.length) {
296
- for (const valueData of values) {
297
- const { pathStr, value } = this.#convertAttributeToWebSocket(
298
- {
299
- endpointId: EndpointNumber(valueData.endpointId),
300
- clusterId: ClusterId(valueData.clusterId),
301
- attributeId: valueData.attributeId
302
- },
303
- valueData.value
304
- );
305
- result[pathStr] = value;
306
- }
307
- } else if (status && status.length > 0) {
308
- logger.warn(`Failed to read attribute ${path}: status=${JSON.stringify(status)}`);
309
- }
310
- }
311
- return result;
312
- }
313
- /**
314
- * Collect all attributes from an endpoint and its children into WebSocket format.
315
- */
316
- #collectAttributesFromEndpoint(endpoint, attributesData) {
317
- const endpointId = endpoint.number;
318
- for (const behavior of endpoint.endpoint.behaviors.active) {
319
- if (!ClusterBehavior.is(behavior)) {
320
- continue;
292
+ for (const { path: attrPath, value } of attributeData) {
293
+ const { pathStr, value: wsValue } = this.#convertAttributeToWebSocket(
294
+ {
295
+ endpointId: EndpointNumber(attrPath.endpointId),
296
+ clusterId: ClusterId(attrPath.clusterId),
297
+ attributeId: attrPath.attributeId
298
+ },
299
+ value
300
+ );
301
+ result[pathStr] = wsValue;
321
302
  }
322
- const cluster = behavior.cluster;
323
- const clusterId = cluster.id;
324
- const clusterData = ClusterMap[cluster.name.toLowerCase()];
325
- const clusterState = endpoint.endpoint.stateOf(behavior);
326
- for (const attributeName in cluster.attributes) {
327
- const attribute = cluster.attributes[attributeName];
328
- if (attribute === void 0) {
329
- continue;
303
+ if (attributeStatus && attributeStatus.length > 0) {
304
+ for (const { path: attrPath, status } of attributeStatus) {
305
+ const pathStr = buildAttributePath(attrPath.endpointId, attrPath.clusterId, attrPath.attributeId);
306
+ logger.warn(`Failed to read attribute ${pathStr}: status=${status}`);
330
307
  }
331
- const attributeValue = clusterState[attributeName];
332
- const { pathStr, value } = this.#convertAttributeToWebSocket(
333
- { endpointId, clusterId, attributeId: attribute.id },
334
- attributeValue,
335
- clusterData
336
- );
337
- attributesData[pathStr] = value;
338
308
  }
339
309
  }
340
- for (const childEndpoint of endpoint.getChildEndpoints()) {
341
- this.#collectAttributesFromEndpoint(childEndpoint, attributesData);
342
- }
310
+ return result;
343
311
  }
344
312
  /**
345
313
  * Convert attribute data to WebSocket tag-based format.
@@ -366,32 +334,6 @@ class ControllerCommandHandler {
366
334
  disconnectNode(nodeId) {
367
335
  return this.#controller.disconnectNode(nodeId, true);
368
336
  }
369
- async handleReadAttribute(data) {
370
- const { nodeId, endpointId, clusterId, attributeId, fabricFiltered = true } = data;
371
- const client = await this.#nodes.interactionClientFor(nodeId);
372
- const { attributeData, attributeStatus } = await client.getMultipleAttributesAndStatus({
373
- attributes: [{ endpointId, clusterId, attributeId }],
374
- isFabricFiltered: fabricFiltered
375
- });
376
- return {
377
- values: attributeData.map(
378
- ({ path: { endpointId: endpointId2, clusterId: clusterId2, attributeId: attributeId2 }, value, version: dataVersion }) => ({
379
- attributeId: attributeId2,
380
- clusterId: clusterId2,
381
- dataVersion,
382
- endpointId: endpointId2,
383
- value
384
- })
385
- ),
386
- status: attributeStatus?.map(({ path: { endpointId: endpointId2, clusterId: clusterId2, attributeId: attributeId2 }, status, clusterStatus }) => ({
387
- attributeId: attributeId2,
388
- clusterId: clusterId2,
389
- endpointId: endpointId2,
390
- status,
391
- clusterStatus
392
- }))
393
- };
394
- }
395
337
  async handleReadEvent(data) {
396
338
  const { nodeId, endpointId, clusterId, eventId, eventMin } = data;
397
339
  const client = await this.#nodes.interactionClientFor(nodeId);
@@ -801,6 +743,7 @@ class ControllerCommandHandler {
801
743
  const node = this.#nodes.has(nodeId) ? this.#nodes.get(nodeId) : void 0;
802
744
  await this.#controller.removeNode(nodeId, !!node?.isConnected);
803
745
  this.#nodes.delete(nodeId);
746
+ this.#customClusterPoller.unregisterNode(nodeId);
804
747
  this.events.nodeDecommissioned.emit(nodeId);
805
748
  }
806
749
  async openCommissioningWindow(data) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/controller/ControllerCommandHandler.ts"],
4
- "mappings": "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",
5
- "names": ["endpointId", "clusterId", "attributeId", "eventId", "data"]
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,iBAAiB,gBAAgB;AAC1C;AAAA,EACI;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAIA;AAAA,OACG;AACP;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP;AAAA,EAGI;AAAA,EACA;AAAA,EAEA;AAAA,OACG;AACP;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAEP,SAAS,kBAAkB;AAC3B,SAAS,kBAAmC;AAC5C;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAsBP;AAAA,EAOI;AAAA,OACG;AACP,SAAS,cAAc;AACvB,SAAS,2BAA2B;AACpC,SAAS,aAAa;AAEtB,MAAM,SAAS,OAAO,IAAI,0BAA0B;AAE7C,MAAM,yBAAyB;AAAA,EAClC;AAAA,EACA,WAAW;AAAA,EACX,aAAa;AAAA,EACb,cAAc;AAAA,EACd,cAAc;AAAA;AAAA,EAEd,SAAS,IAAI,MAAM;AAAA;AAAA,EAEnB,oBAAoB,oBAAI,IAAgC;AAAA;AAAA,EAExD;AAAA,EACA,SAAS;AAAA,IACL,SAAS,IAAI,gBAAgB;AAAA,IAC7B,kBAAkB,IAAI,WAAqE;AAAA,IAC3F,cAAc,IAAI,WAAiE;AAAA,IACnF,WAAW,IAAI,WAA6B;AAAA,IAC5C,kBAAkB,IAAI,WAAgD;AAAA,IACtE,sBAAsB,IAAI,WAA6B;AAAA,IACvD,oBAAoB,IAAI,WAA6B;AAAA,IACrD,mBAAmB,IAAI,WAAyD;AAAA,IAChF,qBAAqB,IAAI,WAAyD;AAAA,EACtF;AAAA,EAEA,YAAY,oBAA6C,YAAqB,YAAqB;AAC/F,SAAK,cAAc;AAEnB,SAAK,cAAc;AACnB,SAAK,cAAc;AAInB,SAAK,uBAAuB,IAAI,oBAAoB;AAAA,MAChD,sBAAsB,CAAC,QAAQ,OAAO,mBAClC,KAAK,qBAAqB,QAAQ,OAAO,cAAc;AAAA,IAC/D,CAAC;AAAA,EACL;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,aAAa;AACb,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,QAAQ;AACV,QAAI,KAAK,UAAU;AACf;AAAA,IACJ;AACA,SAAK,WAAW;AAEhB,UAAM,KAAK,YAAY,MAAM;AAC7B,WAAO,KAAK,oBAAoB;AAEhC,QAAI,CAAC,KAAK,aAAa;AAEnB,YAAM,KAAK,uBAAuB;AAAA,IACtC;AAEA,UAAM,KAAK,OAAO,QAAQ,KAAK;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,yBAAyB;AAC3B,QAAI,CAAC,KAAK,aAAa;AACnB;AAAA,IACJ;AACA,QAAI;AACA,YAAM,cAAc,KAAK,YAAY;AACrC,UAAI,CAAC,aAAa;AACd,eAAO,KAAK,4BAA4B;AACxC;AAAA,MACJ;AAIA,YAAM,8BAA8B,MAAM,YAAY,IAAI,WAAS,MAAM,IAAI,qBAAqB,EAAE,MAAM;AAC1G,UAAI,gCAAgC,QAAW;AAC3C,eAAO,KAAK,qCAAqC;AACjD;AAAA,MACJ;AAGA,kCAA4B,gBAAgB;AAAA,QACxC,CAAC,aAA0B,kBAAsC;AAC7D,iBAAO,KAAK,6BAA6B,YAAY,MAAM,KAAK,aAAa;AAC7E,eAAK,kBAAkB,IAAI,YAAY,QAAQ,aAAa;AAAA,QAChE;AAAA,MACJ;AAGA,kCAA4B,WAAW,GAAG,CAAC,gBAA6B;AACpE,eAAO,KAAK,wBAAwB,YAAY,MAAM,EAAE;AACxD,aAAK,kBAAkB,OAAO,YAAY,MAAM;AAAA,MACpD,CAAC;AAED,aAAO,KAAK,+BAA+B;AAAA,IAC/C,SAAS,OAAO;AACZ,aAAO,KAAK,uCAAuC,KAAK;AAAA,IAC5D;AAAA,EACJ;AAAA,EAEA,QAAQ;AACJ,QAAI,CAAC,KAAK,SAAU;AACpB,SAAK,qBAAqB,KAAK;AAC/B,WAAO,KAAK,YAAY,MAAM;AAAA,EAClC;AAAA,EAEA,MAAM,cAAc,QAAgB;AAChC,UAAM,OAAO,MAAM,KAAK,YAAY,QAAQ,MAAM;AAClD,UAAM,iBAAiB,KAAK,OAAO;AAGnC,SAAK,OAAO,iBAAiB,GAAG,UAAQ;AAEpC,qBAAe,gBAAgB,QAAQ,IAAI;AAE3C,WAAK,OAAO,iBAAiB,KAAK,QAAQ,IAAI;AAAA,IAClD,CAAC;AACD,SAAK,OAAO,eAAe,GAAG,UAAQ,KAAK,OAAO,aAAa,KAAK,QAAQ,IAAI,CAAC;AACjF,SAAK,OAAO,aAAa,GAAG,WAAS;AAEjC,UAAI,UAAU,WAAW,WAAW;AAChC,uBAAe,OAAO,IAAI;AAE1B,cAAM,aAAa,eAAe,IAAI,MAAM;AAC5C,YAAI,YAAY;AACZ,eAAK,qBAAqB,aAAa,QAAQ,UAAU;AAAA,QAC7D;AAAA,MACJ;AACA,WAAK,OAAO,iBAAiB,KAAK,QAAQ,KAAK;AAAA,IACnD,CAAC;AACD,SAAK,OAAO,iBAAiB,GAAG,MAAM;AAElC,UAAI,KAAK,aAAa;AAClB,uBAAe,OAAO,IAAI;AAAA,MAC9B;AACA,WAAK,OAAO,qBAAqB,KAAK,MAAM;AAAA,IAChD,CAAC;AACD,SAAK,OAAO,eAAe,GAAG,MAAM,KAAK,OAAO,mBAAmB,KAAK,MAAM,CAAC;AAC/E,SAAK,OAAO,kBAAkB,GAAG,gBAAc,KAAK,OAAO,kBAAkB,KAAK,QAAQ,UAAU,CAAC;AACrG,SAAK,OAAO,oBAAoB,GAAG,gBAAc,KAAK,OAAO,oBAAoB,KAAK,QAAQ,UAAU,CAAC;AAGzG,SAAK,OAAO,IAAI,QAAQ,IAAI;AAG5B,QAAI,KAAK,aAAa;AAClB,qBAAe,IAAI,IAAI;AAEvB,YAAM,aAAa,eAAe,IAAI,MAAM;AAC5C,UAAI,YAAY;AACZ,aAAK,qBAAqB,aAAa,QAAQ,UAAU;AAAA,MAC7D;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,UAAU;AACZ,QAAI,KAAK,YAAY;AACjB;AAAA,IACJ;AACA,SAAK,aAAa;AAElB,UAAM,KAAK,MAAM;AAEjB,UAAM,QAAQ,KAAK,YAAY,qBAAqB;AACpD,WAAO,KAAK,SAAS,MAAM,MAAM,WAAW,MAAM,IAAI,YAAU,OAAO,SAAS,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE;AAE/F,eAAW,UAAU,OAAO;AACxB,UAAI;AACA,eAAO,KAAK,sBAAsB,MAAM,OAAO;AAE/C,cAAM,OAAO,MAAM,KAAK,cAAc,MAAM;AAG5C,aAAK,QAAQ;AAAA,UACT,kCAAkC;AAAA,UAClC,oCAAoC;AAAA,QACxC,CAAC;AAAA,MACL,SAAS,OAAO;AACZ,eAAO,KAAK,8BAA8B,MAAM,MAAM,KAAK;AAAA,MAC/D;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,aAAa;AACT,WAAO,KAAK,OAAO,OAAO;AAAA,EAC9B;AAAA,EAEA,QAAQ,QAAyB;AAC7B,WAAO,KAAK,OAAO,IAAI,MAAM;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW,QAAgB;AACvB,WAAO,KAAK,iBAAiB,MAAM;AAAA,EACvC;AAAA,EAEA,MAAM,cAAc,QAAgB;AAChC,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM;AAKnC,WAAO,KAAK,gCAAgC,MAAM,uBAAuB;AAGzE,UAAM,OAAO;AAAA,MACT,GAAG,KAAK;AAAA,QACJ,cAAc;AAAA,QACd,YAAY,CAAC,CAAC,CAAC;AAAA,MACnB,CAAC;AAAA,MACD,sBAAsB;AAAA;AAAA,IAC1B;AACA,qBAAiB,UAAW,KAAK,KAAK,YAAsC,KAAK,IAAI,EAAE;AAGvF,SAAK,OAAO,iBAAiB,KAAK,QAAQ,KAAK,eAAe;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,eAAe,QAAgB,mBAAmD;AACpF,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM;AACnC,UAAM,iBAAiB,KAAK,OAAO;AAEnC,QAAI,WAAW;AAGf,QAAI,CAAC,eAAe,IAAI,MAAM,GAAG;AAC7B,qBAAe,IAAI,IAAI;AAAA,IAC3B;AAGA,UAAM,aAAa,eAAe,IAAI,MAAM,KAAK,CAAC;AAIlD,UAAM,uBAAuB,WAAW,QAAQ;AAChD,QAAI,MAAM,QAAQ,oBAAoB,GAAG;AACrC,iBAAW,qBAAqB,KAAK,WAAS,MAAM,GAAG,MAAM,EAAE;AAAA,IACnE;AAGA,UAAM,iBAAiB,KAAK,MAAM,cAAc;AAChD,UAAM,mBAAmB,mBAAmB,SAAY,IAAI,KAAK,cAAc,IAAI,oBAAI,KAAK;AAE5F,WAAO;AAAA,MACH,SAAS,KAAK;AAAA,MACd,mBAAmB,gBAAgB,gBAAgB;AAAA,MACnD,gBAAgB,gBAAgB,qBAAqB,oBAAI,KAAK,CAAC;AAAA,MAC/D,mBAAmB;AAAA,MACnB,WAAW,KAAK;AAAA,MAChB,WAAW;AAAA,MACX;AAAA,MACA,yBAAyB,CAAC;AAAA,IAC9B;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,qBACF,QACA,gBACA,iBAAiB,OACM;AACvB,UAAM,SAAyB,CAAC;AAChC,UAAM,SAAS,MAAM,KAAK,OAAO,qBAAqB,MAAM;AAC5D,UAAM,YAAY;AAGlB,UAAM,cAAc,eAAe,IAAI,UAAQ,mBAAmB,IAAI,CAAC;AAGvE,aAAS,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK,WAAW;AACpD,YAAM,QAAQ,YAAY,MAAM,GAAG,IAAI,SAAS;AAChD,YAAM,aAAa,MAAM,IAAI,CAAC,EAAE,YAAY,WAAW,YAAY,OAAO;AAAA,QACtE,YAAY,eAAe,SAAY,eAAe,UAAU,IAAI;AAAA,QACpE,WAAW,cAAc,SAAY,UAAU,SAAS,IAAI;AAAA,QAC5D,aAAa,gBAAgB,SAAY,YAAY,WAAW,IAAI;AAAA,MACxE,EAAE;AAEF,YAAM,EAAE,eAAe,gBAAgB,IAAI,MAAM,OAAO,+BAA+B;AAAA,QACnF;AAAA,QACA,kBAAkB;AAAA,MACtB,CAAC;AAED,iBAAW,EAAE,MAAM,UAAU,MAAM,KAAK,eAAe;AACnD,cAAM,EAAE,SAAS,OAAO,QAAQ,IAAI,KAAK;AAAA,UACrC;AAAA,YACI,YAAY,eAAe,SAAS,UAAU;AAAA,YAC9C,WAAW,UAAU,SAAS,SAAS;AAAA,YACvC,aAAa,SAAS;AAAA,UAC1B;AAAA,UACA;AAAA,QACJ;AACA,eAAO,OAAO,IAAI;AAAA,MACtB;AAEA,UAAI,mBAAmB,gBAAgB,SAAS,GAAG;AAC/C,mBAAW,EAAE,MAAM,UAAU,OAAO,KAAK,iBAAiB;AACtD,gBAAM,UAAU,mBAAmB,SAAS,YAAY,SAAS,WAAW,SAAS,WAAW;AAChG,iBAAO,KAAK,4BAA4B,OAAO,YAAY,MAAM,EAAE;AAAA,QACvE;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,6BACI,MACA,OACA,aACF;AACE,UAAM,EAAE,YAAY,WAAW,YAAY,IAAI;AAC/C,QAAI,CAAC,aAAa;AACd,YAAM,UAAU,eAAe,SAAS;AACxC,oBAAc,WAAW,QAAQ,KAAK,YAAY,CAAC;AAAA,IACvD;AACA,WAAO;AAAA,MACH,SAAS,mBAAmB,YAAY,WAAW,WAAW;AAAA,MAC9D,OAAO,iCAAiC,OAAO,aAAa,WAAW,WAAW,GAAG,aAAa,KAAK;AAAA,IAC3G;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,eAAe,OAAsB;AACjC,UAAM,iBAAiB,SAAS,MAAM,KAAK,MAAM,KAAK,QAAQ;AAC9D,WAAO,KAAK,YAAY,kBAAkB,cAAc;AAAA,EAC5D;AAAA,EAEA,eAAe,QAAgB;AAC3B,WAAO,KAAK,YAAY,eAAe,QAAQ,IAAI;AAAA,EACvD;AAAA,EAEA,MAAM,gBAAgB,MAAoD;AACtE,UAAM,EAAE,QAAQ,YAAY,WAAW,SAAS,SAAS,IAAI;AAC7D,UAAM,SAAS,MAAM,KAAK,OAAO,qBAAqB,MAAM;AAC5D,UAAM,EAAE,WAAW,YAAY,IAAI,MAAM,OAAO,2BAA2B;AAAA,MACvE,QAAQ;AAAA,QACJ;AAAA,UACI;AAAA,UACA;AAAA,UACA;AAAA,QACJ;AAAA,MACJ;AAAA,MACA,cAAc,WAAW,CAAC,EAAE,SAAS,CAAC,IAAI;AAAA,IAC9C,CAAC;AAED,WAAO;AAAA,MACH,QAAQ,UAAU;AAAA,QAAQ,CAAC,EAAE,MAAM,EAAE,YAAAA,aAAY,WAAAC,YAAW,SAAAC,SAAQ,GAAG,OAAO,MAC1E,OAAO,IAAI,CAAC,EAAE,aAAa,MAAAC,MAAK,OAAO;AAAA,UACnC,SAAAD;AAAA,UACA,WAAAD;AAAA,UACA,YAAAD;AAAA,UACA;AAAA,UACA,OAAOG;AAAA,QACX,EAAE;AAAA,MACN;AAAA,MACA,QAAQ,aAAa,IAAI,CAAC,EAAE,MAAM,EAAE,YAAAH,aAAY,WAAAC,YAAW,SAAAC,SAAQ,GAAG,QAAQ,cAAc,OAAO;AAAA,QAC/F,WAAAD;AAAA,QACA,YAAAD;AAAA,QACA,SAAAE;AAAA,QACA;AAAA,QACA;AAAA,MACJ,EAAE;AAAA,IACN;AAAA,EACJ;AAAA,EAEA,MAAM,yBAAyB,MAAsE;AACjG,UAAM,EAAE,QAAQ,YAAY,WAAW,aAAa,aAAa,aAAa,eAAe,IAAI;AACjG,UAAM,SAAS,MAAM,KAAK,OAAO,qBAAqB,MAAM;AAC5D,UAAM,UAAU,WAAmB;AACnC,QAAI,aAAa;AACjB,UAAM,EAAE,mBAAmB,CAAC,EAAE,IAAI,MAAM,OAAO,qCAAqC;AAAA,MAChF,YAAY;AAAA,QACR;AAAA,UACI;AAAA,UACA;AAAA,UACA;AAAA,QACJ;AAAA,MACJ;AAAA,MACA,yBAAyB;AAAA,MACzB,2BAA2B;AAAA,MAC3B,mBAAmB,CAAAC,UAAQ;AACvB,YAAI,WAAY;AAChB,uBAAe;AAAA,UACX,aAAaA,MAAK,KAAK;AAAA,UACvB,WAAWA,MAAK,KAAK;AAAA,UACrB,YAAYA,MAAK,KAAK;AAAA,UACtB,aAAaA,MAAK;AAAA,UAClB,OAAOA,MAAK;AAAA,QAChB,CAAC;AAAA,MACL;AAAA,MACA,gBAAgB,MAAM;AAClB,gBAAQ,KAAK;AAAA,MACjB;AAAA,MACA,mBAAmB;AAAA,IACvB,CAAC;AACD,iBAAa;AAEb,WAAO;AAAA,MACH,QAAQ,iBAAiB;AAAA,QACrB,CAAC,EAAE,MAAM,EAAE,YAAAH,aAAY,WAAAC,YAAW,aAAAG,aAAY,GAAG,OAAO,SAAS,YAAY,OAAO;AAAA,UAChF,aAAAA;AAAA,UACA,WAAAH;AAAA,UACA,YAAAD;AAAA,UACA;AAAA,UACA;AAAA,QACJ;AAAA,MACJ;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,qBAAqB,MAA8D;AACrF,UAAM,EAAE,QAAQ,YAAY,WAAW,SAAS,aAAa,aAAa,eAAe,IAAI;AAC7F,UAAM,SAAS,MAAM,KAAK,OAAO,qBAAqB,MAAM;AAC5D,UAAM,UAAU,WAAmB;AACnC,QAAI,aAAa;AACjB,UAAM,EAAE,eAAe,CAAC,EAAE,IAAI,MAAM,OAAO,qCAAqC;AAAA,MAC5E,QAAQ;AAAA,QACJ;AAAA,UACI;AAAA,UACA;AAAA,UACA;AAAA,QACJ;AAAA,MACJ;AAAA,MACA,yBAAyB;AAAA,MACzB,2BAA2B;AAAA,MAC3B,eAAe,CAAAG,UAAQ;AACnB,YAAI,WAAY;AAChB,QAAAA,MAAK,OAAO;AAAA,UAAQ,WAChB,eAAe;AAAA,YACX,SAASA,MAAK,KAAK;AAAA,YACnB,WAAWA,MAAK,KAAK;AAAA,YACrB,YAAYA,MAAK,KAAK;AAAA,YACtB,aAAa,MAAM;AAAA,YACnB,OAAO,MAAM;AAAA,UACjB,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,MACA,gBAAgB,MAAM;AAClB,gBAAQ,KAAK;AAAA,MACjB;AAAA,MACA,mBAAmB;AAAA,IACvB,CAAC;AACD,iBAAa;AAEb,WAAO;AAAA,MACH,QAAQ,aAAa;AAAA,QAAQ,CAAC,EAAE,MAAM,EAAE,YAAAH,aAAY,WAAAC,YAAW,SAAAC,SAAQ,GAAG,OAAO,MAC7E,OAAO,IAAI,CAAC,EAAE,aAAa,MAAAC,MAAK,OAAO;AAAA,UACnC,SAAAD;AAAA,UACA,WAAAD;AAAA,UACA,YAAAD;AAAA,UACA;AAAA,UACA,OAAOG;AAAA,QACX,EAAE;AAAA,MACN;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,qBAAqB,MAA+D;AACtF,UAAM,EAAE,QAAQ,YAAY,WAAW,aAAa,MAAM,IAAI;AAE9D,UAAM,SAAS,KAAK,OAAO,qBAAqB,QAAQ,YAAY,SAAS;AAE7E,WAAO,KAAK,qBAAqB,aAAa,cAAc,KAAK;AACjE,QAAI;AACA,YAAM,OAAO,WAAW,WAAW,EAAE,IAAI,KAAK;AAC9C,aAAO;AAAA,QACH;AAAA,QACA;AAAA,QACA;AAAA,QACA,QAAQ;AAAA,MACZ;AAAA,IACJ,SAAS,OAAO;AACZ,0BAAoB,OAAO,KAAK;AAChC,aAAO;AAAA,QACH;AAAA,QACA;AAAA,QACA;AAAA,QACA,QAAQ,MAAM;AAAA,QACd,eAAe,MAAM;AAAA,MACzB;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,aAAa,MAAmC;AAClD,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,2BAA2B;AAAA,MAC3B;AAAA,IACJ,IAAI;AACJ,QAAI,EAAE,MAAM,YAAY,IAAI;AAE5B,UAAM,SAAS,KAAK,OAAO,qBAAqB,QAAQ,YAAY,SAAS;AAE7E,QAAI,CAAC,OAAO,WAAW,KAAK,CAAC,OAAO,yBAAyB,WAAW,GAAG;AACvE,YAAM,IAAI,MAAM,sBAAsB;AAAA,IAC1C;AAEA,QAAI,SAAS,WAAW,GAAG;AACvB,UAAI,OAAO,KAAK,WAAW,EAAE,WAAW,GAAG;AACvC,sBAAc;AAAA,MAClB,OAAO;AACH,cAAM,UAAU,WAAW,OAAO,KAAK,YAAY,CAAC;AACpD,cAAM,QAAQ,SAAS,SAAS,YAAY,YAAY,CAAC;AACzD,YAAI,WAAW,OAAO;AAClB,wBAAc,2BAA2B,aAAa,OAAO,QAAQ,KAAK;AAAA,QAC9E;AAAA,MACJ;AAAA,IACJ;AACA,WAAQ,OAAO,WAAW,EAAkE,aAAa;AAAA,MACrG,qBAAqB,OAAO,qBAAqB;AAAA,MACjD,wBAAwB,yBAAyB,SAAY,OAAO,oBAAoB,IAAI;AAAA,IAChG,CAAC;AAAA,EACL;AAAA;AAAA,EAGA,MAAM,iBAAiB,MAAwC;AAC3D,UAAM,EAAE,QAAQ,YAAY,WAAW,WAAW,MAAM,aAAa,0BAA0B,IAAI;AACnG,UAAM,SAAS,MAAM,KAAK,OAAO,qBAAqB,MAAM;AAC5D,UAAM,OAAO,OAA+B;AAAA,MACxC;AAAA,MACA;AAAA,MACA,SAAS,QAAQ,WAAW,QAAQ,GAAM,eAAe;AAAA,QACrD,OAAO,8BAA8B;AAAA,MACzC,CAAC;AAAA,MACD,SAAS,gBAAgB,SAAY,QAAQ,UAAU,IAAI,UAAU,CAAC,CAAC,EAAE,UAAU,WAAkB;AAAA,MACrG,gBAAgB,8BAA8B;AAAA,MAC9C,qBAAqB,OAAO,yBAAyB;AAAA,MACrD,gBAAgB;AAAA,IACpB,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,yBAAyB,MAAgD;AAC3E,UAAM,EAAE,QAAQ,YAAY,WAAW,aAAa,MAAM,IAAI;AAE9D,UAAM,SAAS,MAAM,KAAK,OAAO,qBAAqB,MAAM;AAE5D,WAAO,KAAK,qBAAqB,aAAa,cAAc,KAAK;AAEjE,QAAI;AAEJ,QAAI,UAAU,MAAM;AAChB,iBAAW,YAAY,UAAU,EAAE,UAAU,KAAK;AAAA,IACtD,WAAW,iBAAiB,YAAY;AACpC,iBAAW,cAAc,UAAU,KAAK;AAAA,IAC5C,OAAO;AACH,cAAQ,OAAO,OAAO;AAAA,QAClB,KAAK;AACD,qBAAW,WAAW,UAAU,KAAK;AACrC;AAAA,QACJ,KAAK;AACD,qBAAW,SAAS,UAAU,KAAK;AACnC;AAAA,QACJ,KAAK;AACD,qBAAW,UAAU,UAAU,KAAK;AACpC;AAAA,QACJ,KAAK;AACD,qBAAW,UAAU,UAAU,KAAK;AACpC;AAAA,QACJ;AACI,gBAAM,IAAI,MAAM,yCAAyC;AAAA,MACjE;AAAA,IACJ;AAEA,UAAM,OAAO,aAAa;AAAA,MACtB,eAAe;AAAA,QACX;AAAA,QACA;AAAA,QACA,WAAW,UAAU,aAAa,MAAM;AAAA,QACxC,OAAO;AAAA,MACX;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,4BAA4B,MAAsD;AAC9E,QAAI,WAA+B;AACnC,QAAI,qBAAyC;AAC7C,QAAI,oBAAwC;AAC5C,QAAI,YAAgC;AACpC,QAAI,WAAiC;AACrC,QAAI,eAA0C;AAE9C,QAAI,gBAAgB,QAAQ,KAAK,WAAW,SAAS,GAAG;AACpD,YAAM,mBAAmB,uBAAuB,OAAO,KAAK,UAAU;AACtE,2BAAqB,iBAAiB;AACtC,0BAAoB;AACpB,iBAAW,iBAAiB;AAAA,IAChC,WAAW,YAAY,QAAQ,KAAK,OAAO,SAAS,GAAG;AACnD,YAAM,mBAAmB,mBAAmB,OAAO,KAAK,MAAM;AAE9D,0BAAoB,iBAAiB,CAAC,EAAE;AACxC,2BAAqB;AACrB,iBAAW,iBAAiB,CAAC,EAAE;AAAA,IACnC,WAAW,cAAc,MAAM;AAC3B,iBAAW,KAAK;AAEhB,UAAI,wBAAwB,MAAM;AAC9B,6BAAqB,KAAK;AAAA,MAC9B,WAAW,uBAAuB,MAAM;AACpC,4BAAoB,KAAK;AAAA,MAC7B,WAAW,cAAc,QAAQ,eAAe,MAAM;AAClD,mBAAW,SAAS,KAAK,QAAQ;AACjC,oBAAY,KAAK;AAAA,MACrB;AAAA,IAEJ,OAAO;AACH,YAAM,IAAI,MAAM,0BAA0B;AAAA,IAC9C;AAEA,QAAI,KAAK,iBAAiB,QAAW;AACjC,YAAM,EAAE,IAAI,KAAK,IAAI,KAAK;AAC1B,qBAAe;AAAA,QACX,MAAM;AAAA,QACN;AAAA,QACA;AAAA,MACJ;AAAA,IACJ;AAEA,QAAI,YAAY,QAAW;AACvB,YAAM,IAAI,MAAM,sBAAsB;AAAA,IAC1C;AAEA,UAAM,EAAE,cAAc,IAAI;AAC1B,WAAO;AAAA,MACH,eAAe;AAAA,QACX,QAAQ,KAAK;AAAA,QACb,oBAAoB,qBAAqB,uBAAuB;AAAA,QAChE,uBAAuB;AAAA,MAC3B;AAAA,MACA,WAAW;AAAA,QACP;AAAA,QACA,gBACI,sBAAsB,SAChB,EAAE,kBAAkB,IACpB,uBAAuB,SACrB,EAAE,mBAAmB,IACrB,aAAa,SACX,EAAE,UAAU,UAAU,IACtB,CAAC;AAAA,QACf,uBAAuB;AAAA,UACnB,KAAK,KAAK,cAAc,CAAC;AAAA,UACzB,aAAa;AAAA,QACjB;AAAA,MACJ;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,eAAe,MAA4D;AAC7E,UAAM,SAAS,MAAM,KAAK,YAAY,eAAe,KAAK,4BAA4B,IAAI,GAAG;AAAA,MACzF,+BAA+B;AAAA,IACnC,CAAC;AAED,UAAM,KAAK,cAAc,MAAM;AAE/B,SAAK,OAAO,UAAU,KAAK,MAAM;AACjC,WAAO,EAAE,OAAO;AAAA,EACpB;AAAA,EAEA,wBAAwB;AACpB,WAAO,KAAK,YAAY;AAAA,EAC5B;AAAA,EAEA,MAAM,4BAAyF;AAC3F,UAAM,EAAE,UAAU,SAAS,IAAI,KAAK,YAAY;AAChD,WAAO;AAAA,MACH;AAAA,MACA,oBAAoB;AAAA,IACxB;AAAA,EACJ;AAAA;AAAA,EAGA,MAAM,gBAAgB,EAAE,OAAO,GAAiD;AAC5E,UAAM,SAAS,MAAM,KAAK,YAAY;AAAA,MAClC,UAAU,CAAC;AAAA,MACX,EAAE,aAAa,KAAK;AAAA,MACpB;AAAA,MACA,QAAQ,CAAC;AAAA;AAAA,IACb;AACA,WAAO,KAAK,qBAAqB,MAAM;AAGvC,UAAM,kBAAkB,OAAO,OAAO,SAAS,CAAC;AAChD,QAAI,oBAAoB,QAAW;AAC/B,aAAO,CAAC;AAAA,IACZ;AACA,WAAO,CAAC,eAAe,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,kBAAkB,WAAW,KAAK,IAAI,MAAM;AAC1G,YAAM,EAAE,WAAW,mBAAmB,WAAW,kBAAkB,IAAI,0BAA0B;AAAA,QAC7F,KAAK;AAAA,MACT;AACA,YAAM,WAAW,OAAO,SAAY,KAAK,GAAG,SAAS,GAAG,IAAI,SAAS,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC,IAAI,SAAS,EAAE;AACpG,YAAM,YAAY,OAAO,SAAY,KAAK,GAAG,SAAS,GAAG,IAAI,SAAS,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC,IAAI;AAC1F,YAAM,OAAO,UAAU,SAAU,UAAU,CAAC,EAAuB,OAAO;AAC1E,YAAM,SAAS,UAAU;AACzB,aAAO;AAAA,QACH,mBAAmB;AAAA,QACnB,YAAY,MAAM;AAAA,QAClB,YAAY,MAAM;AAAA,QAClB,UAAU;AAAA;AAAA,QACV,cAAc;AAAA,QACd,mBAAmB;AAAA,QACnB;AAAA,QACA,aAAa,MAAM;AAAA,QACnB,oBAAoB,MAAM;AAAA,QAC1B;AAAA,QACA;AAAA,QACA,YAAY,MAAM;AAAA,QAClB,eAAe,IAAI,UAAU;AAAA,QAC7B,oBAAqB,KAAK,IAAK;AAAA,QAC/B;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAY,UAAU,OAAO,CAAC,EAAE,KAAK,MAAM,SAAS,KAAK,EAAyB,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE;AAAA,QACpG,wBAAwB;AAAA,QACxB,0BAA0B;AAAA,MAC9B;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,mBAAmB,QAAgB,cAAc,MAAM;AACzD,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM;AACnC,UAAM,YAAY,oBAAI,IAAY;AAClC,UAAM,cAAc,KAAK,qBAAqB,yBAAyB;AACvE,QAAI,aAAa;AACb,UAAI;AACA,cAAM,oBAAoB,MAAM,YAAY,8BAA8B,cAAc,OAAO,IAAI;AACnG,YAAI,mBAAmB;AACnB,gBAAM,aAAa,kBAAkB,OAAO,CAAC,EAAE,cAAc,MAAM,aAAa;AAChF,cAAI,WAAW,QAAQ;AACnB,mBAAO,KAAK,SAAS,WAAW,MAAM,mCAAmC,UAAU;AACnF,uBAAW,QAAQ,CAAC,EAAE,eAAe,cAAc,MAAM;AACrD,4BAAc,QAAQ,QAAM,UAAU,IAAI,kBAAkB,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1E,4BAAc,QAAQ,QAAM,UAAU,IAAI,kBAAkB,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;AAAA,YAC9E,CAAC;AAAA,UACL;AAAA,QACJ;AAAA,MACJ,SAAS,GAAG;AACR,eAAO,KAAK,qCAAqC,CAAC,EAAE;AAAA,MACxD;AAAA,IACJ;AACA,WAAO,MAAM,KAAK,UAAU,OAAO,CAAC;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,SAAS,QAAgB,WAAW,GAA4B;AAClE,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM;AAEnC,UAAM,SAAyB,CAAC;AAGhC,UAAM,cAAc,MAAM,KAAK,mBAAmB,QAAQ,KAAK;AAE/D,QAAI,YAAY,WAAW,GAAG;AAC1B,aAAO,KAAK,kCAAkC,MAAM,EAAE;AACtD,aAAO;AAAA,IACX;AAEA,WAAO,KAAK,gBAAgB,MAAM,OAAO,YAAY,MAAM,eAAe,WAAW;AAGrF,UAAM,eAAe,YAAY,IAAI,OAAM,OAAM;AAC7C,YAAM,UAAU,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI;AACtD,aAAO,MAAM,WAAW,OAAO,EAAE;AACjC,YAAM,UAAU,MAAM,OAAO,IAAI,IAAI,QAAQ;AAC7C,aAAO,EAAE,IAAI;AACb,aAAO,MAAM,mBAAmB,OAAO,KAAK,OAAO,EAAE;AAAA,IACzD,CAAC;AAED,UAAM,QAAQ,IAAI,YAAY;AAG9B,QAAI,KAAK,aAAa;AAElB,YAAM,aAAa,OAAO,OAAO,MAAM,EAAE,KAAK,OAAK,CAAC;AACpD,UAAI,CAAC,cAAc,YAAY,SAAS,GAAG;AAGvC,eAAO,KAAK,QAAQ,MAAM,sCAAsC;AAAA,MACpE;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,iBAAiB,QAAgB;AACnC,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM,IAAI,KAAK,OAAO,IAAI,MAAM,IAAI;AACjE,UAAM,KAAK,YAAY,WAAW,QAAQ,CAAC,CAAC,MAAM,WAAW;AAE7D,SAAK,OAAO,OAAO,MAAM;AAEzB,SAAK,qBAAqB,eAAe,MAAM;AAE/C,SAAK,OAAO,mBAAmB,KAAK,MAAM;AAAA,EAC9C;AAAA,EAEA,MAAM,wBAAwB,MAAgF;AAC1G,UAAM,EAAE,QAAQ,QAAQ,IAAI;AAC5B,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM;AACnC,UAAM,EAAE,mBAAmB,cAAc,IAAI,MAAM,KAAK,gCAAgC,OAAO;AAC/F,WAAO,EAAE,YAAY,mBAAmB,QAAQ,cAAc;AAAA,EAClE;AAAA,EAEA,MAAM,WAAW,QAAgB;AAC7B,UAAM,SAAS,KAAK,OAAO,iBAAiB,QAAQ,eAAe,CAAC,GAAG,uBAAuB,OAAO;AAErG,YAAQ,MAAM,OAAO,oBAAoB,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,UAAU,aAAa,UAAU,MAAM,OAAO;AAAA,MACxG;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,EAAE;AAAA,EACN;AAAA,EAEA,aAAa,QAAgB,aAA0B;AACnD,UAAM,SAAS,KAAK,OAAO,iBAAiB,QAAQ,eAAe,CAAC,GAAG,uBAAuB,OAAO;AAErG,WAAO,OAAO,aAAa,EAAE,YAAY,CAAC;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,YAAY,QAAgB,SAAuE;AACrG,UAAM,SAAS,KAAK,OAAO,iBAAiB,QAAQ,eAAe,CAAC,GAAG,cAAc,OAAO;AAG5F,UAAM,aAAiD,QAAQ,IAAI,YAAU;AAAA,MACzE,WAAW,MAAM;AAAA,MACjB,UAAU,MAAM;AAAA,MAChB,UAAU,MAAM,UAAU,IAAI,OAAK,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK;AAAA,MACzD,SACI,MAAM,SAAS,IAAI,CAAC,OAA4B;AAAA,QAC5C,SAAS,EAAE,YAAY,OAAO,UAAU,EAAE,OAAO,IAAI;AAAA,QACrD,UAAU,EAAE,aAAa,OAAO,eAAe,EAAE,QAAQ,IAAI;AAAA,QAC7D,YAAY,EAAE,gBAAgB,OAAO,aAAa,EAAE,WAAW,IAAI;AAAA,MACvE,EAAE,KAAK;AAAA,MACX,aAAa,YAAY;AAAA,IAC7B,EAAE;AAEF,WAAO,KAAK,uBAAuB,UAAU;AAE7C,QAAI;AACA,YAAM,OAAO,gBAAgB,UAAU;AACvC,aAAO;AAAA,QACH;AAAA,UACI,MAAM;AAAA,YACF,aAAa;AAAA,YACb,YAAY,cAAc,QAAQ;AAAA,YAClC,cAAc;AAAA;AAAA,UAClB;AAAA,UACA,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ,SAAS,OAAO;AACZ,0BAAoB,OAAO,KAAK;AAChC,aAAO;AAAA,QACH;AAAA,UACI,MAAM;AAAA,YACF,aAAa;AAAA,YACb,YAAY,cAAc,QAAQ;AAAA,YAClC,cAAc;AAAA,UAClB;AAAA,UACA,QAAQ,MAAM;AAAA,QAClB;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,eACF,QACA,YACA,UACsC;AACtC,UAAM,SAAS,KAAK,OAAO,iBAAiB,QAAQ,YAAY,QAAQ,OAAO;AAG/E,UAAM,iBAAmC,SAAS,IAAI,cAAY;AAAA,MAC9D,MAAM,QAAQ,SAAS,OAAO,OAAO,QAAQ,IAAI,IAAI;AAAA,MACrD,OAAO,QAAQ,UAAU,OAAO,QAAQ,QAAQ,KAAK,IAAI;AAAA,MACzD,UAAU,QAAQ,aAAa,OAAO,eAAe,QAAQ,QAAQ,IAAI;AAAA,MACzE,SAAS,QAAQ,YAAY,OAAO,UAAU,QAAQ,OAAO,IAAI;AAAA,MACjE,aAAa,YAAY;AAAA,IAC7B,EAAE;AAEF,WAAO,KAAK,gCAAgC,YAAY,cAAc;AAEtE,QAAI;AACA,YAAM,OAAO,WAAW,QAAQ,IAAI,cAAc;AAClD,aAAO;AAAA,QACH;AAAA,UACI,MAAM;AAAA,YACF,aAAa;AAAA,YACb,YAAY,QAAQ,QAAQ;AAAA,YAC5B,cAAc;AAAA;AAAA,UAClB;AAAA,UACA,QAAQ;AAAA,QACZ;AAAA,MACJ;AAAA,IACJ,SAAS,OAAO;AACZ,0BAAoB,OAAO,KAAK;AAChC,aAAO;AAAA,QACH;AAAA,UACI,MAAM;AAAA,YACF,aAAa;AAAA,YACb,YAAY,QAAQ,QAAQ;AAAA,YAC5B,cAAc;AAAA,UAClB;AAAA,UACA,QAAQ,MAAM;AAAA,QAClB;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,gBAAgB,QAAuD;AACzE,QAAI,CAAC,KAAK,aAAa;AACnB,YAAM,IAAI,MAAM,kBAAkB;AAAA,IACtC;AAEA,UAAM,eAAe,KAAK,kBAAkB,IAAI,MAAM;AACtD,QAAI,cAAc;AACd,aAAO,KAAK,gCAAgC,YAAY;AAAA,IAC5D;AAGA,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM;AAEnC,QAAI;AACA,YAAM,cAAc,KAAK,YAAY;AACrC,UAAI,CAAC,aAAa;AACd,eAAO,KAAK,4BAA4B;AACxC,eAAO;AAAA,MACX;AAGA,YAAM,mBAAmB,MAAM,YAAY;AAAA,QAAI,WAC3C,MAAM,IAAI,qBAAqB,EAAE,aAAa;AAAA,UAC1C,aAAa,KAAK;AAAA,UAClB,sBAAsB;AAAA,QAC1B,CAAC;AAAA,MACL;AAGA,YAAM,cAAc,KAAK,YAAY,OAAO,UAAU,MAAM;AAC5D,YAAM,aAAa,iBAAiB;AAAA,QAAK,CAAC,EAAE,aAAa,cAAc,MACnE,YAAY,GAAG,aAAa,aAAa;AAAA,MAC7C;AAEA,UAAI,YAAY;AACZ,cAAM,EAAE,KAAK,IAAI;AACjB,aAAK,kBAAkB,IAAI,QAAQ,IAAI;AACvC,eAAO,KAAK,gCAAgC,IAAI;AAAA,MACpD;AAEA,aAAO;AAAA,IACX,SAAS,OAAO;AACZ,aAAO,KAAK,wCAAwC,MAAM,KAAK,KAAK;AACpE,aAAO;AAAA,IACX;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,WAAW,QAAgB,iBAAgE;AAC7F,QAAI,CAAC,KAAK,aAAa;AACnB,YAAM,IAAI,MAAM,kBAAkB;AAAA,IACtC;AACA,QAAI,CAAC,KAAK,OAAO,IAAI,MAAM,GAAG;AAC1B,YAAM,IAAI,MAAM,QAAQ,MAAM,YAAY;AAAA,IAC9C;AAEA,QAAI;AACA,YAAM,cAAc,KAAK,YAAY;AACrC,UAAI,CAAC,aAAa;AACd,cAAM,IAAI,MAAM,4BAA4B;AAAA,MAChD;AAGA,UAAI,aAAa,KAAK,kBAAkB,IAAI,MAAM;AAClD,UAAI,CAAC,YAAY;AAEb,cAAM,SAAS,MAAM,KAAK,gBAAgB,MAAM;AAChD,YAAI,CAAC,QAAQ;AACT,gBAAM,IAAI,MAAM,mCAAmC;AAAA,QACvD;AACA,qBAAa,KAAK,kBAAkB,IAAI,MAAM;AAC9C,YAAI,CAAC,YAAY;AACb,gBAAM,IAAI,MAAM,2BAA2B;AAAA,QAC/C;AAAA,MACJ;AAEA,aAAO,KAAK,4BAA4B,MAAM,eAAe,eAAe,EAAE;AAG9E,YAAM,YAAY;AAAA,QAAI,WAClB,MACK,IAAI,qBAAqB,EACzB;AAAA,UACG,KAAK,YAAY,OAAO,UAAU,MAAM;AAAA,UACxC,WAAW;AAAA,UACX,WAAW;AAAA,UACX;AAAA,QACJ;AAAA,MACR;AAGA,aAAO,KAAK,gCAAgC,UAAU;AAAA,IAC1D,SAAS,OAAO;AACZ,aAAO,MAAM,yBAAyB,MAAM,KAAK,KAAK;AACtD,YAAM;AAAA,IACV;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,gCAAgC,YAAuD;AACnF,UAAM,EAAE,UAAU,WAAW,iBAAiB,uBAAuB,iBAAiB,OAAO,IAAI;AACjG,WAAO;AAAA,MACH,KAAK;AAAA,MACL,KAAK;AAAA,MACL,kBAAkB;AAAA,MAClB,yBAAyB;AAAA,MACzB,iCAAiC;AAAA;AAAA,MACjC,iCAAiC,kBAAkB;AAAA,MACnD,mBAAmB;AAAA,MACnB,eACI,WAAW,aACL,aAAa,eACb,WAAW,aACT,aAAa,eACb,aAAa;AAAA,IAC7B;AAAA,EACJ;AACJ;",
5
+ "names": ["endpointId", "clusterId", "eventId", "data", "attributeId"]
6
6
  }
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * Handles polling of custom cluster attributes that don't support subscriptions.
8
+ * This is primarily for Eve Energy devices that expose power measurements via
9
+ * a custom cluster without standard Matter subscription support.
10
+ */
11
+ import { NodeId } from "@matter/main";
12
+ import { AttributesData } from "../types/CommandHandler.js";
13
+ type AttributePath = string;
14
+ export interface NodeAttributeReader {
15
+ handleReadAttributes(nodeId: NodeId, attributePaths: string[], fabricFiltered?: boolean): Promise<AttributesData>;
16
+ }
17
+ /**
18
+ * Check if a node needs custom attribute polling based on its attributes.
19
+ *
20
+ * A node needs polling if:
21
+ * 1. It has Eve vendor ID (4874) at endpoint 0/40/2 (BasicInformation.VendorID)
22
+ * 2. It has Eve custom cluster (0x130AFC01) with energy attributes
23
+ * 3. It does NOT have the standard ElectricalPowerMeasurement cluster (0x0090)
24
+ */
25
+ export declare function checkPolledAttributes(attributes: AttributesData): Set<AttributePath>;
26
+ /**
27
+ * Manages polling of custom cluster attributes for multiple nodes.
28
+ */
29
+ export declare class CustomClusterPoller {
30
+ #private;
31
+ constructor(attributeReader: NodeAttributeReader);
32
+ /**
33
+ * Register a node for polling if it has custom attributes that need polling.
34
+ * Call this after a node is connected and its attributes are available.
35
+ */
36
+ registerNode(nodeId: NodeId, attributes: AttributesData): void;
37
+ /**
38
+ * Unregister a node from polling (e.g., when decommissioned or disconnected).
39
+ */
40
+ unregisterNode(nodeId: NodeId): void;
41
+ /**
42
+ * Stop all polling and cleanup.
43
+ */
44
+ stop(): void;
45
+ }
46
+ export {};
47
+ //# sourceMappingURL=CustomClusterPoller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomClusterPoller.d.ts","sourceRoot":"","sources":["../../../src/controller/CustomClusterPoller.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;GAIG;AAEH,OAAO,EAA+C,MAAM,EAAe,MAAM,cAAc,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AA4B5D,KAAK,aAAa,GAAG,MAAM,CAAC;AAE5B,MAAM,WAAW,mBAAmB;IAChC,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACrH;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,cAAc,GAAG,GAAG,CAAC,aAAa,CAAC,CAoDpF;AAED;;GAEG;AACH,qBAAa,mBAAmB;;gBAQhB,eAAe,EAAE,mBAAmB;IAMhD;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,GAAG,IAAI;IAkB9D;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IASpC;;OAEG;IACH,IAAI,IAAI,IAAI;CAsFf"}
@@ -0,0 +1,171 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Duration, Logger, Millis, Time } from "@matter/main";
7
+ const logger = Logger.get("CustomClusterPoller");
8
+ const VENDOR_ID_EVE = 4874;
9
+ const EVE_CLUSTER_ID = 319486977;
10
+ const EVE_ENERGY_ATTRIBUTE_IDS = {
11
+ watt: 319422474,
12
+ wattAccumulated: 319422475,
13
+ voltage: 319422472,
14
+ current: 319422473
15
+ };
16
+ const ELECTRICAL_POWER_MEASUREMENT_CLUSTER_ID = 144;
17
+ const POLLING_INTERVAL_MS = 3e4;
18
+ const MAX_INITIAL_DELAY_MS = 3e4;
19
+ function checkPolledAttributes(attributes) {
20
+ const polledAttributes = /* @__PURE__ */ new Set();
21
+ const vendorId = attributes["0/40/2"];
22
+ if (vendorId !== VENDOR_ID_EVE) {
23
+ return polledAttributes;
24
+ }
25
+ const eveEndpoints = /* @__PURE__ */ new Set();
26
+ for (const attrPath of Object.keys(attributes)) {
27
+ const [endpointStr, clusterStr] = attrPath.split("/");
28
+ const clusterId = Number(clusterStr);
29
+ if (clusterId === EVE_CLUSTER_ID) {
30
+ eveEndpoints.add(Number(endpointStr));
31
+ }
32
+ }
33
+ if (eveEndpoints.size === 0) {
34
+ return polledAttributes;
35
+ }
36
+ for (const attrPath of Object.keys(attributes)) {
37
+ const [, clusterStr] = attrPath.split("/");
38
+ const clusterId = Number(clusterStr);
39
+ if (clusterId === ELECTRICAL_POWER_MEASUREMENT_CLUSTER_ID) {
40
+ logger.debug("Node has standard ElectricalPowerMeasurement cluster, skipping Eve energy polling");
41
+ return polledAttributes;
42
+ }
43
+ }
44
+ for (const endpoint of eveEndpoints) {
45
+ for (const [, attributeId] of Object.entries(EVE_ENERGY_ATTRIBUTE_IDS)) {
46
+ const attrPath = `${endpoint}/${EVE_CLUSTER_ID}/${attributeId}`;
47
+ if (attributes[attrPath] !== void 0) {
48
+ polledAttributes.add(attrPath);
49
+ }
50
+ }
51
+ }
52
+ if (polledAttributes.size > 0) {
53
+ logger.info(`Eve device detected, will poll ${polledAttributes.size} energy attributes`);
54
+ }
55
+ return polledAttributes;
56
+ }
57
+ class CustomClusterPoller {
58
+ #polledAttributes = /* @__PURE__ */ new Map();
59
+ #pollerTimer;
60
+ #attributeReader;
61
+ #isPolling = false;
62
+ #currentDelayPromise;
63
+ #closed = false;
64
+ constructor(attributeReader) {
65
+ this.#attributeReader = attributeReader;
66
+ const delay = Millis(Math.random() * MAX_INITIAL_DELAY_MS);
67
+ this.#pollerTimer = Time.getTimer("eve-poller", delay, () => this.#pollAllNodes());
68
+ }
69
+ /**
70
+ * Register a node for polling if it has custom attributes that need polling.
71
+ * Call this after a node is connected and its attributes are available.
72
+ */
73
+ registerNode(nodeId, attributes) {
74
+ const attributesToPoll = checkPolledAttributes(attributes);
75
+ if (attributesToPoll.size === 0) {
76
+ this.unregisterNode(nodeId);
77
+ return;
78
+ }
79
+ this.#polledAttributes.set(nodeId, attributesToPoll);
80
+ logger.info(
81
+ `Registered node ${nodeId} for custom attribute polling: ${Array.from(attributesToPoll).join(", ")}`
82
+ );
83
+ this.#schedulePoller();
84
+ }
85
+ /**
86
+ * Unregister a node from polling (e.g., when decommissioned or disconnected).
87
+ */
88
+ unregisterNode(nodeId) {
89
+ if (this.#polledAttributes.delete(nodeId)) {
90
+ logger.info(`Unregistered node ${nodeId} from custom attribute polling`);
91
+ }
92
+ if (this.#polledAttributes.size === 0) {
93
+ this.#pollerTimer.stop();
94
+ }
95
+ }
96
+ /**
97
+ * Stop all polling and cleanup.
98
+ */
99
+ stop() {
100
+ this.#closed = true;
101
+ this.#currentDelayPromise?.cancel(new Error("Close"));
102
+ this.#pollerTimer?.stop();
103
+ this.#polledAttributes.clear();
104
+ logger.info("Custom attribute poller stopped");
105
+ }
106
+ /**
107
+ * Schedule the next polling cycle.
108
+ * Uses a random initial delay (0-30s) on first run to stagger startup,
109
+ * then polls every 30s thereafter.
110
+ */
111
+ #schedulePoller() {
112
+ if (this.#polledAttributes.size === 0 || this.#closed) {
113
+ return;
114
+ }
115
+ if (this.#pollerTimer?.isRunning || this.#isPolling) {
116
+ return;
117
+ }
118
+ this.#pollerTimer.start();
119
+ logger.info(`Scheduling custom attribute poll in ${Duration.format(this.#pollerTimer.interval)}`);
120
+ }
121
+ /**
122
+ * Poll all registered nodes for their custom attributes.
123
+ */
124
+ async #pollAllNodes() {
125
+ if (this.#isPolling) {
126
+ return;
127
+ }
128
+ const targetInterval = Millis(POLLING_INTERVAL_MS);
129
+ if (this.#pollerTimer.interval !== targetInterval) {
130
+ this.#pollerTimer.interval = targetInterval;
131
+ }
132
+ this.#isPolling = true;
133
+ try {
134
+ const entries = Array.from(this.#polledAttributes.entries());
135
+ for (let i = 0; i < entries.length; i++) {
136
+ const [nodeId, attributePaths] = entries[i];
137
+ if (!this.#polledAttributes.has(nodeId)) {
138
+ continue;
139
+ }
140
+ await this.#pollNode(nodeId, attributePaths);
141
+ if (i < entries.length - 1) {
142
+ this.#currentDelayPromise = Time.sleep("sleep", Millis(1e3)).finally(() => {
143
+ this.#currentDelayPromise = void 0;
144
+ });
145
+ await this.#currentDelayPromise;
146
+ }
147
+ }
148
+ } finally {
149
+ this.#isPolling = false;
150
+ this.#schedulePoller();
151
+ }
152
+ }
153
+ /**
154
+ * Poll a single node for its custom attributes.
155
+ * The read will automatically trigger change events through the normal attribute flow.
156
+ */
157
+ async #pollNode(nodeId, attributePaths) {
158
+ const paths = Array.from(attributePaths);
159
+ logger.debug(`Polling ${paths.length} custom attributes for node ${nodeId}`);
160
+ try {
161
+ await this.#attributeReader.handleReadAttributes(nodeId, paths, true);
162
+ } catch (error) {
163
+ logger.warn(`Failed to poll custom attributes for node ${nodeId}: `, error);
164
+ }
165
+ }
166
+ }
167
+ export {
168
+ CustomClusterPoller,
169
+ checkPolledAttributes
170
+ };
171
+ //# sourceMappingURL=CustomClusterPoller.js.map