@matter/node 0.14.1-alpha.0-20250607-a93593303 → 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/Events.d.ts +8 -3
- package/dist/cjs/behavior/Events.d.ts.map +1 -1
- package/dist/cjs/behavior/Events.js +5 -1
- package/dist/cjs/behavior/Events.js.map +1 -1
- package/dist/cjs/behavior/cluster/ClusterBehaviorUtil.js +3 -3
- package/dist/cjs/behavior/cluster/ClusterBehaviorUtil.js.map +1 -1
- 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/behavior/context/server/OnlineContext.d.ts +2 -1
- package/dist/cjs/behavior/context/server/OnlineContext.d.ts.map +1 -1
- package/dist/cjs/behavior/context/server/OnlineContext.js +22 -7
- package/dist/cjs/behavior/context/server/OnlineContext.js.map +1 -1
- package/dist/cjs/behavior/state/managed/Datasource.d.ts +6 -5
- package/dist/cjs/behavior/state/managed/Datasource.d.ts.map +1 -1
- package/dist/cjs/behavior/state/managed/Datasource.js +25 -14
- package/dist/cjs/behavior/state/managed/Datasource.js.map +1 -1
- package/dist/cjs/behavior/supervision/ValueSupervisor.d.ts +7 -3
- package/dist/cjs/behavior/supervision/ValueSupervisor.d.ts.map +1 -1
- package/dist/cjs/behaviors/access-control/AccessControlServer.d.ts +20 -36
- package/dist/cjs/behaviors/access-control/AccessControlServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/access-control/AccessControlServer.js +153 -87
- package/dist/cjs/behaviors/access-control/AccessControlServer.js.map +1 -1
- package/dist/cjs/behaviors/operational-credentials/OperationalCredentialsServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/operational-credentials/OperationalCredentialsServer.js +8 -19
- package/dist/cjs/behaviors/operational-credentials/OperationalCredentialsServer.js.map +2 -2
- 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/InteractionServer.d.ts.map +1 -1
- package/dist/cjs/node/server/InteractionServer.js +10 -44
- package/dist/cjs/node/server/InteractionServer.js.map +2 -2
- package/dist/cjs/node/server/ProtocolService.js +1 -1
- package/dist/cjs/node/server/ProtocolService.js.map +1 -1
- 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/Events.d.ts +8 -3
- package/dist/esm/behavior/Events.d.ts.map +1 -1
- package/dist/esm/behavior/Events.js +5 -2
- package/dist/esm/behavior/Events.js.map +1 -1
- package/dist/esm/behavior/cluster/ClusterBehaviorUtil.js +4 -4
- package/dist/esm/behavior/cluster/ClusterBehaviorUtil.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/behavior/context/server/OnlineContext.d.ts +2 -1
- package/dist/esm/behavior/context/server/OnlineContext.d.ts.map +1 -1
- package/dist/esm/behavior/context/server/OnlineContext.js +29 -9
- package/dist/esm/behavior/context/server/OnlineContext.js.map +1 -1
- package/dist/esm/behavior/state/managed/Datasource.d.ts +6 -5
- package/dist/esm/behavior/state/managed/Datasource.d.ts.map +1 -1
- package/dist/esm/behavior/state/managed/Datasource.js +25 -14
- package/dist/esm/behavior/state/managed/Datasource.js.map +1 -1
- package/dist/esm/behavior/supervision/ValueSupervisor.d.ts +7 -3
- package/dist/esm/behavior/supervision/ValueSupervisor.d.ts.map +1 -1
- package/dist/esm/behaviors/access-control/AccessControlServer.d.ts +20 -36
- package/dist/esm/behaviors/access-control/AccessControlServer.d.ts.map +1 -1
- package/dist/esm/behaviors/access-control/AccessControlServer.js +153 -88
- package/dist/esm/behaviors/access-control/AccessControlServer.js.map +1 -1
- package/dist/esm/behaviors/operational-credentials/OperationalCredentialsServer.d.ts.map +1 -1
- package/dist/esm/behaviors/operational-credentials/OperationalCredentialsServer.js +8 -19
- package/dist/esm/behaviors/operational-credentials/OperationalCredentialsServer.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/InteractionServer.d.ts.map +1 -1
- package/dist/esm/node/server/InteractionServer.js +10 -44
- package/dist/esm/node/server/InteractionServer.js.map +1 -1
- package/dist/esm/node/server/ProtocolService.js +1 -1
- package/dist/esm/node/server/ProtocolService.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/Events.ts +8 -3
- package/src/behavior/cluster/ClusterBehaviorUtil.ts +4 -4
- package/src/behavior/cluster/FabricScopedDataHandler.ts +142 -0
- package/src/behavior/cluster/index.ts +1 -0
- package/src/behavior/context/server/OnlineContext.ts +39 -9
- package/src/behavior/state/managed/Datasource.ts +37 -20
- package/src/behavior/supervision/ValueSupervisor.ts +8 -3
- package/src/behaviors/access-control/AccessControlServer.ts +210 -102
- package/src/behaviors/operational-credentials/OperationalCredentialsServer.ts +10 -18
- package/src/endpoint/properties/Behaviors.ts +12 -1
- package/src/node/ServerNode.ts +3 -3
- package/src/node/server/InteractionServer.ts +10 -63
- package/src/node/server/ProtocolService.ts +1 -1
- package/src/node/server/ServerEnvironment.ts +16 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/behavior/cluster/ClusterBehaviorUtil.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAiB,cAAc,aAAa,kBAAkB;AAC9D,SAAS,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
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
|
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { MaybePromise, Transaction } from "#general";
|
|
7
7
|
import type { Node } from "#node/Node.js";
|
|
8
8
|
import type { Message } from "#protocol";
|
|
9
|
-
import { MessageExchange } from "#protocol";
|
|
9
|
+
import { FabricAccessControl, MessageExchange } from "#protocol";
|
|
10
10
|
import { FabricIndex, NodeId } from "#types";
|
|
11
11
|
import { ActionContext } from "../ActionContext.js";
|
|
12
12
|
import { NodeActivity } from "../NodeActivity.js";
|
|
@@ -44,6 +44,7 @@ export declare namespace OnlineContext {
|
|
|
44
44
|
timed?: boolean;
|
|
45
45
|
fabricFiltered?: boolean;
|
|
46
46
|
message?: Message;
|
|
47
|
+
aclManager?: FabricAccessControl;
|
|
47
48
|
} & ({
|
|
48
49
|
exchange: MessageExchange;
|
|
49
50
|
fabric?: undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnlineContext.d.ts","sourceRoot":"","sources":["../../../../../src/behavior/context/server/OnlineContext.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"OnlineContext.d.ts","sourceRoot":"","sources":["../../../../../src/behavior/context/server/OnlineContext.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAmE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEtH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAgB,MAAM,WAAW,CAAC;AACvD,OAAO,EAGH,mBAAmB,EACnB,eAAe,EAGlB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AASlD;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,OAAO;IAgCpD;;;;OAIG;QACC,CAAC,SAAS,CAAC,OAAO,EAAE,aAAa,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAa3E;;;;;OAKG;YACK,aAAa,GAAG,WAAW,CAAC,YAAY;IAkBhD;;;;;OAKG;qBAMO,aAAa,CAAC,QAAQ;;EA0IvC;AAED,yBAAiB,aAAa,CAAC;IAC3B,KAAY,OAAO,GAAG;QAClB,IAAI,EAAE,IAAI,CAAC;QACX,QAAQ,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC;QACjC,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,UAAU,CAAC,EAAE,mBAAmB,CAAC;KACpC,GAAG,CACE;QAAE,QAAQ,EAAE,eAAe,CAAC;QAAC,MAAM,CAAC,EAAE,SAAS,CAAC;QAAC,OAAO,CAAC,EAAE,SAAS,CAAA;KAAE,GACtE;QAAE,QAAQ,CAAC,EAAE,SAAS,CAAC;QAAC,MAAM,EAAE,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CACnE,CAAC;IAEF,UAAiB,QAAS,SAAQ,aAAa;QAC3C,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;KAC5B;CACJ"}
|
|
@@ -3,22 +3,29 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
|
|
6
|
+
import { AsyncObservable, Diagnostic, ImplementationError, InternalError, Transaction } from "#general";
|
|
7
|
+
import {
|
|
8
|
+
AccessControl,
|
|
9
|
+
FabricAccessControl,
|
|
10
|
+
SecureSession,
|
|
11
|
+
Subject
|
|
12
|
+
} from "#protocol";
|
|
9
13
|
import { Contextual } from "../Contextual.js";
|
|
10
14
|
import { ContextAgents } from "./ContextAgents.js";
|
|
15
|
+
const exchangeCompleteEvents = /* @__PURE__ */ new WeakMap();
|
|
11
16
|
function OnlineContext(options) {
|
|
12
17
|
let fabric;
|
|
13
18
|
let subject;
|
|
14
19
|
let nodeProtocol;
|
|
15
20
|
let accessLevelCache;
|
|
21
|
+
let aclManager;
|
|
16
22
|
const { exchange, message } = options;
|
|
17
23
|
const session = exchange?.session;
|
|
18
24
|
if (session) {
|
|
19
25
|
SecureSession.assert(session);
|
|
20
26
|
fabric = session.fabric?.fabricIndex;
|
|
21
27
|
subject = session.subjectFor(message);
|
|
28
|
+
aclManager = session?.fabric?.acl ?? new FabricAccessControl();
|
|
22
29
|
} else {
|
|
23
30
|
fabric = options.fabric;
|
|
24
31
|
if (options.subject !== void 0) {
|
|
@@ -26,6 +33,7 @@ function OnlineContext(options) {
|
|
|
26
33
|
} else {
|
|
27
34
|
throw new ImplementationError("OnlineContext requires an authorized subject");
|
|
28
35
|
}
|
|
36
|
+
aclManager = options.aclManager ?? new FabricAccessControl();
|
|
29
37
|
}
|
|
30
38
|
const via = Diagnostic.via(
|
|
31
39
|
`online#${message?.packetHeader?.messageId?.toString(16) ?? "?"}@${subject.id.toString(16)}`
|
|
@@ -99,6 +107,22 @@ function OnlineContext(options) {
|
|
|
99
107
|
SecureSession.assert(session);
|
|
100
108
|
}
|
|
101
109
|
let agents;
|
|
110
|
+
let interactionComplete;
|
|
111
|
+
if (exchange !== void 0) {
|
|
112
|
+
interactionComplete = exchangeCompleteEvents.get(exchange);
|
|
113
|
+
if (interactionComplete === void 0) {
|
|
114
|
+
interactionComplete = new AsyncObservable();
|
|
115
|
+
exchangeCompleteEvents.set(exchange, interactionComplete);
|
|
116
|
+
}
|
|
117
|
+
const notifyInteractionComplete = () => {
|
|
118
|
+
exchange.closing.off(notifyInteractionComplete);
|
|
119
|
+
exchangeCompleteEvents.delete(exchange);
|
|
120
|
+
if (context.interactionComplete?.isObserved) {
|
|
121
|
+
context.interactionComplete.emit(context);
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
exchange.closing.on(notifyInteractionComplete);
|
|
125
|
+
}
|
|
102
126
|
const context = {
|
|
103
127
|
...options,
|
|
104
128
|
session,
|
|
@@ -106,7 +130,7 @@ function OnlineContext(options) {
|
|
|
106
130
|
subject,
|
|
107
131
|
fabric,
|
|
108
132
|
transaction,
|
|
109
|
-
interactionComplete
|
|
133
|
+
interactionComplete,
|
|
110
134
|
...methods,
|
|
111
135
|
// TODO - Matter 1.4 - add support for ARLs
|
|
112
136
|
authorityAt(desiredAccessLevel, location) {
|
|
@@ -120,11 +144,7 @@ function OnlineContext(options) {
|
|
|
120
144
|
if (options.node === void 0) {
|
|
121
145
|
throw new InternalError("OnlineContext initialized without node");
|
|
122
146
|
}
|
|
123
|
-
const
|
|
124
|
-
if (MaybePromise.is(accessControl)) {
|
|
125
|
-
throw new InternalError("AccessControlServer should already be initialized.");
|
|
126
|
-
}
|
|
127
|
-
const accessLevels = accessControl.accessLevelsFor(context, location, aclEndpointContextFor(location));
|
|
147
|
+
const accessLevels = aclManager.accessLevelsFor(context, location, aclEndpointContextFor(location));
|
|
128
148
|
if (accessLevelCache === void 0) {
|
|
129
149
|
accessLevelCache = /* @__PURE__ */ new Map();
|
|
130
150
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/behavior/context/server/OnlineContext.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -9,7 +9,7 @@ import { AccessControl } from "#protocol";
|
|
|
9
9
|
import { RootSupervisor } from "../../supervision/RootSupervisor.js";
|
|
10
10
|
import { ValueSupervisor } from "../../supervision/ValueSupervisor.js";
|
|
11
11
|
import { StateType } from "../StateType.js";
|
|
12
|
-
declare const
|
|
12
|
+
declare const changed: unique symbol;
|
|
13
13
|
/**
|
|
14
14
|
* Datasource manages the canonical root of a state tree. The "state" property of a Behavior is a reference to a
|
|
15
15
|
* Datasource.
|
|
@@ -41,7 +41,7 @@ export interface Datasource<T extends StateType = StateType> extends Transaction
|
|
|
41
41
|
/**
|
|
42
42
|
* Event that gets emitted when the state changes.
|
|
43
43
|
*/
|
|
44
|
-
|
|
44
|
+
changed: Observable<[changes: string[], version: number], MaybePromise>;
|
|
45
45
|
/**
|
|
46
46
|
* Events registered for this Datasource
|
|
47
47
|
*/
|
|
@@ -56,13 +56,14 @@ export declare namespace Datasource {
|
|
|
56
56
|
* Datasource events.
|
|
57
57
|
*/
|
|
58
58
|
type Events = {
|
|
59
|
-
interactionBegin?: Observable<[]>;
|
|
60
|
-
interactionEnd?: Observable<[], MaybePromise>;
|
|
59
|
+
interactionBegin?: Observable<[context?: ValueSupervisor.Session], MaybePromise>;
|
|
60
|
+
interactionEnd?: Observable<[context?: ValueSupervisor.Session], MaybePromise>;
|
|
61
|
+
stateChanged?: Observable<[context?: ValueSupervisor.Session], MaybePromise>;
|
|
61
62
|
} & {
|
|
62
63
|
[K in `${string}$Changing` | `${string}$Changed`]: Observable<Parameters<ValueObserver>, MaybePromise>;
|
|
63
64
|
};
|
|
64
65
|
type InternalEvents = Events & {
|
|
65
|
-
[
|
|
66
|
+
[changed]: Observable<[changes: string[], version: number], MaybePromise>;
|
|
66
67
|
};
|
|
67
68
|
/**
|
|
68
69
|
* Datasource configuration options.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Datasource.d.ts","sourceRoot":"","sources":["../../../../../src/behavior/state/managed/Datasource.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAOH,YAAY,EACZ,UAAU,EACV,WAAW,EACd,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,aAAa,EAAyB,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAM5C,QAAA,MAAM,
|
|
1
|
+
{"version":3,"file":"Datasource.d.ts","sourceRoot":"","sources":["../../../../../src/behavior/state/managed/Datasource.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAOH,YAAY,EACZ,UAAU,EACV,WAAW,EACd,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,aAAa,EAAyB,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAM5C,QAAA,MAAM,OAAO,eAAoB,CAAC;AAIlC;;;;;;GAMG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,CAAE,SAAQ,WAAW,CAAC,QAAQ;IACrF;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAE7D;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;IAEtE;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAE/B;;OAEG;IACH,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC;IAEjC;;OAEG;IACH,OAAO,EAAE,UAAU,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC;IAExE;;OAEG;IACH,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CA0D/G;AAED,yBAAiB,UAAU,CAAC;IACxB;;OAEG;IACH,KAAY,MAAM,GAAG;QACjB,gBAAgB,CAAC,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC;QACjF,cAAc,CAAC,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC;QAC/E,YAAY,CAAC,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC;KAChF,GAAG;SACC,CAAC,IAAI,GAAG,MAAM,WAAW,GAAG,GAAG,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC;KACzG,CAAC;IAEF,KAAY,cAAc,GAAG,MAAM,GAAG;QAClC,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC;KAC7E,CAAC;IAEF;;OAEG;IACH,UAAiB,OAAO,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;QACpD;;WAEG;QACH,IAAI,EAAE,CAAC,CAAC;QAER;;WAEG;QACH,UAAU,EAAE,cAAc,CAAC;QAE3B;;WAEG;QACH,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC;QAEjC;;;;;WAKG;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;QAEhB;;;WAGG;QACH,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC;QAEtB;;WAEG;QACH,KAAK,CAAC,EAAE,KAAK,CAAC;QAEd;;WAEG;QACH,KAAK,CAAC,EAAE,GAAG,CAAC;KACf;IAED;;OAEG;IACH,UAAiB,KAAK;QAClB;;WAEG;QACH,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC;QAE3B;;;;;WAKG;QACH,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACpE;IAED,UAAiB,aAAa;QAC1B,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;KACxE;CACJ"}
|
|
@@ -18,7 +18,7 @@ import { AccessLevel } from "#model";
|
|
|
18
18
|
import { AccessControl, ExpiredReferenceError } from "#protocol";
|
|
19
19
|
const logger = Logger.get("Datasource");
|
|
20
20
|
const FEATURES_KEY = "__features__";
|
|
21
|
-
const
|
|
21
|
+
const changed = Symbol("changed");
|
|
22
22
|
const viewTx = Transaction.open("offline-view", "ro");
|
|
23
23
|
function Datasource(options) {
|
|
24
24
|
const internals = configure(options);
|
|
@@ -40,8 +40,8 @@ function Datasource(options) {
|
|
|
40
40
|
get location() {
|
|
41
41
|
return internals.location;
|
|
42
42
|
},
|
|
43
|
-
get
|
|
44
|
-
return internals.events[
|
|
43
|
+
get changed() {
|
|
44
|
+
return internals.events[changed];
|
|
45
45
|
},
|
|
46
46
|
get events() {
|
|
47
47
|
return internals.events;
|
|
@@ -94,24 +94,26 @@ function configure(options) {
|
|
|
94
94
|
}
|
|
95
95
|
Object.freeze(options.location);
|
|
96
96
|
const events = options.events ?? {};
|
|
97
|
-
events[
|
|
97
|
+
events[changed] = new Observable();
|
|
98
98
|
return {
|
|
99
99
|
...options,
|
|
100
100
|
events,
|
|
101
101
|
version: Crypto.getRandomUInt32(),
|
|
102
102
|
values,
|
|
103
103
|
featuresKey,
|
|
104
|
-
interactionObserver() {
|
|
104
|
+
interactionObserver(session) {
|
|
105
105
|
function handleObserverError(error) {
|
|
106
106
|
logger.error(`Error in ${options.location.path} observer:`, error);
|
|
107
107
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
108
|
+
if (options.events?.interactionEnd?.isObserved) {
|
|
109
|
+
try {
|
|
110
|
+
const result = options.events?.interactionEnd?.emit(session);
|
|
111
|
+
if (MaybePromise.is(result)) {
|
|
112
|
+
return MaybePromise.then(result, void 0, handleObserverError);
|
|
113
|
+
}
|
|
114
|
+
} catch (e) {
|
|
115
|
+
handleObserverError(e);
|
|
112
116
|
}
|
|
113
|
-
} catch (e) {
|
|
114
|
-
handleObserverError(e);
|
|
115
117
|
}
|
|
116
118
|
}
|
|
117
119
|
};
|
|
@@ -225,8 +227,11 @@ function createReference(resource, internals, session) {
|
|
|
225
227
|
transaction.addResourcesSync(resource);
|
|
226
228
|
transaction.addParticipants(participant);
|
|
227
229
|
transaction.beginSync();
|
|
228
|
-
if (session.interactionComplete && !session.interactionComplete.isObservedBy(internals.interactionObserver)) {
|
|
229
|
-
|
|
230
|
+
if (!session.interactionStarted && session.interactionComplete && !session.interactionComplete.isObservedBy(internals.interactionObserver)) {
|
|
231
|
+
session.interactionStarted = true;
|
|
232
|
+
if (internals.events?.interactionBegin?.isObserved) {
|
|
233
|
+
internals.events?.interactionBegin?.emit(session);
|
|
234
|
+
}
|
|
230
235
|
session.interactionComplete.on(internals.interactionObserver);
|
|
231
236
|
}
|
|
232
237
|
}
|
|
@@ -321,6 +326,12 @@ function createReference(resource, internals, session) {
|
|
|
321
326
|
}
|
|
322
327
|
if (changes) {
|
|
323
328
|
incrementVersion();
|
|
329
|
+
if (internals.events.stateChanged?.isObserved) {
|
|
330
|
+
changes.notifications.push({
|
|
331
|
+
event: internals.events.stateChanged,
|
|
332
|
+
params: [session]
|
|
333
|
+
});
|
|
334
|
+
}
|
|
324
335
|
}
|
|
325
336
|
}
|
|
326
337
|
function commit1() {
|
|
@@ -364,7 +375,7 @@ function createReference(resource, internals, session) {
|
|
|
364
375
|
}
|
|
365
376
|
}
|
|
366
377
|
}
|
|
367
|
-
const changeSetResult = internals.events[
|
|
378
|
+
const changeSetResult = internals.events[changed]?.emit(
|
|
368
379
|
Array.from(changes.changeList.values()),
|
|
369
380
|
internals.version
|
|
370
381
|
);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/behavior/state/managed/Datasource.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,mBAAmB;AAE5B,SAAS,eAAe,6BAA6B;AAKrD,MAAM,SAAS,OAAO,IAAI,YAAY;AAEtC,MAAM,eAAe;AAErB,MAAM,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["context"]
|
|
6
6
|
}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import
|
|
7
|
-
import { AsyncObservable } from "#general";
|
|
6
|
+
import { ActionContext } from "#behavior/context/ActionContext.js";
|
|
7
|
+
import type { AsyncObservable, Transaction } from "#general";
|
|
8
8
|
import { DataModelPath, Schema } from "#model";
|
|
9
9
|
import type { AccessControl, Val } from "#protocol";
|
|
10
10
|
import type { ValidationLocation } from "../state/validation/location.js";
|
|
@@ -73,7 +73,11 @@ export declare namespace ValueSupervisor {
|
|
|
73
73
|
/**
|
|
74
74
|
* If present the session is associated with an online interaction. Emits when the interaction ends.
|
|
75
75
|
*/
|
|
76
|
-
interactionComplete?: AsyncObservable<[]>;
|
|
76
|
+
interactionComplete?: AsyncObservable<[session?: ActionContext]>;
|
|
77
|
+
/**
|
|
78
|
+
* Set to true when the interaction has started and the interactionBegin event was emitted for this session
|
|
79
|
+
*/
|
|
80
|
+
interactionStarted?: boolean;
|
|
77
81
|
/**
|
|
78
82
|
* If true, structs initialize without named properties which are more expensive to install. This is useful
|
|
79
83
|
* when implementing the Matter protocol where ID is the only value necessary.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValueSupervisor.d.ts","sourceRoot":"","sources":["../../../../src/behavior/supervision/ValueSupervisor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"ValueSupervisor.d.ts","sourceRoot":"","sources":["../../../../src/behavior/supervision/ValueSupervisor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,eAAe;IAC5B;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAE/B;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,QAAQ,GAAG,SAAS,CAAC;IAExD;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;IAExC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC;IAEtC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC;CACvC;AAED,yBAAiB,eAAe,CAAC;IAC7B;;OAEG;IACH,UAAiB,OAAQ,SAAQ,aAAa,CAAC,OAAO;QAClD;;WAEG;QACH,WAAW,EAAE,WAAW,CAAC;QAEzB;;;WAGG;QACH,aAAa,CAAC,EAAE,OAAO,CAAC;QAExB;;WAEG;QACH,mBAAmB,CAAC,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;QAEjE;;WAEG;QACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAE7B;;;WAGG;QACH,QAAQ,CAAC,EAAE,OAAO,CAAC;KACtB;IAED,KAAY,QAAQ,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAE5F,KAAY,MAAM,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,KAAK,GAAG,CAAC;IAEzE,KAAY,KAAK,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,KAAK,GAAG,CAAC;IAElG,KAAY,IAAI,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;CAC1C"}
|