@project-chip/matter.js 0.12.4-alpha.0-20250209-00d44975c → 0.12.4-alpha.0-20250210-ad8edf096

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.
@@ -1 +1 @@
1
- {"version":3,"file":"CommissioningController.d.ts","sourceRoot":"","sources":["../../src/CommissioningController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CommissioningController.d.ts","sourceRoot":"","sources":["../../src/CommissioningController.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,20 @@ import { MatterController } from "./MatterController.js";
28
28
  import { MatterNode } from "./MatterNode.js";
29
29
  const logger = new Logger("CommissioningController");
30
30
  class CommissioningController extends MatterNode {
31
+ #started = false;
32
+ #ipv4Disabled;
33
+ #listeningAddressIpv4;
34
+ #listeningAddressIpv6;
35
+ #options;
36
+ #environment;
37
+ // Set when new API was initialized correctly
38
+ #storage;
39
+ #mdnsScanner;
40
+ #mdnsBroadcaster;
41
+ #controllerInstance;
42
+ #initializedNodes = /* @__PURE__ */ new Map();
43
+ #nodeUpdateLabelHandlers = /* @__PURE__ */ new Map();
44
+ #sessionDisconnectedHandler = /* @__PURE__ */ new Map();
31
45
  /**
32
46
  * Creates a new CommissioningController instance
33
47
  *
@@ -35,26 +49,14 @@ class CommissioningController extends MatterNode {
35
49
  */
36
50
  constructor(options) {
37
51
  super();
38
- this.options = options;
52
+ this.#options = options;
39
53
  }
40
- started = false;
41
- ipv4Disabled;
42
- listeningAddressIpv4;
43
- listeningAddressIpv6;
44
- environment;
45
- // Set when new API was initialized correctly
46
- storage;
47
- mdnsScanner;
48
- mdnsBroadcaster;
49
- controllerInstance;
50
- initializedNodes = /* @__PURE__ */ new Map();
51
- nodeUpdateLabelHandlers = /* @__PURE__ */ new Map();
52
- sessionDisconnectedHandler = /* @__PURE__ */ new Map();
53
54
  get nodeId() {
54
- return this.controllerInstance?.nodeId;
55
+ return this.#controllerInstance?.nodeId;
55
56
  }
57
+ /** Returns the configuration data needed to create a PASE commissioner, e.g. in a mobile app. */
56
58
  get paseCommissionerConfig() {
57
- const controller = this.assertControllerIsStarted(
59
+ const controller = this.#assertControllerIsStarted(
58
60
  "The CommissioningController needs to be started to get the PASE commissioner data."
59
61
  );
60
62
  const { caConfig, fabricConfig: fabricData } = controller;
@@ -63,40 +65,40 @@ class CommissioningController extends MatterNode {
63
65
  fabricData
64
66
  };
65
67
  }
66
- assertIsAddedToMatterServer() {
67
- if (this.mdnsScanner === void 0 || this.storage === void 0 && this.environment === void 0) {
68
+ #assertIsAddedToMatterServer() {
69
+ if (this.#mdnsScanner === void 0 || this.#storage === void 0 && this.#environment === void 0) {
68
70
  throw new ImplementationError("Add the node to the Matter instance before.");
69
71
  }
70
- if (!this.started) {
72
+ if (!this.#started) {
71
73
  throw new ImplementationError("The node needs to be started before interacting with the controller.");
72
74
  }
73
- return { mdnsScanner: this.mdnsScanner, storage: this.storage, environment: this.environment };
75
+ return { mdnsScanner: this.#mdnsScanner, storage: this.#storage, environment: this.#environment };
74
76
  }
75
- assertControllerIsStarted(errorText) {
76
- if (this.controllerInstance === void 0) {
77
+ #assertControllerIsStarted(errorText) {
78
+ if (this.#controllerInstance === void 0) {
77
79
  throw new ImplementationError(
78
80
  errorText ?? "Controller instance not yet started. Please call start() first."
79
81
  );
80
82
  }
81
- return this.controllerInstance;
83
+ return this.#controllerInstance;
82
84
  }
83
85
  /** Internal method to initialize a MatterController instance. */
84
- async initializeController() {
85
- const { mdnsScanner, storage, environment } = this.assertIsAddedToMatterServer();
86
- if (this.controllerInstance !== void 0) {
87
- return this.controllerInstance;
86
+ async #initializeController() {
87
+ const { mdnsScanner, storage, environment } = this.#assertIsAddedToMatterServer();
88
+ if (this.#controllerInstance !== void 0) {
89
+ return this.#controllerInstance;
88
90
  }
89
- const { localPort, adminFabricId, adminVendorId, adminFabricIndex, caseAuthenticatedTags, adminFabricLabel } = this.options;
91
+ const { localPort, adminFabricId, adminVendorId, adminFabricIndex, caseAuthenticatedTags, adminFabricLabel } = this.#options;
90
92
  if (environment === void 0 && storage === void 0) {
91
93
  throw new ImplementationError("Storage not initialized correctly.");
92
94
  }
93
95
  const controllerStore = environment?.has(ControllerStore) ? environment.get(ControllerStore) : new LegacyControllerStore(storage);
94
96
  const { netInterfaces, scanners, port } = await configureNetwork({
95
- ipv4Disabled: this.ipv4Disabled,
97
+ ipv4Disabled: this.#ipv4Disabled,
96
98
  mdnsScanner,
97
99
  localPort,
98
- listeningAddressIpv4: this.listeningAddressIpv4,
99
- listeningAddressIpv6: this.listeningAddressIpv6
100
+ listeningAddressIpv4: this.#listeningAddressIpv4,
101
+ listeningAddressIpv6: this.#listeningAddressIpv6
100
102
  });
101
103
  const controller = await MatterController.create({
102
104
  controllerStore,
@@ -104,7 +106,7 @@ class CommissioningController extends MatterNode {
104
106
  netInterfaces,
105
107
  sessionClosedCallback: (peerNodeId) => {
106
108
  logger.info(`Session for peer node ${peerNodeId} disconnected ...`);
107
- const handler = this.sessionDisconnectedHandler.get(peerNodeId);
109
+ const handler = this.#sessionDisconnectedHandler.get(peerNodeId);
108
110
  if (handler !== void 0) {
109
111
  handler().catch((error) => logger.warn(`Error while handling session disconnect: ${error}`));
110
112
  }
@@ -115,25 +117,25 @@ class CommissioningController extends MatterNode {
115
117
  caseAuthenticatedTags,
116
118
  adminFabricLabel
117
119
  });
118
- if (this.mdnsBroadcaster) {
119
- controller.addBroadcaster(this.mdnsBroadcaster.createInstanceBroadcaster(port));
120
+ if (this.#mdnsBroadcaster) {
121
+ controller.addBroadcaster(this.#mdnsBroadcaster.createInstanceBroadcaster(port));
120
122
  }
121
123
  return controller;
122
124
  }
123
125
  /**
124
126
  * Commissions/Pairs a new device into the controller fabric. The method returns the NodeId of the commissioned
125
- * node.
127
+ * node on success.
126
128
  */
127
129
  async commissionNode(nodeOptions, connectNodeAfterCommissioning = true) {
128
- this.assertIsAddedToMatterServer();
129
- const controller = this.assertControllerIsStarted();
130
+ this.#assertIsAddedToMatterServer();
131
+ const controller = this.#assertControllerIsStarted();
130
132
  const nodeId = await controller.commission(nodeOptions);
131
133
  if (connectNodeAfterCommissioning) {
132
134
  const node = await this.connectNode(nodeId, {
133
135
  ...nodeOptions,
134
- autoSubscribe: nodeOptions.autoSubscribe ?? this.options.autoSubscribe,
135
- subscribeMinIntervalFloorSeconds: nodeOptions.subscribeMinIntervalFloorSeconds ?? this.options.subscribeMinIntervalFloorSeconds,
136
- subscribeMaxIntervalCeilingSeconds: nodeOptions.subscribeMaxIntervalCeilingSeconds ?? this.options.subscribeMaxIntervalCeilingSeconds
136
+ autoSubscribe: nodeOptions.autoSubscribe ?? this.#options.autoSubscribe,
137
+ subscribeMinIntervalFloorSeconds: nodeOptions.subscribeMinIntervalFloorSeconds ?? this.#options.subscribeMinIntervalFloorSeconds,
138
+ subscribeMaxIntervalCeilingSeconds: nodeOptions.subscribeMaxIntervalCeilingSeconds ?? this.#options.subscribeMaxIntervalCeilingSeconds
137
139
  });
138
140
  await node.events.initialized;
139
141
  }
@@ -145,24 +147,26 @@ class CommissioningController extends MatterNode {
145
147
  * process.
146
148
  */
147
149
  completeCommissioningForNode(peerNodeId, discoveryData) {
148
- this.assertIsAddedToMatterServer();
149
- const controller = this.assertControllerIsStarted();
150
+ this.#assertIsAddedToMatterServer();
151
+ const controller = this.#assertControllerIsStarted();
150
152
  return controller.completeCommissioning(peerNodeId, discoveryData);
151
153
  }
152
154
  /** Check if a given node id is commissioned on this controller. */
153
155
  isNodeCommissioned(nodeId) {
154
- const controller = this.assertControllerIsStarted();
156
+ const controller = this.#assertControllerIsStarted();
155
157
  return controller.getCommissionedNodes().includes(nodeId) ?? false;
156
158
  }
157
159
  /**
158
160
  * Remove a Node id from the controller. This method should only be used if the decommission method on the
159
161
  * PairedNode instance returns an error. By default, it tries to decommission the node from the controller but will
160
162
  * remove it also in case of an error during decommissioning. Ideally try to decommission the node before and only
161
- * use this in case of an error.
163
+ * use this in case of an error as last option.
164
+ * If this method is used the state of the PairedNode instance might be out of sync, so the PairedNode instance
165
+ * should be disconnected first.
162
166
  */
163
167
  async removeNode(nodeId, tryDecommissioning = true) {
164
- const controller = this.assertControllerIsStarted();
165
- const node = this.initializedNodes.get(nodeId);
168
+ const controller = this.#assertControllerIsStarted();
169
+ const node = this.#initializedNodes.get(nodeId);
166
170
  let decommissionSuccess = false;
167
171
  if (tryDecommissioning) {
168
172
  try {
@@ -179,17 +183,22 @@ class CommissioningController extends MatterNode {
179
183
  node.close(!decommissionSuccess);
180
184
  }
181
185
  await controller.removeNode(nodeId);
182
- this.initializedNodes.delete(nodeId);
186
+ this.#initializedNodes.delete(nodeId);
183
187
  }
188
+ /** @deprecated Use PairedNode.disconnect() instead */
184
189
  async disconnectNode(nodeId) {
185
- const node = this.initializedNodes.get(nodeId);
190
+ const node = this.#initializedNodes.get(nodeId);
186
191
  if (node === void 0) {
187
192
  throw new ImplementationError(`Node ${nodeId} is not connected!`);
188
193
  }
189
- await this.controllerInstance?.disconnect(nodeId);
194
+ await this.#controllerInstance?.disconnect(nodeId);
190
195
  }
196
+ /**
197
+ * Returns the PairedNode instance for a given NodeId. The instance is initialized without auto connect if not yet
198
+ * created.
199
+ */
191
200
  async getNode(nodeId) {
192
- const existingNode = this.initializedNodes.get(nodeId);
201
+ const existingNode = this.#initializedNodes.get(nodeId);
193
202
  if (existingNode !== void 0) {
194
203
  return existingNode;
195
204
  }
@@ -200,13 +209,15 @@ class CommissioningController extends MatterNode {
200
209
  * After connection the endpoint data of the device is analyzed and an object structure is created.
201
210
  * This call is not blocking and returns an initialized PairedNode instance. The connection or reconnection
202
211
  * happens in the background. Please monitor the state of the node to see if the connection was successful.
212
+ *
213
+ * @deprecated Use getNode() instead and call PairedNode.connect() or PairedNode.disconnect() as needed.
203
214
  */
204
215
  async connectNode(nodeId, connectOptions) {
205
- const controller = this.assertControllerIsStarted();
216
+ const controller = this.#assertControllerIsStarted();
206
217
  if (!controller.getCommissionedNodes().includes(nodeId)) {
207
218
  throw new ImplementationError(`Node ${nodeId} is not commissioned!`);
208
219
  }
209
- const existingNode = this.initializedNodes.get(nodeId);
220
+ const existingNode = this.#initializedNodes.get(nodeId);
210
221
  if (existingNode !== void 0) {
211
222
  if (!existingNode.initialized) {
212
223
  existingNode.connect(connectOptions);
@@ -217,22 +228,22 @@ class CommissioningController extends MatterNode {
217
228
  nodeId,
218
229
  this,
219
230
  connectOptions,
220
- this.controllerInstance?.getCommissionedNodeDetails(nodeId)?.deviceData ?? {},
231
+ this.#controllerInstance?.getCommissionedNodeDetails(nodeId)?.deviceData ?? {},
221
232
  await this.createInteractionClient(nodeId, NodeDiscoveryType.None, false),
222
233
  // First connect without discovery to last known address
223
234
  async (discoveryType) => void await controller.connect(nodeId, { discoveryType }),
224
- (handler) => this.sessionDisconnectedHandler.set(nodeId, handler),
235
+ (handler) => this.#sessionDisconnectedHandler.set(nodeId, handler),
225
236
  controller.sessions,
226
- await this.collectStoredAttributeData(nodeId)
237
+ await this.#collectStoredAttributeData(nodeId)
227
238
  );
228
- this.initializedNodes.set(nodeId, pairedNode);
239
+ this.#initializedNodes.set(nodeId, pairedNode);
229
240
  pairedNode.events.initializedFromRemote.on(
230
241
  async (deviceData) => await controller.enhanceCommissionedNodeDetails(nodeId, deviceData)
231
242
  );
232
243
  return pairedNode;
233
244
  }
234
- async collectStoredAttributeData(nodeId) {
235
- const controller = this.assertControllerIsStarted();
245
+ async #collectStoredAttributeData(nodeId) {
246
+ const controller = this.#assertControllerIsStarted();
236
247
  const storedDataVersions = await controller.getStoredClusterDataVersions(nodeId);
237
248
  const result = new Array();
238
249
  for (const { endpointId, clusterId } of storedDataVersions) {
@@ -243,9 +254,11 @@ class CommissioningController extends MatterNode {
243
254
  /**
244
255
  * Connects to all paired nodes.
245
256
  * After connection the endpoint data of the device is analyzed and an object structure is created.
257
+ *
258
+ * @deprecated Use getCommissionedNodes() to get the list of nodes and getNode(nodeId) instead and call PairedNode.connect() or PairedNode.disconnect() as needed.
246
259
  */
247
260
  async connect(connectOptions) {
248
- const controller = this.assertControllerIsStarted();
261
+ const controller = this.#assertControllerIsStarted();
249
262
  if (!controller.isCommissioned()) {
250
263
  throw new ImplementationError(
251
264
  "Controller instance not yet paired with any device, so nothing to connect to."
@@ -254,36 +267,39 @@ class CommissioningController extends MatterNode {
254
267
  for (const nodeId of controller.getCommissionedNodes()) {
255
268
  await this.connectNode(nodeId, connectOptions);
256
269
  }
257
- return Array.from(this.initializedNodes.values());
270
+ return Array.from(this.#initializedNodes.values());
258
271
  }
259
272
  /**
260
273
  * Set the MDNS Scanner instance. Should be only used internally
261
274
  *
262
275
  * @param mdnsScanner MdnsScanner instance
276
+ * @private
263
277
  */
264
278
  setMdnsScanner(mdnsScanner) {
265
- this.mdnsScanner = mdnsScanner;
279
+ this.#mdnsScanner = mdnsScanner;
266
280
  }
267
281
  /**
268
282
  * Set the MDNS Broadcaster instance. Should be only used internally
269
283
  *
270
284
  * @param mdnsBroadcaster MdnsBroadcaster instance
285
+ * @private
271
286
  */
272
287
  setMdnsBroadcaster(mdnsBroadcaster) {
273
- this.mdnsBroadcaster = mdnsBroadcaster;
288
+ this.#mdnsBroadcaster = mdnsBroadcaster;
274
289
  }
275
290
  /**
276
291
  * Set the Storage instance. Should be only used internally
277
292
  *
278
293
  * @param storage storage context to use
294
+ * @private
279
295
  */
280
296
  setStorage(storage) {
281
- this.storage = storage;
282
- this.environment = void 0;
297
+ this.#storage = storage;
298
+ this.#environment = void 0;
283
299
  }
284
300
  /** Returns true if t least one node is commissioned/paired with this controller instance. */
285
301
  isCommissioned() {
286
- const controller = this.assertControllerIsStarted();
302
+ const controller = this.#assertControllerIsStarted();
287
303
  return controller.isCommissioned();
288
304
  }
289
305
  /**
@@ -291,93 +307,113 @@ class CommissioningController extends MatterNode {
291
307
  * not be used directly. See the PairedNode class for the public API.
292
308
  */
293
309
  async createInteractionClient(nodeId, discoveryType, forcedConnection = true) {
294
- const controller = this.assertControllerIsStarted();
310
+ const controller = this.#assertControllerIsStarted();
295
311
  if (!forcedConnection) {
296
312
  return controller.createInteractionClient(nodeId, { discoveryType });
297
313
  }
298
314
  return controller.connect(nodeId, { discoveryType });
299
315
  }
300
- /** Returns the PairedNode instance for a given node id, if this node is connected. */
316
+ /**
317
+ * Returns the PairedNode instance for a given node id, if this node is connected.
318
+ * @deprecated Use getNode() instead
319
+ */
301
320
  getPairedNode(nodeId) {
302
- return this.initializedNodes.get(nodeId);
321
+ return this.#initializedNodes.get(nodeId);
303
322
  }
304
- /** Returns an array with the Node Ids for all commissioned nodes. */
323
+ /** Returns an array with the NodeIds of all commissioned nodes. */
305
324
  getCommissionedNodes() {
306
- const controller = this.assertControllerIsStarted();
325
+ const controller = this.#assertControllerIsStarted();
307
326
  return controller.getCommissionedNodes() ?? [];
308
327
  }
328
+ /** Returns an arra with all commissioned NodeIds and their metadata. */
309
329
  getCommissionedNodesDetails() {
310
- const controller = this.assertControllerIsStarted();
330
+ const controller = this.#assertControllerIsStarted();
311
331
  return controller.getCommissionedNodesDetails() ?? [];
312
332
  }
313
- /** Disconnects all connected nodes and Closes the network connections and other resources of the controller. */
333
+ /**
334
+ * Disconnects all connected nodes and closes the network connections and other resources of the controller.
335
+ * You can use "start()" to restart the controller after closing it.
336
+ */
314
337
  async close() {
315
- for (const node of this.initializedNodes.values()) {
338
+ for (const node of this.#initializedNodes.values()) {
316
339
  node.close();
317
340
  }
318
- await this.controllerInstance?.close();
319
- this.controllerInstance = void 0;
320
- this.initializedNodes.clear();
321
- this.ipv4Disabled = void 0;
322
- this.started = false;
341
+ await this.#controllerInstance?.close();
342
+ this.#controllerInstance = void 0;
343
+ this.#initializedNodes.clear();
344
+ this.#ipv4Disabled = void 0;
345
+ this.#started = false;
323
346
  }
347
+ /** Return the port used by the controller for the UDP interface. */
324
348
  getPort() {
325
- return this.options.localPort;
349
+ return this.#options.localPort;
326
350
  }
351
+ /** @private */
327
352
  initialize(ipv4Disabled) {
328
- if (this.started) {
353
+ if (this.#started) {
329
354
  throw new ImplementationError("Controller instance already started.");
330
355
  }
331
- if (this.ipv4Disabled !== void 0 && this.ipv4Disabled !== ipv4Disabled) {
356
+ if (this.#ipv4Disabled !== void 0 && this.#ipv4Disabled !== ipv4Disabled) {
332
357
  throw new ImplementationError(
333
358
  "Changing the IPv4 disabled flag after starting the controller is not supported."
334
359
  );
335
360
  }
336
- this.ipv4Disabled = ipv4Disabled;
361
+ this.#ipv4Disabled = ipv4Disabled;
337
362
  }
363
+ /** @private */
338
364
  async initializeControllerStore() {
339
- if (this.options.environment === void 0) {
365
+ if (this.#options.environment === void 0) {
340
366
  throw new ImplementationError("Initialization not done. Add the controller to the MatterServer first.");
341
367
  }
342
- const { environment, id } = this.options.environment;
368
+ const { environment, id } = this.#options.environment;
343
369
  const controllerStore = await ControllerStore.create(id, environment);
344
370
  environment.set(ControllerStore, controllerStore);
345
371
  }
346
- /** Initialize the controller and connect to all commissioned nodes if autoConnect is not set to false. */
372
+ /**
373
+ * Initialize the controller and initialize and connect to all commissioned nodes if autoConnect is not set to false.
374
+ */
347
375
  async start() {
348
- if (this.ipv4Disabled === void 0) {
349
- if (this.options.environment === void 0) {
376
+ if (this.#ipv4Disabled === void 0) {
377
+ if (this.#options.environment === void 0) {
350
378
  throw new ImplementationError("Initialization not done. Add the controller to the MatterServer first.");
351
379
  }
352
- const { environment } = this.options.environment;
380
+ const { environment } = this.#options.environment;
353
381
  if (!environment.has(ControllerStore)) {
354
382
  await this.initializeControllerStore();
355
383
  }
356
384
  const mdnsService = await environment.load(MdnsService);
357
- this.ipv4Disabled = !mdnsService.enableIpv4;
385
+ this.#ipv4Disabled = !mdnsService.enableIpv4;
358
386
  this.setMdnsBroadcaster(mdnsService.broadcaster);
359
387
  this.setMdnsScanner(mdnsService.scanner);
360
- this.environment = environment;
361
- const runtime = this.environment.runtime;
388
+ this.#environment = environment;
389
+ const runtime = this.#environment.runtime;
362
390
  runtime.add(this);
363
391
  }
364
- this.started = true;
365
- if (this.controllerInstance === void 0) {
366
- this.controllerInstance = await this.initializeController();
392
+ this.#started = true;
393
+ if (this.#controllerInstance === void 0) {
394
+ this.#controllerInstance = await this.#initializeController();
367
395
  }
368
- await this.controllerInstance.announce();
369
- if (this.options.autoConnect !== false && this.controllerInstance.isCommissioned()) {
396
+ await this.#controllerInstance.announce();
397
+ if (this.#options.autoConnect !== false && this.#controllerInstance.isCommissioned()) {
370
398
  await this.connect();
371
399
  }
372
400
  }
401
+ /**
402
+ * Cancels the discovery process for commissionable devices started with discoverCommissionableDevices().
403
+ */
373
404
  cancelCommissionableDeviceDiscovery(identifierData, discoveryCapabilities) {
374
- this.assertIsAddedToMatterServer();
375
- const controller = this.assertControllerIsStarted();
405
+ this.#assertIsAddedToMatterServer();
406
+ const controller = this.#assertControllerIsStarted();
376
407
  controller.collectScanners(discoveryCapabilities).forEach((scanner) => ControllerDiscovery.cancelCommissionableDeviceDiscovery(scanner, identifierData));
377
408
  }
409
+ /**
410
+ * Starts to discover commissionable devices.
411
+ * The promise will be fulfilled after the provided timeout or when the discovery is stopped via
412
+ * cancelCommissionableDeviceDiscovery(). The discoveredCallback will be called for each discovered device.
413
+ */
378
414
  async discoverCommissionableDevices(identifierData, discoveryCapabilities, discoveredCallback, timeoutSeconds = 900) {
379
- this.assertIsAddedToMatterServer();
380
- const controller = this.assertControllerIsStarted();
415
+ this.#assertIsAddedToMatterServer();
416
+ const controller = this.#assertControllerIsStarted();
381
417
  return await ControllerDiscovery.discoverCommissionableDevices(
382
418
  controller.collectScanners(discoveryCapabilities),
383
419
  timeoutSeconds,
@@ -385,11 +421,15 @@ class CommissioningController extends MatterNode {
385
421
  discoveredCallback
386
422
  );
387
423
  }
424
+ /**
425
+ * Use this method to reset the Controller storage. The method can only be called if the controller is stopped and
426
+ * will remove all commissioning data and paired nodes from the controller.
427
+ */
388
428
  async resetStorage() {
389
- this.assertControllerIsStarted(
429
+ this.#assertControllerIsStarted(
390
430
  "Storage cannot be reset while the controller is operating! Please close the controller first."
391
431
  );
392
- const { storage, environment } = this.assertIsAddedToMatterServer();
432
+ const { storage, environment } = this.#assertIsAddedToMatterServer();
393
433
  if (environment !== void 0) {
394
434
  const controllerStore = environment.get(ControllerStore);
395
435
  await controllerStore.erase();
@@ -401,11 +441,12 @@ class CommissioningController extends MatterNode {
401
441
  }
402
442
  /** Returns active session information for all connected nodes. */
403
443
  getActiveSessionInformation() {
404
- return this.controllerInstance?.getActiveSessionInformation() ?? [];
444
+ return this.#controllerInstance?.getActiveSessionInformation() ?? [];
405
445
  }
446
+ /** @private */
406
447
  async validateAndUpdateFabricLabel(nodeId) {
407
- const controller = this.assertControllerIsStarted();
408
- const node = this.initializedNodes.get(nodeId);
448
+ const controller = this.#assertControllerIsStarted();
449
+ const node = this.#initializedNodes.get(nodeId);
409
450
  if (node === void 0) {
410
451
  throw new ImplementationError(`Node ${nodeId} is not connected!`);
411
452
  }
@@ -430,13 +471,17 @@ class CommissioningController extends MatterNode {
430
471
  });
431
472
  }
432
473
  }
474
+ /**
475
+ * Updates the fabric label for the controller and all connected nodes.
476
+ * The label is used to identify the controller and all connected nodes in the fabric.
477
+ */
433
478
  async updateFabricLabel(label) {
434
- const controller = this.assertControllerIsStarted();
479
+ const controller = this.#assertControllerIsStarted();
435
480
  if (controller.fabricConfig.label === label) {
436
481
  return;
437
482
  }
438
483
  await controller.updateFabricLabel(label);
439
- for (const node of this.initializedNodes.values()) {
484
+ for (const node of this.#initializedNodes.values()) {
440
485
  if (node.isConnected) {
441
486
  try {
442
487
  await this.validateAndUpdateFabricLabel(node.nodeId);
@@ -452,12 +497,12 @@ class CommissioningController extends MatterNode {
452
497
  logger.info(
453
498
  `Node ${node.nodeId} is reconnecting. Delaying fabric label update to when node is back online.`
454
499
  );
455
- if (!this.nodeUpdateLabelHandlers.has(node.nodeId)) {
500
+ if (!this.#nodeUpdateLabelHandlers.has(node.nodeId)) {
456
501
  const updateOnReconnect = (nodeState) => {
457
502
  if (nodeState === NodeStates.Connected) {
458
503
  this.validateAndUpdateFabricLabel(node.nodeId).catch((error) => logger.warn(`Error updating fabric label on node ${node.nodeId}:`, error)).finally(() => {
459
504
  node.events.stateChanged.off(updateOnReconnect);
460
- this.nodeUpdateLabelHandlers.delete(node.nodeId);
505
+ this.#nodeUpdateLabelHandlers.delete(node.nodeId);
461
506
  });
462
507
  }
463
508
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/CommissioningController.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }