@matter/node 0.14.1-alpha.0-20250606-a9bcd03f9 → 0.15.0-alpha.0-20250612-ddd428561
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/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/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/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/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/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/package.json +7 -7
- package/src/behavior/Events.ts +8 -3
- package/src/behavior/cluster/ClusterBehaviorUtil.ts +4 -4
- 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/node/server/InteractionServer.ts +10 -63
- package/src/node/server/ProtocolService.ts +1 -1
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
* Copyright 2022-2025 Project CHIP Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { ValueSupervisor } from "#behavior/supervision/ValueSupervisor.js";
|
|
6
7
|
import type { Endpoint } from "#endpoint/Endpoint.js";
|
|
7
|
-
import {
|
|
8
|
+
import { BasicObservable, EventEmitter, MaybePromise, Observable, ObserverErrorHandler, ObserverPromiseHandler, QuietObservable } from "#general";
|
|
8
9
|
import { type ValueModel } from "#model";
|
|
9
10
|
import type { Behavior } from "./Behavior.js";
|
|
10
11
|
/**
|
|
@@ -16,11 +17,15 @@ export declare class Events extends EventEmitter {
|
|
|
16
17
|
/**
|
|
17
18
|
* Emitted when state associated with this behavior is first mutated by a specific interaction.
|
|
18
19
|
*/
|
|
19
|
-
interactionBegin: Observable<[],
|
|
20
|
+
interactionBegin: Observable<[context?: ValueSupervisor.Session | undefined], MaybePromise>;
|
|
20
21
|
/**
|
|
21
22
|
* Emitted when a mutating interaction completes.
|
|
22
23
|
*/
|
|
23
|
-
interactionEnd:
|
|
24
|
+
interactionEnd: Observable<[context?: ValueSupervisor.Session | undefined], MaybePromise>;
|
|
25
|
+
/**
|
|
26
|
+
* Emitted when the state of this behavior changes at the end after all concrete $Changed events were emitted.
|
|
27
|
+
*/
|
|
28
|
+
stateChanged: Observable<[context?: ValueSupervisor.Session | undefined], MaybePromise>;
|
|
24
29
|
get endpoint(): Endpoint<import("../index.js").EndpointType.Empty> | undefined;
|
|
25
30
|
get behavior(): Behavior.Type | undefined;
|
|
26
31
|
toString(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../../../src/behavior/Events.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAEH,eAAe,
|
|
1
|
+
{"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../../../src/behavior/Events.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAEH,eAAe,EAEf,YAAY,EAGZ,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EAGlB,MAAM,UAAU,CAAC;AAClB,OAAO,EAA+D,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAGtG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAK9C;;GAEG;AACH,qBAAa,MAAO,SAAQ,YAAY;;IAIpC,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI;IAKtD;;OAEG;IACH,gBAAgB,4EAAmE;IAEnF;;OAEG;IACH,cAAc,4EAAmE;IAEjF;;OAEG;IACH,YAAY,4EAAmE;IAE/E,IAAI,QAAQ,mEAEX;IAED,IAAI,QAAQ,8BAEX;IAEQ,QAAQ;CAGpB;AAED,yBAAiB,MAAM,CAAC;IACpB,UAAiB,OAAO;KAAG;CAC9B;AAED;;GAEG;AACH,qBAAa,YAAY,CAAC,CAAC,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,eAAe,CAAC,CAAC,CAAC;;gBAKxG,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,MAAM,EACb,YAAY,CAAC,EAAE,oBAAoB,EACnC,cAAc,CAAC,EAAE,sBAAsB;IAQ3C;;OAEG;IACH,IAAI,MAAM,MAET;IAED,SAAS,KAAK,KAAK,WAElB;CACJ;AAED;;;;GAIG;AACH,qBAAa,YAAY,CAAC,CAAC,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,YAAY,CAAC,CAAC,CAAC;gBAC7F,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM;CAavC;AAED;;;;;GAKG;AACH,qBAAa,WAAW,CAAC,CAAC,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,YAAY,CAAC,CAAC,CAAC;;IACxG,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAS;gBAIxB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM;IA0DpC;;;;;OAKG;IACH,IAAI,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,CAE1B;IAED;;;;;;;OAOG;IACH,IAAI,KAAK,IAAI,eAAe,CAAC,CAAC,CAAC,CAE9B;IAEQ,QAAQ;IAQR,CAAC,MAAM,CAAC,OAAO,CAAC;CAM5B;AAED;;;;GAIG;AACH,qBAAa,UAAU,CAAC,CAAC,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;;IACzG,SAAkB,SAAS,QAAQ;gBAIvB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC;IAe/E,IAAa,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,CAEnC;IAED,IAAa,KAAK,IAAI,eAAe,CAAC,CAAC,CAAC,CAEvC;IAEQ,CAAC,MAAM,CAAC,OAAO,CAAC;CAI5B"}
|
|
@@ -95,7 +95,11 @@ class Events extends import_general.EventEmitter {
|
|
|
95
95
|
/**
|
|
96
96
|
* Emitted when a mutating interaction completes.
|
|
97
97
|
*/
|
|
98
|
-
interactionEnd = (0, import_general.
|
|
98
|
+
interactionEnd = (0, import_general.Observable)();
|
|
99
|
+
/**
|
|
100
|
+
* Emitted when the state of this behavior changes at the end after all concrete $Changed events were emitted.
|
|
101
|
+
*/
|
|
102
|
+
stateChanged = (0, import_general.Observable)();
|
|
99
103
|
get endpoint() {
|
|
100
104
|
return this.#endpoint;
|
|
101
105
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/behavior/Events.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -202,9 +202,9 @@ function createDerivedEvents(cluster, scope, base, newProps) {
|
|
|
202
202
|
base: base.Events,
|
|
203
203
|
instanceDescriptors,
|
|
204
204
|
initialize() {
|
|
205
|
-
this.interactionBegin = new import_general.
|
|
206
|
-
this.interactionEnd = new import_general.
|
|
207
|
-
this.
|
|
205
|
+
this.interactionBegin = new import_general.Observable();
|
|
206
|
+
this.interactionEnd = new import_general.Observable();
|
|
207
|
+
this.stateChanged = new import_general.Observable();
|
|
208
208
|
for (const name of eventNames) {
|
|
209
209
|
this.addEvent(name);
|
|
210
210
|
}
|
|
@@ -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;AAAA;AAMA,oBAA8D;AAC9D,
|
|
4
|
+
"mappings": "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",
|
|
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"}
|
|
@@ -21,7 +21,6 @@ __export(OnlineContext_exports, {
|
|
|
21
21
|
OnlineContext: () => OnlineContext
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(OnlineContext_exports);
|
|
24
|
-
var import_access_control = require("#behaviors/access-control");
|
|
25
24
|
var import_general = require("#general");
|
|
26
25
|
var import_protocol = require("#protocol");
|
|
27
26
|
var import_Contextual = require("../Contextual.js");
|
|
@@ -31,17 +30,20 @@ var import_ContextAgents = require("./ContextAgents.js");
|
|
|
31
30
|
* Copyright 2022-2025 Matter.js Authors
|
|
32
31
|
* SPDX-License-Identifier: Apache-2.0
|
|
33
32
|
*/
|
|
33
|
+
const exchangeCompleteEvents = /* @__PURE__ */ new WeakMap();
|
|
34
34
|
function OnlineContext(options) {
|
|
35
35
|
let fabric;
|
|
36
36
|
let subject;
|
|
37
37
|
let nodeProtocol;
|
|
38
38
|
let accessLevelCache;
|
|
39
|
+
let aclManager;
|
|
39
40
|
const { exchange, message } = options;
|
|
40
41
|
const session = exchange?.session;
|
|
41
42
|
if (session) {
|
|
42
43
|
import_protocol.SecureSession.assert(session);
|
|
43
44
|
fabric = session.fabric?.fabricIndex;
|
|
44
45
|
subject = session.subjectFor(message);
|
|
46
|
+
aclManager = session?.fabric?.acl ?? new import_protocol.FabricAccessControl();
|
|
45
47
|
} else {
|
|
46
48
|
fabric = options.fabric;
|
|
47
49
|
if (options.subject !== void 0) {
|
|
@@ -49,6 +51,7 @@ function OnlineContext(options) {
|
|
|
49
51
|
} else {
|
|
50
52
|
throw new import_general.ImplementationError("OnlineContext requires an authorized subject");
|
|
51
53
|
}
|
|
54
|
+
aclManager = options.aclManager ?? new import_protocol.FabricAccessControl();
|
|
52
55
|
}
|
|
53
56
|
const via = import_general.Diagnostic.via(
|
|
54
57
|
`online#${message?.packetHeader?.messageId?.toString(16) ?? "?"}@${subject.id.toString(16)}`
|
|
@@ -122,6 +125,22 @@ function OnlineContext(options) {
|
|
|
122
125
|
import_protocol.SecureSession.assert(session);
|
|
123
126
|
}
|
|
124
127
|
let agents;
|
|
128
|
+
let interactionComplete;
|
|
129
|
+
if (exchange !== void 0) {
|
|
130
|
+
interactionComplete = exchangeCompleteEvents.get(exchange);
|
|
131
|
+
if (interactionComplete === void 0) {
|
|
132
|
+
interactionComplete = new import_general.AsyncObservable();
|
|
133
|
+
exchangeCompleteEvents.set(exchange, interactionComplete);
|
|
134
|
+
}
|
|
135
|
+
const notifyInteractionComplete = () => {
|
|
136
|
+
exchange.closing.off(notifyInteractionComplete);
|
|
137
|
+
exchangeCompleteEvents.delete(exchange);
|
|
138
|
+
if (context.interactionComplete?.isObserved) {
|
|
139
|
+
context.interactionComplete.emit(context);
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
exchange.closing.on(notifyInteractionComplete);
|
|
143
|
+
}
|
|
125
144
|
const context = {
|
|
126
145
|
...options,
|
|
127
146
|
session,
|
|
@@ -129,7 +148,7 @@ function OnlineContext(options) {
|
|
|
129
148
|
subject,
|
|
130
149
|
fabric,
|
|
131
150
|
transaction,
|
|
132
|
-
interactionComplete
|
|
151
|
+
interactionComplete,
|
|
133
152
|
...methods,
|
|
134
153
|
// TODO - Matter 1.4 - add support for ARLs
|
|
135
154
|
authorityAt(desiredAccessLevel, location) {
|
|
@@ -143,11 +162,7 @@ function OnlineContext(options) {
|
|
|
143
162
|
if (options.node === void 0) {
|
|
144
163
|
throw new import_general.InternalError("OnlineContext initialized without node");
|
|
145
164
|
}
|
|
146
|
-
const
|
|
147
|
-
if (import_general.MaybePromise.is(accessControl)) {
|
|
148
|
-
throw new import_general.InternalError("AccessControlServer should already be initialized.");
|
|
149
|
-
}
|
|
150
|
-
const accessLevels = accessControl.accessLevelsFor(context, location, aclEndpointContextFor(location));
|
|
165
|
+
const accessLevels = aclManager.accessLevelsFor(context, location, aclEndpointContextFor(location));
|
|
151
166
|
if (accessLevelCache === void 0) {
|
|
152
167
|
accessLevelCache = /* @__PURE__ */ new Map();
|
|
153
168
|
}
|
|
@@ -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":"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"}
|
|
@@ -31,7 +31,7 @@ var import_protocol = require("#protocol");
|
|
|
31
31
|
*/
|
|
32
32
|
const logger = import_general.Logger.get("Datasource");
|
|
33
33
|
const FEATURES_KEY = "__features__";
|
|
34
|
-
const
|
|
34
|
+
const changed = Symbol("changed");
|
|
35
35
|
const viewTx = import_general.Transaction.open("offline-view", "ro");
|
|
36
36
|
function Datasource(options) {
|
|
37
37
|
const internals = configure(options);
|
|
@@ -53,8 +53,8 @@ function Datasource(options) {
|
|
|
53
53
|
get location() {
|
|
54
54
|
return internals.location;
|
|
55
55
|
},
|
|
56
|
-
get
|
|
57
|
-
return internals.events[
|
|
56
|
+
get changed() {
|
|
57
|
+
return internals.events[changed];
|
|
58
58
|
},
|
|
59
59
|
get events() {
|
|
60
60
|
return internals.events;
|
|
@@ -107,24 +107,26 @@ function configure(options) {
|
|
|
107
107
|
}
|
|
108
108
|
Object.freeze(options.location);
|
|
109
109
|
const events = options.events ?? {};
|
|
110
|
-
events[
|
|
110
|
+
events[changed] = new import_general.Observable();
|
|
111
111
|
return {
|
|
112
112
|
...options,
|
|
113
113
|
events,
|
|
114
114
|
version: import_general.Crypto.getRandomUInt32(),
|
|
115
115
|
values,
|
|
116
116
|
featuresKey,
|
|
117
|
-
interactionObserver() {
|
|
117
|
+
interactionObserver(session) {
|
|
118
118
|
function handleObserverError(error) {
|
|
119
119
|
logger.error(`Error in ${options.location.path} observer:`, error);
|
|
120
120
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
121
|
+
if (options.events?.interactionEnd?.isObserved) {
|
|
122
|
+
try {
|
|
123
|
+
const result = options.events?.interactionEnd?.emit(session);
|
|
124
|
+
if (import_general.MaybePromise.is(result)) {
|
|
125
|
+
return import_general.MaybePromise.then(result, void 0, handleObserverError);
|
|
126
|
+
}
|
|
127
|
+
} catch (e) {
|
|
128
|
+
handleObserverError(e);
|
|
125
129
|
}
|
|
126
|
-
} catch (e) {
|
|
127
|
-
handleObserverError(e);
|
|
128
130
|
}
|
|
129
131
|
}
|
|
130
132
|
};
|
|
@@ -238,8 +240,11 @@ function createReference(resource, internals, session) {
|
|
|
238
240
|
transaction.addResourcesSync(resource);
|
|
239
241
|
transaction.addParticipants(participant);
|
|
240
242
|
transaction.beginSync();
|
|
241
|
-
if (session.interactionComplete && !session.interactionComplete.isObservedBy(internals.interactionObserver)) {
|
|
242
|
-
|
|
243
|
+
if (!session.interactionStarted && session.interactionComplete && !session.interactionComplete.isObservedBy(internals.interactionObserver)) {
|
|
244
|
+
session.interactionStarted = true;
|
|
245
|
+
if (internals.events?.interactionBegin?.isObserved) {
|
|
246
|
+
internals.events?.interactionBegin?.emit(session);
|
|
247
|
+
}
|
|
243
248
|
session.interactionComplete.on(internals.interactionObserver);
|
|
244
249
|
}
|
|
245
250
|
}
|
|
@@ -334,6 +339,12 @@ function createReference(resource, internals, session) {
|
|
|
334
339
|
}
|
|
335
340
|
if (changes) {
|
|
336
341
|
incrementVersion();
|
|
342
|
+
if (internals.events.stateChanged?.isObserved) {
|
|
343
|
+
changes.notifications.push({
|
|
344
|
+
event: internals.events.stateChanged,
|
|
345
|
+
params: [session]
|
|
346
|
+
});
|
|
347
|
+
}
|
|
337
348
|
}
|
|
338
349
|
}
|
|
339
350
|
function commit1() {
|
|
@@ -377,7 +388,7 @@ function createReference(resource, internals, session) {
|
|
|
377
388
|
}
|
|
378
389
|
}
|
|
379
390
|
}
|
|
380
|
-
const changeSetResult = internals.events[
|
|
391
|
+
const changeSetResult = internals.events[changed]?.emit(
|
|
381
392
|
Array.from(changes.changeList.values()),
|
|
382
393
|
internals.version
|
|
383
394
|
);
|
|
@@ -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,qBAUO;AACP,mBAA4B;AAE5B,sBAAqD;AAnBrD;AAAA;AAAA;AAAA;AAAA;AAwBA,MAAM,SAAS,sBAAO,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"}
|
|
@@ -3,12 +3,10 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { ActionContext } from "#behavior/context/ActionContext.js";
|
|
7
6
|
import { AccessControl as AccessControlTypes } from "#clusters/access-control";
|
|
8
7
|
import { MaybePromise } from "#general";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import { ClusterId } from "#types";
|
|
8
|
+
import { AclEndpointContext, AclEntry, AclList, Fabric, IncomingSubjectDescriptor, MessageExchange } from "#protocol";
|
|
9
|
+
import { ClusterId, FabricIndex, SubjectId } from "#types";
|
|
12
10
|
declare const AccessControlServer_base: import("../../index.js").ClusterBehavior.Type<import("#types").ClusterComposer.WithFeatures<AccessControlTypes.Cluster, readonly ["Extension"]>, import("../../index.js").ClusterBehavior.Type<AccessControlTypes.Cluster, import("../../index.js").ClusterBehavior.Type<import("#types").ClusterType.Of<{
|
|
13
11
|
readonly id: 0;
|
|
14
12
|
readonly revision: 0;
|
|
@@ -19,17 +17,15 @@ declare const AccessControlServer_base: import("../../index.js").ClusterBehavior
|
|
|
19
17
|
}>, typeof import("../../index.js").ClusterBehavior, import("./AccessControlInterface.js").AccessControlInterface>, import("./AccessControlInterface.js").AccessControlInterface>, import("./AccessControlInterface.js").AccessControlInterface>;
|
|
20
18
|
/**
|
|
21
19
|
* This is the default server implementation of AccessControlBehavior.
|
|
20
|
+
*
|
|
21
|
+
* When custom extensions are used, the `extensionEntryValidator` and `extensionEntryAccessCheck` methods can be
|
|
22
|
+
* overridden to implement custom validation and access checks for the extension entries.
|
|
22
23
|
*/
|
|
23
24
|
export declare class AccessControlServer extends AccessControlServer_base {
|
|
24
25
|
#private;
|
|
25
26
|
internal: AccessControlServer.Internal;
|
|
26
27
|
initialize(): MaybePromise;
|
|
27
|
-
|
|
28
|
-
* Implements the access control check for the given context, location and endpoint and is called by the
|
|
29
|
-
* InteractionServer. The method returns the list of granted Access privileges for the given context, location and
|
|
30
|
-
* endpoint.
|
|
31
|
-
*/
|
|
32
|
-
accessLevelsFor(context: ActionContext, location: AccessControl.Location, endpoint?: AclEndpointContext): AccessLevel[];
|
|
28
|
+
addDefaultCaseAcl(fabric: Fabric, subjects: SubjectId[]): void;
|
|
33
29
|
/**
|
|
34
30
|
* This method allows to implement the validation of manufacturer specific ACL extensions when an extension entry is
|
|
35
31
|
* added or changed. The default implementation checks whether the extension is a valid TLV and possible to decode.
|
|
@@ -45,36 +41,24 @@ export declare class AccessControlServer extends AccessControlServer_base {
|
|
|
45
41
|
* The default implementation always returns true. Override this method in your own behavior to implement custom
|
|
46
42
|
* validation.
|
|
47
43
|
*/
|
|
48
|
-
protected extensionEntryAccessCheck(_aclList:
|
|
49
|
-
/**
|
|
50
|
-
* The AccessControlManager instance that is used to manage the ACL for this behavior.
|
|
51
|
-
*/
|
|
52
|
-
get aclManager(): AccessControlManager;
|
|
53
|
-
resetDelayedAccessControlList(): void;
|
|
54
|
-
/**
|
|
55
|
-
* If set to true, the ACL will not be updated immediately when it changes, but only when the `aclUpdateDelayed`
|
|
56
|
-
* property is set to false again.
|
|
57
|
-
* This is a hack to prevent the ACL from updating while we are in the middle of a write transaction and will be
|
|
58
|
-
* removed again once we somehow handle relevant sub transactions.
|
|
59
|
-
*/
|
|
60
|
-
get aclUpdateDelayed(): boolean;
|
|
61
|
-
/**
|
|
62
|
-
* If set to true, the ACL will not be updated immediately when it changes, but only when the `aclUpdateDelayed`
|
|
63
|
-
* property is set to false again.
|
|
64
|
-
* This is a hack to prevent the ACL from updating while we are in the middle of a write transaction and will be
|
|
65
|
-
* removed again once we somehow handle relevant sub transactions.
|
|
66
|
-
*/
|
|
67
|
-
set aclUpdateDelayed(value: boolean);
|
|
44
|
+
protected extensionEntryAccessCheck(_aclList: AclList, _aclEntry: AclEntry, _subjectDesc: IncomingSubjectDescriptor, _endpoint: AclEndpointContext, _clusterId: ClusterId): boolean;
|
|
68
45
|
}
|
|
69
46
|
export declare namespace AccessControlServer {
|
|
70
47
|
class Internal {
|
|
71
|
-
/**
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
48
|
+
/** Is the cluster logic initialized? Used to block events before full initialization. */
|
|
49
|
+
initialized: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* When an online and potentially chunked ACL writing happens, we will delay the update and store the exchange
|
|
52
|
+
* used for the writing. With this we also verify that concurrent writes are blocked and will not mix the data.
|
|
53
|
+
*/
|
|
54
|
+
aclUpdateDelayed: Map<FabricIndex, MessageExchange | undefined>;
|
|
55
|
+
/** Latest delayed data of acl attribute */
|
|
56
|
+
delayedAclData: Map<FabricIndex, AccessControlTypes.AccessControlEntry[]>;
|
|
77
57
|
}
|
|
58
|
+
const ExtensionInterface: {
|
|
59
|
+
extensionEntryValidator: (extension: AccessControlTypes.AccessControlExtension) => void;
|
|
60
|
+
extensionEntryAccessCheck: (aclList: AclList, aclEntry: AclEntry, subjectDesc: IncomingSubjectDescriptor, endpoint: AclEndpointContext, clusterId: ClusterId) => boolean;
|
|
61
|
+
};
|
|
78
62
|
}
|
|
79
63
|
export {};
|
|
80
64
|
//# sourceMappingURL=AccessControlServer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessControlServer.d.ts","sourceRoot":"","sources":["../../../../src/behaviors/access-control/AccessControlServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"AccessControlServer.d.ts","sourceRoot":"","sources":["../../../../src/behaviors/access-control/AccessControlServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,aAAa,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAmC,YAAY,EAAE,MAAM,UAAU,CAAC;AAEzE,OAAO,EAEH,kBAAkB,EAClB,QAAQ,EACR,OAAO,EACP,MAAM,EAEN,yBAAyB,EACzB,eAAe,EAGlB,MAAM,WAAW,CAAC;AACnB,OAAO,EAEH,SAAS,EAGT,WAAW,EAKX,SAAS,EAGZ,MAAM,QAAQ,CAAC;;;;;;;;;AAKhB;;;;;GAKG;AACH,qBAAa,mBAAoB,SAAQ,wBAAuC;;IACpE,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,CAAC;IAEtC,UAAU,IAAI,YAAY;IA4DnC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE;IA4RvD;;;;;;;OAOG;IACH,SAAS,CAAC,uBAAuB,CAAC,SAAS,EAAE,kBAAkB,CAAC,sBAAsB;IActF;;;;;OAKG;IACH,SAAS,CAAC,yBAAyB,CAC/B,QAAQ,EAAE,OAAO,EACjB,SAAS,EAAE,QAAQ,EACnB,YAAY,EAAE,yBAAyB,EACvC,SAAS,EAAE,kBAAkB,EAC7B,UAAU,EAAE,SAAS;CA0I5B;AAED,yBAAiB,mBAAmB,CAAC;IACjC,MAAa,QAAQ;QACjB,yFAAyF;QACzF,WAAW,UAAS;QAEpB;;;WAGG;QACH,gBAAgB,gDAAuD;QAEvE,2CAA2C;QAC3C,cAAc,4DAAmE;KACpF;IAEc,MAAM,kBAAkB,EAAE;QACrC,uBAAuB,EAAE,CAAC,SAAS,EAAE,kBAAkB,CAAC,sBAAsB,KAAK,IAAI,CAAC;QACxF,yBAAyB,EAAE,CACvB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,yBAAyB,EACtC,QAAQ,EAAE,kBAAkB,EAC5B,SAAS,EAAE,SAAS,KACnB,OAAO,CAAC;KAChB,CAAC;CACL"}
|