@project-chip/matter.js 0.16.0-alpha.0-20250817-1b000357c → 0.16.0-alpha.0-20250820-24939dd26

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 (40) hide show
  1. package/dist/cjs/CommissioningController.d.ts +3 -3
  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 +2 -2
  6. package/dist/cjs/MatterController.d.ts.map +1 -1
  7. package/dist/cjs/MatterController.js +3 -3
  8. package/dist/cjs/MatterController.js.map +1 -1
  9. package/dist/cjs/PaseCommissioner.d.ts +1 -1
  10. package/dist/cjs/PaseCommissioner.d.ts.map +1 -1
  11. package/dist/cjs/PaseCommissioner.js +2 -2
  12. package/dist/cjs/PaseCommissioner.js.map +1 -1
  13. package/dist/cjs/cluster/server/EventServer.js +1 -1
  14. package/dist/cjs/cluster/server/EventServer.js.map +1 -1
  15. package/dist/cjs/device/PairedNode.d.ts.map +1 -1
  16. package/dist/cjs/device/PairedNode.js +10 -10
  17. package/dist/cjs/device/PairedNode.js.map +1 -1
  18. package/dist/esm/CommissioningController.d.ts +3 -3
  19. package/dist/esm/CommissioningController.d.ts.map +1 -1
  20. package/dist/esm/CommissioningController.js +3 -2
  21. package/dist/esm/CommissioningController.js.map +1 -1
  22. package/dist/esm/MatterController.d.ts +2 -2
  23. package/dist/esm/MatterController.d.ts.map +1 -1
  24. package/dist/esm/MatterController.js +5 -4
  25. package/dist/esm/MatterController.js.map +1 -1
  26. package/dist/esm/PaseCommissioner.d.ts +1 -1
  27. package/dist/esm/PaseCommissioner.d.ts.map +1 -1
  28. package/dist/esm/PaseCommissioner.js +3 -3
  29. package/dist/esm/PaseCommissioner.js.map +1 -1
  30. package/dist/esm/cluster/server/EventServer.js +1 -1
  31. package/dist/esm/cluster/server/EventServer.js.map +1 -1
  32. package/dist/esm/device/PairedNode.d.ts.map +1 -1
  33. package/dist/esm/device/PairedNode.js +14 -10
  34. package/dist/esm/device/PairedNode.js.map +1 -1
  35. package/package.json +8 -8
  36. package/src/CommissioningController.ts +3 -2
  37. package/src/MatterController.ts +5 -4
  38. package/src/PaseCommissioner.ts +3 -3
  39. package/src/cluster/server/EventServer.ts +1 -1
  40. package/src/device/PairedNode.ts +18 -17
@@ -12,11 +12,15 @@ import {
12
12
  Construction,
13
13
  Crypto,
14
14
  Diagnostic,
15
+ Duration,
15
16
  ImplementationError,
16
17
  InternalError,
17
18
  Logger,
18
19
  MatterError,
20
+ Millis,
21
+ Minutes,
19
22
  Observable,
23
+ Seconds,
20
24
  Time,
21
25
  Timer,
22
26
  } from "#general";
@@ -70,22 +74,22 @@ import { asClusterClientInternal, isClusterClient } from "./TypeHelpers.js";
70
74
  const logger = Logger.get("PairedNode");
71
75
 
72
76
  /** Delay after receiving a changed partList from a device to update the device structure */
73
- const STRUCTURE_UPDATE_TIMEOUT_MS = 5_000; // 5 seconds
77
+ const STRUCTURE_UPDATE_TIMEOUT = Seconds(5);
74
78
 
75
79
  /** Delay after a disconnect to try to reconnect to the device */
76
- const RECONNECT_DELAY_MS = 15_000; // 15 seconds
80
+ const RECONNECT_DELAY = Seconds(15);
77
81
 
78
82
  /** Delay after a shutdown event to try to reconnect to the device */
79
- const RECONNECT_DELAY_AFTER_SHUTDOWN_MS = 30_000; // 30 seconds, to give device time to restart and maybe inform us about
83
+ const RECONNECT_DELAY_AFTER_SHUTDOWN = Seconds(30); // Give device time to restart and maybe inform us about
80
84
 
81
85
  /** Maximum delay after a disconnect to try to reconnect to the device */
82
- const RECONNECT_MAX_DELAY_MS = 600_000; // 10 minutes
86
+ const RECONNECT_MAX_DELAY = Minutes(10);
83
87
 
84
88
  /**
85
89
  * Delay after a new session was opened by the device while in discovery state.
86
90
  * This usually happens for devices that support persisted subscriptions.
87
91
  */
88
- const NEW_SESSION_WHILE_DISCOVERY_RECONNECT_DELAY_MS = 5_000;
92
+ const NEW_SESSION_WHILE_DISCOVERY_RECONNECT_DELAY = Seconds(5);
89
93
 
90
94
  export enum NodeStates {
91
95
  /**
@@ -221,7 +225,7 @@ export class PairedNode {
221
225
  #reconnectDelayTimer?: Timer;
222
226
  #newChannelReconnectDelayTimer = Time.getTimer(
223
227
  "New Channel Reconnect Delay",
224
- NEW_SESSION_WHILE_DISCOVERY_RECONNECT_DELAY_MS,
228
+ NEW_SESSION_WHILE_DISCOVERY_RECONNECT_DELAY,
225
229
  () => {
226
230
  if (
227
231
  this.#connectionState === NodeStates.WaitingForDeviceDiscovery ||
@@ -237,13 +241,10 @@ export class PairedNode {
237
241
  },
238
242
  );
239
243
  #reconnectErrorCount = 0;
240
- readonly #updateEndpointStructureTimer = Time.getTimer(
241
- "Endpoint structure update",
242
- STRUCTURE_UPDATE_TIMEOUT_MS,
243
- () =>
244
- this.#updateEndpointStructure().catch(error =>
245
- logger.warn(`Node ${this.nodeId}: Error updating endpoint structure`, error),
246
- ),
244
+ readonly #updateEndpointStructureTimer = Time.getTimer("Endpoint structure update", STRUCTURE_UPDATE_TIMEOUT, () =>
245
+ this.#updateEndpointStructure().catch(error =>
246
+ logger.warn(`Node ${this.nodeId}: Error updating endpoint structure`, error),
247
+ ),
247
248
  );
248
249
  #connectionState: NodeStates = NodeStates.Disconnected;
249
250
  #reconnectionInProgress = false;
@@ -935,10 +936,10 @@ export class PairedNode {
935
936
  /** Handles a node shutDown event (if supported by the node and received). */
936
937
  #handleNodeShutdown() {
937
938
  logger.info(`Node ${this.nodeId}: Node shutdown detected, trying to reconnect ...`);
938
- this.#scheduleReconnect(RECONNECT_DELAY_AFTER_SHUTDOWN_MS);
939
+ this.#scheduleReconnect(RECONNECT_DELAY_AFTER_SHUTDOWN);
939
940
  }
940
941
 
941
- #scheduleReconnect(delay?: number) {
942
+ #scheduleReconnect(delay?: Duration) {
942
943
  if (this.state !== NodeStates.WaitingForDeviceDiscovery) {
943
944
  this.#setConnectionState(NodeStates.Reconnecting);
944
945
  }
@@ -948,10 +949,10 @@ export class PairedNode {
948
949
  }
949
950
  if (delay === undefined) {
950
951
  // Calculate a delay with a backoff strategy based on errorCount and maximum 10 minutes
951
- delay = Math.min(RECONNECT_DELAY_MS * 2 ** this.#reconnectErrorCount, RECONNECT_MAX_DELAY_MS);
952
+ delay = Duration.min(Millis(RECONNECT_DELAY * 2 ** this.#reconnectErrorCount), RECONNECT_MAX_DELAY);
952
953
  }
953
954
 
954
- logger.info(`Node ${this.nodeId}: Reconnecting in ${Math.round(delay / 1000)}s ...`);
955
+ logger.info(`Node ${this.nodeId}: Reconnecting ${delay ? `in ${Duration.format(delay)}` : "now"} ...`);
955
956
  this.#reconnectDelayTimer = Time.getTimer("Reconnect delay", delay, async () => await this.reconnect());
956
957
  this.#reconnectDelayTimer.start();
957
958
  }