@project-chip/matter.js 0.16.0-alpha.0-20250930-05e6cc3f8 → 0.16.0-alpha.0-20251003-dc6d5523d

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 (49) hide show
  1. package/dist/cjs/CommissioningController.d.ts +2 -2
  2. package/dist/cjs/CommissioningController.d.ts.map +1 -1
  3. package/dist/cjs/CommissioningController.js +2 -2
  4. package/dist/cjs/CommissioningController.js.map +1 -1
  5. package/dist/cjs/MatterController.d.ts +6 -6
  6. package/dist/cjs/MatterController.d.ts.map +1 -1
  7. package/dist/cjs/MatterController.js +12 -12
  8. package/dist/cjs/MatterController.js.map +1 -1
  9. package/dist/cjs/PaseCommissioner.js +1 -1
  10. package/dist/cjs/PaseCommissioner.js.map +1 -1
  11. package/dist/cjs/device/CachedClientNodeStore.d.ts +5 -4
  12. package/dist/cjs/device/CachedClientNodeStore.d.ts.map +1 -1
  13. package/dist/cjs/device/CachedClientNodeStore.js +19 -2
  14. package/dist/cjs/device/CachedClientNodeStore.js.map +1 -1
  15. package/dist/cjs/device/Endpoint.d.ts +1 -1
  16. package/dist/cjs/device/Endpoint.d.ts.map +1 -1
  17. package/dist/cjs/device/Endpoint.js.map +1 -1
  18. package/dist/cjs/device/PairedNode.d.ts +52 -28
  19. package/dist/cjs/device/PairedNode.d.ts.map +1 -1
  20. package/dist/cjs/device/PairedNode.js +191 -76
  21. package/dist/cjs/device/PairedNode.js.map +1 -1
  22. package/dist/esm/CommissioningController.d.ts +2 -2
  23. package/dist/esm/CommissioningController.d.ts.map +1 -1
  24. package/dist/esm/CommissioningController.js +3 -3
  25. package/dist/esm/CommissioningController.js.map +1 -1
  26. package/dist/esm/MatterController.d.ts +6 -6
  27. package/dist/esm/MatterController.d.ts.map +1 -1
  28. package/dist/esm/MatterController.js +13 -13
  29. package/dist/esm/MatterController.js.map +1 -1
  30. package/dist/esm/PaseCommissioner.js +1 -1
  31. package/dist/esm/PaseCommissioner.js.map +1 -1
  32. package/dist/esm/device/CachedClientNodeStore.d.ts +5 -4
  33. package/dist/esm/device/CachedClientNodeStore.d.ts.map +1 -1
  34. package/dist/esm/device/CachedClientNodeStore.js +19 -2
  35. package/dist/esm/device/CachedClientNodeStore.js.map +1 -1
  36. package/dist/esm/device/Endpoint.d.ts +1 -1
  37. package/dist/esm/device/Endpoint.d.ts.map +1 -1
  38. package/dist/esm/device/Endpoint.js.map +1 -1
  39. package/dist/esm/device/PairedNode.d.ts +52 -28
  40. package/dist/esm/device/PairedNode.d.ts.map +1 -1
  41. package/dist/esm/device/PairedNode.js +192 -77
  42. package/dist/esm/device/PairedNode.js.map +1 -1
  43. package/package.json +8 -8
  44. package/src/CommissioningController.ts +3 -3
  45. package/src/MatterController.ts +18 -18
  46. package/src/PaseCommissioner.ts +1 -1
  47. package/src/device/CachedClientNodeStore.ts +24 -4
  48. package/src/device/Endpoint.ts +1 -1
  49. package/src/device/PairedNode.ts +286 -88
@@ -3,9 +3,10 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { Descriptor } from "#clusters";
6
7
  import { AsyncObservable, BasicSet, Construction, Crypto, Diagnostic, MatterError, Observable } from "#general";
7
8
  import { Behavior, Commands } from "#node";
8
- import { ClusterClientObj, DecodedAttributeReportValue, DecodedEventReportValue, InteractionClient, NodeDiscoveryType, NodeSession } from "#protocol";
9
+ import { AttributeClientValues, ClusterClientObj, DecodedAttributeReportValue, DecodedEventReportValue, InteractionClient, NodeDiscoveryType, NodeSession, StructuredReadAttributeData } from "#protocol";
9
10
  import { CaseAuthenticatedTag, ClusterId, ClusterType, EndpointNumber, NodeId } from "#types";
10
11
  import { ClusterServerObj } from "../cluster/server/ClusterServerTypes.js";
11
12
  import { CommissioningController } from "../CommissioningController.js";
@@ -120,6 +121,7 @@ export type CommissioningControllerNodeOptions = {
120
121
  };
121
122
  export declare class NodeNotConnectedError extends MatterError {
122
123
  }
124
+ type DescriptorData = AttributeClientValues<typeof Descriptor.Complete.attributes>;
123
125
  /**
124
126
  * Class to represents one node that is paired/commissioned with the matter.js Controller. Instances are returned by
125
127
  * the CommissioningController on commissioning or when connecting.
@@ -128,33 +130,7 @@ export declare class PairedNode {
128
130
  #private;
129
131
  [Diagnostic.value]: unknown;
130
132
  readonly nodeId: NodeId;
131
- readonly events: {
132
- /**
133
- * Emitted when the node is initialized from local data. These data usually are stale, but you can still already
134
- * use the node to interact with the device. If no local data are available this event will be emitted together
135
- * with the initializedFromRemote event.
136
- */
137
- initialized: AsyncObservable<[details: DeviceInformationData], void>;
138
- /**
139
- * Emitted when the node is fully initialized from remote and all attributes and events are subscribed.
140
- * This event can also be awaited if code needs to be blocked until the node is fully initialized.
141
- */
142
- initializedFromRemote: AsyncObservable<[details: DeviceInformationData], void>;
143
- /** Emitted when the state of the node changes. */
144
- stateChanged: Observable<[nodeState: NodeStates], void>;
145
- /**
146
- * Emitted when an attribute value changes. If the oldValue is undefined then no former value was known.
147
- */
148
- attributeChanged: Observable<[data: DecodedAttributeReportValue<any>, oldValue: any], void>;
149
- /** Emitted when an event is triggered. */
150
- eventTriggered: Observable<[DecodedEventReportValue<any>], void>;
151
- /** Emitted when the structure of the node changes (Endpoints got added or also removed). */
152
- structureChanged: Observable<[void], void>;
153
- /** Emitted when the node is decommissioned. */
154
- decommissioned: Observable<[void], void>;
155
- /** Emitted when a subscription alive trigger is received (max interval trigger or any data update) */
156
- connectionAlive: Observable<[void], void>;
157
- };
133
+ readonly events: PairedNode.Events;
158
134
  static create(nodeId: NodeId, commissioningController: CommissioningController, options: CommissioningControllerNodeOptions | undefined, knownNodeDetails: DeviceInformationData, interactionClient: InteractionClient, reconnectFunc: ReconnectionCallback, assignDisconnectedHandler: (handler: () => Promise<void>) => void, sessions: BasicSet<NodeSession>, crypto: Crypto, storedAttributeData?: DecodedAttributeReportValue<any>[]): Promise<PairedNode>;
159
135
  constructor(nodeId: NodeId, commissioningController: CommissioningController, options: CommissioningControllerNodeOptions | undefined, knownNodeDetails: DeviceInformationData, interactionClient: InteractionClient, reconnectFunc: ReconnectionCallback, assignDisconnectedHandler: (handler: () => Promise<void>) => void, sessions: BasicSet<NodeSession, NodeSession>, crypto: Crypto, storedAttributeData?: DecodedAttributeReportValue<any>[]);
160
136
  get construction(): Construction<PairedNode>;
@@ -217,6 +193,12 @@ export declare class PairedNode {
217
193
  }>;
218
194
  /** Read all attributes of the devices and return them. If a stored state exists this is used to minimize needed traffic. */
219
195
  readAllAttributes(): Promise<DecodedAttributeReportValue<any>[]>;
196
+ /**
197
+ * Traverse the structure data and collect all data for the given endpointId.
198
+ * Return true if data for the endpoint was found, otherwise false.
199
+ * If data was found it is added to the collectedData map.
200
+ */
201
+ collectDescriptorData(structure: StructuredReadAttributeData, endpointId: EndpointNumber, collectedData: Map<EndpointNumber, DescriptorData>): void;
220
202
  /** Returns all parts (endpoints) known for the Root Endpoint of this node. */
221
203
  get parts(): Map<number, Endpoint>;
222
204
  /** Returns the functional devices/endpoints (the "childs" of the Root Endpoint) known for this node. */
@@ -307,4 +289,46 @@ export declare class PairedNode {
307
289
  */
308
290
  commandsOf<T extends Behavior.Type>(type: T): Commands.OfBehavior<T>;
309
291
  }
292
+ export declare namespace PairedNode {
293
+ interface NodeStructureEvents {
294
+ /** Emitted when endpoints are added. */
295
+ nodeEndpointAdded: Observable<[EndpointNumber]>;
296
+ /** Emitted when endpoints are removed. */
297
+ nodeEndpointRemoved: Observable<[EndpointNumber]>;
298
+ /** Emitted when endpoints are updated (e.g. device type changed, structure changed). */
299
+ nodeEndpointChanged: Observable<[EndpointNumber]>;
300
+ }
301
+ interface Events extends NodeStructureEvents {
302
+ /**
303
+ * Emitted when the node is initialized from local data. These data usually are stale, but you can still already
304
+ * use the node to interact with the device. If no local data are available this event will be emitted together
305
+ * with the initializedFromRemote event.
306
+ */
307
+ initialized: AsyncObservable<[details: DeviceInformationData]>;
308
+ /**
309
+ * Emitted when the node is fully initialized from remote and all attributes and events are subscribed.
310
+ * This event can also be awaited if code needs to be blocked until the node is fully initialized.
311
+ */
312
+ initializedFromRemote: AsyncObservable<[details: DeviceInformationData]>;
313
+ /** Emitted when the state of the node changes. */
314
+ stateChanged: Observable<[nodeState: NodeStates]>;
315
+ /**
316
+ * Emitted when an attribute value changes. If the oldValue is undefined then no former value was known.
317
+ */
318
+ attributeChanged: Observable<[data: DecodedAttributeReportValue<any>, oldValue: any]>;
319
+ /** Emitted when an event is triggered. */
320
+ eventTriggered: Observable<[DecodedEventReportValue<any>]>;
321
+ /**
322
+ * Emitted when all node structure changes were applied (Endpoints got added or also removed).
323
+ * You can alternatively use the nodeEndpointAdded, nodeEndpointRemoved and nodeEndpointChanged events to react on specific changes.
324
+ * This event is emitted after all nodeEndpointAdded, nodeEndpointRemoved and nodeEndpointChanged events are emitted.
325
+ */
326
+ structureChanged: Observable<[void]>;
327
+ /** Emitted when the node is decommissioned. */
328
+ decommissioned: Observable<[void]>;
329
+ /** Emitted when a subscription alive trigger is received (max interval trigger or any data update) */
330
+ connectionAlive: Observable<[void]>;
331
+ }
332
+ }
333
+ export {};
310
334
  //# sourceMappingURL=PairedNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PairedNode.d.ts","sourceRoot":"","sources":["../../../src/device/PairedNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PairedNode.d.ts","sourceRoot":"","sources":["../../../src/device/PairedNode.ts"],"names":[],"mappings":"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"}
@@ -66,6 +66,15 @@ var NodeStateInformation = /* @__PURE__ */ ((NodeStateInformation2) => {
66
66
  })(NodeStateInformation || {});
67
67
  class NodeNotConnectedError extends import_general.MatterError {
68
68
  }
69
+ function areNumberListsSame(list1, list2) {
70
+ const set1 = new Set(list1);
71
+ const set2 = new Set(list2);
72
+ if (set1.size !== set2.size) return false;
73
+ for (const entry of set1.values()) {
74
+ if (!set2.has(entry)) return false;
75
+ }
76
+ return true;
77
+ }
69
78
  class PairedNode {
70
79
  constructor(nodeId, commissioningController, options = {}, knownNodeDetails, interactionClient, reconnectFunc, assignDisconnectedHandler, sessions, crypto, storedAttributeData) {
71
80
  this.nodeId = nodeId;
@@ -159,31 +168,23 @@ class PairedNode {
159
168
  #reconnectFunc;
160
169
  #currentSubscriptionIntervalS;
161
170
  #crypto;
171
+ /**
172
+ * Endpoint structure change information that are checked when updating structure
173
+ * - null means that the endpoint itself changed, so will be regenerated completely any case
174
+ * - array of ClusterIds means that only these clusters changed and will be updated
175
+ */
176
+ #registeredEndpointStructureChanges = /* @__PURE__ */ new Map();
162
177
  events = {
163
- /**
164
- * Emitted when the node is initialized from local data. These data usually are stale, but you can still already
165
- * use the node to interact with the device. If no local data are available this event will be emitted together
166
- * with the initializedFromRemote event.
167
- */
168
178
  initialized: (0, import_general.AsyncObservable)(),
169
- /**
170
- * Emitted when the node is fully initialized from remote and all attributes and events are subscribed.
171
- * This event can also be awaited if code needs to be blocked until the node is fully initialized.
172
- */
173
179
  initializedFromRemote: (0, import_general.AsyncObservable)(),
174
- /** Emitted when the state of the node changes. */
175
180
  stateChanged: (0, import_general.Observable)(),
176
- /**
177
- * Emitted when an attribute value changes. If the oldValue is undefined then no former value was known.
178
- */
179
181
  attributeChanged: (0, import_general.Observable)(),
180
- /** Emitted when an event is triggered. */
181
182
  eventTriggered: (0, import_general.Observable)(),
182
- /** Emitted when the structure of the node changes (Endpoints got added or also removed). */
183
183
  structureChanged: (0, import_general.Observable)(),
184
- /** Emitted when the node is decommissioned. */
184
+ nodeEndpointAdded: (0, import_general.Observable)(),
185
+ nodeEndpointRemoved: (0, import_general.Observable)(),
186
+ nodeEndpointChanged: (0, import_general.Observable)(),
185
187
  decommissioned: (0, import_general.Observable)(),
186
- /** Emitted when a subscription alive trigger is received (max interval trigger or any data update) */
187
188
  connectionAlive: (0, import_general.Observable)()
188
189
  };
189
190
  static async create(nodeId, commissioningController, options = {}, knownNodeDetails, interactionClient, reconnectFunc, assignDisconnectedHandler, sessions, crypto, storedAttributeData) {
@@ -398,7 +399,7 @@ class PairedNode {
398
399
  })) {
399
400
  return;
400
401
  }
401
- await this.#initializeEndpointStructure(storedAttributeData);
402
+ await this.#initializeEndpointStructure(storedAttributeData, false);
402
403
  await this.events.initialized.emit(this.#nodeDetails.toStorageData());
403
404
  this.#localInitializationDone = true;
404
405
  }
@@ -436,7 +437,7 @@ class PairedNode {
436
437
  if (attributeReports === void 0) {
437
438
  throw new import_general.InternalError("No attribute reports received when subscribing to all values!");
438
439
  }
439
- await this.#initializeEndpointStructure(attributeReports, anyInitializationDone);
440
+ await this.#initializeEndpointStructure(attributeReports);
440
441
  this.#remoteInitializationInProgress = false;
441
442
  if (!deviceDetailsUpdated) {
442
443
  const rootEndpoint = this.getRootEndpoint();
@@ -447,7 +448,7 @@ class PairedNode {
447
448
  this.#currentSubscriptionIntervalS = maxInterval;
448
449
  } else {
449
450
  const allClusterAttributes = await this.readAllAttributes();
450
- await this.#initializeEndpointStructure(allClusterAttributes, anyInitializationDone);
451
+ await this.#initializeEndpointStructure(allClusterAttributes);
451
452
  this.#remoteInitializationInProgress = false;
452
453
  }
453
454
  if (!this.#remoteInitializationDone) {
@@ -586,18 +587,21 @@ class PairedNode {
586
587
  this.#reconnectDelayTimer = void 0;
587
588
  this.#setConnectionState(0 /* Connected */);
588
589
  }
590
+ if (this.#remoteInitializationDone && this.#registeredEndpointStructureChanges.size > 0 && !this.#updateEndpointStructureTimer.isRunning) {
591
+ logger.info(`Node ${this.nodeId}: Endpoint structure needs to be updated ...`);
592
+ this.#updateEndpointStructureTimer.stop().start();
593
+ }
589
594
  this.events.connectionAlive.emit();
590
595
  }
591
596
  };
592
597
  this.#currentSubscriptionHandler = subscriptionHandler;
593
598
  const maxKnownEventNumber = this.#interactionClient.maxKnownEventNumber;
594
- const attributeData = await this.#interactionClient.getAllAttributes({
599
+ await this.#interactionClient.getAllAttributes({
595
600
  dataVersionFilters: this.#interactionClient.getCachedClusterDataVersions(),
596
- executeQueued: !!threadConnected
601
+ executeQueued: !!threadConnected,
597
602
  // We queue subscriptions for thread devices
603
+ attributeChangeListener: subscriptionHandler.attributeListener
598
604
  });
599
- await this.#interactionClient.processAttributeUpdates(attributeData, subscriptionHandler.attributeListener);
600
- attributeData.length = 0;
601
605
  const initialSubscriptionData = await this.#interactionClient.subscribeAllAttributesAndEvents({
602
606
  isUrgent: true,
603
607
  minIntervalFloorSeconds,
@@ -623,30 +627,31 @@ class PairedNode {
623
627
  enrichCachedAttributeData: true
624
628
  });
625
629
  }
626
- #checkAttributesForNeededStructureUpdate(_endpointId, clusterId, attributeId) {
627
- let structureUpdateNeeded = false;
628
- if (clusterId === import_clusters.DescriptorCluster.id) {
630
+ #checkAttributesForNeededStructureUpdate(endpointId, clusterId, attributeId) {
631
+ if (clusterId === import_clusters.Descriptor.Complete.id) {
629
632
  switch (attributeId) {
630
- case import_clusters.DescriptorCluster.attributes.partsList.id:
631
- case import_clusters.DescriptorCluster.attributes.serverList.id:
632
- case import_clusters.DescriptorCluster.attributes.deviceTypeList.id:
633
- structureUpdateNeeded = true;
634
- break;
635
- }
636
- }
637
- if (!structureUpdateNeeded) {
638
- switch (attributeId) {
639
- case import_model.FeatureMap.id:
640
- case import_model.AttributeList.id:
641
- case import_model.AcceptedCommandList.id:
642
- case import_model.ClusterRevision.id:
643
- structureUpdateNeeded = true;
644
- break;
633
+ case import_clusters.Descriptor.Complete.attributes.partsList.id:
634
+ case import_clusters.Descriptor.Complete.attributes.serverList.id:
635
+ case import_clusters.Descriptor.Complete.attributes.clientList.id:
636
+ case import_clusters.Descriptor.Complete.attributes.deviceTypeList.id:
637
+ this.#registeredEndpointStructureChanges.set(endpointId, null);
638
+ return;
645
639
  }
646
640
  }
647
- if (structureUpdateNeeded) {
648
- logger.info(`Node ${this.nodeId}: Endpoint structure needs to be updated ...`);
649
- this.#updateEndpointStructureTimer.stop().start();
641
+ switch (attributeId) {
642
+ case import_model.FeatureMap.id:
643
+ case import_model.AttributeList.id:
644
+ case import_model.AcceptedCommandList.id:
645
+ case import_model.ClusterRevision.id:
646
+ let knownForUpdate = this.#registeredEndpointStructureChanges.get(endpointId);
647
+ if (knownForUpdate !== null) {
648
+ knownForUpdate = knownForUpdate ?? [];
649
+ if (!knownForUpdate.includes(clusterId)) {
650
+ knownForUpdate.push(clusterId);
651
+ this.#registeredEndpointStructureChanges.set(endpointId, knownForUpdate);
652
+ }
653
+ }
654
+ break;
650
655
  }
651
656
  }
652
657
  #checkEventsForNeededStructureUpdate(_endpointId, clusterId, eventId) {
@@ -674,55 +679,165 @@ class PairedNode {
674
679
  this.#reconnectDelayTimer.start();
675
680
  }
676
681
  async #updateEndpointStructure() {
677
- const allClusterAttributes = await this.readAllAttributes();
682
+ const allClusterAttributes = this.#interactionClient.getAllCachedClusterData();
678
683
  await this.#initializeEndpointStructure(allClusterAttributes, true);
679
- this.#options.stateInformationCallback?.(this.nodeId, 4 /* StructureChanged */);
680
- this.events.structureChanged.emit();
684
+ }
685
+ /**
686
+ * Traverse the structure data and collect all data for the given endpointId.
687
+ * Return true if data for the endpoint was found, otherwise false.
688
+ * If data was found it is added to the collectedData map.
689
+ */
690
+ collectDescriptorData(structure, endpointId, collectedData) {
691
+ if (collectedData.has(endpointId)) {
692
+ return;
693
+ }
694
+ const endpointData = structure[endpointId];
695
+ const descriptorData = endpointData?.[import_clusters.Descriptor.Complete.id];
696
+ if (endpointData === void 0 || descriptorData === void 0) {
697
+ logger.info(`Descriptor data for endpoint ${endpointId} not found in structure! Ignoring endpoint ...`);
698
+ return;
699
+ }
700
+ collectedData.set(endpointId, descriptorData);
701
+ if (descriptorData.partsList.length) {
702
+ for (const partEndpointId of descriptorData.partsList) {
703
+ this.collectDescriptorData(structure, partEndpointId, collectedData);
704
+ }
705
+ }
706
+ }
707
+ #hasEndpointChanged(device, descriptorData) {
708
+ return !(areNumberListsSame(
709
+ device.getDeviceTypes().map(({ code }) => code),
710
+ descriptorData.deviceTypeList.map(({ deviceType }) => deviceType)
711
+ ) && // Check if the cluster clients are the same - they map to the serverList attribute
712
+ areNumberListsSame(
713
+ device.getAllClusterClients().map(({ id }) => id),
714
+ descriptorData.serverList
715
+ ) && // Check if the cluster servers are the same - they map to the clientList attribute
716
+ areNumberListsSame(
717
+ device.getAllClusterServers().map(({ id }) => id),
718
+ descriptorData.clientList
719
+ ));
681
720
  }
682
721
  /** Reads all data from the device and create a device object structure out of it. */
683
- async #initializeEndpointStructure(allClusterAttributes, updateStructure = false) {
722
+ async #initializeEndpointStructure(allClusterAttributes, updateStructure = this.#localInitializationDone || this.#remoteInitializationDone) {
723
+ if (this.#updateEndpointStructureTimer.isRunning) {
724
+ this.#updateEndpointStructureTimer.stop();
725
+ }
726
+ const eventsToEmit = /* @__PURE__ */ new Map();
727
+ const structureUpdateDetails = this.#registeredEndpointStructureChanges;
728
+ this.#registeredEndpointStructureChanges = /* @__PURE__ */ new Map();
684
729
  const allData = (0, import_protocol.structureReadAttributeDataToClusterObject)(allClusterAttributes);
730
+ const descriptors = /* @__PURE__ */ new Map();
731
+ this.collectDescriptorData(allData, (0, import_types.EndpointNumber)(0), descriptors);
685
732
  if (updateStructure) {
686
733
  const endpointsToRemove = new Set(this.#endpoints.keys());
687
- for (const [endpointId] of Object.entries(allData)) {
688
- const endpointIdNumber = (0, import_types.EndpointNumber)(parseInt(endpointId));
689
- if (this.#endpoints.has(endpointIdNumber)) {
690
- logger.debug(`Node ${this.nodeId}: Retaining device`, endpointId);
691
- endpointsToRemove.delete(endpointIdNumber);
734
+ for (const endpointId of descriptors.keys()) {
735
+ const device = this.#endpoints.get(endpointId);
736
+ if (device !== void 0) {
737
+ const hasChanged = structureUpdateDetails.has(endpointId);
738
+ if (!hasChanged || !this.#hasEndpointChanged(device, descriptors.get(endpointId))) {
739
+ logger.debug(
740
+ `Node ${this.nodeId}: Retaining endpoint`,
741
+ endpointId,
742
+ hasChanged ? "(with only structure changes)" : "(unchanged)"
743
+ );
744
+ endpointsToRemove.delete(endpointId);
745
+ if (hasChanged) {
746
+ eventsToEmit.set(endpointId, "nodeEndpointChanged");
747
+ }
748
+ } else {
749
+ logger.debug(`Node ${this.nodeId}: Recreating endpoint`, endpointId);
750
+ eventsToEmit.set(endpointId, "nodeEndpointChanged");
751
+ }
692
752
  }
693
753
  }
694
- for (const endpointId of endpointsToRemove.values()) {
695
- logger.debug(`Node ${this.nodeId}: Removing device`, endpointId);
696
- this.#endpoints.get(endpointId)?.removeFromStructure();
697
- this.#endpoints.delete(endpointId);
754
+ for (const endpoint of endpointsToRemove.values()) {
755
+ const endpointId = (0, import_types.EndpointNumber)(endpoint);
756
+ const device = this.#endpoints.get(endpointId);
757
+ if (device !== void 0) {
758
+ if (eventsToEmit.get(endpointId) !== "nodeEndpointChanged") {
759
+ logger.debug(`Node ${this.nodeId}: Removing endpoint`, endpointId);
760
+ eventsToEmit.set(endpointId, "nodeEndpointRemoved");
761
+ }
762
+ device.removeFromStructure();
763
+ this.#endpoints.delete(endpointId);
764
+ }
698
765
  }
699
766
  } else {
700
767
  this.#endpoints.clear();
701
768
  }
702
- const partLists = /* @__PURE__ */ new Map();
703
- for (const [endpointId, clusters] of Object.entries(allData)) {
704
- const endpointIdNumber = (0, import_types.EndpointNumber)(parseInt(endpointId));
705
- const descriptorData = clusters[import_clusters.DescriptorCluster.id];
706
- partLists.set(endpointIdNumber, descriptorData.partsList);
707
- if (this.#endpoints.has(endpointIdNumber)) {
769
+ for (const endpointId of descriptors.keys()) {
770
+ const clusters = allData[endpointId];
771
+ if (this.#endpoints.has(endpointId)) {
708
772
  continue;
709
773
  }
710
- logger.debug(`Node ${this.nodeId}: Creating device`, endpointId, import_general.Diagnostic.json(clusters));
711
- this.#endpoints.set(
712
- endpointIdNumber,
713
- this.#createDevice(endpointIdNumber, clusters, this.#interactionClient)
774
+ const isRecreation = eventsToEmit.get(endpointId) === "nodeEndpointChanged";
775
+ logger.debug(
776
+ `Node ${this.nodeId}: ${isRecreation ? "Recreating" : "Creating"} endpoint`,
777
+ endpointId,
778
+ import_general.Diagnostic.json(clusters)
714
779
  );
780
+ this.#endpoints.set(endpointId, this.#createDevice(endpointId, clusters, this.#interactionClient));
781
+ if (!isRecreation) {
782
+ eventsToEmit.set(endpointId, "nodeEndpointAdded");
783
+ }
784
+ }
785
+ for (const [endpointId, { partsList }] of descriptors.entries()) {
786
+ const endpoint = this.#endpoints.get(endpointId);
787
+ if (endpoint === void 0) {
788
+ continue;
789
+ }
790
+ endpoint.getChildEndpoints().forEach((child) => {
791
+ if (child.number !== void 0 && !partsList.includes(child.number)) {
792
+ endpoint.removeChildEndpoint(child);
793
+ if (!eventsToEmit.has(endpointId)) {
794
+ eventsToEmit.set(endpointId, "nodeEndpointChanged");
795
+ }
796
+ }
797
+ });
798
+ }
799
+ this.#structureEndpoints(descriptors);
800
+ if (updateStructure && eventsToEmit.size) {
801
+ for (const [endpointId, eventName] of eventsToEmit.entries()) {
802
+ if (eventName !== "nodeEndpointAdded") {
803
+ const clusterServers = descriptors.get(endpointId)?.serverList;
804
+ await this.#interactionClient.cleanupAttributeData(
805
+ endpointId,
806
+ eventName === "nodeEndpointRemoved" ? void 0 : clusterServers
807
+ );
808
+ }
809
+ }
810
+ const emitChangeEvents = () => {
811
+ for (const [endpointId, eventName] of eventsToEmit.entries()) {
812
+ logger.debug(`Node ${this.nodeId}: Emitting event ${eventName} for endpoint ${endpointId}`);
813
+ this.events[eventName].emit(endpointId);
814
+ }
815
+ this.#options.stateInformationCallback?.(this.nodeId, 4 /* StructureChanged */);
816
+ this.events.structureChanged.emit();
817
+ };
818
+ if (this.#connectionState === 0 /* Connected */) {
819
+ emitChangeEvents();
820
+ } else {
821
+ this.events.stateChanged.once((State) => {
822
+ if (State === 0 /* Connected */) {
823
+ emitChangeEvents();
824
+ }
825
+ });
826
+ }
715
827
  }
716
- this.#structureEndpoints(partLists);
717
828
  }
718
- /** Bring the endpoints in a structure based on their partsList attribute. */
719
- #structureEndpoints(partLists) {
720
- logger.debug(
721
- `Node ${this.nodeId}: Endpoints from PartsLists`,
722
- import_general.Diagnostic.json(Array.from(partLists.entries()))
829
+ /**
830
+ * Bring the endpoints in a structure based on their partsList attribute. This method only adds endpoints into the
831
+ * right place as children, Cleanup is not happening here
832
+ */
833
+ #structureEndpoints(descriptors) {
834
+ const partLists = Array.from(descriptors.entries()).map(
835
+ ([ep, { partsList }]) => [ep, partsList]
836
+ // else Typescript gets confused
723
837
  );
838
+ logger.debug(`Node ${this.nodeId}: Endpoints from PartsLists`, import_general.Diagnostic.json(partLists));
724
839
  const endpointUsages = {};
725
- Array.from(partLists.entries()).forEach(
840
+ partLists.forEach(
726
841
  ([parent, partsList]) => partsList.forEach((endPoint) => {
727
842
  if (endPoint === parent) {
728
843
  logger.warn(`Node ${this.nodeId}: Endpoint ${endPoint} is referencing itself!`);
@@ -775,7 +890,7 @@ class PairedNode {
775
890
  }
776
891
  /** Create a device object from the data read from the device. */
777
892
  #createDevice(endpointId, data, interactionClient) {
778
- const descriptorData = data[import_clusters.DescriptorCluster.id];
893
+ const descriptorData = data[import_clusters.Descriptor.Complete.id];
779
894
  const deviceTypes = descriptorData.deviceTypeList.flatMap(({ deviceType, revision }) => {
780
895
  const deviceTypeDefinition = (0, import_DeviceTypes.getDeviceTypeDefinitionFromModelByCode)(deviceType);
781
896
  if (deviceTypeDefinition === void 0) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/device/PairedNode.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["NodeStates", "NodeStateInformation"]
6
6
  }
@@ -3,7 +3,7 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { ClassExtends, Crypto, Environment, NetInterfaceSet, Network } from "#general";
6
+ import { ClassExtends, ConnectionlessTransportSet, Crypto, Environment, Network } from "#general";
7
7
  import { Ble, CommissionableDevice, CommissionableDeviceIdentifiers, ControllerCommissioningFlow, DiscoveryAndCommissioningOptions, DiscoveryData, InteractionClient, MdnsClient, MdnsServer, MessageChannel, NodeDiscoveryType, ScannerSet } from "#protocol";
8
8
  import { CaseAuthenticatedTag, DiscoveryCapabilitiesBitmap, FabricId, FabricIndex, NodeId, TypeFromPartialBitSchema, VendorId } from "#types";
9
9
  import { CertificateAuthority, Fabric } from "@matter/protocol";
@@ -251,7 +251,7 @@ export declare function configureNetwork(options: {
251
251
  listeningAddressIpv6?: string;
252
252
  listeningAddressIpv4?: string;
253
253
  }): Promise<{
254
- netInterfaces: NetInterfaceSet;
254
+ netInterfaces: ConnectionlessTransportSet<import("#general").ConnectionlessTransport>;
255
255
  scanners: ScannerSet;
256
256
  port: number;
257
257
  }>;