@matter/node 0.16.0-alpha.0-20251108-514b3f69e → 0.16.0-alpha.0-20251110-c4c70a41b
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/cjs/behavior/cluster/ClientBehavior.d.ts +0 -7
- package/dist/cjs/behavior/cluster/ClientBehavior.d.ts.map +1 -1
- package/dist/cjs/behavior/cluster/ClientBehavior.js +2 -8
- package/dist/cjs/behavior/cluster/ClientBehavior.js.map +2 -2
- package/dist/cjs/behavior/cluster/ClusterBehavior.d.ts +1 -1
- package/dist/cjs/behavior/cluster/ClusterBehavior.d.ts.map +1 -1
- package/dist/cjs/behavior/cluster/ClusterBehavior.js +9 -4
- package/dist/cjs/behavior/cluster/ClusterBehavior.js.map +1 -1
- package/dist/cjs/behavior/cluster/ClusterBehaviorCache.d.ts +7 -1
- package/dist/cjs/behavior/cluster/ClusterBehaviorCache.d.ts.map +1 -1
- package/dist/cjs/behavior/cluster/ClusterBehaviorCache.js +7 -5
- package/dist/cjs/behavior/cluster/ClusterBehaviorCache.js.map +1 -1
- package/dist/cjs/behavior/cluster/ClusterBehaviorType.d.ts +57 -0
- package/dist/cjs/behavior/cluster/ClusterBehaviorType.d.ts.map +1 -0
- package/dist/cjs/behavior/cluster/{ClusterBehaviorUtil.js → ClusterBehaviorType.js} +70 -39
- package/dist/cjs/behavior/cluster/ClusterBehaviorType.js.map +6 -0
- package/dist/cjs/behavior/cluster/ClusterEvents.d.ts +1 -1
- package/dist/cjs/behavior/cluster/ClusterEvents.d.ts.map +1 -1
- package/dist/cjs/behavior/cluster/ClusterState.d.ts +1 -1
- package/dist/cjs/behavior/cluster/ClusterState.d.ts.map +1 -1
- package/dist/cjs/behavior/cluster/ValidatedElements.js +2 -2
- package/dist/cjs/behavior/cluster/ValidatedElements.js.map +1 -1
- package/dist/cjs/behavior/cluster/{ClusterBehaviorUtil.d.ts → cluster-behavior-utils.d.ts} +10 -8
- package/dist/cjs/behavior/cluster/cluster-behavior-utils.d.ts.map +1 -0
- package/dist/cjs/behavior/cluster/cluster-behavior-utils.js +41 -0
- package/dist/cjs/behavior/cluster/cluster-behavior-utils.js.map +6 -0
- package/dist/cjs/behavior/cluster/index.d.ts +2 -1
- package/dist/cjs/behavior/cluster/index.d.ts.map +1 -1
- package/dist/cjs/behavior/cluster/index.js +2 -1
- package/dist/cjs/behavior/cluster/index.js.map +1 -1
- package/dist/cjs/behavior/context/server/LocalActorContext.d.ts +4 -0
- package/dist/cjs/behavior/context/server/LocalActorContext.d.ts.map +1 -1
- package/dist/cjs/behavior/context/server/LocalActorContext.js +2 -3
- package/dist/cjs/behavior/context/server/LocalActorContext.js.map +1 -1
- package/dist/cjs/behavior/context/server/RemoteActorContext.d.ts +4 -0
- package/dist/cjs/behavior/context/server/RemoteActorContext.d.ts.map +1 -1
- package/dist/cjs/behavior/context/server/RemoteActorContext.js +1 -0
- package/dist/cjs/behavior/context/server/RemoteActorContext.js.map +1 -1
- package/dist/cjs/behavior/internal/BehaviorBacking.js +2 -2
- package/dist/cjs/behavior/internal/BehaviorBacking.js.map +1 -1
- package/dist/cjs/behavior/system/commissioning/CommissioningServer.d.ts.map +1 -1
- package/dist/cjs/behavior/system/commissioning/CommissioningServer.js +3 -3
- package/dist/cjs/behavior/system/commissioning/CommissioningServer.js.map +1 -1
- package/dist/cjs/behaviors/operational-credentials/OperationalCredentialsServer.js +1 -1
- package/dist/cjs/behaviors/operational-credentials/OperationalCredentialsServer.js.map +1 -1
- package/dist/cjs/behaviors/operational-credentials/VendorIdVerification.d.ts +6 -1
- package/dist/cjs/behaviors/operational-credentials/VendorIdVerification.d.ts.map +1 -1
- package/dist/cjs/behaviors/operational-credentials/VendorIdVerification.js +2 -2
- package/dist/cjs/behaviors/operational-credentials/VendorIdVerification.js.map +1 -1
- package/dist/cjs/endpoint/Endpoint.d.ts +8 -0
- package/dist/cjs/endpoint/Endpoint.d.ts.map +1 -1
- package/dist/cjs/endpoint/Endpoint.js +11 -3
- package/dist/cjs/endpoint/Endpoint.js.map +1 -1
- package/dist/cjs/endpoint/properties/Behaviors.d.ts +1 -1
- package/dist/cjs/endpoint/properties/Behaviors.d.ts.map +1 -1
- package/dist/cjs/endpoint/properties/Behaviors.js +6 -3
- package/dist/cjs/endpoint/properties/Behaviors.js.map +1 -1
- package/dist/cjs/endpoint/properties/EndpointInitializer.d.ts +0 -4
- package/dist/cjs/endpoint/properties/EndpointInitializer.d.ts.map +1 -1
- package/dist/cjs/endpoint/properties/EndpointInitializer.js +0 -6
- package/dist/cjs/endpoint/properties/EndpointInitializer.js.map +1 -1
- package/dist/cjs/node/Node.d.ts.map +1 -1
- package/dist/cjs/node/Node.js +2 -1
- package/dist/cjs/node/Node.js.map +1 -1
- package/dist/cjs/node/client/ClientCommandMethod.d.ts +11 -0
- package/dist/cjs/node/client/ClientCommandMethod.d.ts.map +1 -0
- package/dist/cjs/node/client/ClientCommandMethod.js +69 -0
- package/dist/cjs/node/client/ClientCommandMethod.js.map +6 -0
- package/dist/cjs/node/client/ClientEndpointInitializer.d.ts +0 -2
- package/dist/cjs/node/client/ClientEndpointInitializer.d.ts.map +1 -1
- package/dist/cjs/node/client/ClientEndpointInitializer.js +3 -34
- package/dist/cjs/node/client/ClientEndpointInitializer.js.map +1 -1
- package/dist/cjs/node/client/ClientStructure.d.ts.map +1 -1
- package/dist/cjs/node/client/ClientStructure.js +164 -32
- package/dist/cjs/node/client/ClientStructure.js.map +2 -2
- package/dist/cjs/node/client/ClientStructureEvents.d.ts +22 -0
- package/dist/cjs/node/client/ClientStructureEvents.d.ts.map +1 -0
- package/dist/cjs/node/client/ClientStructureEvents.js +92 -0
- package/dist/cjs/node/client/ClientStructureEvents.js.map +6 -0
- package/dist/cjs/node/client/PeerBehavior.d.ts +14 -1
- package/dist/cjs/node/client/PeerBehavior.d.ts.map +1 -1
- package/dist/cjs/node/client/PeerBehavior.js +111 -71
- package/dist/cjs/node/client/PeerBehavior.js.map +1 -1
- package/dist/cjs/node/client/Peers.d.ts +17 -0
- package/dist/cjs/node/client/Peers.d.ts.map +1 -1
- package/dist/cjs/node/client/Peers.js +96 -42
- package/dist/cjs/node/client/Peers.js.map +1 -1
- package/dist/cjs/node/server/ServerSubscription.d.ts +1 -1
- package/dist/cjs/node/server/ServerSubscription.d.ts.map +1 -1
- package/dist/cjs/node/server/ServerSubscription.js +2 -3
- package/dist/cjs/node/server/ServerSubscription.js.map +1 -1
- package/dist/esm/behavior/cluster/ClientBehavior.d.ts +0 -7
- package/dist/esm/behavior/cluster/ClientBehavior.d.ts.map +1 -1
- package/dist/esm/behavior/cluster/ClientBehavior.js +2 -8
- package/dist/esm/behavior/cluster/ClientBehavior.js.map +2 -2
- package/dist/esm/behavior/cluster/ClusterBehavior.d.ts +1 -1
- package/dist/esm/behavior/cluster/ClusterBehavior.d.ts.map +1 -1
- package/dist/esm/behavior/cluster/ClusterBehavior.js +9 -4
- package/dist/esm/behavior/cluster/ClusterBehavior.js.map +1 -1
- package/dist/esm/behavior/cluster/ClusterBehaviorCache.d.ts +7 -1
- package/dist/esm/behavior/cluster/ClusterBehaviorCache.d.ts.map +1 -1
- package/dist/esm/behavior/cluster/ClusterBehaviorCache.js +7 -5
- package/dist/esm/behavior/cluster/ClusterBehaviorCache.js.map +1 -1
- package/dist/esm/behavior/cluster/ClusterBehaviorType.d.ts +57 -0
- package/dist/esm/behavior/cluster/ClusterBehaviorType.d.ts.map +1 -0
- package/dist/esm/behavior/cluster/{ClusterBehaviorUtil.js → ClusterBehaviorType.js} +66 -35
- package/dist/esm/behavior/cluster/ClusterBehaviorType.js.map +6 -0
- package/dist/esm/behavior/cluster/ClusterEvents.d.ts +1 -1
- package/dist/esm/behavior/cluster/ClusterEvents.d.ts.map +1 -1
- package/dist/esm/behavior/cluster/ClusterState.d.ts +1 -1
- package/dist/esm/behavior/cluster/ClusterState.d.ts.map +1 -1
- package/dist/esm/behavior/cluster/ValidatedElements.js +1 -1
- package/dist/esm/behavior/cluster/{ClusterBehaviorUtil.d.ts → cluster-behavior-utils.d.ts} +10 -8
- package/dist/esm/behavior/cluster/cluster-behavior-utils.d.ts.map +1 -0
- package/dist/esm/behavior/cluster/cluster-behavior-utils.js +21 -0
- package/dist/esm/behavior/cluster/cluster-behavior-utils.js.map +6 -0
- package/dist/esm/behavior/cluster/index.d.ts +2 -1
- package/dist/esm/behavior/cluster/index.d.ts.map +1 -1
- package/dist/esm/behavior/cluster/index.js +2 -1
- package/dist/esm/behavior/cluster/index.js.map +1 -1
- package/dist/esm/behavior/context/server/LocalActorContext.d.ts +4 -0
- package/dist/esm/behavior/context/server/LocalActorContext.d.ts.map +1 -1
- package/dist/esm/behavior/context/server/LocalActorContext.js +2 -3
- package/dist/esm/behavior/context/server/LocalActorContext.js.map +1 -1
- package/dist/esm/behavior/context/server/RemoteActorContext.d.ts +4 -0
- package/dist/esm/behavior/context/server/RemoteActorContext.d.ts.map +1 -1
- package/dist/esm/behavior/context/server/RemoteActorContext.js +1 -0
- package/dist/esm/behavior/context/server/RemoteActorContext.js.map +1 -1
- package/dist/esm/behavior/internal/BehaviorBacking.js +2 -2
- package/dist/esm/behavior/internal/BehaviorBacking.js.map +1 -1
- package/dist/esm/behavior/system/commissioning/CommissioningServer.d.ts.map +1 -1
- package/dist/esm/behavior/system/commissioning/CommissioningServer.js +4 -3
- package/dist/esm/behavior/system/commissioning/CommissioningServer.js.map +1 -1
- package/dist/esm/behaviors/operational-credentials/OperationalCredentialsServer.js +1 -1
- package/dist/esm/behaviors/operational-credentials/OperationalCredentialsServer.js.map +1 -1
- package/dist/esm/behaviors/operational-credentials/VendorIdVerification.d.ts +6 -1
- package/dist/esm/behaviors/operational-credentials/VendorIdVerification.d.ts.map +1 -1
- package/dist/esm/behaviors/operational-credentials/VendorIdVerification.js +1 -1
- package/dist/esm/behaviors/operational-credentials/VendorIdVerification.js.map +1 -1
- package/dist/esm/endpoint/Endpoint.d.ts +8 -0
- package/dist/esm/endpoint/Endpoint.d.ts.map +1 -1
- package/dist/esm/endpoint/Endpoint.js +11 -3
- package/dist/esm/endpoint/Endpoint.js.map +1 -1
- package/dist/esm/endpoint/properties/Behaviors.d.ts +1 -1
- package/dist/esm/endpoint/properties/Behaviors.d.ts.map +1 -1
- package/dist/esm/endpoint/properties/Behaviors.js +6 -3
- package/dist/esm/endpoint/properties/Behaviors.js.map +1 -1
- package/dist/esm/endpoint/properties/EndpointInitializer.d.ts +0 -4
- package/dist/esm/endpoint/properties/EndpointInitializer.d.ts.map +1 -1
- package/dist/esm/endpoint/properties/EndpointInitializer.js +0 -6
- package/dist/esm/endpoint/properties/EndpointInitializer.js.map +1 -1
- package/dist/esm/node/Node.d.ts.map +1 -1
- package/dist/esm/node/Node.js +2 -1
- package/dist/esm/node/Node.js.map +1 -1
- package/dist/esm/node/client/ClientCommandMethod.d.ts +11 -0
- package/dist/esm/node/client/ClientCommandMethod.d.ts.map +1 -0
- package/dist/esm/node/client/ClientCommandMethod.js +49 -0
- package/dist/esm/node/client/ClientCommandMethod.js.map +6 -0
- package/dist/esm/node/client/ClientEndpointInitializer.d.ts +0 -2
- package/dist/esm/node/client/ClientEndpointInitializer.d.ts.map +1 -1
- package/dist/esm/node/client/ClientEndpointInitializer.js +3 -34
- package/dist/esm/node/client/ClientEndpointInitializer.js.map +1 -1
- package/dist/esm/node/client/ClientStructure.d.ts.map +1 -1
- package/dist/esm/node/client/ClientStructure.js +164 -32
- package/dist/esm/node/client/ClientStructure.js.map +2 -2
- package/dist/esm/node/client/ClientStructureEvents.d.ts +22 -0
- package/dist/esm/node/client/ClientStructureEvents.d.ts.map +1 -0
- package/dist/esm/node/client/ClientStructureEvents.js +72 -0
- package/dist/esm/node/client/ClientStructureEvents.js.map +6 -0
- package/dist/esm/node/client/PeerBehavior.d.ts +14 -1
- package/dist/esm/node/client/PeerBehavior.d.ts.map +1 -1
- package/dist/esm/node/client/PeerBehavior.js +119 -74
- package/dist/esm/node/client/PeerBehavior.js.map +1 -1
- package/dist/esm/node/client/Peers.d.ts +17 -0
- package/dist/esm/node/client/Peers.d.ts.map +1 -1
- package/dist/esm/node/client/Peers.js +106 -43
- package/dist/esm/node/client/Peers.js.map +1 -1
- package/dist/esm/node/server/ServerSubscription.d.ts +1 -1
- package/dist/esm/node/server/ServerSubscription.d.ts.map +1 -1
- package/dist/esm/node/server/ServerSubscription.js +2 -3
- package/dist/esm/node/server/ServerSubscription.js.map +1 -1
- package/package.json +7 -7
- package/src/behavior/cluster/ClientBehavior.ts +2 -16
- package/src/behavior/cluster/ClusterBehavior.ts +9 -4
- package/src/behavior/cluster/ClusterBehaviorCache.ts +16 -9
- package/src/behavior/cluster/{ClusterBehaviorUtil.ts → ClusterBehaviorType.ts} +160 -64
- package/src/behavior/cluster/ClusterEvents.ts +1 -1
- package/src/behavior/cluster/ClusterState.ts +1 -1
- package/src/behavior/cluster/ValidatedElements.ts +1 -1
- package/src/behavior/cluster/cluster-behavior-utils.ts +48 -0
- package/src/behavior/cluster/index.ts +2 -1
- package/src/behavior/context/server/LocalActorContext.ts +8 -4
- package/src/behavior/context/server/RemoteActorContext.ts +6 -0
- package/src/behavior/internal/BehaviorBacking.ts +2 -2
- package/src/behavior/system/commissioning/CommissioningServer.ts +4 -3
- package/src/behaviors/operational-credentials/OperationalCredentialsServer.ts +1 -1
- package/src/behaviors/operational-credentials/VendorIdVerification.ts +3 -2
- package/src/endpoint/Endpoint.ts +23 -3
- package/src/endpoint/properties/Behaviors.ts +12 -6
- package/src/endpoint/properties/EndpointInitializer.ts +0 -7
- package/src/node/Node.ts +2 -1
- package/src/node/client/ClientCommandMethod.ts +63 -0
- package/src/node/client/ClientEndpointInitializer.ts +6 -39
- package/src/node/client/ClientStructure.ts +133 -27
- package/src/node/client/ClientStructureEvents.ts +97 -0
- package/src/node/client/PeerBehavior.ts +185 -104
- package/src/node/client/Peers.ts +131 -51
- package/src/node/server/ServerSubscription.ts +3 -3
- package/dist/cjs/behavior/cluster/ClusterBehaviorUtil.d.ts.map +0 -1
- package/dist/cjs/behavior/cluster/ClusterBehaviorUtil.js.map +0 -6
- package/dist/esm/behavior/cluster/ClusterBehaviorUtil.d.ts.map +0 -1
- package/dist/esm/behavior/cluster/ClusterBehaviorUtil.js.map +0 -6
package/src/node/client/Peers.ts
CHANGED
|
@@ -4,22 +4,43 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
+
import { type ClusterBehavior } from "#behavior/cluster/ClusterBehavior.js";
|
|
8
|
+
import { LocalActorContext } from "#behavior/context/server/LocalActorContext.js";
|
|
9
|
+
import { CommissioningClient } from "#behavior/system/commissioning/CommissioningClient.js";
|
|
7
10
|
import { RemoteDescriptor } from "#behavior/system/commissioning/RemoteDescriptor.js";
|
|
8
11
|
import { CommissioningDiscovery } from "#behavior/system/controller/discovery/CommissioningDiscovery.js";
|
|
9
12
|
import { ContinuousDiscovery } from "#behavior/system/controller/discovery/ContinuousDiscovery.js";
|
|
10
13
|
import { Discovery } from "#behavior/system/controller/discovery/Discovery.js";
|
|
11
14
|
import { InstanceDiscovery } from "#behavior/system/controller/discovery/InstanceDiscovery.js";
|
|
15
|
+
import { BasicInformationClient } from "#behaviors/basic-information";
|
|
16
|
+
import { OperationalCredentialsClient } from "#behaviors/operational-credentials";
|
|
17
|
+
import { Endpoint } from "#endpoint/Endpoint.js";
|
|
12
18
|
import { EndpointContainer } from "#endpoint/properties/EndpointContainer.js";
|
|
13
|
-
import {
|
|
19
|
+
import { EndpointType } from "#endpoint/type/EndpointType.js";
|
|
20
|
+
import {
|
|
21
|
+
CancelablePromise,
|
|
22
|
+
Diagnostic,
|
|
23
|
+
Duration,
|
|
24
|
+
ImplementationError,
|
|
25
|
+
Logger,
|
|
26
|
+
Minutes,
|
|
27
|
+
Mutex,
|
|
28
|
+
Observable,
|
|
29
|
+
Seconds,
|
|
30
|
+
Time,
|
|
31
|
+
Timestamp,
|
|
32
|
+
} from "#general";
|
|
14
33
|
import { ClientGroup } from "#node/ClientGroup.js";
|
|
15
34
|
import { InteractionServer } from "#node/server/InteractionServer.js";
|
|
16
35
|
import { ClientSubscriptionHandler, ClientSubscriptions, FabricManager, PeerAddress } from "#protocol";
|
|
17
36
|
import { ServerNodeStore } from "#storage/server/ServerNodeStore.js";
|
|
37
|
+
import { FabricIndex } from "@matter/types";
|
|
18
38
|
import { ClientNode } from "../ClientNode.js";
|
|
19
39
|
import type { ServerNode } from "../ServerNode.js";
|
|
20
40
|
import { ClientNodeFactory } from "./ClientNodeFactory.js";
|
|
41
|
+
import { ClientStructureEvents } from "./ClientStructureEvents.js";
|
|
21
42
|
|
|
22
|
-
const logger = Logger.get("
|
|
43
|
+
const logger = Logger.get("Peers");
|
|
23
44
|
|
|
24
45
|
const DEFAULT_TTL = Minutes(15);
|
|
25
46
|
const EXPIRATION_INTERVAL = Minutes.one;
|
|
@@ -31,8 +52,8 @@ const EXPIRATION_INTERVAL = Minutes.one;
|
|
|
31
52
|
*/
|
|
32
53
|
export class Peers extends EndpointContainer<ClientNode> {
|
|
33
54
|
#expirationInterval?: CancelablePromise;
|
|
34
|
-
#expirationWorker?: Promise<void>;
|
|
35
55
|
#subscriptionHandler?: ClientSubscriptionHandler;
|
|
56
|
+
#mutex = new Mutex(this);
|
|
36
57
|
#closed = false;
|
|
37
58
|
|
|
38
59
|
constructor(owner: ServerNode) {
|
|
@@ -46,6 +67,8 @@ export class Peers extends EndpointContainer<ClientNode> {
|
|
|
46
67
|
|
|
47
68
|
this.added.on(this.#handlePeerAdded.bind(this));
|
|
48
69
|
this.deleted.on(this.#manageExpiration.bind(this));
|
|
70
|
+
|
|
71
|
+
this.clusterInstalled(BasicInformationClient).on(this.#instrumentBasicInformation.bind(this));
|
|
49
72
|
}
|
|
50
73
|
|
|
51
74
|
/**
|
|
@@ -90,6 +113,24 @@ export class Peers extends EndpointContainer<ClientNode> {
|
|
|
90
113
|
return new CommissioningDiscovery(this.owner, options);
|
|
91
114
|
}
|
|
92
115
|
|
|
116
|
+
/**
|
|
117
|
+
* Obtain an {@link Observable} that emits when a specific type of endpoint initializes for a peer.
|
|
118
|
+
*
|
|
119
|
+
* This is useful for initializing general behavior on any peer endpoint of the specified type.
|
|
120
|
+
*/
|
|
121
|
+
endpointInstalled<T extends EndpointType>(type: T): Observable<[endpoint: Endpoint<T>]> {
|
|
122
|
+
return this.owner.env.get(ClientStructureEvents).endpointInstalled(type);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Obtain a {@link Observable} that emits when a specific type of cluster initializes for a peer.
|
|
127
|
+
*
|
|
128
|
+
* This is useful for initializing general behavior on any peer endpoint with the specified cluster.
|
|
129
|
+
*/
|
|
130
|
+
clusterInstalled<T extends ClusterBehavior.Type>(type: T) {
|
|
131
|
+
return this.owner.env.get(ClientStructureEvents).clusterInstalled(type);
|
|
132
|
+
}
|
|
133
|
+
|
|
93
134
|
override get(id: number | string | PeerAddress) {
|
|
94
135
|
if (typeof id !== "string" && typeof id !== "number") {
|
|
95
136
|
const address = PeerAddress(id);
|
|
@@ -117,6 +158,7 @@ export class Peers extends EndpointContainer<ClientNode> {
|
|
|
117
158
|
|
|
118
159
|
/**
|
|
119
160
|
* Get or create a client node for the given peer address.
|
|
161
|
+
*
|
|
120
162
|
* This is mainly used to communicate to other known nodes on the fabric without having a formal commissioning
|
|
121
163
|
* process.
|
|
122
164
|
*/
|
|
@@ -147,7 +189,7 @@ export class Peers extends EndpointContainer<ClientNode> {
|
|
|
147
189
|
this.#closed = true;
|
|
148
190
|
await this.#subscriptionHandler?.close();
|
|
149
191
|
this.#cancelExpiration();
|
|
150
|
-
await this.#
|
|
192
|
+
await this.#mutex;
|
|
151
193
|
await super.close();
|
|
152
194
|
}
|
|
153
195
|
|
|
@@ -191,10 +233,6 @@ export class Peers extends EndpointContainer<ClientNode> {
|
|
|
191
233
|
return;
|
|
192
234
|
}
|
|
193
235
|
|
|
194
|
-
if (this.#expirationWorker) {
|
|
195
|
-
return;
|
|
196
|
-
}
|
|
197
|
-
|
|
198
236
|
if (this.#expirationInterval) {
|
|
199
237
|
if (!this.size) {
|
|
200
238
|
this.#cancelExpiration();
|
|
@@ -212,65 +250,107 @@ export class Peers extends EndpointContainer<ClientNode> {
|
|
|
212
250
|
}
|
|
213
251
|
|
|
214
252
|
#onExpirationIntervalElapsed() {
|
|
215
|
-
this.#
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
253
|
+
this.#mutex.run(() =>
|
|
254
|
+
this.#cullExpiredNodesAndAddresses()
|
|
255
|
+
.catch(error => {
|
|
256
|
+
logger.error("Error culling expired nodes", error);
|
|
257
|
+
})
|
|
258
|
+
.finally(() => {
|
|
259
|
+
this.#manageExpiration();
|
|
260
|
+
}),
|
|
261
|
+
);
|
|
224
262
|
}
|
|
225
263
|
|
|
226
264
|
async #cullExpiredNodesAndAddresses() {
|
|
227
|
-
|
|
265
|
+
try {
|
|
266
|
+
const now = Time.nowMs;
|
|
228
267
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
268
|
+
for (const node of this) {
|
|
269
|
+
const state = node.state.commissioning;
|
|
270
|
+
const { addresses } = state;
|
|
271
|
+
const isCommissioned = state.peerAddress !== undefined;
|
|
233
272
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
273
|
+
// Shortcut for conditions we know no change is possible
|
|
274
|
+
if (addresses === undefined || (isCommissioned && addresses.length === 1)) {
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
238
277
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
278
|
+
// Remove expired addresses
|
|
279
|
+
let newAddresses = addresses.filter(addr => {
|
|
280
|
+
const exp = expirationOf(addr);
|
|
281
|
+
if (exp === undefined) {
|
|
282
|
+
return true;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
return exp > now;
|
|
286
|
+
});
|
|
287
|
+
|
|
288
|
+
// Cull commissionable nodes that have expired
|
|
289
|
+
if (!isCommissioned) {
|
|
290
|
+
if (!newAddresses?.length || (expirationOf(state) ?? 0) <= now) {
|
|
291
|
+
await node.delete();
|
|
292
|
+
continue;
|
|
293
|
+
}
|
|
244
294
|
}
|
|
245
295
|
|
|
246
|
-
|
|
247
|
-
|
|
296
|
+
// If the node is commissioned, do not remove the last address. Instead keep the "least expired" addresses
|
|
297
|
+
if (isCommissioned && addresses.length && !newAddresses.length) {
|
|
298
|
+
if (addresses.length === 1) {
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
301
|
+
const freshestExp = addresses.reduce((freshestExp, addr) => {
|
|
302
|
+
return Math.max(freshestExp, expirationOf(addr)!);
|
|
303
|
+
}, 0);
|
|
248
304
|
|
|
249
|
-
|
|
250
|
-
if (!isCommissioned) {
|
|
251
|
-
if (!newAddresses?.length || (expirationOf(state) ?? 0) <= now) {
|
|
252
|
-
await node.delete();
|
|
253
|
-
continue;
|
|
305
|
+
newAddresses = addresses.filter(addr => expirationOf(addr) === freshestExp);
|
|
254
306
|
}
|
|
255
|
-
}
|
|
256
307
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
return;
|
|
308
|
+
// Apply new addresses if changed
|
|
309
|
+
if (addresses.length !== newAddresses.length) {
|
|
310
|
+
await node.set({ commissioning: { addresses } });
|
|
261
311
|
}
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
312
|
+
}
|
|
313
|
+
} finally {
|
|
314
|
+
this.#expirationInterval = undefined;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
#instrumentBasicInformation(node: Endpoint, type: typeof BasicInformationClient) {
|
|
319
|
+
if (!(node instanceof ClientNode)) {
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
265
322
|
|
|
266
|
-
|
|
323
|
+
node.eventsOf(type).leave?.on(({ fabricIndex }) => this.#onLeave(node, fabricIndex));
|
|
324
|
+
node.eventsOf(type).shutDown?.on(() => this.#onShutdown(node));
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
#onLeave(node: ClientNode, fabricIndex: FabricIndex) {
|
|
328
|
+
this.#mutex.run(async () => {
|
|
329
|
+
const { fabrics: peerFabrics } = node.maybeStateOf(OperationalCredentialsClient);
|
|
330
|
+
const peerFabric = peerFabrics.find(fabric => fabric.fabricIndex === fabricIndex);
|
|
331
|
+
if (!peerFabric) {
|
|
332
|
+
return;
|
|
267
333
|
}
|
|
268
334
|
|
|
269
|
-
|
|
270
|
-
if (
|
|
271
|
-
|
|
335
|
+
const peerAddress = node.maybeStateOf(CommissioningClient).peerAddress;
|
|
336
|
+
if (!peerAddress) {
|
|
337
|
+
return;
|
|
272
338
|
}
|
|
273
|
-
|
|
339
|
+
|
|
340
|
+
const localFabrics = this.owner.env.get(FabricManager);
|
|
341
|
+
const localFabric = localFabrics.forDescriptor(peerFabric);
|
|
342
|
+
if (!localFabric || localFabric.fabricIndex !== peerAddress.fabricIndex) {
|
|
343
|
+
return;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
logger.notice("Peer", Diagnostic.strong(node.id), "has left the fabric");
|
|
347
|
+
node.lifecycle.decommissioned.emit(LocalActorContext.ReadOnly);
|
|
348
|
+
await node.delete();
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
#onShutdown(_node: ClientNode) {
|
|
353
|
+
// TODO
|
|
274
354
|
}
|
|
275
355
|
}
|
|
276
356
|
|
|
@@ -379,7 +379,6 @@ export class ServerSubscription extends Subscription {
|
|
|
379
379
|
|
|
380
380
|
/**
|
|
381
381
|
* Determine all attributes that have changed since the last update and send them out to the subscriber.
|
|
382
|
-
* Important: This method MUST NOT be called directly. Use triggerSendUpdate() instead!
|
|
383
382
|
*/
|
|
384
383
|
async #sendUpdate(onlyWithData = false) {
|
|
385
384
|
// Get all outstanding updates, make sure the order is correct per endpoint and cluster
|
|
@@ -604,7 +603,7 @@ export class ServerSubscription extends Subscription {
|
|
|
604
603
|
/**
|
|
605
604
|
* Closes the subscription and flushes all outstanding data updates if requested.
|
|
606
605
|
*/
|
|
607
|
-
override async close(
|
|
606
|
+
override async close(flush = false, cancelledByPeer = false) {
|
|
608
607
|
if (this.isClosed) {
|
|
609
608
|
return;
|
|
610
609
|
}
|
|
@@ -612,7 +611,8 @@ export class ServerSubscription extends Subscription {
|
|
|
612
611
|
this.isCanceledByPeer = true;
|
|
613
612
|
}
|
|
614
613
|
await this.destroy();
|
|
615
|
-
|
|
614
|
+
|
|
615
|
+
if (flush) {
|
|
616
616
|
await this.#flush();
|
|
617
617
|
}
|
|
618
618
|
if (this.#currentUpdatePromise) {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ClusterBehaviorUtil.d.ts","sourceRoot":"","sources":["../../../../src/behavior/cluster/ClusterBehaviorUtil.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAUH,MAAM,EAGT,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAe5D;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,4BACW,GAAG,EAAE,KAAK,GAAG,EAClF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,WAAW,EAClD,OAAO,EAAE,CAAC,EACV,IAAI,EAAE,QAAQ,CAAC,IAAI,EACnB,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,EACvB,IAAI,CAAC,EAAE,MAAM,kGAuEhB;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS;IAAE,OAAO,EAAE,MAAM,CAAC,SAAS,WAAW,CAAA;CAAE,GAC7F,CAAC,GACD,WAAW,CAAC,OAAO,CAAC;AAE1B;;GAEG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS;IAAE,kBAAkB,EAAE,MAAM,CAAC,SAAS,EAAE,CAAA;CAAE,GAC1G,CAAC,GACD,EAAE,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/behavior/cluster/ClusterBehaviorUtil.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ClusterBehaviorUtil.d.ts","sourceRoot":"","sources":["../../../../src/behavior/cluster/ClusterBehaviorUtil.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAUH,MAAM,EAGT,MAAM,QAAQ,CAAC;AAEhB,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAe5D;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,4BACW,GAAG,EAAE,KAAK,GAAG,EAClF;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,WAAW,EAClD,OAAO,EAAE,CAAC,EACV,IAAI,EAAE,QAAQ,CAAC,IAAI,EACnB,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,EACvB,IAAI,CAAC,EAAE,MAAM,kGAuEhB;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS;IAAE,OAAO,EAAE,MAAM,CAAC,SAAS,WAAW,CAAA;CAAE,GAC7F,CAAC,GACD,WAAW,CAAC,OAAO,CAAC;AAE1B;;GAEG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS;IAAE,kBAAkB,EAAE,MAAM,CAAC,SAAS,EAAE,CAAA;CAAE,GAC1G,CAAC,GACD,EAAE,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/behavior/cluster/ClusterBehaviorUtil.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|