@matter/node 0.16.0-alpha.0-20250902-38a7cc156 → 0.16.0-alpha.0-20250909-aecad94f3
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/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/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/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/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
|
@@ -14,6 +14,7 @@ import { Crypto, CryptoVerifyError, Logger, MatterFlowError, MaybePromise, Unexp
|
|
|
14
14
|
import { AccessLevel } from "#model";
|
|
15
15
|
import type { Node } from "#node/Node.js";
|
|
16
16
|
import {
|
|
17
|
+
assertRemoteActor,
|
|
17
18
|
CertificateError,
|
|
18
19
|
DeviceCertification,
|
|
19
20
|
DeviceCommissioner,
|
|
@@ -94,13 +95,15 @@ export class OperationalCredentialsServer extends OperationalCredentialsBehavior
|
|
|
94
95
|
}
|
|
95
96
|
|
|
96
97
|
override async attestationRequest({ attestationNonce }: OperationalCredentials.AttestationRequest) {
|
|
98
|
+
assertRemoteActor(this.context);
|
|
99
|
+
|
|
97
100
|
if (attestationNonce.byteLength !== 32) {
|
|
98
101
|
throw new StatusResponseError("Invalid attestation nonce length", StatusCode.InvalidCommand);
|
|
99
102
|
}
|
|
100
103
|
|
|
101
104
|
const certification = await this.getCertification();
|
|
102
105
|
|
|
103
|
-
const session = this.session;
|
|
106
|
+
const session = this.context.session;
|
|
104
107
|
NodeSession.assert(session);
|
|
105
108
|
|
|
106
109
|
const attestationElements = TlvAttestation.encode({
|
|
@@ -115,11 +118,13 @@ export class OperationalCredentialsServer extends OperationalCredentialsBehavior
|
|
|
115
118
|
}
|
|
116
119
|
|
|
117
120
|
override async csrRequest({ csrNonce, isForUpdateNoc }: OperationalCredentials.CsrRequest) {
|
|
121
|
+
assertRemoteActor(this.context);
|
|
122
|
+
|
|
118
123
|
if (csrNonce.byteLength !== 32) {
|
|
119
124
|
throw new StatusResponseError("Invalid csr nonce length", StatusCode.InvalidCommand);
|
|
120
125
|
}
|
|
121
126
|
|
|
122
|
-
const session = this.session;
|
|
127
|
+
const session = this.context.session;
|
|
123
128
|
NodeSession.assert(session);
|
|
124
129
|
if (isForUpdateNoc && session.isPase) {
|
|
125
130
|
throw new StatusResponseError(
|
|
@@ -139,9 +144,10 @@ export class OperationalCredentialsServer extends OperationalCredentialsBehavior
|
|
|
139
144
|
|
|
140
145
|
const certification = await this.getCertification();
|
|
141
146
|
|
|
147
|
+
assertRemoteActor(this.context);
|
|
142
148
|
const certSigningRequest = await failsafeContext.createCertificateSigningRequest(
|
|
143
149
|
isForUpdateNoc ?? false,
|
|
144
|
-
this.session.id,
|
|
150
|
+
this.context.session.id,
|
|
145
151
|
);
|
|
146
152
|
const nocsrElements = TlvCertSigningRequest.encode({ certSigningRequest, csrNonce });
|
|
147
153
|
return { nocsrElements, attestationSignature: await certification.sign(session, nocsrElements) };
|
|
@@ -205,6 +211,8 @@ export class OperationalCredentialsServer extends OperationalCredentialsBehavior
|
|
|
205
211
|
caseAdminSubject,
|
|
206
212
|
adminVendorId,
|
|
207
213
|
}: OperationalCredentials.AddNocRequest) {
|
|
214
|
+
assertRemoteActor(this.context);
|
|
215
|
+
|
|
208
216
|
const failsafeContext = this.#failsafeContext;
|
|
209
217
|
|
|
210
218
|
if (failsafeContext.fabricIndex !== undefined) {
|
|
@@ -221,7 +229,7 @@ export class OperationalCredentialsServer extends OperationalCredentialsBehavior
|
|
|
221
229
|
};
|
|
222
230
|
}
|
|
223
231
|
|
|
224
|
-
if (failsafeContext.csrSessionId !== this.session.id) {
|
|
232
|
+
if (failsafeContext.csrSessionId !== this.context.session.id) {
|
|
225
233
|
return {
|
|
226
234
|
statusCode: OperationalCredentials.NodeOperationalCertStatus.MissingCsr,
|
|
227
235
|
debugText: "CSR not found in failsafe context",
|
|
@@ -261,7 +269,7 @@ export class OperationalCredentialsServer extends OperationalCredentialsBehavior
|
|
|
261
269
|
// subsequent Administer access to an Administrator member of the new Fabric.
|
|
262
270
|
await this.endpoint.act(agent => agent.get(AccessControlServer).addDefaultCaseAcl(fabric, [caseAdminSubject]));
|
|
263
271
|
|
|
264
|
-
const session = this.session;
|
|
272
|
+
const session = this.context.session;
|
|
265
273
|
NodeSession.assert(session);
|
|
266
274
|
|
|
267
275
|
await failsafeContext.addFabric(fabric);
|
|
@@ -302,7 +310,8 @@ export class OperationalCredentialsServer extends OperationalCredentialsBehavior
|
|
|
302
310
|
}
|
|
303
311
|
|
|
304
312
|
override async updateNoc({ nocValue, icacValue }: OperationalCredentials.UpdateNocRequest) {
|
|
305
|
-
|
|
313
|
+
assertRemoteActor(this.context);
|
|
314
|
+
NodeSession.assert(this.context.session);
|
|
306
315
|
|
|
307
316
|
const timedOp = this.#failsafeContext;
|
|
308
317
|
|
|
@@ -338,7 +347,7 @@ export class OperationalCredentialsServer extends OperationalCredentialsBehavior
|
|
|
338
347
|
};
|
|
339
348
|
}
|
|
340
349
|
|
|
341
|
-
if (this.session.associatedFabric.fabricIndex !== timedOp.associatedFabric?.fabricIndex) {
|
|
350
|
+
if (this.context.session.associatedFabric.fabricIndex !== timedOp.associatedFabric?.fabricIndex) {
|
|
342
351
|
throw new StatusResponseError(
|
|
343
352
|
"Fabric of this session and the failsafe context do not match",
|
|
344
353
|
StatusCode.ConstraintError,
|
|
@@ -363,7 +372,8 @@ export class OperationalCredentialsServer extends OperationalCredentialsBehavior
|
|
|
363
372
|
}
|
|
364
373
|
|
|
365
374
|
override async updateFabricLabel({ label }: OperationalCredentials.UpdateFabricLabelRequest) {
|
|
366
|
-
|
|
375
|
+
assertRemoteActor(this.context);
|
|
376
|
+
const fabric = this.context.session.associatedFabric;
|
|
367
377
|
|
|
368
378
|
const currentFabricIndex = fabric.fabricIndex;
|
|
369
379
|
const fabrics = this.env.get(FabricManager);
|
|
@@ -381,6 +391,8 @@ export class OperationalCredentialsServer extends OperationalCredentialsBehavior
|
|
|
381
391
|
}
|
|
382
392
|
|
|
383
393
|
override async removeFabric({ fabricIndex }: OperationalCredentials.RemoveFabricRequest) {
|
|
394
|
+
assertRemoteActor(this.context);
|
|
395
|
+
|
|
384
396
|
const fabric = this.env.get(FabricManager).findByIndex(fabricIndex);
|
|
385
397
|
|
|
386
398
|
if (fabric === undefined) {
|
|
@@ -390,7 +402,7 @@ export class OperationalCredentialsServer extends OperationalCredentialsBehavior
|
|
|
390
402
|
};
|
|
391
403
|
}
|
|
392
404
|
|
|
393
|
-
await fabric.remove(this.session.id);
|
|
405
|
+
await fabric.remove(this.context.session.id);
|
|
394
406
|
// The state is updated on removal via commissionedFabricChanged event, see constructor
|
|
395
407
|
|
|
396
408
|
return {
|
|
@@ -187,7 +187,7 @@ export class WindowCoveringBaseServer extends WindowCoveringBase {
|
|
|
187
187
|
!mode.maintenanceMode || (mode.calibrationMode && !this.internal.supportsCalibration);
|
|
188
188
|
configStatus.liftMovementReversed = !!mode.motorDirectionReversed;
|
|
189
189
|
if (isDeepEqual(configStatus, this.state.configStatus)) {
|
|
190
|
-
this.
|
|
190
|
+
this.agent.asLocalActor(() => {
|
|
191
191
|
this.state.configStatus = configStatus;
|
|
192
192
|
});
|
|
193
193
|
}
|
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) {
|
|
@@ -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": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAA2G;AAI3G,sBAOO;AAGP,wBAA2B;AApB3B;AAAA;AAAA;AAAA;AAAA;AA2BA,MAAM,yBAAyB,oBAAI,QAAiF;AAK7G,SAAS,cAAc,SAAgC;AAC1D,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AAEJ,QAAM,EAAE,UAAU,QAAQ,IAAI;AAC9B,QAAM,UAAU,UAAU;AAE1B,MAAI,SAAS;AACT,kCAAc,OAAO,OAAO;AAC5B,aAAS,QAAQ,QAAQ;AACzB,cAAU,QAAQ,WAAW,OAAO;AAEpC,iBAAa,SAAS,QAAQ,OAAO,IAAI,oCAAoB;AAAA,EACjE,OAAO;AACH,aAAS,QAAQ;AACjB,QAAI,QAAQ,YAAY,QAAW;AAC/B,gBAAU,wBAAQ,KAAK,EAAE,IAAI,QAAQ,QAAQ,CAAC;AAAA,IAClD,OAAO;AACH,YAAM,IAAI,mCAAoB,8CAA8C;AAAA,IAChF;AACA,iBAAa,QAAQ,cAAc,IAAI,oCAAoB;AAAA,EAC/D;AAGA,QAAM,MAAM,0BAAW;AAAA,IACnB,UAAU,SAAS,cAAc,WAAW,SAAS,EAAE,KAAK,GAAG,IAAI,QAAQ,GAAG,SAAS,EAAE,CAAC;AAAA,EAC9F;AAEA,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMH,IAAO,OAAqE;AACxE,YAAM,UAAU,KAAK,KAAK;AAE1B,UAAI;AACJ,UAAI;AACA,iBAAS,MAAM,OAAO;AAAA,MAC1B,SAAS,GAAG;AACR,eAAO,QAAQ,OAAO,CAAC;AAAA,MAC3B;AAEA,aAAO,QAAQ,QAAQ,MAAM;AAAA,IACjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,OAAiD;AAC7C,UAAI;AACJ,UAAI;AACJ,UAAI;AACA,gBAAQ,WAAW;AACnB,aAAK,2BAAY,KAAK,GAAG;AACzB,WAAG,QAAQ,KAAK;AAAA,MACpB,SAAS,GAAG;AACR,gBAAQ;AACR,cAAM;AAAA,MACV;AAEA,aAAO,cAAc,IAAI;AAAA,QACrB,SAAS,GAAG,QAAQ,KAAK,EAAE;AAAA,QAC3B,QAAQ,GAAG,OAAO,KAAK,EAAE;AAAA,MAC7B,CAAC;AAAA,IACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,gBAAgB;AACZ,YAAM,QAAQ,WAAW;AAEzB,aAAO,cAAc,2BAAY,KAAK,KAAK,UAAU,GAAG;AAAA,QACpD,CAAC,OAAO,OAAO,GAAG;AAAA,MACtB,CAAC;AAAA,IACL;AAAA,IAEA,CAAC,OAAO,WAAW,GAAG;AAAA,EAC1B;AAKA,WAAS,aAAa;AAClB,UAAM,WAAW,QAAQ,UAAU,MAAM,GAAG;AAE5C,UAAM,QAAQ,MAAM;AAChB,UAAI,SAAS;AACT,qCAAW,aAAa,SAAS,MAAS;AAAA,MAC9C;AACA,UAAI,UAAU;AACV,iBAAS,OAAO,OAAO,EAAE;AAAA,MAC7B;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAKA,WAAS,cAAc,aAA0B,SAAa;AAC1D,QAAI,SAAS;AACT,oCAAc,OAAO,OAAO;AAAA,IAChC;AACA,QAAI;AACJ,QAAI,aAAa,QAAW;AACxB,4BAAsB,uBAAuB,IAAI,QAAQ;AACzD,UAAI,wBAAwB,QAAW;AACnC,8BAAsB,IAAI,+BAAgB;AAC1C,+BAAuB,IAAI,UAAU,mBAAmB;AAAA,MAC5D;AAEA,YAAM,4BAA4B,MAAM;AACpC,iBAAS,QAAQ,IAAI,yBAAyB;AAC9C,+BAAuB,OAAO,QAAQ;AACtC,YAAI,QAAQ,qBAAqB,YAAY;AACzC,kBAAQ,oBAAoB,KAAK,OAAO;AAAA,QAC5C;AAAA,MACJ;AACA,eAAS,QAAQ,GAAG,yBAAyB;AAAA,IACjD;AACA,UAAM,UAAyB;AAAA,MAC3B,GAAG;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MAEA;AAAA,MAEA,GAAG;AAAA;AAAA,MAGH,YAAY,oBAAiC,UAAmC;AAC5E,YAAI,aAAa,QAAW;AACxB,gBAAM,IAAI,6BAAc,oCAAoC;AAAA,QAChE;AAGA,cAAM,qBAAqB,kBAAkB,IAAI,QAAQ;AACzD,YAAI,uBAAuB,QAAW;AAClC,iBAAO,mBAAmB,SAAS,kBAAkB,IAC/C,8BAAc,UAAU,UACxB,8BAAc,UAAU;AAAA,QAClC;AAEA,YAAI,QAAQ,SAAS,QAAW;AAC5B,gBAAM,IAAI,6BAAc,wCAAwC;AAAA,QACpE;AAEA,cAAM,eAAe,WAAW,gBAAgB,SAAS,UAAU,sBAAsB,QAAQ,CAAC;AAElG,YAAI,qBAAqB,QAAW;AAChC,6BAAmB,oBAAI,IAAI;AAAA,QAC/B;AACA,yBAAiB,IAAI,UAAU,YAAY;AAE3C,eAAO,aAAa,SAAS,kBAAkB,IACzC,8BAAc,UAAU,UACxB,8BAAc,UAAU;AAAA,MAClC;AAAA,MAEA,KAAK,6BAAW,OAAO,IAAmB;AACtC,eAAO;AAAA,MACX;AAAA,IACJ;AAEA,QAAI,SAAS;AACT,mCAAW,aAAa,SAAS,OAAO;AAAA,IAC5C;AAEA,WAAO;AAAA,EACX;AAKA,WAAS,sBAAsB,EAAE,UAAU,OAAO,GAA+C;AAC7F,QAAI,WAAW,QAAW;AACtB,YAAM,IAAI,6BAAc,kDAAkD;AAAA,IAC9E;AAEA,QAAI,QAAQ,SAAS,QAAW;AAC5B,YAAM,IAAI,6BAAc,oCAAoC;AAAA,IAChE;AAEA,QAAI,iBAAiB,QAAW;AAC5B,qBAAe,QAAQ,KAAK;AAAA,IAChC;AAEA,UAAM,WAAW,aAAa,MAAM;AACpC,QAAI,aAAa,QAAW;AACxB,aAAO;AAAA,IACX;AAGA,WAAO;AAAA,MACH,IAAI;AAAA,MACJ,aAAa,CAAC;AAAA,IAClB;AAAA,EACJ;AACJ;",
|
|
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
|
-
}
|