@matter/protocol 0.17.6-alpha.0-20260715-312da87ed → 0.17.6

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 (65) hide show
  1. package/dist/cjs/action/client/subscription/ClientSubscriptionHandler.d.ts.map +1 -1
  2. package/dist/cjs/action/client/subscription/ClientSubscriptionHandler.js +1 -0
  3. package/dist/cjs/action/client/subscription/ClientSubscriptionHandler.js.map +1 -1
  4. package/dist/cjs/action/client/subscription/ClientSubscriptions.d.ts +6 -1
  5. package/dist/cjs/action/client/subscription/ClientSubscriptions.d.ts.map +1 -1
  6. package/dist/cjs/action/client/subscription/ClientSubscriptions.js +20 -1
  7. package/dist/cjs/action/client/subscription/ClientSubscriptions.js.map +1 -1
  8. package/dist/cjs/action/client/subscription/PeerSubscription.d.ts +2 -0
  9. package/dist/cjs/action/client/subscription/PeerSubscription.d.ts.map +1 -1
  10. package/dist/cjs/action/client/subscription/PeerSubscription.js +2 -0
  11. package/dist/cjs/action/client/subscription/PeerSubscription.js.map +1 -1
  12. package/dist/cjs/peer/Peer.d.ts.map +1 -1
  13. package/dist/cjs/peer/Peer.js +1 -1
  14. package/dist/cjs/peer/Peer.js.map +1 -1
  15. package/dist/cjs/peer/RebootResubscribeArmer.d.ts +24 -0
  16. package/dist/cjs/peer/RebootResubscribeArmer.d.ts.map +1 -0
  17. package/dist/cjs/peer/RebootResubscribeArmer.js +144 -0
  18. package/dist/cjs/peer/RebootResubscribeArmer.js.map +6 -0
  19. package/dist/cjs/peer/index.d.ts +1 -0
  20. package/dist/cjs/peer/index.d.ts.map +1 -1
  21. package/dist/cjs/peer/index.js +1 -0
  22. package/dist/cjs/peer/index.js.map +1 -1
  23. package/dist/cjs/protocol/MessageReceptionState.d.ts +11 -0
  24. package/dist/cjs/protocol/MessageReceptionState.d.ts.map +1 -1
  25. package/dist/cjs/protocol/MessageReceptionState.js +17 -3
  26. package/dist/cjs/protocol/MessageReceptionState.js.map +1 -1
  27. package/dist/cjs/session/SessionManager.js +1 -1
  28. package/dist/cjs/session/SessionManager.js.map +1 -1
  29. package/dist/esm/action/client/subscription/ClientSubscriptionHandler.d.ts.map +1 -1
  30. package/dist/esm/action/client/subscription/ClientSubscriptionHandler.js +2 -1
  31. package/dist/esm/action/client/subscription/ClientSubscriptionHandler.js.map +1 -1
  32. package/dist/esm/action/client/subscription/ClientSubscriptions.d.ts +6 -1
  33. package/dist/esm/action/client/subscription/ClientSubscriptions.d.ts.map +1 -1
  34. package/dist/esm/action/client/subscription/ClientSubscriptions.js +20 -1
  35. package/dist/esm/action/client/subscription/ClientSubscriptions.js.map +1 -1
  36. package/dist/esm/action/client/subscription/PeerSubscription.d.ts +2 -0
  37. package/dist/esm/action/client/subscription/PeerSubscription.d.ts.map +1 -1
  38. package/dist/esm/action/client/subscription/PeerSubscription.js +2 -0
  39. package/dist/esm/action/client/subscription/PeerSubscription.js.map +1 -1
  40. package/dist/esm/peer/Peer.d.ts.map +1 -1
  41. package/dist/esm/peer/Peer.js +1 -1
  42. package/dist/esm/peer/Peer.js.map +1 -1
  43. package/dist/esm/peer/RebootResubscribeArmer.d.ts +24 -0
  44. package/dist/esm/peer/RebootResubscribeArmer.d.ts.map +1 -0
  45. package/dist/esm/peer/RebootResubscribeArmer.js +124 -0
  46. package/dist/esm/peer/RebootResubscribeArmer.js.map +6 -0
  47. package/dist/esm/peer/index.d.ts +1 -0
  48. package/dist/esm/peer/index.d.ts.map +1 -1
  49. package/dist/esm/peer/index.js +1 -0
  50. package/dist/esm/peer/index.js.map +1 -1
  51. package/dist/esm/protocol/MessageReceptionState.d.ts +11 -0
  52. package/dist/esm/protocol/MessageReceptionState.d.ts.map +1 -1
  53. package/dist/esm/protocol/MessageReceptionState.js +17 -3
  54. package/dist/esm/protocol/MessageReceptionState.js.map +1 -1
  55. package/dist/esm/session/SessionManager.js +1 -1
  56. package/dist/esm/session/SessionManager.js.map +1 -1
  57. package/package.json +5 -5
  58. package/src/action/client/subscription/ClientSubscriptionHandler.ts +5 -1
  59. package/src/action/client/subscription/ClientSubscriptions.ts +21 -2
  60. package/src/action/client/subscription/PeerSubscription.ts +3 -0
  61. package/src/peer/Peer.ts +3 -2
  62. package/src/peer/RebootResubscribeArmer.ts +174 -0
  63. package/src/peer/index.ts +1 -0
  64. package/src/protocol/MessageReceptionState.ts +19 -2
  65. package/src/session/SessionManager.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ClientSubscriptionHandler.d.ts","sourceRoot":"","sources":["../../../../../src/action/client/subscription/ClientSubscriptionHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAK/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAI/D;;GAEG;AACH,qBAAa,yBAA0B,YAAW,eAAe;;IAC7D,EAAE,SAA2B;IAC7B,qBAAqB,UAAQ;IAI7B,YAAY,aAAa,EAAE,mBAAmB,EAE7C;IAEK,aAAa,CAAC,QAAQ,EAAE,eAAe,iBA2B5C;IAoFK,KAAK,kBAAK;CACnB"}
1
+ {"version":3,"file":"ClientSubscriptionHandler.d.ts","sourceRoot":"","sources":["../../../../../src/action/client/subscription/ClientSubscriptionHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAK/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAI/D;;GAEG;AACH,qBAAa,yBAA0B,YAAW,eAAe;;IAC7D,EAAE,SAA2B;IAC7B,qBAAqB,UAAQ;IAI7B,YAAY,aAAa,EAAE,mBAAmB,EAE7C;IAEK,aAAa,CAAC,QAAQ,EAAE,eAAe,iBA2B5C;IAwFK,KAAK,kBAAK;CACnB"}
@@ -150,6 +150,7 @@ class ClientSubscriptionHandler {
150
150
  }
151
151
  try {
152
152
  subscription.isReading = true;
153
+ subscription.lastReportStartedAt = import_general.Time.nowMs;
153
154
  if (!initialReport.attributeReports?.length && !initialReport.eventReports?.length) {
154
155
  subscription.request.keepaliveReceived?.();
155
156
  const ending = await reports.next();
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/action/client/subscription/ClientSubscriptionHandler.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -6,7 +6,7 @@
6
6
  import { ReadResult } from "#action/response/ReadResult.js";
7
7
  import { SubscriptionId } from "#interaction/Subscription.js";
8
8
  import { PeerAddress } from "#peer/PeerAddress.js";
9
- import { Environment, Environmental, Lifetime } from "@matter/general";
9
+ import { Environment, Environmental, Lifetime, Timestamp } from "@matter/general";
10
10
  import { ClientSubscription } from "./ClientSubscription.js";
11
11
  import type { PeerSubscription } from "./PeerSubscription.js";
12
12
  /**
@@ -55,6 +55,11 @@ export declare class ClientSubscriptions implements Lifetime.Owner {
55
55
  * Retrieve a {@link PeerSubscription} by ID.
56
56
  */
57
57
  getPeer(address: PeerAddress, id: SubscriptionId): PeerSubscription | undefined;
58
+ /**
59
+ * The most recent {@link PeerSubscription.lastReportStartedAt} across a peer's subscriptions, or `undefined` if
60
+ * the peer has no subscription that has yet started receiving a report.
61
+ */
62
+ lastReportStartedAtFor(address: PeerAddress): Timestamp | undefined;
58
63
  /**
59
64
  * Close all {@link PeerSubscription}s for a specific peer, triggering re-subscription.
60
65
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ClientSubscriptions.d.ts","sourceRoot":"","sources":["../../../../../src/action/client/subscription/ClientSubscriptions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAGH,WAAW,EACX,aAAa,EAEb,QAAQ,EAKX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;GAEG;AACH,qBAAa,mBAAoB,YAAW,QAAQ,CAAC,KAAK;;IAUtD,YAAY,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAEnC;IAED,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW,uBAI7C;IAED,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,YAEtB;IAED;;OAEG;IACH,IAAI,SAAS,YAEZ;IAED;;;OAGG;IACH,IAAI,kBAAkB,IAAI,WAAW,CAEpC;IAED;;;;;OAKG;IACG,gBAAgB,kBAgBrB;IAED;;;;;;;;OAQG;IACH,YAAY,IAAI,UAAU,CAiBzB;IAED;;OAEG;IACH,SAAS,CAAC,YAAY,EAAE,kBAAkB,QAEzC;IAED;;OAEG;IACH,OAAO,CAAC,YAAY,EAAE,gBAAgB,QAQrC;IAED;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,cAAc,gCAE/C;IAED;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,WAAW,QAQhC;IAED;;OAEG;IACH,MAAM,CAAC,YAAY,EAAE,kBAAkB,QAQtC;IAED;;OAEG;IACH,CAAC,MAAM,CAAC,QAAQ,CAAC,oCAEhB;IAED;;;OAGG;IACG,KAAK,kBAkBV;IAED;;OAEG;IACH,UAAU,SAqDT;CACJ;AAED,yBAAiB,mBAAmB,CAAC,CAAC;IAClC,UAAiB,QAAQ;QACrB,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC7D;CACJ"}
1
+ {"version":3,"file":"ClientSubscriptions.d.ts","sourceRoot":"","sources":["../../../../../src/action/client/subscription/ClientSubscriptions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAkB,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAGH,WAAW,EACX,aAAa,EAEb,QAAQ,EAIR,SAAS,EACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;GAEG;AACH,qBAAa,mBAAoB,YAAW,QAAQ,CAAC,KAAK;;IAUtD,YAAY,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAEnC;IAED,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW,uBAI7C;IAED,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,YAEtB;IAED;;OAEG;IACH,IAAI,SAAS,YAEZ;IAED;;;OAGG;IACH,IAAI,kBAAkB,IAAI,WAAW,CAEpC;IAED;;;;;OAKG;IACG,gBAAgB,kBAgBrB;IAED;;;;;;;;OAQG;IACH,YAAY,IAAI,UAAU,CAiBzB;IAED;;OAEG;IACH,SAAS,CAAC,YAAY,EAAE,kBAAkB,QAEzC;IAED;;OAEG;IACH,OAAO,CAAC,YAAY,EAAE,gBAAgB,QAQrC;IAED;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,cAAc,gCAE/C;IAED;;;OAGG;IACH,sBAAsB,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,GAAG,SAAS,CAalE;IAED;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,WAAW,QAQhC;IAED;;OAEG;IACH,MAAM,CAAC,YAAY,EAAE,kBAAkB,QAQtC;IAED;;OAEG;IACH,CAAC,MAAM,CAAC,QAAQ,CAAC,oCAEhB;IAED;;;OAGG;IACG,KAAK,kBAkBV;IAED;;OAEG;IACH,UAAU,SAqDT;CACJ;AAED,yBAAiB,mBAAmB,CAAC,CAAC;IAClC,UAAiB,QAAQ;QACrB,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC7D;CACJ"}
@@ -66,6 +66,7 @@ __export(ClientSubscriptions_exports, {
66
66
  ClientSubscriptions: () => ClientSubscriptions
67
67
  });
68
68
  module.exports = __toCommonJS(ClientSubscriptions_exports);
69
+ var import_PeerAddress = require("#peer/PeerAddress.js");
69
70
  var import_general = require("@matter/general");
70
71
  /**
71
72
  * @license
@@ -75,7 +76,7 @@ var import_general = require("@matter/general");
75
76
  class ClientSubscriptions {
76
77
  #lifetime;
77
78
  #active = new import_general.BasicSet();
78
- #peers = /* @__PURE__ */ new Map();
79
+ #peers = new import_PeerAddress.PeerAddressMap();
79
80
  #timeout;
80
81
  #blocked = false;
81
82
  #inFlightCount = 0;
@@ -173,6 +174,24 @@ class ClientSubscriptions {
173
174
  getPeer(address, id) {
174
175
  return this.#peers.get(address)?.get(id);
175
176
  }
177
+ /**
178
+ * The most recent {@link PeerSubscription.lastReportStartedAt} across a peer's subscriptions, or `undefined` if
179
+ * the peer has no subscription that has yet started receiving a report.
180
+ */
181
+ lastReportStartedAtFor(address) {
182
+ const forPeer = this.#peers.get(address);
183
+ if (forPeer === void 0) {
184
+ return void 0;
185
+ }
186
+ let latest;
187
+ for (const subscription of forPeer.values()) {
188
+ const reportedAt = subscription.lastReportStartedAt;
189
+ if (reportedAt !== void 0 && (latest === void 0 || reportedAt > latest)) {
190
+ latest = reportedAt;
191
+ }
192
+ }
193
+ return latest;
194
+ }
176
195
  /**
177
196
  * Close all {@link PeerSubscription}s for a specific peer, triggering re-subscription.
178
197
  */
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/action/client/subscription/ClientSubscriptions.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -15,6 +15,8 @@ export declare class PeerSubscription extends ClientSubscription {
15
15
  readonly maxInterval: number;
16
16
  isReading: boolean;
17
17
  timeoutAt?: Timestamp;
18
+ /** Wall-clock time the most recent inbound report (data or keepalive) started arriving on this subscription. */
19
+ lastReportStartedAt?: Timestamp;
18
20
  constructor(config: PeerSubscription.Configuration);
19
21
  get timeout(): Duration;
20
22
  timedOut(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"PeerSubscription.d.ts","sourceRoot":"","sources":["../../../../../src/action/client/subscription/PeerSubscription.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAc,QAAQ,EAAmB,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,kBAAkB;;IACpD,QAAQ,CAAC,wBAAwB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,SAAS,UAAS;IAElB,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,YAAY,MAAM,EAAE,gBAAgB,CAAC,aAAa,EAYjD;IAED,IAAI,OAAO,aAEV;IAED,QAAQ,SAWP;CACJ;AAED,yBAAiB,gBAAgB,CAAC,CAAC;IAC/B,UAAiB,aAAc,SAAQ,kBAAkB,CAAC,aAAa;QACnE,QAAQ,EAAE,iBAAiB,CAAC;QAC5B,mBAAmB,EAAE,QAAQ,CAAC;KACjC;CACJ"}
1
+ {"version":3,"file":"PeerSubscription.d.ts","sourceRoot":"","sources":["../../../../../src/action/client/subscription/PeerSubscription.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAc,QAAQ,EAAmB,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,kBAAkB;;IACpD,QAAQ,CAAC,wBAAwB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,SAAS,UAAS;IAElB,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,gHAAgH;IAChH,mBAAmB,CAAC,EAAE,SAAS,CAAC;IAEhC,YAAY,MAAM,EAAE,gBAAgB,CAAC,aAAa,EAYjD;IAED,IAAI,OAAO,aAEV;IAED,QAAQ,SAWP;CACJ;AAED,yBAAiB,gBAAgB,CAAC,CAAC;IAC/B,UAAiB,aAAc,SAAQ,kBAAkB,CAAC,aAAa;QACnE,QAAQ,EAAE,iBAAiB,CAAC;QAC5B,mBAAmB,EAAE,QAAQ,CAAC;KACjC;CACJ"}
@@ -35,6 +35,8 @@ class PeerSubscription extends import_ClientSubscription.ClientSubscription {
35
35
  #maxPeerResponseTime;
36
36
  isReading = false;
37
37
  timeoutAt;
38
+ /** Wall-clock time the most recent inbound report (data or keepalive) started arriving on this subscription. */
39
+ lastReportStartedAt;
38
40
  constructor(config) {
39
41
  const {
40
42
  maxPeerResponseTime,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/action/client/subscription/PeerSubscription.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,0BAA6B;AAC7B,qBAAiE;AAEjE,gCAAmC;AATnC;AAAA;AAAA;AAAA;AAAA;AAcO,MAAM,yBAAyB,6CAAmB;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACT,YAAY;AAAA,EAEZ;AAAA,EAEA,YAAY,QAAwC;AAChD,UAAM;AAAA,MACF;AAAA,MACA,UAAU,EAAE,gBAAgB,0BAA0B,YAAY;AAAA,IACtE,IAAI;AAEJ,UAAM,MAAM;AAEZ,SAAK,iBAAiB;AACtB,SAAK,2BAA2B;AAChC,SAAK,cAAc;AACnB,SAAK,uBAAuB;AAAA,EAChC;AAAA,EAEA,IAAI,UAAU;AACV,eAAO,2BAAO,wBAAQ,KAAK,WAAW,IAAI,KAAK,uBAAuB,CAAC;AAAA,EAC3E;AAAA,EAEA,WAAW;AACP,SAAK,OAAO;AAAA,MACR;AAAA,MACA,0BAAW,OAAO,iCAAa,QAAQ,KAAK,cAAc,CAAC;AAAA,MAC3D;AAAA,MACA,KAAK,KAAK,SAAS;AAAA,MACnB;AAAA,MACA,0BAAW,OAAO,wBAAS,OAAO,KAAK,OAAO,CAAC;AAAA,IACnD;AAEA,SAAK,MAAM;AAAA,EACf;AACJ;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,0BAA6B;AAC7B,qBAAiE;AAEjE,gCAAmC;AATnC;AAAA;AAAA;AAAA;AAAA;AAcO,MAAM,yBAAyB,6CAAmB;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACT,YAAY;AAAA,EAEZ;AAAA;AAAA,EAGA;AAAA,EAEA,YAAY,QAAwC;AAChD,UAAM;AAAA,MACF;AAAA,MACA,UAAU,EAAE,gBAAgB,0BAA0B,YAAY;AAAA,IACtE,IAAI;AAEJ,UAAM,MAAM;AAEZ,SAAK,iBAAiB;AACtB,SAAK,2BAA2B;AAChC,SAAK,cAAc;AACnB,SAAK,uBAAuB;AAAA,EAChC;AAAA,EAEA,IAAI,UAAU;AACV,eAAO,2BAAO,wBAAQ,KAAK,WAAW,IAAI,KAAK,uBAAuB,CAAC;AAAA,EAC3E;AAAA,EAEA,WAAW;AACP,SAAK,OAAO;AAAA,MACR;AAAA,MACA,0BAAW,OAAO,iCAAa,QAAQ,KAAK,cAAc,CAAC;AAAA,MAC3D;AAAA,MACA,KAAK,KAAK,SAAS;AAAA,MACnB;AAAA,MACA,0BAAW,OAAO,wBAAS,OAAO,KAAK,OAAO,CAAC;AAAA,IACnD;AAEA,SAAK,MAAM;AAAA,EACf;AACJ;",
5
5
  "names": []
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Peer.d.ts","sourceRoot":"","sources":["../../../src/peer/Peer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Peer.d.ts","sourceRoot":"","sources":["../../../src/peer/Peer.ts"],"names":[],"mappings":"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"}
@@ -480,7 +480,7 @@ class Peer {
480
480
  if (type !== void 0 && session.channel.transportChannel.type !== type) {
481
481
  continue;
482
482
  }
483
- if (!found || found.timestamp < session.timestamp) {
483
+ if (!found || found.activeTimestamp < session.activeTimestamp) {
484
484
  found = session;
485
485
  }
486
486
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/peer/Peer.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2026 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { ClientSubscriptions } from "#action/client/subscription/ClientSubscriptions.js";
7
+ import { PeerAddress } from "#peer/PeerAddress.js";
8
+ import { SessionManager } from "#session/SessionManager.js";
9
+ /**
10
+ * Speeds up controller re-subscription after a peer reboot for devices that do NOT persist subscriptions.
11
+ *
12
+ * Callers arm a peer when they know it is about to reboot and return (e.g. OTA reaching its apply phase). When the
13
+ * peer's new session appears we (A) close older sessions and (B) start a grace window: if the existing subscription
14
+ * receives a report within it (a persistent device fed it), we leave the subscription alone; otherwise we force
15
+ * re-subscription.
16
+ */
17
+ export declare class RebootResubscribeArmer {
18
+ #private;
19
+ constructor(sessions: SessionManager, subscriptions: ClientSubscriptions);
20
+ arm(peerAddress: PeerAddress): void;
21
+ disarm(peerAddress: PeerAddress): void;
22
+ [Symbol.dispose](): void;
23
+ }
24
+ //# sourceMappingURL=RebootResubscribeArmer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RebootResubscribeArmer.d.ts","sourceRoot":"","sources":["../../../src/peer/RebootResubscribeArmer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAC;AACzF,OAAO,EAAE,WAAW,EAAkB,MAAM,sBAAsB,CAAC;AAGnE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAsB5D;;;;;;;GAOG;AACH,qBAAa,sBAAsB;;IAM/B,YAAY,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAIvE;IAED,GAAG,CAAC,WAAW,EAAE,WAAW,QAmB3B;IAED,MAAM,CAAC,WAAW,EAAE,WAAW,QAS9B;IAmFD,CAAC,MAAM,CAAC,OAAO,CAAC,SAOf;CACJ"}
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var RebootResubscribeArmer_exports = {};
20
+ __export(RebootResubscribeArmer_exports, {
21
+ RebootResubscribeArmer: () => RebootResubscribeArmer
22
+ });
23
+ module.exports = __toCommonJS(RebootResubscribeArmer_exports);
24
+ var import_PeerAddress = require("#peer/PeerAddress.js");
25
+ var import_PeerCommunicationError = require("#peer/PeerCommunicationError.js");
26
+ var import_general = require("@matter/general");
27
+ /**
28
+ * @license
29
+ * Copyright 2022-2026 Matter.js Authors
30
+ * SPDX-License-Identifier: Apache-2.0
31
+ */
32
+ const logger = import_general.Logger.get("RebootResubscribeArmer");
33
+ const DEFAULT_REBOOT_RESUBSCRIBE_GRACE = (0, import_general.Seconds)(30);
34
+ const EXPECTED_RETURN_TIMEOUT = (0, import_general.Minutes)(3);
35
+ class RebootResubscribeArmer {
36
+ #sessions;
37
+ #subscriptions;
38
+ #armed = new import_PeerAddress.PeerAddressMap();
39
+ #observers = new import_general.ObserverGroup();
40
+ constructor(sessions, subscriptions) {
41
+ this.#sessions = sessions;
42
+ this.#subscriptions = subscriptions;
43
+ this.#observers.on(sessions.sessions.added, (session) => this.#onSessionAdded(session));
44
+ }
45
+ arm(peerAddress) {
46
+ peerAddress = (0, import_PeerAddress.PeerAddress)(peerAddress);
47
+ let state = this.#armed.get(peerAddress);
48
+ if (state === void 0) {
49
+ state = {};
50
+ this.#armed.set(peerAddress, state);
51
+ } else {
52
+ state.graceTimer?.stop();
53
+ state.graceTimer = void 0;
54
+ state.newSessionAt = void 0;
55
+ state.returnTimer?.stop();
56
+ }
57
+ state.returnTimer = import_general.Time.getTimer(
58
+ "Reboot return deadline",
59
+ EXPECTED_RETURN_TIMEOUT,
60
+ () => this.#onReturnTimeout(peerAddress)
61
+ );
62
+ state.returnTimer.start();
63
+ }
64
+ disarm(peerAddress) {
65
+ peerAddress = (0, import_PeerAddress.PeerAddress)(peerAddress);
66
+ const state = this.#armed.get(peerAddress);
67
+ if (state === void 0) {
68
+ return;
69
+ }
70
+ state.graceTimer?.stop();
71
+ state.returnTimer?.stop();
72
+ this.#armed.delete(peerAddress);
73
+ }
74
+ #onSessionAdded(session) {
75
+ if (session.isInitiator) {
76
+ return;
77
+ }
78
+ const peerAddress = (0, import_PeerAddress.PeerAddress)(session.peerAddress);
79
+ const state = this.#armed.get(peerAddress);
80
+ if (state === void 0) {
81
+ return;
82
+ }
83
+ state.returnTimer?.stop();
84
+ state.returnTimer = void 0;
85
+ this.#sessions.handlePeerShutdown(peerAddress, session.createdAt).catch((error) => logger.warn(peerAddress, "Failed to close older sessions", error));
86
+ state.newSessionAt = session.createdAt;
87
+ state.graceTimer?.stop();
88
+ state.graceTimer = import_general.Time.getTimer(
89
+ "Reboot resubscribe grace",
90
+ DEFAULT_REBOOT_RESUBSCRIBE_GRACE,
91
+ () => this.#onGraceExpired(peerAddress)
92
+ );
93
+ state.graceTimer.start();
94
+ }
95
+ #onGraceExpired(peerAddress) {
96
+ const state = this.#armed.get(peerAddress);
97
+ if (state === void 0) {
98
+ return;
99
+ }
100
+ const lastReportStartedAt = this.#subscriptions.lastReportStartedAtFor(peerAddress);
101
+ const fedSinceReturn = lastReportStartedAt !== void 0 && state.newSessionAt !== void 0 && lastReportStartedAt >= state.newSessionAt;
102
+ if (!fedSinceReturn) {
103
+ this.#subscriptions.closeForPeer(peerAddress);
104
+ }
105
+ this.disarm(peerAddress);
106
+ }
107
+ #onReturnTimeout(peerAddress) {
108
+ const state = this.#armed.get(peerAddress);
109
+ if (state === void 0) {
110
+ return;
111
+ }
112
+ logger.info(
113
+ peerAddress,
114
+ "did not re-establish a session after the expected reboot; assuming it restarted, reconnecting"
115
+ );
116
+ this.disarm(peerAddress);
117
+ this.#recoverSilentPeer(peerAddress).catch(
118
+ (error) => logger.warn(peerAddress, "Failed to recover peer after apply timeout", error)
119
+ );
120
+ }
121
+ /**
122
+ * The device was approved to apply and reboot but never re-established a session, so assume it restarted and is
123
+ * silent: drop stale sessions and force re-subscription to recover before the much longer subscription timeout.
124
+ * Re-subscription runs even if session teardown fails — a lingering stale session self-corrects via the
125
+ * re-subscribe probe (which prefers the freshest session), so it cannot be reused.
126
+ */
127
+ async #recoverSilentPeer(peerAddress) {
128
+ try {
129
+ await this.#sessions.handlePeerLoss(peerAddress, new import_PeerCommunicationError.PeerUnresponsiveError());
130
+ } catch (error) {
131
+ logger.warn(peerAddress, "Failed to close sessions during apply-timeout recovery", error);
132
+ }
133
+ this.#subscriptions.closeForPeer(peerAddress);
134
+ }
135
+ [Symbol.dispose]() {
136
+ for (const state of this.#armed.values()) {
137
+ state.graceTimer?.stop();
138
+ state.returnTimer?.stop();
139
+ }
140
+ this.#armed.clear();
141
+ this.#observers.close();
142
+ }
143
+ }
144
+ //# sourceMappingURL=RebootResubscribeArmer.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/peer/RebootResubscribeArmer.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -16,4 +16,5 @@ export * from "./PeerLossContext.js";
16
16
  export * from "./PeerSet.js";
17
17
  export * from "./PeerTimingParameters.js";
18
18
  export * from "./PhysicalDeviceProperties.js";
19
+ export * from "./RebootResubscribeArmer.js";
19
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/peer/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/peer/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC"}
@@ -28,6 +28,7 @@ __reExport(peer_exports, require("./PeerLossContext.js"), module.exports);
28
28
  __reExport(peer_exports, require("./PeerSet.js"), module.exports);
29
29
  __reExport(peer_exports, require("./PeerTimingParameters.js"), module.exports);
30
30
  __reExport(peer_exports, require("./PhysicalDeviceProperties.js"), module.exports);
31
+ __reExport(peer_exports, require("./RebootResubscribeArmer.js"), module.exports);
31
32
  /**
32
33
  * @license
33
34
  * Copyright 2022-2026 Matter.js Authors
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/peer/index.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,yBAAc,oCANd;AAOA,yBAAc,wCAPd;AAQA,yBAAc,6CARd;AASA,yBAAc,gCATd;AAUA,yBAAc,sBAVd;AAWA,yBAAc,6BAXd;AAYA,yBAAc,wCAZd;AAaA,yBAAc,gCAbd;AAcA,yBAAc,sCAdd;AAeA,yBAAc,iCAfd;AAgBA,yBAAc,yBAhBd;AAiBA,yBAAc,sCAjBd;AAkBA,yBAAc,0CAlBd;AAAA;AAAA;AAAA;AAAA;AAAA;",
4
+ "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,yBAAc,oCANd;AAOA,yBAAc,wCAPd;AAQA,yBAAc,6CARd;AASA,yBAAc,gCATd;AAUA,yBAAc,sBAVd;AAWA,yBAAc,6BAXd;AAYA,yBAAc,wCAZd;AAaA,yBAAc,gCAbd;AAcA,yBAAc,sCAdd;AAeA,yBAAc,iCAfd;AAgBA,yBAAc,yBAhBd;AAiBA,yBAAc,sCAjBd;AAkBA,yBAAc,0CAlBd;AAmBA,yBAAc,wCAnBd;AAAA;AAAA;AAAA;AAAA;AAAA;",
5
5
  "names": []
6
6
  }
@@ -20,6 +20,11 @@ export declare class MessageReceptionStateEncryptedWithoutRollover extends Messa
20
20
  protected maximumMessageCounter: number | undefined;
21
21
  private messageCounterBitmap;
22
22
  constructor(messageCounter?: number);
23
+ /**
24
+ * Bitmap seeded when the window is first anchored to a counter. All-1s for encrypted messages marks every
25
+ * sub-max counter as already-received (replay protection).
26
+ */
27
+ protected get initialBitmap(): number;
23
28
  /** Initialize the message counter state. */
24
29
  private initialize;
25
30
  /**
@@ -60,6 +65,12 @@ export declare class MessageReceptionStateEncryptedWithRollover extends MessageR
60
65
  * back the window to the current location.
61
66
  */
62
67
  export declare class MessageReceptionStateUnencryptedWithRollover extends MessageReceptionStateEncryptedWithoutRollover {
68
+ /**
69
+ * Empty window: no sub-max counters have been received yet, so legitimately reordered messages below the first
70
+ * observed counter stay acceptable. Unencrypted duplicate detection is not a security control, so this loses
71
+ * nothing; matches the CHIP reference implementation, which has never seeded a full window.
72
+ */
73
+ protected get initialBitmap(): number;
63
74
  protected calculateDiff(messageCounter: number): number;
64
75
  }
65
76
  //# sourceMappingURL=MessageReceptionState.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageReceptionState.d.ts","sourceRoot":"","sources":["../../../src/protocol/MessageReceptionState.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAiB,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAS7D,qBAAa,qBAAsB,SAAQ,WAAW;CAAG;AAEzD,8BAAsB,qBAAqB;IACvC,QAAQ,CAAC,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/D;AAED;;;;;;GAMG;AACH,qBAAa,6CAA8C,SAAQ,qBAAqB;IACpF,SAAS,CAAC,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;IACpD,OAAO,CAAC,oBAAoB,CAAc;IAE1C,YAAY,cAAc,CAAC,EAAE,MAAM,EAKlC;IAED,4CAA4C;IAC5C,OAAO,CAAC,UAAU;IAKlB;;;;;;;OAOG;IACH,SAAS,CAAC,aAAa,CAAC,cAAc,EAAE,MAAM,UAK7C;IAED,iDAAiD;IACjD,OAAO,CAAC,6BAA6B;IAqBrC,6CAA6C;IAC7C,OAAO,CAAC,6BAA6B;IAarC,2DAA2D;IAC3D,OAAO,CAAC,sBAAsB;IAK9B;;OAEG;IACH,oBAAoB,CAAC,cAAc,EAAE,MAAM,QA0B1C;CACJ;AAED;;;;;GAKG;AACH,qBAAa,0CAA2C,SAAQ,6CAA6C;IACzG,UAAmB,aAAa,CAAC,cAAc,EAAE,MAAM,UAsBtD;CACJ;AAED;;;;;;;GAOG;AACH,qBAAa,4CAA6C,SAAQ,6CAA6C;IAC3G,UAAmB,aAAa,CAAC,cAAc,EAAE,MAAM,UAyBtD;CACJ"}
1
+ {"version":3,"file":"MessageReceptionState.d.ts","sourceRoot":"","sources":["../../../src/protocol/MessageReceptionState.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAiB,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAS7D,qBAAa,qBAAsB,SAAQ,WAAW;CAAG;AAEzD,8BAAsB,qBAAqB;IACvC,QAAQ,CAAC,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/D;AAED;;;;;;GAMG;AACH,qBAAa,6CAA8C,SAAQ,qBAAqB;IACpF,SAAS,CAAC,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;IACpD,OAAO,CAAC,oBAAoB,CAAsB;IAElD,YAAY,cAAc,CAAC,EAAE,MAAM,EAKlC;IAED;;;OAGG;IACH,SAAS,KAAK,aAAa,IAAI,MAAM,CAEpC;IAED,4CAA4C;IAC5C,OAAO,CAAC,UAAU;IAKlB;;;;;;;OAOG;IACH,SAAS,CAAC,aAAa,CAAC,cAAc,EAAE,MAAM,UAK7C;IAED,iDAAiD;IACjD,OAAO,CAAC,6BAA6B;IAqBrC,6CAA6C;IAC7C,OAAO,CAAC,6BAA6B;IAarC,2DAA2D;IAC3D,OAAO,CAAC,sBAAsB;IAK9B;;OAEG;IACH,oBAAoB,CAAC,cAAc,EAAE,MAAM,QA0B1C;CACJ;AAED;;;;;GAKG;AACH,qBAAa,0CAA2C,SAAQ,6CAA6C;IACzG,UAAmB,aAAa,CAAC,cAAc,EAAE,MAAM,UAsBtD;CACJ;AAED;;;;;;;GAOG;AACH,qBAAa,4CAA6C,SAAQ,6CAA6C;IAC3G;;;;OAIG;IACH,cAAuB,aAAa,IAAI,MAAM,CAE7C;IAED,UAAmB,aAAa,CAAC,cAAc,EAAE,MAAM,UAyBtD;CACJ"}
@@ -40,18 +40,24 @@ class MessageReceptionState {
40
40
  }
41
41
  class MessageReceptionStateEncryptedWithoutRollover extends MessageReceptionState {
42
42
  maximumMessageCounter;
43
- messageCounterBitmap = 4294967295;
44
- // All bits set to 1
43
+ messageCounterBitmap = this.initialBitmap;
45
44
  constructor(messageCounter) {
46
45
  super();
47
46
  if (messageCounter !== void 0) {
48
47
  this.initialize(messageCounter);
49
48
  }
50
49
  }
50
+ /**
51
+ * Bitmap seeded when the window is first anchored to a counter. All-1s for encrypted messages marks every
52
+ * sub-max counter as already-received (replay protection).
53
+ */
54
+ get initialBitmap() {
55
+ return 4294967295;
56
+ }
51
57
  /** Initialize the message counter state. */
52
58
  initialize(messageCounter) {
53
59
  this.maximumMessageCounter = messageCounter;
54
- this.messageCounterBitmap = 4294967295;
60
+ this.messageCounterBitmap = this.initialBitmap;
55
61
  }
56
62
  /**
57
63
  * Calculate plain diff without rollover.
@@ -145,6 +151,14 @@ class MessageReceptionStateEncryptedWithRollover extends MessageReceptionStateEn
145
151
  }
146
152
  }
147
153
  class MessageReceptionStateUnencryptedWithRollover extends MessageReceptionStateEncryptedWithoutRollover {
154
+ /**
155
+ * Empty window: no sub-max counters have been received yet, so legitimately reordered messages below the first
156
+ * observed counter stay acceptable. Unencrypted duplicate detection is not a security control, so this loses
157
+ * nothing; matches the CHIP reference implementation, which has never seeded a full window.
158
+ */
159
+ get initialBitmap() {
160
+ return 0;
161
+ }
148
162
  calculateDiff(messageCounter) {
149
163
  if (this.maximumMessageCounter === void 0) {
150
164
  return 0;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/protocol/MessageReceptionState.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -334,7 +334,7 @@ class SessionManager {
334
334
  this.#construction.assert();
335
335
  let found;
336
336
  for (const session of this.#sessions) {
337
- if (!session.peerIs(address) || session.isClosing) {
337
+ if (!session.peerIs(address) || session.isClosing || session.isPeerLost) {
338
338
  continue;
339
339
  }
340
340
  if (!found || found.activeTimestamp < session.activeTimestamp) {