@matter/node 0.16.0-alpha.0-20250906-463912bd0 → 0.16.0-alpha.0-20250912-0d12bf718
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/Behavior.d.ts +0 -18
- package/dist/cjs/behavior/Behavior.d.ts.map +1 -1
- package/dist/cjs/behavior/Behavior.js +0 -34
- package/dist/cjs/behavior/Behavior.js.map +1 -1
- package/dist/cjs/behavior/Transitions.js +2 -2
- package/dist/cjs/behavior/Transitions.js.map +1 -1
- package/dist/cjs/behavior/context/ActionContext.d.ts +4 -29
- package/dist/cjs/behavior/context/ActionContext.d.ts.map +1 -1
- package/dist/cjs/behavior/context/server/{OfflineContext.d.ts → LocalActorContext.d.ts} +16 -12
- package/dist/cjs/behavior/context/server/LocalActorContext.d.ts.map +1 -0
- package/dist/cjs/behavior/context/server/{OfflineContext.js → LocalActorContext.js} +10 -9
- package/dist/cjs/behavior/context/server/LocalActorContext.js.map +6 -0
- package/dist/cjs/behavior/context/server/RemoteActorContext.d.ts +80 -0
- package/dist/cjs/behavior/context/server/RemoteActorContext.d.ts.map +1 -0
- package/dist/cjs/behavior/context/server/{OnlineContext.js → RemoteActorContext.js} +15 -27
- package/dist/cjs/behavior/context/server/RemoteActorContext.js.map +6 -0
- package/dist/cjs/behavior/context/server/index.d.ts +2 -2
- package/dist/cjs/behavior/context/server/index.d.ts.map +1 -1
- package/dist/cjs/behavior/context/server/index.js +2 -2
- package/dist/cjs/behavior/context/server/index.js.map +1 -1
- package/dist/cjs/behavior/internal/Reactors.d.ts.map +1 -1
- package/dist/cjs/behavior/internal/Reactors.js +4 -3
- package/dist/cjs/behavior/internal/Reactors.js.map +1 -1
- package/dist/cjs/behavior/state/managed/Datasource.d.ts.map +1 -1
- package/dist/cjs/behavior/state/managed/Datasource.js +1 -6
- package/dist/cjs/behavior/state/managed/Datasource.js.map +1 -1
- package/dist/cjs/behavior/state/managed/values/ListManager.d.ts.map +1 -1
- package/dist/cjs/behavior/state/managed/values/ListManager.js +4 -4
- package/dist/cjs/behavior/state/managed/values/ListManager.js.map +1 -1
- package/dist/cjs/behavior/supervision/ValueSupervisor.d.ts +16 -9
- package/dist/cjs/behavior/supervision/ValueSupervisor.d.ts.map +1 -1
- package/dist/cjs/behavior/system/commissioning/CommissioningClient.d.ts +12 -1
- package/dist/cjs/behavior/system/commissioning/CommissioningClient.d.ts.map +1 -1
- package/dist/cjs/behavior/system/commissioning/CommissioningClient.js +1 -0
- package/dist/cjs/behavior/system/commissioning/CommissioningClient.js.map +1 -1
- package/dist/cjs/behavior/system/network/ClientNetworkRuntime.d.ts.map +1 -1
- package/dist/cjs/behavior/system/network/ClientNetworkRuntime.js +3 -1
- package/dist/cjs/behavior/system/network/ClientNetworkRuntime.js.map +1 -1
- package/dist/cjs/behavior/system/network/NetworkClient.d.ts +9 -0
- package/dist/cjs/behavior/system/network/NetworkClient.d.ts.map +1 -1
- package/dist/cjs/behavior/system/network/NetworkClient.js +20 -0
- package/dist/cjs/behavior/system/network/NetworkClient.js.map +1 -1
- package/dist/cjs/behaviors/access-control/AccessControlServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/access-control/AccessControlServer.js +19 -15
- package/dist/cjs/behaviors/access-control/AccessControlServer.js.map +1 -1
- package/dist/cjs/behaviors/administrator-commissioning/AdministratorCommissioningServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/administrator-commissioning/AdministratorCommissioningServer.js +5 -5
- package/dist/cjs/behaviors/administrator-commissioning/AdministratorCommissioningServer.js.map +1 -1
- package/dist/cjs/behaviors/general-commissioning/GeneralCommissioningServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/general-commissioning/GeneralCommissioningServer.js +6 -6
- package/dist/cjs/behaviors/general-commissioning/GeneralCommissioningServer.js.map +1 -1
- package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.js +2 -4
- package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.js.map +1 -1
- package/dist/cjs/behaviors/group-key-management/GroupKeyManagementServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/group-key-management/GroupKeyManagementServer.js +9 -6
- package/dist/cjs/behaviors/group-key-management/GroupKeyManagementServer.js.map +1 -1
- package/dist/cjs/behaviors/groups/GroupsServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/groups/GroupsServer.js +12 -9
- package/dist/cjs/behaviors/groups/GroupsServer.js.map +2 -2
- package/dist/cjs/behaviors/operational-credentials/OperationalCredentialsServer.d.ts.map +1 -1
- package/dist/cjs/behaviors/operational-credentials/OperationalCredentialsServer.js +16 -9
- package/dist/cjs/behaviors/operational-credentials/OperationalCredentialsServer.js.map +1 -1
- package/dist/cjs/behaviors/window-covering/WindowCoveringServer.js +1 -1
- package/dist/cjs/behaviors/window-covering/WindowCoveringServer.js.map +1 -1
- package/dist/cjs/endpoint/Agent.d.ts +14 -0
- package/dist/cjs/endpoint/Agent.d.ts.map +1 -1
- package/dist/cjs/endpoint/Agent.js +32 -0
- package/dist/cjs/endpoint/Agent.js.map +1 -1
- package/dist/cjs/endpoint/Endpoint.js +2 -2
- package/dist/cjs/endpoint/Endpoint.js.map +1 -1
- package/dist/cjs/endpoint/properties/Behaviors.js +4 -4
- package/dist/cjs/endpoint/properties/Behaviors.js.map +1 -1
- package/dist/cjs/endpoint/properties/Commands.js +2 -2
- package/dist/cjs/endpoint/properties/Commands.js.map +1 -1
- package/dist/cjs/node/server/IdentityService.js +2 -2
- package/dist/cjs/node/server/IdentityService.js.map +1 -1
- package/dist/cjs/node/server/InteractionServer.js.map +1 -1
- package/dist/cjs/node/server/OnlineServerInteraction.d.ts +6 -6
- package/dist/cjs/node/server/OnlineServerInteraction.d.ts.map +1 -1
- package/dist/cjs/node/server/OnlineServerInteraction.js +4 -4
- package/dist/cjs/node/server/OnlineServerInteraction.js.map +1 -1
- package/dist/cjs/node/server/ProtocolService.js +1 -1
- package/dist/cjs/node/server/ProtocolService.js.map +1 -1
- package/dist/cjs/node/server/ServerSubscription.d.ts +2 -2
- package/dist/cjs/node/server/ServerSubscription.d.ts.map +1 -1
- package/dist/cjs/node/server/ServerSubscription.js +3 -3
- package/dist/cjs/node/server/ServerSubscription.js.map +1 -1
- package/dist/esm/behavior/Behavior.d.ts +0 -18
- package/dist/esm/behavior/Behavior.d.ts.map +1 -1
- package/dist/esm/behavior/Behavior.js +0 -35
- package/dist/esm/behavior/Behavior.js.map +1 -1
- package/dist/esm/behavior/Transitions.js +2 -2
- package/dist/esm/behavior/Transitions.js.map +1 -1
- package/dist/esm/behavior/context/ActionContext.d.ts +4 -29
- package/dist/esm/behavior/context/ActionContext.d.ts.map +1 -1
- package/dist/esm/behavior/context/server/{OfflineContext.d.ts → LocalActorContext.d.ts} +16 -12
- package/dist/esm/behavior/context/server/LocalActorContext.d.ts.map +1 -0
- package/dist/esm/behavior/context/server/{OfflineContext.js → LocalActorContext.js} +7 -6
- package/dist/esm/behavior/context/server/LocalActorContext.js.map +6 -0
- package/dist/esm/behavior/context/server/RemoteActorContext.d.ts +80 -0
- package/dist/esm/behavior/context/server/RemoteActorContext.d.ts.map +1 -0
- package/dist/esm/behavior/context/server/{OnlineContext.js → RemoteActorContext.js} +14 -31
- package/dist/esm/behavior/context/server/RemoteActorContext.js.map +6 -0
- package/dist/esm/behavior/context/server/index.d.ts +2 -2
- package/dist/esm/behavior/context/server/index.d.ts.map +1 -1
- package/dist/esm/behavior/context/server/index.js +2 -2
- package/dist/esm/behavior/internal/Reactors.d.ts.map +1 -1
- package/dist/esm/behavior/internal/Reactors.js +4 -3
- package/dist/esm/behavior/internal/Reactors.js.map +1 -1
- package/dist/esm/behavior/state/managed/Datasource.d.ts.map +1 -1
- package/dist/esm/behavior/state/managed/Datasource.js +2 -7
- package/dist/esm/behavior/state/managed/Datasource.js.map +1 -1
- package/dist/esm/behavior/state/managed/values/ListManager.d.ts.map +1 -1
- package/dist/esm/behavior/state/managed/values/ListManager.js +13 -5
- package/dist/esm/behavior/state/managed/values/ListManager.js.map +1 -1
- package/dist/esm/behavior/supervision/ValueSupervisor.d.ts +16 -9
- package/dist/esm/behavior/supervision/ValueSupervisor.d.ts.map +1 -1
- package/dist/esm/behavior/system/commissioning/CommissioningClient.d.ts +12 -1
- package/dist/esm/behavior/system/commissioning/CommissioningClient.d.ts.map +1 -1
- package/dist/esm/behavior/system/commissioning/CommissioningClient.js +1 -0
- package/dist/esm/behavior/system/commissioning/CommissioningClient.js.map +1 -1
- package/dist/esm/behavior/system/network/ClientNetworkRuntime.d.ts.map +1 -1
- package/dist/esm/behavior/system/network/ClientNetworkRuntime.js +3 -1
- package/dist/esm/behavior/system/network/ClientNetworkRuntime.js.map +1 -1
- package/dist/esm/behavior/system/network/NetworkClient.d.ts +9 -0
- package/dist/esm/behavior/system/network/NetworkClient.d.ts.map +1 -1
- package/dist/esm/behavior/system/network/NetworkClient.js +20 -0
- package/dist/esm/behavior/system/network/NetworkClient.js.map +1 -1
- package/dist/esm/behaviors/access-control/AccessControlServer.d.ts.map +1 -1
- package/dist/esm/behaviors/access-control/AccessControlServer.js +21 -15
- package/dist/esm/behaviors/access-control/AccessControlServer.js.map +1 -1
- package/dist/esm/behaviors/administrator-commissioning/AdministratorCommissioningServer.d.ts.map +1 -1
- package/dist/esm/behaviors/administrator-commissioning/AdministratorCommissioningServer.js +13 -6
- package/dist/esm/behaviors/administrator-commissioning/AdministratorCommissioningServer.js.map +1 -1
- package/dist/esm/behaviors/general-commissioning/GeneralCommissioningServer.d.ts.map +1 -1
- package/dist/esm/behaviors/general-commissioning/GeneralCommissioningServer.js +15 -7
- package/dist/esm/behaviors/general-commissioning/GeneralCommissioningServer.js.map +1 -1
- package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts.map +1 -1
- package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.js +3 -5
- package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.js.map +1 -1
- package/dist/esm/behaviors/group-key-management/GroupKeyManagementServer.d.ts.map +1 -1
- package/dist/esm/behaviors/group-key-management/GroupKeyManagementServer.js +10 -7
- package/dist/esm/behaviors/group-key-management/GroupKeyManagementServer.js.map +1 -1
- package/dist/esm/behaviors/groups/GroupsServer.d.ts.map +1 -1
- package/dist/esm/behaviors/groups/GroupsServer.js +12 -9
- package/dist/esm/behaviors/groups/GroupsServer.js.map +2 -2
- package/dist/esm/behaviors/operational-credentials/OperationalCredentialsServer.d.ts.map +1 -1
- package/dist/esm/behaviors/operational-credentials/OperationalCredentialsServer.js +17 -9
- package/dist/esm/behaviors/operational-credentials/OperationalCredentialsServer.js.map +1 -1
- package/dist/esm/behaviors/window-covering/WindowCoveringServer.js +1 -1
- package/dist/esm/behaviors/window-covering/WindowCoveringServer.js.map +1 -1
- package/dist/esm/endpoint/Agent.d.ts +14 -0
- package/dist/esm/endpoint/Agent.d.ts.map +1 -1
- package/dist/esm/endpoint/Agent.js +32 -0
- package/dist/esm/endpoint/Agent.js.map +1 -1
- package/dist/esm/endpoint/Endpoint.js +2 -2
- package/dist/esm/endpoint/Endpoint.js.map +1 -1
- package/dist/esm/endpoint/properties/Behaviors.js +4 -4
- package/dist/esm/endpoint/properties/Behaviors.js.map +1 -1
- package/dist/esm/endpoint/properties/Commands.js +2 -2
- package/dist/esm/endpoint/properties/Commands.js.map +1 -1
- package/dist/esm/node/server/IdentityService.js +2 -2
- package/dist/esm/node/server/IdentityService.js.map +1 -1
- package/dist/esm/node/server/InteractionServer.js.map +1 -1
- package/dist/esm/node/server/OnlineServerInteraction.d.ts +6 -6
- package/dist/esm/node/server/OnlineServerInteraction.d.ts.map +1 -1
- package/dist/esm/node/server/OnlineServerInteraction.js +4 -4
- package/dist/esm/node/server/OnlineServerInteraction.js.map +1 -1
- package/dist/esm/node/server/ProtocolService.js +2 -2
- package/dist/esm/node/server/ProtocolService.js.map +1 -1
- package/dist/esm/node/server/ServerSubscription.d.ts +2 -2
- package/dist/esm/node/server/ServerSubscription.d.ts.map +1 -1
- package/dist/esm/node/server/ServerSubscription.js +3 -3
- package/dist/esm/node/server/ServerSubscription.js.map +1 -1
- package/package.json +7 -7
- package/src/behavior/Behavior.ts +0 -41
- package/src/behavior/Transitions.ts +2 -2
- package/src/behavior/context/ActionContext.ts +4 -35
- package/src/behavior/context/server/{OfflineContext.ts → LocalActorContext.ts} +17 -14
- package/src/behavior/context/server/{OnlineContext.ts → RemoteActorContext.ts} +65 -52
- package/src/behavior/context/server/index.ts +2 -2
- package/src/behavior/internal/Reactors.ts +5 -4
- package/src/behavior/state/managed/Datasource.ts +3 -9
- package/src/behavior/state/managed/values/ListManager.ts +14 -11
- package/src/behavior/supervision/ValueSupervisor.ts +18 -10
- package/src/behavior/system/commissioning/CommissioningClient.ts +15 -0
- package/src/behavior/system/network/ClientNetworkRuntime.ts +5 -1
- package/src/behavior/system/network/NetworkClient.ts +23 -0
- package/src/behaviors/access-control/AccessControlServer.ts +25 -20
- package/src/behaviors/administrator-commissioning/AdministratorCommissioningServer.ts +14 -6
- package/src/behaviors/general-commissioning/GeneralCommissioningServer.ts +15 -8
- package/src/behaviors/general-diagnostics/GeneralDiagnosticsServer.ts +3 -5
- package/src/behaviors/group-key-management/GroupKeyManagementServer.ts +13 -7
- package/src/behaviors/groups/GroupsServer.ts +16 -11
- package/src/behaviors/operational-credentials/OperationalCredentialsServer.ts +21 -9
- package/src/behaviors/window-covering/WindowCoveringServer.ts +1 -1
- package/src/endpoint/Agent.ts +34 -0
- package/src/endpoint/Endpoint.ts +2 -2
- package/src/endpoint/properties/Behaviors.ts +4 -4
- package/src/endpoint/properties/Commands.ts +2 -2
- package/src/node/ClientNode.ts +1 -1
- package/src/node/server/IdentityService.ts +2 -2
- package/src/node/server/InteractionServer.ts +2 -2
- package/src/node/server/OnlineServerInteraction.ts +9 -9
- package/src/node/server/ProtocolService.ts +2 -2
- package/src/node/server/ServerSubscription.ts +5 -5
- package/dist/cjs/behavior/context/server/OfflineContext.d.ts.map +0 -1
- package/dist/cjs/behavior/context/server/OfflineContext.js.map +0 -6
- package/dist/cjs/behavior/context/server/OnlineContext.d.ts +0 -61
- package/dist/cjs/behavior/context/server/OnlineContext.d.ts.map +0 -1
- package/dist/cjs/behavior/context/server/OnlineContext.js.map +0 -6
- package/dist/esm/behavior/context/server/OfflineContext.d.ts.map +0 -1
- package/dist/esm/behavior/context/server/OfflineContext.js.map +0 -6
- package/dist/esm/behavior/context/server/OnlineContext.d.ts +0 -61
- package/dist/esm/behavior/context/server/OnlineContext.d.ts.map +0 -1
- package/dist/esm/behavior/context/server/OnlineContext.js.map +0 -6
package/src/endpoint/Agent.ts
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import type { Behavior } from "#behavior/Behavior.js";
|
|
8
8
|
import { ActionContext } from "#behavior/context/ActionContext.js";
|
|
9
9
|
import { GeneratedClass, MaybePromise } from "#general";
|
|
10
|
+
import { hasRemoteActor, Val } from "#protocol";
|
|
10
11
|
import { DescriptorBehavior } from "../behaviors/descriptor/DescriptorBehavior.js";
|
|
11
12
|
import type { Endpoint } from "./Endpoint.js";
|
|
12
13
|
import type { SupportedBehaviors } from "./properties/SupportedBehaviors.js";
|
|
@@ -151,6 +152,39 @@ export class Agent {
|
|
|
151
152
|
}) as Agent.Type<T>;
|
|
152
153
|
}
|
|
153
154
|
|
|
155
|
+
/**
|
|
156
|
+
* Execute logic with elevated privileges.
|
|
157
|
+
*
|
|
158
|
+
* Temporarily modifies {@link context} to be a {@link LocalActorContext}. This bypasses checks associated with the
|
|
159
|
+
* remote subject.
|
|
160
|
+
*
|
|
161
|
+
* Elevated logic effectively ignores ACLs so should be used with care.
|
|
162
|
+
*
|
|
163
|
+
* Note that interactions with the agent will remain elevated until the synchronous completion of this call. You
|
|
164
|
+
* should only elevate privileges for synchronous logic.
|
|
165
|
+
*
|
|
166
|
+
* @param fn the elevated logic
|
|
167
|
+
*/
|
|
168
|
+
asLocalActor(fn: () => void) {
|
|
169
|
+
const { context } = this;
|
|
170
|
+
let restoreContext: undefined | (() => void);
|
|
171
|
+
|
|
172
|
+
try {
|
|
173
|
+
if (hasRemoteActor(context)) {
|
|
174
|
+
const { fabric, subject } = context;
|
|
175
|
+
restoreContext = () => {
|
|
176
|
+
Object.assign(context, { fabric, subject });
|
|
177
|
+
};
|
|
178
|
+
delete (context as unknown as Val.Struct).fabric;
|
|
179
|
+
delete (context as unknown as Val.Struct).subject;
|
|
180
|
+
Object.assign(context, { fabric: undefined, subject: undefined });
|
|
181
|
+
}
|
|
182
|
+
fn();
|
|
183
|
+
} finally {
|
|
184
|
+
restoreContext?.();
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
154
188
|
[INSTALL_BEHAVIOR](behavior: Behavior) {
|
|
155
189
|
this.#behaviors[(behavior.constructor as Behavior.Type).id] = behavior;
|
|
156
190
|
}
|
package/src/endpoint/Endpoint.ts
CHANGED
|
@@ -8,7 +8,7 @@ import { Behavior } from "#behavior/Behavior.js";
|
|
|
8
8
|
import { ActionContext } from "#behavior/context/ActionContext.js";
|
|
9
9
|
import { NodeActivity } from "#behavior/context/NodeActivity.js";
|
|
10
10
|
import { ContextAgents } from "#behavior/context/server/ContextAgents.js";
|
|
11
|
-
import {
|
|
11
|
+
import { LocalActorContext } from "#behavior/context/server/LocalActorContext.js";
|
|
12
12
|
import {
|
|
13
13
|
Construction,
|
|
14
14
|
Diagnostic,
|
|
@@ -609,7 +609,7 @@ export class Endpoint<T extends EndpointType = EndpointType.Empty> {
|
|
|
609
609
|
this.#activity = this.env.get(NodeActivity);
|
|
610
610
|
}
|
|
611
611
|
|
|
612
|
-
return
|
|
612
|
+
return LocalActorContext.act(
|
|
613
613
|
purpose,
|
|
614
614
|
context => {
|
|
615
615
|
return actor(this.agentFor(context));
|
|
@@ -9,7 +9,7 @@ import type { ClusterBehavior } from "#behavior/cluster/ClusterBehavior.js";
|
|
|
9
9
|
import { limitEndpointAttributeDataToAllowedFabrics } from "#behavior/cluster/FabricScopedDataHandler.js";
|
|
10
10
|
import { ActionContext } from "#behavior/context/ActionContext.js";
|
|
11
11
|
import { NodeActivity } from "#behavior/context/NodeActivity.js";
|
|
12
|
-
import {
|
|
12
|
+
import { LocalActorContext } from "#behavior/context/server/LocalActorContext.js";
|
|
13
13
|
import { Events } from "#behavior/Events.js";
|
|
14
14
|
import { BehaviorBacking } from "#behavior/internal/BehaviorBacking.js";
|
|
15
15
|
import { Datasource } from "#behavior/state/managed/Datasource.js";
|
|
@@ -233,7 +233,7 @@ export class Behaviors {
|
|
|
233
233
|
const activity = this.#endpoint.env.get(NodeActivity);
|
|
234
234
|
|
|
235
235
|
// Perform initialization
|
|
236
|
-
let promise =
|
|
236
|
+
let promise = LocalActorContext.act(`initialize<${this.#endpoint}>`, initializeBehaviors, { activity });
|
|
237
237
|
|
|
238
238
|
// Once behaviors are ready the endpoint we consider the endpoint "ready"
|
|
239
239
|
const onReady = () => {
|
|
@@ -414,7 +414,7 @@ export class Behaviors {
|
|
|
414
414
|
}
|
|
415
415
|
};
|
|
416
416
|
|
|
417
|
-
await
|
|
417
|
+
await LocalActorContext.act(
|
|
418
418
|
`close<${this.#endpoint}>`,
|
|
419
419
|
dispose,
|
|
420
420
|
|
|
@@ -562,7 +562,7 @@ export class Behaviors {
|
|
|
562
562
|
}
|
|
563
563
|
|
|
564
564
|
#activateLate(type: Behavior.Type) {
|
|
565
|
-
const result =
|
|
565
|
+
const result = LocalActorContext.act(
|
|
566
566
|
"behavior-late-activation",
|
|
567
567
|
context => {
|
|
568
568
|
this.activate(type, this.#endpoint.agentFor(context));
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
import type { Behavior } from "#behavior/Behavior.js";
|
|
8
8
|
import type { ActionContext } from "#behavior/context/ActionContext.js";
|
|
9
|
-
import {
|
|
9
|
+
import { LocalActorContext } from "#behavior/context/server/LocalActorContext.js";
|
|
10
10
|
import type { Endpoint } from "#endpoint/Endpoint.js";
|
|
11
11
|
import type { EndpointType } from "#endpoint/type/EndpointType.js";
|
|
12
12
|
import { NotImplementedError } from "#general";
|
|
@@ -58,7 +58,7 @@ function Implementation(endpoint: Endpoint, type: Behavior.Type, name: string):
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
// Invoke with a dedicated context
|
|
61
|
-
const context2 =
|
|
61
|
+
const context2 = LocalActorContext.open(`invoke-${name}`);
|
|
62
62
|
try {
|
|
63
63
|
return Promise.resolve(context2.resolve(invokerFor(context2)(input, context)));
|
|
64
64
|
} catch (e) {
|
package/src/node/ClientNode.ts
CHANGED
|
@@ -41,7 +41,7 @@ export class ClientNode extends Node<ClientNode.RootEndpoint> {
|
|
|
41
41
|
|
|
42
42
|
super(opts);
|
|
43
43
|
|
|
44
|
-
// Block the
|
|
44
|
+
// Block the OccurrenceManager from parent environment so we don't attempt to record events from peers
|
|
45
45
|
this.env.block(OccurrenceManager);
|
|
46
46
|
|
|
47
47
|
this.env.set(Node, this);
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import { LocalActorContext } from "#behavior/context/server/LocalActorContext.js";
|
|
8
8
|
import { IndexBehavior } from "#behavior/system/index/IndexBehavior.js";
|
|
9
9
|
import type { Endpoint } from "#endpoint/Endpoint.js";
|
|
10
10
|
import { ImplementationError, InternalError } from "#general";
|
|
@@ -44,7 +44,7 @@ export class IdentityService {
|
|
|
44
44
|
other = this.#node;
|
|
45
45
|
} else {
|
|
46
46
|
if (this.#partsById === undefined) {
|
|
47
|
-
this.#partsById = this.#node.agentFor(
|
|
47
|
+
this.#partsById = this.#node.agentFor(LocalActorContext.ReadOnly).get(IndexBehavior).partsById;
|
|
48
48
|
}
|
|
49
49
|
other = this.#partsById?.[number];
|
|
50
50
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { NodeActivity } from "#behavior/context/NodeActivity.js";
|
|
8
|
-
import {
|
|
8
|
+
import { RemoteActorContext } from "#behavior/context/server/RemoteActorContext.js";
|
|
9
9
|
import { AccessControlServer } from "#behaviors/access-control";
|
|
10
10
|
import {
|
|
11
11
|
Crypto,
|
|
@@ -219,7 +219,7 @@ export class InteractionServer implements ProtocolHandler, InteractionRecipient
|
|
|
219
219
|
message: Message,
|
|
220
220
|
fabricFiltered?: boolean,
|
|
221
221
|
timed = false,
|
|
222
|
-
):
|
|
222
|
+
): RemoteActorContext.Options {
|
|
223
223
|
return {
|
|
224
224
|
activity: (exchange as NodeActivity.WithActivity)[NodeActivity.activityKey],
|
|
225
225
|
fabricFiltered,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RemoteActorContext } from "#behavior/context/server/RemoteActorContext.js";
|
|
2
2
|
import { NotImplementedError } from "#general";
|
|
3
3
|
import {
|
|
4
4
|
Interactable,
|
|
@@ -13,15 +13,15 @@ import {
|
|
|
13
13
|
WriteResult,
|
|
14
14
|
} from "#protocol";
|
|
15
15
|
|
|
16
|
-
export class OnlineServerInteraction implements Interactable<
|
|
16
|
+
export class OnlineServerInteraction implements Interactable<RemoteActorContext.Options> {
|
|
17
17
|
readonly #interaction: ServerInteraction;
|
|
18
18
|
|
|
19
19
|
constructor(node: NodeProtocol) {
|
|
20
20
|
this.#interaction = new ServerInteraction(node);
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
async *read(request: Read, context:
|
|
24
|
-
const session =
|
|
23
|
+
async *read(request: Read, context: RemoteActorContext.Options): ReadResult {
|
|
24
|
+
const session = RemoteActorContext(context).beginReadOnly();
|
|
25
25
|
try {
|
|
26
26
|
for await (const report of this.#interaction.read(request, session)) {
|
|
27
27
|
yield report;
|
|
@@ -31,16 +31,16 @@ export class OnlineServerInteraction implements Interactable<OnlineContext.Optio
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
subscribe(_request: Subscribe, _context:
|
|
34
|
+
subscribe(_request: Subscribe, _context: RemoteActorContext.Options): SubscribeResult {
|
|
35
35
|
throw new NotImplementedError("invoke not implemented");
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
async write<T extends Write>(request: T, context:
|
|
39
|
-
return
|
|
38
|
+
async write<T extends Write>(request: T, context: RemoteActorContext.Options): WriteResult<T> {
|
|
39
|
+
return RemoteActorContext(context).act(session => this.#interaction.write(request, session));
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
async *invoke(request: Invoke, context:
|
|
43
|
-
const session =
|
|
42
|
+
async *invoke(request: Invoke, context: RemoteActorContext.Options) {
|
|
43
|
+
const session = RemoteActorContext({ ...context, command: true }).open();
|
|
44
44
|
try {
|
|
45
45
|
for await (const chunk of this.#interaction.invoke(request, session)) {
|
|
46
46
|
yield chunk;
|
|
@@ -37,7 +37,7 @@ import type {
|
|
|
37
37
|
InteractionSession,
|
|
38
38
|
NodeProtocol,
|
|
39
39
|
} from "#protocol";
|
|
40
|
-
import { EventTypeProtocol, FabricManager, OccurrenceManager, Val } from "#protocol";
|
|
40
|
+
import { EventTypeProtocol, FabricManager, hasRemoteActor, OccurrenceManager, Val } from "#protocol";
|
|
41
41
|
import {
|
|
42
42
|
AttributeId,
|
|
43
43
|
AttributePath,
|
|
@@ -610,7 +610,7 @@ function invokeCommand(
|
|
|
610
610
|
let result: unknown;
|
|
611
611
|
const { name } = command;
|
|
612
612
|
try {
|
|
613
|
-
activity = context.activity?.frame(`invoke ${name}`);
|
|
613
|
+
activity = hasRemoteActor(context) ? context.activity?.frame(`invoke ${name}`) : undefined;
|
|
614
614
|
|
|
615
615
|
const invoke = (behavior as unknown as Record<string, (arg: unknown) => unknown>)[camelize(name)].bind(
|
|
616
616
|
behavior,
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { NodeActivity } from "#behavior/context/NodeActivity.js";
|
|
8
|
-
import {
|
|
8
|
+
import { RemoteActorContext } from "#behavior/context/server/RemoteActorContext.js";
|
|
9
9
|
import {
|
|
10
10
|
Duration,
|
|
11
11
|
Hours,
|
|
@@ -456,7 +456,7 @@ export class ServerSubscription extends Subscription {
|
|
|
456
456
|
/**
|
|
457
457
|
* Returns an iterator that yields the data reports and events data for the given read request.
|
|
458
458
|
*/
|
|
459
|
-
async *#processAttributesAndEventsReport(context:
|
|
459
|
+
async *#processAttributesAndEventsReport(context: RemoteActorContext.Options, suppressStatusReports = false) {
|
|
460
460
|
const request = {
|
|
461
461
|
...this.criteria,
|
|
462
462
|
interactionModelRevision: Specification.INTERACTION_MODEL_REVISION, // irrelevant here, set to our version
|
|
@@ -467,7 +467,7 @@ export class ServerSubscription extends Subscription {
|
|
|
467
467
|
let validAttributes = 0;
|
|
468
468
|
let validEvents = 0;
|
|
469
469
|
|
|
470
|
-
const session =
|
|
470
|
+
const session = RemoteActorContext(context).beginReadOnly();
|
|
471
471
|
|
|
472
472
|
try {
|
|
473
473
|
if (Read.containsAttribute(request)) {
|
|
@@ -553,7 +553,7 @@ export class ServerSubscription extends Subscription {
|
|
|
553
553
|
|
|
554
554
|
async sendInitialReport(
|
|
555
555
|
messenger: InteractionServerMessenger,
|
|
556
|
-
readContext:
|
|
556
|
+
readContext: RemoteActorContext.Options,
|
|
557
557
|
suppressStatusReports?: boolean,
|
|
558
558
|
) {
|
|
559
559
|
this.#updateTimer.stop();
|
|
@@ -635,7 +635,7 @@ export class ServerSubscription extends Subscription {
|
|
|
635
635
|
interactionModelRevision: Specification.INTERACTION_MODEL_REVISION, // irrelevant here, set to our version
|
|
636
636
|
};
|
|
637
637
|
|
|
638
|
-
const session =
|
|
638
|
+
const session = RemoteActorContext({
|
|
639
639
|
activity: (exchange as NodeActivity.WithActivity)[NodeActivity.activityKey],
|
|
640
640
|
fabricFiltered: request.isFabricFiltered,
|
|
641
641
|
message: {} as Message,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OfflineContext.d.ts","sourceRoot":"","sources":["../../../../../src/behavior/context/server/OfflineContext.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAA6B,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGhF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,eAAO,IAAI,cAAc,QAAI,CAAC;AAI9B;;;;GAIG;AACH,eAAO,MAAM,cAAc;IACvB;;;;;;;;;;;OAWG;QACC,CAAC,WACQ,MAAM,SACR,CAAC,OAAO,EAAE,aAAa,KAAK,YAAY,CAAC,CAAC,CAAC,YACxC,cAAc,CAAC,OAAO,GACjC,YAAY,CAAC,CAAC,CAAC;IAalB;;;;;OAKG;kBACW,MAAM,YAAY,cAAc,CAAC,OAAO,GAAG,aAAa,GAAG,WAAW,CAAC,YAAY;IAyDjG;;;;;;OAMG;;;CASN,CAAC;AAEF,yBAAiB,cAAc,CAAC;IAC5B;;OAEG;IACH,UAAiB,OAAO;QACpB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB,SAAS,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC;KAC1C;CACJ"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../src/behavior/context/server/OfflineContext.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,qBAAqE;AACrE,mBAA4B;AAC5B,sBAA8B;AAE9B,wBAA2B;AAX3B;AAAA;AAAA;AAAA;AAAA;AAcO,IAAI,iBAAiB;AAE5B,IAAI;AAOG,MAAM,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAa1B,IACI,SACA,OACA,SACe;AACf,UAAM,UAAU,KAAK,KAAK,SAAS,OAAO;AAE1C,QAAI;AACJ,QAAI;AACA,eAAS,MAAM,OAAO;AAAA,IAC1B,SAAS,GAAG;AACR,aAAO,QAAQ,OAAO,CAAC;AAAA,IAC3B;AAEA,WAAO,QAAQ,QAAQ,MAAM;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,KAAK,SAAiB,SAA4E;AAC9F,UAAM,KAAK;AACX,sBAAkB,iBAAiB,KAAK;AACxC,UAAM,MAAM,0BAAW,IAAI,GAAG,OAAO,IAAI,GAAG,SAAS,EAAE,CAAC,EAAE;AAE1D,QAAI;AACJ,QAAI;AAEJ,QAAI;AACA,cAAQ,SAAS,UAAU,MAAM,GAAG;AAEpC,oBAAc,2BAAY,KAAK,KAAK,SAAS,SAAS;AAEtD,UAAI,OAAO;AACP,oBAAY,QAAQ,MAAM,MAAM,KAAK,KAAK,CAAC;AAAA,MAC/C;AAEA,YAAM,UAAU,OAAO,OAAO;AAAA,QAC1B,GAAG;AAAA;AAAA,QAGH,SAAS;AAAA,QAET;AAAA,QACA,UAAU;AAAA,QAEV,YAAY,oBAAiC;AAEzC,iBAAO,uBAAuB,yBAAY,OACpC,8BAAc,UAAU,UACxB,8BAAc,UAAU;AAAA,QAClC;AAAA,QAEA,KAAK,6BAAW,OAAO,IAAI;AACvB,iBAAO;AAAA,QACX;AAAA,QAEA,CAAC,OAAO,WAAW,GAAG;AAAA,QAEtB,SAAS,YAAY,QAAQ,KAAK,WAAW;AAAA,QAC7C,QAAQ,YAAY,OAAO,KAAK,WAAW;AAAA,MAC/C,CAAC;AAED,aAAO;AAAA,IACX,SAAS,GAAG;AACR,UAAI,aAAa;AACb,oBAAY,OAAO,CAAC;AAAA,MACxB,OAAO;AACH,eAAO,MAAM;AACb,cAAM;AAAA,MACV;AAAA,IACJ;AAGA,UAAM,IAAI,6BAAc,wBAAwB;AAAA,EACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,IAAI,WAAW;AACX,QAAI,aAAa,QAAW;AACxB,iBAAW,eAAe,KAAK,aAAa,EAAE,WAAW,KAAK,CAAC;AAAA,IACnE;AACA,WAAO;AAAA,EACX;AAAA,EAEA,CAAC,OAAO,WAAW,GAAG;AAC1B;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import { MaybePromise, Transaction } from "#general";
|
|
7
|
-
import type { Node } from "#node/Node.js";
|
|
8
|
-
import type { Message } from "#protocol";
|
|
9
|
-
import { FabricAccessControl, MessageExchange } from "#protocol";
|
|
10
|
-
import { FabricIndex, NodeId } from "#types";
|
|
11
|
-
import { ActionContext } from "../ActionContext.js";
|
|
12
|
-
import { NodeActivity } from "../NodeActivity.js";
|
|
13
|
-
/**
|
|
14
|
-
* Operate in online context. Public Matter API interactions happen in online context.
|
|
15
|
-
*/
|
|
16
|
-
export declare function OnlineContext(options: OnlineContext.Options): {
|
|
17
|
-
/**
|
|
18
|
-
* Run an actor with a read/write context.
|
|
19
|
-
*
|
|
20
|
-
* If the actor changes state, this may return a promise even if {@link actor} does not return a promise.
|
|
21
|
-
*/
|
|
22
|
-
act<T>(actor: (context: ActionContext) => MaybePromise<T>): MaybePromise<T>;
|
|
23
|
-
/**
|
|
24
|
-
* Create an online context.
|
|
25
|
-
*
|
|
26
|
-
* This context operates with a {@link Transaction} created via {@link Transaction.open} and the same rules
|
|
27
|
-
* apply for lifecycle management using {@link Transaction.Finalization}.
|
|
28
|
-
*/
|
|
29
|
-
open(): ActionContext & Transaction.Finalization;
|
|
30
|
-
/**
|
|
31
|
-
* Begin an operation with a read-only context.
|
|
32
|
-
*
|
|
33
|
-
* A read-only context offers simpler lifecycle semantics than a r/w OnlineContext but you must still close the
|
|
34
|
-
* context after use to properly deregister activity.
|
|
35
|
-
*/
|
|
36
|
-
beginReadOnly(): OnlineContext.ReadOnly;
|
|
37
|
-
[Symbol.toStringTag]: string;
|
|
38
|
-
};
|
|
39
|
-
export declare namespace OnlineContext {
|
|
40
|
-
type Options = {
|
|
41
|
-
node: Node;
|
|
42
|
-
activity?: NodeActivity.Activity;
|
|
43
|
-
command?: boolean;
|
|
44
|
-
timed?: boolean;
|
|
45
|
-
fabricFiltered?: boolean;
|
|
46
|
-
message?: Message;
|
|
47
|
-
aclManager?: FabricAccessControl;
|
|
48
|
-
} & ({
|
|
49
|
-
exchange: MessageExchange;
|
|
50
|
-
fabric?: undefined;
|
|
51
|
-
subject?: undefined;
|
|
52
|
-
} | {
|
|
53
|
-
exchange?: undefined;
|
|
54
|
-
fabric: FabricIndex;
|
|
55
|
-
subject: NodeId;
|
|
56
|
-
});
|
|
57
|
-
interface ReadOnly extends ActionContext {
|
|
58
|
-
[Symbol.dispose](): void;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=OnlineContext.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OnlineContext.d.ts","sourceRoot":"","sources":["../../../../../src/behavior/context/server/OnlineContext.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,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;AAQlD;;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;;EAkIvC;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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../src/behavior/context/server/OnlineContext.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OfflineContext.d.ts","sourceRoot":"","sources":["../../../../../src/behavior/context/server/OfflineContext.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAA6B,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGhF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,eAAO,IAAI,cAAc,QAAI,CAAC;AAI9B;;;;GAIG;AACH,eAAO,MAAM,cAAc;IACvB;;;;;;;;;;;OAWG;QACC,CAAC,WACQ,MAAM,SACR,CAAC,OAAO,EAAE,aAAa,KAAK,YAAY,CAAC,CAAC,CAAC,YACxC,cAAc,CAAC,OAAO,GACjC,YAAY,CAAC,CAAC,CAAC;IAalB;;;;;OAKG;kBACW,MAAM,YAAY,cAAc,CAAC,OAAO,GAAG,aAAa,GAAG,WAAW,CAAC,YAAY;IAyDjG;;;;;;OAMG;;;CASN,CAAC;AAEF,yBAAiB,cAAc,CAAC;IAC5B;;OAEG;IACH,UAAiB,OAAO;QACpB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,QAAQ,CAAC,EAAE,YAAY,CAAC;QACxB,SAAS,CAAC,EAAE,WAAW,CAAC,cAAc,CAAC;KAC1C;CACJ"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../src/behavior/context/server/OfflineContext.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,YAAY,eAA6B,mBAAmB;AACrE,SAAS,mBAAmB;AAC5B,SAAS,qBAAqB;AAE9B,SAAS,kBAAkB;AAGpB,IAAI,iBAAiB;AAE5B,IAAI;AAOG,MAAM,iBAAiB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAa1B,IACI,SACA,OACA,SACe;AACf,UAAM,UAAU,KAAK,KAAK,SAAS,OAAO;AAE1C,QAAI;AACJ,QAAI;AACA,eAAS,MAAM,OAAO;AAAA,IAC1B,SAAS,GAAG;AACR,aAAO,QAAQ,OAAO,CAAC;AAAA,IAC3B;AAEA,WAAO,QAAQ,QAAQ,MAAM;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,KAAK,SAAiB,SAA4E;AAC9F,UAAM,KAAK;AACX,sBAAkB,iBAAiB,KAAK;AACxC,UAAM,MAAM,WAAW,IAAI,GAAG,OAAO,IAAI,GAAG,SAAS,EAAE,CAAC,EAAE;AAE1D,QAAI;AACJ,QAAI;AAEJ,QAAI;AACA,cAAQ,SAAS,UAAU,MAAM,GAAG;AAEpC,oBAAc,YAAY,KAAK,KAAK,SAAS,SAAS;AAEtD,UAAI,OAAO;AACP,oBAAY,QAAQ,MAAM,MAAM,KAAK,KAAK,CAAC;AAAA,MAC/C;AAEA,YAAM,UAAU,OAAO,OAAO;AAAA,QAC1B,GAAG;AAAA;AAAA,QAGH,SAAS;AAAA,QAET;AAAA,QACA,UAAU;AAAA,QAEV,YAAY,oBAAiC;AAEzC,iBAAO,uBAAuB,YAAY,OACpC,cAAc,UAAU,UACxB,cAAc,UAAU;AAAA,QAClC;AAAA,QAEA,KAAK,WAAW,OAAO,IAAI;AACvB,iBAAO;AAAA,QACX;AAAA,QAEA,CAAC,OAAO,WAAW,GAAG;AAAA,QAEtB,SAAS,YAAY,QAAQ,KAAK,WAAW;AAAA,QAC7C,QAAQ,YAAY,OAAO,KAAK,WAAW;AAAA,MAC/C,CAAC;AAED,aAAO;AAAA,IACX,SAAS,GAAG;AACR,UAAI,aAAa;AACb,oBAAY,OAAO,CAAC;AAAA,MACxB,OAAO;AACH,eAAO,MAAM;AACb,cAAM;AAAA,MACV;AAAA,IACJ;AAGA,UAAM,IAAI,cAAc,wBAAwB;AAAA,EACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,IAAI,WAAW;AACX,QAAI,aAAa,QAAW;AACxB,iBAAW,eAAe,KAAK,aAAa,EAAE,WAAW,KAAK,CAAC;AAAA,IACnE;AACA,WAAO;AAAA,EACX;AAAA,EAEA,CAAC,OAAO,WAAW,GAAG;AAC1B;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import { MaybePromise, Transaction } from "#general";
|
|
7
|
-
import type { Node } from "#node/Node.js";
|
|
8
|
-
import type { Message } from "#protocol";
|
|
9
|
-
import { FabricAccessControl, MessageExchange } from "#protocol";
|
|
10
|
-
import { FabricIndex, NodeId } from "#types";
|
|
11
|
-
import { ActionContext } from "../ActionContext.js";
|
|
12
|
-
import { NodeActivity } from "../NodeActivity.js";
|
|
13
|
-
/**
|
|
14
|
-
* Operate in online context. Public Matter API interactions happen in online context.
|
|
15
|
-
*/
|
|
16
|
-
export declare function OnlineContext(options: OnlineContext.Options): {
|
|
17
|
-
/**
|
|
18
|
-
* Run an actor with a read/write context.
|
|
19
|
-
*
|
|
20
|
-
* If the actor changes state, this may return a promise even if {@link actor} does not return a promise.
|
|
21
|
-
*/
|
|
22
|
-
act<T>(actor: (context: ActionContext) => MaybePromise<T>): MaybePromise<T>;
|
|
23
|
-
/**
|
|
24
|
-
* Create an online context.
|
|
25
|
-
*
|
|
26
|
-
* This context operates with a {@link Transaction} created via {@link Transaction.open} and the same rules
|
|
27
|
-
* apply for lifecycle management using {@link Transaction.Finalization}.
|
|
28
|
-
*/
|
|
29
|
-
open(): ActionContext & Transaction.Finalization;
|
|
30
|
-
/**
|
|
31
|
-
* Begin an operation with a read-only context.
|
|
32
|
-
*
|
|
33
|
-
* A read-only context offers simpler lifecycle semantics than a r/w OnlineContext but you must still close the
|
|
34
|
-
* context after use to properly deregister activity.
|
|
35
|
-
*/
|
|
36
|
-
beginReadOnly(): OnlineContext.ReadOnly;
|
|
37
|
-
[Symbol.toStringTag]: string;
|
|
38
|
-
};
|
|
39
|
-
export declare namespace OnlineContext {
|
|
40
|
-
type Options = {
|
|
41
|
-
node: Node;
|
|
42
|
-
activity?: NodeActivity.Activity;
|
|
43
|
-
command?: boolean;
|
|
44
|
-
timed?: boolean;
|
|
45
|
-
fabricFiltered?: boolean;
|
|
46
|
-
message?: Message;
|
|
47
|
-
aclManager?: FabricAccessControl;
|
|
48
|
-
} & ({
|
|
49
|
-
exchange: MessageExchange;
|
|
50
|
-
fabric?: undefined;
|
|
51
|
-
subject?: undefined;
|
|
52
|
-
} | {
|
|
53
|
-
exchange?: undefined;
|
|
54
|
-
fabric: FabricIndex;
|
|
55
|
-
subject: NodeId;
|
|
56
|
-
});
|
|
57
|
-
interface ReadOnly extends ActionContext {
|
|
58
|
-
[Symbol.dispose](): void;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=OnlineContext.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OnlineContext.d.ts","sourceRoot":"","sources":["../../../../../src/behavior/context/server/OnlineContext.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,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;AAQlD;;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;;EAkIvC;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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../src/behavior/context/server/OnlineContext.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|