@matter/node 0.16.0-alpha.0-20251001-7eb06da95 → 0.16.0-alpha.0-20251004-92135c7df
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/internal/BehaviorBacking.d.ts +4 -0
- package/dist/cjs/behavior/internal/BehaviorBacking.d.ts.map +1 -1
- package/dist/cjs/behavior/internal/BehaviorBacking.js +6 -0
- package/dist/cjs/behavior/internal/BehaviorBacking.js.map +1 -1
- package/dist/cjs/behavior/internal/Reactors.d.ts +1 -1
- package/dist/cjs/behavior/system/commissioning/CommissioningClient.d.ts.map +1 -1
- package/dist/cjs/behavior/system/commissioning/CommissioningClient.js +15 -0
- package/dist/cjs/behavior/system/commissioning/CommissioningClient.js.map +1 -1
- package/dist/cjs/behavior/system/controller/ControllerBehavior.d.ts.map +1 -1
- package/dist/cjs/behavior/system/controller/ControllerBehavior.js +2 -16
- package/dist/cjs/behavior/system/controller/ControllerBehavior.js.map +1 -1
- package/dist/cjs/behavior/system/network/ServerNetworkRuntime.d.ts +4 -4
- package/dist/cjs/behavior/system/network/ServerNetworkRuntime.d.ts.map +1 -1
- package/dist/cjs/behavior/system/network/ServerNetworkRuntime.js +5 -6
- package/dist/cjs/behavior/system/network/ServerNetworkRuntime.js.map +1 -1
- package/dist/cjs/behavior/system/subscriptions/SubscriptionsServer.js.map +1 -1
- package/dist/cjs/endpoint/Endpoint.d.ts +13 -2
- package/dist/cjs/endpoint/Endpoint.d.ts.map +1 -1
- package/dist/cjs/endpoint/Endpoint.js +26 -16
- package/dist/cjs/endpoint/Endpoint.js.map +1 -1
- package/dist/cjs/endpoint/properties/Behaviors.d.ts +5 -1
- package/dist/cjs/endpoint/properties/Behaviors.d.ts.map +1 -1
- package/dist/cjs/endpoint/properties/Behaviors.js +7 -0
- package/dist/cjs/endpoint/properties/Behaviors.js.map +1 -1
- package/dist/cjs/node/ClientNode.d.ts +2 -0
- package/dist/cjs/node/ClientNode.d.ts.map +1 -1
- package/dist/cjs/node/ClientNode.js +14 -0
- package/dist/cjs/node/ClientNode.js.map +1 -1
- package/dist/cjs/node/Node.d.ts.map +1 -1
- package/dist/cjs/node/Node.js +3 -0
- package/dist/cjs/node/Node.js.map +1 -1
- package/dist/cjs/node/NodeLifecycle.d.ts +3 -0
- package/dist/cjs/node/NodeLifecycle.d.ts.map +1 -1
- package/dist/cjs/node/NodeLifecycle.js +10 -0
- package/dist/cjs/node/NodeLifecycle.js.map +1 -1
- package/dist/cjs/node/ServerNode.js +1 -1
- package/dist/cjs/node/ServerNode.js.map +1 -1
- package/dist/cjs/node/client/NodePeerAddressStore.js.map +1 -1
- package/dist/cjs/node/server/InteractionServer.d.ts +2 -2
- package/dist/cjs/node/server/InteractionServer.d.ts.map +1 -1
- package/dist/cjs/storage/client/ClientEndpointStore.d.ts +4 -0
- package/dist/cjs/storage/client/ClientEndpointStore.d.ts.map +1 -1
- package/dist/cjs/storage/client/ClientEndpointStore.js +6 -0
- package/dist/cjs/storage/client/ClientEndpointStore.js.map +1 -1
- package/dist/esm/behavior/internal/BehaviorBacking.d.ts +4 -0
- package/dist/esm/behavior/internal/BehaviorBacking.d.ts.map +1 -1
- package/dist/esm/behavior/internal/BehaviorBacking.js +6 -0
- package/dist/esm/behavior/internal/BehaviorBacking.js.map +1 -1
- package/dist/esm/behavior/internal/Reactors.d.ts +1 -1
- package/dist/esm/behavior/system/commissioning/CommissioningClient.d.ts.map +1 -1
- package/dist/esm/behavior/system/commissioning/CommissioningClient.js +19 -1
- package/dist/esm/behavior/system/commissioning/CommissioningClient.js.map +1 -1
- package/dist/esm/behavior/system/controller/ControllerBehavior.d.ts.map +1 -1
- package/dist/esm/behavior/system/controller/ControllerBehavior.js +3 -17
- package/dist/esm/behavior/system/controller/ControllerBehavior.js.map +1 -1
- package/dist/esm/behavior/system/network/ServerNetworkRuntime.d.ts +4 -4
- package/dist/esm/behavior/system/network/ServerNetworkRuntime.d.ts.map +1 -1
- package/dist/esm/behavior/system/network/ServerNetworkRuntime.js +6 -8
- package/dist/esm/behavior/system/network/ServerNetworkRuntime.js.map +1 -1
- package/dist/esm/behavior/system/subscriptions/SubscriptionsServer.js.map +1 -1
- package/dist/esm/endpoint/Endpoint.d.ts +13 -2
- package/dist/esm/endpoint/Endpoint.d.ts.map +1 -1
- package/dist/esm/endpoint/Endpoint.js +26 -16
- package/dist/esm/endpoint/Endpoint.js.map +1 -1
- package/dist/esm/endpoint/properties/Behaviors.d.ts +5 -1
- package/dist/esm/endpoint/properties/Behaviors.d.ts.map +1 -1
- package/dist/esm/endpoint/properties/Behaviors.js +7 -0
- package/dist/esm/endpoint/properties/Behaviors.js.map +1 -1
- package/dist/esm/node/ClientNode.d.ts +2 -0
- package/dist/esm/node/ClientNode.d.ts.map +1 -1
- package/dist/esm/node/ClientNode.js +16 -2
- package/dist/esm/node/ClientNode.js.map +1 -1
- package/dist/esm/node/Node.d.ts.map +1 -1
- package/dist/esm/node/Node.js +3 -0
- package/dist/esm/node/Node.js.map +1 -1
- package/dist/esm/node/NodeLifecycle.d.ts +3 -0
- package/dist/esm/node/NodeLifecycle.d.ts.map +1 -1
- package/dist/esm/node/NodeLifecycle.js +10 -0
- package/dist/esm/node/NodeLifecycle.js.map +1 -1
- package/dist/esm/node/ServerNode.js +1 -1
- package/dist/esm/node/ServerNode.js.map +1 -1
- package/dist/esm/node/client/NodePeerAddressStore.js.map +1 -1
- package/dist/esm/node/server/InteractionServer.d.ts +2 -2
- package/dist/esm/node/server/InteractionServer.d.ts.map +1 -1
- package/dist/esm/storage/client/ClientEndpointStore.d.ts +4 -0
- package/dist/esm/storage/client/ClientEndpointStore.d.ts.map +1 -1
- package/dist/esm/storage/client/ClientEndpointStore.js +6 -0
- package/dist/esm/storage/client/ClientEndpointStore.js.map +1 -1
- package/package.json +7 -7
- package/src/behavior/internal/BehaviorBacking.ts +7 -0
- package/src/behavior/system/commissioning/CommissioningClient.ts +22 -0
- package/src/behavior/system/controller/ControllerBehavior.ts +3 -21
- package/src/behavior/system/network/ServerNetworkRuntime.ts +10 -12
- package/src/behavior/system/subscriptions/SubscriptionsServer.ts +2 -2
- package/src/endpoint/Endpoint.ts +37 -14
- package/src/endpoint/properties/Behaviors.ts +9 -0
- package/src/node/ClientNode.ts +28 -2
- package/src/node/Node.ts +3 -0
- package/src/node/NodeLifecycle.ts +13 -0
- package/src/node/ServerNode.ts +2 -2
- package/src/node/client/NodePeerAddressStore.ts +2 -2
- package/src/node/server/InteractionServer.ts +2 -2
- package/src/storage/client/ClientEndpointStore.ts +7 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Node.d.ts","sourceRoot":"","sources":["../../../src/node/Node.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EACH,YAAY,EACZ,UAAU,EAEV,WAAW,EACX,QAAQ,EAGR,cAAc,EACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKnD;;;;GAIG;AACH,8BAAsB,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAE,SAAQ,QAAQ,CAAC,CAAC,CAAC;;
|
|
1
|
+
{"version":3,"file":"Node.d.ts","sourceRoot":"","sources":["../../../src/node/Node.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/node/Node.js
CHANGED
|
@@ -117,6 +117,7 @@ class Node extends Endpoint {
|
|
|
117
117
|
if (this.lifecycle.isOnline) {
|
|
118
118
|
return;
|
|
119
119
|
}
|
|
120
|
+
this.lifecycle.targetState = "online";
|
|
120
121
|
await this.lifecycle.mutex.produce(this.startWithMutex.bind(this));
|
|
121
122
|
}
|
|
122
123
|
async startWithMutex() {
|
|
@@ -156,6 +157,7 @@ class Node extends Endpoint {
|
|
|
156
157
|
* Once the node is offline you may use {@link start} to bring the node online again.
|
|
157
158
|
*/
|
|
158
159
|
async cancel() {
|
|
160
|
+
this.lifecycle.targetState = "offline";
|
|
159
161
|
await this.lifecycle.mutex.produce(this.cancelWithMutex.bind(this));
|
|
160
162
|
}
|
|
161
163
|
/**
|
|
@@ -179,6 +181,7 @@ class Node extends Endpoint {
|
|
|
179
181
|
this.#runtime = void 0;
|
|
180
182
|
}
|
|
181
183
|
async close() {
|
|
184
|
+
this.lifecycle.targetState = "offline";
|
|
182
185
|
await this.lifecycle.mutex.produce(this.closeWithMutex.bind(this));
|
|
183
186
|
}
|
|
184
187
|
async closeWithMutex() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/node/Node.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB;AAChC,SAAS,sBAAsB;AAC/B,SAAS,qBAAqB;AAC9B,SAAS,gBAAgB;AACzB,SAAS,iBAAiB;AAE1B,SAAS,uBAAuB;AAChC;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAGP,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB;AAEhC,MAAM,SAAS,OAAO,IAAI,MAAM;AAOzB,MAAe,aAA0E,SAAY;AAAA,EACxG;AAAA,EACA;AAAA,EAEA,YAAY,QAA+B;AACvC,UAAM,oBAAoB,OAAO,eAAe,OAAO,OAAO,OAAO,YAAY;AAEjF,QAAI,OAAO,OAAO,QAAW;AACzB,aAAO,KAAK,OAAO,kBAAkB,KAAK,UAAU,qBAAqB,CAAC;AAAA,IAC9E;AAEA,UAAM,MAAM;AAGZ,SAAK,eAAe,IAAI,YAAY,OAAO,IAAI,iBAAiB;AAEhE,SAAK,aAAa,IAAI,cAAc,IAAI,aAAa,CAAC;AACtD,SAAK,aAAa,IAAI,iBAAiB,IAAI,gBAAgB,IAAI,CAAC;AAEhE,QAAI,KAAK,UAAU,WAAW;AAC1B,UAAI,KAAK,WAAW,GAAG;AACnB,cAAM,IAAI,oBAAoB,gCAAgC;AAAA,MAClE;AAAA,IACJ,OAAO;AACH,WAAK,SAAS;AAAA,IAClB;AAEA,SAAK,UAAU,OAAO,GAAG,MAAM;AAC3B,WAAK,aAAa,WAAW;AAAA,IACjC,CAAC;AAED,SAAK,UAAU,QAAQ,GAAG,MAAM;AAC5B,WAAK,aAAa,YAAY;AAAA,IAClC,CAAC;AAED,SAAK,UAAU,aAAa,GAAG,MAAM;AACjC,WAAK,aAAa,eAAe;AAAA,IACrC,CAAC;AAAA,EACL;AAAA,EAEA,IAAa,MAAM;AACf,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAAW;AACX,WAAO,KAAK,IAAI,IAAI,eAAe,EAAE;AAAA,EACzC;AAAA,EAEA,IAAa,YAA2B;AACpC,WAAO,MAAM;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,QAAQ;AACV,QAAI,KAAK,UAAU,UAAU;AACzB;AAAA,IACJ;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["Node"]
|
|
6
6
|
}
|
|
@@ -59,5 +59,8 @@ export declare class NodeLifecycle extends EndpointLifecycle {
|
|
|
59
59
|
* that requires the mutex without causing deadlock.
|
|
60
60
|
*/
|
|
61
61
|
get mutex(): Mutex;
|
|
62
|
+
set targetState(state: "online" | "offline");
|
|
63
|
+
get shouldBeOnline(): boolean;
|
|
64
|
+
get shouldBeOffline(): boolean;
|
|
62
65
|
}
|
|
63
66
|
//# sourceMappingURL=NodeLifecycle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeLifecycle.d.ts","sourceRoot":"","sources":["../../../src/node/NodeLifecycle.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE9D;;GAEG;AACH,qBAAa,aAAc,SAAQ,iBAAiB;;
|
|
1
|
+
{"version":3,"file":"NodeLifecycle.d.ts","sourceRoot":"","sources":["../../../src/node/NodeLifecycle.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE9D;;GAEG;AACH,qBAAa,aAAc,SAAQ,iBAAiB;;gBAYpC,QAAQ,EAAE,QAAQ;IAsB9B;;OAEG;IACH,IAAI,QAAQ,YAEX;IAED;;OAEG;IACH,IAAI,QAAQ,qBAEX;IAED;;OAEG;IACH,IAAI,MAAM,oDAET;IAED;;OAEG;IACH,IAAI,WAAW,gDAEd;IAED;;OAEG;IACH,IAAI,YAAY,oDAEf;IAED;;OAEG;IACH,IAAI,OAAO,+CAEV;IAED;;OAEG;IACH,IAAI,cAAc,YAEjB;IAED;;OAEG;IACH,IAAI,YAAY,+CAEf;IAED;;OAEG;IACH,IAAI,cAAc,+CAEjB;IAED;;;;;;;;OAQG;IACH,IAAI,KAAK,UAER;IAED,IAAI,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,EAE1C;IAED,IAAI,cAAc,YAEjB;IAED,IAAI,eAAe,YAElB;CACJ"}
|
|
@@ -15,6 +15,7 @@ class NodeLifecycle extends EndpointLifecycle {
|
|
|
15
15
|
#onlineAt;
|
|
16
16
|
#isCommissioned = false;
|
|
17
17
|
#mutex;
|
|
18
|
+
#targetState = "offline";
|
|
18
19
|
constructor(endpoint) {
|
|
19
20
|
super(endpoint);
|
|
20
21
|
this.#mutex = new Mutex(endpoint);
|
|
@@ -100,6 +101,15 @@ class NodeLifecycle extends EndpointLifecycle {
|
|
|
100
101
|
get mutex() {
|
|
101
102
|
return this.#mutex;
|
|
102
103
|
}
|
|
104
|
+
set targetState(state) {
|
|
105
|
+
this.#targetState = state;
|
|
106
|
+
}
|
|
107
|
+
get shouldBeOnline() {
|
|
108
|
+
return this.#targetState === "online";
|
|
109
|
+
}
|
|
110
|
+
get shouldBeOffline() {
|
|
111
|
+
return this.#targetState === "offline";
|
|
112
|
+
}
|
|
103
113
|
}
|
|
104
114
|
export {
|
|
105
115
|
NodeLifecycle
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/node/NodeLifecycle.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,yBAAyB;AAClC,SAAS,iBAAiB,OAAO,kBAAkB;AAK5C,MAAM,sBAAsB,kBAAkB;AAAA,EACjD,UAAU,gBAA0C;AAAA,EACpD,gBAAgB,gBAA0C;AAAA,EAC1D,WAAW,WAAqC;AAAA,EAChD,gBAAgB,WAAqC;AAAA,EACrD,kBAAkB,WAAqC;AAAA,EACvD,eAAe,WAAsC;AAAA,EACrD;AAAA,EACA,kBAAkB;AAAA,EAClB;AAAA,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,yBAAyB;AAClC,SAAS,iBAAiB,OAAO,kBAAkB;AAK5C,MAAM,sBAAsB,kBAAkB;AAAA,EACjD,UAAU,gBAA0C;AAAA,EACpD,gBAAgB,gBAA0C;AAAA,EAC1D,WAAW,WAAqC;AAAA,EAChD,gBAAgB,WAAqC;AAAA,EACrD,kBAAkB,WAAqC;AAAA,EACvD,eAAe,WAAsC;AAAA,EACrD;AAAA,EACA,kBAAkB;AAAA,EAClB;AAAA,EACA,eAAqC;AAAA,EAErC,YAAY,UAAoB;AAC5B,UAAM,QAAQ;AAEd,SAAK,SAAS,IAAI,MAAM,QAAQ;AAEhC,SAAK,QAAQ,GAAG,MAAM;AAClB,WAAK,YAAY,oBAAI,KAAK;AAAA,IAC9B,CAAC;AACD,SAAK,SAAS,GAAG,MAAM;AACnB,WAAK,YAAY;AAAA,IACrB,CAAC;AACD,SAAK,cAAc,GAAG,MAAM;AACxB,WAAK,kBAAkB;AAAA,IAC3B,CAAC;AACD,SAAK,gBAAgB,GAAG,MAAM;AAC1B,WAAK,kBAAkB;AAAA,IAC3B,CAAC;AACD,SAAK,aAAa,GAAG,oBAAkB;AACnC,WAAK,kBAAkB;AAAA,IAC3B,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAAW;AACX,WAAO,KAAK,cAAc;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAAW;AACX,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAAS;AACT,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,cAAc;AACd,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAAU;AACV,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,iBAAiB;AACjB,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,iBAAiB;AACjB,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,IAAI,QAAQ;AACR,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,YAAY,OAA6B;AACzC,SAAK,eAAe;AAAA,EACxB;AAAA,EAEA,IAAI,iBAAiB;AACjB,WAAO,KAAK,iBAAiB;AAAA,EACjC;AAAA,EAEA,IAAI,kBAAkB;AAClB,WAAO,KAAK,iBAAiB;AAAA,EACjC;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -65,7 +65,7 @@ class ServerNode extends Node {
|
|
|
65
65
|
await this.resetWithMutex();
|
|
66
66
|
await this.resetStorage();
|
|
67
67
|
this.construction.start();
|
|
68
|
-
if (isOnline) {
|
|
68
|
+
if (isOnline && this.lifecycle.shouldBeOnline) {
|
|
69
69
|
await this.startWithMutex();
|
|
70
70
|
} else {
|
|
71
71
|
await this.construction.ready;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/node/ServerNode.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,2BAA2B;AACpC,SAAS,0BAA0B;AACnC,SAAS,sBAAsB;AAC/B,SAAS,qBAAqB;AAC9B,SAAS,4BAA4B;AACrC,SAAS,gCAAgC;AACzC,SAAS,wBAAwB;AACjC,SAAS,6BAA6B;AAGtC,SAAS,UAAU,cAAc,kBAAkB,SAAmB,mBAAmB;AACzF,SAAS,eAA6B,mBAAmB,mBAAmB,sBAAsB;AAClG,SAAS,uBAAuB;AAChC,SAAS,gBAAgB,wBAAwB;AACjD,SAAS,YAAY;AACrB,SAAS,aAAa;AACtB,SAAS,yBAAyB;AAKlC,MAAM,0BAA0B,YAAY;AAAA,EACxC,YAAY,SAAiB,OAAY;AACrC,UAAM,OAAO;AACb,SAAK,QAAQ,QAAQ,KAAK;AAAA,EAC9B;AACJ;AAOO,MAAM,mBAAgF,KAAQ;AAAA,EACjG;AAAA,EACA;AAAA,EAqBA,YAAY,YAAwC,SAA2B;AAC3E,UAAM,KAAK,cAAc,WAAW,cAAmB,YAAY,WAAY,CAAC,CAAqB,CAAC;AAEtG,SAAK,IAAI,IAAI,MAAM,IAAI;AACvB,SAAK,IAAI,IAAI,YAAY,IAAI;AAE7B,qBAAiB,IAAI,IAAI;AAEzB,SAAK,aAAa,MAAM;AAAA,EAC5B;AAAA,EAuBA,aAAa,OAGC,YAAwC,SAA2B;AAC7E,WAAO,MAAM,SAAS,MAAM,YAAY,OAAO;AAAA,EACnD;AAAA,EAEU,gBAAsC;AAC5C,WAAO,IAAI,qBAAqB,IAAI;AAAA,EACxC;AAAA,EAEA,OAAgB,aAAa,QAAQ,IAAI;AACrC,UAAM,MAAM,aAAa,QAAQ,EAAE;AACnC,UAAM,kBAAkB,MAAM,IAAI;AAAA,EACtC;AAAA,EAEA,MAAe,yBAAyB;AACpC,UAAM,WAAW,KAAK,IAAI,IAAI,cAAc;AAC5C,UAAM,SAAS,MAAM;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAe,QAAQ;AACnB,UAAM,KAAK,UAAU,MAAM,QAAQ,KAAK,eAAe,KAAK,IAAI,CAAC;AAAA,EACrE;AAAA,EAEA,MAAgB,iBAAiB;AAC7B,QAAI;AACA,YAAM,KAAK;AAGX,YAAM,WAAW,KAAK,UAAU;AAChC,UAAI,UAAU;AACV,cAAM,KAAK,gBAAgB;AAAA,MAC/B;AAGA,WAAK,aAAa,+BAA+B;AAGjD,YAAM,KAAK,eAAe;AAG1B,YAAM,KAAK,aAAa;AAGxB,WAAK,aAAa,MAAM;AAGxB,UAAI,UAAU;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["ServerNode"]
|
|
6
6
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/node/client/NodePeerAddressStore.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,wBAAwB;AAEjC,SAAS,uBAAuB;AAEhC,SAA0B,aAAa,gBAAgB,wBAAwB;AAC/E,SAAsB,cAAc;AACpC,SAAS,QAAQ,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,wBAAwB;AAEjC,SAAS,uBAAuB;AAEhC,SAA0B,aAAa,gBAAgB,wBAAwB;AAC/E,SAAsB,cAAc;AACpC,SAAS,QAAQ,qBAAuC;AAKjD,MAAM,6BAA6B,iBAAiB;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,qBAAqB,IAAI,eAA2B;AAAA,EAEpD,YAAY,OAAmB;AAC3B,UAAM;AACN,SAAK,SAAS;AAId,UAAM,kBAAkB,MAAM,IAAI,IAAI,eAAe;AACrD,oBAAgB,oBAAoB,KAAK,iBAAiB,KAAK,IAAI;AACnE,oBAAgB,qBAAqB,KAAK,WAAW,KAAK,IAAI;AAAA,EAClE;AAAA,EAEA,iBAAiB,MAAkB,aAA0B,QAAiB;AAC1E,WAAO,WAAW,QAAW;AACzB,eAAS,OAAO,wBAAwB,KAAK,OAAO,IAAI,IAAI,MAAM,CAAC;AACnE,UAAI,KAAK,mBAAmB,IAAI,EAAE,aAAa,OAAO,CAAC,GAAG;AACtD,iBAAS;AAAA,MACb;AAAA,IACJ;AAEA,UAAM,UAAU,YAAY,EAAE,aAAa,OAAO,CAAC;AAEnD,SAAK,mBAAmB,IAAI,SAAS,IAAI;AAEzC,WAAO;AAAA,EACX;AAAA,EAEA,YAA+B;AAC3B,SAAK,qBAAqB,IAAI,eAAe;AAC7C,WAAO,CAAC,GAAG,KAAK,OAAO,KAAK,EACvB,IAAI,UAAQ;AACT,YAAM,gBAAgB,KAAK,MAAM;AACjC,UAAI,CAAC,cAAc,aAAa;AAC5B;AAAA,MACJ;AAEA,WAAK,mBAAmB,IAAI,cAAc,aAAa,IAAI;AAE3D,YAAM,OAAO,cAAc,WAAW,KAAK,CAAAA,UAAQA,MAAK,SAAS,KAAK;AAEtE,aAAO;AAAA,QACH,SAAS,cAAc;AAAA,QACvB,oBAAoB,QAAS,cAAc,IAAI;AAAA,QAC/C,eAAe,iBAAiB,aAAa,aAAa;AAAA,MAC9D;AAAA,IACJ,CAAC,EACA,OAAO,UAAQ,SAAS,MAAS;AAAA,EAC1C;AAAA,EAEA,MAAM,WAAW,MAAuB;AACpC,UAAM,OAAO,KAAK,OAAO,MAAM,IAAI,KAAK,OAAO;AAC/C,QAAI,CAAC,MAAM;AACP;AAAA,IACJ;AAEA,UAAM,KAAK,IAAI,WAAS;AACpB,YAAM,QAAQ,MAAM,cAAc;AAClC,uBAAiB,WAAW,KAAK,eAAe,KAAK;AACrD,UAAI,KAAK,oBAAoB;AAEzB,cAAM,YAAY,CAAC,KAAK,kBAAkB;AAAA,MAC9C;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,WAAW,SAAsB;AAC7B,SAAK,mBAAmB,OAAO,OAAO;AAAA,EAC1C;AAAA,EAEA,kBAA6B;AAAA,EAAC;AAClC;",
|
|
5
5
|
"names": ["addr"]
|
|
6
6
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { AccessControlServer } from "#behaviors/access-control";
|
|
7
|
-
import { Duration, Observable,
|
|
7
|
+
import { Duration, Observable, ServerAddressUdp } from "#general";
|
|
8
8
|
import { DataReport, DataReportPayloadIterator, ExchangeManager, InteractionRecipient, InteractionServerMessenger, InvokeRequest, Message, MessageExchange, NodeSession, PeerAddress, ProtocolHandler, ReadRequest, SessionManager, SubscribeRequest, TimedRequest, WriteRequest, WriteResponse } from "#protocol";
|
|
9
9
|
import { TlvAttributePath, TlvEventPath, TypeFromSchema } from "#types";
|
|
10
10
|
import { ServerNode } from "../ServerNode.js";
|
|
@@ -19,7 +19,7 @@ export interface PeerSubscription {
|
|
|
19
19
|
isFabricFiltered: boolean;
|
|
20
20
|
maxInterval: Duration;
|
|
21
21
|
sendInterval: Duration;
|
|
22
|
-
operationalAddress?:
|
|
22
|
+
operationalAddress?: ServerAddressUdp;
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
25
|
* Interfaces {@link InteractionServer} with other components.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InteractionServer.d.ts","sourceRoot":"","sources":["../../../../src/node/server/InteractionServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAGH,QAAQ,EAMR,UAAU,EAEV,
|
|
1
|
+
{"version":3,"file":"InteractionServer.d.ts","sourceRoot":"","sources":["../../../../src/node/server/InteractionServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAGH,QAAQ,EAMR,UAAU,EAEV,gBAAgB,EACnB,MAAM,UAAU,CAAC;AAElB,OAAO,EACH,UAAU,EACV,yBAAyB,EACzB,eAAe,EACf,oBAAoB,EACpB,0BAA0B,EAC1B,aAAa,EACb,OAAO,EACP,eAAe,EAEf,WAAW,EACX,WAAW,EACX,eAAe,EACf,WAAW,EACX,cAAc,EAEd,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,aAAa,EAChB,MAAM,WAAW,CAAC;AACnB,OAAO,EAOH,gBAAgB,EAEhB,YAAY,EAIZ,cAAc,EACjB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAuD,MAAM,yBAAyB,CAAC;AAIlH,MAAM,WAAW,gBAAgB;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,EAAE,QAAQ,CAAC;IAC3B,kBAAkB,EAAE,QAAQ,CAAC;IAC7B,iBAAiB,CAAC,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,EAAE,CAAC;IAC9D,aAAa,CAAC,EAAE,cAAc,CAAC,OAAO,YAAY,CAAC,EAAE,CAAC;IACtD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,QAAQ,CAAC;IACtB,YAAY,EAAE,QAAQ,CAAC;IACvB,kBAAkB,CAAC,EAAE,gBAAgB,CAAC;CACzC;AA+BD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;CAC7C;AAED;;GAEG;AACH,qBAAa,iBAAkB,YAAW,eAAe,EAAE,oBAAoB;;IAC3E,QAAQ,CAAC,EAAE,KAA2B;IACtC,QAAQ,CAAC,qBAAqB,QAAQ;gBAc1B,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc;IAoBhD,CAAC,MAAM,CAAC,YAAY,CAAC;IAI3B,gBAAgB;IAIhB,SAAS,KAAK,SAAS,YAEtB;IAED,IAAI,iBAAiB,WAEpB;IAED,IAAI,gCAAgC,iDAEnC;IAEK,aAAa,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO;IAuB/D,IAAI,SAAS,wBASZ;IAED,IAAI,aAAa,IAAI,eAAe,GAAG,SAAS,CAE/C;IAED,IAAI,aAAa,CAAC,aAAa,EAAE,eAAe,EAE/C;IA+BK,iBAAiB,CACnB,QAAQ,EAAE,eAAe,EACzB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC;QAAE,UAAU,EAAE,UAAU,CAAC;QAAC,OAAO,CAAC,EAAE,yBAAyB,CAAA;KAAE,CAAC;IAgDrE,kBAAkB,CACpB,QAAQ,EAAE,eAAe,EACzB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC,aAAa,CAAC;IAsFnB,sBAAsB,CACxB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,gBAAgB,EACzB,SAAS,EAAE,0BAA0B,EACrC,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC,IAAI,CAAC;IA6MV,2BAA2B,CAC7B,EACI,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACX,YAAY,GACf,EAAE,gBAAgB,EACnB,OAAO,EAAE,WAAW;IAmDlB,mBAAmB,CACrB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,0BAA0B,EACrC,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC,IAAI,CAAC;IAwJhB,kBAAkB,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE,EAAE,YAAY;IAc3F,KAAK;CAGd"}
|
|
@@ -11,6 +11,10 @@ export declare class ClientEndpointStore extends EndpointStore {
|
|
|
11
11
|
#private;
|
|
12
12
|
constructor(owner: ClientNodeStore, number: EndpointNumber, storage: StorageContext);
|
|
13
13
|
get number(): EndpointNumber;
|
|
14
|
+
/**
|
|
15
|
+
* Shortcut to persisted peer address so we can use in logging prior to full initialization.
|
|
16
|
+
*/
|
|
17
|
+
get peerAddress(): unknown;
|
|
14
18
|
participantFor(transaction: Transaction): import("#general").Participant;
|
|
15
19
|
/**
|
|
16
20
|
* Create a {@link Datasource.ExternallyMutableStore} for a behavior.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientEndpointStore.d.ts","sourceRoot":"","sources":["../../../../src/storage/client/ClientEndpointStore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI5D,qBAAa,mBAAoB,SAAQ,aAAa;;gBAItC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc;IAMnF,IAAI,MAAM,mBAET;IAED,cAAc,CAAC,WAAW,EAAE,WAAW;IASvC;;OAEG;IACH,sBAAsB,CAAC,UAAU,EAAE,MAAM;IAKzC;;OAEG;IACH,2BAA2B,CAAC,UAAU,EAAE,MAAM;CAIjD"}
|
|
1
|
+
{"version":3,"file":"ClientEndpointStore.d.ts","sourceRoot":"","sources":["../../../../src/storage/client/ClientEndpointStore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI5D,qBAAa,mBAAoB,SAAQ,aAAa;;gBAItC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc;IAMnF,IAAI,MAAM,mBAET;IAED;;OAEG;IACH,IAAI,WAAW,YAEd;IAED,cAAc,CAAC,WAAW,EAAE,WAAW;IASvC;;OAEG;IACH,sBAAsB,CAAC,UAAU,EAAE,MAAM;IAKzC;;OAEG;IACH,2BAA2B,CAAC,UAAU,EAAE,MAAM;CAIjD"}
|
|
@@ -18,6 +18,12 @@ class ClientEndpointStore extends EndpointStore {
|
|
|
18
18
|
get number() {
|
|
19
19
|
return this.#number;
|
|
20
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Shortcut to persisted peer address so we can use in logging prior to full initialization.
|
|
23
|
+
*/
|
|
24
|
+
get peerAddress() {
|
|
25
|
+
return this.initialValues.get("commissioning")?.["peerAddress"];
|
|
26
|
+
}
|
|
21
27
|
participantFor(transaction) {
|
|
22
28
|
let participant = transaction.getParticipant(this.#owner);
|
|
23
29
|
if (participant === void 0) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/storage/client/ClientEndpointStore.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB;AAGhC,SAAS,uBAAuB;AAChC,SAAS,8BAA8B;AAEhC,MAAM,4BAA4B,cAAc;AAAA,EACnD;AAAA,EACA;AAAA,EAEA,YAAY,OAAwB,QAAwB,SAAyB;AACjF,UAAM,OAAO;AACb,SAAK,SAAS;AACd,SAAK,UAAU;AAAA,EACnB;AAAA,EAEA,IAAI,SAAS;AACT,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,eAAe,aAA0B;AACrC,QAAI,cAAc,YAAY,eAAe,KAAK,MAAM;AACxD,QAAI,gBAAgB,QAAW;AAC3B,oBAAc,IAAI,uBAAuB,KAAK,MAAM;AACpD,kBAAY,gBAAgB,WAAW;AAAA,IAC3C;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,uBAAuB,YAAoB;AACvC,UAAM,gBAAgB,KAAK,qBAAqB,UAAU;AAC1D,WAAO,gBAAgB,MAAM,YAAY,aAAa;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA,EAKA,4BAA4B,YAAoB;AAC5C,UAAM,gBAAgB,KAAK,qBAAqB,UAAU;AAC1D,WAAO,gBAAgB,MAAM,YAAY,aAAa;AAAA,EAC1D;AACJ;",
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB;AAGhC,SAAS,uBAAuB;AAChC,SAAS,8BAA8B;AAEhC,MAAM,4BAA4B,cAAc;AAAA,EACnD;AAAA,EACA;AAAA,EAEA,YAAY,OAAwB,QAAwB,SAAyB;AACjF,UAAM,OAAO;AACb,SAAK,SAAS;AACd,SAAK,UAAU;AAAA,EACnB;AAAA,EAEA,IAAI,SAAS;AACT,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,cAAc;AACd,WAAO,KAAK,cAAc,IAAI,eAAe,IAAI,aAAa;AAAA,EAClE;AAAA,EAEA,eAAe,aAA0B;AACrC,QAAI,cAAc,YAAY,eAAe,KAAK,MAAM;AACxD,QAAI,gBAAgB,QAAW;AAC3B,oBAAc,IAAI,uBAAuB,KAAK,MAAM;AACpD,kBAAY,gBAAgB,WAAW;AAAA,IAC3C;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,uBAAuB,YAAoB;AACvC,UAAM,gBAAgB,KAAK,qBAAqB,UAAU;AAC1D,WAAO,gBAAgB,MAAM,YAAY,aAAa;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA,EAKA,4BAA4B,YAAoB;AAC5C,UAAM,gBAAgB,KAAK,qBAAqB,UAAU;AAC1D,WAAO,gBAAgB,MAAM,YAAY,aAAa;AAAA,EAC1D;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/node",
|
|
3
|
-
"version": "0.16.0-alpha.0-
|
|
3
|
+
"version": "0.16.0-alpha.0-20251004-92135c7df",
|
|
4
4
|
"description": "API for building Matter nodes",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -42,14 +42,14 @@
|
|
|
42
42
|
"#*": "./src/*"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@matter/general": "0.16.0-alpha.0-
|
|
46
|
-
"@matter/model": "0.16.0-alpha.0-
|
|
47
|
-
"@matter/types": "0.16.0-alpha.0-
|
|
48
|
-
"@matter/protocol": "0.16.0-alpha.0-
|
|
45
|
+
"@matter/general": "0.16.0-alpha.0-20251004-92135c7df",
|
|
46
|
+
"@matter/model": "0.16.0-alpha.0-20251004-92135c7df",
|
|
47
|
+
"@matter/types": "0.16.0-alpha.0-20251004-92135c7df",
|
|
48
|
+
"@matter/protocol": "0.16.0-alpha.0-20251004-92135c7df"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@matter/tools": "0.16.0-alpha.0-
|
|
52
|
-
"@matter/testing": "0.16.0-alpha.0-
|
|
51
|
+
"@matter/tools": "0.16.0-alpha.0-20251004-92135c7df",
|
|
52
|
+
"@matter/testing": "0.16.0-alpha.0-20251004-92135c7df"
|
|
53
53
|
},
|
|
54
54
|
"files": [
|
|
55
55
|
"dist/**/*",
|
|
@@ -189,6 +189,13 @@ export abstract class BehaviorBacking {
|
|
|
189
189
|
return this.#datasource;
|
|
190
190
|
}
|
|
191
191
|
|
|
192
|
+
/**
|
|
193
|
+
* Access the datasource if present.
|
|
194
|
+
*/
|
|
195
|
+
get maybeDatasource() {
|
|
196
|
+
return this.#datasource;
|
|
197
|
+
}
|
|
198
|
+
|
|
192
199
|
protected get datasourceOptions(): Datasource.Options {
|
|
193
200
|
return {
|
|
194
201
|
crypto: this.#endpoint.env.get(Crypto),
|
|
@@ -8,8 +8,10 @@ import { Behavior } from "#behavior/Behavior.js";
|
|
|
8
8
|
import { Events as BaseEvents } from "#behavior/Events.js";
|
|
9
9
|
import { OperationalCredentialsClient } from "#behaviors/operational-credentials";
|
|
10
10
|
import {
|
|
11
|
+
Diagnostic,
|
|
11
12
|
Duration,
|
|
12
13
|
ImplementationError,
|
|
14
|
+
Logger,
|
|
13
15
|
NotImplementedError,
|
|
14
16
|
Observable,
|
|
15
17
|
ServerAddress,
|
|
@@ -45,6 +47,8 @@ import { ControllerBehavior } from "../controller/ControllerBehavior.js";
|
|
|
45
47
|
import { NetworkClient } from "../network/NetworkClient.js";
|
|
46
48
|
import { RemoteDescriptor } from "./RemoteDescriptor.js";
|
|
47
49
|
|
|
50
|
+
const logger = Logger.get("CommissioningClient");
|
|
51
|
+
|
|
48
52
|
/**
|
|
49
53
|
* Client functionality related to commissioning.
|
|
50
54
|
*
|
|
@@ -155,6 +159,13 @@ export class CommissioningClient extends Behavior {
|
|
|
155
159
|
network.state.startupSubscription = opts.startupSubscription;
|
|
156
160
|
network.state.caseAuthenticatedTags = opts.caseAuthenticatedTags;
|
|
157
161
|
|
|
162
|
+
logger.notice(
|
|
163
|
+
"Commissioned",
|
|
164
|
+
Diagnostic.strong(this.endpoint.id),
|
|
165
|
+
"as",
|
|
166
|
+
Diagnostic.strong(this.endpoint.identity),
|
|
167
|
+
);
|
|
168
|
+
|
|
158
169
|
node.lifecycle.commissioned.emit(this.context);
|
|
159
170
|
|
|
160
171
|
await node.start();
|
|
@@ -177,11 +188,22 @@ export class CommissioningClient extends Behavior {
|
|
|
177
188
|
throw new ImplementationError("Cannot decommission node that is not commissioned");
|
|
178
189
|
}
|
|
179
190
|
|
|
191
|
+
const formerAddress = PeerAddress(peerAddress).toString();
|
|
192
|
+
|
|
180
193
|
const opcreds = this.agent.get(OperationalCredentialsClient);
|
|
181
194
|
|
|
182
195
|
await opcreds.removeFabric({ fabricIndex: opcreds.state.currentFabricIndex });
|
|
183
196
|
|
|
184
197
|
this.state.peerAddress = undefined;
|
|
198
|
+
|
|
199
|
+
await this.context.transaction.commit();
|
|
200
|
+
|
|
201
|
+
logger.info(
|
|
202
|
+
"Decommissioned",
|
|
203
|
+
Diagnostic.strong(this.endpoint.id),
|
|
204
|
+
"formerly",
|
|
205
|
+
Diagnostic.strong(formerAddress),
|
|
206
|
+
);
|
|
185
207
|
}
|
|
186
208
|
|
|
187
209
|
/**
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
import { Behavior } from "#behavior/Behavior.js";
|
|
8
8
|
import { BasicInformationBehavior } from "#behaviors/basic-information";
|
|
9
|
-
import {
|
|
9
|
+
import { ConnectionlessTransportSet, ImplementationError } from "#general";
|
|
10
10
|
import { Node } from "#node/Node.js";
|
|
11
11
|
import { InteractionServer } from "#node/server/InteractionServer.js";
|
|
12
12
|
import {
|
|
@@ -110,15 +110,9 @@ export class ControllerBehavior extends Behavior {
|
|
|
110
110
|
|
|
111
111
|
#nodeOnline() {
|
|
112
112
|
// Configure network connections
|
|
113
|
-
const
|
|
114
|
-
const netTransports = this.env.get(TransportInterfaceSet);
|
|
115
|
-
for (const transport of netTransports) {
|
|
116
|
-
if (isNetworkInterface(transport)) {
|
|
117
|
-
netInterfaces.add(transport);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
113
|
+
const netTransports = this.env.get(ConnectionlessTransportSet);
|
|
120
114
|
if (this.state.ble) {
|
|
121
|
-
|
|
115
|
+
netTransports.add(this.env.get(Ble).centralInterface);
|
|
122
116
|
}
|
|
123
117
|
|
|
124
118
|
// Install handler to receive data reports for subscriptions
|
|
@@ -147,18 +141,6 @@ export class ControllerBehavior extends Behavior {
|
|
|
147
141
|
|
|
148
142
|
async #nodeGoingOffline() {
|
|
149
143
|
await this.env.close(ClientSubscriptions);
|
|
150
|
-
|
|
151
|
-
const netInterfaces = this.env.get(NetInterfaceSet);
|
|
152
|
-
const netTransports = this.env.get(TransportInterfaceSet);
|
|
153
|
-
|
|
154
|
-
// Remove "transports" from the net interface set so they are not closed twice
|
|
155
|
-
for (const intf of netInterfaces) {
|
|
156
|
-
if (netTransports.has(intf)) {
|
|
157
|
-
netInterfaces.delete(intf);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
await this.env.close(NetInterfaceSet);
|
|
162
144
|
}
|
|
163
145
|
|
|
164
146
|
#enableScanningForFabric(fabric: Fabric) {
|
|
@@ -5,17 +5,16 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import {
|
|
8
|
+
ConnectionlessTransport,
|
|
9
|
+
ConnectionlessTransportSet,
|
|
8
10
|
Crypto,
|
|
9
11
|
InterfaceType,
|
|
10
12
|
Logger,
|
|
11
|
-
NetInterfaceSet,
|
|
12
13
|
Network,
|
|
13
14
|
NetworkInterface,
|
|
14
15
|
NetworkInterfaceDetailed,
|
|
15
16
|
NoAddressAvailableError,
|
|
16
17
|
ObserverGroup,
|
|
17
|
-
TransportInterface,
|
|
18
|
-
TransportInterfaceSet,
|
|
19
18
|
UdpInterface,
|
|
20
19
|
} from "#general";
|
|
21
20
|
import type { ServerNode } from "#node/ServerNode.js";
|
|
@@ -60,7 +59,7 @@ function convertNetworkEnvironmentType(type: string | number) {
|
|
|
60
59
|
export class ServerNetworkRuntime extends NetworkRuntime {
|
|
61
60
|
#mdnsAdvertiser?: MdnsAdvertiser;
|
|
62
61
|
#bleAdvertiser?: BleAdvertiser;
|
|
63
|
-
#bleTransport?:
|
|
62
|
+
#bleTransport?: ConnectionlessTransport;
|
|
64
63
|
#ipv6UdpInterface?: UdpInterface;
|
|
65
64
|
#observers = new ObserverGroup(this);
|
|
66
65
|
#groupNetworking?: ServerGroupNetworking;
|
|
@@ -132,9 +131,9 @@ export class ServerNetworkRuntime extends NetworkRuntime {
|
|
|
132
131
|
}
|
|
133
132
|
|
|
134
133
|
/**
|
|
135
|
-
* Add transports to the {@link
|
|
134
|
+
* Add transports to the {@link ConnectionlessTransportSet}.
|
|
136
135
|
*/
|
|
137
|
-
protected async addTransports(interfaces:
|
|
136
|
+
protected async addTransports(interfaces: ConnectionlessTransportSet) {
|
|
138
137
|
const netconf = this.owner.state.network;
|
|
139
138
|
|
|
140
139
|
const port = this.owner.state.network.port;
|
|
@@ -237,9 +236,9 @@ export class ServerNetworkRuntime extends NetworkRuntime {
|
|
|
237
236
|
await device.deleteAdvertiser(advertiser);
|
|
238
237
|
}
|
|
239
238
|
|
|
240
|
-
async #deleteTransport(transport:
|
|
241
|
-
const
|
|
242
|
-
|
|
239
|
+
async #deleteTransport(transport: ConnectionlessTransport) {
|
|
240
|
+
const netInterfaces = this.owner.env.get(ConnectionlessTransportSet);
|
|
241
|
+
netInterfaces.delete(transport);
|
|
243
242
|
await transport.close();
|
|
244
243
|
}
|
|
245
244
|
|
|
@@ -252,9 +251,8 @@ export class ServerNetworkRuntime extends NetworkRuntime {
|
|
|
252
251
|
const { env } = owner;
|
|
253
252
|
|
|
254
253
|
// Configure network
|
|
255
|
-
const interfaces = env.get(
|
|
254
|
+
const interfaces = env.get(ConnectionlessTransportSet);
|
|
256
255
|
await this.addTransports(interfaces);
|
|
257
|
-
env.set(NetInterfaceSet, interfaces);
|
|
258
256
|
|
|
259
257
|
// Initialize MDNS
|
|
260
258
|
const mdns = await owner.env.load(MdnsService);
|
|
@@ -327,7 +325,7 @@ export class ServerNetworkRuntime extends NetworkRuntime {
|
|
|
327
325
|
|
|
328
326
|
await env.close(ExchangeManager);
|
|
329
327
|
await env.close(SecureChannelProtocol);
|
|
330
|
-
await env.close(
|
|
328
|
+
await env.close(ConnectionlessTransportSet);
|
|
331
329
|
await env.close(InteractionServer);
|
|
332
330
|
}
|
|
333
331
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { deepCopy, isIpNetworkChannel, Logger, MatterError, MaybePromise, Seconds,
|
|
7
|
+
import { deepCopy, isIpNetworkChannel, Logger, MatterError, MaybePromise, Seconds, ServerAddressUdp } from "#general";
|
|
8
8
|
import { DatatypeModel, FieldElement } from "#model";
|
|
9
9
|
import { InteractionServer, PeerSubscription } from "#node/server/InteractionServer.js";
|
|
10
10
|
import { ServerSubscription } from "#node/server/ServerSubscription.js";
|
|
@@ -151,7 +151,7 @@ export class SubscriptionsBehavior extends Behavior {
|
|
|
151
151
|
const { fabricIndex, nodeId } = peerAddress;
|
|
152
152
|
|
|
153
153
|
// TODO Remove when we store peer addresses also for operational nodes
|
|
154
|
-
let operationalAddress:
|
|
154
|
+
let operationalAddress: ServerAddressUdp | undefined;
|
|
155
155
|
try {
|
|
156
156
|
const channel = this.env.get(ChannelManager).getChannel(peerAddress, session).channel;
|
|
157
157
|
operationalAddress = isIpNetworkChannel(channel) ? channel.networkAddress : undefined;
|
package/src/endpoint/Endpoint.ts
CHANGED
|
@@ -24,6 +24,7 @@ import { DataModelPath } from "#model";
|
|
|
24
24
|
import type { Node } from "#node/Node.js";
|
|
25
25
|
import { IdentityService } from "#node/server/IdentityService.js";
|
|
26
26
|
import { ProtocolService } from "#node/server/ProtocolService.js";
|
|
27
|
+
import { Val } from "#protocol";
|
|
27
28
|
import { EndpointNumber } from "#types";
|
|
28
29
|
import { RootEndpoint } from "../endpoints/root.js";
|
|
29
30
|
import { Agent } from "./Agent.js";
|
|
@@ -170,14 +171,28 @@ export class Endpoint<T extends EndpointType = EndpointType.Empty> {
|
|
|
170
171
|
return this.#stateView;
|
|
171
172
|
}
|
|
172
173
|
|
|
174
|
+
/**
|
|
175
|
+
* Current state for a specific behavior ID.
|
|
176
|
+
*/
|
|
177
|
+
stateOf(type: string): Immutable<Val.Struct>;
|
|
178
|
+
|
|
173
179
|
/**
|
|
174
180
|
* Current state for a specific behavior.
|
|
175
181
|
*/
|
|
176
|
-
stateOf<T extends Behavior.Type>(type: T)
|
|
177
|
-
|
|
178
|
-
|
|
182
|
+
stateOf<T extends Behavior.Type>(type: T): Immutable<Behavior.StateOf<T>>;
|
|
183
|
+
|
|
184
|
+
stateOf(type: Behavior.Type | string) {
|
|
185
|
+
if (typeof type === "string") {
|
|
186
|
+
if (!(type in this.#stateView)) {
|
|
187
|
+
throw new ImplementationError(`Behavior ${type} is not supported by ${this}`);
|
|
188
|
+
}
|
|
189
|
+
} else {
|
|
190
|
+
if (!this.behaviors.has(type)) {
|
|
191
|
+
throw new ImplementationError(`Behavior ${type.id} is not supported by ${this}`);
|
|
192
|
+
}
|
|
193
|
+
type = type.id;
|
|
179
194
|
}
|
|
180
|
-
return (this.#stateView as Record<string, unknown>)[type
|
|
195
|
+
return (this.#stateView as Record<string, unknown>)[type];
|
|
181
196
|
}
|
|
182
197
|
|
|
183
198
|
/**
|
|
@@ -658,7 +673,7 @@ export class Endpoint<T extends EndpointType = EndpointType.Empty> {
|
|
|
658
673
|
}
|
|
659
674
|
|
|
660
675
|
/**
|
|
661
|
-
* Erase all persisted data and destroy the
|
|
676
|
+
* Erase all persisted data and destroy the endpoint.
|
|
662
677
|
*/
|
|
663
678
|
async delete() {
|
|
664
679
|
await this.erase();
|
|
@@ -719,20 +734,28 @@ export class Endpoint<T extends EndpointType = EndpointType.Empty> {
|
|
|
719
734
|
* Path identifying the endpoint in the Matter data model.
|
|
720
735
|
*/
|
|
721
736
|
get path(): DataModelPath {
|
|
722
|
-
|
|
737
|
+
if (this.#owner) {
|
|
738
|
+
return this.#owner.path.at(this.identity, this.#type.name);
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
return DataModelPath(this.identity, this.type?.name);
|
|
742
|
+
}
|
|
743
|
+
|
|
744
|
+
/**
|
|
745
|
+
* Diagnostic identity.
|
|
746
|
+
*
|
|
747
|
+
* This is an unqualified path segment.
|
|
748
|
+
*/
|
|
749
|
+
get identity() {
|
|
723
750
|
if (this.lifecycle?.hasId) {
|
|
724
|
-
|
|
725
|
-
} else if (this.lifecycle?.hasNumber) {
|
|
726
|
-
ident = this.number;
|
|
727
|
-
} else {
|
|
728
|
-
ident = "?";
|
|
751
|
+
return this.id;
|
|
729
752
|
}
|
|
730
753
|
|
|
731
|
-
if (this
|
|
732
|
-
return this
|
|
754
|
+
if (this.lifecycle?.hasNumber) {
|
|
755
|
+
return this.number;
|
|
733
756
|
}
|
|
734
757
|
|
|
735
|
-
return
|
|
758
|
+
return "?";
|
|
736
759
|
}
|
|
737
760
|
|
|
738
761
|
/**
|
|
@@ -19,6 +19,7 @@ import {
|
|
|
19
19
|
describeList,
|
|
20
20
|
Diagnostic,
|
|
21
21
|
EventEmitter,
|
|
22
|
+
Immutable,
|
|
22
23
|
ImplementationError,
|
|
23
24
|
Lifecycle,
|
|
24
25
|
Logger,
|
|
@@ -557,6 +558,14 @@ export class Behaviors {
|
|
|
557
558
|
return elements;
|
|
558
559
|
}
|
|
559
560
|
|
|
561
|
+
/**
|
|
562
|
+
* Access the state view of a behavior if loaded.
|
|
563
|
+
*/
|
|
564
|
+
maybeStateOf(behaviorId: string): Immutable<Val.Struct> | undefined {
|
|
565
|
+
const backing = this.#backings[behaviorId];
|
|
566
|
+
return backing?.maybeDatasource?.view;
|
|
567
|
+
}
|
|
568
|
+
|
|
560
569
|
[Symbol.iterator]() {
|
|
561
570
|
return Object.values(this.#supported)[Symbol.iterator]();
|
|
562
571
|
}
|
package/src/node/ClientNode.ts
CHANGED
|
@@ -11,8 +11,8 @@ import { NetworkClient } from "#behavior/system/network/NetworkClient.js";
|
|
|
11
11
|
import { NetworkRuntime } from "#behavior/system/network/NetworkRuntime.js";
|
|
12
12
|
import { Agent } from "#endpoint/Agent.js";
|
|
13
13
|
import { EndpointInitializer } from "#endpoint/properties/EndpointInitializer.js";
|
|
14
|
-
import { Identity, Lifecycle, MaybePromise } from "#general";
|
|
15
|
-
import { Interactable, OccurrenceManager } from "#protocol";
|
|
14
|
+
import { Diagnostic, Identity, Lifecycle, Logger, MaybePromise } from "#general";
|
|
15
|
+
import { Interactable, OccurrenceManager, PeerAddress } from "#protocol";
|
|
16
16
|
import { ClientNodeStore } from "#storage/client/ClientNodeStore.js";
|
|
17
17
|
import { RemoteWriter } from "#storage/client/RemoteWriter.js";
|
|
18
18
|
import { ServerNodeStore } from "#storage/server/ServerNodeStore.js";
|
|
@@ -22,6 +22,8 @@ import { ClientNodeInteraction } from "./client/ClientNodeInteraction.js";
|
|
|
22
22
|
import { Node } from "./Node.js";
|
|
23
23
|
import type { ServerNode } from "./ServerNode.js";
|
|
24
24
|
|
|
25
|
+
const logger = Logger.get("ClientNode");
|
|
26
|
+
|
|
25
27
|
/**
|
|
26
28
|
* A remote Matter {@link Node}.
|
|
27
29
|
*
|
|
@@ -188,6 +190,30 @@ export class ClientNode extends Node<ClientNode.RootEndpoint> {
|
|
|
188
190
|
|
|
189
191
|
return this.#interaction;
|
|
190
192
|
}
|
|
193
|
+
|
|
194
|
+
override get identity() {
|
|
195
|
+
// If commissioned, use the peer address for logging purposes
|
|
196
|
+
let address = this.behaviors.maybeStateOf("commissioning")?.peerAddress as PeerAddress | undefined;
|
|
197
|
+
|
|
198
|
+
// During early initialization commissioning state may not be loaded, so check directly in storage too
|
|
199
|
+
if (!address) {
|
|
200
|
+
address = this.env.get(ClientNodeStore).storeForEndpoint(this).peerAddress as PeerAddress | undefined;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
// Use the peer address as a log identifier if present
|
|
204
|
+
if (address) {
|
|
205
|
+
return PeerAddress(address).toString();
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
// Fall back to persistence ID
|
|
209
|
+
return super.identity;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
protected override statusUpdate(message: string): void {
|
|
213
|
+
// Log client node status updates as info rather than notice and change the log facility to make clear it's a
|
|
214
|
+
// client
|
|
215
|
+
logger.info(Diagnostic.strong(this.toString()), message);
|
|
216
|
+
}
|
|
191
217
|
}
|
|
192
218
|
|
|
193
219
|
export namespace ClientNode {
|