@matter/node 0.17.8-alpha.0-20260801-92169d0aa → 0.17.8

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 (35) hide show
  1. package/dist/cjs/behavior/system/software-update/OtaProgress.d.ts +13 -0
  2. package/dist/cjs/behavior/system/software-update/OtaProgress.d.ts.map +1 -0
  3. package/dist/cjs/behavior/system/software-update/OtaProgress.js +31 -0
  4. package/dist/cjs/behavior/system/software-update/OtaProgress.js.map +6 -0
  5. package/dist/cjs/behavior/system/software-update/SoftwareUpdateManager.d.ts +10 -2
  6. package/dist/cjs/behavior/system/software-update/SoftwareUpdateManager.d.ts.map +1 -1
  7. package/dist/cjs/behavior/system/software-update/SoftwareUpdateManager.js +51 -13
  8. package/dist/cjs/behavior/system/software-update/SoftwareUpdateManager.js.map +1 -1
  9. package/dist/cjs/behavior/system/software-update/index.d.ts +1 -0
  10. package/dist/cjs/behavior/system/software-update/index.d.ts.map +1 -1
  11. package/dist/cjs/behavior/system/software-update/index.js +1 -0
  12. package/dist/cjs/behavior/system/software-update/index.js.map +1 -1
  13. package/dist/cjs/behaviors/ota-software-update-provider/OtaSoftwareUpdateProviderServer.d.ts.map +1 -1
  14. package/dist/cjs/behaviors/ota-software-update-provider/OtaSoftwareUpdateProviderServer.js +10 -4
  15. package/dist/cjs/behaviors/ota-software-update-provider/OtaSoftwareUpdateProviderServer.js.map +1 -1
  16. package/dist/esm/behavior/system/software-update/OtaProgress.d.ts +13 -0
  17. package/dist/esm/behavior/system/software-update/OtaProgress.d.ts.map +1 -0
  18. package/dist/esm/behavior/system/software-update/OtaProgress.js +11 -0
  19. package/dist/esm/behavior/system/software-update/OtaProgress.js.map +6 -0
  20. package/dist/esm/behavior/system/software-update/SoftwareUpdateManager.d.ts +10 -2
  21. package/dist/esm/behavior/system/software-update/SoftwareUpdateManager.d.ts.map +1 -1
  22. package/dist/esm/behavior/system/software-update/SoftwareUpdateManager.js +51 -13
  23. package/dist/esm/behavior/system/software-update/SoftwareUpdateManager.js.map +1 -1
  24. package/dist/esm/behavior/system/software-update/index.d.ts +1 -0
  25. package/dist/esm/behavior/system/software-update/index.d.ts.map +1 -1
  26. package/dist/esm/behavior/system/software-update/index.js +1 -0
  27. package/dist/esm/behavior/system/software-update/index.js.map +1 -1
  28. package/dist/esm/behaviors/ota-software-update-provider/OtaSoftwareUpdateProviderServer.d.ts.map +1 -1
  29. package/dist/esm/behaviors/ota-software-update-provider/OtaSoftwareUpdateProviderServer.js +10 -4
  30. package/dist/esm/behaviors/ota-software-update-provider/OtaSoftwareUpdateProviderServer.js.map +1 -1
  31. package/package.json +6 -6
  32. package/src/behavior/system/software-update/OtaProgress.ts +15 -0
  33. package/src/behavior/system/software-update/SoftwareUpdateManager.ts +68 -14
  34. package/src/behavior/system/software-update/index.ts +1 -0
  35. package/src/behaviors/ota-software-update-provider/OtaSoftwareUpdateProviderServer.ts +14 -6
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
+ import { OTA_PROGRESS_TIMEOUT } from "#behavior/system/software-update/OtaProgress.js";
7
8
  import {
8
9
  OtaUpdateAvailableDetails,
9
10
  OtaUpdateStatus,
@@ -302,11 +303,11 @@ export class OtaSoftwareUpdateProviderServer extends OtaSoftwareUpdateProviderBe
302
303
  return;
303
304
  }
304
305
 
305
- // Found our session unregister from sessionStarted to prevent listener accumulation
306
- bdxProtocol.sessionStarted.off(sessionListener);
307
-
306
+ // A failed download is retried on a fresh session, so stay registered for the whole cycle. The
307
+ // entry is removed on a terminal state, and its cleanup unregisters this listener.
308
308
  // Verify the entry still exists (might have been canceled/timed-out-since queryImage)
309
- if (this.#inProgressDetailsForPeer(peerAddress, updateToken) === undefined) {
309
+ const transferDetails = this.#inProgressDetailsForPeer(peerAddress, updateToken);
310
+ if (transferDetails === undefined) {
310
311
  return;
311
312
  }
312
313
 
@@ -316,6 +317,10 @@ export class OtaSoftwareUpdateProviderServer extends OtaSoftwareUpdateProviderBe
316
317
  OtaUpdateStatus.Downloading,
317
318
  newSoftwareVersion,
318
319
  );
320
+ // A transfer in flight keeps its entry alive; the state does not change again until it ends
321
+ bdxSession.progressInfo.on(() => {
322
+ transferDetails.timestamp = Time.nowMs;
323
+ });
319
324
  bdxSession.progressFinished.on(() =>
320
325
  this.#updateInProgressDetails(
321
326
  peerAddress,
@@ -356,7 +361,10 @@ export class OtaSoftwareUpdateProviderServer extends OtaSoftwareUpdateProviderBe
356
361
  const details = this.internal.inProgressDetails.get(
357
362
  `${peerAddress.nodeId}-${peerAddress.fabricIndex}-${Bytes.toHex(updateToken)}`,
358
363
  );
359
- if (details !== undefined) {
364
+ if (details === undefined) {
365
+ // Nothing will ever run the cleanup, so do not leave the listener behind
366
+ bdxProtocol.sessionStarted.off(sessionListener);
367
+ } else {
360
368
  details.cleanup = () => bdxProtocol.sessionStarted.off(sessionListener);
361
369
  }
362
370
 
@@ -505,7 +513,7 @@ export class OtaSoftwareUpdateProviderServer extends OtaSoftwareUpdateProviderBe
505
513
  }
506
514
 
507
515
  #removeIfStale(key: string, details: OtaUpdateInProgressDetails, peerAddress: PeerAddress, now: Timestamp) {
508
- if (details.timestamp + Minutes(15) >= now) {
516
+ if (details.timestamp + OTA_PROGRESS_TIMEOUT >= now) {
509
517
  return false;
510
518
  }
511
519
  logger.info(