@matter/node 0.11.9 → 0.12.0-alpha.0-20241213-fcd71a96d
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 +6 -1
- package/dist/cjs/behavior/internal/BehaviorBacking.d.ts.map +1 -1
- package/dist/cjs/behavior/internal/BehaviorBacking.js +2 -1
- package/dist/cjs/behavior/internal/BehaviorBacking.js.map +1 -1
- package/dist/cjs/behavior/internal/ClientBehaviorBacking.d.ts +2 -1
- package/dist/cjs/behavior/internal/ClientBehaviorBacking.d.ts.map +1 -1
- package/dist/cjs/behavior/internal/ClientBehaviorBacking.js +4 -0
- package/dist/cjs/behavior/internal/ClientBehaviorBacking.js.map +1 -1
- package/dist/cjs/behavior/internal/ServerBehaviorBacking.d.ts +2 -0
- package/dist/cjs/behavior/internal/ServerBehaviorBacking.d.ts.map +1 -1
- package/dist/cjs/behavior/internal/ServerBehaviorBacking.js +37 -0
- package/dist/cjs/behavior/internal/ServerBehaviorBacking.js.map +1 -1
- package/dist/cjs/behavior/state/transaction/Transaction.d.ts +18 -18
- package/dist/cjs/behavior/system/events/EventsBehavior.d.ts +26 -0
- package/dist/cjs/behavior/system/events/EventsBehavior.d.ts.map +1 -0
- package/dist/cjs/behavior/system/events/EventsBehavior.js +74 -0
- package/dist/cjs/behavior/system/events/EventsBehavior.js.map +6 -0
- package/dist/cjs/behavior/system/events/index.d.ts +7 -0
- package/dist/cjs/behavior/system/events/index.d.ts.map +1 -0
- package/dist/cjs/behavior/system/events/index.js +24 -0
- package/dist/cjs/behavior/system/events/index.js.map +6 -0
- package/dist/cjs/behavior/system/network/ServerNetworkRuntime.d.ts.map +1 -1
- package/dist/cjs/behavior/system/network/ServerNetworkRuntime.js +3 -0
- package/dist/cjs/behavior/system/network/ServerNetworkRuntime.js.map +1 -1
- package/dist/cjs/behaviors/administrator-commissioning/AdministratorCommissioningServer.d.ts +8 -0
- package/dist/cjs/behaviors/administrator-commissioning/AdministratorCommissioningServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/administrator-commissioning/AdministratorCommissioningServer.js +12 -4
- package/dist/cjs/behaviors/administrator-commissioning/AdministratorCommissioningServer.js.map +1 -1
- package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts +2 -4
- package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.js +6 -8
- package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.js.map +1 -1
- package/dist/cjs/behaviors/operational-credentials/OperationalCredentialsServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/operational-credentials/OperationalCredentialsServer.js +23 -20
- package/dist/cjs/behaviors/operational-credentials/OperationalCredentialsServer.js.map +1 -1
- package/dist/cjs/endpoint/Agent.d.ts +1 -1
- package/dist/cjs/endpoint/Agent.js +1 -1
- package/dist/cjs/endpoint/index.d.ts +1 -1
- package/dist/cjs/endpoint/index.d.ts.map +1 -1
- package/dist/cjs/endpoint/index.js +1 -1
- package/dist/cjs/endpoint/index.js.map +1 -1
- package/dist/cjs/endpoint/properties/Behaviors.d.ts +13 -0
- package/dist/cjs/endpoint/properties/Behaviors.d.ts.map +1 -1
- package/dist/cjs/endpoint/properties/Behaviors.js +37 -24
- package/dist/cjs/endpoint/properties/Behaviors.js.map +2 -2
- package/dist/cjs/endpoint/properties/EndpointInitializer.d.ts +8 -3
- package/dist/cjs/endpoint/properties/EndpointInitializer.d.ts.map +1 -1
- package/dist/cjs/endpoint/properties/EndpointInitializer.js +5 -0
- package/dist/cjs/endpoint/properties/EndpointInitializer.js.map +1 -1
- package/dist/cjs/endpoint/server/BehaviorServer.d.ts +21 -0
- package/dist/cjs/endpoint/server/BehaviorServer.d.ts.map +1 -0
- package/dist/cjs/endpoint/server/BehaviorServer.js +272 -0
- package/dist/cjs/endpoint/server/BehaviorServer.js.map +6 -0
- package/dist/{esm/endpoint → cjs/endpoint/server}/EndpointServer.d.ts +5 -6
- package/dist/cjs/endpoint/server/EndpointServer.d.ts.map +1 -0
- package/dist/cjs/endpoint/{EndpointServer.js → server/EndpointServer.js} +38 -14
- package/dist/cjs/endpoint/server/EndpointServer.js.map +6 -0
- package/dist/cjs/{node → endpoint}/server/ServerEndpointInitializer.d.ts +4 -4
- package/dist/cjs/endpoint/server/ServerEndpointInitializer.d.ts.map +1 -0
- package/dist/cjs/{node → endpoint}/server/ServerEndpointInitializer.js +7 -7
- package/dist/cjs/endpoint/server/ServerEndpointInitializer.js.map +6 -0
- package/dist/cjs/endpoint/server/index.d.ts +8 -0
- package/dist/cjs/endpoint/server/index.d.ts.map +1 -0
- package/dist/cjs/endpoint/server/index.js +25 -0
- package/dist/cjs/endpoint/server/index.js.map +6 -0
- package/dist/cjs/endpoint/type/MutableEndpoint.d.ts.map +1 -1
- package/dist/cjs/endpoint/type/MutableEndpoint.js +3 -0
- package/dist/cjs/endpoint/type/MutableEndpoint.js.map +1 -1
- package/dist/cjs/node/Node.d.ts +5 -0
- package/dist/cjs/node/Node.d.ts.map +1 -1
- package/dist/cjs/node/Node.js +17 -2
- package/dist/cjs/node/Node.js.map +1 -1
- package/dist/cjs/node/NodeLifecycle.d.ts +11 -1
- package/dist/cjs/node/NodeLifecycle.d.ts.map +1 -1
- package/dist/cjs/node/NodeLifecycle.js +14 -0
- package/dist/cjs/node/NodeLifecycle.js.map +1 -1
- package/dist/cjs/node/ServerNode.d.ts +3 -2
- package/dist/cjs/node/ServerNode.d.ts.map +1 -1
- package/dist/cjs/node/ServerNode.js +9 -9
- package/dist/cjs/node/ServerNode.js.map +1 -1
- package/dist/cjs/node/server/ServerEnvironment.js +1 -1
- package/dist/cjs/node/server/ServerEnvironment.js.map +1 -1
- package/dist/cjs/node/server/TransactionalInteractionServer.d.ts +2 -2
- package/dist/cjs/node/server/TransactionalInteractionServer.d.ts.map +1 -1
- package/dist/cjs/node/server/TransactionalInteractionServer.js +9 -4
- package/dist/cjs/node/server/TransactionalInteractionServer.js.map +2 -2
- package/dist/cjs/node/server/index.d.ts +0 -1
- package/dist/cjs/node/server/index.d.ts.map +1 -1
- package/dist/cjs/node/server/index.js +0 -1
- package/dist/cjs/node/server/index.js.map +1 -1
- package/dist/esm/behavior/internal/BehaviorBacking.d.ts +6 -1
- package/dist/esm/behavior/internal/BehaviorBacking.d.ts.map +1 -1
- package/dist/esm/behavior/internal/BehaviorBacking.js +2 -1
- package/dist/esm/behavior/internal/BehaviorBacking.js.map +1 -1
- package/dist/esm/behavior/internal/ClientBehaviorBacking.d.ts +2 -1
- package/dist/esm/behavior/internal/ClientBehaviorBacking.d.ts.map +1 -1
- package/dist/esm/behavior/internal/ClientBehaviorBacking.js +4 -0
- package/dist/esm/behavior/internal/ClientBehaviorBacking.js.map +1 -1
- package/dist/esm/behavior/internal/ServerBehaviorBacking.d.ts +2 -0
- package/dist/esm/behavior/internal/ServerBehaviorBacking.d.ts.map +1 -1
- package/dist/esm/behavior/internal/ServerBehaviorBacking.js +37 -0
- package/dist/esm/behavior/internal/ServerBehaviorBacking.js.map +1 -1
- package/dist/esm/behavior/state/transaction/Transaction.d.ts +18 -18
- package/dist/esm/behavior/system/events/EventsBehavior.d.ts +26 -0
- package/dist/esm/behavior/system/events/EventsBehavior.d.ts.map +1 -0
- package/dist/esm/behavior/system/events/EventsBehavior.js +54 -0
- package/dist/esm/behavior/system/events/EventsBehavior.js.map +6 -0
- package/dist/esm/behavior/system/events/index.d.ts +7 -0
- package/dist/esm/behavior/system/events/index.d.ts.map +1 -0
- package/dist/esm/behavior/system/events/index.js +7 -0
- package/dist/esm/behavior/system/events/index.js.map +6 -0
- package/dist/esm/behavior/system/network/ServerNetworkRuntime.d.ts.map +1 -1
- package/dist/esm/behavior/system/network/ServerNetworkRuntime.js +3 -0
- package/dist/esm/behavior/system/network/ServerNetworkRuntime.js.map +1 -1
- package/dist/esm/behaviors/administrator-commissioning/AdministratorCommissioningServer.d.ts +8 -0
- package/dist/esm/behaviors/administrator-commissioning/AdministratorCommissioningServer.d.ts.map +1 -1
- package/dist/esm/behaviors/administrator-commissioning/AdministratorCommissioningServer.js +12 -4
- package/dist/esm/behaviors/administrator-commissioning/AdministratorCommissioningServer.js.map +1 -1
- package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts +2 -4
- package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts.map +1 -1
- package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.js +6 -8
- package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.js.map +1 -1
- package/dist/esm/behaviors/operational-credentials/OperationalCredentialsServer.d.ts.map +1 -1
- package/dist/esm/behaviors/operational-credentials/OperationalCredentialsServer.js +23 -20
- package/dist/esm/behaviors/operational-credentials/OperationalCredentialsServer.js.map +1 -1
- package/dist/esm/endpoint/Agent.d.ts +1 -1
- package/dist/esm/endpoint/Agent.js +1 -1
- package/dist/esm/endpoint/index.d.ts +1 -1
- package/dist/esm/endpoint/index.d.ts.map +1 -1
- package/dist/esm/endpoint/index.js +1 -1
- package/dist/esm/endpoint/properties/Behaviors.d.ts +13 -0
- package/dist/esm/endpoint/properties/Behaviors.d.ts.map +1 -1
- package/dist/esm/endpoint/properties/Behaviors.js +38 -27
- package/dist/esm/endpoint/properties/Behaviors.js.map +2 -2
- package/dist/esm/endpoint/properties/EndpointInitializer.d.ts +8 -3
- package/dist/esm/endpoint/properties/EndpointInitializer.d.ts.map +1 -1
- package/dist/esm/endpoint/properties/EndpointInitializer.js +5 -0
- package/dist/esm/endpoint/properties/EndpointInitializer.js.map +1 -1
- package/dist/esm/endpoint/server/BehaviorServer.d.ts +21 -0
- package/dist/esm/endpoint/server/BehaviorServer.d.ts.map +1 -0
- package/dist/esm/endpoint/server/BehaviorServer.js +269 -0
- package/dist/esm/endpoint/server/BehaviorServer.js.map +6 -0
- package/dist/{cjs/endpoint → esm/endpoint/server}/EndpointServer.d.ts +5 -6
- package/dist/esm/endpoint/server/EndpointServer.d.ts.map +1 -0
- package/dist/esm/endpoint/{EndpointServer.js → server/EndpointServer.js} +38 -14
- package/dist/esm/endpoint/server/EndpointServer.js.map +6 -0
- package/dist/esm/{node → endpoint}/server/ServerEndpointInitializer.d.ts +4 -4
- package/dist/esm/endpoint/server/ServerEndpointInitializer.d.ts.map +1 -0
- package/dist/esm/{node → endpoint}/server/ServerEndpointInitializer.js +7 -7
- package/dist/esm/endpoint/server/ServerEndpointInitializer.js.map +6 -0
- package/dist/esm/endpoint/server/index.d.ts +8 -0
- package/dist/esm/endpoint/server/index.d.ts.map +1 -0
- package/dist/esm/endpoint/server/index.js +8 -0
- package/dist/esm/endpoint/server/index.js.map +6 -0
- package/dist/esm/endpoint/type/MutableEndpoint.d.ts.map +1 -1
- package/dist/esm/endpoint/type/MutableEndpoint.js +3 -0
- package/dist/esm/endpoint/type/MutableEndpoint.js.map +1 -1
- package/dist/esm/node/Node.d.ts +5 -0
- package/dist/esm/node/Node.d.ts.map +1 -1
- package/dist/esm/node/Node.js +17 -2
- package/dist/esm/node/Node.js.map +1 -1
- package/dist/esm/node/NodeLifecycle.d.ts +11 -1
- package/dist/esm/node/NodeLifecycle.d.ts.map +1 -1
- package/dist/esm/node/NodeLifecycle.js +15 -1
- package/dist/esm/node/NodeLifecycle.js.map +1 -1
- package/dist/esm/node/ServerNode.d.ts +3 -2
- package/dist/esm/node/ServerNode.d.ts.map +1 -1
- package/dist/esm/node/ServerNode.js +10 -10
- package/dist/esm/node/ServerNode.js.map +1 -1
- package/dist/esm/node/server/ServerEnvironment.js +1 -1
- package/dist/esm/node/server/ServerEnvironment.js.map +1 -1
- package/dist/esm/node/server/TransactionalInteractionServer.d.ts +2 -2
- package/dist/esm/node/server/TransactionalInteractionServer.d.ts.map +1 -1
- package/dist/esm/node/server/TransactionalInteractionServer.js +9 -4
- package/dist/esm/node/server/TransactionalInteractionServer.js.map +2 -2
- package/dist/esm/node/server/index.d.ts +0 -1
- package/dist/esm/node/server/index.d.ts.map +1 -1
- package/dist/esm/node/server/index.js +0 -1
- package/dist/esm/node/server/index.js.map +1 -1
- package/package.json +7 -7
- package/src/behavior/internal/BehaviorBacking.ts +9 -1
- package/src/behavior/internal/ClientBehaviorBacking.ts +6 -1
- package/src/behavior/internal/ServerBehaviorBacking.ts +51 -0
- package/src/behavior/system/events/EventsBehavior.ts +60 -0
- package/src/behavior/system/events/index.ts +7 -0
- package/src/behavior/system/network/ServerNetworkRuntime.ts +6 -0
- package/src/behaviors/administrator-commissioning/AdministratorCommissioningServer.ts +14 -4
- package/src/behaviors/general-diagnostics/GeneralDiagnosticsServer.ts +16 -9
- package/src/behaviors/operational-credentials/OperationalCredentialsServer.ts +26 -20
- package/src/endpoint/Agent.ts +1 -1
- package/src/endpoint/index.ts +1 -1
- package/src/endpoint/properties/Behaviors.ts +56 -28
- package/src/endpoint/properties/EndpointInitializer.ts +9 -3
- package/src/endpoint/server/BehaviorServer.ts +387 -0
- package/src/endpoint/{EndpointServer.ts → server/EndpointServer.ts} +50 -20
- package/src/{node → endpoint}/server/ServerEndpointInitializer.ts +7 -7
- package/src/endpoint/server/index.ts +8 -0
- package/src/endpoint/type/MutableEndpoint.ts +4 -0
- package/src/node/Node.ts +22 -4
- package/src/node/NodeLifecycle.ts +17 -1
- package/src/node/ServerNode.ts +11 -13
- package/src/node/server/ServerEnvironment.ts +1 -1
- package/src/node/server/TransactionalInteractionServer.ts +13 -7
- package/src/node/server/index.ts +0 -1
- package/dist/cjs/behavior/internal/ClusterServerBacking.d.ts +0 -36
- package/dist/cjs/behavior/internal/ClusterServerBacking.d.ts.map +0 -1
- package/dist/cjs/behavior/internal/ClusterServerBacking.js +0 -342
- package/dist/cjs/behavior/internal/ClusterServerBacking.js.map +0 -6
- package/dist/cjs/endpoint/EndpointServer.d.ts.map +0 -1
- package/dist/cjs/endpoint/EndpointServer.js.map +0 -6
- package/dist/cjs/node/server/ServerEndpointInitializer.d.ts.map +0 -1
- package/dist/cjs/node/server/ServerEndpointInitializer.js.map +0 -6
- package/dist/esm/behavior/internal/ClusterServerBacking.d.ts +0 -36
- package/dist/esm/behavior/internal/ClusterServerBacking.d.ts.map +0 -1
- package/dist/esm/behavior/internal/ClusterServerBacking.js +0 -330
- package/dist/esm/behavior/internal/ClusterServerBacking.js.map +0 -6
- package/dist/esm/endpoint/EndpointServer.d.ts.map +0 -1
- package/dist/esm/endpoint/EndpointServer.js.map +0 -6
- package/dist/esm/node/server/ServerEndpointInitializer.d.ts.map +0 -1
- package/dist/esm/node/server/ServerEndpointInitializer.js.map +0 -6
- package/src/behavior/internal/ClusterServerBacking.ts +0 -446
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/node/Node.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAE9B,SAAS,qBAAqB;AAC9B,SAAS,gBAAgB;AACzB,SAAS,uBAAuB;AAEhC;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAE9B,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;AAEtD,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,EAEmB,kBAAiC;AAChD,WAAO,IAAI,cAAc,IAAI;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,QAAQ;AACV,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,YAAM,KAAK,SAAS,aAAa;AAAA,IACrC,SAAS,GAAG;AACR,WAAK,IAAI,QAAQ,OAAO,IAAI;AAC5B,YAAM;AAAA,IACV;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,cAAc;AAChB,WAAO,KAAK,MAAM;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,MAAM;AACR,UAAM,KAAK,MAAM;AACjB,UAAM,KAAK,aAAa;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,SAAS;AACX,QAAI,CAAC,KAAK,UAAU;AAChB;AAAA,IACJ;AAEA,UAAM,KAAK,IAAI,WAAS,KAAK,UAAU,aAAa,KAAK,MAAM,OAAO,CAAC;AACvE,UAAM,KAAK,UAAU,MAAM;AAC3B,SAAK,WAAW;AAAA,EACpB;AAAA,EAEA,MAAe,QAAQ;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["Node"]
|
|
6
6
|
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { ActionContext } from "#behavior/context/ActionContext.js";
|
|
7
7
|
import { Endpoint } from "#endpoint/Endpoint.js";
|
|
8
8
|
import { EndpointLifecycle } from "#endpoint/properties/EndpointLifecycle.js";
|
|
9
|
-
import { AsyncObservable, Observable } from "#general";
|
|
9
|
+
import { AsyncObservable, Mutex, Observable } from "#general";
|
|
10
10
|
/**
|
|
11
11
|
* Extended lifecycle information that only applies to root endpoints.
|
|
12
12
|
*/
|
|
@@ -45,5 +45,15 @@ export declare class NodeLifecycle extends EndpointLifecycle {
|
|
|
45
45
|
* Emits when node is no longer comissioned.
|
|
46
46
|
*/
|
|
47
47
|
get decommissioned(): Observable<[context: ActionContext], void>;
|
|
48
|
+
/**
|
|
49
|
+
* Mutex for protecting node lifecycle transitions.
|
|
50
|
+
*
|
|
51
|
+
* Methods that implement complex async lifecycle transitions use this mutex to ensure conflicting operations cannot
|
|
52
|
+
* intermingle.
|
|
53
|
+
*
|
|
54
|
+
* Generally methods that hold this mutex have a protected "*WithMutex" variant. This allows for nesting of logic
|
|
55
|
+
* that requires the mutex without causing deadlock.
|
|
56
|
+
*/
|
|
57
|
+
get mutex(): Mutex;
|
|
48
58
|
}
|
|
49
59
|
//# 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,UAAU,EAAE,MAAM,UAAU,CAAC;
|
|
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;;gBAWpC,QAAQ,EAAE,QAAQ;IAsB9B;;OAEG;IACH,IAAI,QAAQ,YAEX;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;CACJ"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { EndpointLifecycle } from "#endpoint/properties/EndpointLifecycle.js";
|
|
7
|
-
import { AsyncObservable, Observable } from "#general";
|
|
7
|
+
import { AsyncObservable, Mutex, Observable } from "#general";
|
|
8
8
|
class NodeLifecycle extends EndpointLifecycle {
|
|
9
9
|
#online = AsyncObservable();
|
|
10
10
|
#goingOffline = AsyncObservable();
|
|
@@ -14,8 +14,10 @@ class NodeLifecycle extends EndpointLifecycle {
|
|
|
14
14
|
#initialized = Observable();
|
|
15
15
|
#isOnline = false;
|
|
16
16
|
#isCommissioned = false;
|
|
17
|
+
#mutex;
|
|
17
18
|
constructor(endpoint) {
|
|
18
19
|
super(endpoint);
|
|
20
|
+
this.#mutex = new Mutex(endpoint);
|
|
19
21
|
this.#online.on(() => {
|
|
20
22
|
this.#isOnline = true;
|
|
21
23
|
});
|
|
@@ -80,6 +82,18 @@ class NodeLifecycle extends EndpointLifecycle {
|
|
|
80
82
|
get decommissioned() {
|
|
81
83
|
return this.#decommissioned;
|
|
82
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Mutex for protecting node lifecycle transitions.
|
|
87
|
+
*
|
|
88
|
+
* Methods that implement complex async lifecycle transitions use this mutex to ensure conflicting operations cannot
|
|
89
|
+
* intermingle.
|
|
90
|
+
*
|
|
91
|
+
* Generally methods that hold this mutex have a protected "*WithMutex" variant. This allows for nesting of logic
|
|
92
|
+
* that requires the mutex without causing deadlock.
|
|
93
|
+
*/
|
|
94
|
+
get mutex() {
|
|
95
|
+
return this.#mutex;
|
|
96
|
+
}
|
|
83
97
|
}
|
|
84
98
|
export {
|
|
85
99
|
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,kBAAkB;
|
|
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,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAClB;AAAA,EAEA,YAAY,UAAoB;AAC5B,UAAM,QAAQ;AAEd,SAAK,SAAS,IAAI,MAAM,QAAQ;AAEhC,SAAK,QAAQ,GAAG,MAAM;AAClB,WAAK,YAAY;AAAA,IACrB,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;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;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { CommissioningServer } from "#behavior/system/commissioning/CommissioningServer.js";
|
|
7
7
|
import { ControllerBehavior } from "#behavior/system/controller/ControllerBehavior.js";
|
|
8
|
+
import { EventsBehavior } from "#behavior/system/events/EventsBehavior.js";
|
|
8
9
|
import { NetworkServer } from "#behavior/system/network/NetworkServer.js";
|
|
9
10
|
import { ServerNetworkRuntime } from "#behavior/system/network/ServerNetworkRuntime.js";
|
|
10
11
|
import { ProductDescriptionServer } from "#behavior/system/product-description/ProductDescriptionServer.js";
|
|
@@ -51,12 +52,12 @@ export declare class ServerNode<T extends ServerNode.RootEndpoint = ServerNode.R
|
|
|
51
52
|
static create<This extends typeof ServerNode<any>, T extends ServerNode.RootEndpoint = ServerNode.RootEndpoint>(this: This, config: Partial<Node.Configuration<T>>): Promise<ServerNode<T>>;
|
|
52
53
|
protected createRuntime(): ServerNetworkRuntime;
|
|
53
54
|
[Construction.destruct](): Promise<void>;
|
|
54
|
-
reset(): Promise<void>;
|
|
55
55
|
prepareRuntimeShutdown(): Promise<void>;
|
|
56
56
|
/**
|
|
57
57
|
* Perform a factory reset of the node.
|
|
58
58
|
*/
|
|
59
59
|
erase(): Promise<void>;
|
|
60
|
+
protected eraseWithMutex(): Promise<void>;
|
|
60
61
|
/**
|
|
61
62
|
* Access other nodes on the fabric.
|
|
62
63
|
*/
|
|
@@ -122,7 +123,7 @@ export declare namespace ServerNode {
|
|
|
122
123
|
readonly operationalCredentials: typeof import("../behaviors/index.js").OperationalCredentialsServer;
|
|
123
124
|
} & {
|
|
124
125
|
readonly generalDiagnostics: typeof import("../behaviors/index.js").GeneralDiagnosticsServer;
|
|
125
|
-
}, readonly [typeof CommissioningServer, typeof NetworkServer, typeof ProductDescriptionServer, typeof SessionsBehavior, typeof ControllerBehavior]>>;
|
|
126
|
+
}, readonly [typeof CommissioningServer, typeof NetworkServer, typeof ProductDescriptionServer, typeof SessionsBehavior, typeof EventsBehavior, typeof ControllerBehavior]>>;
|
|
126
127
|
interface RootEndpoint extends Identity<typeof RootEndpoint> {
|
|
127
128
|
}
|
|
128
129
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerNode.d.ts","sourceRoot":"","sources":["../../../src/node/ServerNode.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kEAAkE,CAAC;AAC5G,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"ServerNode.d.ts","sourceRoot":"","sources":["../../../src/node/ServerNode.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kEAAkE,CAAC;AAC5G,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AAGjF,OAAO,EAAE,YAAY,EAAoB,QAAQ,EAAkC,MAAM,UAAU,CAAC;AAGpG,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AActD;;;;GAIG;AACH,qBAAa,UAAU,CAAC,CAAC,SAAS,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAE,SAAQ,IAAI,CAAC,CAAC,CAAC;;IAGhG;;;;;;;OAOG;gBACS,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAE/C;;;;;;OAMG;gBACS,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAYlD;;;;;OAKG;WACU,MAAM,CACf,IAAI,SAAS,OAAO,UAAU,CAAC,GAAG,CAAC,EACnC,CAAC,SAAS,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,EAC7D,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAE1E;;;;OAIG;WACU,MAAM,CACf,IAAI,SAAS,OAAO,UAAU,CAAC,GAAG,CAAC,EACnC,CAAC,SAAS,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,EAC7D,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAS7E,SAAS,CAAC,aAAa,IAAI,oBAAoB;IAIhC,CAAC,YAAY,CAAC,QAAQ,CAAC;IAKvB,sBAAsB;IAKrC;;OAEG;IACY,KAAK;cAIJ,cAAc;IAkC9B;;OAEG;IACH,IAAI,KAAK,gBAOR;IAEK,YAAY;cAIO,UAAU;IAMnC;;;;;;;OAOG;cACa,YAAY;IAO5B;;;OAGG;cACgB,mBAAmB;CACzC;AAED,yBAAiB,UAAU,CAAC;IACjB,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gLAOxB,CAAC;IAEF,UAAiB,YAAa,SAAQ,QAAQ,CAAC,OAAO,YAAY,CAAC;KAAG;CACzE"}
|
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { CommissioningServer } from "#behavior/system/commissioning/CommissioningServer.js";
|
|
7
7
|
import { ControllerBehavior } from "#behavior/system/controller/ControllerBehavior.js";
|
|
8
|
+
import { EventsBehavior } from "#behavior/system/events/EventsBehavior.js";
|
|
8
9
|
import { NetworkServer } from "#behavior/system/network/NetworkServer.js";
|
|
9
10
|
import { ServerNetworkRuntime } from "#behavior/system/network/ServerNetworkRuntime.js";
|
|
10
11
|
import { ProductDescriptionServer } from "#behavior/system/product-description/ProductDescriptionServer.js";
|
|
11
12
|
import { SessionsBehavior } from "#behavior/system/sessions/SessionsBehavior.js";
|
|
12
|
-
import { EndpointServer } from "#endpoint/EndpointServer.js";
|
|
13
13
|
import { Construction, DiagnosticSource, MatterError, asyncNew, errorOf } from "#general";
|
|
14
|
-
import {
|
|
14
|
+
import { FabricManager, OccurrenceManager, SessionManager } from "#protocol";
|
|
15
15
|
import { RootEndpoint as BaseRootEndpoint } from "../endpoints/root.js";
|
|
16
16
|
import { Node } from "./Node.js";
|
|
17
17
|
import { ClientNodes } from "./client/ClientNodes.js";
|
|
@@ -41,10 +41,6 @@ class ServerNode extends Node {
|
|
|
41
41
|
await super[Construction.destruct]();
|
|
42
42
|
await ServerEnvironment.close(this);
|
|
43
43
|
}
|
|
44
|
-
async reset() {
|
|
45
|
-
await super.reset();
|
|
46
|
-
await EndpointServer.forEndpoint(this)[Symbol.asyncDispose]();
|
|
47
|
-
}
|
|
48
44
|
async prepareRuntimeShutdown() {
|
|
49
45
|
const sessions = this.env.get(SessionManager);
|
|
50
46
|
await sessions.close();
|
|
@@ -53,18 +49,21 @@ class ServerNode extends Node {
|
|
|
53
49
|
* Perform a factory reset of the node.
|
|
54
50
|
*/
|
|
55
51
|
async erase() {
|
|
52
|
+
await this.lifecycle.mutex.produce(this.eraseWithMutex.bind(this));
|
|
53
|
+
}
|
|
54
|
+
async eraseWithMutex() {
|
|
56
55
|
try {
|
|
57
56
|
await this.construction;
|
|
58
57
|
const isOnline = this.lifecycle.isOnline;
|
|
59
58
|
if (isOnline) {
|
|
60
|
-
await this.
|
|
59
|
+
await this.cancelWithMutex();
|
|
61
60
|
}
|
|
62
61
|
this.statusUpdate("resetting to factory defaults");
|
|
63
|
-
await this.
|
|
62
|
+
await this.resetWithMutex();
|
|
64
63
|
await this.resetStorage();
|
|
65
64
|
this.construction.start();
|
|
66
65
|
if (isOnline) {
|
|
67
|
-
await this.
|
|
66
|
+
await this.startWithMutex();
|
|
68
67
|
} else {
|
|
69
68
|
await this.construction.ready;
|
|
70
69
|
}
|
|
@@ -101,7 +100,7 @@ class ServerNode extends Node {
|
|
|
101
100
|
async resetStorage() {
|
|
102
101
|
await this.env.get(SessionManager).clear();
|
|
103
102
|
await this.env.get(FabricManager).clear();
|
|
104
|
-
await this.env.get(
|
|
103
|
+
await this.env.get(OccurrenceManager).clear();
|
|
105
104
|
await this.env.get(ServerNodeStore).erase();
|
|
106
105
|
}
|
|
107
106
|
/**
|
|
@@ -117,6 +116,7 @@ class ServerNode extends Node {
|
|
|
117
116
|
NetworkServer,
|
|
118
117
|
ProductDescriptionServer,
|
|
119
118
|
SessionsBehavior,
|
|
119
|
+
EventsBehavior,
|
|
120
120
|
ControllerBehavior
|
|
121
121
|
);
|
|
122
122
|
})(ServerNode || (ServerNode = {}));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/node/ServerNode.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,2BAA2B;AACpC,SAAS,0BAA0B;AACnC,SAAS,qBAAqB;AAC9B,SAAS,4BAA4B;AACrC,SAAS,gCAAgC;AACzC,SAAS,wBAAwB;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["ServerNode"]
|
|
6
6
|
}
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
import { EndpointInitializer } from "#endpoint/index.js";
|
|
7
7
|
import { ServerNodeStore } from "#node/storage/ServerNodeStore.js";
|
|
8
8
|
import { FabricManager, SessionManager } from "#protocol";
|
|
9
|
+
import { ServerEndpointInitializer } from "../../endpoint/server/ServerEndpointInitializer.js";
|
|
9
10
|
import { IdentityService } from "./IdentityService.js";
|
|
10
|
-
import { ServerEndpointInitializer } from "./ServerEndpointInitializer.js";
|
|
11
11
|
var ServerEnvironment;
|
|
12
12
|
((ServerEnvironment2) => {
|
|
13
13
|
async function initialize(node) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/node/server/ServerEnvironment.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,2BAA2B;AAEpC,SAAS,uBAAuB;AAChC,SAAS,eAAe,sBAAsB;AAC9C,SAAS,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,2BAA2B;AAEpC,SAAS,uBAAuB;AAChC,SAAS,eAAe,sBAAsB;AAC9C,SAAS,iCAAiC;AAC1C,SAAS,uBAAuB;AAKzB,IAAU;AAAA,CAAV,CAAUA,uBAAV;AACH,iBAAsB,WAAW,MAAkB;AAC/C,UAAM,EAAE,IAAI,IAAI;AAGhB,QAAI,IAAI,iBAAiB,MAAM,gBAAgB,OAAO,KAAK,KAAK,EAAE,CAAC;AACnE,QAAI,IAAI,qBAAqB,IAAI,0BAA0B,GAAG,CAAC;AAC/D,QAAI,IAAI,iBAAiB,IAAI,gBAAgB,IAAI,CAAC;AAGlD,UAAM,IAAI,KAAK,aAAa;AAC5B,UAAM,IAAI,KAAK,cAAc;AAAA,EACjC;AAXA,EAAAA,mBAAsB;AAatB,iBAAsB,MAAM,MAAkB;AAC1C,UAAM,EAAE,IAAI,IAAI;AAEhB,QAAI,MAAM,aAAa;AACvB,UAAM,IAAI,MAAM,cAAc;AAC9B,UAAM,IAAI,MAAM,eAAe;AAAA,EACnC;AANA,EAAAA,mBAAsB;AAAA,GAdT;",
|
|
5
5
|
"names": ["ServerEnvironment"]
|
|
6
6
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { Endpoint } from "#endpoint/Endpoint.js";
|
|
7
|
-
import { AnyAttributeServer, AnyEventServer, AttributePath, AttributeServer, CommandPath, CommandServer, EndpointInterface, EventPath,
|
|
7
|
+
import { AnyAttributeServer, AnyEventServer, AttributePath, AttributeServer, CommandPath, CommandServer, EndpointInterface, EventPath, InteractionContext, InteractionServer, Message, MessageExchange, NumberedOccurrence, SessionManager, WriteRequest, WriteResponse } from "#protocol";
|
|
8
8
|
import { TlvEventFilter, TypeFromSchema } from "#types";
|
|
9
9
|
import { AccessControlServer } from "../../behaviors/access-control/AccessControlServer.js";
|
|
10
10
|
import { ServerNode } from "../ServerNode.js";
|
|
@@ -32,7 +32,7 @@ export declare class TransactionalInteractionServer extends InteractionServer {
|
|
|
32
32
|
version: number;
|
|
33
33
|
value: any;
|
|
34
34
|
}>;
|
|
35
|
-
protected readEvent(path: EventPath, eventFilters: TypeFromSchema<typeof TlvEventFilter>[] | undefined, event: AnyEventServer<any, any>, exchange: MessageExchange, fabricFiltered: boolean, message: Message, endpoint: EndpointInterface): Promise<
|
|
35
|
+
protected readEvent(path: EventPath, eventFilters: TypeFromSchema<typeof TlvEventFilter>[] | undefined, event: AnyEventServer<any, any>, exchange: MessageExchange, fabricFiltered: boolean, message: Message, endpoint: EndpointInterface): Promise<NumberedOccurrence[]>;
|
|
36
36
|
handleWriteRequest(exchange: MessageExchange, writeRequest: WriteRequest, message: Message): Promise<WriteResponse>;
|
|
37
37
|
protected writeAttribute(path: AttributePath, attribute: AttributeServer<any>, value: any, exchange: MessageExchange, message: Message, endpoint: EndpointInterface, timed?: boolean, isListWrite?: boolean): Promise<void>;
|
|
38
38
|
protected invokeCommand(path: CommandPath, command: CommandServer<any, any>, exchange: MessageExchange, commandFields: any, message: Message, endpoint: EndpointInterface, timed?: boolean): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionalInteractionServer.d.ts","sourceRoot":"","sources":["../../../../src/node/server/TransactionalInteractionServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAIjD,OAAO,EAEH,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,eAAe,EACf,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,SAAS,
|
|
1
|
+
{"version":3,"file":"TransactionalInteractionServer.d.ts","sourceRoot":"","sources":["../../../../src/node/server/TransactionalInteractionServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAIjD,OAAO,EAEH,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,eAAe,EACf,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,SAAS,EAET,kBAAkB,EAElB,iBAAiB,EAEjB,OAAO,EACP,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,aAAa,EAChB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAa9C;;;;;;;;;;;GAWG;AACH,qBAAa,8BAA+B,SAAQ,iBAAiB;;WASpD,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,cAAc;gBAa7E,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,kBAAkB;IA8B9E,CAAC,MAAM,CAAC,YAAY,CAAC;IAO3B,gBAAgB;IAID,aAAa,CAAC,QAAQ,EAAE,eAAe;IAiBtD,IAAI,SAAS,wBASZ;cAEwB,aAAa,CAClC,IAAI,EAAE,aAAa,EACnB,SAAS,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAClC,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,UAAQ;;;;cAsBM,SAAS,CAC9B,IAAI,EAAE,SAAS,EACf,YAAY,EAAE,cAAc,CAAC,OAAO,cAAc,CAAC,EAAE,GAAG,SAAS,EACjE,KAAK,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,EAC/B,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,iBAAiB,GAC5B,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAsBjB,kBAAkB,CAC7B,QAAQ,EAAE,eAAe,EACzB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC,aAAa,CAAC;cAkCA,cAAc,CACnC,IAAI,EAAE,aAAa,EACnB,SAAS,EAAE,eAAe,CAAC,GAAG,CAAC,EAC/B,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,UAAQ,EACb,WAAW,CAAC,EAAE,OAAO;cAoCA,aAAa,CAClC,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,EAChC,QAAQ,EAAE,eAAe,EACzB,aAAa,EAAE,GAAG,EAClB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,UAAQ;;;;yBAzJ2C,QAAO;;CA6LtE"}
|
|
@@ -53,8 +53,8 @@ import { NodeActivity } from "#behavior/context/NodeActivity.js";
|
|
|
53
53
|
import { OfflineContext } from "#behavior/context/server/OfflineContext.js";
|
|
54
54
|
import { OnlineContext } from "#behavior/context/server/OnlineContext.js";
|
|
55
55
|
import { AccessControlCluster } from "#clusters/access-control";
|
|
56
|
-
import { EndpointServer } from "#endpoint/EndpointServer.js";
|
|
57
56
|
import { EndpointLifecycle } from "#endpoint/properties/EndpointLifecycle.js";
|
|
57
|
+
import { EndpointServer } from "#endpoint/server/EndpointServer.js";
|
|
58
58
|
import { Diagnostic, InternalError, Logger, MaybePromise } from "#general";
|
|
59
59
|
import {
|
|
60
60
|
AccessDeniedError,
|
|
@@ -93,11 +93,14 @@ class TransactionalInteractionServer extends InteractionServer {
|
|
|
93
93
|
this.#endpoint = endpoint;
|
|
94
94
|
this.#endpointStructure = structure;
|
|
95
95
|
this.#updateStructure();
|
|
96
|
-
this.#changeListener = (type) => {
|
|
96
|
+
this.#changeListener = (type, endpoint2) => {
|
|
97
97
|
switch (type) {
|
|
98
|
+
case EndpointLifecycle.Change.ServersChanged:
|
|
99
|
+
EndpointServer.forEndpoint(endpoint2).updateServers();
|
|
100
|
+
this.#updateStructure();
|
|
101
|
+
break;
|
|
98
102
|
case EndpointLifecycle.Change.PartsReady:
|
|
99
103
|
case EndpointLifecycle.Change.ClientsChanged:
|
|
100
|
-
case EndpointLifecycle.Change.ServersChanged:
|
|
101
104
|
case EndpointLifecycle.Change.Destroyed:
|
|
102
105
|
this.#updateStructure();
|
|
103
106
|
break;
|
|
@@ -109,6 +112,7 @@ class TransactionalInteractionServer extends InteractionServer {
|
|
|
109
112
|
this.#endpoint.lifecycle.changed.off(this.#changeListener);
|
|
110
113
|
await this.close();
|
|
111
114
|
this.#endpointStructure.close();
|
|
115
|
+
await EndpointServer.forEndpoint(this.#endpoint)[Symbol.asyncDispose]();
|
|
112
116
|
}
|
|
113
117
|
blockNewActivity() {
|
|
114
118
|
this.#newActivityBlocked = true;
|
|
@@ -254,7 +258,8 @@ class TransactionalInteractionServer extends InteractionServer {
|
|
|
254
258
|
}
|
|
255
259
|
#updateStructure() {
|
|
256
260
|
if (this.#endpoint.lifecycle.isPartsReady) {
|
|
257
|
-
|
|
261
|
+
const server = EndpointServer.forEndpoint(this.#endpoint);
|
|
262
|
+
this.#endpointStructure.initializeFromEndpoint(server);
|
|
258
263
|
}
|
|
259
264
|
}
|
|
260
265
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/node/server/TransactionalInteractionServer.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,oBAAoB;AAC7B,SAAS,oBAAoB;AAC7B,SAAS,sBAAsB;AAC/B,SAAS,qBAAqB;AAC9B,SAAS,4BAA4B;AAErC,SAAS,sBAAsB;AAC/B,SAAS,
|
|
5
|
-
"names": []
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["endpoint"]
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/node/server/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/node/server/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,qCAAqC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/node",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0-alpha.0-20241213-fcd71a96d",
|
|
4
4
|
"description": "API for building Matter nodes",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -43,14 +43,14 @@
|
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@noble/curves": "^1.7.0",
|
|
46
|
-
"@matter/general": "0.
|
|
47
|
-
"@matter/model": "0.
|
|
48
|
-
"@matter/types": "0.
|
|
49
|
-
"@matter/protocol": "0.
|
|
46
|
+
"@matter/general": "0.12.0-alpha.0-20241213-fcd71a96d",
|
|
47
|
+
"@matter/model": "0.12.0-alpha.0-20241213-fcd71a96d",
|
|
48
|
+
"@matter/types": "0.12.0-alpha.0-20241213-fcd71a96d",
|
|
49
|
+
"@matter/protocol": "0.12.0-alpha.0-20241213-fcd71a96d"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"@matter/tools": "0.
|
|
53
|
-
"@matter/testing": "0.
|
|
52
|
+
"@matter/tools": "0.12.0-alpha.0-20241213-fcd71a96d",
|
|
53
|
+
"@matter/testing": "0.12.0-alpha.0-20241213-fcd71a96d"
|
|
54
54
|
},
|
|
55
55
|
"files": [
|
|
56
56
|
"dist/**/*",
|
|
@@ -4,10 +4,12 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import type { Agent } from "#endpoint/Agent.js";
|
|
8
8
|
import type { Endpoint } from "#endpoint/Endpoint.js";
|
|
9
9
|
import { BehaviorInitializationError } from "#endpoint/errors.js";
|
|
10
|
+
import type { SupportedElements } from "#endpoint/properties/Behaviors.js";
|
|
10
11
|
import { Construction, EventEmitter, ImplementationError, Lifecycle, Logger, MaybePromise, Observable } from "#general";
|
|
12
|
+
import type { ClusterId } from "@matter/types";
|
|
11
13
|
import type { Behavior } from "../Behavior.js";
|
|
12
14
|
import { Reactor } from "../Reactor.js";
|
|
13
15
|
import { Datasource } from "../state/managed/Datasource.js";
|
|
@@ -166,6 +168,7 @@ export abstract class BehaviorBacking {
|
|
|
166
168
|
defaults: this.#endpoint.behaviors.defaultsFor(this.type),
|
|
167
169
|
store: this.store,
|
|
168
170
|
owner: this.#endpoint,
|
|
171
|
+
cluster: this.type.schema?.tag === "cluster" ? (this.type.schema.id as ClusterId) : undefined,
|
|
169
172
|
};
|
|
170
173
|
}
|
|
171
174
|
|
|
@@ -209,6 +212,11 @@ export abstract class BehaviorBacking {
|
|
|
209
212
|
return this.#datasource?.view ?? {};
|
|
210
213
|
}
|
|
211
214
|
|
|
215
|
+
/**
|
|
216
|
+
* Supported elements.
|
|
217
|
+
*/
|
|
218
|
+
abstract readonly elements: SupportedElements | undefined;
|
|
219
|
+
|
|
212
220
|
/**
|
|
213
221
|
* Install a reactor.
|
|
214
222
|
*/
|
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
import { Behavior } from "#behavior/Behavior.js";
|
|
8
8
|
import { Datasource } from "#behavior/state/managed/Datasource.js";
|
|
9
9
|
import { Endpoint } from "#endpoint/Endpoint.js";
|
|
10
|
-
import { EndpointStore } from "#endpoint/index.js";
|
|
10
|
+
import { EndpointStore, SupportedElements } from "#endpoint/index.js";
|
|
11
|
+
import { NotImplementedError } from "@matter/general";
|
|
11
12
|
import { BehaviorBacking } from "./BehaviorBacking.js";
|
|
12
13
|
|
|
13
14
|
/**
|
|
@@ -21,4 +22,8 @@ export class ClientBehaviorBacking extends BehaviorBacking {
|
|
|
21
22
|
|
|
22
23
|
this.store = endpointStore.storeForBehavior(behavior.id);
|
|
23
24
|
}
|
|
25
|
+
|
|
26
|
+
get elements(): SupportedElements | undefined {
|
|
27
|
+
throw new NotImplementedError();
|
|
28
|
+
}
|
|
24
29
|
}
|
|
@@ -4,19 +4,27 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
+
import { ClusterBehavior } from "#behavior/cluster/ClusterBehavior.js";
|
|
8
|
+
import { GlobalAttributeState } from "#behavior/cluster/ClusterState.js";
|
|
9
|
+
import { ValidatedElements } from "#behavior/cluster/ValidatedElements.js";
|
|
10
|
+
import type { SupportedElements } from "#endpoint/index.js";
|
|
7
11
|
import { camelize } from "#general";
|
|
8
12
|
import { FieldValue } from "#model";
|
|
9
13
|
import { ServerNodeStore } from "#node/storage/ServerNodeStore.js";
|
|
14
|
+
import { ClusterType, TlvNoResponse } from "#types";
|
|
10
15
|
import { Behavior } from "../Behavior.js";
|
|
11
16
|
import { Val } from "../state/Val.js";
|
|
12
17
|
import { Datasource } from "../state/managed/Datasource.js";
|
|
13
18
|
import { BehaviorBacking } from "./BehaviorBacking.js";
|
|
14
19
|
|
|
20
|
+
const NoElements = new Set<string>();
|
|
21
|
+
|
|
15
22
|
/**
|
|
16
23
|
* This class backs the server implementation of a behavior.
|
|
17
24
|
*/
|
|
18
25
|
export class ServerBehaviorBacking extends BehaviorBacking {
|
|
19
26
|
#store?: Datasource.Store;
|
|
27
|
+
#elements?: SupportedElements;
|
|
20
28
|
|
|
21
29
|
override get store() {
|
|
22
30
|
if (!this.#store) {
|
|
@@ -27,10 +35,24 @@ export class ServerBehaviorBacking extends BehaviorBacking {
|
|
|
27
35
|
return this.#store;
|
|
28
36
|
}
|
|
29
37
|
|
|
38
|
+
get elements() {
|
|
39
|
+
return this.#elements;
|
|
40
|
+
}
|
|
41
|
+
|
|
30
42
|
protected override invokeInitializer(behavior: Behavior, options?: Behavior.Options) {
|
|
31
43
|
const finalizeState = () => {
|
|
32
44
|
this.#applyTransitiveDefaults(behavior.state);
|
|
33
45
|
|
|
46
|
+
if (behavior instanceof ClusterBehavior) {
|
|
47
|
+
this.#configureElements(behavior);
|
|
48
|
+
} else {
|
|
49
|
+
this.#elements = {
|
|
50
|
+
attributes: NoElements,
|
|
51
|
+
commands: NoElements,
|
|
52
|
+
events: NoElements,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
|
|
34
56
|
// State must now conform to the schema. Validate the behavior's state rather than internal state
|
|
35
57
|
// because the behavior likely has uncommitted changes
|
|
36
58
|
const context = behavior.context;
|
|
@@ -72,4 +94,33 @@ export class ServerBehaviorBacking extends BehaviorBacking {
|
|
|
72
94
|
}
|
|
73
95
|
}
|
|
74
96
|
}
|
|
97
|
+
|
|
98
|
+
#configureElements(behavior: ClusterBehavior) {
|
|
99
|
+
// Validate
|
|
100
|
+
const validation = new ValidatedElements(behavior.constructor as ClusterBehavior.Type, behavior);
|
|
101
|
+
validation.report();
|
|
102
|
+
|
|
103
|
+
const globals = behavior.state as GlobalAttributeState;
|
|
104
|
+
|
|
105
|
+
// Update attribute list
|
|
106
|
+
const attributeDefs = behavior.cluster.attributes as ClusterType.ElementSet<ClusterType.Attribute>;
|
|
107
|
+
globals.attributeList = [...validation.attributes].map(name => attributeDefs[name].id);
|
|
108
|
+
|
|
109
|
+
// Update accepted & generated command lists
|
|
110
|
+
const commandDefs = behavior.cluster.commands as ClusterType.ElementSet<ClusterType.Command>;
|
|
111
|
+
const commands = [...validation.commands].map(name => commandDefs[name]);
|
|
112
|
+
globals.acceptedCommandList = commands.map(command => command.requestId);
|
|
113
|
+
globals.generatedCommandList = [
|
|
114
|
+
...new Set(
|
|
115
|
+
commands.filter(command => command.responseSchema !== TlvNoResponse).map(command => command.responseId),
|
|
116
|
+
),
|
|
117
|
+
];
|
|
118
|
+
|
|
119
|
+
// Load public API
|
|
120
|
+
this.#elements = {
|
|
121
|
+
attributes: validation.attributes,
|
|
122
|
+
commands: validation.commands,
|
|
123
|
+
events: validation.events,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
75
126
|
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { deepCopy, StorageManager } from "#general";
|
|
8
|
+
import { DatatypeModel, FieldElement } from "#model";
|
|
9
|
+
import { NonvolatileEventStore, OccurrenceManager, VolatileEventStore } from "#protocol";
|
|
10
|
+
import { Behavior } from "../../Behavior.js";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Event handling configuration.
|
|
14
|
+
*/
|
|
15
|
+
export class EventsBehavior extends Behavior {
|
|
16
|
+
static override readonly id = "events";
|
|
17
|
+
static override early = true;
|
|
18
|
+
|
|
19
|
+
declare state: EventsBehavior.State;
|
|
20
|
+
|
|
21
|
+
override initialize() {
|
|
22
|
+
const storage = this.env.get(StorageManager).createContext("events");
|
|
23
|
+
let store;
|
|
24
|
+
if (this.state.nonvolatile) {
|
|
25
|
+
store = new NonvolatileEventStore(storage);
|
|
26
|
+
} else {
|
|
27
|
+
store = new VolatileEventStore(storage, this.state.numberBlockSize);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
this.env.set(OccurrenceManager, new OccurrenceManager({ store, bufferConfig: this.state.buffers }));
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
static override schema = new DatatypeModel(
|
|
34
|
+
{
|
|
35
|
+
name: "EventsState",
|
|
36
|
+
type: "struct",
|
|
37
|
+
},
|
|
38
|
+
FieldElement({ name: "nonvolatile", type: "bool" }),
|
|
39
|
+
FieldElement({ name: "numberBlockSize", type: "uint16" }),
|
|
40
|
+
FieldElement(
|
|
41
|
+
{ name: "buffer", type: "struct" },
|
|
42
|
+
FieldElement({ name: "minEventAllowance", type: "uint32" }),
|
|
43
|
+
FieldElement({ name: "maxEventAllowance", type: "uint32" }),
|
|
44
|
+
FieldElement(
|
|
45
|
+
{ name: "minPriorityEventAllowance", type: "struct" },
|
|
46
|
+
FieldElement({ name: "critical", type: "uint32" }),
|
|
47
|
+
FieldElement({ name: "info", type: "uint32" }),
|
|
48
|
+
FieldElement({ name: "debug", type: "uint32" }),
|
|
49
|
+
),
|
|
50
|
+
),
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export namespace EventsBehavior {
|
|
55
|
+
export class State {
|
|
56
|
+
nonvolatile = false;
|
|
57
|
+
numberBlockSize = 1_000;
|
|
58
|
+
buffers = deepCopy(OccurrenceManager.DefaultBufferConfig);
|
|
59
|
+
}
|
|
60
|
+
}
|