@matter/node 0.16.0-alpha.0-20250819-0a388db8b → 0.16.0-alpha.0-20250820-24939dd26
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/system/commissioning/CommissioningClient.d.ts.map +1 -1
- package/dist/cjs/behavior/system/commissioning/CommissioningClient.js +58 -58
- package/dist/cjs/behavior/system/commissioning/CommissioningClient.js.map +1 -1
- package/dist/cjs/behavior/system/network/ClientNetworkRuntime.d.ts +1 -0
- package/dist/cjs/behavior/system/network/ClientNetworkRuntime.d.ts.map +1 -1
- package/dist/cjs/behavior/system/network/ClientNetworkRuntime.js +40 -4
- package/dist/cjs/behavior/system/network/ClientNetworkRuntime.js.map +2 -2
- package/dist/cjs/behavior/system/network/NetworkBehavior.d.ts +5 -0
- package/dist/cjs/behavior/system/network/NetworkBehavior.d.ts.map +1 -1
- package/dist/cjs/behavior/system/network/NetworkBehavior.js +5 -0
- package/dist/cjs/behavior/system/network/NetworkBehavior.js.map +1 -1
- package/dist/cjs/behavior/system/network/NetworkClient.d.ts +7 -4
- package/dist/cjs/behavior/system/network/NetworkClient.d.ts.map +1 -1
- package/dist/cjs/behavior/system/network/NetworkClient.js +13 -7
- package/dist/cjs/behavior/system/network/NetworkClient.js.map +1 -1
- package/dist/cjs/behavior/system/network/NetworkRuntime.d.ts.map +1 -1
- package/dist/cjs/behavior/system/network/NetworkRuntime.js +0 -1
- package/dist/cjs/behavior/system/network/NetworkRuntime.js.map +1 -1
- package/dist/cjs/behavior/system/network/ServerNetworkRuntime.d.ts.map +1 -1
- package/dist/cjs/behavior/system/network/ServerNetworkRuntime.js +1 -0
- package/dist/cjs/behavior/system/network/ServerNetworkRuntime.js.map +1 -1
- package/dist/cjs/node/ClientNode.d.ts +12 -0
- package/dist/cjs/node/ClientNode.d.ts.map +1 -1
- package/dist/cjs/node/ClientNode.js +26 -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 +2 -0
- package/dist/cjs/node/Node.js.map +1 -1
- package/dist/cjs/node/client/NodePeerAddressStore.d.ts +4 -1
- package/dist/cjs/node/client/NodePeerAddressStore.d.ts.map +1 -1
- package/dist/esm/behavior/system/commissioning/CommissioningClient.d.ts.map +1 -1
- package/dist/esm/behavior/system/commissioning/CommissioningClient.js +58 -58
- package/dist/esm/behavior/system/commissioning/CommissioningClient.js.map +1 -1
- package/dist/esm/behavior/system/network/ClientNetworkRuntime.d.ts +1 -0
- package/dist/esm/behavior/system/network/ClientNetworkRuntime.d.ts.map +1 -1
- package/dist/esm/behavior/system/network/ClientNetworkRuntime.js +42 -6
- package/dist/esm/behavior/system/network/ClientNetworkRuntime.js.map +2 -2
- package/dist/esm/behavior/system/network/NetworkBehavior.d.ts +5 -0
- package/dist/esm/behavior/system/network/NetworkBehavior.d.ts.map +1 -1
- package/dist/esm/behavior/system/network/NetworkBehavior.js +5 -0
- package/dist/esm/behavior/system/network/NetworkBehavior.js.map +1 -1
- package/dist/esm/behavior/system/network/NetworkClient.d.ts +7 -4
- package/dist/esm/behavior/system/network/NetworkClient.d.ts.map +1 -1
- package/dist/esm/behavior/system/network/NetworkClient.js +13 -7
- package/dist/esm/behavior/system/network/NetworkClient.js.map +1 -1
- package/dist/esm/behavior/system/network/NetworkRuntime.d.ts.map +1 -1
- package/dist/esm/behavior/system/network/NetworkRuntime.js +0 -1
- package/dist/esm/behavior/system/network/NetworkRuntime.js.map +1 -1
- package/dist/esm/behavior/system/network/ServerNetworkRuntime.d.ts.map +1 -1
- package/dist/esm/behavior/system/network/ServerNetworkRuntime.js +1 -0
- package/dist/esm/behavior/system/network/ServerNetworkRuntime.js.map +1 -1
- package/dist/esm/node/ClientNode.d.ts +12 -0
- package/dist/esm/node/ClientNode.d.ts.map +1 -1
- package/dist/esm/node/ClientNode.js +26 -0
- 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 +2 -0
- package/dist/esm/node/Node.js.map +1 -1
- package/dist/esm/node/client/NodePeerAddressStore.d.ts +4 -1
- package/dist/esm/node/client/NodePeerAddressStore.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/behavior/system/commissioning/CommissioningClient.ts +61 -59
- package/src/behavior/system/network/ClientNetworkRuntime.ts +59 -6
- package/src/behavior/system/network/NetworkBehavior.ts +6 -1
- package/src/behavior/system/network/NetworkClient.ts +16 -9
- package/src/behavior/system/network/NetworkRuntime.ts +0 -1
- package/src/behavior/system/network/ServerNetworkRuntime.ts +2 -0
- package/src/node/ClientNode.ts +30 -0
- package/src/node/Node.ts +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientNode.d.ts","sourceRoot":"","sources":["../../../src/node/ClientNode.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAE5F,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,QAAQ,EAAa,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAIzC,OAAO,EAAU,WAAW,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;;;;;GAKG;AACH,qBAAa,UAAW,SAAQ,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;;gBAI7C,OAAO,EAAE,UAAU,CAAC,OAAO;IAevC;;;;OAIG;IACH,IAAI,MAAM,gBAET;IAEQ,UAAU;IAenB,IAAa,KAAK,IAAI,UAAU,GAAG,SAAS,CAE3C;IAED,IAAa,KAAK,CAAC,KAAK,EAAE,UAAU,EAEnC;IAED;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,mBAAmB,CAAC,oBAAoB;IAIlE;;OAEG;IACY,MAAM;IAUrB;;;;OAIG;IACY,KAAK;
|
|
1
|
+
{"version":3,"file":"ClientNode.d.ts","sourceRoot":"","sources":["../../../src/node/ClientNode.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAE5F,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,QAAQ,EAAa,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAIzC,OAAO,EAAU,WAAW,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;;;;;GAKG;AACH,qBAAa,UAAW,SAAQ,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;;gBAI7C,OAAO,EAAE,UAAU,CAAC,OAAO;IAevC;;;;OAIG;IACH,IAAI,MAAM,gBAET;IAEQ,UAAU;IAenB,IAAa,KAAK,IAAI,UAAU,GAAG,SAAS,CAE3C;IAED,IAAa,KAAK,CAAC,KAAK,EAAE,UAAU,EAEnC;IAED;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,mBAAmB,CAAC,oBAAoB;IAIlE;;OAEG;IACY,MAAM;IAUrB;;;;OAIG;IACY,KAAK;IAIpB;;;;OAIG;IACG,OAAO;IAWb;;;;OAIG;IACG,MAAM;cASI,cAAc;IAQ9B,SAAS,CAAC,aAAa,IAAI,cAAc;IAInC,sBAAsB;IAE5B,cAAuB,SAAS,iDAE/B;IAEQ,GAAG,CAAC,CAAC,EACV,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,GAC3E,YAAY,CAAC,CAAC,CAAC;IAET,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAiB5G,IAAI,WAAW,IAAI,YAAY,CAAC,aAAa,CAAC,CAM7C;CACJ;AAED,yBAAiB,UAAU,CAAC;IACxB,UAAiB,OAAQ,SAAQ,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;QACvD,MAAM,CAAC,EAAE,WAAW,CAAC;KACxB;IAEM,MAAM,YAAY;;;;;;;;;;;;;oEAAmE,CAAC;IAE7F,UAAiB,YAAa,SAAQ,QAAQ,CAAC,OAAO,YAAY,CAAC;KAAG;CACzE"}
|
|
@@ -76,6 +76,32 @@ class ClientNode extends Node {
|
|
|
76
76
|
async erase() {
|
|
77
77
|
await this.lifecycle.mutex.produce(this.eraseWithMutex.bind(this));
|
|
78
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Disable the node.
|
|
81
|
+
*
|
|
82
|
+
* This shuts down any active connections and prevents future connections until re-enabled.
|
|
83
|
+
*/
|
|
84
|
+
async disable() {
|
|
85
|
+
if (this.state.network.isDisabled) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
await this.lifecycle.mutex.produce(async () => {
|
|
89
|
+
await this.cancelWithMutex();
|
|
90
|
+
await this.setStateOf(NetworkClient, { isDisabled: true });
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Enable the node.
|
|
95
|
+
*
|
|
96
|
+
* If the node is disabled but reachable, this brings it online.
|
|
97
|
+
*/
|
|
98
|
+
async enable() {
|
|
99
|
+
if (!this.state.network.isDisabled) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
await this.setStateOf(NetworkClient, { isDisabled: false });
|
|
103
|
+
await this.start();
|
|
104
|
+
}
|
|
79
105
|
async eraseWithMutex() {
|
|
80
106
|
await this.cancelWithMutex();
|
|
81
107
|
await this.resetWithMutex();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/node/ClientNode.ts"],
|
|
4
|
-
"mappings": "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",
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["ClientNode"]
|
|
6
6
|
}
|
|
@@ -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;
|
|
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
|
@@ -50,6 +50,7 @@ var __callDispose = (stack, error, hasError) => {
|
|
|
50
50
|
*/
|
|
51
51
|
import { NodeActivity } from "#behavior/context/NodeActivity.js";
|
|
52
52
|
import { IndexBehavior } from "#behavior/system/index/IndexBehavior.js";
|
|
53
|
+
import { NetworkBehavior } from "#behavior/system/network/NetworkBehavior.js";
|
|
53
54
|
import { NetworkRuntime } from "#behavior/system/network/NetworkRuntime.js";
|
|
54
55
|
import { PartsBehavior } from "#behavior/system/parts/PartsBehavior.js";
|
|
55
56
|
import { Endpoint } from "#endpoint/Endpoint.js";
|
|
@@ -129,6 +130,7 @@ class Node extends Endpoint {
|
|
|
129
130
|
this.#runtime.construction.start();
|
|
130
131
|
this.#environment.set(NetworkRuntime, this.#runtime);
|
|
131
132
|
await this.#runtime.construction.ready;
|
|
133
|
+
await this.act("network startup", (agent) => agent.get(NetworkBehavior).startup());
|
|
132
134
|
} catch (e) {
|
|
133
135
|
this.env.runtime.delete(this);
|
|
134
136
|
throw e;
|
|
@@ -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,sBAAsB;AAC/B,SAAS,qBAAqB;AAC9B,SAAS,gBAAgB;AAEzB,SAAS,uBAAuB;AAChC;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAEP,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;AAEA,UAAM,KAAK,UAAU,MAAM,QAAQ,KAAK,eAAe,KAAK,IAAI,CAAC;AAAA,EACrE;AAAA,EAEA,MAAgB,iBAAiB;AAC7B,SAAK,IAAI,QAAQ,IAAI,IAAI;AAEzB,QAAI;AACA,YAAM,KAAK,aAAa;AAExB,UAAI,KAAK,UAAU;AACf;AAAA,MACJ;AAEA,WAAK,aAAa,cAAc;AAEhC,WAAK,WAAW,KAAK,cAAc;AACnC,WAAK,SAAS,aAAa,MAAM;AACjC,WAAK,aAAa,IAAI,gBAAgB,KAAK,QAAQ;AACnD,YAAM,KAAK,SAAS,aAAa;AAAA,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["Node"]
|
|
6
6
|
}
|
|
@@ -13,7 +13,10 @@ import { FabricIndex, NodeId } from "#types";
|
|
|
13
13
|
export declare class NodePeerAddressStore extends PeerAddressStore {
|
|
14
14
|
#private;
|
|
15
15
|
constructor(owner: ServerNode);
|
|
16
|
-
assignNewAddress(node: ClientNode, fabricIndex: FabricIndex, nodeId?: NodeId):
|
|
16
|
+
assignNewAddress(node: ClientNode, fabricIndex: FabricIndex, nodeId?: NodeId): {
|
|
17
|
+
fabricIndex: FabricIndex;
|
|
18
|
+
nodeId: NodeId;
|
|
19
|
+
};
|
|
17
20
|
loadPeers(): OperationalPeer[];
|
|
18
21
|
updatePeer(peer: OperationalPeer): Promise<void>;
|
|
19
22
|
deletePeer(address: PeerAddress): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodePeerAddressStore.d.ts","sourceRoot":"","sources":["../../../../src/node/client/NodePeerAddressStore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAkB,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAG7C;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,gBAAgB;;gBAS1C,KAAK,EAAE,UAAU;IAW7B,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"NodePeerAddressStore.d.ts","sourceRoot":"","sources":["../../../../src/node/client/NodePeerAddressStore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAkB,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAG7C;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,gBAAgB;;gBAS1C,KAAK,EAAE,UAAU;IAW7B,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,MAAM;;;;IAe5E,SAAS,IAAI,eAAe,EAAE;IAsBxB,UAAU,CAAC,IAAI,EAAE,eAAe;IAgBtC,UAAU,CAAC,OAAO,EAAE,WAAW;IAI/B,eAAe,IAAI,SAAS;CAC/B"}
|
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-20250820-24939dd26",
|
|
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-20250820-24939dd26",
|
|
46
|
+
"@matter/model": "0.16.0-alpha.0-20250820-24939dd26",
|
|
47
|
+
"@matter/types": "0.16.0-alpha.0-20250820-24939dd26",
|
|
48
|
+
"@matter/protocol": "0.16.0-alpha.0-20250820-24939dd26"
|
|
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-20250820-24939dd26",
|
|
52
|
+
"@matter/testing": "0.16.0-alpha.0-20250820-24939dd26"
|
|
53
53
|
},
|
|
54
54
|
"files": [
|
|
55
55
|
"dist/**/*",
|
|
@@ -217,65 +217,67 @@ export class CommissioningClient extends Behavior {
|
|
|
217
217
|
/**
|
|
218
218
|
* Define logical schema. This enables runtime validation, make fields persistent and makes subfields editable.
|
|
219
219
|
*/
|
|
220
|
-
static override readonly schema = new DatatypeModel(
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
220
|
+
static override readonly schema = new DatatypeModel(
|
|
221
|
+
{
|
|
222
|
+
name: "CommissioningState",
|
|
223
|
+
type: "struct",
|
|
224
|
+
},
|
|
225
|
+
|
|
226
|
+
FieldElement({
|
|
227
|
+
name: "peerAddress",
|
|
228
|
+
type: "struct",
|
|
229
|
+
quality: "N",
|
|
230
|
+
children: [
|
|
231
|
+
FieldElement({ name: "fabricIndex", type: "fabric-id" }),
|
|
232
|
+
FieldElement({ name: "nodeId", type: "node-id" }),
|
|
233
|
+
],
|
|
234
|
+
}),
|
|
235
|
+
|
|
236
|
+
FieldElement({
|
|
237
|
+
name: "addresses",
|
|
238
|
+
type: "list",
|
|
239
|
+
quality: "N",
|
|
240
|
+
children: [
|
|
241
|
+
FieldElement({
|
|
242
|
+
name: "entry",
|
|
243
|
+
type: "struct",
|
|
244
|
+
children: [
|
|
245
|
+
FieldElement({ name: "type", type: "string" }),
|
|
246
|
+
FieldElement({ name: "ip", type: "string" }),
|
|
247
|
+
FieldElement({ name: "port", type: "uint16" }),
|
|
248
|
+
FieldElement({ name: "peripheralAddress", type: "string" }),
|
|
249
|
+
],
|
|
250
|
+
}),
|
|
251
|
+
],
|
|
252
|
+
}),
|
|
253
|
+
|
|
254
|
+
FieldElement({ name: "discoveredAt", type: "systime-ms", quality: "N", conformance: "M" }),
|
|
255
|
+
FieldElement({ name: "onlineAt", type: "systime-ms" }),
|
|
256
|
+
FieldElement({ name: "offlineAt", type: "systime-ms" }),
|
|
257
|
+
FieldElement({ name: "ttl", type: "uint32", quality: "N" }),
|
|
258
|
+
FieldElement({ name: "deviceIdentifier", type: "string", quality: "N" }),
|
|
259
|
+
FieldElement({ name: "discriminator", type: "uint16", quality: "N" }),
|
|
260
|
+
FieldElement({ name: "commissioningMode", type: "uint8", quality: "N" }),
|
|
261
|
+
FieldElement({ name: "vendorId", type: "vendor-id", quality: "N" }),
|
|
262
|
+
FieldElement({ name: "productId", type: "uint16", quality: "N" }),
|
|
263
|
+
FieldElement({ name: "deviceType", type: "uint16", quality: "N" }),
|
|
264
|
+
FieldElement({ name: "deviceName", type: "string", quality: "N" }),
|
|
265
|
+
FieldElement({ name: "rotatingIdentifier", type: "string", quality: "N" }),
|
|
266
|
+
FieldElement({ name: "pairingHint", type: "uint32", quality: "N" }),
|
|
267
|
+
FieldElement({ name: "pairingInstructions", type: "string", quality: "N" }),
|
|
268
|
+
FieldElement({
|
|
269
|
+
name: "sessionParameters",
|
|
270
|
+
type: "struct",
|
|
271
|
+
quality: "N",
|
|
272
|
+
children: [
|
|
273
|
+
FieldElement({ name: "idleInterval", type: "duration", constraint: "max 3600000" }),
|
|
274
|
+
FieldElement({ name: "activeInterval", type: "duration", constraint: "max 3600000" }),
|
|
275
|
+
FieldElement({ name: "activeThreshold", type: "duration", constraint: "max 65535" }),
|
|
276
|
+
],
|
|
277
|
+
}),
|
|
278
|
+
FieldElement({ name: "tcpSupport", type: "uint8", quality: "N" }),
|
|
279
|
+
FieldElement({ name: "longIdleOperatingMode", type: "bool", quality: "N" }),
|
|
280
|
+
);
|
|
279
281
|
}
|
|
280
282
|
|
|
281
283
|
export namespace CommissioningClient {
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { InternalError, Logger, MatterError } from "#general";
|
|
7
|
+
import { InternalError, Logger, MatterError, ObserverGroup } from "#general";
|
|
8
8
|
import type { ClientNode } from "#node/ClientNode.js";
|
|
9
|
-
import { ClientInteraction, ExchangeProvider, PeerSet } from "#protocol";
|
|
9
|
+
import { ClientInteraction, ExchangeProvider, PeerAddress, PeerSet, SessionManager } from "#protocol";
|
|
10
10
|
import { CommissioningClient } from "../commissioning/CommissioningClient.js";
|
|
11
11
|
import { RemoteDescriptor } from "../commissioning/RemoteDescriptor.js";
|
|
12
12
|
import { NetworkRuntime } from "./NetworkRuntime.js";
|
|
@@ -21,30 +21,81 @@ const logger = Logger.get("ClientNetworkRuntime");
|
|
|
21
21
|
*/
|
|
22
22
|
export class ClientNetworkRuntime extends NetworkRuntime {
|
|
23
23
|
#client?: ClientInteraction;
|
|
24
|
+
#observers = new ObserverGroup();
|
|
24
25
|
|
|
25
26
|
constructor(owner: ClientNode) {
|
|
26
27
|
super(owner);
|
|
27
28
|
}
|
|
28
29
|
|
|
30
|
+
override get owner() {
|
|
31
|
+
return super.owner as ClientNode;
|
|
32
|
+
}
|
|
33
|
+
|
|
29
34
|
protected async start() {
|
|
35
|
+
// Ensure we can connect to the node
|
|
30
36
|
if (!this.owner.lifecycle.isCommissioned) {
|
|
31
37
|
throw new UncommissionedError(`Cannot interact with ${this.owner} because it is uncommissioned`);
|
|
32
38
|
}
|
|
33
39
|
|
|
34
|
-
|
|
40
|
+
if (this.owner.state.network.isDisabled) {
|
|
41
|
+
throw new UncommissionedError(`Cannot interact with ${this.owner} because it is disabled`);
|
|
42
|
+
}
|
|
43
|
+
|
|
35
44
|
const address = this.owner.stateOf(CommissioningClient).peerAddress;
|
|
36
|
-
const peers = this.owner.env.get(PeerSet);
|
|
37
45
|
|
|
38
46
|
if (address === undefined) {
|
|
39
47
|
throw new InternalError(`Commissioned node ${this.owner} has no peer address`);
|
|
40
48
|
}
|
|
41
49
|
|
|
50
|
+
// Install the exchange provider for the node
|
|
51
|
+
const { env, lifecycle } = this.owner;
|
|
52
|
+
const peers = env.get(PeerSet);
|
|
53
|
+
const commissioningState = this.owner.stateOf(CommissioningClient);
|
|
54
|
+
|
|
42
55
|
const exchangeProvider = await peers.exchangeProviderFor(address, {
|
|
43
56
|
discoveryData: RemoteDescriptor.fromLongForm(commissioningState),
|
|
44
57
|
});
|
|
45
|
-
|
|
58
|
+
env.set(ExchangeProvider, exchangeProvider);
|
|
59
|
+
|
|
60
|
+
// Monitor sessions to maintain online state. We consider the node "online" if there is an active session. If
|
|
61
|
+
// not, we consider the node offline. This is the only real way we have of determining whether the node is
|
|
62
|
+
// healthy without actively polling
|
|
63
|
+
this.#client = env.get(ClientInteraction);
|
|
64
|
+
const { sessions } = env.get(SessionManager);
|
|
65
|
+
|
|
66
|
+
if (sessions.find(session => session.peerIs(address))) {
|
|
67
|
+
this.owner.act(({ context }) => lifecycle.online.emit(context));
|
|
68
|
+
}
|
|
46
69
|
|
|
47
|
-
this.#
|
|
70
|
+
this.#observers.on(sessions.added, session => {
|
|
71
|
+
if (lifecycle.isOnline) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const address = PeerAddress(commissioningState.peerAddress);
|
|
76
|
+
if (!address || session.peerAddress !== address) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
this.owner.act(({ context }) => lifecycle.online.emit(context));
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
this.#observers.on(sessions.deleted, session => {
|
|
84
|
+
if (!lifecycle.isOnline) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const address = PeerAddress(commissioningState.peerAddress);
|
|
89
|
+
if (session.peerAddress !== address) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
if (address && sessions.find(({ peerAddress }) => peerAddress === address)) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
this.owner.act(({ context }) => lifecycle.offline.emit(context));
|
|
98
|
+
});
|
|
48
99
|
}
|
|
49
100
|
|
|
50
101
|
protected async stop() {
|
|
@@ -55,6 +106,8 @@ export class ClientNetworkRuntime extends NetworkRuntime {
|
|
|
55
106
|
} catch (e) {
|
|
56
107
|
logger.error(`Error closing connection to ${this.owner}`, e);
|
|
57
108
|
}
|
|
109
|
+
|
|
110
|
+
this.#observers.close();
|
|
58
111
|
}
|
|
59
112
|
|
|
60
113
|
blockNewActivity() {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { STANDARD_MATTER_PORT } from "#general";
|
|
7
|
+
import { MaybePromise, STANDARD_MATTER_PORT } from "#general";
|
|
8
8
|
import { Behavior } from "../../Behavior.js";
|
|
9
9
|
import type { NetworkRuntime } from "./NetworkRuntime.js";
|
|
10
10
|
|
|
@@ -24,6 +24,11 @@ export class NetworkBehavior extends Behavior {
|
|
|
24
24
|
override [Symbol.asyncDispose]() {
|
|
25
25
|
return this.internal.runtime?.close();
|
|
26
26
|
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Invoked by node when networking is ready.
|
|
30
|
+
*/
|
|
31
|
+
startup(): MaybePromise {}
|
|
27
32
|
}
|
|
28
33
|
|
|
29
34
|
export namespace NetworkBehavior {
|
|
@@ -14,14 +14,10 @@ export class NetworkClient extends NetworkBehavior {
|
|
|
14
14
|
declare internal: NetworkClient.Internal;
|
|
15
15
|
declare state: NetworkClient.State;
|
|
16
16
|
|
|
17
|
-
override
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
protected async startup() {
|
|
22
|
-
const { startupSubscription } = this.state;
|
|
17
|
+
override async startup() {
|
|
18
|
+
const { startupSubscription, isDisabled } = this.state;
|
|
23
19
|
|
|
24
|
-
if (startupSubscription === null) {
|
|
20
|
+
if (startupSubscription === null || isDisabled) {
|
|
25
21
|
return;
|
|
26
22
|
}
|
|
27
23
|
|
|
@@ -59,6 +55,12 @@ export class NetworkClient extends NetworkBehavior {
|
|
|
59
55
|
default: { type: "properties", properties: {} },
|
|
60
56
|
quality: "XN",
|
|
61
57
|
}),
|
|
58
|
+
|
|
59
|
+
FieldElement({
|
|
60
|
+
name: "isDisabled",
|
|
61
|
+
type: "bool",
|
|
62
|
+
quality: "N",
|
|
63
|
+
}),
|
|
62
64
|
],
|
|
63
65
|
});
|
|
64
66
|
}
|
|
@@ -72,11 +74,16 @@ export namespace NetworkClient {
|
|
|
72
74
|
/**
|
|
73
75
|
* A subscription installed when the node is first commissioned and when the service is restarted.
|
|
74
76
|
*
|
|
75
|
-
* The default subscription is a wildcard for all attributes
|
|
76
|
-
*
|
|
77
|
+
* The default subscription is a wildcard for all attributes of the node. You can set to undefined or filter
|
|
78
|
+
* the fields and values but only values selected by this subscription will update automatically.
|
|
77
79
|
*
|
|
78
80
|
* Set to null to disable automatic subscription.
|
|
79
81
|
*/
|
|
80
82
|
startupSubscription?: Subscribe | null;
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* If true, the matter.js will not perform network communication with the node.
|
|
86
|
+
*/
|
|
87
|
+
isDisabled = false;
|
|
81
88
|
}
|
|
82
89
|
}
|
|
@@ -293,6 +293,8 @@ export class ServerNetworkRuntime extends NetworkRuntime {
|
|
|
293
293
|
if (this.owner.stateOf(CommissioningServer).commissioned) {
|
|
294
294
|
this.enableMdnsAdvertising();
|
|
295
295
|
}
|
|
296
|
+
|
|
297
|
+
await this.owner.act(agent => this.owner.lifecycle.online.emit(agent.context));
|
|
296
298
|
}
|
|
297
299
|
|
|
298
300
|
override async [Construction.construct]() {
|
package/src/node/ClientNode.ts
CHANGED
|
@@ -108,6 +108,36 @@ export class ClientNode extends Node<ClientNode.RootEndpoint> {
|
|
|
108
108
|
await this.lifecycle.mutex.produce(this.eraseWithMutex.bind(this));
|
|
109
109
|
}
|
|
110
110
|
|
|
111
|
+
/**
|
|
112
|
+
* Disable the node.
|
|
113
|
+
*
|
|
114
|
+
* This shuts down any active connections and prevents future connections until re-enabled.
|
|
115
|
+
*/
|
|
116
|
+
async disable() {
|
|
117
|
+
if (this.state.network.isDisabled) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
await this.lifecycle.mutex.produce(async () => {
|
|
122
|
+
await this.cancelWithMutex();
|
|
123
|
+
await this.setStateOf(NetworkClient, { isDisabled: true });
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Enable the node.
|
|
129
|
+
*
|
|
130
|
+
* If the node is disabled but reachable, this brings it online.
|
|
131
|
+
*/
|
|
132
|
+
async enable() {
|
|
133
|
+
if (!this.state.network.isDisabled) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
await this.setStateOf(NetworkClient, { isDisabled: false });
|
|
138
|
+
await this.start();
|
|
139
|
+
}
|
|
140
|
+
|
|
111
141
|
protected async eraseWithMutex() {
|
|
112
142
|
// First ensure we're offline
|
|
113
143
|
await this.cancelWithMutex();
|
package/src/node/Node.ts
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import { ActionContext } from "#behavior/context/ActionContext.js";
|
|
8
8
|
import { NodeActivity } from "#behavior/context/NodeActivity.js";
|
|
9
9
|
import { IndexBehavior } from "#behavior/system/index/IndexBehavior.js";
|
|
10
|
+
import { NetworkBehavior } from "#behavior/system/network/NetworkBehavior.js";
|
|
10
11
|
import { NetworkRuntime } from "#behavior/system/network/NetworkRuntime.js";
|
|
11
12
|
import { PartsBehavior } from "#behavior/system/parts/PartsBehavior.js";
|
|
12
13
|
import { Endpoint } from "#endpoint/Endpoint.js";
|
|
@@ -116,6 +117,7 @@ export abstract class Node<T extends Node.CommonRootEndpoint = Node.CommonRootEn
|
|
|
116
117
|
this.#runtime.construction.start();
|
|
117
118
|
this.#environment.set(NetworkRuntime, this.#runtime);
|
|
118
119
|
await this.#runtime.construction.ready;
|
|
120
|
+
await this.act("network startup", agent => agent.get(NetworkBehavior).startup());
|
|
119
121
|
} catch (e) {
|
|
120
122
|
this.env.runtime.delete(this);
|
|
121
123
|
throw e;
|