@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.
Files changed (43) hide show
  1. package/dist/cjs/behavior/cluster/FabricScopedDataHandler.d.ts +16 -0
  2. package/dist/cjs/behavior/cluster/FabricScopedDataHandler.d.ts.map +1 -0
  3. package/dist/cjs/behavior/cluster/FabricScopedDataHandler.js +119 -0
  4. package/dist/cjs/behavior/cluster/FabricScopedDataHandler.js.map +6 -0
  5. package/dist/cjs/behavior/cluster/index.d.ts +1 -0
  6. package/dist/cjs/behavior/cluster/index.d.ts.map +1 -1
  7. package/dist/cjs/behavior/cluster/index.js +1 -0
  8. package/dist/cjs/behavior/cluster/index.js.map +1 -1
  9. package/dist/cjs/endpoint/properties/Behaviors.d.ts.map +1 -1
  10. package/dist/cjs/endpoint/properties/Behaviors.js +10 -0
  11. package/dist/cjs/endpoint/properties/Behaviors.js.map +1 -1
  12. package/dist/cjs/node/ServerNode.d.ts +2 -2
  13. package/dist/cjs/node/ServerNode.d.ts.map +1 -1
  14. package/dist/cjs/node/ServerNode.js +2 -2
  15. package/dist/cjs/node/server/ServerEnvironment.d.ts +3 -0
  16. package/dist/cjs/node/server/ServerEnvironment.d.ts.map +1 -1
  17. package/dist/cjs/node/server/ServerEnvironment.js +12 -2
  18. package/dist/cjs/node/server/ServerEnvironment.js.map +1 -1
  19. package/dist/esm/behavior/cluster/FabricScopedDataHandler.d.ts +16 -0
  20. package/dist/esm/behavior/cluster/FabricScopedDataHandler.d.ts.map +1 -0
  21. package/dist/esm/behavior/cluster/FabricScopedDataHandler.js +99 -0
  22. package/dist/esm/behavior/cluster/FabricScopedDataHandler.js.map +6 -0
  23. package/dist/esm/behavior/cluster/index.d.ts +1 -0
  24. package/dist/esm/behavior/cluster/index.d.ts.map +1 -1
  25. package/dist/esm/behavior/cluster/index.js +1 -0
  26. package/dist/esm/behavior/cluster/index.js.map +1 -1
  27. package/dist/esm/endpoint/properties/Behaviors.d.ts.map +1 -1
  28. package/dist/esm/endpoint/properties/Behaviors.js +10 -0
  29. package/dist/esm/endpoint/properties/Behaviors.js.map +1 -1
  30. package/dist/esm/node/ServerNode.d.ts +2 -2
  31. package/dist/esm/node/ServerNode.d.ts.map +1 -1
  32. package/dist/esm/node/ServerNode.js +3 -3
  33. package/dist/esm/node/ServerNode.js.map +1 -1
  34. package/dist/esm/node/server/ServerEnvironment.d.ts +3 -0
  35. package/dist/esm/node/server/ServerEnvironment.d.ts.map +1 -1
  36. package/dist/esm/node/server/ServerEnvironment.js +12 -2
  37. package/dist/esm/node/server/ServerEnvironment.js.map +1 -1
  38. package/package.json +7 -7
  39. package/src/behavior/cluster/FabricScopedDataHandler.ts +142 -0
  40. package/src/behavior/cluster/index.ts +1 -0
  41. package/src/endpoint/properties/Behaviors.ts +12 -1
  42. package/src/node/ServerNode.ts +3 -3
  43. 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,mCAXd;AAAA;AAAA;AAAA;AAAA;AAAA;",
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;AAOjD,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACnE,OAAO,EAIH,UAAU,EAGV,SAAS,EAET,YAAY,EAEf,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAGrD,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;IA4D1B;;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"}
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. Matter requires that all
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,EAAE,YAAY,EAAoB,QAAQ,EAAkC,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"}
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. Matter requires that all
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;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMtD;;GAEG;AACH,yBAAiB,iBAAiB,CAAC;IAC/B,SAAsB,UAAU,CAAC,IAAI,EAAE,UAAU,iBAWhD;IAED,SAAsB,KAAK,CAAC,IAAI,EAAE,UAAU,iBAM3C;CACJ"}
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;AAEpC,6BAAgC;AAChC,sBAA8C;AAC9C,uCAA0C;AAC1C,6BAAgC;AAXhC;AAAA;AAAA;AAAA;AAAA;AAgBO,IAAU;AAAA,CAAV,CAAUA,uBAAV;AACH,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,IAAI,KAAK,6BAAa;AAC5B,UAAM,IAAI,KAAK,8BAAc;AAAA,EACjC;AAXA,EAAAA,mBAAsB;AAatB,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,GAdT;",
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": "AAAA;AAAA;AAAA;AAAA;AAAA;AASA,SAAS,eAAe,UAAU,UAAU,QAAQ,cAAc,mBAAmB;AAErF,SAAS,yBAA8B;AAGvC,MAAM,SAAS,OAAO,IAAI,yBAAyB;AAGnD,eAAe,aACX,UACA,UACF;AACE,aAAW,QAAQ,OAAO,OAAO,SAAS,UAAU,SAAS,GAAG;AAC5D,UAAM,UAAW,MAA+B;AAChD,QAAI,CAAC,SAAS;AACV;AAAA,IACJ;AACA,UAAM,WAAW,SAAS,UAAU,WAAW,IAAI;AACnD,QAAI,SAAS,WAAW,QAAQ,SAAS,OAAO,MAAM;AAClD,YAAM,SAAS,MAAM,SAAS,QAAQ;AAAA,IAC1C;AAAA,EACJ;AACJ;AAMA,eAAe,sBACX,UACA,MACA,SACA,qBACA,gBACF;AACE,QAAM,sBAAsB,IAAI,MAAqB;AAErD,QAAM,cAAc,CAAC;AAErB,aAAW,iBAAiB,qBAAqB;AAC7C,UAAM,OAAO,QAAQ,WAAW,aAAa;AAC7C,QAAI,KAAK,cAAc;AACnB,YAAM,QAAS,SAAS,QAAQ,IAAI,EAAiB,aAAa;AAElE,UAAI,MAAM,QAAQ,KAAK,KAAK,MAAM,SAAS,GAAG;AAC1C,cAAM,WAAW,SAAS,KAAK,EAAE,OAAO,WAAS,eAAe,SAAS,MAAM,WAAW,CAAC;AAC3F,YAAI,SAAS,WAAW,MAAM,QAAQ;AAClC,sBAAY,aAAa,IAAI;AAAA,QACjC;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAGA,MAAI,OAAO,KAAK,WAAW,EAAE,SAAS,GAAG;AACrC,UAAM,EAAE,UAAU,QAAQ,IAAI,cAAoB;AAClD,IAAC,SAAS,SAAS,IAAI,EAA6B,cAAc,GAAG,QAAQ;AAC7E,QAAI;AACA,YAAM,SAAS,WAAW,MAAM,WAAW;AAC3C,0BAAoB,KAAK,YAAY,KAAO,OAAO,CAAC;AAAA,IACxD,SAAS,OAAO;AACZ,aAAO;AAAA,QACH,2DAA2D,QAAQ,IAAI,gBAAgB,SAAS,EAAE;AAAA,QAClG;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAEA,SAAO;AACX;AAOA,eAAsB,8BAA8B,MAAkB,gBAA+B;AACjG,QAAM,uBAAuB,oBAAI,IAAY;AAC7C,QAAM,sBAAsB,IAAI,MAAqB;AACrD,QAAM,KAAK,MAAM,OAAM,aAAY;AAC/B,UAAM,aAAa,UAAU,OAAO,MAAM,SAAS,aAAa;AAC5D,UAAI,SAAS,WAAW,MAAM;AAC1B,4BAAoB;AAAA,UAChB,GAAI,MAAM,sBAAsB,UAAU,MAAM,SAAS,SAAS,YAAY,cAAc;AAAA,QAChG;AAAA,MACJ;AACA,UAAI,SAAS,OAAO,MAAM;AAEtB,mBAAW,aAAa,SAAS,QAAQ;AACrC,gBAAM,QAAQ,QAAQ,OAAO,SAAS;AACtC,cAAK,MAAM,OAA6B,gBAAgB;AACpD,iCAAqB,IAAI,GAAG,QAAQ,EAAE,IAAI,MAAM,EAAE,EAAE;AAAA,UACxD;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ,CAAC;AAAA,EACL,CAAC;AAGD,QAAM,QAAQ,WAAW,mBAAmB;AAG5C,MAAI,qBAAqB,OAAO,GAAG;AAC/B,UAAM,cAAc,KAAK,IAAI,IAAI,iBAAiB;AAClD,qBAAiB,SAAS,YAAY,IAAI,GAAG;AACzC,UACI,qBAAqB,IAAI,GAAG,MAAM,SAAS,IAAI,MAAM,OAAO,EAAE,KAC9D,SAAS,MAAM,OAAO,KACtB,CAAC,eAAe,SAAS,MAAM,QAAQ,WAA0B,GACnE;AAEE,cAAM,SAAS,YAAY,OAAO,MAAM,MAAM;AAC9C,YAAI,aAAa,GAAG,MAAM,GAAG;AACzB,gBAAM;AAAA,QACV;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ;AAEA,eAAsB,2CAA2C,UAAoB,gBAA+B;AAChH,QAAM,sBAAsB,IAAI,MAAqB;AACrD,QAAM,aAAa,UAAU,OAAO,MAAM,SAAS,aAAa;AAC5D,QAAI,SAAS,WAAW,MAAM;AAC1B,0BAAoB;AAAA,QAChB,GAAI,MAAM,sBAAsB,UAAU,MAAM,SAAS,SAAS,YAAY,cAAc;AAAA,MAChG;AAAA,IACJ;AAAA,EACJ,CAAC;AAGD,QAAM,QAAQ,WAAW,mBAAmB;AAChD;",
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;AAOjD,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACnE,OAAO,EAIH,UAAU,EAGV,SAAS,EAET,YAAY,EAEf,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAGrD,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;IA4D1B;;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"}
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. Matter requires that all
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,EAAE,YAAY,EAAoB,QAAQ,EAAkC,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"}
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, MatterError, asyncNew, errorOf } from "#general";
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. Matter requires that all
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": "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",
4
+ "mappings": "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",
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;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMtD;;GAEG;AACH,yBAAiB,iBAAiB,CAAC;IAC/B,SAAsB,UAAU,CAAC,IAAI,EAAE,UAAU,iBAWhD;IAED,SAAsB,KAAK,CAAC,IAAI,EAAE,UAAU,iBAM3C;CACJ"}
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;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;",
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-20250612-ddd428561",
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-20250612-ddd428561",
46
- "@matter/model": "0.15.0-alpha.0-20250612-ddd428561",
47
- "@matter/types": "0.15.0-alpha.0-20250612-ddd428561",
48
- "@matter/protocol": "0.15.0-alpha.0-20250612-ddd428561"
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-20250612-ddd428561",
52
- "@matter/testing": "0.15.0-alpha.0-20250612-ddd428561"
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
+ }
@@ -9,4 +9,5 @@ export * from "./ClusterBehaviorUtil.js";
9
9
  export * from "./ClusterEvents.js";
10
10
  export * from "./ClusterInterface.js";
11
11
  export * from "./ClusterState.js";
12
+ export * from "./FabricScopedDataHandler.js";
12
13
  export * from "./ValidatedElements.js";
@@ -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
 
@@ -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, asyncNew, errorOf } from "#general";
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. Matter requires that all
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