@matter/node 0.15.0-alpha.0-20250612-ddd428561 → 0.15.0-alpha.0-20250613-a55f991d4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/behavior/cluster/FabricScopedDataHandler.d.ts +16 -0
- package/dist/cjs/behavior/cluster/FabricScopedDataHandler.d.ts.map +1 -0
- package/dist/cjs/behavior/cluster/FabricScopedDataHandler.js +119 -0
- package/dist/cjs/behavior/cluster/FabricScopedDataHandler.js.map +6 -0
- package/dist/cjs/behavior/cluster/index.d.ts +1 -0
- package/dist/cjs/behavior/cluster/index.d.ts.map +1 -1
- package/dist/cjs/behavior/cluster/index.js +1 -0
- package/dist/cjs/behavior/cluster/index.js.map +1 -1
- package/dist/cjs/endpoint/properties/Behaviors.d.ts.map +1 -1
- package/dist/cjs/endpoint/properties/Behaviors.js +10 -0
- package/dist/cjs/endpoint/properties/Behaviors.js.map +1 -1
- package/dist/cjs/node/ServerNode.d.ts +2 -2
- package/dist/cjs/node/ServerNode.d.ts.map +1 -1
- package/dist/cjs/node/ServerNode.js +2 -2
- package/dist/cjs/node/server/ServerEnvironment.d.ts +3 -0
- package/dist/cjs/node/server/ServerEnvironment.d.ts.map +1 -1
- package/dist/cjs/node/server/ServerEnvironment.js +12 -2
- package/dist/cjs/node/server/ServerEnvironment.js.map +1 -1
- package/dist/esm/behavior/cluster/FabricScopedDataHandler.d.ts +16 -0
- package/dist/esm/behavior/cluster/FabricScopedDataHandler.d.ts.map +1 -0
- package/dist/esm/behavior/cluster/FabricScopedDataHandler.js +99 -0
- package/dist/esm/behavior/cluster/FabricScopedDataHandler.js.map +6 -0
- package/dist/esm/behavior/cluster/index.d.ts +1 -0
- package/dist/esm/behavior/cluster/index.d.ts.map +1 -1
- package/dist/esm/behavior/cluster/index.js +1 -0
- package/dist/esm/behavior/cluster/index.js.map +1 -1
- package/dist/esm/endpoint/properties/Behaviors.d.ts.map +1 -1
- package/dist/esm/endpoint/properties/Behaviors.js +10 -0
- package/dist/esm/endpoint/properties/Behaviors.js.map +1 -1
- package/dist/esm/node/ServerNode.d.ts +2 -2
- package/dist/esm/node/ServerNode.d.ts.map +1 -1
- package/dist/esm/node/ServerNode.js +3 -3
- package/dist/esm/node/ServerNode.js.map +1 -1
- package/dist/esm/node/server/ServerEnvironment.d.ts +3 -0
- package/dist/esm/node/server/ServerEnvironment.d.ts.map +1 -1
- package/dist/esm/node/server/ServerEnvironment.js +12 -2
- package/dist/esm/node/server/ServerEnvironment.js.map +1 -1
- package/package.json +7 -7
- package/src/behavior/cluster/FabricScopedDataHandler.ts +142 -0
- package/src/behavior/cluster/index.ts +1 -0
- package/src/endpoint/properties/Behaviors.ts +12 -1
- package/src/node/ServerNode.ts +3 -3
- package/src/node/server/ServerEnvironment.ts +16 -2
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Endpoint } from "#endpoint/Endpoint.js";
|
|
7
|
+
import { ServerNode } from "#node/ServerNode.js";
|
|
8
|
+
import { FabricIndex } from "#types";
|
|
9
|
+
/**
|
|
10
|
+
* Sanitize Fabric scoped data and events to a list of allowed fabrics.
|
|
11
|
+
* The logic walks through all endpoints and removes relevant fabric-scoped attribute values for the relevant fabric
|
|
12
|
+
* from the state. After all state changes are processed, it removes all occurrences of fabric-scoped events.
|
|
13
|
+
*/
|
|
14
|
+
export declare function limitNodeDataToAllowedFabrics(node: ServerNode, allowedIndices: FabricIndex[]): Promise<void>;
|
|
15
|
+
export declare function limitEndpointAttributeDataToAllowedFabrics(endpoint: Endpoint, allowedIndices: FabricIndex[]): Promise<void>;
|
|
16
|
+
//# sourceMappingURL=FabricScopedDataHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FabricScopedDataHandler.d.ts","sourceRoot":"","sources":["../../../../src/behavior/cluster/FabricScopedDataHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAe,WAAW,EAAgB,MAAM,QAAQ,CAAC;AAoEhE;;;;GAIG;AACH,wBAAsB,6BAA6B,CAAC,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,iBA0ClG;AAED,wBAAsB,0CAA0C,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,iBAYjH"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var FabricScopedDataHandler_exports = {};
|
|
20
|
+
__export(FabricScopedDataHandler_exports, {
|
|
21
|
+
limitEndpointAttributeDataToAllowedFabrics: () => limitEndpointAttributeDataToAllowedFabrics,
|
|
22
|
+
limitNodeDataToAllowedFabrics: () => limitNodeDataToAllowedFabrics
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(FabricScopedDataHandler_exports);
|
|
25
|
+
var import_general = require("#general");
|
|
26
|
+
var import_protocol = require("#protocol");
|
|
27
|
+
/**
|
|
28
|
+
* @license
|
|
29
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
30
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
31
|
+
*/
|
|
32
|
+
const logger = import_general.Logger.get("FabricScopedDataHandler");
|
|
33
|
+
async function forBehaviors(endpoint, callback) {
|
|
34
|
+
for (const type of Object.values(endpoint.behaviors.supported)) {
|
|
35
|
+
const cluster = type?.cluster;
|
|
36
|
+
if (!cluster) {
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
const elements = endpoint.behaviors.elementsOf(type);
|
|
40
|
+
if (elements.attributes.size || elements.events.size) {
|
|
41
|
+
await callback(type, cluster, elements);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
async function sanitizeAttributeData(endpoint, type, cluster, supportedAttributes, allowedIndices) {
|
|
46
|
+
const stateUpdatePromises = new Array();
|
|
47
|
+
const stateUpdate = {};
|
|
48
|
+
for (const attributeName of supportedAttributes) {
|
|
49
|
+
const attr = cluster.attributes[attributeName];
|
|
50
|
+
if (attr.fabricScoped) {
|
|
51
|
+
const value = endpoint.stateOf(type)[attributeName];
|
|
52
|
+
if (Array.isArray(value) && value.length > 0) {
|
|
53
|
+
const filtered = (0, import_general.deepCopy)(value).filter((entry) => allowedIndices.includes(entry.fabricIndex));
|
|
54
|
+
if (filtered.length !== value.length) {
|
|
55
|
+
stateUpdate[attributeName] = filtered;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (Object.keys(stateUpdate).length > 0) {
|
|
61
|
+
const { resolver, promise } = (0, import_general.createPromise)();
|
|
62
|
+
endpoint.eventsOf(type).stateChanged?.on(resolver);
|
|
63
|
+
try {
|
|
64
|
+
await endpoint.setStateOf(type, stateUpdate);
|
|
65
|
+
stateUpdatePromises.push((0, import_general.withTimeout)(5e3, promise));
|
|
66
|
+
} catch (error) {
|
|
67
|
+
logger.warn(
|
|
68
|
+
`Could not sanitize fabric-scoped attributes for cluster ${cluster.name} on endpoint ${endpoint.id}`,
|
|
69
|
+
error
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return stateUpdatePromises;
|
|
74
|
+
}
|
|
75
|
+
async function limitNodeDataToAllowedFabrics(node, allowedIndices) {
|
|
76
|
+
const fabricRelevantEvents = /* @__PURE__ */ new Set();
|
|
77
|
+
const stateUpdatePromises = new Array();
|
|
78
|
+
await node.visit(async (endpoint) => {
|
|
79
|
+
await forBehaviors(endpoint, async (type, cluster, elements) => {
|
|
80
|
+
if (elements.attributes.size) {
|
|
81
|
+
stateUpdatePromises.push(
|
|
82
|
+
...await sanitizeAttributeData(endpoint, type, cluster, elements.attributes, allowedIndices)
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
if (elements.events.size) {
|
|
86
|
+
for (const eventName of elements.events) {
|
|
87
|
+
const event = cluster.events[eventName];
|
|
88
|
+
if (event.schema.isFabricScoped) {
|
|
89
|
+
fabricRelevantEvents.add(`${cluster.id}-${event.id}`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
await Promise.allSettled(stateUpdatePromises);
|
|
96
|
+
if (fabricRelevantEvents.size > 0) {
|
|
97
|
+
const occurrences = node.env.get(import_protocol.OccurrenceManager);
|
|
98
|
+
for await (const event of occurrences.get()) {
|
|
99
|
+
if (fabricRelevantEvents.has(`${event.clusterId}-${event.eventId}`) && (0, import_general.isObject)(event.payload) && !allowedIndices.includes(event.payload.fabricIndex)) {
|
|
100
|
+
const result = occurrences.remove(event.number);
|
|
101
|
+
if (import_general.MaybePromise.is(result)) {
|
|
102
|
+
await result;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
async function limitEndpointAttributeDataToAllowedFabrics(endpoint, allowedIndices) {
|
|
109
|
+
const stateUpdatePromises = new Array();
|
|
110
|
+
await forBehaviors(endpoint, async (type, cluster, elements) => {
|
|
111
|
+
if (elements.attributes.size) {
|
|
112
|
+
stateUpdatePromises.push(
|
|
113
|
+
...await sanitizeAttributeData(endpoint, type, cluster, elements.attributes, allowedIndices)
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
await Promise.allSettled(stateUpdatePromises);
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=FabricScopedDataHandler.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/behavior/cluster/FabricScopedDataHandler.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -8,5 +8,6 @@ export * from "./ClusterBehaviorUtil.js";
|
|
|
8
8
|
export * from "./ClusterEvents.js";
|
|
9
9
|
export * from "./ClusterInterface.js";
|
|
10
10
|
export * from "./ClusterState.js";
|
|
11
|
+
export * from "./FabricScopedDataHandler.js";
|
|
11
12
|
export * from "./ValidatedElements.js";
|
|
12
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/behavior/cluster/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/behavior/cluster/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC"}
|
|
@@ -20,6 +20,7 @@ __reExport(cluster_exports, require("./ClusterBehaviorUtil.js"), module.exports)
|
|
|
20
20
|
__reExport(cluster_exports, require("./ClusterEvents.js"), module.exports);
|
|
21
21
|
__reExport(cluster_exports, require("./ClusterInterface.js"), module.exports);
|
|
22
22
|
__reExport(cluster_exports, require("./ClusterState.js"), module.exports);
|
|
23
|
+
__reExport(cluster_exports, require("./FabricScopedDataHandler.js"), module.exports);
|
|
23
24
|
__reExport(cluster_exports, require("./ValidatedElements.js"), module.exports);
|
|
24
25
|
/**
|
|
25
26
|
* @license
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/behavior/cluster/index.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,4BAAc,iCANd;AAOA,4BAAc,qCAPd;AAQA,4BAAc,+BARd;AASA,4BAAc,kCATd;AAUA,4BAAc,8BAVd;AAWA,4BAAc,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,4BAAc,iCANd;AAOA,4BAAc,qCAPd;AAQA,4BAAc,+BARd;AASA,4BAAc,kCATd;AAUA,4BAAc,8BAVd;AAWA,4BAAc,yCAXd;AAYA,4BAAc,mCAZd;AAAA;AAAA;AAAA;AAAA;AAAA;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Behaviors.d.ts","sourceRoot":"","sources":["../../../../src/endpoint/properties/Behaviors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"Behaviors.d.ts","sourceRoot":"","sources":["../../../../src/endpoint/properties/Behaviors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAQjD,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACnE,OAAO,EAIH,UAAU,EAGV,SAAS,EAET,YAAY,EAEf,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,mBAAmB,EAAiB,GAAG,EAAE,MAAM,WAAW,CAAC;AAGpE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAK/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAIlE,MAAM,WAAW,iBAAiB;IAC9B,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,SAAS;;IAOlB;;OAEG;IACH,IAAI,SAAS,uBAEZ;IAED,IAAI,MAAM,qCAMT;IAED,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,iBAErB;IAED,IAAI,kBAAkB,mBAyErB;gBAEW,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IA2B3E;;;;;;OAMG;IACH,UAAU,IAAI,YAAY;IAsE1B;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;IAKpC;;OAEG;IACH,OAAO,CAAC,CAAC,SAAS,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IA4BvE;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK;IAY5C;;OAEG;IACG,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK;IAgBnD;;;;;OAKG;IACH,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC;IAiC3E;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK;IAM1C;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI;IAK5B;;OAEG;IACG,KAAK;IA0CX;;OAEG;IACH,oBAAoB,CAAC,YAAY,CAAC,EAAE,kBAAkB;IAoCtD;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI;IA0B/B;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI;IAI9B;;;;;;;;OAQG;IACH,WAAW,CAAC,CAAC,SAAS,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,GAER,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAG/D;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI;IAK7B;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,iBAAiB;IAelD,CAAC,MAAM,CAAC,QAAQ,CAAC;IA8BjB;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI;CA4FvC;AAMD,yBAAiB,SAAS,CAAC;IACvB,UAAiB,eAAe;QAC5B,UAAU,EAAE,mBAAmB,CAAC;QAChC,UAAU,EAAE,UAAU,CAAC;KAC1B;CACJ"}
|
|
@@ -22,11 +22,13 @@ __export(Behaviors_exports, {
|
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(Behaviors_exports);
|
|
24
24
|
var import_Behavior = require("#behavior/Behavior.js");
|
|
25
|
+
var import_FabricScopedDataHandler = require("#behavior/cluster/FabricScopedDataHandler.js");
|
|
25
26
|
var import_NodeActivity = require("#behavior/context/NodeActivity.js");
|
|
26
27
|
var import_OfflineContext = require("#behavior/context/server/OfflineContext.js");
|
|
27
28
|
var import_general = require("#general");
|
|
28
29
|
var import_model = require("#model");
|
|
29
30
|
var import_ProtocolService = require("#node/server/ProtocolService.js");
|
|
31
|
+
var import_protocol = require("#protocol");
|
|
30
32
|
var import_types = require("#types");
|
|
31
33
|
var import_DescriptorServer = require("../../behaviors/descriptor/DescriptorServer.js");
|
|
32
34
|
var import_EndpointVariableService = require("../EndpointVariableService.js");
|
|
@@ -181,6 +183,14 @@ class Behaviors {
|
|
|
181
183
|
} else {
|
|
182
184
|
promise2 = endpointInitializer.behaviorsInitialized(agent);
|
|
183
185
|
}
|
|
186
|
+
if (this.#endpoint.env.has(import_protocol.FabricManager)) {
|
|
187
|
+
const fabricIndices = this.#endpoint.env.get(import_protocol.FabricManager).fabrics.map((fabric) => fabric.fabricIndex);
|
|
188
|
+
if (fabricIndices.length > 0) {
|
|
189
|
+
return (0, import_FabricScopedDataHandler.limitEndpointAttributeDataToAllowedFabrics)(this.#endpoint, fabricIndices).then(
|
|
190
|
+
() => promise2
|
|
191
|
+
);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
184
194
|
return promise2;
|
|
185
195
|
};
|
|
186
196
|
const activity = this.#endpoint.env.get(import_NodeActivity.NodeActivity);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/endpoint/properties/Behaviors.ts"],
|
|
4
|
-
"mappings": "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",
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["name", "type", "promise"]
|
|
6
6
|
}
|
|
@@ -69,9 +69,9 @@ export declare class ServerNode<T extends ServerNode.RootEndpoint = ServerNode.R
|
|
|
69
69
|
advertiseNow(): Promise<void>;
|
|
70
70
|
protected initialize(): Promise<void>;
|
|
71
71
|
/**
|
|
72
|
-
* By default on factory reset we erase all stored data.
|
|
72
|
+
* By default, on factory reset we erase all stored data.
|
|
73
73
|
*
|
|
74
|
-
* If this is inappropriate for your application you may override to alter the behavior.
|
|
74
|
+
* If this is inappropriate for your application, you may override to alter the behavior. Matter requires that all
|
|
75
75
|
* "security- and privacy-related data and key material" is removed on factory reset.
|
|
76
76
|
*
|
|
77
77
|
* @see {@link MatterSpecification.v12.Core} § 13.4
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerNode.d.ts","sourceRoot":"","sources":["../../../src/node/ServerNode.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,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;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uDAAuD,CAAC;AAG7F,OAAO,
|
|
1
|
+
{"version":3,"file":"ServerNode.d.ts","sourceRoot":"","sources":["../../../src/node/ServerNode.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,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;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uDAAuD,CAAC;AAG7F,OAAO,EAAY,YAAY,EAA6B,QAAQ,EAAe,MAAM,UAAU,CAAC;AACpG,OAAO,EAAiB,YAAY,EAAwD,MAAM,WAAW,CAAC;AAE9G,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;;IAIhG;;;;;;;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;IAED,IAAI,WAAW,gCAKd;IAEK,YAAY;cAIO,UAAU;IAMnC;;;;;;;OAOG;cACa,YAAY;IAO5B;;;OAGG;cACgB,mBAAmB;CACzC;AAED,yBAAiB,UAAU,CAAC;IACjB,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6MAQxB,CAAC;IAEF,UAAiB,YAAa,SAAQ,QAAQ,CAAC,OAAO,YAAY,CAAC;KAAG;CACzE"}
|
|
@@ -121,9 +121,9 @@ class ServerNode extends import_Node.Node {
|
|
|
121
121
|
await super.initialize();
|
|
122
122
|
}
|
|
123
123
|
/**
|
|
124
|
-
* By default on factory reset we erase all stored data.
|
|
124
|
+
* By default, on factory reset we erase all stored data.
|
|
125
125
|
*
|
|
126
|
-
* If this is inappropriate for your application you may override to alter the behavior.
|
|
126
|
+
* If this is inappropriate for your application, you may override to alter the behavior. Matter requires that all
|
|
127
127
|
* "security- and privacy-related data and key material" is removed on factory reset.
|
|
128
128
|
*
|
|
129
129
|
* @see {@link MatterSpecification.v12.Core} § 13.4
|
|
@@ -3,11 +3,14 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { Observable } from "#general";
|
|
6
7
|
import type { ServerNode } from "#node/ServerNode.js";
|
|
7
8
|
/**
|
|
8
9
|
* Manages the environment of a server.
|
|
9
10
|
*/
|
|
10
11
|
export declare namespace ServerEnvironment {
|
|
12
|
+
/** Emits the fabric-scoped data are sanitized after the removal of a fabric. Only use for testing! */
|
|
13
|
+
const fabricScopedDataSanitized: Observable<any[], void>;
|
|
11
14
|
function initialize(node: ServerNode): Promise<void>;
|
|
12
15
|
function close(node: ServerNode): Promise<void>;
|
|
13
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerEnvironment.d.ts","sourceRoot":"","sources":["../../../../src/node/server/ServerEnvironment.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"ServerEnvironment.d.ts","sourceRoot":"","sources":["../../../../src/node/server/ServerEnvironment.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAKtD;;GAEG;AACH,yBAAiB,iBAAiB,CAAC;IAC/B,sGAAsG;IAC/F,MAAM,yBAAyB,yBAAe,CAAC;IAEtD,SAAsB,UAAU,CAAC,IAAI,EAAE,UAAU,iBAoBhD;IAED,SAAsB,KAAK,CAAC,IAAI,EAAE,UAAU,iBAM3C;CACJ"}
|
|
@@ -21,10 +21,12 @@ __export(ServerEnvironment_exports, {
|
|
|
21
21
|
ServerEnvironment: () => ServerEnvironment
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(ServerEnvironment_exports);
|
|
24
|
+
var import_FabricScopedDataHandler = require("#behavior/cluster/FabricScopedDataHandler.js");
|
|
24
25
|
var import_endpoint = require("#endpoint/index.js");
|
|
26
|
+
var import_ServerEndpointInitializer = require("#endpoint/server/ServerEndpointInitializer.js");
|
|
27
|
+
var import_general = require("#general");
|
|
25
28
|
var import_ServerNodeStore = require("#node/storage/ServerNodeStore.js");
|
|
26
29
|
var import_protocol = require("#protocol");
|
|
27
|
-
var import_ServerEndpointInitializer = require("../../endpoint/server/ServerEndpointInitializer.js");
|
|
28
30
|
var import_IdentityService = require("./IdentityService.js");
|
|
29
31
|
/**
|
|
30
32
|
* @license
|
|
@@ -33,12 +35,20 @@ var import_IdentityService = require("./IdentityService.js");
|
|
|
33
35
|
*/
|
|
34
36
|
var ServerEnvironment;
|
|
35
37
|
((ServerEnvironment2) => {
|
|
38
|
+
ServerEnvironment2.fabricScopedDataSanitized = (0, import_general.Observable)();
|
|
36
39
|
async function initialize(node) {
|
|
37
40
|
const { env } = node;
|
|
38
41
|
env.set(import_ServerNodeStore.ServerNodeStore, await import_ServerNodeStore.ServerNodeStore.create(env, node.id));
|
|
39
42
|
env.set(import_endpoint.EndpointInitializer, new import_ServerEndpointInitializer.ServerEndpointInitializer(env));
|
|
40
43
|
env.set(import_IdentityService.IdentityService, new import_IdentityService.IdentityService(node));
|
|
41
|
-
await env.load(import_protocol.FabricManager);
|
|
44
|
+
const fabrics = await env.load(import_protocol.FabricManager);
|
|
45
|
+
fabrics.events.deleted.on(async () => {
|
|
46
|
+
const fabricIndices = fabrics.fabrics.map((fabric) => fabric.fabricIndex);
|
|
47
|
+
if (fabricIndices.length > 0) {
|
|
48
|
+
await (0, import_FabricScopedDataHandler.limitNodeDataToAllowedFabrics)(node, fabricIndices);
|
|
49
|
+
}
|
|
50
|
+
ServerEnvironment2.fabricScopedDataSanitized.emit();
|
|
51
|
+
});
|
|
42
52
|
await env.load(import_protocol.SessionManager);
|
|
43
53
|
}
|
|
44
54
|
ServerEnvironment2.initialize = initialize;
|
|
@@ -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,sBAAoC;
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qCAA8C;AAC9C,sBAAoC;AACpC,uCAA0C;AAC1C,qBAA2B;AAE3B,6BAAgC;AAChC,sBAA8C;AAC9C,6BAAgC;AAbhC;AAAA;AAAA;AAAA;AAAA;AAkBO,IAAU;AAAA,CAAV,CAAUA,uBAAV;AAEI,EAAMA,mBAAA,gCAA4B,2BAAW;AAEpD,iBAAsB,WAAW,MAAkB;AAC/C,UAAM,EAAE,IAAI,IAAI;AAGhB,QAAI,IAAI,wCAAiB,MAAM,uCAAgB,OAAO,KAAK,KAAK,EAAE,CAAC;AACnE,QAAI,IAAI,qCAAqB,IAAI,2DAA0B,GAAG,CAAC;AAC/D,QAAI,IAAI,wCAAiB,IAAI,uCAAgB,IAAI,CAAC;AAGlD,UAAM,UAAU,MAAM,IAAI,KAAK,6BAAa;AAE5C,YAAQ,OAAO,QAAQ,GAAG,YAAY;AAClC,YAAM,gBAAgB,QAAQ,QAAQ,IAAI,YAAU,OAAO,WAAW;AACtE,UAAI,cAAc,SAAS,GAAG;AAC1B,kBAAM,8DAA8B,MAAM,aAAa;AAAA,MAC3D;AACA,MAAAA,mBAAA,0BAA0B,KAAK;AAAA,IACnC,CAAC;AAED,UAAM,IAAI,KAAK,8BAAc;AAAA,EACjC;AApBA,EAAAA,mBAAsB;AAsBtB,iBAAsB,MAAM,MAAkB;AAC1C,UAAM,EAAE,IAAI,IAAI;AAEhB,QAAI,MAAM,6BAAa;AACvB,UAAM,IAAI,MAAM,8BAAc;AAC9B,UAAM,IAAI,MAAM,sCAAe;AAAA,EACnC;AANA,EAAAA,mBAAsB;AAAA,GA1BT;",
|
|
5
5
|
"names": ["ServerEnvironment"]
|
|
6
6
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Endpoint } from "#endpoint/Endpoint.js";
|
|
7
|
+
import { ServerNode } from "#node/ServerNode.js";
|
|
8
|
+
import { FabricIndex } from "#types";
|
|
9
|
+
/**
|
|
10
|
+
* Sanitize Fabric scoped data and events to a list of allowed fabrics.
|
|
11
|
+
* The logic walks through all endpoints and removes relevant fabric-scoped attribute values for the relevant fabric
|
|
12
|
+
* from the state. After all state changes are processed, it removes all occurrences of fabric-scoped events.
|
|
13
|
+
*/
|
|
14
|
+
export declare function limitNodeDataToAllowedFabrics(node: ServerNode, allowedIndices: FabricIndex[]): Promise<void>;
|
|
15
|
+
export declare function limitEndpointAttributeDataToAllowedFabrics(endpoint: Endpoint, allowedIndices: FabricIndex[]): Promise<void>;
|
|
16
|
+
//# sourceMappingURL=FabricScopedDataHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FabricScopedDataHandler.d.ts","sourceRoot":"","sources":["../../../../src/behavior/cluster/FabricScopedDataHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAe,WAAW,EAAgB,MAAM,QAAQ,CAAC;AAoEhE;;;;GAIG;AACH,wBAAsB,6BAA6B,CAAC,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,iBA0ClG;AAED,wBAAsB,0CAA0C,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,iBAYjH"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { createPromise, deepCopy, isObject, Logger, MaybePromise, withTimeout } from "#general";
|
|
7
|
+
import { OccurrenceManager } from "#protocol";
|
|
8
|
+
const logger = Logger.get("FabricScopedDataHandler");
|
|
9
|
+
async function forBehaviors(endpoint, callback) {
|
|
10
|
+
for (const type of Object.values(endpoint.behaviors.supported)) {
|
|
11
|
+
const cluster = type?.cluster;
|
|
12
|
+
if (!cluster) {
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
const elements = endpoint.behaviors.elementsOf(type);
|
|
16
|
+
if (elements.attributes.size || elements.events.size) {
|
|
17
|
+
await callback(type, cluster, elements);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
async function sanitizeAttributeData(endpoint, type, cluster, supportedAttributes, allowedIndices) {
|
|
22
|
+
const stateUpdatePromises = new Array();
|
|
23
|
+
const stateUpdate = {};
|
|
24
|
+
for (const attributeName of supportedAttributes) {
|
|
25
|
+
const attr = cluster.attributes[attributeName];
|
|
26
|
+
if (attr.fabricScoped) {
|
|
27
|
+
const value = endpoint.stateOf(type)[attributeName];
|
|
28
|
+
if (Array.isArray(value) && value.length > 0) {
|
|
29
|
+
const filtered = deepCopy(value).filter((entry) => allowedIndices.includes(entry.fabricIndex));
|
|
30
|
+
if (filtered.length !== value.length) {
|
|
31
|
+
stateUpdate[attributeName] = filtered;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (Object.keys(stateUpdate).length > 0) {
|
|
37
|
+
const { resolver, promise } = createPromise();
|
|
38
|
+
endpoint.eventsOf(type).stateChanged?.on(resolver);
|
|
39
|
+
try {
|
|
40
|
+
await endpoint.setStateOf(type, stateUpdate);
|
|
41
|
+
stateUpdatePromises.push(withTimeout(5e3, promise));
|
|
42
|
+
} catch (error) {
|
|
43
|
+
logger.warn(
|
|
44
|
+
`Could not sanitize fabric-scoped attributes for cluster ${cluster.name} on endpoint ${endpoint.id}`,
|
|
45
|
+
error
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return stateUpdatePromises;
|
|
50
|
+
}
|
|
51
|
+
async function limitNodeDataToAllowedFabrics(node, allowedIndices) {
|
|
52
|
+
const fabricRelevantEvents = /* @__PURE__ */ new Set();
|
|
53
|
+
const stateUpdatePromises = new Array();
|
|
54
|
+
await node.visit(async (endpoint) => {
|
|
55
|
+
await forBehaviors(endpoint, async (type, cluster, elements) => {
|
|
56
|
+
if (elements.attributes.size) {
|
|
57
|
+
stateUpdatePromises.push(
|
|
58
|
+
...await sanitizeAttributeData(endpoint, type, cluster, elements.attributes, allowedIndices)
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
if (elements.events.size) {
|
|
62
|
+
for (const eventName of elements.events) {
|
|
63
|
+
const event = cluster.events[eventName];
|
|
64
|
+
if (event.schema.isFabricScoped) {
|
|
65
|
+
fabricRelevantEvents.add(`${cluster.id}-${event.id}`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
await Promise.allSettled(stateUpdatePromises);
|
|
72
|
+
if (fabricRelevantEvents.size > 0) {
|
|
73
|
+
const occurrences = node.env.get(OccurrenceManager);
|
|
74
|
+
for await (const event of occurrences.get()) {
|
|
75
|
+
if (fabricRelevantEvents.has(`${event.clusterId}-${event.eventId}`) && isObject(event.payload) && !allowedIndices.includes(event.payload.fabricIndex)) {
|
|
76
|
+
const result = occurrences.remove(event.number);
|
|
77
|
+
if (MaybePromise.is(result)) {
|
|
78
|
+
await result;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
async function limitEndpointAttributeDataToAllowedFabrics(endpoint, allowedIndices) {
|
|
85
|
+
const stateUpdatePromises = new Array();
|
|
86
|
+
await forBehaviors(endpoint, async (type, cluster, elements) => {
|
|
87
|
+
if (elements.attributes.size) {
|
|
88
|
+
stateUpdatePromises.push(
|
|
89
|
+
...await sanitizeAttributeData(endpoint, type, cluster, elements.attributes, allowedIndices)
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
await Promise.allSettled(stateUpdatePromises);
|
|
94
|
+
}
|
|
95
|
+
export {
|
|
96
|
+
limitEndpointAttributeDataToAllowedFabrics,
|
|
97
|
+
limitNodeDataToAllowedFabrics
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=FabricScopedDataHandler.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/behavior/cluster/FabricScopedDataHandler.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -8,5 +8,6 @@ export * from "./ClusterBehaviorUtil.js";
|
|
|
8
8
|
export * from "./ClusterEvents.js";
|
|
9
9
|
export * from "./ClusterInterface.js";
|
|
10
10
|
export * from "./ClusterState.js";
|
|
11
|
+
export * from "./FabricScopedDataHandler.js";
|
|
11
12
|
export * from "./ValidatedElements.js";
|
|
12
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/behavior/cluster/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/behavior/cluster/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC"}
|
|
@@ -8,5 +8,6 @@ export * from "./ClusterBehaviorUtil.js";
|
|
|
8
8
|
export * from "./ClusterEvents.js";
|
|
9
9
|
export * from "./ClusterInterface.js";
|
|
10
10
|
export * from "./ClusterState.js";
|
|
11
|
+
export * from "./FabricScopedDataHandler.js";
|
|
11
12
|
export * from "./ValidatedElements.js";
|
|
12
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/behavior/cluster/index.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Behaviors.d.ts","sourceRoot":"","sources":["../../../../src/endpoint/properties/Behaviors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"Behaviors.d.ts","sourceRoot":"","sources":["../../../../src/endpoint/properties/Behaviors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAQjD,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACnE,OAAO,EAIH,UAAU,EAGV,SAAS,EAET,YAAY,EAEf,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,mBAAmB,EAAiB,GAAG,EAAE,MAAM,WAAW,CAAC;AAGpE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAK/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAIlE,MAAM,WAAW,iBAAiB;IAC9B,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,SAAS;;IAOlB;;OAEG;IACH,IAAI,SAAS,uBAEZ;IAED,IAAI,MAAM,qCAMT;IAED,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,iBAErB;IAED,IAAI,kBAAkB,mBAyErB;gBAEW,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IA2B3E;;;;;;OAMG;IACH,UAAU,IAAI,YAAY;IAsE1B;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;IAKpC;;OAEG;IACH,OAAO,CAAC,CAAC,SAAS,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IA4BvE;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK;IAY5C;;OAEG;IACG,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK;IAgBnD;;;;;OAKG;IACH,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC;IAiC3E;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK;IAM1C;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI;IAK5B;;OAEG;IACG,KAAK;IA0CX;;OAEG;IACH,oBAAoB,CAAC,YAAY,CAAC,EAAE,kBAAkB;IAoCtD;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI;IA0B/B;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI;IAI9B;;;;;;;;OAQG;IACH,WAAW,CAAC,CAAC,SAAS,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,GAER,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAG/D;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI;IAK7B;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,iBAAiB;IAelD,CAAC,MAAM,CAAC,QAAQ,CAAC;IA8BjB;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI;CA4FvC;AAMD,yBAAiB,SAAS,CAAC;IACvB,UAAiB,eAAe;QAC5B,UAAU,EAAE,mBAAmB,CAAC;QAChC,UAAU,EAAE,UAAU,CAAC;KAC1B;CACJ"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { Behavior } from "#behavior/Behavior.js";
|
|
7
|
+
import { limitEndpointAttributeDataToAllowedFabrics } from "#behavior/cluster/FabricScopedDataHandler.js";
|
|
7
8
|
import { NodeActivity } from "#behavior/context/NodeActivity.js";
|
|
8
9
|
import { OfflineContext } from "#behavior/context/server/OfflineContext.js";
|
|
9
10
|
import {
|
|
@@ -19,6 +20,7 @@ import {
|
|
|
19
20
|
} from "#general";
|
|
20
21
|
import { FeatureSet } from "#model";
|
|
21
22
|
import { ProtocolService } from "#node/server/ProtocolService.js";
|
|
23
|
+
import { FabricManager } from "#protocol";
|
|
22
24
|
import { VoidSchema } from "#types";
|
|
23
25
|
import { DescriptorServer } from "../../behaviors/descriptor/DescriptorServer.js";
|
|
24
26
|
import { EndpointVariableService } from "../EndpointVariableService.js";
|
|
@@ -168,6 +170,14 @@ class Behaviors {
|
|
|
168
170
|
} else {
|
|
169
171
|
promise2 = endpointInitializer.behaviorsInitialized(agent);
|
|
170
172
|
}
|
|
173
|
+
if (this.#endpoint.env.has(FabricManager)) {
|
|
174
|
+
const fabricIndices = this.#endpoint.env.get(FabricManager).fabrics.map((fabric) => fabric.fabricIndex);
|
|
175
|
+
if (fabricIndices.length > 0) {
|
|
176
|
+
return limitEndpointAttributeDataToAllowedFabrics(this.#endpoint, fabricIndices).then(
|
|
177
|
+
() => promise2
|
|
178
|
+
);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
171
181
|
return promise2;
|
|
172
182
|
};
|
|
173
183
|
const activity = this.#endpoint.env.get(NodeActivity);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/endpoint/properties/Behaviors.ts"],
|
|
4
|
-
"mappings": "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",
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["name", "type", "promise"]
|
|
6
6
|
}
|
|
@@ -69,9 +69,9 @@ export declare class ServerNode<T extends ServerNode.RootEndpoint = ServerNode.R
|
|
|
69
69
|
advertiseNow(): Promise<void>;
|
|
70
70
|
protected initialize(): Promise<void>;
|
|
71
71
|
/**
|
|
72
|
-
* By default on factory reset we erase all stored data.
|
|
72
|
+
* By default, on factory reset we erase all stored data.
|
|
73
73
|
*
|
|
74
|
-
* If this is inappropriate for your application you may override to alter the behavior.
|
|
74
|
+
* If this is inappropriate for your application, you may override to alter the behavior. Matter requires that all
|
|
75
75
|
* "security- and privacy-related data and key material" is removed on factory reset.
|
|
76
76
|
*
|
|
77
77
|
* @see {@link MatterSpecification.v12.Core} § 13.4
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerNode.d.ts","sourceRoot":"","sources":["../../../src/node/ServerNode.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,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;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uDAAuD,CAAC;AAG7F,OAAO,
|
|
1
|
+
{"version":3,"file":"ServerNode.d.ts","sourceRoot":"","sources":["../../../src/node/ServerNode.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,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;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uDAAuD,CAAC;AAG7F,OAAO,EAAY,YAAY,EAA6B,QAAQ,EAAe,MAAM,UAAU,CAAC;AACpG,OAAO,EAAiB,YAAY,EAAwD,MAAM,WAAW,CAAC;AAE9G,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;;IAIhG;;;;;;;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;IAED,IAAI,WAAW,gCAKd;IAEK,YAAY;cAIO,UAAU;IAMnC;;;;;;;OAOG;cACa,YAAY;IAO5B;;;OAGG;cACgB,mBAAmB;CACzC;AAED,yBAAiB,UAAU,CAAC;IACjB,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6MAQxB,CAAC;IAEF,UAAiB,YAAa,SAAQ,QAAQ,CAAC,OAAO,YAAY,CAAC;KAAG;CACzE"}
|
|
@@ -11,7 +11,7 @@ import { ServerNetworkRuntime } from "#behavior/system/network/ServerNetworkRunt
|
|
|
11
11
|
import { ProductDescriptionServer } from "#behavior/system/product-description/ProductDescriptionServer.js";
|
|
12
12
|
import { SessionsBehavior } from "#behavior/system/sessions/SessionsBehavior.js";
|
|
13
13
|
import { SubscriptionBehavior } from "#behavior/system/subscription/SubscriptionBehavior.js";
|
|
14
|
-
import { Construction, DiagnosticSource,
|
|
14
|
+
import { asyncNew, Construction, DiagnosticSource, errorOf, MatterError } from "#general";
|
|
15
15
|
import { FabricManager, OccurrenceManager, ServerInteraction, SessionManager } from "#protocol";
|
|
16
16
|
import { RootEndpoint as BaseRootEndpoint } from "../endpoints/root.js";
|
|
17
17
|
import { Node } from "./Node.js";
|
|
@@ -98,9 +98,9 @@ class ServerNode extends Node {
|
|
|
98
98
|
await super.initialize();
|
|
99
99
|
}
|
|
100
100
|
/**
|
|
101
|
-
* By default on factory reset we erase all stored data.
|
|
101
|
+
* By default, on factory reset we erase all stored data.
|
|
102
102
|
*
|
|
103
|
-
* If this is inappropriate for your application you may override to alter the behavior.
|
|
103
|
+
* If this is inappropriate for your application, you may override to alter the behavior. Matter requires that all
|
|
104
104
|
* "security- and privacy-related data and key material" is removed on factory reset.
|
|
105
105
|
*
|
|
106
106
|
* @see {@link MatterSpecification.v12.Core} § 13.4
|
|
@@ -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,4BAA4B;AAGrC,SAAS,cAAc,
|
|
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,4BAA4B;AAGrC,SAAS,UAAU,cAAc,kBAAkB,SAAmB,mBAAmB;AACzF,SAAS,eAA6B,mBAAmB,mBAAmB,sBAAsB;AAClG,SAAS,gBAAgB,wBAAwB;AACjD,SAAS,YAAY;AACrB,SAAS,mBAAmB;AAC5B,SAAS,yBAAyB;AAClC,SAAS,uBAAuB;AAKhC,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,OAAO,CAAC;AAE3E,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;AACV,cAAM,KAAK,eAAe;AAAA,MAC9B,OAAO;AACH,cAAM,KAAK,aAAa;AAAA,MAC5B;AAAA,IACJ,SAAS,GAAG;AACR,WAAK,aAAa,MAAM;AACxB,YAAM,IAAI,kBAAkB,iCAAiC,IAAI,IAAI,CAAC;AAAA,IAC1E;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,QAAQ;AACR,QAAI,CAAC,KAAK,QAAQ;AACd,WAAK,SAAS,IAAI,YAAY,IAAI;AAClC,WAAK,OAAO,WAAW;AAAA,IAC3B;AAEA,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,cAAc;AACd,QAAI,KAAK,iBAAiB,QAAW;AACjC,WAAK,eAAe,IAAI,kBAAiC,KAAK,QAAQ;AAAA,IAC1E;AACA,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,eAAe;AACjB,UAAM,KAAK,IAAI,gBAAgB,IAAI,KAAK,WAAS,MAAM,IAAI,aAAa,EAAE,aAAa,CAAC;AAAA,EAC5F;AAAA,EAEA,MAAyB,aAAa;AAClC,UAAM,kBAAkB,WAAW,IAAI;AAEvC,UAAM,MAAM,WAAW;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAgB,eAAe;AAC3B,UAAM,KAAK,IAAI,IAAI,cAAc,EAAE,MAAM;AACzC,UAAM,KAAK,IAAI,IAAI,aAAa,EAAE,MAAM;AACxC,UAAM,KAAK,IAAI,IAAI,iBAAiB,EAAE,MAAM;AAC5C,UAAM,KAAK,IAAI,IAAI,eAAe,EAAE,MAAM;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMmB,sBAAsB;AAAA,EAAC;AAC9C;AAAA,CAEO,CAAUA,gBAAV;AACI,EAAMA,YAAA,eAAe,iBAAiB;AAAA,IACzC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,GATa;",
|
|
5
5
|
"names": ["ServerNode"]
|
|
6
6
|
}
|
|
@@ -3,11 +3,14 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { Observable } from "#general";
|
|
6
7
|
import type { ServerNode } from "#node/ServerNode.js";
|
|
7
8
|
/**
|
|
8
9
|
* Manages the environment of a server.
|
|
9
10
|
*/
|
|
10
11
|
export declare namespace ServerEnvironment {
|
|
12
|
+
/** Emits the fabric-scoped data are sanitized after the removal of a fabric. Only use for testing! */
|
|
13
|
+
const fabricScopedDataSanitized: Observable<any[], void>;
|
|
11
14
|
function initialize(node: ServerNode): Promise<void>;
|
|
12
15
|
function close(node: ServerNode): Promise<void>;
|
|
13
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerEnvironment.d.ts","sourceRoot":"","sources":["../../../../src/node/server/ServerEnvironment.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"ServerEnvironment.d.ts","sourceRoot":"","sources":["../../../../src/node/server/ServerEnvironment.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAKtD;;GAEG;AACH,yBAAiB,iBAAiB,CAAC;IAC/B,sGAAsG;IAC/F,MAAM,yBAAyB,yBAAe,CAAC;IAEtD,SAAsB,UAAU,CAAC,IAAI,EAAE,UAAU,iBAoBhD;IAED,SAAsB,KAAK,CAAC,IAAI,EAAE,UAAU,iBAM3C;CACJ"}
|
|
@@ -3,19 +3,29 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { limitNodeDataToAllowedFabrics } from "#behavior/cluster/FabricScopedDataHandler.js";
|
|
6
7
|
import { EndpointInitializer } from "#endpoint/index.js";
|
|
8
|
+
import { ServerEndpointInitializer } from "#endpoint/server/ServerEndpointInitializer.js";
|
|
9
|
+
import { Observable } from "#general";
|
|
7
10
|
import { ServerNodeStore } from "#node/storage/ServerNodeStore.js";
|
|
8
11
|
import { FabricManager, SessionManager } from "#protocol";
|
|
9
|
-
import { ServerEndpointInitializer } from "../../endpoint/server/ServerEndpointInitializer.js";
|
|
10
12
|
import { IdentityService } from "./IdentityService.js";
|
|
11
13
|
var ServerEnvironment;
|
|
12
14
|
((ServerEnvironment2) => {
|
|
15
|
+
ServerEnvironment2.fabricScopedDataSanitized = Observable();
|
|
13
16
|
async function initialize(node) {
|
|
14
17
|
const { env } = node;
|
|
15
18
|
env.set(ServerNodeStore, await ServerNodeStore.create(env, node.id));
|
|
16
19
|
env.set(EndpointInitializer, new ServerEndpointInitializer(env));
|
|
17
20
|
env.set(IdentityService, new IdentityService(node));
|
|
18
|
-
await env.load(FabricManager);
|
|
21
|
+
const fabrics = await env.load(FabricManager);
|
|
22
|
+
fabrics.events.deleted.on(async () => {
|
|
23
|
+
const fabricIndices = fabrics.fabrics.map((fabric) => fabric.fabricIndex);
|
|
24
|
+
if (fabricIndices.length > 0) {
|
|
25
|
+
await limitNodeDataToAllowedFabrics(node, fabricIndices);
|
|
26
|
+
}
|
|
27
|
+
ServerEnvironment2.fabricScopedDataSanitized.emit();
|
|
28
|
+
});
|
|
19
29
|
await env.load(SessionManager);
|
|
20
30
|
}
|
|
21
31
|
ServerEnvironment2.initialize = initialize;
|
|
@@ -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;
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,qCAAqC;AAC9C,SAAS,2BAA2B;AACpC,SAAS,iCAAiC;AAC1C,SAAS,kBAAkB;AAE3B,SAAS,uBAAuB;AAChC,SAAS,eAAe,sBAAsB;AAC9C,SAAS,uBAAuB;AAKzB,IAAU;AAAA,CAAV,CAAUA,uBAAV;AAEI,EAAMA,mBAAA,4BAA4B,WAAW;AAEpD,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,UAAU,MAAM,IAAI,KAAK,aAAa;AAE5C,YAAQ,OAAO,QAAQ,GAAG,YAAY;AAClC,YAAM,gBAAgB,QAAQ,QAAQ,IAAI,YAAU,OAAO,WAAW;AACtE,UAAI,cAAc,SAAS,GAAG;AAC1B,cAAM,8BAA8B,MAAM,aAAa;AAAA,MAC3D;AACA,MAAAA,mBAAA,0BAA0B,KAAK;AAAA,IACnC,CAAC;AAED,UAAM,IAAI,KAAK,cAAc;AAAA,EACjC;AApBA,EAAAA,mBAAsB;AAsBtB,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,GA1BT;",
|
|
5
5
|
"names": ["ServerEnvironment"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/node",
|
|
3
|
-
"version": "0.15.0-alpha.0-
|
|
3
|
+
"version": "0.15.0-alpha.0-20250613-a55f991d4",
|
|
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.15.0-alpha.0-
|
|
46
|
-
"@matter/model": "0.15.0-alpha.0-
|
|
47
|
-
"@matter/types": "0.15.0-alpha.0-
|
|
48
|
-
"@matter/protocol": "0.15.0-alpha.0-
|
|
45
|
+
"@matter/general": "0.15.0-alpha.0-20250613-a55f991d4",
|
|
46
|
+
"@matter/model": "0.15.0-alpha.0-20250613-a55f991d4",
|
|
47
|
+
"@matter/types": "0.15.0-alpha.0-20250613-a55f991d4",
|
|
48
|
+
"@matter/protocol": "0.15.0-alpha.0-20250613-a55f991d4"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@matter/tools": "0.15.0-alpha.0-
|
|
52
|
-
"@matter/testing": "0.15.0-alpha.0-
|
|
51
|
+
"@matter/tools": "0.15.0-alpha.0-20250613-a55f991d4",
|
|
52
|
+
"@matter/testing": "0.15.0-alpha.0-20250613-a55f991d4"
|
|
53
53
|
},
|
|
54
54
|
"files": [
|
|
55
55
|
"dist/**/*",
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { Behavior, ClusterBehavior } from "#behavior/index.js";
|
|
8
|
+
import { Endpoint } from "#endpoint/Endpoint.js";
|
|
9
|
+
import { SupportedElements } from "#endpoint/properties/Behaviors.js";
|
|
10
|
+
import { createPromise, deepCopy, isObject, Logger, MaybePromise, withTimeout } from "#general";
|
|
11
|
+
import { ServerNode } from "#node/ServerNode.js";
|
|
12
|
+
import { OccurrenceManager, Val } from "#protocol";
|
|
13
|
+
import { ClusterType, FabricIndex, ObjectSchema } from "#types";
|
|
14
|
+
|
|
15
|
+
const logger = Logger.get("FabricScopedDataHandler");
|
|
16
|
+
|
|
17
|
+
/** Helper function to iterate over all behaviors of an endpoint */
|
|
18
|
+
async function forBehaviors(
|
|
19
|
+
endpoint: Endpoint,
|
|
20
|
+
callback: (type: Behavior.Type, cluster: ClusterType, elements: SupportedElements) => Promise<void>,
|
|
21
|
+
) {
|
|
22
|
+
for (const type of Object.values(endpoint.behaviors.supported)) {
|
|
23
|
+
const cluster = (type as ClusterBehavior.Type)?.cluster;
|
|
24
|
+
if (!cluster) {
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
const elements = endpoint.behaviors.elementsOf(type);
|
|
28
|
+
if (elements.attributes.size || elements.events.size) {
|
|
29
|
+
await callback(type, cluster, elements);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Sanitize fabric-scoped attributes for a given endpoint and cluster.
|
|
36
|
+
* The changed state is returned in an array of promises and should be awaited to ensure the state is updated.
|
|
37
|
+
*/
|
|
38
|
+
async function sanitizeAttributeData(
|
|
39
|
+
endpoint: Endpoint,
|
|
40
|
+
type: Behavior.Type,
|
|
41
|
+
cluster: ClusterType,
|
|
42
|
+
supportedAttributes: Set<string>,
|
|
43
|
+
allowedIndices: FabricIndex[],
|
|
44
|
+
) {
|
|
45
|
+
const stateUpdatePromises = new Array<Promise<void>>();
|
|
46
|
+
|
|
47
|
+
const stateUpdate = {} as Val.Struct;
|
|
48
|
+
// Iterate over all attributes and check if they are fabric-scoped
|
|
49
|
+
for (const attributeName of supportedAttributes) {
|
|
50
|
+
const attr = cluster.attributes[attributeName];
|
|
51
|
+
if (attr.fabricScoped) {
|
|
52
|
+
const value = (endpoint.stateOf(type) as Val.Struct)[attributeName];
|
|
53
|
+
// If the value contains data for the fabric being removed, remove the data
|
|
54
|
+
if (Array.isArray(value) && value.length > 0) {
|
|
55
|
+
const filtered = deepCopy(value).filter(entry => allowedIndices.includes(entry.fabricIndex));
|
|
56
|
+
if (filtered.length !== value.length) {
|
|
57
|
+
stateUpdate[attributeName] = filtered;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// If we have any state updates for this behavior, we need to set the state.
|
|
63
|
+
// Errors are being logged and ignored
|
|
64
|
+
if (Object.keys(stateUpdate).length > 0) {
|
|
65
|
+
const { resolver, promise } = createPromise<void>();
|
|
66
|
+
(endpoint.eventsOf(type) as Behavior.EventsOf<any>).stateChanged?.on(resolver);
|
|
67
|
+
try {
|
|
68
|
+
await endpoint.setStateOf(type, stateUpdate);
|
|
69
|
+
stateUpdatePromises.push(withTimeout(5_000, promise)); // 5s should be enough for state change
|
|
70
|
+
} catch (error) {
|
|
71
|
+
logger.warn(
|
|
72
|
+
`Could not sanitize fabric-scoped attributes for cluster ${cluster.name} on endpoint ${endpoint.id}`,
|
|
73
|
+
error,
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return stateUpdatePromises;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Sanitize Fabric scoped data and events to a list of allowed fabrics.
|
|
83
|
+
* The logic walks through all endpoints and removes relevant fabric-scoped attribute values for the relevant fabric
|
|
84
|
+
* from the state. After all state changes are processed, it removes all occurrences of fabric-scoped events.
|
|
85
|
+
*/
|
|
86
|
+
export async function limitNodeDataToAllowedFabrics(node: ServerNode, allowedIndices: FabricIndex[]) {
|
|
87
|
+
const fabricRelevantEvents = new Set<string>();
|
|
88
|
+
const stateUpdatePromises = new Array<Promise<void>>();
|
|
89
|
+
await node.visit(async endpoint => {
|
|
90
|
+
await forBehaviors(endpoint, async (type, cluster, elements) => {
|
|
91
|
+
if (elements.attributes.size) {
|
|
92
|
+
stateUpdatePromises.push(
|
|
93
|
+
...(await sanitizeAttributeData(endpoint, type, cluster, elements.attributes, allowedIndices)),
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
if (elements.events.size) {
|
|
97
|
+
// If we have events also check if they are fabric scoped and collect them
|
|
98
|
+
for (const eventName of elements.events) {
|
|
99
|
+
const event = cluster.events[eventName];
|
|
100
|
+
if ((event.schema as ObjectSchema<any>).isFabricScoped) {
|
|
101
|
+
fabricRelevantEvents.add(`${cluster.id}-${event.id}`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
// Wait for all state changed to be executed before processing events
|
|
109
|
+
await Promise.allSettled(stateUpdatePromises);
|
|
110
|
+
|
|
111
|
+
// Now we can remove all occurrences of fabric-scoped events when payload is bound to this fabric index
|
|
112
|
+
if (fabricRelevantEvents.size > 0) {
|
|
113
|
+
const occurrences = node.env.get(OccurrenceManager);
|
|
114
|
+
for await (const event of occurrences.get()) {
|
|
115
|
+
if (
|
|
116
|
+
fabricRelevantEvents.has(`${event.clusterId}-${event.eventId}`) &&
|
|
117
|
+
isObject(event.payload) &&
|
|
118
|
+
!allowedIndices.includes(event.payload.fabricIndex as FabricIndex)
|
|
119
|
+
) {
|
|
120
|
+
// Remove occurrences of fabric-scoped events
|
|
121
|
+
const result = occurrences.remove(event.number);
|
|
122
|
+
if (MaybePromise.is(result)) {
|
|
123
|
+
await result;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export async function limitEndpointAttributeDataToAllowedFabrics(endpoint: Endpoint, allowedIndices: FabricIndex[]) {
|
|
131
|
+
const stateUpdatePromises = new Array<Promise<void>>();
|
|
132
|
+
await forBehaviors(endpoint, async (type, cluster, elements) => {
|
|
133
|
+
if (elements.attributes.size) {
|
|
134
|
+
stateUpdatePromises.push(
|
|
135
|
+
...(await sanitizeAttributeData(endpoint, type, cluster, elements.attributes, allowedIndices)),
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
// Wait for all state changed to be executed before processing events
|
|
141
|
+
await Promise.allSettled(stateUpdatePromises);
|
|
142
|
+
}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
import { Behavior } from "#behavior/Behavior.js";
|
|
8
8
|
import type { ClusterBehavior } from "#behavior/cluster/ClusterBehavior.js";
|
|
9
|
+
import { limitEndpointAttributeDataToAllowedFabrics } from "#behavior/cluster/FabricScopedDataHandler.js";
|
|
9
10
|
import { ActionContext } from "#behavior/context/ActionContext.js";
|
|
10
11
|
import { NodeActivity } from "#behavior/context/NodeActivity.js";
|
|
11
12
|
import { OfflineContext } from "#behavior/context/server/OfflineContext.js";
|
|
@@ -26,7 +27,7 @@ import {
|
|
|
26
27
|
} from "#general";
|
|
27
28
|
import { FeatureSet } from "#model";
|
|
28
29
|
import { ProtocolService } from "#node/server/ProtocolService.js";
|
|
29
|
-
import { ClusterTypeProtocol, Val } from "#protocol";
|
|
30
|
+
import { ClusterTypeProtocol, FabricManager, Val } from "#protocol";
|
|
30
31
|
import { ClusterType, VoidSchema } from "#types";
|
|
31
32
|
import { DescriptorServer } from "../../behaviors/descriptor/DescriptorServer.js";
|
|
32
33
|
import type { Agent } from "../Agent.js";
|
|
@@ -221,6 +222,16 @@ export class Behaviors {
|
|
|
221
222
|
promise = endpointInitializer.behaviorsInitialized(agent);
|
|
222
223
|
}
|
|
223
224
|
|
|
225
|
+
if (this.#endpoint.env.has(FabricManager)) {
|
|
226
|
+
const fabricIndices = this.#endpoint.env.get(FabricManager).fabrics.map(fabric => fabric.fabricIndex);
|
|
227
|
+
if (fabricIndices.length > 0) {
|
|
228
|
+
// Make sure the state on startup only includes allowed Fabric scoped data
|
|
229
|
+
return limitEndpointAttributeDataToAllowedFabrics(this.#endpoint, fabricIndices).then(
|
|
230
|
+
() => promise,
|
|
231
|
+
);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
224
235
|
return promise;
|
|
225
236
|
};
|
|
226
237
|
|
package/src/node/ServerNode.ts
CHANGED
|
@@ -15,7 +15,7 @@ import { SessionsBehavior } from "#behavior/system/sessions/SessionsBehavior.js"
|
|
|
15
15
|
import { SubscriptionBehavior } from "#behavior/system/subscription/SubscriptionBehavior.js";
|
|
16
16
|
import { Endpoint } from "#endpoint/Endpoint.js";
|
|
17
17
|
import type { Environment } from "#general";
|
|
18
|
-
import { Construction, DiagnosticSource, Identity, MatterError
|
|
18
|
+
import { asyncNew, Construction, DiagnosticSource, errorOf, Identity, MatterError } from "#general";
|
|
19
19
|
import { FabricManager, Interactable, OccurrenceManager, ServerInteraction, SessionManager } from "#protocol";
|
|
20
20
|
import { RootEndpoint as BaseRootEndpoint } from "../endpoints/root.js";
|
|
21
21
|
import { Node } from "./Node.js";
|
|
@@ -184,9 +184,9 @@ export class ServerNode<T extends ServerNode.RootEndpoint = ServerNode.RootEndpo
|
|
|
184
184
|
}
|
|
185
185
|
|
|
186
186
|
/**
|
|
187
|
-
* By default on factory reset we erase all stored data.
|
|
187
|
+
* By default, on factory reset we erase all stored data.
|
|
188
188
|
*
|
|
189
|
-
* If this is inappropriate for your application you may override to alter the behavior.
|
|
189
|
+
* If this is inappropriate for your application, you may override to alter the behavior. Matter requires that all
|
|
190
190
|
* "security- and privacy-related data and key material" is removed on factory reset.
|
|
191
191
|
*
|
|
192
192
|
* @see {@link MatterSpecification.v12.Core} § 13.4
|
|
@@ -4,17 +4,22 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
+
import { limitNodeDataToAllowedFabrics } from "#behavior/cluster/FabricScopedDataHandler.js";
|
|
7
8
|
import { EndpointInitializer } from "#endpoint/index.js";
|
|
9
|
+
import { ServerEndpointInitializer } from "#endpoint/server/ServerEndpointInitializer.js";
|
|
10
|
+
import { Observable } from "#general";
|
|
8
11
|
import type { ServerNode } from "#node/ServerNode.js";
|
|
9
12
|
import { ServerNodeStore } from "#node/storage/ServerNodeStore.js";
|
|
10
13
|
import { FabricManager, SessionManager } from "#protocol";
|
|
11
|
-
import { ServerEndpointInitializer } from "../../endpoint/server/ServerEndpointInitializer.js";
|
|
12
14
|
import { IdentityService } from "./IdentityService.js";
|
|
13
15
|
|
|
14
16
|
/**
|
|
15
17
|
* Manages the environment of a server.
|
|
16
18
|
*/
|
|
17
19
|
export namespace ServerEnvironment {
|
|
20
|
+
/** Emits the fabric-scoped data are sanitized after the removal of a fabric. Only use for testing! */
|
|
21
|
+
export const fabricScopedDataSanitized = Observable();
|
|
22
|
+
|
|
18
23
|
export async function initialize(node: ServerNode) {
|
|
19
24
|
const { env } = node;
|
|
20
25
|
|
|
@@ -24,7 +29,16 @@ export namespace ServerEnvironment {
|
|
|
24
29
|
env.set(IdentityService, new IdentityService(node));
|
|
25
30
|
|
|
26
31
|
// Ensure these are fully initialized
|
|
27
|
-
await env.load(FabricManager);
|
|
32
|
+
const fabrics = await env.load(FabricManager);
|
|
33
|
+
|
|
34
|
+
fabrics.events.deleted.on(async () => {
|
|
35
|
+
const fabricIndices = fabrics.fabrics.map(fabric => fabric.fabricIndex);
|
|
36
|
+
if (fabricIndices.length > 0) {
|
|
37
|
+
await limitNodeDataToAllowedFabrics(node, fabricIndices);
|
|
38
|
+
}
|
|
39
|
+
fabricScopedDataSanitized.emit(); // Only for testing purposes
|
|
40
|
+
});
|
|
41
|
+
|
|
28
42
|
await env.load(SessionManager);
|
|
29
43
|
}
|
|
30
44
|
|