@matter/protocol 0.14.0-alpha.0-20250521-979eda05d → 0.14.0-alpha.0-20250525-d6ada0d45

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/action/server/AttributeWriteResponse.d.ts.map +1 -1
  2. package/dist/cjs/action/server/AttributeWriteResponse.js +1 -14
  3. package/dist/cjs/action/server/AttributeWriteResponse.js.map +1 -1
  4. package/dist/cjs/events/OccurrenceManager.d.ts +10 -2
  5. package/dist/cjs/events/OccurrenceManager.d.ts.map +1 -1
  6. package/dist/cjs/events/OccurrenceManager.js +57 -11
  7. package/dist/cjs/events/OccurrenceManager.js.map +1 -1
  8. package/dist/cjs/fabric/Fabric.d.ts +2 -11
  9. package/dist/cjs/fabric/Fabric.d.ts.map +1 -1
  10. package/dist/cjs/fabric/Fabric.js +1 -38
  11. package/dist/cjs/fabric/Fabric.js.map +1 -1
  12. package/dist/cjs/mdns/MdnsScanner.d.ts +23 -1
  13. package/dist/cjs/mdns/MdnsScanner.d.ts.map +1 -1
  14. package/dist/cjs/mdns/MdnsScanner.js +124 -11
  15. package/dist/cjs/mdns/MdnsScanner.js.map +2 -2
  16. package/dist/esm/action/server/AttributeWriteResponse.d.ts.map +1 -1
  17. package/dist/esm/action/server/AttributeWriteResponse.js +2 -15
  18. package/dist/esm/action/server/AttributeWriteResponse.js.map +1 -1
  19. package/dist/esm/events/OccurrenceManager.d.ts +10 -2
  20. package/dist/esm/events/OccurrenceManager.d.ts.map +1 -1
  21. package/dist/esm/events/OccurrenceManager.js +62 -12
  22. package/dist/esm/events/OccurrenceManager.js.map +1 -1
  23. package/dist/esm/fabric/Fabric.d.ts +2 -11
  24. package/dist/esm/fabric/Fabric.d.ts.map +1 -1
  25. package/dist/esm/fabric/Fabric.js +1 -38
  26. package/dist/esm/fabric/Fabric.js.map +1 -1
  27. package/dist/esm/mdns/MdnsScanner.d.ts +23 -1
  28. package/dist/esm/mdns/MdnsScanner.d.ts.map +1 -1
  29. package/dist/esm/mdns/MdnsScanner.js +127 -11
  30. package/dist/esm/mdns/MdnsScanner.js.map +2 -2
  31. package/package.json +6 -6
  32. package/src/action/server/AttributeWriteResponse.ts +2 -20
  33. package/src/events/OccurrenceManager.ts +91 -11
  34. package/src/fabric/Fabric.ts +1 -49
  35. package/src/mdns/MdnsScanner.ts +187 -12
@@ -66,6 +66,13 @@ class MdnsScanner {
66
66
  #closing = false;
67
67
  #multicastServer;
68
68
  #enableIpv4;
69
+ #targetCriteriaProviders = new import_general.BasicSet();
70
+ #scanForCommissionableDevices = false;
71
+ #hasCommissionableWaiters = false;
72
+ #operationalScanTargets = /* @__PURE__ */ new Set();
73
+ #observers = new import_general.ObserverGroup();
74
+ /** True, if any node is interested in MDNS traffic, else we ignore all traffic */
75
+ #listening = false;
69
76
  constructor(multicastServer, enableIpv4) {
70
77
  multicastServer.onMessage(
71
78
  (message, remoteIp, netInterface) => this.#handleDnsMessage(message, remoteIp, netInterface)
@@ -77,6 +84,59 @@ class MdnsScanner {
77
84
  60 * 1e3,
78
85
  () => this.#expire()
79
86
  ).start();
87
+ this.#observers.on(this.#targetCriteriaProviders.added, () => this.#handleChangedScanTargets());
88
+ this.#observers.on(this.#targetCriteriaProviders.deleted, () => this.#handleChangedScanTargets());
89
+ }
90
+ /** Set to add or delete criteria for MDNS discovery */
91
+ get targetCriteriaProviders() {
92
+ return this.#targetCriteriaProviders;
93
+ }
94
+ #handleChangedScanTargets() {
95
+ this.#updateScanTargets();
96
+ logger.info(
97
+ "MDNS Scan targets updated :",
98
+ `commissionable = ${this.#scanForCommissionableDevices}`,
99
+ "Targets:",
100
+ this.#operationalScanTargets
101
+ );
102
+ }
103
+ /** Update the MDNS scan criteria state and collect the desired operational targets */
104
+ #updateScanTargets() {
105
+ if (this.#closing) {
106
+ return;
107
+ }
108
+ this.#operationalScanTargets.clear();
109
+ let cacheCommissionableDevices = false;
110
+ for (const criteria of this.#targetCriteriaProviders) {
111
+ const { operationalTargets, commissionable } = criteria;
112
+ cacheCommissionableDevices = cacheCommissionableDevices || commissionable;
113
+ for (const { operationalId, nodeId } of operationalTargets) {
114
+ const operationalIdString = import_general.Bytes.toHex(operationalId).toUpperCase();
115
+ if (nodeId === void 0) {
116
+ this.#operationalScanTargets.add(operationalIdString);
117
+ } else {
118
+ this.#operationalScanTargets.add(`${operationalIdString}-${import_types.NodeId.toHexString(nodeId)}`);
119
+ }
120
+ }
121
+ }
122
+ this.#scanForCommissionableDevices = cacheCommissionableDevices;
123
+ for (const queryId of this.#recordWaiters.keys()) {
124
+ this.#registerOperationalQuery(queryId);
125
+ }
126
+ this.#updateListeningStatus();
127
+ }
128
+ /** Update the status of we care about MDNS messages or not */
129
+ #updateListeningStatus() {
130
+ const formerListenStatus = this.#listening;
131
+ this.#listening = this.#scanForCommissionableDevices || this.#operationalScanTargets.size > 0 || this.#recordWaiters.size > 0 || this.#activeAnnounceQueries.size > 0;
132
+ if (!this.#listening) {
133
+ this.#discoveredIpRecords.clear();
134
+ this.#operationalDeviceRecords.clear();
135
+ this.#commissionableDeviceRecords.clear();
136
+ }
137
+ if (this.#listening !== formerListenStatus) {
138
+ logger.debug(`MDNS Scanner ${this.#listening ? "started" : "stopped"} listening for MDNS messages`);
139
+ }
80
140
  }
81
141
  #effectiveTTL(ttl) {
82
142
  return Math.ceil(ttl * MDNS_EXPIRY_GRACE_PERIOD_FACTOR);
@@ -251,17 +311,30 @@ class MdnsScanner {
251
311
  return 0;
252
312
  });
253
313
  }
314
+ #registerOperationalQuery(queryId) {
315
+ const separator = queryId.indexOf(".");
316
+ if (separator !== -1) {
317
+ this.#operationalScanTargets.add(queryId.substring(0, separator));
318
+ } else {
319
+ throw new import_general.InternalError(`Invalid queryId ${queryId} for operational device, no separator found`);
320
+ }
321
+ }
254
322
  /**
255
323
  * Registers a deferred promise for a specific queryId together with a timeout and return the promise.
256
324
  * The promise will be resolved when the timer runs out latest.
257
325
  */
258
- async #registerWaiterPromise(queryId, timeoutSeconds, resolveOnUpdatedRecords = true, cancelResolver) {
326
+ async #registerWaiterPromise(queryId, commissionable, timeoutSeconds, resolveOnUpdatedRecords = true, cancelResolver) {
259
327
  const { promise, resolver } = (0, import_general.createPromise)();
260
328
  const timer = timeoutSeconds !== void 0 ? import_general.Time.getTimer("MDNS timeout", timeoutSeconds * 1e3, () => {
261
329
  cancelResolver?.();
262
330
  this.#finishWaiter(queryId, true);
263
331
  }).start() : void 0;
264
- this.#recordWaiters.set(queryId, { resolver, timer, resolveOnUpdatedRecords, cancelResolver });
332
+ this.#listening = true;
333
+ this.#recordWaiters.set(queryId, { resolver, timer, resolveOnUpdatedRecords, cancelResolver, commissionable });
334
+ this.#hasCommissionableWaiters = this.#hasCommissionableWaiters || commissionable;
335
+ if (!commissionable) {
336
+ this.#registerOperationalQuery(queryId);
337
+ }
265
338
  logger.debug(
266
339
  `Registered waiter for query ${queryId} with ${timeoutSeconds !== void 0 ? `timeout ${timeoutSeconds} seconds` : "no timeout"}${resolveOnUpdatedRecords ? "" : " (not resolving on updated records)"}`
267
340
  );
@@ -274,7 +347,7 @@ class MdnsScanner {
274
347
  #finishWaiter(queryId, resolvePromise, isUpdatedRecord = false) {
275
348
  const waiter = this.#recordWaiters.get(queryId);
276
349
  if (waiter === void 0) return;
277
- const { timer, resolver, resolveOnUpdatedRecords } = waiter;
350
+ const { timer, resolver, resolveOnUpdatedRecords, commissionable } = waiter;
278
351
  if (isUpdatedRecord && !resolveOnUpdatedRecords) return;
279
352
  logger.debug(`Finishing waiter for query ${queryId}, resolving: ${resolvePromise}`);
280
353
  if (timer !== void 0) {
@@ -284,6 +357,29 @@ class MdnsScanner {
284
357
  resolver();
285
358
  }
286
359
  this.#recordWaiters.delete(queryId);
360
+ this.#removeQuery(queryId);
361
+ if (!this.#closing) {
362
+ this.#hasCommissionableWaiters = false;
363
+ let hasOperationalWaiters = false;
364
+ for (const { commissionable: commissionable2 } of this.#recordWaiters.values()) {
365
+ if (commissionable2) {
366
+ this.#hasCommissionableWaiters = true;
367
+ if (hasOperationalWaiters) {
368
+ break;
369
+ }
370
+ } else {
371
+ hasOperationalWaiters = true;
372
+ if (this.#hasCommissionableWaiters) {
373
+ break;
374
+ }
375
+ }
376
+ }
377
+ if (!commissionable) {
378
+ this.#updateScanTargets();
379
+ } else {
380
+ this.#updateListeningStatus();
381
+ }
382
+ }
287
383
  }
288
384
  /** Returns weather a waiter promise is registered for a specific queryId. */
289
385
  #hasWaiter(queryId) {
@@ -304,7 +400,7 @@ class MdnsScanner {
304
400
  const deviceMatterQname = this.#createOperationalMatterQName(operationalId, nodeId);
305
401
  let storedDevice = ignoreExistingRecords ? void 0 : this.#getOperationalDeviceRecords(deviceMatterQname);
306
402
  if (storedDevice === void 0) {
307
- const promise = this.#registerWaiterPromise(deviceMatterQname, timeoutSeconds);
403
+ const promise = this.#registerWaiterPromise(deviceMatterQname, false, timeoutSeconds);
308
404
  this.#setQueryRecords(deviceMatterQname, [
309
405
  {
310
406
  name: deviceMatterQname,
@@ -314,7 +410,6 @@ class MdnsScanner {
314
410
  ]);
315
411
  await promise;
316
412
  storedDevice = this.#getOperationalDeviceRecords(deviceMatterQname);
317
- this.#removeQuery(deviceMatterQname);
318
413
  }
319
414
  return storedDevice;
320
415
  }
@@ -489,11 +584,10 @@ class MdnsScanner {
489
584
  let storedRecords = ignoreExistingRecords ? [] : this.#getCommissionableDeviceRecords(identifier).filter(({ addresses }) => addresses.length > 0);
490
585
  if (storedRecords.length === 0) {
491
586
  const queryId = this.#buildCommissionableQueryIdentifier(identifier);
492
- const promise = this.#registerWaiterPromise(queryId, timeoutSeconds);
587
+ const promise = this.#registerWaiterPromise(queryId, true, timeoutSeconds);
493
588
  this.#setQueryRecords(queryId, this.#getCommissionableQueryRecords(identifier));
494
589
  await promise;
495
590
  storedRecords = this.#getCommissionableDeviceRecords(identifier);
496
- this.#removeQuery(queryId);
497
591
  }
498
592
  return storedRecords;
499
593
  }
@@ -539,7 +633,7 @@ class MdnsScanner {
539
633
  break;
540
634
  }
541
635
  }
542
- await this.#registerWaiterPromise(queryId, remainingTime, false, queryResolver);
636
+ await this.#registerWaiterPromise(queryId, true, remainingTime, false, queryResolver);
543
637
  }
544
638
  return this.#getCommissionableDeviceRecords(identifier);
545
639
  }
@@ -551,6 +645,7 @@ class MdnsScanner {
551
645
  */
552
646
  async close() {
553
647
  this.#closing = true;
648
+ this.#observers.close();
554
649
  this.#periodicTimer.stop();
555
650
  this.#queryTimer?.stop();
556
651
  await this.#multicastServer.close();
@@ -807,6 +902,15 @@ class MdnsScanner {
807
902
  );
808
903
  }
809
904
  }
905
+ #matchesOperationalCriteria(matterName) {
906
+ const nameParts = matterName.match(/^([\dA-F]{16})-([\dA-F]{16})\._matter\._tcp\.local$/i);
907
+ if (!nameParts) {
908
+ return false;
909
+ }
910
+ const operationalId = nameParts[1];
911
+ const nodeId = nameParts[2];
912
+ return this.#operationalScanTargets.has(operationalId) || this.#operationalScanTargets.has(`${operationalId}-${nodeId}`);
913
+ }
810
914
  #handleOperationalTxtRecord(record, netInterface) {
811
915
  const { name: matterName, value, ttl } = record;
812
916
  const discoveredAt = import_general.Time.nowMs();
@@ -820,6 +924,9 @@ class MdnsScanner {
820
924
  return;
821
925
  }
822
926
  if (!Array.isArray(value)) return;
927
+ if (!this.#operationalDeviceRecords.has(matterName) && !this.#matchesOperationalCriteria(matterName)) {
928
+ return;
929
+ }
823
930
  const txtData = this.#parseTxtRecord(record);
824
931
  if (txtData === void 0) return;
825
932
  let device = this.#operationalDeviceRecords.get(matterName);
@@ -851,7 +958,6 @@ class MdnsScanner {
851
958
  ttl,
852
959
  value: { target, port }
853
960
  } = record;
854
- const discoveredAt = import_general.Time.nowMs();
855
961
  if (ttl === 0) {
856
962
  if (this.#operationalDeviceRecords.has(matterName)) {
857
963
  logger.debug(
@@ -859,10 +965,14 @@ class MdnsScanner {
859
965
  );
860
966
  this.#operationalDeviceRecords.delete(matterName);
861
967
  }
862
- return true;
968
+ return;
863
969
  }
864
970
  const ips = this.#handleIpRecords([formerAnswers, answers], target, netInterface);
865
971
  const deviceExisted = this.#operationalDeviceRecords.has(matterName);
972
+ if (!deviceExisted && !this.#matchesOperationalCriteria(matterName)) {
973
+ return;
974
+ }
975
+ const discoveredAt = import_general.Time.nowMs();
866
976
  const device = this.#operationalDeviceRecords.get(matterName) ?? {
867
977
  deviceIdentifier: matterName,
868
978
  addresses: /* @__PURE__ */ new Map(),
@@ -904,9 +1014,12 @@ class MdnsScanner {
904
1014
  } else if (addresses.size > 0) {
905
1015
  this.#finishWaiter(matterName, true, deviceExisted);
906
1016
  }
907
- return true;
1017
+ return;
908
1018
  }
909
1019
  #handleCommissionableRecords(answers, formerAnswers, netInterface) {
1020
+ if (!this.#scanForCommissionableDevices && !this.#hasCommissionableWaiters) {
1021
+ return;
1022
+ }
910
1023
  let commissionableRecords = answers.commissionable ?? {};
911
1024
  if (!commissionableRecords[import_general.DnsRecordType.SRV]?.length && !commissionableRecords[import_general.DnsRecordType.TXT]?.length) {
912
1025
  commissionableRecords = formerAnswers.commissionable ?? {};
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/mdns/MdnsScanner.ts"],
4
- "mappings": "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",
5
- "names": ["queries", "answers", "ttl", "queryId", "value", "discoveredAt"]
4
+ "mappings": "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",
5
+ "names": ["queries", "answers", "commissionable", "ttl", "queryId", "value", "discoveredAt"]
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AttributeWriteResponse.d.ts","sourceRoot":"","sources":["../../../../src/action/server/AttributeWriteResponse.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAqC,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9G,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,EAAE,YAAY,EAA0C,MAAM,gCAAgC,CAAC;AAGtG,OAAO,EAQH,SAAS,EACZ,MAAM,QAAQ,CAAC;AAIhB;;;;GAIG;AACH,qBAAa,sBAAsB,CAC/B,QAAQ,SAAS,kBAAkB,GAAG,kBAAkB,CAC1D,SAAQ,YAAY,CAAC,QAAQ,CAAC;;gBAchB,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ;IAK3C,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAsCtF,IAAI,MAAM;;;;MAMT;cA2Qe,UAAU,CACtB,SAAS,EAAE,qBAAqB,EAChC,IAAI,EAAE,WAAW,CAAC,qBAAqB,EACvC,KAAK,EAAE,SAAS;CAqEvB"}
1
+ {"version":3,"file":"AttributeWriteResponse.d.ts","sourceRoot":"","sources":["../../../../src/action/server/AttributeWriteResponse.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAqC,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9G,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,EAAE,YAAY,EAAkB,MAAM,gCAAgC,CAAC;AAG9E,OAAO,EAQH,SAAS,EACZ,MAAM,QAAQ,CAAC;AAIhB;;;;GAIG;AACH,qBAAa,sBAAsB,CAC/B,QAAQ,SAAS,kBAAkB,GAAG,kBAAkB,CAC1D,SAAQ,YAAY,CAAC,QAAQ,CAAC;;gBAahB,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ;IAK3C,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAsCtF,IAAI,MAAM;;;;MAMT;cA0Pe,UAAU,CACtB,SAAS,EAAE,qBAAqB,EAChC,IAAI,EAAE,WAAW,CAAC,qBAAqB,EACvC,KAAK,EAAE,SAAS;CAqEvB"}
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { AccessControl } from "#action/server/AccessControl.js";
7
- import { DataResponse, FallbackLimits, WildcardPathFlagsCodec } from "#action/server/DataResponse.js";
7
+ import { DataResponse, FallbackLimits } from "#action/server/DataResponse.js";
8
8
  import { Diagnostic, InternalError, Logger } from "#general";
9
9
  import { DataModelPath, ElementTag, FabricIndex as FabricIndexField } from "#model";
10
10
  import {
@@ -22,7 +22,6 @@ class AttributeWriteResponse extends DataResponse {
22
22
  #currentEndpoint;
23
23
  #currentCluster;
24
24
  #previousProcessedAttributePath;
25
- #wildcardPathFlags = 0;
26
25
  // Count how many attribute status (on error) and attribute values (on success) we have emitted
27
26
  #statusCount = 0;
28
27
  #successCount = 0;
@@ -75,11 +74,10 @@ class AttributeWriteResponse extends DataResponse {
75
74
  * Validate a wildcard path and update internal state.
76
75
  */
77
76
  async #processWildcard(path, value) {
78
- const { nodeId, endpointId, wildcardPathFlags } = path;
77
+ const { nodeId, endpointId } = path;
79
78
  if (nodeId !== void 0 && nodeId !== this.nodeId) {
80
79
  return;
81
80
  }
82
- this.#wildcardPathFlags = wildcardPathFlags ? WildcardPathFlagsCodec.encode(wildcardPathFlags) : 0;
83
81
  if (endpointId === void 0) {
84
82
  const responses = new Array();
85
83
  for (const endpoint2 of this.node) {
@@ -178,8 +176,6 @@ class AttributeWriteResponse extends DataResponse {
178
176
  * Emits previous chunk if it exists and was not for this endpoint. This means that our chunk size is one endpoint
179
177
  * worth of data, except for the initial error chunk if there are path errors.
180
178
  *
181
- * {@link this.#wildcardPathFlags} to numeric bitmap must be set prior to invocation.
182
- *
183
179
  * TODO - skip endpoints for which subject is unauthorized as optimization
184
180
  */
185
181
  #writeEndpointForWildcard(endpoint, path, value) {
@@ -190,9 +186,6 @@ class AttributeWriteResponse extends DataResponse {
190
186
  StatusCode.InvalidAction
191
187
  );
192
188
  }
193
- if (endpoint.wildcardPathFlags & this.#wildcardPathFlags) {
194
- return;
195
- }
196
189
  if (this.#currentEndpoint !== endpoint) {
197
190
  this.#currentEndpoint = endpoint;
198
191
  this.#currentCluster = void 0;
@@ -210,9 +203,6 @@ class AttributeWriteResponse extends DataResponse {
210
203
  * TODO - skip clusters for which subject is unauthorized
211
204
  */
212
205
  #writeClusterForWildcard(cluster, path, value) {
213
- if (cluster.type.wildcardPathFlags & this.#wildcardPathFlags) {
214
- return;
215
- }
216
206
  if (this.#currentCluster !== cluster) {
217
207
  this.#currentCluster = cluster;
218
208
  }
@@ -235,9 +225,6 @@ class AttributeWriteResponse extends DataResponse {
235
225
  if (!this.#guardedCurrentCluster.type.attributes[attribute.id]) {
236
226
  return;
237
227
  }
238
- if (attribute.wildcardPathFlags & this.#wildcardPathFlags) {
239
- return;
240
- }
241
228
  if (!attribute.limits.writable || this.session.authorityAt(attribute.limits.readLevel, this.#guardedCurrentCluster.location) !== AccessControl.Authority.Granted || attribute.limits.timed && !this.session.timed) {
242
229
  return;
243
230
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/action/server/AttributeWriteResponse.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["endpoint"]
6
6
  }
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { Construction, MaybePromise, Observable } from "#general";
7
- import { EventNumber, FabricIndex, TlvEventFilter, TlvEventPath, TypeFromSchema } from "#types";
7
+ import { EventNumber, EventPriority, FabricIndex, TlvEventFilter, TlvEventPath, TypeFromSchema } from "#types";
8
8
  import { EventStore } from "./EventStore.js";
9
9
  import { NumberedOccurrence, Occurrence } from "./Occurrence.js";
10
10
  export interface OccurrenceManagerContext {
@@ -44,7 +44,7 @@ export declare class OccurrenceManager {
44
44
  clusterId: import("#types").ClusterId;
45
45
  eventId: import("#types").EventId;
46
46
  epochTimestamp: number;
47
- priority: import("#types").EventPriority;
47
+ priority: EventPriority;
48
48
  payload: unknown;
49
49
  }, void, unknown>;
50
50
  close(): MaybePromise<void>;
@@ -66,6 +66,14 @@ export declare namespace OccurrenceManager {
66
66
  * {@link minimumEventAllowance}.
67
67
  */
68
68
  maxEventAllowance: number;
69
+ /**
70
+ * Minimum allowances by priority. This ensures a minimum number of non-critical events avoid LRU
71
+ * harvesting. Critical events take the rest of the entries up to the defined global minimum.
72
+ */
73
+ minPriorityEventAllowance: {
74
+ info: number;
75
+ debug: number;
76
+ };
69
77
  }
70
78
  const DefaultBufferConfig: BufferConfig;
71
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"OccurrenceManager.d.ts","sourceRoot":"","sources":["../../../src/events/OccurrenceManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEH,YAAY,EAOZ,YAAY,EACZ,UAAU,EACb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAE,WAAW,EAAoB,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAClH,OAAO,EAAE,UAAU,EAAqB,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIjE,MAAM,WAAW,wBAAwB;IACrC,KAAK,EAAE,UAAU,CAAC;IAElB,YAAY,CAAC,EAAE,iBAAiB,CAAC,YAAY,CAAC;CACjD;AAED;;;;;;;;;;GAUG;AACH,qBAAa,iBAAiB;;IAc1B,IAAI,YAAY,oCAEf;WAEY,MAAM,CAAC,OAAO,EAAE,wBAAwB;gBAIzC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,wBAAwB;IAgC7D,IAAI,KAAK,uDAER;IAEK,KAAK;IA4CX;;;OAGG;IACH,KAAK,CACD,SAAS,EAAE,cAAc,CAAC,OAAO,YAAY,CAAC,EAC9C,OAAO,CAAC,EAAE,cAAc,CAAC,OAAO,cAAc,CAAC,EAAE,EACjD,oBAAoB,CAAC,EAAE,WAAW,GACnC,YAAY,CAAC,kBAAkB,EAAE,CAAC;IAmFrC;;;OAGG;IACI,GAAG,CAAC,QAAQ,CAAC,EAAE,WAAW;;;;;;;;;IA8BjC,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC;IAI3B,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,YAAY,CAAC,kBAAkB,CAAC;CAqDhE;AAED,yBAAiB,iBAAiB,CAAC;IAC/B;;OAEG;IACH,UAAiB,YAAY;QACzB;;WAEG;QACH,iBAAiB,EAAE,MAAM,CAAC;QAE1B;;;;;WAKG;QACH,iBAAiB,EAAE,MAAM,CAAC;KAC7B;IAEM,MAAM,mBAAmB,EAAE,YAGjC,CAAC;CACL"}
1
+ {"version":3,"file":"OccurrenceManager.d.ts","sourceRoot":"","sources":["../../../src/events/OccurrenceManager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEH,YAAY,EAOZ,YAAY,EACZ,UAAU,EACb,MAAM,UAAU,CAAC;AAClB,OAAO,EACH,WAAW,EACX,aAAa,EACb,WAAW,EAEX,cAAc,EACd,YAAY,EACZ,cAAc,EACjB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,UAAU,EAAqB,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIjE,MAAM,WAAW,wBAAwB;IACrC,KAAK,EAAE,UAAU,CAAC;IAElB,YAAY,CAAC,EAAE,iBAAiB,CAAC,YAAY,CAAC;CACjD;AAED;;;;;;;;;;GAUG;AACH,qBAAa,iBAAiB;;IAc1B,IAAI,YAAY,oCAEf;WAEY,MAAM,CAAC,OAAO,EAAE,wBAAwB;gBAIzC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,wBAAwB;IAgC7D,IAAI,KAAK,uDAER;IAEK,KAAK;IA4CX;;;OAGG;IACH,KAAK,CACD,SAAS,EAAE,cAAc,CAAC,OAAO,YAAY,CAAC,EAC9C,OAAO,CAAC,EAAE,cAAc,CAAC,OAAO,cAAc,CAAC,EAAE,EACjD,oBAAoB,CAAC,EAAE,WAAW,GACnC,YAAY,CAAC,kBAAkB,EAAE,CAAC;IAmFrC;;;OAGG;IACI,GAAG,CAAC,QAAQ,CAAC,EAAE,WAAW;;;;;;;;;IA8BjC,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC;IAI3B,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,YAAY,CAAC,kBAAkB,CAAC;CAgHhE;AAED,yBAAiB,iBAAiB,CAAC;IAC/B;;OAEG;IACH,UAAiB,YAAY;QACzB;;WAEG;QACH,iBAAiB,EAAE,MAAM,CAAC;QAE1B;;;;;WAKG;QACH,iBAAiB,EAAE,MAAM,CAAC;QAE1B;;;WAGG;QACH,yBAAyB,EAAE;YACvB,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;SACjB,CAAC;KACL;IAEM,MAAM,mBAAmB,EAAE,YAOjC,CAAC;CACL"}
@@ -15,7 +15,11 @@ import {
15
15
  MaybePromise,
16
16
  Observable
17
17
  } from "#general";
18
- import { EventNumber, resolveEventName } from "#types";
18
+ import {
19
+ EventNumber,
20
+ EventPriority,
21
+ resolveEventName
22
+ } from "#types";
19
23
  const logger = Logger.get("OccurrenceManager");
20
24
  class OccurrenceManager {
21
25
  #store;
@@ -234,21 +238,63 @@ class OccurrenceManager {
234
238
  }
235
239
  }
236
240
  #dropOldOccurrences() {
237
- const count = this.#storedEventCount - this.#bufferConfig.minEventAllowance;
238
- if (count <= 0) {
241
+ let toDelete = this.#storedEventCount - this.#bufferConfig.minEventAllowance;
242
+ if (toDelete <= 0) {
239
243
  return;
240
244
  }
241
- logger.debug(`Event store is full; dropping ${count} old occurrence${count === 1 ? "s" : ""}`);
245
+ logger.debug(`Event store is full; dropping ${toDelete} old occurrence${toDelete === 1 ? "s" : ""}`);
246
+ const prioData = {
247
+ [EventPriority.Info]: {
248
+ count: this.#bufferConfig.minPriorityEventAllowance["info"],
249
+ minPosition: -1
250
+ },
251
+ [EventPriority.Debug]: {
252
+ count: this.#bufferConfig.minPriorityEventAllowance["debug"],
253
+ minPosition: -1
254
+ }
255
+ };
242
256
  const asyncDrops = Array();
243
- for (const entry of this.#occurrences.splice(0, count)) {
244
- const drop = MaybePromise.catch(
245
- this.#store.delete(entry.number),
246
- (error) => logger.warn(`Error dropping occurrence #${entry}: ${error}`)
247
- );
248
- if (MaybePromise.is(drop)) {
249
- asyncDrops.push(drop);
257
+ for (let i = this.#occurrences.length - 1; i >= 0; i--) {
258
+ const { priority } = this.#occurrences[i];
259
+ if (priority !== EventPriority.Critical) {
260
+ const data = prioData[priority];
261
+ if (data.count > 0) {
262
+ data.count--;
263
+ if (data.count === 0) {
264
+ data.minPosition = i;
265
+ if (prioData[EventPriority.Info].minPosition > -1 && prioData[EventPriority.Debug].minPosition > -1) {
266
+ break;
267
+ }
268
+ }
269
+ }
270
+ }
271
+ }
272
+ const occurrences = this.#occurrences;
273
+ for (const priority of [EventPriority.Debug, EventPriority.Info, EventPriority.Critical]) {
274
+ const checkUpTo = priority === EventPriority.Critical ? this.#storedEventCount : prioData[priority].minPosition;
275
+ if (checkUpTo === -1) {
276
+ continue;
277
+ }
278
+ for (let i = 0; i < checkUpTo && toDelete > 0; i++) {
279
+ if (occurrences[i] === void 0) continue;
280
+ const { priority: entryPriority, number } = occurrences[i];
281
+ if (entryPriority === priority) {
282
+ const drop = MaybePromise.catch(
283
+ this.#store.delete(number),
284
+ (error) => logger.warn(`Error dropping occurrence #${number}: ${error}`)
285
+ );
286
+ if (MaybePromise.is(drop)) {
287
+ asyncDrops.push(drop);
288
+ }
289
+ occurrences[i] = void 0;
290
+ toDelete--;
291
+ }
292
+ }
293
+ if (toDelete <= 0) {
294
+ break;
250
295
  }
251
296
  }
297
+ this.#occurrences = occurrences.filter((entry) => entry);
252
298
  this.#storedEventCount = this.#occurrences.length;
253
299
  if (asyncDrops.length) {
254
300
  return MatterAggregateError.allSettled(asyncDrops, "Error dropping occurrences").then(() => {
@@ -259,7 +305,11 @@ class OccurrenceManager {
259
305
  ((OccurrenceManager2) => {
260
306
  OccurrenceManager2.DefaultBufferConfig = {
261
307
  minEventAllowance: 1e4,
262
- maxEventAllowance: 11e3
308
+ maxEventAllowance: 11e3,
309
+ minPriorityEventAllowance: {
310
+ info: 2e3,
311
+ debug: 2e3
312
+ }
263
313
  };
264
314
  })(OccurrenceManager || (OccurrenceManager = {}));
265
315
  export {