@project-chip/matter.js 0.15.3 → 0.15.5

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 (42) hide show
  1. package/dist/cjs/CommissioningController.d.ts +1 -1
  2. package/dist/cjs/CommissioningController.d.ts.map +1 -1
  3. package/dist/cjs/CommissioningController.js +9 -18
  4. package/dist/cjs/CommissioningController.js.map +1 -1
  5. package/dist/cjs/MatterController.d.ts.map +1 -1
  6. package/dist/cjs/MatterController.js +2 -2
  7. package/dist/cjs/MatterController.js.map +1 -1
  8. package/dist/cjs/device/CachedClientNodeStore.d.ts +4 -3
  9. package/dist/cjs/device/CachedClientNodeStore.d.ts.map +1 -1
  10. package/dist/cjs/device/CachedClientNodeStore.js +19 -2
  11. package/dist/cjs/device/CachedClientNodeStore.js.map +1 -1
  12. package/dist/cjs/device/Endpoint.d.ts +1 -1
  13. package/dist/cjs/device/Endpoint.d.ts.map +1 -1
  14. package/dist/cjs/device/Endpoint.js.map +1 -1
  15. package/dist/cjs/device/PairedNode.d.ts +52 -28
  16. package/dist/cjs/device/PairedNode.d.ts.map +1 -1
  17. package/dist/cjs/device/PairedNode.js +197 -78
  18. package/dist/cjs/device/PairedNode.js.map +1 -1
  19. package/dist/esm/CommissioningController.d.ts +1 -1
  20. package/dist/esm/CommissioningController.d.ts.map +1 -1
  21. package/dist/esm/CommissioningController.js +9 -18
  22. package/dist/esm/CommissioningController.js.map +1 -1
  23. package/dist/esm/MatterController.d.ts.map +1 -1
  24. package/dist/esm/MatterController.js +2 -3
  25. package/dist/esm/MatterController.js.map +1 -1
  26. package/dist/esm/device/CachedClientNodeStore.d.ts +4 -3
  27. package/dist/esm/device/CachedClientNodeStore.d.ts.map +1 -1
  28. package/dist/esm/device/CachedClientNodeStore.js +19 -2
  29. package/dist/esm/device/CachedClientNodeStore.js.map +1 -1
  30. package/dist/esm/device/Endpoint.d.ts +1 -1
  31. package/dist/esm/device/Endpoint.d.ts.map +1 -1
  32. package/dist/esm/device/Endpoint.js.map +1 -1
  33. package/dist/esm/device/PairedNode.d.ts +52 -28
  34. package/dist/esm/device/PairedNode.d.ts.map +1 -1
  35. package/dist/esm/device/PairedNode.js +198 -79
  36. package/dist/esm/device/PairedNode.js.map +1 -1
  37. package/package.json +8 -8
  38. package/src/CommissioningController.ts +10 -18
  39. package/src/MatterController.ts +3 -4
  40. package/src/device/CachedClientNodeStore.ts +24 -4
  41. package/src/device/Endpoint.ts +1 -1
  42. package/src/device/PairedNode.ts +293 -91
@@ -3,7 +3,7 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { AdministratorCommissioning, BasicInformation, DescriptorCluster, OperationalCredentials } from "#clusters";
6
+ import { AdministratorCommissioning, BasicInformation, Descriptor, OperationalCredentials } from "#clusters";
7
7
  import {
8
8
  AsyncObservable,
9
9
  Construction,
@@ -70,6 +70,15 @@ var NodeStateInformation = /* @__PURE__ */ ((NodeStateInformation2) => {
70
70
  })(NodeStateInformation || {});
71
71
  class NodeNotConnectedError extends MatterError {
72
72
  }
73
+ function areNumberListsSame(list1, list2) {
74
+ const set1 = new Set(list1);
75
+ const set2 = new Set(list2);
76
+ if (set1.size !== set2.size) return false;
77
+ for (const entry of set1.values()) {
78
+ if (!set2.has(entry)) return false;
79
+ }
80
+ return true;
81
+ }
73
82
  class PairedNode {
74
83
  constructor(nodeId, commissioningController, options = {}, knownNodeDetails, interactionClient, reconnectFunc, assignDisconnectedHandler, sessions, crypto, storedAttributeData) {
75
84
  this.nodeId = nodeId;
@@ -163,31 +172,23 @@ class PairedNode {
163
172
  #reconnectFunc;
164
173
  #currentSubscriptionIntervalS;
165
174
  #crypto;
175
+ /**
176
+ * Endpoint structure change information that are checked when updating structure
177
+ * - null means that the endpoint itself changed, so will be regenerated completely any case
178
+ * - array of ClusterIds means that only these clusters changed and will be updated
179
+ */
180
+ #registeredEndpointStructureChanges = /* @__PURE__ */ new Map();
166
181
  events = {
167
- /**
168
- * Emitted when the node is initialized from local data. These data usually are stale, but you can still already
169
- * use the node to interact with the device. If no local data are available this event will be emitted together
170
- * with the initializedFromRemote event.
171
- */
172
182
  initialized: AsyncObservable(),
173
- /**
174
- * Emitted when the node is fully initialized from remote and all attributes and events are subscribed.
175
- * This event can also be awaited if code needs to be blocked until the node is fully initialized.
176
- */
177
183
  initializedFromRemote: AsyncObservable(),
178
- /** Emitted when the state of the node changes. */
179
184
  stateChanged: Observable(),
180
- /**
181
- * Emitted when an attribute value changes. If the oldValue is undefined then no former value was known.
182
- */
183
185
  attributeChanged: Observable(),
184
- /** Emitted when an event is triggered. */
185
186
  eventTriggered: Observable(),
186
- /** Emitted when the structure of the node changes (Endpoints got added or also removed). */
187
187
  structureChanged: Observable(),
188
- /** Emitted when the node is decommissioned. */
188
+ nodeEndpointAdded: Observable(),
189
+ nodeEndpointRemoved: Observable(),
190
+ nodeEndpointChanged: Observable(),
189
191
  decommissioned: Observable(),
190
- /** Emitted when a subscription alive trigger is received (max interval trigger or any data update) */
191
192
  connectionAlive: Observable()
192
193
  };
193
194
  static async create(nodeId, commissioningController, options = {}, knownNodeDetails, interactionClient, reconnectFunc, assignDisconnectedHandler, sessions, crypto, storedAttributeData) {
@@ -402,7 +403,7 @@ class PairedNode {
402
403
  })) {
403
404
  return;
404
405
  }
405
- await this.#initializeEndpointStructure(storedAttributeData);
406
+ await this.#initializeEndpointStructure(storedAttributeData, false);
406
407
  await this.events.initialized.emit(this.#nodeDetails.toStorageData());
407
408
  this.#localInitializationDone = true;
408
409
  }
@@ -440,7 +441,7 @@ class PairedNode {
440
441
  if (attributeReports === void 0) {
441
442
  throw new InternalError("No attribute reports received when subscribing to all values!");
442
443
  }
443
- await this.#initializeEndpointStructure(attributeReports, anyInitializationDone);
444
+ await this.#initializeEndpointStructure(attributeReports);
444
445
  this.#remoteInitializationInProgress = false;
445
446
  if (!deviceDetailsUpdated) {
446
447
  const rootEndpoint = this.getRootEndpoint();
@@ -451,7 +452,7 @@ class PairedNode {
451
452
  this.#currentSubscriptionIntervalS = maxInterval;
452
453
  } else {
453
454
  const allClusterAttributes = await this.readAllAttributes();
454
- await this.#initializeEndpointStructure(allClusterAttributes, anyInitializationDone);
455
+ await this.#initializeEndpointStructure(allClusterAttributes);
455
456
  this.#remoteInitializationInProgress = false;
456
457
  }
457
458
  if (!this.#remoteInitializationDone) {
@@ -590,18 +591,21 @@ class PairedNode {
590
591
  this.#reconnectDelayTimer = void 0;
591
592
  this.#setConnectionState(0 /* Connected */);
592
593
  }
594
+ if (this.#remoteInitializationDone && this.#registeredEndpointStructureChanges.size > 0 && !this.#updateEndpointStructureTimer.isRunning) {
595
+ logger.info(`Node ${this.nodeId}: Endpoint structure needs to be updated ...`);
596
+ this.#updateEndpointStructureTimer.stop().start();
597
+ }
593
598
  this.events.connectionAlive.emit();
594
599
  }
595
600
  };
596
601
  this.#currentSubscriptionHandler = subscriptionHandler;
597
602
  const maxKnownEventNumber = this.#interactionClient.maxKnownEventNumber;
598
- const attributeData = await this.#interactionClient.getAllAttributes({
603
+ await this.#interactionClient.getAllAttributes({
599
604
  dataVersionFilters: this.#interactionClient.getCachedClusterDataVersions(),
600
- executeQueued: !!threadConnected
605
+ executeQueued: !!threadConnected,
601
606
  // We queue subscriptions for thread devices
607
+ attributeChangeListener: subscriptionHandler.attributeListener
602
608
  });
603
- await this.#interactionClient.addAttributesToCache(attributeData);
604
- attributeData.length = 0;
605
609
  const initialSubscriptionData = await this.#interactionClient.subscribeAllAttributesAndEvents({
606
610
  isUrgent: true,
607
611
  minIntervalFloorSeconds,
@@ -612,7 +616,7 @@ class PairedNode {
612
616
  eventFilters: maxKnownEventNumber !== void 0 ? [{ eventMin: maxKnownEventNumber + 1n }] : void 0,
613
617
  executeQueued: !!threadConnected,
614
618
  // We queue subscriptions for thread devices
615
- attributeListener: (data, changed, oldValue) => subscriptionHandler.attributeListener(data, changed, oldValue),
619
+ attributeListener: subscriptionHandler.attributeListener,
616
620
  eventListener: (data) => subscriptionHandler.eventListener(data),
617
621
  updateTimeoutHandler: () => subscriptionHandler.updateTimeoutHandler(),
618
622
  updateReceived: () => subscriptionHandler.subscriptionAlive()
@@ -627,30 +631,31 @@ class PairedNode {
627
631
  enrichCachedAttributeData: true
628
632
  });
629
633
  }
630
- #checkAttributesForNeededStructureUpdate(_endpointId, clusterId, attributeId) {
631
- let structureUpdateNeeded = false;
632
- if (clusterId === DescriptorCluster.id) {
634
+ #checkAttributesForNeededStructureUpdate(endpointId, clusterId, attributeId) {
635
+ if (clusterId === Descriptor.Complete.id) {
633
636
  switch (attributeId) {
634
- case DescriptorCluster.attributes.partsList.id:
635
- case DescriptorCluster.attributes.serverList.id:
636
- case DescriptorCluster.attributes.deviceTypeList.id:
637
- structureUpdateNeeded = true;
638
- break;
639
- }
640
- }
641
- if (!structureUpdateNeeded) {
642
- switch (attributeId) {
643
- case FeatureMap.id:
644
- case AttributeList.id:
645
- case AcceptedCommandList.id:
646
- case ClusterRevision.id:
647
- structureUpdateNeeded = true;
648
- break;
637
+ case Descriptor.Complete.attributes.partsList.id:
638
+ case Descriptor.Complete.attributes.serverList.id:
639
+ case Descriptor.Complete.attributes.clientList.id:
640
+ case Descriptor.Complete.attributes.deviceTypeList.id:
641
+ this.#registeredEndpointStructureChanges.set(endpointId, null);
642
+ return;
649
643
  }
650
644
  }
651
- if (structureUpdateNeeded) {
652
- logger.info(`Node ${this.nodeId}: Endpoint structure needs to be updated ...`);
653
- this.#updateEndpointStructureTimer.stop().start();
645
+ switch (attributeId) {
646
+ case FeatureMap.id:
647
+ case AttributeList.id:
648
+ case AcceptedCommandList.id:
649
+ case ClusterRevision.id:
650
+ let knownForUpdate = this.#registeredEndpointStructureChanges.get(endpointId);
651
+ if (knownForUpdate !== null) {
652
+ knownForUpdate = knownForUpdate ?? [];
653
+ if (!knownForUpdate.includes(clusterId)) {
654
+ knownForUpdate.push(clusterId);
655
+ this.#registeredEndpointStructureChanges.set(endpointId, knownForUpdate);
656
+ }
657
+ }
658
+ break;
654
659
  }
655
660
  }
656
661
  #checkEventsForNeededStructureUpdate(_endpointId, clusterId, eventId) {
@@ -678,55 +683,165 @@ class PairedNode {
678
683
  this.#reconnectDelayTimer.start();
679
684
  }
680
685
  async #updateEndpointStructure() {
681
- const allClusterAttributes = await this.readAllAttributes();
686
+ const allClusterAttributes = this.#interactionClient.getAllCachedClusterData();
682
687
  await this.#initializeEndpointStructure(allClusterAttributes, true);
683
- this.#options.stateInformationCallback?.(this.nodeId, 4 /* StructureChanged */);
684
- this.events.structureChanged.emit();
688
+ }
689
+ /**
690
+ * Traverse the structure data and collect all data for the given endpointId.
691
+ * Return true if data for the endpoint was found, otherwise false.
692
+ * If data was found it is added to the collectedData map.
693
+ */
694
+ collectDescriptorData(structure, endpointId, collectedData) {
695
+ if (collectedData.has(endpointId)) {
696
+ return;
697
+ }
698
+ const endpointData = structure[endpointId];
699
+ const descriptorData = endpointData?.[Descriptor.Complete.id];
700
+ if (endpointData === void 0 || descriptorData === void 0) {
701
+ logger.info(`Descriptor data for endpoint ${endpointId} not found in structure! Ignoring endpoint ...`);
702
+ return;
703
+ }
704
+ collectedData.set(endpointId, descriptorData);
705
+ if (descriptorData.partsList.length) {
706
+ for (const partEndpointId of descriptorData.partsList) {
707
+ this.collectDescriptorData(structure, partEndpointId, collectedData);
708
+ }
709
+ }
710
+ }
711
+ #hasEndpointChanged(device, descriptorData) {
712
+ return !(areNumberListsSame(
713
+ device.getDeviceTypes().map(({ code }) => code),
714
+ descriptorData.deviceTypeList.map(({ deviceType }) => deviceType)
715
+ ) && // Check if the cluster clients are the same - they map to the serverList attribute
716
+ areNumberListsSame(
717
+ device.getAllClusterClients().map(({ id }) => id),
718
+ descriptorData.serverList
719
+ ) && // Check if the cluster servers are the same - they map to the clientList attribute
720
+ areNumberListsSame(
721
+ device.getAllClusterServers().map(({ id }) => id),
722
+ descriptorData.clientList
723
+ ));
685
724
  }
686
725
  /** Reads all data from the device and create a device object structure out of it. */
687
- async #initializeEndpointStructure(allClusterAttributes, updateStructure = false) {
726
+ async #initializeEndpointStructure(allClusterAttributes, updateStructure = this.#localInitializationDone || this.#remoteInitializationDone) {
727
+ if (this.#updateEndpointStructureTimer.isRunning) {
728
+ this.#updateEndpointStructureTimer.stop();
729
+ }
730
+ const eventsToEmit = /* @__PURE__ */ new Map();
731
+ const structureUpdateDetails = this.#registeredEndpointStructureChanges;
732
+ this.#registeredEndpointStructureChanges = /* @__PURE__ */ new Map();
688
733
  const allData = structureReadAttributeDataToClusterObject(allClusterAttributes);
734
+ const descriptors = /* @__PURE__ */ new Map();
735
+ this.collectDescriptorData(allData, EndpointNumber(0), descriptors);
689
736
  if (updateStructure) {
690
737
  const endpointsToRemove = new Set(this.#endpoints.keys());
691
- for (const [endpointId] of Object.entries(allData)) {
692
- const endpointIdNumber = EndpointNumber(parseInt(endpointId));
693
- if (this.#endpoints.has(endpointIdNumber)) {
694
- logger.debug(`Node ${this.nodeId}: Retaining device`, endpointId);
695
- endpointsToRemove.delete(endpointIdNumber);
738
+ for (const endpointId of descriptors.keys()) {
739
+ const device = this.#endpoints.get(endpointId);
740
+ if (device !== void 0) {
741
+ const hasChanged = structureUpdateDetails.has(endpointId);
742
+ if (!hasChanged || !this.#hasEndpointChanged(device, descriptors.get(endpointId))) {
743
+ logger.debug(
744
+ `Node ${this.nodeId}: Retaining endpoint`,
745
+ endpointId,
746
+ hasChanged ? "(with only structure changes)" : "(unchanged)"
747
+ );
748
+ endpointsToRemove.delete(endpointId);
749
+ if (hasChanged) {
750
+ eventsToEmit.set(endpointId, "nodeEndpointChanged");
751
+ }
752
+ } else {
753
+ logger.debug(`Node ${this.nodeId}: Recreating endpoint`, endpointId);
754
+ eventsToEmit.set(endpointId, "nodeEndpointChanged");
755
+ }
696
756
  }
697
757
  }
698
- for (const endpointId of endpointsToRemove.values()) {
699
- logger.debug(`Node ${this.nodeId}: Removing device`, endpointId);
700
- this.#endpoints.get(endpointId)?.removeFromStructure();
701
- this.#endpoints.delete(endpointId);
758
+ for (const endpoint of endpointsToRemove.values()) {
759
+ const endpointId = EndpointNumber(endpoint);
760
+ const device = this.#endpoints.get(endpointId);
761
+ if (device !== void 0) {
762
+ if (eventsToEmit.get(endpointId) !== "nodeEndpointChanged") {
763
+ logger.debug(`Node ${this.nodeId}: Removing endpoint`, endpointId);
764
+ eventsToEmit.set(endpointId, "nodeEndpointRemoved");
765
+ }
766
+ device.removeFromStructure();
767
+ this.#endpoints.delete(endpointId);
768
+ }
702
769
  }
703
770
  } else {
704
771
  this.#endpoints.clear();
705
772
  }
706
- const partLists = /* @__PURE__ */ new Map();
707
- for (const [endpointId, clusters] of Object.entries(allData)) {
708
- const endpointIdNumber = EndpointNumber(parseInt(endpointId));
709
- const descriptorData = clusters[DescriptorCluster.id];
710
- partLists.set(endpointIdNumber, descriptorData.partsList);
711
- if (this.#endpoints.has(endpointIdNumber)) {
773
+ for (const endpointId of descriptors.keys()) {
774
+ const clusters = allData[endpointId];
775
+ if (this.#endpoints.has(endpointId)) {
712
776
  continue;
713
777
  }
714
- logger.debug(`Node ${this.nodeId}: Creating device`, endpointId, Diagnostic.json(clusters));
715
- this.#endpoints.set(
716
- endpointIdNumber,
717
- this.#createDevice(endpointIdNumber, clusters, this.#interactionClient)
778
+ const isRecreation = eventsToEmit.get(endpointId) === "nodeEndpointChanged";
779
+ logger.debug(
780
+ `Node ${this.nodeId}: ${isRecreation ? "Recreating" : "Creating"} endpoint`,
781
+ endpointId,
782
+ Diagnostic.json(clusters)
718
783
  );
784
+ this.#endpoints.set(endpointId, this.#createDevice(endpointId, clusters, this.#interactionClient));
785
+ if (!isRecreation) {
786
+ eventsToEmit.set(endpointId, "nodeEndpointAdded");
787
+ }
788
+ }
789
+ for (const [endpointId, { partsList }] of descriptors.entries()) {
790
+ const endpoint = this.#endpoints.get(endpointId);
791
+ if (endpoint === void 0) {
792
+ continue;
793
+ }
794
+ endpoint.getChildEndpoints().forEach((child) => {
795
+ if (child.number !== void 0 && !partsList.includes(child.number)) {
796
+ endpoint.removeChildEndpoint(child);
797
+ if (!eventsToEmit.has(endpointId)) {
798
+ eventsToEmit.set(endpointId, "nodeEndpointChanged");
799
+ }
800
+ }
801
+ });
802
+ }
803
+ this.#structureEndpoints(descriptors);
804
+ if (updateStructure && eventsToEmit.size) {
805
+ for (const [endpointId, eventName] of eventsToEmit.entries()) {
806
+ if (eventName !== "nodeEndpointAdded") {
807
+ const clusterServers = descriptors.get(endpointId)?.serverList;
808
+ await this.#interactionClient.cleanupAttributeData(
809
+ endpointId,
810
+ eventName === "nodeEndpointRemoved" ? void 0 : clusterServers
811
+ );
812
+ }
813
+ }
814
+ const emitChangeEvents = () => {
815
+ for (const [endpointId, eventName] of eventsToEmit.entries()) {
816
+ logger.debug(`Node ${this.nodeId}: Emitting event ${eventName} for endpoint ${endpointId}`);
817
+ this.events[eventName].emit(endpointId);
818
+ }
819
+ this.#options.stateInformationCallback?.(this.nodeId, 4 /* StructureChanged */);
820
+ this.events.structureChanged.emit();
821
+ };
822
+ if (this.#connectionState === 0 /* Connected */) {
823
+ emitChangeEvents();
824
+ } else {
825
+ this.events.stateChanged.once((State) => {
826
+ if (State === 0 /* Connected */) {
827
+ emitChangeEvents();
828
+ }
829
+ });
830
+ }
719
831
  }
720
- this.#structureEndpoints(partLists);
721
832
  }
722
- /** Bring the endpoints in a structure based on their partsList attribute. */
723
- #structureEndpoints(partLists) {
724
- logger.debug(
725
- `Node ${this.nodeId}: Endpoints from PartsLists`,
726
- Diagnostic.json(Array.from(partLists.entries()))
833
+ /**
834
+ * Bring the endpoints in a structure based on their partsList attribute. This method only adds endpoints into the
835
+ * right place as children, Cleanup is not happening here
836
+ */
837
+ #structureEndpoints(descriptors) {
838
+ const partLists = Array.from(descriptors.entries()).map(
839
+ ([ep, { partsList }]) => [ep, partsList]
840
+ // else Typescript gets confused
727
841
  );
842
+ logger.debug(`Node ${this.nodeId}: Endpoints from PartsLists`, Diagnostic.json(partLists));
728
843
  const endpointUsages = {};
729
- Array.from(partLists.entries()).forEach(
844
+ partLists.forEach(
730
845
  ([parent, partsList]) => partsList.forEach((endPoint) => {
731
846
  if (endPoint === parent) {
732
847
  logger.warn(`Node ${this.nodeId}: Endpoint ${endPoint} is referencing itself!`);
@@ -750,14 +865,18 @@ class PairedNode {
750
865
  const childEndpointId = EndpointNumber(parseInt(childId));
751
866
  const childEndpoint = this.#endpoints.get(childEndpointId);
752
867
  const parentEndpoint = this.#endpoints.get(usages[0]);
868
+ const existingChildEndpoint = parentEndpoint?.getChildEndpoint(childEndpointId);
753
869
  if (childEndpoint === void 0 || parentEndpoint === void 0) {
754
870
  logger.warn(
755
871
  `Node ${this.nodeId}: Endpoint ${usages[0]} not found in the data received from the device!`
756
872
  );
757
- } else if (parentEndpoint.getChildEndpoint(childEndpointId) === void 0) {
873
+ } else if (existingChildEndpoint !== childEndpoint) {
758
874
  logger.debug(
759
875
  `Node ${this.nodeId}: Endpoint structure: Child: ${childEndpointId} -> Parent: ${parentEndpoint.number}`
760
876
  );
877
+ if (existingChildEndpoint !== void 0) {
878
+ parentEndpoint.removeChildEndpoint(existingChildEndpoint);
879
+ }
761
880
  parentEndpoint.addChildEndpoint(childEndpoint);
762
881
  }
763
882
  delete endpointUsages[EndpointNumber(parseInt(childId))];
@@ -779,7 +898,7 @@ class PairedNode {
779
898
  }
780
899
  /** Create a device object from the data read from the device. */
781
900
  #createDevice(endpointId, data, interactionClient) {
782
- const descriptorData = data[DescriptorCluster.id];
901
+ const descriptorData = data[Descriptor.Complete.id];
783
902
  const deviceTypes = descriptorData.deviceTypeList.flatMap(({ deviceType, revision }) => {
784
903
  const deviceTypeDefinition = getDeviceTypeDefinitionFromModelByCode(deviceType);
785
904
  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
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@project-chip/matter.js",
3
- "version": "0.15.3",
3
+ "version": "0.15.5",
4
4
  "description": "Matter protocol in pure js",
5
5
  "keywords": [
6
6
  "iot",
@@ -44,15 +44,15 @@
44
44
  "#*": "./src/*"
45
45
  },
46
46
  "dependencies": {
47
- "@matter/general": "0.15.3",
48
- "@matter/model": "0.15.3",
49
- "@matter/node": "0.15.3",
50
- "@matter/protocol": "0.15.3",
51
- "@matter/types": "0.15.3"
47
+ "@matter/general": "0.15.5",
48
+ "@matter/model": "0.15.5",
49
+ "@matter/node": "0.15.5",
50
+ "@matter/protocol": "0.15.5",
51
+ "@matter/types": "0.15.5"
52
52
  },
53
53
  "devDependencies": {
54
- "@matter/tools": "0.15.3",
55
- "@matter/testing": "0.15.3"
54
+ "@matter/tools": "0.15.5",
55
+ "@matter/testing": "0.15.5"
56
56
  },
57
57
  "files": [
58
58
  "dist/**/*",
@@ -208,13 +208,10 @@ export class CommissioningController {
208
208
  };
209
209
  }
210
210
 
211
- #assertIsAddedToMatterServer() {
211
+ #assertDependencies() {
212
212
  if (this.#mdnsScanner === undefined || (this.#storage === undefined && this.#environment === undefined)) {
213
213
  throw new ImplementationError("Add the node to the Matter instance before.");
214
214
  }
215
- if (!this.#started) {
216
- throw new ImplementationError("The node needs to be started before interacting with the controller.");
217
- }
218
215
  return { mdnsScanner: this.#mdnsScanner, storage: this.#storage, environment: this.#environment };
219
216
  }
220
217
 
@@ -229,7 +226,6 @@ export class CommissioningController {
229
226
 
230
227
  /** Internal method to initialize a MatterController instance. */
231
228
  async #initializeController() {
232
- const { mdnsScanner, storage, environment } = this.#assertIsAddedToMatterServer();
233
229
  if (this.#controllerInstance !== undefined) {
234
230
  return this.#controllerInstance;
235
231
  }
@@ -245,9 +241,8 @@ export class CommissioningController {
245
241
  rootFabric,
246
242
  } = this.#options;
247
243
 
248
- if (environment === undefined && storage === undefined) {
249
- throw new ImplementationError("Storage not initialized correctly.");
250
- }
244
+ const { mdnsScanner, storage, environment } = this.#assertDependencies();
245
+
251
246
  // Initialize the Storage in a compatible way for the legacy API and new style for new API
252
247
  // TODO: clean this up when we really implement ControllerNode/ClientNode concepts in new API
253
248
  const controllerStore = environment?.has(ControllerStore)
@@ -300,7 +295,6 @@ export class CommissioningController {
300
295
  commissioningFlowImpl?: ClassExtends<ControllerCommissioningFlow>;
301
296
  },
302
297
  ) {
303
- this.#assertIsAddedToMatterServer();
304
298
  const controller = this.#assertControllerIsStarted();
305
299
 
306
300
  const { connectNodeAfterCommissioning = true, commissioningFlowImpl } = commissionOptions ?? {};
@@ -323,7 +317,6 @@ export class CommissioningController {
323
317
  }
324
318
 
325
319
  connectPaseChannel(nodeOptions: NodeCommissioningOptions) {
326
- this.#assertIsAddedToMatterServer();
327
320
  const controller = this.#assertControllerIsStarted();
328
321
 
329
322
  return controller.connectPaseChannel(nodeOptions);
@@ -335,7 +328,6 @@ export class CommissioningController {
335
328
  * process.
336
329
  */
337
330
  completeCommissioningForNode(peerNodeId: NodeId, discoveryData?: DiscoveryData) {
338
- this.#assertIsAddedToMatterServer();
339
331
  const controller = this.#assertControllerIsStarted();
340
332
  return controller.completeCommissioning(peerNodeId, discoveryData);
341
333
  }
@@ -386,7 +378,7 @@ export class CommissioningController {
386
378
  }
387
379
 
388
380
  /**
389
- * Returns the PairedNode instance for a given NodeId. The instance is initialized without auto connect if not yet
381
+ * Returns the PairedNode instance for a given NodeId. The instance is initialized without auto-connect if not yet
390
382
  * created.
391
383
  */
392
384
  async getNode(nodeId: NodeId, allowUnknownNode = false) {
@@ -657,7 +649,6 @@ export class CommissioningController {
657
649
  identifierData: CommissionableDeviceIdentifiers,
658
650
  discoveryCapabilities?: TypeFromPartialBitSchema<typeof DiscoveryCapabilitiesBitmap>,
659
651
  ) {
660
- this.#assertIsAddedToMatterServer();
661
652
  const controller = this.#assertControllerIsStarted();
662
653
  controller
663
654
  .collectScanners(discoveryCapabilities)
@@ -675,7 +666,6 @@ export class CommissioningController {
675
666
  discoveredCallback?: (device: CommissionableDevice) => void,
676
667
  timeoutSeconds = 900,
677
668
  ) {
678
- this.#assertIsAddedToMatterServer();
679
669
  const controller = this.#assertControllerIsStarted();
680
670
  return await ControllerDiscovery.discoverCommissionableDevices(
681
671
  controller.collectScanners(discoveryCapabilities),
@@ -690,10 +680,12 @@ export class CommissioningController {
690
680
  * will remove all commissioning data and paired nodes from the controller.
691
681
  */
692
682
  async resetStorage() {
693
- this.#assertControllerIsStarted(
694
- "Storage cannot be reset while the controller is operating! Please close the controller first.",
695
- );
696
- const { storage, environment } = this.#assertIsAddedToMatterServer();
683
+ if (this.#started) {
684
+ throw new ImplementationError(
685
+ "Storage cannot be reset while the controller is operating! Please close the controller first.",
686
+ );
687
+ }
688
+ const { storage, environment } = this.#assertDependencies();
697
689
  if (environment !== undefined) {
698
690
  const controllerStore = environment.get(ControllerStore);
699
691
  await controllerStore.erase();