@project-chip/matter.js 0.11.0-alpha.0-20240926-407400ecb → 0.11.0-alpha.0-20241002-e7b377c34

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 (119) hide show
  1. package/dist/cjs/CommissioningController.d.ts +17 -35
  2. package/dist/cjs/CommissioningController.d.ts.map +1 -1
  3. package/dist/cjs/CommissioningController.js +37 -5
  4. package/dist/cjs/CommissioningController.js.map +1 -1
  5. package/dist/cjs/CommissioningServer.d.ts.map +1 -1
  6. package/dist/cjs/CommissioningServer.js +28 -13
  7. package/dist/cjs/CommissioningServer.js.map +1 -1
  8. package/dist/cjs/MatterController.d.ts +32 -70
  9. package/dist/cjs/MatterController.d.ts.map +1 -1
  10. package/dist/cjs/MatterController.js +138 -579
  11. package/dist/cjs/MatterController.js.map +2 -2
  12. package/dist/cjs/PaseCommissioner.d.ts.map +1 -1
  13. package/dist/cjs/PaseCommissioner.js +9 -10
  14. package/dist/cjs/PaseCommissioner.js.map +2 -2
  15. package/dist/cjs/cluster/server/AccessControlServer.d.ts.map +1 -1
  16. package/dist/cjs/cluster/server/AccessControlServer.js +4 -2
  17. package/dist/cjs/cluster/server/AccessControlServer.js.map +1 -1
  18. package/dist/cjs/cluster/server/AdministratorCommissioningServer.d.ts.map +1 -1
  19. package/dist/cjs/cluster/server/AdministratorCommissioningServer.js +1 -1
  20. package/dist/cjs/cluster/server/AdministratorCommissioningServer.js.map +1 -1
  21. package/dist/cjs/cluster/server/ClusterServer.d.ts.map +1 -1
  22. package/dist/cjs/cluster/server/ClusterServer.js +3 -0
  23. package/dist/cjs/cluster/server/ClusterServer.js.map +1 -1
  24. package/dist/cjs/cluster/server/ClusterServerTypes.d.ts +5 -5
  25. package/dist/cjs/cluster/server/ClusterServerTypes.d.ts.map +1 -1
  26. package/dist/cjs/cluster/server/OperationalCredentialsServer.d.ts.map +1 -1
  27. package/dist/cjs/cluster/server/OperationalCredentialsServer.js +9 -10
  28. package/dist/cjs/cluster/server/OperationalCredentialsServer.js.map +1 -1
  29. package/dist/cjs/compat/interaction.d.ts +3 -2
  30. package/dist/cjs/compat/interaction.d.ts.map +1 -1
  31. package/dist/cjs/compat/interaction.js +8 -6
  32. package/dist/cjs/compat/interaction.js.map +1 -1
  33. package/dist/cjs/compat/protocol.d.ts +1 -1
  34. package/dist/cjs/compat/protocol.d.ts.map +1 -1
  35. package/dist/cjs/compat/protocol.js +1 -2
  36. package/dist/cjs/compat/protocol.js.map +1 -1
  37. package/dist/cjs/compat/securechannel.d.ts +2 -1
  38. package/dist/cjs/compat/securechannel.d.ts.map +1 -1
  39. package/dist/cjs/compat/securechannel.js +4 -3
  40. package/dist/cjs/compat/securechannel.js.map +1 -1
  41. package/dist/cjs/compat/util.d.ts +1 -1
  42. package/dist/cjs/compat/util.d.ts.map +1 -1
  43. package/dist/cjs/compat/util.js +1 -1
  44. package/dist/cjs/device/LegacyInteractionServer.d.ts +2 -2
  45. package/dist/cjs/device/LegacyInteractionServer.d.ts.map +1 -1
  46. package/dist/cjs/device/LegacyInteractionServer.js +3 -4
  47. package/dist/cjs/device/LegacyInteractionServer.js.map +1 -1
  48. package/dist/cjs/device/PairedNode.d.ts +1 -2
  49. package/dist/cjs/device/PairedNode.d.ts.map +1 -1
  50. package/dist/cjs/device/PairedNode.js +2 -3
  51. package/dist/cjs/device/PairedNode.js.map +1 -1
  52. package/dist/esm/CommissioningController.d.ts +17 -35
  53. package/dist/esm/CommissioningController.d.ts.map +1 -1
  54. package/dist/esm/CommissioningController.js +41 -5
  55. package/dist/esm/CommissioningController.js.map +1 -1
  56. package/dist/esm/CommissioningServer.d.ts.map +1 -1
  57. package/dist/esm/CommissioningServer.js +28 -13
  58. package/dist/esm/CommissioningServer.js.map +1 -1
  59. package/dist/esm/MatterController.d.ts +32 -70
  60. package/dist/esm/MatterController.d.ts.map +1 -1
  61. package/dist/esm/MatterController.js +144 -601
  62. package/dist/esm/MatterController.js.map +2 -2
  63. package/dist/esm/PaseCommissioner.d.ts.map +1 -1
  64. package/dist/esm/PaseCommissioner.js +12 -11
  65. package/dist/esm/PaseCommissioner.js.map +1 -1
  66. package/dist/esm/cluster/server/AccessControlServer.d.ts.map +1 -1
  67. package/dist/esm/cluster/server/AccessControlServer.js +4 -2
  68. package/dist/esm/cluster/server/AccessControlServer.js.map +1 -1
  69. package/dist/esm/cluster/server/AdministratorCommissioningServer.d.ts.map +1 -1
  70. package/dist/esm/cluster/server/AdministratorCommissioningServer.js +1 -1
  71. package/dist/esm/cluster/server/AdministratorCommissioningServer.js.map +1 -1
  72. package/dist/esm/cluster/server/ClusterServer.d.ts.map +1 -1
  73. package/dist/esm/cluster/server/ClusterServer.js +3 -0
  74. package/dist/esm/cluster/server/ClusterServer.js.map +1 -1
  75. package/dist/esm/cluster/server/ClusterServerTypes.d.ts +5 -5
  76. package/dist/esm/cluster/server/ClusterServerTypes.d.ts.map +1 -1
  77. package/dist/esm/cluster/server/OperationalCredentialsServer.d.ts.map +1 -1
  78. package/dist/esm/cluster/server/OperationalCredentialsServer.js +9 -11
  79. package/dist/esm/cluster/server/OperationalCredentialsServer.js.map +1 -1
  80. package/dist/esm/compat/interaction.d.ts +3 -2
  81. package/dist/esm/compat/interaction.d.ts.map +1 -1
  82. package/dist/esm/compat/interaction.js +14 -15
  83. package/dist/esm/compat/interaction.js.map +1 -1
  84. package/dist/esm/compat/protocol.d.ts +1 -1
  85. package/dist/esm/compat/protocol.d.ts.map +1 -1
  86. package/dist/esm/compat/protocol.js +2 -4
  87. package/dist/esm/compat/protocol.js.map +1 -1
  88. package/dist/esm/compat/securechannel.d.ts +2 -1
  89. package/dist/esm/compat/securechannel.d.ts.map +1 -1
  90. package/dist/esm/compat/securechannel.js +1 -3
  91. package/dist/esm/compat/securechannel.js.map +1 -1
  92. package/dist/esm/compat/util.d.ts +1 -1
  93. package/dist/esm/compat/util.d.ts.map +1 -1
  94. package/dist/esm/compat/util.js +2 -2
  95. package/dist/esm/compat/util.js.map +1 -1
  96. package/dist/esm/device/LegacyInteractionServer.d.ts +2 -2
  97. package/dist/esm/device/LegacyInteractionServer.d.ts.map +1 -1
  98. package/dist/esm/device/LegacyInteractionServer.js +3 -4
  99. package/dist/esm/device/LegacyInteractionServer.js.map +1 -1
  100. package/dist/esm/device/PairedNode.d.ts +1 -2
  101. package/dist/esm/device/PairedNode.d.ts.map +1 -1
  102. package/dist/esm/device/PairedNode.js +1 -1
  103. package/dist/esm/device/PairedNode.js.map +1 -1
  104. package/package.json +8 -8
  105. package/src/CommissioningController.ts +56 -47
  106. package/src/CommissioningServer.ts +27 -12
  107. package/src/MatterController.ts +177 -816
  108. package/src/PaseCommissioner.ts +11 -11
  109. package/src/cluster/server/AccessControlServer.ts +2 -0
  110. package/src/cluster/server/AdministratorCommissioningServer.ts +1 -1
  111. package/src/cluster/server/ClusterServer.ts +4 -0
  112. package/src/cluster/server/ClusterServerTypes.ts +5 -5
  113. package/src/cluster/server/OperationalCredentialsServer.ts +13 -13
  114. package/src/compat/interaction.ts +14 -13
  115. package/src/compat/protocol.ts +2 -3
  116. package/src/compat/securechannel.ts +2 -3
  117. package/src/compat/util.ts +1 -1
  118. package/src/device/LegacyInteractionServer.ts +4 -4
  119. package/src/device/PairedNode.ts +1 -1
@@ -3,7 +3,7 @@
3
3
  * Copyright 2022-2024 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { Environment, ImplementationError, Logger, Network, UdpInterface } from "#general";
6
+ import { Environment, ImplementationError, Logger } from "#general";
7
7
  import {
8
8
  CommissionableDevice,
9
9
  CommissionableDeviceIdentifiers,
@@ -18,6 +18,7 @@ import {
18
18
  import { DiscoveryCapabilitiesBitmap, NodeId, TypeFromPartialBitSchema } from "#types";
19
19
  import {
20
20
  CommissioningControllerOptions,
21
+ configureNetwork as configureControllerNetwork,
21
22
  ControllerEnvironmentOptions,
22
23
  NodeCommissioningOptions,
23
24
  } from "./CommissioningController.js";
@@ -77,31 +78,30 @@ export class PaseCommissioner {
77
78
  return this.controllerInstance;
78
79
  }
79
80
 
80
- const { localPort, listeningAddressIpv4, listeningAddressIpv6, rootCertificateData, fabricData } = this.options;
81
+ const { rootCertificateData, fabricData } = this.options;
81
82
 
82
83
  let mdnsScanner: MdnsScanner | undefined;
83
84
  let ipv4Disabled = false;
84
- let netInterfaceIpv4: UdpInterface | undefined;
85
- let netInterfaceIpv6: UdpInterface | undefined;
86
85
 
87
86
  try {
88
87
  const mdnsService = await this.environment.load(MdnsService);
89
88
  ipv4Disabled = !mdnsService.enableIpv4;
90
89
  mdnsScanner = mdnsService.scanner;
91
- if (!ipv4Disabled) {
92
- netInterfaceIpv4 = await UdpInterface.create(Network.get(), "udp4", localPort, listeningAddressIpv4);
93
- }
94
- netInterfaceIpv6 = await UdpInterface.create(Network.get(), "udp6", localPort, listeningAddressIpv6);
95
90
  } catch {
96
91
  logger.debug("No networking available, using only BLE");
97
92
  }
98
93
 
94
+ const { scanners, netInterfaces } = await configureControllerNetwork({
95
+ mdnsScanner,
96
+ ipv4Disabled,
97
+ ...this.options,
98
+ });
99
+
99
100
  return await MatterController.createAsPaseCommissioner({
100
101
  rootCertificateData,
101
102
  fabricData,
102
- netInterfaceIpv4,
103
- netInterfaceIpv6,
104
- mdnsScanner,
103
+ scanners,
104
+ netInterfaces,
105
105
  });
106
106
  }
107
107
 
@@ -58,6 +58,7 @@ export const AccessControlClusterHandler: () => ClusterServerHandlers<typeof Acc
58
58
  AccessControlCluster,
59
59
  "acl",
60
60
  new Array<TypeFromBitmapSchema<typeof AccessControl.TlvAccessControlEntry>>(),
61
+ MatterDevice.of(session).getFabrics(),
61
62
  );
62
63
  },
63
64
 
@@ -248,6 +249,7 @@ export const AccessControlClusterHandler: () => ClusterServerHandlers<typeof Acc
248
249
  AccessControlCluster,
249
250
  "extension",
250
251
  new Array<AclExtensionEntry>(),
252
+ MatterDevice.of(session).getFabrics(),
251
253
  );
252
254
  },
253
255
 
@@ -168,7 +168,7 @@ class AdministratorCommissioningManager {
168
168
 
169
169
  await device.allowEnhancedCommissioning(
170
170
  discriminator,
171
- PaseServer.fromVerificationValue(pakeVerifier, { iterations, salt }),
171
+ PaseServer.fromVerificationValue(device.sessionManager, pakeVerifier, { iterations, salt }),
172
172
  () => {
173
173
  session.associatedFabric.deleteRemoveCallback(this.fabricRemoveHandler);
174
174
  this.endCommissioning();
@@ -121,6 +121,10 @@ export function ClusterServer<const T extends ClusterType, const H extends Clust
121
121
  return datasource?.eventHandler;
122
122
  },
123
123
 
124
+ get fabrics() {
125
+ return datasource?.fabrics ?? [];
126
+ },
127
+
124
128
  increaseVersion() {
125
129
  return datasource?.increaseVersion() ?? 0;
126
130
  },
@@ -13,8 +13,8 @@ import {
13
13
  Fabric,
14
14
  FabricScopedAttributeServer,
15
15
  FixedAttributeServer,
16
- MatterDeviceSession,
17
16
  Message,
17
+ Session,
18
18
  } from "#protocol";
19
19
  import {
20
20
  Attribute,
@@ -91,20 +91,20 @@ type AttributeGetters<A extends Attributes> = {
91
91
  [P in keyof A as `${string & P}AttributeGetter`]?: (args: {
92
92
  attributes: AttributeServers<A>;
93
93
  endpoint?: Endpoint;
94
- session?: MatterDeviceSession;
94
+ session?: Session;
95
95
  isFabricFiltered?: boolean;
96
96
  }) => AttributeJsType<A[P]>;
97
97
  };
98
98
  type AttributeSetters<A extends Attributes> = {
99
99
  [P in keyof A as `${string & P}AttributeSetter`]?: (
100
100
  value: AttributeJsType<A[P]>,
101
- args: { attributes: AttributeServers<A>; endpoint?: Endpoint; session?: MatterDeviceSession },
101
+ args: { attributes: AttributeServers<A>; endpoint?: Endpoint; session?: Session },
102
102
  ) => boolean;
103
103
  };
104
104
  type AttributeValidators<A extends Attributes> = {
105
105
  [P in keyof A as `${string & P}AttributeValidator`]?: (
106
106
  value: AttributeJsType<A[P]>,
107
- args: { attributes: AttributeServers<A>; endpoint?: Endpoint; session?: MatterDeviceSession },
107
+ args: { attributes: AttributeServers<A>; endpoint?: Endpoint; session?: Session },
108
108
  ) => void;
109
109
  };
110
110
  export type CommandHandler<
@@ -117,7 +117,7 @@ export type CommandHandler<
117
117
  request: RequestT;
118
118
  attributes: AS;
119
119
  events: ES;
120
- session: MatterDeviceSession;
120
+ session: Session;
121
121
  message: Message;
122
122
  endpoint: Endpoint;
123
123
  }) => Promise<ResponseT> | ResponseT
@@ -14,7 +14,6 @@ import {
14
14
  CertificateError,
15
15
  DeviceCertification,
16
16
  FabricTableFullError,
17
- FailsafeContext,
18
17
  MatterDevice,
19
18
  MatterFabricConflictError,
20
19
  MatterFabricInvalidAdminSubjectError,
@@ -65,10 +64,10 @@ OperationalCredentials.Cluster.commands = {
65
64
  ),
66
65
  };
67
66
 
68
- export const OperationalCredentialsClusterHandler: (
67
+ export const OperationalCredentialsClusterHandler = (
69
68
  certificates: DeviceCertification.Definition,
70
69
  productDescription?: ProductDescription,
71
- ) => ClusterServerHandlers<typeof OperationalCredentials.Cluster> = (certificates, productDescription) => {
70
+ ): ClusterServerHandlers<typeof OperationalCredentials.Cluster> => {
72
71
  let certification: DeviceCertification | undefined = undefined;
73
72
  const cert = () => {
74
73
  if (certification !== undefined) {
@@ -150,7 +149,7 @@ export const OperationalCredentialsClusterHandler: (
150
149
  if (!session.isSecure)
151
150
  throw new MatterFlowError("addOperationalCert should be called on a secure session.");
152
151
 
153
- const failsafeContext = FailsafeContext.of(session);
152
+ const failsafeContext = MatterDevice.of(session).failsafeContext;
154
153
 
155
154
  if (failsafeContext.fabricIndex !== undefined) {
156
155
  throw new StatusResponseError(
@@ -180,7 +179,7 @@ export const OperationalCredentialsClusterHandler: (
180
179
  );
181
180
  }
182
181
 
183
- if (session.context.getFabrics().length === supportedFabrics.getLocal()) {
182
+ if (MatterDevice.of(session).getFabrics().length === supportedFabrics.getLocal()) {
184
183
  return {
185
184
  statusCode: OperationalCredentials.NodeOperationalCertStatus.TableFull,
186
185
  debugText: `No more fabrics can be added because limit ${supportedFabrics.getLocal()} reached.`,
@@ -281,7 +280,7 @@ export const OperationalCredentialsClusterHandler: (
281
280
 
282
281
  fabricsAttributeGetter: ({ session, isFabricFiltered }) => {
283
282
  if (session === undefined || !session.isSecure) return []; // ???
284
- const fabrics = isFabricFiltered ? [session.associatedFabric] : session.context.getFabrics();
283
+ const fabrics = isFabricFiltered ? [session.associatedFabric] : MatterDevice.of(session).getFabrics();
285
284
 
286
285
  return fabrics.map(fabric => ({
287
286
  fabricId: fabric.fabricId,
@@ -300,7 +299,7 @@ export const OperationalCredentialsClusterHandler: (
300
299
 
301
300
  nocsAttributeGetter: ({ session, isFabricFiltered }) => {
302
301
  if (session === undefined || !session.isSecure) return []; // ???
303
- const fabrics = isFabricFiltered ? [session.associatedFabric] : session.context.getFabrics();
302
+ const fabrics = isFabricFiltered ? [session.associatedFabric] : MatterDevice.of(session).getFabrics();
304
303
  return fabrics.map(fabric => ({
305
304
  noc: fabric.operationalCert,
306
305
  icac: fabric.intermediateCACert ?? null,
@@ -315,7 +314,7 @@ export const OperationalCredentialsClusterHandler: (
315
314
 
316
315
  commissionedFabricsAttributeGetter: ({ session }) => {
317
316
  if (session === undefined || !session.isSecure) return 0; // ???
318
- return session.context.getFabrics().length;
317
+ return MatterDevice.of(session).getFabrics().length;
319
318
  },
320
319
 
321
320
  trustedRootCertificatesAttributeGetter: ({ session }) => {
@@ -326,7 +325,9 @@ export const OperationalCredentialsClusterHandler: (
326
325
  if (!session.isSecure)
327
326
  throw new MatterFlowError("addOperationalCert should be called on a secure session.");
328
327
 
329
- const rootCerts = session.context.getFabrics().map(fabric => fabric.rootCert);
328
+ const rootCerts = MatterDevice.of(session)
329
+ .getFabrics()
330
+ .map(fabric => fabric.rootCert);
330
331
 
331
332
  const device = MatterDevice.of(session);
332
333
  if (device.isFailsafeArmed()) {
@@ -354,7 +355,7 @@ export const OperationalCredentialsClusterHandler: (
354
355
  // Assert associated fabric is present
355
356
  session.associatedFabric;
356
357
 
357
- const failsafeContext = FailsafeContext.of(session);
358
+ const failsafeContext = MatterDevice.of(session).failsafeContext;
358
359
 
359
360
  if (failsafeContext.fabricIndex !== undefined) {
360
361
  throw new StatusResponseError(
@@ -430,8 +431,7 @@ export const OperationalCredentialsClusterHandler: (
430
431
 
431
432
  const fabric = session.associatedFabric;
432
433
  const currentFabricIndex = fabric.fabricIndex;
433
- const device = session.context;
434
- const conflictingLabelFabric = device
434
+ const conflictingLabelFabric = MatterDevice.of(session)
435
435
  .getFabrics()
436
436
  .find(f => f.label === label && f.fabricIndex !== currentFabricIndex);
437
437
  if (conflictingLabelFabric !== undefined) {
@@ -487,7 +487,7 @@ export const OperationalCredentialsClusterHandler: (
487
487
  }) => {
488
488
  assertSecureSession(session);
489
489
 
490
- const failsafeContext = FailsafeContext.of(session);
490
+ const failsafeContext = MatterDevice.of(session).failsafeContext;
491
491
 
492
492
  if (failsafeContext.hasRootCert) {
493
493
  throw new StatusResponseError(
@@ -4,19 +4,9 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
+ import { Specification } from "#model";
8
+
7
9
  export {
8
- DEFAULT_MAX_PATHS_PER_INVOKE,
9
- EventHandler,
10
- INTERACTION_MODEL_REVISION,
11
- INTERACTION_PROTOCOL_ID,
12
- IncomingInteractionClientMessenger,
13
- InteractionClient,
14
- InteractionClientMessenger,
15
- InteractionEndpointStructure,
16
- InteractionServer,
17
- MessageType,
18
- SubscriptionHandler,
19
- SubscriptionOptions,
20
10
  attributePathToId,
21
11
  canAttributePayloadBeChunked,
22
12
  chunkAttributePayload,
@@ -29,9 +19,16 @@ export {
29
19
  decodeUnknownEventValue,
30
20
  encodeAttributePayload,
31
21
  encodeEventPayload,
22
+ EventHandler,
32
23
  eventPathToId,
33
24
  expandPathsInAttributeData,
34
25
  genericElementPathToId,
26
+ IncomingInteractionClientMessenger,
27
+ InteractionClient,
28
+ InteractionClientMessenger,
29
+ InteractionEndpointStructure,
30
+ InteractionServer,
31
+ MessageType,
35
32
  normalizeAndDecodeAttributeData,
36
33
  normalizeAndDecodeEventData,
37
34
  normalizeAndDecodeReadAttributeReport,
@@ -40,6 +37,8 @@ export {
40
37
  normalizeEventData,
41
38
  sortAttributeDataByPath,
42
39
  structureReadAttributeDataToClusterObject,
40
+ ServerSubscription as SubscriptionHandler,
41
+ ServerSubscriptionConfig as SubscriptionOptions,
43
42
  validateReadAttributesPath,
44
43
  validateReadEventPath,
45
44
  type AttributePath,
@@ -67,5 +66,7 @@ export {
67
66
  type WriteRequest,
68
67
  type WriteResponse,
69
68
  } from "#protocol";
70
- export { StatusResponseError } from "@matter.js/types";
69
+ export { DEFAULT_MAX_PATHS_PER_INVOKE, INTERACTION_PROTOCOL_ID, StatusResponseError } from "#types";
71
70
  export * from "@matter.js/types/protocol";
71
+
72
+ export const INTERACTION_MODEL_REVISION = Specification.INTERACTION_MODEL_REVISION;
@@ -8,8 +8,7 @@ export {
8
8
  ChannelManager,
9
9
  ChannelNotConnectedError,
10
10
  CommissioningError,
11
- CommissioningSuccessfullyFinished,
12
- ControllerCommissioner,
11
+ ControllerCommissioningFlow as ControllerCommissioner,
13
12
  ControllerDiscovery,
14
13
  DiscoveryError,
15
14
  DuplicateMessageError,
@@ -28,7 +27,7 @@ export {
28
27
  NoChannelError,
29
28
  PairRetransmissionLimitReachedError,
30
29
  UnexpectedMessageError,
31
- type ControllerCommissioningOptions as CommissioningOptions,
30
+ type ControllingCommissioningFlowOptions as CommissioningOptions,
32
31
  type ExchangeSendOptions,
33
32
  type ProtocolHandler,
34
33
  } from "#protocol";
@@ -8,12 +8,11 @@ export {
8
8
  ChannelStatusResponseError,
9
9
  DEFAULT_NORMAL_PROCESSING_TIME_MS,
10
10
  EXPECTED_CRYPTO_PROCESSING_TIME_MS,
11
- GeneralStatusCode,
12
- ProtocolStatusCode,
13
11
  SecureChannelMessenger,
14
12
  SecureChannelProtocol,
15
13
  SecureChannelStatusMessageSchema,
16
- SecureMessageType,
17
14
  StatusReportOnlySecureChannelProtocol,
18
15
  type StatusMessage,
19
16
  } from "#protocol";
17
+
18
+ export { GeneralStatusCode, ProtocolStatusCode, SecureMessageType } from "#types";
@@ -11,7 +11,7 @@ export {
11
11
  EventEmitter,
12
12
  MaybePromise,
13
13
  Observable,
14
- Queue,
14
+ DataReadQueue as Queue,
15
15
  camelize,
16
16
  createPromise,
17
17
  deepCopy,
@@ -20,6 +20,7 @@ import {
20
20
  EventPath,
21
21
  EventStorageData,
22
22
  FabricScopedAttributeServer,
23
+ InteractionContext,
23
24
  InteractionEndpointStructure,
24
25
  InteractionServer,
25
26
  Message,
@@ -40,10 +41,9 @@ export class LegacyInteractionServer extends InteractionServer {
40
41
  #endpointStructure: InteractionEndpointStructure;
41
42
  #aclManager?: AccessControlManager;
42
43
 
43
- constructor(config: InteractionServer.Configuration) {
44
- const { endpointStructure } = config;
45
- super(config);
46
- this.#endpointStructure = endpointStructure;
44
+ constructor(context: InteractionContext) {
45
+ super(context);
46
+ this.#endpointStructure = context.structure;
47
47
  }
48
48
 
49
49
  #getAclManager(session: Session) {
@@ -14,7 +14,6 @@ import {
14
14
  MatterError,
15
15
  Time,
16
16
  } from "#general";
17
- import { NodeDiscoveryType } from "#MatterController.js";
18
17
  import {
19
18
  AttributeClientValues,
20
19
  ChannelStatusResponseError,
@@ -25,6 +24,7 @@ import {
25
24
  EndpointInterface,
26
25
  EndpointLoggingOptions,
27
26
  InteractionClient,
27
+ NodeDiscoveryType,
28
28
  PaseClient,
29
29
  logEndpoint,
30
30
  structureReadAttributeDataToClusterObject,