@matter-server/ws-controller 0.6.3 → 0.6.5-alpha.0-20260502-c981ea0
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.
- package/dist/esm/controller/BorderRouterDiscovery.d.ts.map +1 -1
- package/dist/esm/controller/BorderRouterDiscovery.js +34 -38
- package/dist/esm/controller/BorderRouterDiscovery.js.map +1 -1
- package/dist/esm/controller/ControllerCommandHandler.d.ts.map +1 -1
- package/dist/esm/controller/ControllerCommandHandler.js +4 -1
- package/dist/esm/controller/ControllerCommandHandler.js.map +1 -1
- package/dist/esm/controller/Nodes.d.ts +10 -0
- package/dist/esm/controller/Nodes.d.ts.map +1 -1
- package/dist/esm/controller/Nodes.js +31 -0
- package/dist/esm/controller/Nodes.js.map +1 -1
- package/package.json +5 -5
- package/src/controller/BorderRouterDiscovery.ts +40 -45
- package/src/controller/ControllerCommandHandler.ts +6 -1
- package/src/controller/Nodes.ts +34 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BorderRouterDiscovery.d.ts","sourceRoot":"","sources":["../../../src/controller/BorderRouterDiscovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,aAAa,EAAE,WAAW,EAA+B,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"BorderRouterDiscovery.d.ts","sourceRoot":"","sources":["../../../src/controller/BorderRouterDiscovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,aAAa,EAAE,WAAW,EAA+B,MAAM,cAAc,CAAC;AAuB9G,UAAU,eAAe;IACrB,UAAU,EAAE,aAAa,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,mBAAoB,SAAQ,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC;IAC7D,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;CACvC;AAED,UAAU,aAAa;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,EAAE,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IACjC,GAAG,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;CACrC;AAED,UAAU,qBAAqB;IAC3B,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,GAAG,OAAO,CAAC;IACrD,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,OAAO,GAAG,OAAO,CAAC;CAC3D;AAED,UAAU,wBAAwB;IAC9B,EAAE,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACvC,GAAG,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC3C;AAED,UAAU,aAAa;IACnB,OAAO,CAAC,YAAY,EAAE;QAAE,IAAI,EAAE,aAAa,CAAC;QAAC,WAAW,EAAE,aAAa,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;CACtF;AAED,UAAU,cAAc;IACpB,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,wBAAwB,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;CACtD;AAED,KAAK,kBAAkB,GAAG,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;AACxD,KAAK,YAAY,GAAG,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAA;CAAE,KAAK,IAAI,CAAC;AAmBzG;;;;;GAKG;AACH,qBAAa,qBAAqB;;IAe9B,YAAY,GAAG,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,cAAc,EAGnD;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAsC3B;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA8B1B;IAED,IAAI,IAAI,iBAAiB,EAAE,CAG1B;IAED,GAAG,CAAC,aAAa,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAIxD;CAkYJ"}
|
|
@@ -8,6 +8,7 @@ import { MdnsService } from "@matter/main/protocol";
|
|
|
8
8
|
const logger = Logger.get("BorderRouterDiscovery");
|
|
9
9
|
const REGISTRY_MAX_ENTRIES = 256;
|
|
10
10
|
const INSTANCE_OBSERVER_CAP = 512;
|
|
11
|
+
const STALE_RETENTION_MS = 24 * 60 * 60 * 1e3;
|
|
11
12
|
const MESHCOP_TYPE_QNAME = "_meshcop._udp.local";
|
|
12
13
|
const TREL_TYPE_QNAME = "_trel._udp.local";
|
|
13
14
|
const MESHCOP_SUFFIX = "._meshcop._udp.local";
|
|
@@ -92,12 +93,22 @@ class BorderRouterDiscovery {
|
|
|
92
93
|
this.#names = void 0;
|
|
93
94
|
}
|
|
94
95
|
list() {
|
|
96
|
+
this.#pruneExpired();
|
|
95
97
|
return Array.from(this.#registry.values(), (entry) => this.#snapshotEntry(entry));
|
|
96
98
|
}
|
|
97
99
|
get(extAddressHex) {
|
|
100
|
+
this.#pruneExpired();
|
|
98
101
|
const entry = this.#registry.get(extAddressHex.toUpperCase());
|
|
99
102
|
return entry === void 0 ? void 0 : this.#snapshotEntry(entry);
|
|
100
103
|
}
|
|
104
|
+
#pruneExpired() {
|
|
105
|
+
const cutoff = Date.now() - STALE_RETENTION_MS;
|
|
106
|
+
for (const [xaKey, entry] of this.#registry) {
|
|
107
|
+
if (entry.sources.length === 0 && entry.lastSeen < cutoff) {
|
|
108
|
+
this.#registry.delete(xaKey);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
101
112
|
/** Shallow copy so callers cannot mutate registry state through the returned reference. */
|
|
102
113
|
#snapshotEntry(entry) {
|
|
103
114
|
return {
|
|
@@ -108,6 +119,7 @@ class BorderRouterDiscovery {
|
|
|
108
119
|
}
|
|
109
120
|
#onDiscovered(name) {
|
|
110
121
|
if (!this.#started) return;
|
|
122
|
+
this.#pruneExpired();
|
|
111
123
|
const lower = name.qname.toLowerCase();
|
|
112
124
|
if (lower === MESHCOP_TYPE_QNAME || lower === TREL_TYPE_QNAME) {
|
|
113
125
|
return;
|
|
@@ -162,12 +174,12 @@ class BorderRouterDiscovery {
|
|
|
162
174
|
}
|
|
163
175
|
#onInstanceChanged(name, source) {
|
|
164
176
|
if (!this.#started) return;
|
|
165
|
-
try {
|
|
166
|
-
this.#parseAndUpsert(name, source);
|
|
167
|
-
} catch (e) {
|
|
168
|
-
logger.debug("Error processing border router instance change:", e);
|
|
169
|
-
}
|
|
170
177
|
if (name.isDiscovered) {
|
|
178
|
+
try {
|
|
179
|
+
this.#parseAndUpsert(name, source);
|
|
180
|
+
} catch (e) {
|
|
181
|
+
logger.debug("Error processing border router instance change:", e);
|
|
182
|
+
}
|
|
171
183
|
return;
|
|
172
184
|
}
|
|
173
185
|
const key = name.qname.toLowerCase();
|
|
@@ -192,30 +204,6 @@ class BorderRouterDiscovery {
|
|
|
192
204
|
if (idx !== -1) {
|
|
193
205
|
entry.sources.splice(idx, 1);
|
|
194
206
|
}
|
|
195
|
-
if (source === "meshcop") {
|
|
196
|
-
entry.meshcopPort = void 0;
|
|
197
|
-
entry.networkName = void 0;
|
|
198
|
-
entry.vendorName = void 0;
|
|
199
|
-
entry.modelName = void 0;
|
|
200
|
-
entry.threadVersion = void 0;
|
|
201
|
-
entry.borderAgentIdHex = void 0;
|
|
202
|
-
entry.stateBitmapHex = void 0;
|
|
203
|
-
entry.activeTimestampHex = void 0;
|
|
204
|
-
entry.partitionIdHex = void 0;
|
|
205
|
-
entry.domainName = void 0;
|
|
206
|
-
} else {
|
|
207
|
-
entry.trelPort = void 0;
|
|
208
|
-
}
|
|
209
|
-
if (entry.sources.length === 0) {
|
|
210
|
-
this.#registry.delete(xaKey);
|
|
211
|
-
return;
|
|
212
|
-
}
|
|
213
|
-
for (const otherTracking of this.#instanceObservers.values()) {
|
|
214
|
-
if (otherTracking.xaKey === xaKey && otherTracking.source !== source) {
|
|
215
|
-
this.#parseAndUpsert(otherTracking.name, otherTracking.source);
|
|
216
|
-
break;
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
207
|
}
|
|
220
208
|
#onTargetChanged(target) {
|
|
221
209
|
if (!this.#started) return;
|
|
@@ -405,19 +393,27 @@ class BorderRouterDiscovery {
|
|
|
405
393
|
}
|
|
406
394
|
}
|
|
407
395
|
#evictOldest() {
|
|
408
|
-
let
|
|
409
|
-
let
|
|
396
|
+
let oldestStaleKey;
|
|
397
|
+
let oldestStaleSeen = Number.POSITIVE_INFINITY;
|
|
398
|
+
let oldestLiveKey;
|
|
399
|
+
let oldestLiveSeen = Number.POSITIVE_INFINITY;
|
|
410
400
|
for (const [xa, entry] of this.#registry) {
|
|
411
|
-
if (entry.
|
|
412
|
-
|
|
413
|
-
|
|
401
|
+
if (entry.sources.length === 0) {
|
|
402
|
+
if (entry.lastSeen < oldestStaleSeen) {
|
|
403
|
+
oldestStaleSeen = entry.lastSeen;
|
|
404
|
+
oldestStaleKey = xa;
|
|
405
|
+
}
|
|
406
|
+
} else if (entry.lastSeen < oldestLiveSeen) {
|
|
407
|
+
oldestLiveSeen = entry.lastSeen;
|
|
408
|
+
oldestLiveKey = xa;
|
|
414
409
|
}
|
|
415
410
|
}
|
|
416
|
-
|
|
417
|
-
|
|
411
|
+
const evictKey = oldestStaleKey ?? oldestLiveKey;
|
|
412
|
+
if (evictKey === void 0) return false;
|
|
413
|
+
this.#registry.delete(evictKey);
|
|
418
414
|
let releasedObservers = 0;
|
|
419
415
|
for (const [instanceKey, tracking] of [...this.#instanceObservers]) {
|
|
420
|
-
if (tracking.xaKey !==
|
|
416
|
+
if (tracking.xaKey !== evictKey) continue;
|
|
421
417
|
tracking.name.off(tracking.observer);
|
|
422
418
|
if (tracking.targetKey !== void 0) {
|
|
423
419
|
this.#releaseTarget(tracking.targetKey);
|
|
@@ -431,7 +427,7 @@ class BorderRouterDiscovery {
|
|
|
431
427
|
`Border router registry exceeded ${REGISTRY_MAX_ENTRIES} entries; evicting oldest (released ${releasedObservers} instance observer${releasedObservers === 1 ? "" : "s"})`
|
|
432
428
|
);
|
|
433
429
|
} else {
|
|
434
|
-
logger.debug(`Evicted border router xa=${
|
|
430
|
+
logger.debug(`Evicted border router xa=${evictKey}; released ${releasedObservers} instance observers`);
|
|
435
431
|
}
|
|
436
432
|
return true;
|
|
437
433
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/controller/BorderRouterDiscovery.ts"],
|
|
4
|
-
"mappings": "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",
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ControllerCommandHandler.d.ts","sourceRoot":"","sources":["../../../src/controller/ControllerCommandHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEH,eAAe,EAIf,QAAQ,EACR,WAAW,EAKX,MAAM,EACN,UAAU,EASb,MAAM,cAAc,CAAC;AAUtB,OAAO,EACH,2BAA2B,EAC3B,uBAAuB,EAO1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAKH,cAAc,EAQjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,uBAAuB,EAA4B,MAAM,yBAAyB,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAW5D,OAAO,EACH,uBAAuB,EACvB,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,8BAA8B,EAC9B,+BAA+B,EAC/B,qBAAqB,EACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACH,kBAAkB,EAElB,oBAAoB,EACpB,aAAa,EACb,qBAAqB,EACrB,cAAc,EAGjB,MAAM,mCAAmC,CAAC;AAkD3C,qBAAa,wBAAwB;;IAgBjC,MAAM;QACF,OAAO;QACP,gBAAgB;QAChB,YAAY;QACZ,SAAS;QACT,gBAAgB;QAChB,+EAA+E;QAC/E,uBAAuB;QACvB,oBAAoB;QACpB,kBAAkB;QAClB,iBAAiB;QACjB,mBAAmB;MACrB;IAGF,YAAY,kBAAkB,EAAE,uBAAuB,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAchG;IAiBD;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGjC;IAED,IAAI,OAAO,YAEV;IAED,IAAI,UAAU,YAEb;IAEK,KAAK,kBAgBV;IA4CK,KAAK,kBAUV;
|
|
1
|
+
{"version":3,"file":"ControllerCommandHandler.d.ts","sourceRoot":"","sources":["../../../src/controller/ControllerCommandHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -274,12 +274,15 @@ class ControllerCommandHandler {
|
|
|
274
274
|
}
|
|
275
275
|
basicInfoChangedInBatch = false;
|
|
276
276
|
this.events.nodeStructureChanged.emit(nodeId);
|
|
277
|
+
for (const endpointId of this.#nodes.drainPendingEndpointAdds(nodeId)) {
|
|
278
|
+
this.events.nodeEndpointAdded.emit(nodeId, endpointId);
|
|
279
|
+
}
|
|
277
280
|
});
|
|
278
281
|
node.events.decommissioned.on(() => {
|
|
279
282
|
this.#cleanupNodeAfterRemoval(nodeId);
|
|
280
283
|
this.events.nodeDecommissioned.emit(nodeId);
|
|
281
284
|
});
|
|
282
|
-
node.events.nodeEndpointAdded.on((endpointId) => this.
|
|
285
|
+
node.events.nodeEndpointAdded.on((endpointId) => this.#nodes.queueEndpointAdded(nodeId, endpointId));
|
|
283
286
|
node.events.nodeEndpointRemoved.on((endpointId) => this.events.nodeEndpointRemoved.emit(nodeId, endpointId));
|
|
284
287
|
this.#nodes.set(nodeId, node);
|
|
285
288
|
this.#nodes.seedState(nodeId, node.connectionState);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/controller/ControllerCommandHandler.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAIA;AAAA,EACA;AAAA,EAEA;AAAA,OACG;AACP,SAAS,oCAAoC;AAC7C;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP;AAAA,EAGI;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,OACG;AACP;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAEP,SAAS,kBAAkB;AAC3B,SAAS,YAA6B,wBAAwB;AAC9D;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAcP;AAAA,EAOI;AAAA,EACA;AAAA,OACG;AACP,SAAS,oBAAoB;AAC7B,SAAS,cAAc;AACvB,SAAS,2BAA2B;AACpC,SAAS,aAAa;AAEtB,MAAM,SAAS,OAAO,IAAI,0BAA0B;AAGpD,MAAM,oBAAoB,QAAQ,CAAC;AAOnC,MAAM,0BAA0B,oBAAI,IAAe,CAAC,iBAAiB,IAAI,8BAA8B,EAAE,CAAC;AAU1G,SAAS,uBAAuB,YAAgD;AAI5E,QAAM,uBAAuB,WAAW,SAAS;AACjD,QAAM,oBAAoB,WAAW,QAAQ;AAE7C,MAAI,OAAO,yBAAyB,YAAY,uBAAuB,GAAG;AACtE,UAAM,EAAE,OAAO,OAAO,MAAM,IAAI,qBAAqB,OAAO,oBAAoB;AAChF,WAAO,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK;AAAA,EACrC;AAGA,MAAI,OAAO,sBAAsB,UAAU;AACvC,QAAI,qBAAqB,IAAI;AACzB,aAAO;AAAA,IACX,WAAW,sBAAsB,IAAI;AACjC,aAAO;AAAA,IACX;AAAA,EACJ;AAEA,SAAO;AACX;AAEO,MAAM,yBAAyB;AAAA,EAClC;AAAA,EACA,WAAW;AAAA,EACX,aAAa;AAAA,EACJ;AAAA,EACA;AAAA;AAAA,EAET,SAAS,IAAI,MAAM;AAAA;AAAA,EAEnB,oBAAoB,oBAAI,IAAgC;AAAA;AAAA,EAExD;AAAA;AAAA,EAEA,mBAAmB,oBAAI,IAAmB;AAAA;AAAA,EAEjC,mBAAmB,oBAAI,IAA8B;AAAA,EAC9D,SAAS;AAAA,IACL,SAAS,IAAI,gBAAgB;AAAA,IAC7B,kBAAkB,IAAI,WAAqE;AAAA,IAC3F,cAAc,IAAI,WAAiE;AAAA,IACnF,WAAW,IAAI,WAA6B;AAAA,IAC5C,kBAAkB,IAAI,WAAgD;AAAA;AAAA,IAEtE,yBAAyB,IAAI,WAAiD;AAAA,IAC9E,sBAAsB,IAAI,WAA6B;AAAA,IACvD,oBAAoB,IAAI,WAA6B;AAAA,IACrD,mBAAmB,IAAI,WAAyD;AAAA,IAChF,qBAAqB,IAAI,WAAyD;AAAA,EACtF;AAAA,EACA;AAAA,EAEA,YAAY,oBAA6C,YAAqB,YAAqB;AAC/F,SAAK,cAAc;AAEnB,SAAK,cAAc;AACnB,WAAO,KAAK,UAAU,aAAa,YAAY,UAAU,EAAE;AAC3D,SAAK,cAAc;AAInB,SAAK,uBAAuB,IAAI,oBAAoB;AAAA,MAChD,eAAe,UAAQ,CAAC,EAAE,KAAK,OAAO,IAAI,KAAK,MAAM,KAAK,KAAK,OAAO,IAAI,KAAK,MAAM,EAAE;AAAA,MACvF,sBAAsB,CAAC,MAAM,OAAO,mBAChC,KAAK,qBAAqB,KAAK,QAAQ,OAAO,cAAc;AAAA,IACpE,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,QAAQ,QAA6B;AACjC,UAAM,SAAS,KAAK,YAAY;AAChC,QAAI,WAAW,QAAW;AACtB,YAAM,IAAI,MAAM,uCAAuC,MAAM,wCAAwC;AAAA,IACzG;AACA,WAAO,YAAY,EAAE,aAAa,OAAO,aAAa,OAAO,CAAC;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,WAAW,QAAwB;AAC/B,UAAM,cAAc,KAAK,YAAY,QAAQ;AAC7C,WAAO,aAAa,QAAQ,WAAW;AAAA,EAC3C;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,aAAa;AACb,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,QAAQ;AACV,QAAI,KAAK,UAAU;AACf;AAAA,IACJ;AACA,SAAK,WAAW;AAEhB,UAAM,KAAK,YAAY,MAAM;AAC7B,WAAO,KAAK,oBAAoB;AAChC,SAAK,SAAS,KAAK,YAAY,KAAK,IAAI,IAAI,OAAO;AAEnD,QAAI,KAAK,aAAa;AAElB,YAAM,KAAK,uBAAuB;AAAA,IACtC;AAEA,UAAM,KAAK,OAAO,QAAQ,KAAK;AAAA,EACnC;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,yBAAyB;AAC3B,QAAI,CAAC,KAAK,aAAa;AACnB;AAAA,IACJ;AACA,QAAI;AACA,YAAM,cAAc,KAAK,YAAY;AACrC,UAAI,CAAC,aAAa;AACd,eAAO,KAAK,4BAA4B;AACxC;AAAA,MACJ;AAIA,YAAM,8BAA8B,MAAM,YAAY,IAAI,WAAS,MAAM,IAAI,qBAAqB,EAAE,MAAM;AAC1G,UAAI,gCAAgC,QAAW;AAC3C,eAAO,KAAK,qCAAqC;AACjD;AAAA,MACJ;AAGA,kCAA4B,gBAAgB;AAAA,QACxC,CAAC,aAA0B,kBAAsC;AAC7D,iBAAO,KAAK,6BAA6B,KAAK,WAAW,YAAY,MAAM,CAAC,KAAK,aAAa;AAC9F,eAAK,kBAAkB,IAAI,YAAY,QAAQ,aAAa;AAAA,QAChE;AAAA,MACJ;AAGA,kCAA4B,WAAW,GAAG,CAAC,gBAA6B;AACpE,eAAO,KAAK,wBAAwB,KAAK,WAAW,YAAY,MAAM,CAAC,EAAE;AACzE,aAAK,kBAAkB,OAAO,YAAY,MAAM;AAAA,MACpD,CAAC;AAED,aAAO,KAAK,+BAA+B;AAAA,IAC/C,SAAS,OAAO;AACZ,aAAO,KAAK,uCAAuC,KAAK;AAAA,IAC5D;AAAA,EACJ;AAAA,EAEA,MAAM,QAAQ;AACV,eAAW,SAAS,KAAK,iBAAiB,OAAO,GAAG;AAChD,YAAM,KAAK;AAAA,IACf;AACA,SAAK,iBAAiB,MAAM;AAC5B,UAAM,KAAK,qBAAqB,KAAK;AACrC,QAAI,CAAC,KAAK,UAAU;AAChB;AAAA,IACJ;AACA,WAAO,KAAK,YAAY,MAAM;AAAA,EAClC;AAAA,EAEA,MAAM,cAAc,QAAgB;AAChC,UAAM,OAAO,MAAM,KAAK,YAAY,QAAQ,MAAM;AAClD,UAAM,iBAAiB,KAAK,OAAO;AAKnC,QAAI,0BAA0B;AAC9B,SAAK,OAAO,iBAAiB,GAAG,UAAQ;AAEpC,qBAAe,gBAAgB,QAAQ,IAAI;AAE3C,WAAK,OAAO,iBAAiB,KAAK,QAAQ,IAAI;AAE9C,UAAI,wBAAwB,IAAI,KAAK,KAAK,SAAS,GAAG;AAClD,kCAA0B;AAAA,MAC9B;AAAA,IACJ,CAAC;AACD,SAAK,OAAO,gBAAgB,GAAG,MAAM;AACjC,UAAI,yBAAyB;AACzB,kCAA0B;AAC1B,eAAO,KAAK,QAAQ,KAAK,WAAW,MAAM,CAAC,uDAAuD;AAClG,aAAK,OAAO,qBAAqB,KAAK,MAAM;AAAA,MAChD;AAAA,IACJ,CAAC;AACD,SAAK,OAAO,eAAe,GAAG,UAAQ,KAAK,OAAO,aAAa,KAAK,QAAQ,IAAI,CAAC;AACjF,SAAK,OAAO,aAAa,GAAG,WAAS;AAEjC,UAAI,UAAU,WAAW,WAAW;AAChC,uBAAe,OAAO,IAAI;AAC1B,cAAM,aAAa,eAAe,IAAI,MAAM;AAC5C,YAAI,YAAY;AACZ,eAAK,qBAAqB,aAAa,KAAK,QAAQ,MAAM,GAAG,UAAU;AAAA,QAC3E;AAAA,MACJ;AAGA,UAAI,UAAU,WAAW,cAAc;AACnC,YAAI,CAAC,KAAK,iBAAiB,IAAI,MAAM,GAAG;AACpC,gBAAM,QAAQ,KAAK,SAAS,qBAAqB,MAAM,IAAI,mBAAmB,MAAM;AAChF,iBAAK,iBAAiB,OAAO,MAAM;AACnC,gBAAI,KAAK,OAAO,iBAAiB,MAAM,GAAG;AACtC,qBAAO;AAAA,gBACH,QAAQ,KAAK,WAAW,MAAM,CAAC;AAAA,cACnC;AACA,mBAAK,OAAO,wBAAwB,KAAK,QAAQ,KAAK;AAAA,YAC1D;AAAA,UACJ,CAAC;AACD,gBAAM,UAAU;AAChB,gBAAM,MAAM;AACZ,eAAK,iBAAiB,IAAI,QAAQ,KAAK;AAAA,QAC3C;AAAA,MACJ,OAAO;AAEH,aAAK,iBAAiB,IAAI,MAAM,GAAG,KAAK;AACxC,aAAK,iBAAiB,OAAO,MAAM;AAAA,MACvC;AAGA,YAAM,SAAS,KAAK,OAAO,mBAAmB,QAAQ,KAAK;AAG3D,WAAK,OAAO,iBAAiB,KAAK,QAAQ,KAAK;AAG/C,UAAI,OAAO,qBAAqB;AAC5B,eAAO;AAAA,UACH,QAAQ,KAAK,WAAW,MAAM,CAAC,4BAA4B,OAAO,SAAS,YAAY,WAAW,KAAK,CAAC;AAAA,QAC5G;AACA,aAAK,OAAO,wBAAwB,KAAK,QAAQ,OAAO,SAAS;AAAA,MACrE;AAAA,IACJ,CAAC;AACD,SAAK,OAAO,iBAAiB,GAAG,MAAM;AAElC,UAAI,KAAK,aAAa;AAClB,uBAAe,OAAO,IAAI;AAAA,MAC9B;AACA,gCAA0B;AAC1B,WAAK,OAAO,qBAAqB,KAAK,MAAM;AAAA,IAChD,CAAC;AACD,SAAK,OAAO,eAAe,GAAG,MAAM;AAChC,WAAK,yBAAyB,MAAM;AACpC,WAAK,OAAO,mBAAmB,KAAK,MAAM;AAAA,IAC9C,CAAC;AACD,SAAK,OAAO,kBAAkB,GAAG,gBAAc,KAAK,OAAO,kBAAkB,KAAK,QAAQ,UAAU,CAAC;AACrG,SAAK,OAAO,oBAAoB,GAAG,gBAAc,KAAK,OAAO,oBAAoB,KAAK,QAAQ,UAAU,CAAC;AAGzG,SAAK,OAAO,IAAI,QAAQ,IAAI;AAE5B,SAAK,OAAO,UAAU,QAAQ,KAAK,eAAe;AAGlD,QAAI,KAAK,aAAa;AAClB,qBAAe,IAAI,IAAI;AAEvB,YAAM,aAAa,eAAe,IAAI,MAAM;AAC5C,UAAI,YAAY;AACZ,aAAK,qBAAqB,aAAa,KAAK,QAAQ,MAAM,GAAG,UAAU;AAAA,MAC3E;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,kBAAkB;AACpB,QAAI,KAAK,YAAY;AACjB;AAAA,IACJ;AACA,SAAK,aAAa;AAElB,UAAM,KAAK,MAAM;AAEjB,UAAM,QAAQ,KAAK,YAAY,qBAAqB;AACpD,WAAO,KAAK,SAAS,MAAM,MAAM,WAAW,MAAM,IAAI,YAAU,KAAK,WAAW,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE;AAErG,eAAW,UAAU,OAAO;AACxB,UAAI;AACA,eAAO,KAAK,sBAAsB,KAAK,WAAW,MAAM,CAAC,OAAO;AAChE,cAAM,KAAK,cAAc,MAAM;AAAA,MACnC,SAAS,OAAO;AACZ,eAAO,KAAK,8BAA8B,KAAK,WAAW,MAAM,CAAC,MAAM,KAAK;AAAA,MAChF;AAAA,IACJ;AAEA,WAAO,KAAK,OAAO,MAAM,MAAM,0CAA0C;AAGzE,eAAW,UAAU,KAAK,OAAO,OAAO,GAAG;AACvC,UAAI;AACA,aAAK,OAAO,IAAI,MAAM,EAAE,QAAQ;AAAA,UAC5B,kCAAkC;AAAA,UAClC,oCAAoC;AAAA,QACxC,CAAC;AAAA,MACL,SAAS,OAAO;AACZ,eAAO,KAAK,2BAA2B,KAAK,WAAW,MAAM,CAAC,MAAM,KAAK;AAAA,MAC7E;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,aAAa;AACT,WAAO,KAAK,OAAO,OAAO;AAAA,EAC9B;AAAA,EAEA,QAAQ,QAAyB;AAC7B,WAAO,KAAK,OAAO,IAAI,MAAM;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW,QAAgB;AACvB,WAAO,KAAK,iBAAiB,MAAM;AAAA,EACvC;AAAA,EAEA,MAAM,cAAc,QAAgB;AAChC,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM;AAKnC,WAAO,KAAK,gCAAgC,KAAK,WAAW,MAAM,CAAC,uBAAuB;AAG1F,UAAM,OAAO;AAAA,MACT,GAAG,KAAK;AAAA,QACJ,cAAc;AAAA,QACd,YAAY,CAAC,CAAC,CAAC;AAAA,MACnB,CAAC;AAAA,MACD,sBAAsB;AAAA;AAAA,IAC1B;AACA,qBAAiB,UAAU,KAAK,KAAK,YAAY,KAAK,IAAI,EAAE;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,eAAe,QAAgB,mBAA0C;AACrE,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM;AACnC,UAAM,iBAAiB,KAAK,OAAO;AAEnC,QAAI,WAAW;AAGf,QAAI,CAAC,eAAe,IAAI,MAAM,GAAG;AAC7B,qBAAe,IAAI,IAAI;AAAA,IAC3B;AAGA,UAAM,aAAa,eAAe,IAAI,MAAM,KAAK,CAAC;AAIlD,UAAM,uBAAuB,WAAW,QAAQ;AAChD,QAAI,MAAM,QAAQ,oBAAoB,GAAG;AACrC,iBAAW,qBAAqB,KAAK,WAAS,MAAM,GAAG,MAAM,EAAE;AAAA,IACnE;AAEA,WAAO;AAAA,MACH,SAAS,KAAK;AAAA,MACd,mBAAmB,gBAAgB,IAAI,KAAK,KAAK,MAAM,cAAc,kBAAkB,KAAK,IAAI,CAAC,CAAC;AAAA,MAClG,gBAAgB,gBAAgB,qBAAqB,oBAAI,KAAK,CAAC;AAAA,MAC/D,mBAAmB;AAAA,MACnB,WAAW,KAAK,OAAO,YAAY,MAAM;AAAA,MACzC,WAAW;AAAA,MACX;AAAA,MACA,yBAAyB,CAAC;AAAA,MAC1B,gBAAgB,uBAAuB,UAAU;AAAA,IACrD;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,qBACF,QACA,gBACA,iBAAiB,OACM;AACvB,UAAM,SAAyB,CAAC;AAChC,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM;AACnC,UAAM,YAAY;AAClB,UAAM,cAAc,eAAe,IAAI,UAAQ,mBAAmB,IAAI,CAAC;AAEvE,aAAS,IAAI,GAAG,IAAI,YAAY,QAAQ,KAAK,WAAW;AACpD,YAAM,QAAQ,YAAY,MAAM,GAAG,IAAI,SAAS;AAChD,YAAM,cAAc;AAAA,QAChB,GAAG,KAAK;AAAA,UACJ,cAAc;AAAA,UACd,YAAY,MAAM,IAAI,CAAC,EAAE,YAAY,WAAW,YAAY,OAAO;AAAA,YAC/D,YAAY,eAAe,SAAY,eAAe,UAAU,IAAI;AAAA,YACpE,WAAW,cAAc,SAAY,UAAU,SAAS,IAAI;AAAA,YAC5D,aAAa,gBAAgB,SAAY,YAAY,WAAW,IAAI;AAAA,UACxE,EAAE;AAAA,QACN,CAAC;AAAA,QACD,sBAAsB;AAAA,MAC1B;AAEA,uBAAiB,SAAS,KAAK,KAAK,YAAY,KAAK,WAAW,GAAG;AAC/D,mBAAW,SAAS,OAAO;AACvB,cAAI,MAAM,SAAS,cAAc;AAC7B,kBAAM,EAAE,SAAS,OAAO,QAAQ,IAAI,KAAK;AAAA,cACrC;AAAA,gBACI,YAAY,eAAe,MAAM,KAAK,UAAU;AAAA,gBAChD,WAAW,UAAU,MAAM,KAAK,SAAS;AAAA,gBACzC,aAAa,MAAM,KAAK;AAAA,cAC5B;AAAA,cACA,MAAM;AAAA,YACV;AACA,mBAAO,OAAO,IAAI;AAAA,UACtB,WAAW,MAAM,SAAS,eAAe;AACrC,kBAAM,UAAU;AAAA,cACZ,MAAM,KAAK;AAAA,cACX,MAAM,KAAK;AAAA,cACX,MAAM,KAAK;AAAA,YACf;AACA,mBAAO,KAAK,4BAA4B,OAAO,YAAY,MAAM,MAAM,EAAE;AAAA,UAC7E;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,6BACI,MACA,OACA,aACF;AACE,UAAM,EAAE,YAAY,WAAW,YAAY,IAAI;AAC/C,QAAI,CAAC,aAAa;AACd,oBAAc,WAAW,SAAS;AAAA,IACtC;AACA,WAAO;AAAA,MACH,SAAS,mBAAmB,YAAY,WAAW,WAAW;AAAA,MAC9D,OAAO;AAAA,QACH;AAAA,QACA,aAAa,WAAW,WAAW,KAAK,iBAAiB,WAAW;AAAA,QACpE,aAAa;AAAA,MACjB;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,gBACF,QACA,YACA,WACA,eACA,OACmD;AACnD,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM;AACnC,UAAM,eAAe,WAAW,SAAS;AACzC,QAAI,CAAC,cAAc;AACf,YAAM,YAAY,iBAAiB,eAAe,SAAS,WAAW;AAAA,IAC1E;AACA,UAAM,kBAAkB,aAAa,MAAM;AAE3C,QAAI;AACA,YAAM,KAAK,KAAK,UAAU,IAAI,UAAU,EAAE,WAAW,iBAAiB,EAAE,CAAC,aAAa,GAAG,MAAM,CAAC;AAChG,aAAO,EAAE,QAAQ,EAAE;AAAA,IACvB,SAAS,OAAO;AACZ,0BAAoB,OAAO,KAAK;AAChC,aAAO,EAAE,QAAQ,MAAM,MAAM,eAAe,MAAM,YAAY;AAAA,IAClE;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,eAAe,OAAe;AAChC,UAAM,KAAK,YAAY,kBAAkB,KAAK;AAAA,EAClD;AAAA,EAEA,MAAM,qBAAqB,MAA+D;AACtF,UAAM,EAAE,QAAQ,YAAY,WAAW,YAAY,IAAI;AACvD,QAAI,EAAE,MAAM,IAAI;AAEhB,UAAM,eAAe,WAAW,SAAS;AACzC,UAAM,iBAAiB,cAAc,WAAW,WAAW;AAC3D,QAAI,CAAC,gBAAgB,CAAC,gBAAgB;AAClC,YAAM,YAAY,iBAAiB,aAAa,WAAW,eAAe,SAAS,UAAU;AAAA,IACjG;AAEA,YAAQ,iCAAiC,OAAO,gBAAgB,aAAa,KAAK;AAElF,WAAO,KAAK,qBAAqB,aAAa,cAAc,KAAK;AACjE,UAAM,EAAE,QAAQ,cAAc,IAAI,MAAM,KAAK;AAAA,MACzC;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAe;AAAA,MACf;AAAA,IACJ;AACA,WAAO,EAAE,aAAa,WAAW,YAAY,QAAQ,cAAc;AAAA,EACvE;AAAA,EAEA,MAAM,eACF,MACA,SACA,UAA+C,CAAC,GAClD;AACE,qBAAiB,QAAQ,KAAK,YAAY;AAAA,MACtC,OAAO;AAAA,QACH,UAAU,CAAC,OAAO;AAAA,QAClB,GAAG;AAAA,MACP,CAAC;AAAA,IACL,GAAG;AACC,iBAAW,SAAS,MAAM;AAEtB,gBAAQ,MAAM,MAAM;AAAA,UAChB,KAAK;AACD,gBAAI,MAAM,WAAW,OAAO,SAAS;AACjC,oBAAM,oBAAoB,OAAO,MAAM,QAAQ,QAAW,MAAM,aAAa;AAAA,YACjF;AACA;AAAA,UAEJ,KAAK;AACD,mBAAO,MAAM;AAAA,QACrB;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,aAAa,MAAuC;AACtD,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA,2BAA2B;AAAA,MAC3B;AAAA,IACJ,IAAI;AACJ,QAAI,EAAE,MAAM,YAAY,IAAI;AAE5B,UAAM,eAAe,WAAW,SAAS;AACzC,QAAI,CAAC,cAAc;AACf,YAAM,YAAY,iBAAiB,eAAe,SAAS,WAAW;AAAA,IAC1E;AACA,UAAM,cAAc,aAAa,MAAM;AACvC,UAAM,cAAc,SAAS,KAAK,WAAW;AAC7C,UAAM,WACF,KAAK,OAAO,IAAI,MAAM,EAAE,KAAK,UAAU,IAAI,UAAU,EAAE,SACzD,WAAW;AACb,QAAI,CAAC,SAAS,WAAW,GAAG;AACxB,YAAM,YAAY,iBAAiB,YAAY,WAAW,gCAAgC,WAAW,GAAG;AAAA,IAC5G;AAEA,QAAI,SAAS,WAAW,GAAG;AACvB,UAAI,OAAO,KAAK,WAAW,EAAE,WAAW,GAAG;AACvC,sBAAc;AAAA,MAClB,OAAO;AACH,cAAM,QAAQ,aAAa,SAAS,YAAY,YAAY,CAAC;AAC7D,YAAI,OAAO;AACP,wBAAc,2BAA2B,aAAa,OAAO,aAAa,KAAK;AAAA,QACnF;AAAA,MACJ;AAAA,IACJ;AAGA,UAAM,iBAAiB,gBAAgB,SAAY,kBAAkB,WAAqB,IAAI;AAC9F,UAAM,WAAW,GAAG,MAAM,IAAI,UAAU,IAAI,SAAS,IAAI,WAAW,IAAI,cAAc;AAGtF,UAAM,WAAW,KAAK,iBAAiB,IAAI,QAAQ;AACnD,QAAI,aAAa,QAAW;AACxB,aAAO;AAAA,QACH,kCAAkC,KAAK,WAAW,MAAM,CAAC,IAAI,UAAU,IAAI,WAAW,IAAI,WAAW;AAAA,MACzG;AACA,aAAO;AAAA,IACX;AAGA,UAAM,UAAU,YAAY,aAAa,KAAK;AAG9C,UAAM,gBAAgB,KAAK;AAAA,MACvB,KAAK,OAAO,IAAI,MAAM,EAAE;AAAA,MACxB;AAAA,QACI,UAAU;AAAA,QACV;AAAA,QACA,SAAS;AAAA,QACT,QAAQ;AAAA,MACZ;AAAA,MACA;AAAA,QACI,SAAS,0BAA0B,SAAY,OAAO,qBAAqB,IAAI;AAAA,QAC/E,wBAAwB,yBAAyB,SAAY,OAAO,oBAAoB,IAAI;AAAA,MAChG;AAAA,IACJ;AAGA,SAAK,iBAAiB,IAAI,UAAU,aAAa;AAGjD,WAAO,cAAc,QAAQ,MAAM;AAC/B,WAAK,iBAAiB,OAAO,QAAQ;AAAA,IACzC,CAAC;AAAA,EACL;AAAA,EAEA,4BAA4B,MAAsD;AAC9E,QAAI,WAA+B;AACnC,QAAI,qBAAyC;AAC7C,QAAI,oBAAwC;AAC5C,QAAI,YAAgC;AACpC,QAAI,WAAiC;AACrC,QAAI,eAA0C;AAE9C,QAAI,gBAAgB,QAAQ,KAAK,WAAW,SAAS,GAAG;AACpD,YAAM,mBAAmB,uBAAuB,OAAO,KAAK,UAAU;AACtE,2BAAqB,iBAAiB;AACtC,0BAAoB;AACpB,iBAAW,iBAAiB;AAAA,IAChC,WAAW,YAAY,QAAQ,KAAK,OAAO,SAAS,GAAG;AACnD,YAAM,mBAAmB,mBAAmB,OAAO,KAAK,MAAM;AAE9D,0BAAoB,iBAAiB,CAAC,EAAE;AACxC,2BAAqB;AACrB,iBAAW,iBAAiB,CAAC,EAAE;AAAA,IACnC,WAAW,cAAc,MAAM;AAC3B,iBAAW,KAAK;AAEhB,UAAI,wBAAwB,MAAM;AAC9B,6BAAqB,KAAK;AAAA,MAC9B,WAAW,uBAAuB,MAAM;AACpC,4BAAoB,KAAK;AAAA,MAC7B,WAAW,cAAc,QAAQ,eAAe,MAAM;AAClD,mBAAW,SAAS,KAAK,QAAQ;AACjC,oBAAY,KAAK;AAAA,MACrB;AAAA,IAEJ,OAAO;AACH,YAAM,YAAY,iBAAiB,0BAA0B;AAAA,IACjE;AAEA,QAAI,KAAK,iBAAiB,QAAW;AACjC,YAAM,EAAE,IAAI,KAAK,IAAI,KAAK;AAC1B,qBAAe;AAAA,QACX,MAAM;AAAA,QACN;AAAA,QACA;AAAA,MACJ;AAAA,IACJ;AAEA,QAAI,YAAY,QAAW;AACvB,YAAM,YAAY,iBAAiB,sBAAsB;AAAA,IAC7D;AAEA,UAAM,EAAE,eAAe,iBAAiB,aAAa,mBAAmB,cAAc,IAAI;AAC1F,WAAO;AAAA,MACH,eAAe;AAAA,QACX,QAAQ,KAAK;AAAA,QACb,oBAAoB,qBAAqB,uBAAuB;AAAA,QAChE,uBAAuB;AAAA,QACvB;AAAA,QACA;AAAA,MACJ;AAAA,MACA,WAAW;AAAA,QACP;AAAA,QACA,gBACI,sBAAsB,SAChB,EAAE,kBAAkB,IACpB,uBAAuB,SACrB,EAAE,mBAAmB,IACrB,aAAa,SACX,EAAE,UAAU,UAAU,IACtB,CAAC;AAAA,QACf,uBAAuB;AAAA,UACnB,KAAK,KAAK,cAAc,CAAC;AAAA,UACzB,aAAa;AAAA,QACjB;AAAA,MACJ;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,eAAe,MAA4D;AAC7E,QAAI;AACJ,QAAI;AACA,eAAS,MAAM,KAAK,YAAY,eAAe,KAAK,4BAA4B,IAAI,GAAG;AAAA,QACnF,+BAA+B;AAAA,MACnC,CAAC;AAAA,IACL,SAAS,OAAO;AAEZ,YAAM,kBAAkB,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAC7E,YAAM,YAAY;AAAA,QACd,sBAAsB,eAAe;AAAA,QACrC,iBAAiB,QAAQ,QAAQ;AAAA,MACrC;AAAA,IACJ;AAEA,UAAM,KAAK,cAAc,MAAM;AAE/B,SAAK,OAAO,UAAU,KAAK,MAAM;AACjC,WAAO,EAAE,OAAO;AAAA,EACpB;AAAA,EAEA,wBAAwB;AACpB,WAAO,KAAK,YAAY;AAAA,EAC5B;AAAA,EAEA,MAAM,4BAIH;AACC,UAAM,EAAE,UAAU,UAAU,YAAY,IAAI,KAAK,YAAY;AAC7D,WAAO;AAAA,MACH;AAAA,MACA,oBAAoB;AAAA,MACpB;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA,EAGA,MAAM,gBAAgB,EAAE,OAAO,GAAiD;AAC5E,UAAM,SAAS,MAAM,KAAK,YAAY;AAAA,MAClC,UAAU,CAAC;AAAA,MACX,EAAE,aAAa,KAAK;AAAA,MACpB;AAAA,MACA,QAAQ,CAAC;AAAA;AAAA,IACb;AACA,WAAO,KAAK,qBAAqB,MAAM;AAGvC,UAAM,kBAAkB,OAAO,OAAO,SAAS,CAAC;AAChD,QAAI,oBAAoB,QAAW;AAC/B,aAAO,CAAC;AAAA,IACZ;AACA,WAAO,CAAC,eAAe,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,kBAAkB,WAAW,KAAK,IAAI,MAAM;AAC1G,YAAM,EAAE,WAAW,mBAAmB,WAAW,kBAAkB,IAAI,0BAA0B;AAAA,QAC7F,KAAK;AAAA,MACT;AACA,YAAM,WAAW,OAAO,SAAY,KAAK,GAAG,SAAS,GAAG,IAAI,SAAS,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC,IAAI,SAAS,EAAE;AACpG,YAAM,YAAY,OAAO,SAAY,KAAK,GAAG,SAAS,GAAG,IAAI,SAAS,GAAG,MAAM,GAAG,EAAE,CAAC,CAAC,IAAI;AAC1F,YAAM,OAAO,UAAU,SAAU,UAAU,CAAC,EAAuB,OAAO;AAC1E,YAAM,SAAS,UAAU;AACzB,aAAO;AAAA,QACH,mBAAmB;AAAA,QACnB,YAAY,MAAM;AAAA,QAClB,YAAY,MAAM;AAAA,QAClB,UAAU;AAAA;AAAA,QACV,cAAc;AAAA,QACd,mBAAmB;AAAA,QACnB;AAAA,QACA,aAAa,MAAM;AAAA,QACnB,oBAAoB,MAAM;AAAA,QAC1B;AAAA,QACA;AAAA,QACA,YAAY,MAAM;AAAA,QAClB,eAAe,IAAI,UAAU;AAAA,QAC7B,oBAAqB,KAAK,IAAK;AAAA,QAC/B;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAY,UAAU,OAAO,CAAC,EAAE,KAAK,MAAM,SAAS,KAAK,EAAyB,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE;AAAA,QACpG,wBAAwB;AAAA,QACxB,0BAA0B;AAAA,MAC9B;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,mBAAmB,QAAgB,cAAc,MAAM;AACzD,UAAM,YAAY,oBAAI,IAAY;AAClC,UAAM,OAAO,KAAK,QAAQ,IAAI,KAAK,YAAY,OAAO,UAAU,MAAM,CAAC;AACvE,QAAI,MAAM;AACN,iBAAW,WAAW,KAAK,QAAQ,WAAW;AAC1C,kBAAU,IAAI,QAAQ,EAAE;AAAA,MAC5B;AAAA,IACJ;AACA,QAAI,CAAC,eAAe,CAAC,UAAU,MAAM;AAEjC,iBAAW,WAAW,MAAM,KAAK,8BAA8B,MAAM,GAAG;AACpE,kBAAU,IAAI,OAAO;AAAA,MACzB;AAAA,IACJ;AACA,QAAI,MAAM;AACN,YAAM,YAAY,KAAK,eAAe,QAAQ,gBAAgB;AAC9D,UAAI,WAAW;AACX,kBAAU,IAAI,SAAS;AAAA,MAC3B;AAAA,IACJ;AAGA,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM;AACnC,UAAM,yBAAyB,KAAK,KAAK,aAAa,mBAAmB,GAAG;AAC5E,QAAI,2BAA2B,UAAa,uBAAuB,SAAS,GAAG;AAC3E,YAAM,oBAAoB,uBACrB,OAAO,CAAC,SAAmC,KAAK,SAAS,KAAK,EAC9D,IAAI,UAAQ,KAAK,EAAE;AACxB,iBAAW,WAAW,mBAAmB;AACrC,kBAAU,IAAI,OAAO;AAAA,MACzB;AAAA,IACJ;AAEA,WAAO,CAAC,GAAG,UAAU,OAAO,CAAC;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,8BAA8B,QAAmC;AACnE,QAAI;AACA,UAAI,KAAK,WAAW,QAAW;AAC3B,eAAO,MAAM,QAAQ,KAAK,WAAW,MAAM,CAAC,6CAA6C;AACzF,eAAO,CAAC;AAAA,MACZ;AAEA,YAAM,OAAO,KAAK,OAAO,IAAI,KAAK,YAAY,OAAO,UAAU,MAAM,CAAC;AAEtE,YAAM,QAAQ,IAAI,MAAM,EAAE,SAAS,QAAQ,CAAC,EAAE,CAAC;AAC/C,YAAM,QAAQ,KAAK,QAAQ;AAC3B,YAAM,MAAM,UAAU,SAAS;AAAA,QAC3B;AAAA,QACA,MAAM,KAAK,QAAQ;AAAA,QACnB,aAAa,CAAC,cAAc,GAAG;AAAA,MACnC,CAAC;AAED,YAAM,YAAY,IAAI,MAAc;AACpC,iBAAW,WAAW,KAAK,QAAQ,WAAW;AAC1C,kBAAU,KAAK,QAAQ,EAAE;AAAA,MAC7B;AAEA,aAAO;AAAA,IACX,SAAS,OAAO;AACZ,aAAO,KAAK,QAAQ,KAAK,WAAW,MAAM,CAAC,2BAA2B,KAAK;AAC3E,aAAO,CAAC;AAAA,IACZ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,SAAS,QAAgB,WAAW,GAA4B;AAClE,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM;AAEnC,UAAM,SAAyB,CAAC;AAGhC,UAAM,cAAc,MAAM,KAAK,mBAAmB,QAAQ,KAAK;AAE/D,QAAI,YAAY,WAAW,GAAG;AAC1B,aAAO,KAAK,kCAAkC,KAAK,WAAW,MAAM,CAAC,EAAE;AACvE,aAAO;AAAA,IACX;AAEA,WAAO,KAAK,gBAAgB,KAAK,WAAW,MAAM,CAAC,OAAO,YAAY,MAAM,eAAe,WAAW;AAGtG,UAAM,eAAe,YAAY,IAAI,OAAM,OAAM;AAC7C,YAAM,UAAU,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI;AACtD,aAAO,MAAM,WAAW,OAAO,EAAE;AACjC,YAAM,UAAU,MAAM,OAAO,IAAI,IAAI,QAAQ;AAC7C,aAAO,EAAE,IAAI;AACb,aAAO,MAAM,mBAAmB,OAAO,KAAK,OAAO,EAAE;AAAA,IACzD,CAAC;AAED,UAAM,QAAQ,IAAI,YAAY;AAG9B,QAAI,KAAK,aAAa;AAElB,YAAM,aAAa,OAAO,OAAO,MAAM,EAAE,KAAK,OAAK,CAAC;AACpD,UAAI,CAAC,cAAc,YAAY,SAAS,GAAG;AAGvC,eAAO,KAAK,QAAQ,KAAK,WAAW,MAAM,CAAC,sCAAsC;AAAA,MACrF;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,iBAAiB,QAAgB;AACnC,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM,IAAI,KAAK,OAAO,IAAI,MAAM,IAAI;AACjE,QAAI,SAAS,QAAW;AACpB,YAAM,YAAY,cAAc,MAAM;AAAA,IAC1C;AACA,UAAM,KAAK,YAAY,WAAW,QAAQ,CAAC,CAAC,MAAM,WAAW;AAC7D,SAAK,yBAAyB,MAAM;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,yBAAyB,QAAgB;AACrC,SAAK,iBAAiB,IAAI,MAAM,GAAG,KAAK;AACxC,SAAK,iBAAiB,OAAO,MAAM;AACnC,SAAK,OAAO,OAAO,MAAM;AACzB,SAAK,qBAAqB,eAAe,KAAK,QAAQ,MAAM,CAAC;AAC7D,SAAK,kBAAkB,OAAO,MAAM;AAAA,EACxC;AAAA,EAEA,MAAM,wBAAwB,MAAgF;AAC1G,UAAM,EAAE,QAAQ,QAAQ,IAAI;AAC5B,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM;AACnC,UAAM,EAAE,mBAAmB,cAAc,IAAI,MAAM,KAAK,gCAAgC,OAAO;AAC/F,WAAO,EAAE,YAAY,mBAAmB,QAAQ,cAAc;AAAA,EAClE;AAAA,EAEA,MAAM,WAAW,QAAgB;AAC7B,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM;AAEnC,UAAM,OAAO;AAAA,MACT,GAAG;AAAA,QACC;AAAA,UACI,cAAc;AAAA,QAClB;AAAA,QACA,KAAK,UAAU;AAAA,UACX,UAAU,eAAe,CAAC;AAAA,UAC1B,SAAS;AAAA,UACT,YAAY;AAAA,QAChB,CAAC;AAAA,MACL;AAAA,MACA,sBAAsB;AAAA;AAAA,IAC1B;AAEA,qBAAiB,SAAS,KAAK,KAAK,YAAY,KAAK,IAAI,GAAG;AACxD,iBAAW,QAAQ,OAAO;AACtB,YAAI,KAAK,SAAS,gBAAgB,MAAM,QAAQ,KAAK,KAAK,GAAG;AAEzD,iBAAO,KAAK,MAAM,IAAI,CAAC,EAAE,UAAU,aAAa,UAAU,MAAM,OAAO;AAAA,YACnE;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACJ,EAAE;AAAA,QACN;AACA,eAAO,KAAK,yCAAyC,IAAI;AAAA,MAC7D;AAAA,IACJ;AAEA,UAAM,YAAY,cAAc,wDAAwD;AAAA,EAC5F;AAAA,EAEA,aAAa,QAAgB,aAA0B;AACnD,WAAO,KAAK,OAAO,IAAI,MAAM,EAAE,KAAK,WAAW,4BAA4B,EAAE,aAAa,EAAE,YAAY,CAAC;AAAA,EAC7G;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,YAAY,QAAgB,SAAuE;AACrG,UAAM,aAAiD,QAAQ,IAAI,YAAU;AAAA,MACzE,WAAW,MAAM;AAAA,MACjB,UAAU,MAAM;AAAA,MAChB,UAAU,MAAM,UAAU,IAAI,OAAK,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK;AAAA,MACzD,SACI,MAAM,SAAS,IAAI,CAAC,OAA4B;AAAA,QAC5C,SAAS,EAAE,YAAY,OAAO,UAAU,EAAE,OAAO,IAAI;AAAA,QACrD,UAAU,EAAE,aAAa,OAAO,eAAe,EAAE,QAAQ,IAAI;AAAA,QAC7D,YAAY,EAAE,gBAAgB,OAAO,aAAa,EAAE,WAAW,IAAI;AAAA,MACvE,EAAE,KAAK;AAAA,MACX,aAAa,YAAY;AAAA,IAC7B,EAAE;AAEF,WAAO,KAAK,uBAAuB,UAAU;AAE7C,UAAM,EAAE,OAAO,IAAI,MAAM,KAAK,gBAAgB,QAAQ,eAAe,CAAC,GAAG,cAAc,IAAI,OAAO,UAAU;AAC5G,WAAO;AAAA,MACH;AAAA,QACI,MAAM,EAAE,aAAa,GAAG,YAAY,cAAc,IAAI,cAAc,EAAE;AAAA,QACtE;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,eACF,QACA,YACA,UACsC;AACtC,UAAM,iBAAmC,SAAS,IAAI,cAAY;AAAA,MAC9D,MAAM,QAAQ,SAAS,OAAO,OAAO,QAAQ,IAAI,IAAI;AAAA,MACrD,OAAO,QAAQ,UAAU,OAAO,QAAQ,QAAQ,KAAK,IAAI;AAAA,MACzD,UAAU,QAAQ,aAAa,OAAO,eAAe,QAAQ,QAAQ,IAAI;AAAA,MACzE,SAAS,QAAQ,YAAY,OAAO,UAAU,QAAQ,OAAO,IAAI;AAAA,MACjE,aAAa,YAAY;AAAA,IAC7B,EAAE;AAEF,WAAO,KAAK,gCAAgC,YAAY,cAAc;AAEtE,UAAM,EAAE,OAAO,IAAI,MAAM,KAAK,gBAAgB,QAAQ,YAAY,QAAQ,IAAI,WAAW,cAAc;AACvG,WAAO;AAAA,MACH;AAAA,QACI,MAAM,EAAE,aAAa,YAAY,YAAY,QAAQ,IAAI,cAAc,EAAE;AAAA,QACzE;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,gBAAgB,QAAuD;AACzE,QAAI,CAAC,KAAK,aAAa;AACnB,YAAM,YAAY,iBAAiB,iBAAiB;AAAA,IACxD;AAEA,UAAM,eAAe,KAAK,kBAAkB,IAAI,MAAM;AACtD,QAAI,cAAc;AACd,aAAO,KAAK,gCAAgC,YAAY;AAAA,IAC5D;AAGA,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM;AAEnC,QAAI;AACA,YAAM,cAAc,KAAK,YAAY;AACrC,UAAI,CAAC,aAAa;AACd,eAAO,KAAK,4BAA4B;AACxC,eAAO;AAAA,MACX;AAGA,YAAM,mBAAmB,MAAM,YAAY;AAAA,QAAI,WAC3C,MAAM,IAAI,qBAAqB,EAAE,aAAa;AAAA,UAC1C,aAAa,KAAK;AAAA,UAClB,sBAAsB;AAAA,QAC1B,CAAC;AAAA,MACL;AAGA,YAAM,cAAc,KAAK,YAAY,OAAO,UAAU,MAAM;AAC5D,YAAM,aAAa,iBAAiB;AAAA,QAAK,CAAC,EAAE,aAAa,cAAc,MACnE,YAAY,GAAG,aAAa,aAAa;AAAA,MAC7C;AAEA,UAAI,YAAY;AACZ,cAAM,EAAE,KAAK,IAAI;AACjB,aAAK,kBAAkB,IAAI,QAAQ,IAAI;AACvC,eAAO,KAAK,gCAAgC,IAAI;AAAA,MACpD;AAEA,aAAO;AAAA,IACX,SAAS,OAAO;AACZ,aAAO,KAAK,wCAAwC,KAAK,WAAW,MAAM,CAAC,KAAK,KAAK;AACrF,aAAO;AAAA,IACX;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,WAAW,QAAgB,iBAAgE;AAC7F,QAAI,CAAC,KAAK,aAAa;AACnB,YAAM,YAAY,YAAY,iBAAiB;AAAA,IACnD;AACA,QAAI,CAAC,KAAK,OAAO,IAAI,MAAM,GAAG;AAC1B,YAAM,YAAY,cAAc,MAAM;AAAA,IAC1C;AACA,QAAI,CAAC,KAAK,OAAO,YAAY,MAAM,GAAG;AAClC,YAAM,YAAY,YAAY,QAAQ,KAAK,WAAW,MAAM,CAAC,gCAAgC;AAAA,IACjG;AAKA,UAAM,mBAAmB,KAAK,OAAO,eAAe,IAAI,MAAM;AAC9D,UAAM,cAAc,mBAAmB,QAAQ;AAC/C,QAAI,gBAAgB,UAAa,gBAAgB,GAAG;AAChD,YAAM,YAAY;AAAA,QACd,QAAQ,KAAK,WAAW,MAAM,CAAC,kDAAkD,WAAW;AAAA,MAChG;AAAA,IACJ;AAEA,QAAI;AACA,YAAM,cAAc,KAAK,YAAY;AACrC,UAAI,CAAC,aAAa;AACd,cAAM,YAAY,YAAY,4BAA4B;AAAA,MAC9D;AAGA,UAAI,aAAa,KAAK,kBAAkB,IAAI,MAAM;AAClD,UAAI,CAAC,YAAY;AAEb,cAAM,SAAS,MAAM,KAAK,gBAAgB,MAAM;AAChD,YAAI,CAAC,QAAQ;AACT,gBAAM,YAAY,YAAY,mCAAmC;AAAA,QACrE;AACA,qBAAa,KAAK,kBAAkB,IAAI,MAAM;AAC9C,YAAI,CAAC,YAAY;AACb,gBAAM,YAAY,YAAY,2BAA2B;AAAA,QAC7D;AAAA,MACJ;AAEA,aAAO,KAAK,4BAA4B,KAAK,WAAW,MAAM,CAAC,eAAe,eAAe,EAAE;AAG/F,YAAM,YAAY;AAAA,QAAI,WAClB,MACK,IAAI,qBAAqB,EACzB;AAAA,UACG,KAAK,YAAY,OAAO,UAAU,MAAM;AAAA,UACxC,WAAW;AAAA,UACX,WAAW;AAAA,UACX;AAAA,QACJ;AAAA,MACR;AAGA,aAAO,KAAK,gCAAgC,UAAU;AAAA,IAC1D,SAAS,OAAO;AACZ,aAAO,MAAM,yBAAyB,KAAK,WAAW,MAAM,CAAC,KAAK,KAAK;AACvE,YAAM;AAAA,IACV;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,gCAAgC,YAAuD;AACnF,UAAM,EAAE,UAAU,WAAW,iBAAiB,uBAAuB,iBAAiB,OAAO,IAAI;AACjG,WAAO;AAAA,MACH,KAAK;AAAA,MACL,KAAK;AAAA,MACL,kBAAkB;AAAA,MAClB,yBAAyB;AAAA,MACzB,iCAAiC;AAAA;AAAA,MACjC,iCAAiC,kBAAkB;AAAA,MACnD,mBAAmB;AAAA,MACnB,eACI,WAAW,aACL,aAAa,eACb,WAAW,aACT,aAAa,eACb,aAAa;AAAA,IAC7B;AAAA,EACJ;AACJ;",
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { NodeId } from "@matter/main";
|
|
7
|
+
import { EndpointNumber } from "@matter/main/types";
|
|
7
8
|
import { NodeStates, PairedNode } from "@project-chip/matter.js/device";
|
|
8
9
|
import { AttributeDataCache } from "./AttributeDataCache.js";
|
|
9
10
|
/**
|
|
@@ -42,6 +43,15 @@ export declare class Nodes {
|
|
|
42
43
|
* Remove a node from storage and clear its attribute cache and state tracking.
|
|
43
44
|
*/
|
|
44
45
|
delete(nodeId: NodeId): void;
|
|
46
|
+
/**
|
|
47
|
+
* Buffer an endpoint_added until the next nodeStructureChanged for that node.
|
|
48
|
+
*/
|
|
49
|
+
queueEndpointAdded(nodeId: NodeId, endpointId: EndpointNumber): void;
|
|
50
|
+
/**
|
|
51
|
+
* Take ownership of buffered endpoint additions for a node and clear the queue.
|
|
52
|
+
* Returned array is in insertion order; an empty array is returned if nothing is queued.
|
|
53
|
+
*/
|
|
54
|
+
drainPendingEndpointAdds(nodeId: NodeId): EndpointNumber[];
|
|
45
55
|
/**
|
|
46
56
|
* Initialize state tracking for a newly paired/discovered node.
|
|
47
57
|
* Sets previous state and initial availability so the first stateChanged event
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Nodes.d.ts","sourceRoot":"","sources":["../../../src/controller/Nodes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAExE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;;;;;GAQG;AACH,qBAAa,KAAK;;
|
|
1
|
+
{"version":3,"file":"Nodes.d.ts","sourceRoot":"","sources":["../../../src/controller/Nodes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAExE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;;;;;GAQG;AACH,qBAAa,KAAK;;IAed;;OAEG;IACH,IAAI,cAAc,IAAI,kBAAkB,CAEvC;IAED;;OAEG;IACH,MAAM,IAAI,MAAM,EAAE,CAEjB;IAED;;;OAGG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAM9B;IAED;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE3B;IAED;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAE1C;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAM3B;IAED;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,GAAG,IAAI,CAOnE;IAED;;;OAGG;IACH,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE,CAOzD;IAED;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,GAAG,IAAI,CAGxD;IAED;;;;OAIG;IACH,kBAAkB,CACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,UAAU,GACrB;QAAE,mBAAmB,EAAE,IAAI,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,GAAG;QAAE,mBAAmB,EAAE,KAAK,CAAA;KAAE,CAYpF;IAED;;;;;;OAMG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAIxC;IAED;;;;;;;;;;OAUG;IACH,eAAe,CAAC,YAAY,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,UAAU,GAAG,OAAO,CAU7E;IAED;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEnC;CACJ"}
|
|
@@ -13,6 +13,13 @@ class Nodes {
|
|
|
13
13
|
#previousStates = /* @__PURE__ */ new Map();
|
|
14
14
|
/** Cached availability so serialization and event paths always agree */
|
|
15
15
|
#lastAvailability = /* @__PURE__ */ new Map();
|
|
16
|
+
/**
|
|
17
|
+
* Endpoint additions queued until the next nodeStructureChanged for that node.
|
|
18
|
+
* Preserves the wire contract used by python-matter-server: endpoint_added must
|
|
19
|
+
* arrive AFTER a node_updated that already carries the new endpoint, so consumers
|
|
20
|
+
* (e.g., Home Assistant) can resolve node.endpoints[endpoint_id] in their callback.
|
|
21
|
+
*/
|
|
22
|
+
#pendingEndpointAdds = /* @__PURE__ */ new Map();
|
|
16
23
|
/**
|
|
17
24
|
* Get the attribute cache instance.
|
|
18
25
|
*/
|
|
@@ -56,6 +63,30 @@ class Nodes {
|
|
|
56
63
|
this.#attributeCache.delete(nodeId);
|
|
57
64
|
this.#previousStates.delete(nodeId);
|
|
58
65
|
this.#lastAvailability.delete(nodeId);
|
|
66
|
+
this.#pendingEndpointAdds.delete(nodeId);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Buffer an endpoint_added until the next nodeStructureChanged for that node.
|
|
70
|
+
*/
|
|
71
|
+
queueEndpointAdded(nodeId, endpointId) {
|
|
72
|
+
let queue = this.#pendingEndpointAdds.get(nodeId);
|
|
73
|
+
if (queue === void 0) {
|
|
74
|
+
queue = [];
|
|
75
|
+
this.#pendingEndpointAdds.set(nodeId, queue);
|
|
76
|
+
}
|
|
77
|
+
queue.push(endpointId);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Take ownership of buffered endpoint additions for a node and clear the queue.
|
|
81
|
+
* Returned array is in insertion order; an empty array is returned if nothing is queued.
|
|
82
|
+
*/
|
|
83
|
+
drainPendingEndpointAdds(nodeId) {
|
|
84
|
+
const queue = this.#pendingEndpointAdds.get(nodeId);
|
|
85
|
+
if (queue === void 0 || queue.length === 0) {
|
|
86
|
+
return [];
|
|
87
|
+
}
|
|
88
|
+
this.#pendingEndpointAdds.delete(nodeId);
|
|
89
|
+
return queue;
|
|
59
90
|
}
|
|
60
91
|
/**
|
|
61
92
|
* Initialize state tracking for a newly paired/discovered node.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/controller/Nodes.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter-server/ws-controller",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.5-alpha.0-20260502-c981ea0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "matter.js based Matter controller library",
|
|
6
6
|
"bugs": {
|
|
@@ -34,12 +34,12 @@
|
|
|
34
34
|
"node": ">=20.19.0 <22.0.0 || >=22.13.0"
|
|
35
35
|
},
|
|
36
36
|
"optionalDependencies": {
|
|
37
|
-
"@matter/nodejs-ble": "0.17.0-alpha.0-
|
|
37
|
+
"@matter/nodejs-ble": "0.17.0-alpha.0-20260430-11b356f65"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@matter/main": "0.17.0-alpha.0-
|
|
41
|
-
"@matter-server/ws-client": "0.6.
|
|
42
|
-
"@project-chip/matter.js": "0.17.0-alpha.0-
|
|
40
|
+
"@matter/main": "0.17.0-alpha.0-20260430-11b356f65",
|
|
41
|
+
"@matter-server/ws-client": "0.6.5-alpha.0-20260502-c981ea0",
|
|
42
|
+
"@project-chip/matter.js": "0.17.0-alpha.0-20260430-11b356f65",
|
|
43
43
|
"ws": "^8.20.0"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
@@ -15,6 +15,12 @@ const REGISTRY_MAX_ENTRIES = 256;
|
|
|
15
15
|
* yet emitted a valid xa, but bounded so a noisy LAN can't grow `#instanceObservers`
|
|
16
16
|
* without limit. Eviction targets the oldest xa-less observer first. */
|
|
17
17
|
const INSTANCE_OBSERVER_CAP = 512;
|
|
18
|
+
/** Stale entries (sources.length === 0) become eligible for pruning 24h after their
|
|
19
|
+
* last successful mDNS discovery (entry.lastSeen). Pruning is lazy — `#pruneExpired`
|
|
20
|
+
* runs on `list` / `get` / `#onDiscovered`, so without activity an eligible entry
|
|
21
|
+
* may linger past the window. Long enough that BRs announcing once per ~half-day
|
|
22
|
+
* stay resolvable; short enough that vanished BRs eventually drop. */
|
|
23
|
+
const STALE_RETENTION_MS = 24 * 60 * 60 * 1000;
|
|
18
24
|
const MESHCOP_TYPE_QNAME = "_meshcop._udp.local";
|
|
19
25
|
const TREL_TYPE_QNAME = "_trel._udp.local";
|
|
20
26
|
const MESHCOP_SUFFIX = "._meshcop._udp.local";
|
|
@@ -182,14 +188,25 @@ export class BorderRouterDiscovery {
|
|
|
182
188
|
}
|
|
183
189
|
|
|
184
190
|
list(): BorderRouterEntry[] {
|
|
191
|
+
this.#pruneExpired();
|
|
185
192
|
return Array.from(this.#registry.values(), entry => this.#snapshotEntry(entry));
|
|
186
193
|
}
|
|
187
194
|
|
|
188
195
|
get(extAddressHex: string): BorderRouterEntry | undefined {
|
|
196
|
+
this.#pruneExpired();
|
|
189
197
|
const entry = this.#registry.get(extAddressHex.toUpperCase());
|
|
190
198
|
return entry === undefined ? undefined : this.#snapshotEntry(entry);
|
|
191
199
|
}
|
|
192
200
|
|
|
201
|
+
#pruneExpired(): void {
|
|
202
|
+
const cutoff = Date.now() - STALE_RETENTION_MS;
|
|
203
|
+
for (const [xaKey, entry] of this.#registry) {
|
|
204
|
+
if (entry.sources.length === 0 && entry.lastSeen < cutoff) {
|
|
205
|
+
this.#registry.delete(xaKey);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
193
210
|
/** Shallow copy so callers cannot mutate registry state through the returned reference. */
|
|
194
211
|
#snapshotEntry(entry: BorderRouterEntry): BorderRouterEntry {
|
|
195
212
|
return {
|
|
@@ -201,6 +218,7 @@ export class BorderRouterDiscovery {
|
|
|
201
218
|
|
|
202
219
|
#onDiscovered(name: DnssdNameLike): void {
|
|
203
220
|
if (!this.#started) return;
|
|
221
|
+
this.#pruneExpired();
|
|
204
222
|
const lower = name.qname.toLowerCase();
|
|
205
223
|
if (lower === MESHCOP_TYPE_QNAME || lower === TREL_TYPE_QNAME) {
|
|
206
224
|
return;
|
|
@@ -265,13 +283,12 @@ export class BorderRouterDiscovery {
|
|
|
265
283
|
|
|
266
284
|
#onInstanceChanged(name: DnssdNameLike, source: Source): void {
|
|
267
285
|
if (!this.#started) return;
|
|
268
|
-
try {
|
|
269
|
-
this.#parseAndUpsert(name, source);
|
|
270
|
-
} catch (e) {
|
|
271
|
-
logger.debug("Error processing border router instance change:", e);
|
|
272
|
-
}
|
|
273
|
-
|
|
274
286
|
if (name.isDiscovered) {
|
|
287
|
+
try {
|
|
288
|
+
this.#parseAndUpsert(name, source);
|
|
289
|
+
} catch (e) {
|
|
290
|
+
logger.debug("Error processing border router instance change:", e);
|
|
291
|
+
}
|
|
275
292
|
return;
|
|
276
293
|
}
|
|
277
294
|
|
|
@@ -299,36 +316,6 @@ export class BorderRouterDiscovery {
|
|
|
299
316
|
if (idx !== -1) {
|
|
300
317
|
entry.sources.splice(idx, 1);
|
|
301
318
|
}
|
|
302
|
-
// Clear fields exclusively contributed by the disappearing source so the registry
|
|
303
|
-
// doesn't expose stale meshcop naming / state when only trel remains (or vice versa).
|
|
304
|
-
if (source === "meshcop") {
|
|
305
|
-
entry.meshcopPort = undefined;
|
|
306
|
-
entry.networkName = undefined;
|
|
307
|
-
entry.vendorName = undefined;
|
|
308
|
-
entry.modelName = undefined;
|
|
309
|
-
entry.threadVersion = undefined;
|
|
310
|
-
entry.borderAgentIdHex = undefined;
|
|
311
|
-
entry.stateBitmapHex = undefined;
|
|
312
|
-
entry.activeTimestampHex = undefined;
|
|
313
|
-
entry.partitionIdHex = undefined;
|
|
314
|
-
entry.domainName = undefined;
|
|
315
|
-
} else {
|
|
316
|
-
entry.trelPort = undefined;
|
|
317
|
-
}
|
|
318
|
-
if (entry.sources.length === 0) {
|
|
319
|
-
this.#registry.delete(xaKey);
|
|
320
|
-
return;
|
|
321
|
-
}
|
|
322
|
-
// Hostname / addresses can come from either source (meshcop wins on conflict). With
|
|
323
|
-
// the dropped source gone, re-parse the still-discovered companion instance so those
|
|
324
|
-
// shared fields reflect the surviving advertisement instead of lingering on the
|
|
325
|
-
// value the disappearing source last set.
|
|
326
|
-
for (const otherTracking of this.#instanceObservers.values()) {
|
|
327
|
-
if (otherTracking.xaKey === xaKey && otherTracking.source !== source) {
|
|
328
|
-
this.#parseAndUpsert(otherTracking.name, otherTracking.source);
|
|
329
|
-
break;
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
319
|
}
|
|
333
320
|
|
|
334
321
|
#onTargetChanged(target: DnssdNameLike): void {
|
|
@@ -554,21 +541,29 @@ export class BorderRouterDiscovery {
|
|
|
554
541
|
}
|
|
555
542
|
|
|
556
543
|
#evictOldest(): boolean {
|
|
557
|
-
let
|
|
558
|
-
let
|
|
544
|
+
let oldestStaleKey: string | undefined;
|
|
545
|
+
let oldestStaleSeen = Number.POSITIVE_INFINITY;
|
|
546
|
+
let oldestLiveKey: string | undefined;
|
|
547
|
+
let oldestLiveSeen = Number.POSITIVE_INFINITY;
|
|
559
548
|
for (const [xa, entry] of this.#registry) {
|
|
560
|
-
if (entry.
|
|
561
|
-
|
|
562
|
-
|
|
549
|
+
if (entry.sources.length === 0) {
|
|
550
|
+
if (entry.lastSeen < oldestStaleSeen) {
|
|
551
|
+
oldestStaleSeen = entry.lastSeen;
|
|
552
|
+
oldestStaleKey = xa;
|
|
553
|
+
}
|
|
554
|
+
} else if (entry.lastSeen < oldestLiveSeen) {
|
|
555
|
+
oldestLiveSeen = entry.lastSeen;
|
|
556
|
+
oldestLiveKey = xa;
|
|
563
557
|
}
|
|
564
558
|
}
|
|
565
|
-
|
|
559
|
+
const evictKey = oldestStaleKey ?? oldestLiveKey;
|
|
560
|
+
if (evictKey === undefined) return false;
|
|
566
561
|
|
|
567
|
-
this.#registry.delete(
|
|
562
|
+
this.#registry.delete(evictKey);
|
|
568
563
|
|
|
569
564
|
let releasedObservers = 0;
|
|
570
565
|
for (const [instanceKey, tracking] of [...this.#instanceObservers]) {
|
|
571
|
-
if (tracking.xaKey !==
|
|
566
|
+
if (tracking.xaKey !== evictKey) continue;
|
|
572
567
|
tracking.name.off(tracking.observer);
|
|
573
568
|
if (tracking.targetKey !== undefined) {
|
|
574
569
|
this.#releaseTarget(tracking.targetKey);
|
|
@@ -583,7 +578,7 @@ export class BorderRouterDiscovery {
|
|
|
583
578
|
`Border router registry exceeded ${REGISTRY_MAX_ENTRIES} entries; evicting oldest (released ${releasedObservers} instance observer${releasedObservers === 1 ? "" : "s"})`,
|
|
584
579
|
);
|
|
585
580
|
} else {
|
|
586
|
-
logger.debug(`Evicted border router xa=${
|
|
581
|
+
logger.debug(`Evicted border router xa=${evictKey}; released ${releasedObservers} instance observers`);
|
|
587
582
|
}
|
|
588
583
|
return true;
|
|
589
584
|
}
|
|
@@ -373,13 +373,18 @@ export class ControllerCommandHandler {
|
|
|
373
373
|
attributeCache.update(node);
|
|
374
374
|
}
|
|
375
375
|
basicInfoChangedInBatch = false;
|
|
376
|
+
// Emit node_updated first so consumers see the new endpoint in node.endpoints,
|
|
377
|
+
// then drain any endpoint_added events queued since the previous structure change.
|
|
376
378
|
this.events.nodeStructureChanged.emit(nodeId);
|
|
379
|
+
for (const endpointId of this.#nodes.drainPendingEndpointAdds(nodeId)) {
|
|
380
|
+
this.events.nodeEndpointAdded.emit(nodeId, endpointId);
|
|
381
|
+
}
|
|
377
382
|
});
|
|
378
383
|
node.events.decommissioned.on(() => {
|
|
379
384
|
this.#cleanupNodeAfterRemoval(nodeId);
|
|
380
385
|
this.events.nodeDecommissioned.emit(nodeId);
|
|
381
386
|
});
|
|
382
|
-
node.events.nodeEndpointAdded.on(endpointId => this.
|
|
387
|
+
node.events.nodeEndpointAdded.on(endpointId => this.#nodes.queueEndpointAdded(nodeId, endpointId));
|
|
383
388
|
node.events.nodeEndpointRemoved.on(endpointId => this.events.nodeEndpointRemoved.emit(nodeId, endpointId));
|
|
384
389
|
|
|
385
390
|
// Store the node for direct access
|
package/src/controller/Nodes.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { NodeId } from "@matter/main";
|
|
8
|
+
import { EndpointNumber } from "@matter/main/types";
|
|
8
9
|
import { NodeStates, PairedNode } from "@project-chip/matter.js/device";
|
|
9
10
|
import { ServerError } from "../types/WebSocketMessageTypes.js";
|
|
10
11
|
import { AttributeDataCache } from "./AttributeDataCache.js";
|
|
@@ -25,6 +26,13 @@ export class Nodes {
|
|
|
25
26
|
#previousStates = new Map<NodeId, NodeStates>();
|
|
26
27
|
/** Cached availability so serialization and event paths always agree */
|
|
27
28
|
#lastAvailability = new Map<NodeId, boolean>();
|
|
29
|
+
/**
|
|
30
|
+
* Endpoint additions queued until the next nodeStructureChanged for that node.
|
|
31
|
+
* Preserves the wire contract used by python-matter-server: endpoint_added must
|
|
32
|
+
* arrive AFTER a node_updated that already carries the new endpoint, so consumers
|
|
33
|
+
* (e.g., Home Assistant) can resolve node.endpoints[endpoint_id] in their callback.
|
|
34
|
+
*/
|
|
35
|
+
#pendingEndpointAdds = new Map<NodeId, EndpointNumber[]>();
|
|
28
36
|
|
|
29
37
|
/**
|
|
30
38
|
* Get the attribute cache instance.
|
|
@@ -74,6 +82,32 @@ export class Nodes {
|
|
|
74
82
|
this.#attributeCache.delete(nodeId);
|
|
75
83
|
this.#previousStates.delete(nodeId);
|
|
76
84
|
this.#lastAvailability.delete(nodeId);
|
|
85
|
+
this.#pendingEndpointAdds.delete(nodeId);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Buffer an endpoint_added until the next nodeStructureChanged for that node.
|
|
90
|
+
*/
|
|
91
|
+
queueEndpointAdded(nodeId: NodeId, endpointId: EndpointNumber): void {
|
|
92
|
+
let queue = this.#pendingEndpointAdds.get(nodeId);
|
|
93
|
+
if (queue === undefined) {
|
|
94
|
+
queue = [];
|
|
95
|
+
this.#pendingEndpointAdds.set(nodeId, queue);
|
|
96
|
+
}
|
|
97
|
+
queue.push(endpointId);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Take ownership of buffered endpoint additions for a node and clear the queue.
|
|
102
|
+
* Returned array is in insertion order; an empty array is returned if nothing is queued.
|
|
103
|
+
*/
|
|
104
|
+
drainPendingEndpointAdds(nodeId: NodeId): EndpointNumber[] {
|
|
105
|
+
const queue = this.#pendingEndpointAdds.get(nodeId);
|
|
106
|
+
if (queue === undefined || queue.length === 0) {
|
|
107
|
+
return [];
|
|
108
|
+
}
|
|
109
|
+
this.#pendingEndpointAdds.delete(nodeId);
|
|
110
|
+
return queue;
|
|
77
111
|
}
|
|
78
112
|
|
|
79
113
|
/**
|