@matter/node 0.16.0-alpha.0-20250906-463912bd0 → 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.
Files changed (191) hide show
  1. package/dist/cjs/behavior/Behavior.d.ts +0 -18
  2. package/dist/cjs/behavior/Behavior.d.ts.map +1 -1
  3. package/dist/cjs/behavior/Behavior.js +0 -34
  4. package/dist/cjs/behavior/Behavior.js.map +1 -1
  5. package/dist/cjs/behavior/Transitions.js +2 -2
  6. package/dist/cjs/behavior/Transitions.js.map +1 -1
  7. package/dist/cjs/behavior/context/ActionContext.d.ts +4 -29
  8. package/dist/cjs/behavior/context/ActionContext.d.ts.map +1 -1
  9. package/dist/cjs/behavior/context/server/{OfflineContext.d.ts → LocalActorContext.d.ts} +16 -12
  10. package/dist/cjs/behavior/context/server/LocalActorContext.d.ts.map +1 -0
  11. package/dist/cjs/behavior/context/server/{OfflineContext.js → LocalActorContext.js} +10 -9
  12. package/dist/cjs/behavior/context/server/LocalActorContext.js.map +6 -0
  13. package/dist/cjs/behavior/context/server/RemoteActorContext.d.ts +80 -0
  14. package/dist/cjs/behavior/context/server/RemoteActorContext.d.ts.map +1 -0
  15. package/dist/cjs/behavior/context/server/{OnlineContext.js → RemoteActorContext.js} +15 -27
  16. package/dist/cjs/behavior/context/server/RemoteActorContext.js.map +6 -0
  17. package/dist/cjs/behavior/context/server/index.d.ts +2 -2
  18. package/dist/cjs/behavior/context/server/index.d.ts.map +1 -1
  19. package/dist/cjs/behavior/context/server/index.js +2 -2
  20. package/dist/cjs/behavior/context/server/index.js.map +1 -1
  21. package/dist/cjs/behavior/internal/Reactors.d.ts.map +1 -1
  22. package/dist/cjs/behavior/internal/Reactors.js +4 -3
  23. package/dist/cjs/behavior/internal/Reactors.js.map +1 -1
  24. package/dist/cjs/behavior/state/managed/Datasource.d.ts.map +1 -1
  25. package/dist/cjs/behavior/state/managed/Datasource.js +1 -6
  26. package/dist/cjs/behavior/state/managed/Datasource.js.map +1 -1
  27. package/dist/cjs/behavior/state/managed/values/ListManager.d.ts.map +1 -1
  28. package/dist/cjs/behavior/state/managed/values/ListManager.js +4 -4
  29. package/dist/cjs/behavior/state/managed/values/ListManager.js.map +1 -1
  30. package/dist/cjs/behavior/supervision/ValueSupervisor.d.ts +16 -9
  31. package/dist/cjs/behavior/supervision/ValueSupervisor.d.ts.map +1 -1
  32. package/dist/cjs/behaviors/access-control/AccessControlServer.d.ts.map +1 -1
  33. package/dist/cjs/behaviors/access-control/AccessControlServer.js +19 -15
  34. package/dist/cjs/behaviors/access-control/AccessControlServer.js.map +1 -1
  35. package/dist/cjs/behaviors/administrator-commissioning/AdministratorCommissioningServer.d.ts.map +1 -1
  36. package/dist/cjs/behaviors/administrator-commissioning/AdministratorCommissioningServer.js +5 -5
  37. package/dist/cjs/behaviors/administrator-commissioning/AdministratorCommissioningServer.js.map +1 -1
  38. package/dist/cjs/behaviors/general-commissioning/GeneralCommissioningServer.d.ts.map +1 -1
  39. package/dist/cjs/behaviors/general-commissioning/GeneralCommissioningServer.js +6 -6
  40. package/dist/cjs/behaviors/general-commissioning/GeneralCommissioningServer.js.map +1 -1
  41. package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts.map +1 -1
  42. package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.js +2 -4
  43. package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.js.map +1 -1
  44. package/dist/cjs/behaviors/group-key-management/GroupKeyManagementServer.d.ts.map +1 -1
  45. package/dist/cjs/behaviors/group-key-management/GroupKeyManagementServer.js +9 -6
  46. package/dist/cjs/behaviors/group-key-management/GroupKeyManagementServer.js.map +1 -1
  47. package/dist/cjs/behaviors/groups/GroupsServer.d.ts.map +1 -1
  48. package/dist/cjs/behaviors/groups/GroupsServer.js +12 -9
  49. package/dist/cjs/behaviors/groups/GroupsServer.js.map +2 -2
  50. package/dist/cjs/behaviors/operational-credentials/OperationalCredentialsServer.d.ts.map +1 -1
  51. package/dist/cjs/behaviors/operational-credentials/OperationalCredentialsServer.js +16 -9
  52. package/dist/cjs/behaviors/operational-credentials/OperationalCredentialsServer.js.map +1 -1
  53. package/dist/cjs/behaviors/window-covering/WindowCoveringServer.js +1 -1
  54. package/dist/cjs/behaviors/window-covering/WindowCoveringServer.js.map +1 -1
  55. package/dist/cjs/endpoint/Agent.d.ts +14 -0
  56. package/dist/cjs/endpoint/Agent.d.ts.map +1 -1
  57. package/dist/cjs/endpoint/Agent.js +32 -0
  58. package/dist/cjs/endpoint/Agent.js.map +1 -1
  59. package/dist/cjs/endpoint/Endpoint.js +2 -2
  60. package/dist/cjs/endpoint/Endpoint.js.map +1 -1
  61. package/dist/cjs/endpoint/properties/Behaviors.js +4 -4
  62. package/dist/cjs/endpoint/properties/Behaviors.js.map +1 -1
  63. package/dist/cjs/endpoint/properties/Commands.js +2 -2
  64. package/dist/cjs/endpoint/properties/Commands.js.map +1 -1
  65. package/dist/cjs/node/server/IdentityService.js +2 -2
  66. package/dist/cjs/node/server/IdentityService.js.map +1 -1
  67. package/dist/cjs/node/server/InteractionServer.js.map +1 -1
  68. package/dist/cjs/node/server/OnlineServerInteraction.d.ts +6 -6
  69. package/dist/cjs/node/server/OnlineServerInteraction.d.ts.map +1 -1
  70. package/dist/cjs/node/server/OnlineServerInteraction.js +4 -4
  71. package/dist/cjs/node/server/OnlineServerInteraction.js.map +1 -1
  72. package/dist/cjs/node/server/ProtocolService.js +1 -1
  73. package/dist/cjs/node/server/ProtocolService.js.map +1 -1
  74. package/dist/cjs/node/server/ServerSubscription.d.ts +2 -2
  75. package/dist/cjs/node/server/ServerSubscription.d.ts.map +1 -1
  76. package/dist/cjs/node/server/ServerSubscription.js +3 -3
  77. package/dist/cjs/node/server/ServerSubscription.js.map +1 -1
  78. package/dist/esm/behavior/Behavior.d.ts +0 -18
  79. package/dist/esm/behavior/Behavior.d.ts.map +1 -1
  80. package/dist/esm/behavior/Behavior.js +0 -35
  81. package/dist/esm/behavior/Behavior.js.map +1 -1
  82. package/dist/esm/behavior/Transitions.js +2 -2
  83. package/dist/esm/behavior/Transitions.js.map +1 -1
  84. package/dist/esm/behavior/context/ActionContext.d.ts +4 -29
  85. package/dist/esm/behavior/context/ActionContext.d.ts.map +1 -1
  86. package/dist/esm/behavior/context/server/{OfflineContext.d.ts → LocalActorContext.d.ts} +16 -12
  87. package/dist/esm/behavior/context/server/LocalActorContext.d.ts.map +1 -0
  88. package/dist/esm/behavior/context/server/{OfflineContext.js → LocalActorContext.js} +7 -6
  89. package/dist/esm/behavior/context/server/LocalActorContext.js.map +6 -0
  90. package/dist/esm/behavior/context/server/RemoteActorContext.d.ts +80 -0
  91. package/dist/esm/behavior/context/server/RemoteActorContext.d.ts.map +1 -0
  92. package/dist/esm/behavior/context/server/{OnlineContext.js → RemoteActorContext.js} +14 -31
  93. package/dist/esm/behavior/context/server/RemoteActorContext.js.map +6 -0
  94. package/dist/esm/behavior/context/server/index.d.ts +2 -2
  95. package/dist/esm/behavior/context/server/index.d.ts.map +1 -1
  96. package/dist/esm/behavior/context/server/index.js +2 -2
  97. package/dist/esm/behavior/internal/Reactors.d.ts.map +1 -1
  98. package/dist/esm/behavior/internal/Reactors.js +4 -3
  99. package/dist/esm/behavior/internal/Reactors.js.map +1 -1
  100. package/dist/esm/behavior/state/managed/Datasource.d.ts.map +1 -1
  101. package/dist/esm/behavior/state/managed/Datasource.js +2 -7
  102. package/dist/esm/behavior/state/managed/Datasource.js.map +1 -1
  103. package/dist/esm/behavior/state/managed/values/ListManager.d.ts.map +1 -1
  104. package/dist/esm/behavior/state/managed/values/ListManager.js +13 -5
  105. package/dist/esm/behavior/state/managed/values/ListManager.js.map +1 -1
  106. package/dist/esm/behavior/supervision/ValueSupervisor.d.ts +16 -9
  107. package/dist/esm/behavior/supervision/ValueSupervisor.d.ts.map +1 -1
  108. package/dist/esm/behaviors/access-control/AccessControlServer.d.ts.map +1 -1
  109. package/dist/esm/behaviors/access-control/AccessControlServer.js +21 -15
  110. package/dist/esm/behaviors/access-control/AccessControlServer.js.map +1 -1
  111. package/dist/esm/behaviors/administrator-commissioning/AdministratorCommissioningServer.d.ts.map +1 -1
  112. package/dist/esm/behaviors/administrator-commissioning/AdministratorCommissioningServer.js +13 -6
  113. package/dist/esm/behaviors/administrator-commissioning/AdministratorCommissioningServer.js.map +1 -1
  114. package/dist/esm/behaviors/general-commissioning/GeneralCommissioningServer.d.ts.map +1 -1
  115. package/dist/esm/behaviors/general-commissioning/GeneralCommissioningServer.js +15 -7
  116. package/dist/esm/behaviors/general-commissioning/GeneralCommissioningServer.js.map +1 -1
  117. package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts.map +1 -1
  118. package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.js +3 -5
  119. package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.js.map +1 -1
  120. package/dist/esm/behaviors/group-key-management/GroupKeyManagementServer.d.ts.map +1 -1
  121. package/dist/esm/behaviors/group-key-management/GroupKeyManagementServer.js +10 -7
  122. package/dist/esm/behaviors/group-key-management/GroupKeyManagementServer.js.map +1 -1
  123. package/dist/esm/behaviors/groups/GroupsServer.d.ts.map +1 -1
  124. package/dist/esm/behaviors/groups/GroupsServer.js +12 -9
  125. package/dist/esm/behaviors/groups/GroupsServer.js.map +2 -2
  126. package/dist/esm/behaviors/operational-credentials/OperationalCredentialsServer.d.ts.map +1 -1
  127. package/dist/esm/behaviors/operational-credentials/OperationalCredentialsServer.js +17 -9
  128. package/dist/esm/behaviors/operational-credentials/OperationalCredentialsServer.js.map +1 -1
  129. package/dist/esm/behaviors/window-covering/WindowCoveringServer.js +1 -1
  130. package/dist/esm/behaviors/window-covering/WindowCoveringServer.js.map +1 -1
  131. package/dist/esm/endpoint/Agent.d.ts +14 -0
  132. package/dist/esm/endpoint/Agent.d.ts.map +1 -1
  133. package/dist/esm/endpoint/Agent.js +32 -0
  134. package/dist/esm/endpoint/Agent.js.map +1 -1
  135. package/dist/esm/endpoint/Endpoint.js +2 -2
  136. package/dist/esm/endpoint/Endpoint.js.map +1 -1
  137. package/dist/esm/endpoint/properties/Behaviors.js +4 -4
  138. package/dist/esm/endpoint/properties/Behaviors.js.map +1 -1
  139. package/dist/esm/endpoint/properties/Commands.js +2 -2
  140. package/dist/esm/endpoint/properties/Commands.js.map +1 -1
  141. package/dist/esm/node/server/IdentityService.js +2 -2
  142. package/dist/esm/node/server/IdentityService.js.map +1 -1
  143. package/dist/esm/node/server/InteractionServer.js.map +1 -1
  144. package/dist/esm/node/server/OnlineServerInteraction.d.ts +6 -6
  145. package/dist/esm/node/server/OnlineServerInteraction.d.ts.map +1 -1
  146. package/dist/esm/node/server/OnlineServerInteraction.js +4 -4
  147. package/dist/esm/node/server/OnlineServerInteraction.js.map +1 -1
  148. package/dist/esm/node/server/ProtocolService.js +2 -2
  149. package/dist/esm/node/server/ProtocolService.js.map +1 -1
  150. package/dist/esm/node/server/ServerSubscription.d.ts +2 -2
  151. package/dist/esm/node/server/ServerSubscription.d.ts.map +1 -1
  152. package/dist/esm/node/server/ServerSubscription.js +3 -3
  153. package/dist/esm/node/server/ServerSubscription.js.map +1 -1
  154. package/package.json +7 -7
  155. package/src/behavior/Behavior.ts +0 -41
  156. package/src/behavior/Transitions.ts +2 -2
  157. package/src/behavior/context/ActionContext.ts +4 -35
  158. package/src/behavior/context/server/{OfflineContext.ts → LocalActorContext.ts} +17 -14
  159. package/src/behavior/context/server/{OnlineContext.ts → RemoteActorContext.ts} +65 -52
  160. package/src/behavior/context/server/index.ts +2 -2
  161. package/src/behavior/internal/Reactors.ts +5 -4
  162. package/src/behavior/state/managed/Datasource.ts +3 -9
  163. package/src/behavior/state/managed/values/ListManager.ts +14 -11
  164. package/src/behavior/supervision/ValueSupervisor.ts +18 -10
  165. package/src/behaviors/access-control/AccessControlServer.ts +25 -20
  166. package/src/behaviors/administrator-commissioning/AdministratorCommissioningServer.ts +14 -6
  167. package/src/behaviors/general-commissioning/GeneralCommissioningServer.ts +15 -8
  168. package/src/behaviors/general-diagnostics/GeneralDiagnosticsServer.ts +3 -5
  169. package/src/behaviors/group-key-management/GroupKeyManagementServer.ts +13 -7
  170. package/src/behaviors/groups/GroupsServer.ts +16 -11
  171. package/src/behaviors/operational-credentials/OperationalCredentialsServer.ts +21 -9
  172. package/src/behaviors/window-covering/WindowCoveringServer.ts +1 -1
  173. package/src/endpoint/Agent.ts +34 -0
  174. package/src/endpoint/Endpoint.ts +2 -2
  175. package/src/endpoint/properties/Behaviors.ts +4 -4
  176. package/src/endpoint/properties/Commands.ts +2 -2
  177. package/src/node/server/IdentityService.ts +2 -2
  178. package/src/node/server/InteractionServer.ts +2 -2
  179. package/src/node/server/OnlineServerInteraction.ts +9 -9
  180. package/src/node/server/ProtocolService.ts +2 -2
  181. package/src/node/server/ServerSubscription.ts +5 -5
  182. package/dist/cjs/behavior/context/server/OfflineContext.d.ts.map +0 -1
  183. package/dist/cjs/behavior/context/server/OfflineContext.js.map +0 -6
  184. package/dist/cjs/behavior/context/server/OnlineContext.d.ts +0 -61
  185. package/dist/cjs/behavior/context/server/OnlineContext.d.ts.map +0 -1
  186. package/dist/cjs/behavior/context/server/OnlineContext.js.map +0 -6
  187. package/dist/esm/behavior/context/server/OfflineContext.d.ts.map +0 -1
  188. package/dist/esm/behavior/context/server/OfflineContext.js.map +0 -6
  189. package/dist/esm/behavior/context/server/OnlineContext.d.ts +0 -61
  190. package/dist/esm/behavior/context/server/OnlineContext.d.ts.map +0 -1
  191. 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
- NodeSession.assert(this.session);
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
- const fabric = this.session.associatedFabric;
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.asAdmin(() => {
190
+ this.agent.asLocalActor(() => {
191
191
  this.state.configStatus = configStatus;
192
192
  });
193
193
  }
@@ -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
  }
@@ -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 { OfflineContext } from "#behavior/context/server/OfflineContext.js";
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 OfflineContext.act(
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 { OfflineContext } from "#behavior/context/server/OfflineContext.js";
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 = OfflineContext.act(`initialize<${this.#endpoint}>`, initializeBehaviors, { activity });
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 OfflineContext.act(
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 = OfflineContext.act(
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 { OfflineContext } from "#behavior/context/server/OfflineContext.js";
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 = OfflineContext.open(`invoke-${name}`);
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 { OfflineContext } from "#behavior/context/server/OfflineContext.js";
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(OfflineContext.ReadOnly).get(IndexBehavior).partsById;
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 { OnlineContext } from "#behavior/context/server/OnlineContext.js";
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
- ): OnlineContext.Options {
222
+ ): RemoteActorContext.Options {
223
223
  return {
224
224
  activity: (exchange as NodeActivity.WithActivity)[NodeActivity.activityKey],
225
225
  fabricFiltered,
@@ -1,4 +1,4 @@
1
- import { OnlineContext } from "#behavior/context/server/OnlineContext.js";
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<OnlineContext.Options> {
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: OnlineContext.Options): ReadResult {
24
- const session = OnlineContext(context).beginReadOnly();
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: OnlineContext.Options): SubscribeResult {
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: OnlineContext.Options): WriteResult<T> {
39
- return OnlineContext(context).act(session => this.#interaction.write(request, session));
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: OnlineContext.Options) {
43
- const session = OnlineContext({ ...context, command: true }).open();
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 { OnlineContext } from "#behavior/context/server/OnlineContext.js";
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: OnlineContext.Options, suppressStatusReports = false) {
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 = OnlineContext(context).beginReadOnly();
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: OnlineContext.Options,
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 = OnlineContext({
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
- }