@matter/node 0.11.9 → 0.12.0-alpha.0-20241211-6d80d8b5c

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 (214) hide show
  1. package/dist/cjs/behavior/internal/BehaviorBacking.d.ts +6 -1
  2. package/dist/cjs/behavior/internal/BehaviorBacking.d.ts.map +1 -1
  3. package/dist/cjs/behavior/internal/BehaviorBacking.js +2 -1
  4. package/dist/cjs/behavior/internal/BehaviorBacking.js.map +1 -1
  5. package/dist/cjs/behavior/internal/ClientBehaviorBacking.d.ts +2 -1
  6. package/dist/cjs/behavior/internal/ClientBehaviorBacking.d.ts.map +1 -1
  7. package/dist/cjs/behavior/internal/ClientBehaviorBacking.js +4 -0
  8. package/dist/cjs/behavior/internal/ClientBehaviorBacking.js.map +1 -1
  9. package/dist/cjs/behavior/internal/ServerBehaviorBacking.d.ts +2 -0
  10. package/dist/cjs/behavior/internal/ServerBehaviorBacking.d.ts.map +1 -1
  11. package/dist/cjs/behavior/internal/ServerBehaviorBacking.js +37 -0
  12. package/dist/cjs/behavior/internal/ServerBehaviorBacking.js.map +1 -1
  13. package/dist/cjs/behavior/state/transaction/Transaction.d.ts +18 -18
  14. package/dist/cjs/behavior/system/events/EventsBehavior.d.ts +26 -0
  15. package/dist/cjs/behavior/system/events/EventsBehavior.d.ts.map +1 -0
  16. package/dist/cjs/behavior/system/events/EventsBehavior.js +74 -0
  17. package/dist/cjs/behavior/system/events/EventsBehavior.js.map +6 -0
  18. package/dist/cjs/behavior/system/events/index.d.ts +7 -0
  19. package/dist/cjs/behavior/system/events/index.d.ts.map +1 -0
  20. package/dist/cjs/behavior/system/events/index.js +24 -0
  21. package/dist/cjs/behavior/system/events/index.js.map +6 -0
  22. package/dist/cjs/behavior/system/network/ServerNetworkRuntime.d.ts.map +1 -1
  23. package/dist/cjs/behavior/system/network/ServerNetworkRuntime.js +3 -0
  24. package/dist/cjs/behavior/system/network/ServerNetworkRuntime.js.map +1 -1
  25. package/dist/cjs/behaviors/administrator-commissioning/AdministratorCommissioningServer.d.ts +8 -0
  26. package/dist/cjs/behaviors/administrator-commissioning/AdministratorCommissioningServer.d.ts.map +1 -1
  27. package/dist/cjs/behaviors/administrator-commissioning/AdministratorCommissioningServer.js +12 -4
  28. package/dist/cjs/behaviors/administrator-commissioning/AdministratorCommissioningServer.js.map +1 -1
  29. package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts +2 -4
  30. package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts.map +1 -1
  31. package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.js +6 -8
  32. package/dist/cjs/behaviors/general-diagnostics/GeneralDiagnosticsServer.js.map +1 -1
  33. package/dist/cjs/endpoint/Agent.d.ts +1 -1
  34. package/dist/cjs/endpoint/Agent.js +1 -1
  35. package/dist/cjs/endpoint/index.d.ts +1 -1
  36. package/dist/cjs/endpoint/index.d.ts.map +1 -1
  37. package/dist/cjs/endpoint/index.js +1 -1
  38. package/dist/cjs/endpoint/index.js.map +1 -1
  39. package/dist/cjs/endpoint/properties/Behaviors.d.ts +13 -0
  40. package/dist/cjs/endpoint/properties/Behaviors.d.ts.map +1 -1
  41. package/dist/cjs/endpoint/properties/Behaviors.js +37 -24
  42. package/dist/cjs/endpoint/properties/Behaviors.js.map +2 -2
  43. package/dist/cjs/endpoint/properties/EndpointInitializer.d.ts +8 -3
  44. package/dist/cjs/endpoint/properties/EndpointInitializer.d.ts.map +1 -1
  45. package/dist/cjs/endpoint/properties/EndpointInitializer.js +5 -0
  46. package/dist/cjs/endpoint/properties/EndpointInitializer.js.map +1 -1
  47. package/dist/cjs/endpoint/server/BehaviorServer.d.ts +21 -0
  48. package/dist/cjs/endpoint/server/BehaviorServer.d.ts.map +1 -0
  49. package/dist/cjs/endpoint/server/BehaviorServer.js +272 -0
  50. package/dist/cjs/endpoint/server/BehaviorServer.js.map +6 -0
  51. package/dist/{esm/endpoint → cjs/endpoint/server}/EndpointServer.d.ts +5 -6
  52. package/dist/cjs/endpoint/server/EndpointServer.d.ts.map +1 -0
  53. package/dist/cjs/endpoint/{EndpointServer.js → server/EndpointServer.js} +38 -14
  54. package/dist/cjs/endpoint/server/EndpointServer.js.map +6 -0
  55. package/dist/cjs/{node → endpoint}/server/ServerEndpointInitializer.d.ts +4 -4
  56. package/dist/cjs/endpoint/server/ServerEndpointInitializer.d.ts.map +1 -0
  57. package/dist/cjs/{node → endpoint}/server/ServerEndpointInitializer.js +7 -7
  58. package/dist/cjs/endpoint/server/ServerEndpointInitializer.js.map +6 -0
  59. package/dist/cjs/endpoint/server/index.d.ts +8 -0
  60. package/dist/cjs/endpoint/server/index.d.ts.map +1 -0
  61. package/dist/cjs/endpoint/server/index.js +25 -0
  62. package/dist/cjs/endpoint/server/index.js.map +6 -0
  63. package/dist/cjs/endpoint/type/MutableEndpoint.d.ts.map +1 -1
  64. package/dist/cjs/endpoint/type/MutableEndpoint.js +3 -0
  65. package/dist/cjs/endpoint/type/MutableEndpoint.js.map +1 -1
  66. package/dist/cjs/node/Node.d.ts +5 -0
  67. package/dist/cjs/node/Node.d.ts.map +1 -1
  68. package/dist/cjs/node/Node.js +17 -2
  69. package/dist/cjs/node/Node.js.map +1 -1
  70. package/dist/cjs/node/NodeLifecycle.d.ts +11 -1
  71. package/dist/cjs/node/NodeLifecycle.d.ts.map +1 -1
  72. package/dist/cjs/node/NodeLifecycle.js +14 -0
  73. package/dist/cjs/node/NodeLifecycle.js.map +1 -1
  74. package/dist/cjs/node/ServerNode.d.ts +3 -2
  75. package/dist/cjs/node/ServerNode.d.ts.map +1 -1
  76. package/dist/cjs/node/ServerNode.js +9 -9
  77. package/dist/cjs/node/ServerNode.js.map +1 -1
  78. package/dist/cjs/node/server/ServerEnvironment.js +1 -1
  79. package/dist/cjs/node/server/ServerEnvironment.js.map +1 -1
  80. package/dist/cjs/node/server/TransactionalInteractionServer.d.ts +2 -2
  81. package/dist/cjs/node/server/TransactionalInteractionServer.d.ts.map +1 -1
  82. package/dist/cjs/node/server/TransactionalInteractionServer.js +9 -4
  83. package/dist/cjs/node/server/TransactionalInteractionServer.js.map +2 -2
  84. package/dist/cjs/node/server/index.d.ts +0 -1
  85. package/dist/cjs/node/server/index.d.ts.map +1 -1
  86. package/dist/cjs/node/server/index.js +0 -1
  87. package/dist/cjs/node/server/index.js.map +1 -1
  88. package/dist/esm/behavior/internal/BehaviorBacking.d.ts +6 -1
  89. package/dist/esm/behavior/internal/BehaviorBacking.d.ts.map +1 -1
  90. package/dist/esm/behavior/internal/BehaviorBacking.js +2 -1
  91. package/dist/esm/behavior/internal/BehaviorBacking.js.map +1 -1
  92. package/dist/esm/behavior/internal/ClientBehaviorBacking.d.ts +2 -1
  93. package/dist/esm/behavior/internal/ClientBehaviorBacking.d.ts.map +1 -1
  94. package/dist/esm/behavior/internal/ClientBehaviorBacking.js +4 -0
  95. package/dist/esm/behavior/internal/ClientBehaviorBacking.js.map +1 -1
  96. package/dist/esm/behavior/internal/ServerBehaviorBacking.d.ts +2 -0
  97. package/dist/esm/behavior/internal/ServerBehaviorBacking.d.ts.map +1 -1
  98. package/dist/esm/behavior/internal/ServerBehaviorBacking.js +37 -0
  99. package/dist/esm/behavior/internal/ServerBehaviorBacking.js.map +1 -1
  100. package/dist/esm/behavior/state/transaction/Transaction.d.ts +18 -18
  101. package/dist/esm/behavior/system/events/EventsBehavior.d.ts +26 -0
  102. package/dist/esm/behavior/system/events/EventsBehavior.d.ts.map +1 -0
  103. package/dist/esm/behavior/system/events/EventsBehavior.js +54 -0
  104. package/dist/esm/behavior/system/events/EventsBehavior.js.map +6 -0
  105. package/dist/esm/behavior/system/events/index.d.ts +7 -0
  106. package/dist/esm/behavior/system/events/index.d.ts.map +1 -0
  107. package/dist/esm/behavior/system/events/index.js +7 -0
  108. package/dist/esm/behavior/system/events/index.js.map +6 -0
  109. package/dist/esm/behavior/system/network/ServerNetworkRuntime.d.ts.map +1 -1
  110. package/dist/esm/behavior/system/network/ServerNetworkRuntime.js +3 -0
  111. package/dist/esm/behavior/system/network/ServerNetworkRuntime.js.map +1 -1
  112. package/dist/esm/behaviors/administrator-commissioning/AdministratorCommissioningServer.d.ts +8 -0
  113. package/dist/esm/behaviors/administrator-commissioning/AdministratorCommissioningServer.d.ts.map +1 -1
  114. package/dist/esm/behaviors/administrator-commissioning/AdministratorCommissioningServer.js +12 -4
  115. package/dist/esm/behaviors/administrator-commissioning/AdministratorCommissioningServer.js.map +1 -1
  116. package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts +2 -4
  117. package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.d.ts.map +1 -1
  118. package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.js +6 -8
  119. package/dist/esm/behaviors/general-diagnostics/GeneralDiagnosticsServer.js.map +1 -1
  120. package/dist/esm/endpoint/Agent.d.ts +1 -1
  121. package/dist/esm/endpoint/Agent.js +1 -1
  122. package/dist/esm/endpoint/index.d.ts +1 -1
  123. package/dist/esm/endpoint/index.d.ts.map +1 -1
  124. package/dist/esm/endpoint/index.js +1 -1
  125. package/dist/esm/endpoint/properties/Behaviors.d.ts +13 -0
  126. package/dist/esm/endpoint/properties/Behaviors.d.ts.map +1 -1
  127. package/dist/esm/endpoint/properties/Behaviors.js +38 -27
  128. package/dist/esm/endpoint/properties/Behaviors.js.map +2 -2
  129. package/dist/esm/endpoint/properties/EndpointInitializer.d.ts +8 -3
  130. package/dist/esm/endpoint/properties/EndpointInitializer.d.ts.map +1 -1
  131. package/dist/esm/endpoint/properties/EndpointInitializer.js +5 -0
  132. package/dist/esm/endpoint/properties/EndpointInitializer.js.map +1 -1
  133. package/dist/esm/endpoint/server/BehaviorServer.d.ts +21 -0
  134. package/dist/esm/endpoint/server/BehaviorServer.d.ts.map +1 -0
  135. package/dist/esm/endpoint/server/BehaviorServer.js +269 -0
  136. package/dist/esm/endpoint/server/BehaviorServer.js.map +6 -0
  137. package/dist/{cjs/endpoint → esm/endpoint/server}/EndpointServer.d.ts +5 -6
  138. package/dist/esm/endpoint/server/EndpointServer.d.ts.map +1 -0
  139. package/dist/esm/endpoint/{EndpointServer.js → server/EndpointServer.js} +38 -14
  140. package/dist/esm/endpoint/server/EndpointServer.js.map +6 -0
  141. package/dist/esm/{node → endpoint}/server/ServerEndpointInitializer.d.ts +4 -4
  142. package/dist/esm/endpoint/server/ServerEndpointInitializer.d.ts.map +1 -0
  143. package/dist/esm/{node → endpoint}/server/ServerEndpointInitializer.js +7 -7
  144. package/dist/esm/endpoint/server/ServerEndpointInitializer.js.map +6 -0
  145. package/dist/esm/endpoint/server/index.d.ts +8 -0
  146. package/dist/esm/endpoint/server/index.d.ts.map +1 -0
  147. package/dist/esm/endpoint/server/index.js +8 -0
  148. package/dist/esm/endpoint/server/index.js.map +6 -0
  149. package/dist/esm/endpoint/type/MutableEndpoint.d.ts.map +1 -1
  150. package/dist/esm/endpoint/type/MutableEndpoint.js +3 -0
  151. package/dist/esm/endpoint/type/MutableEndpoint.js.map +1 -1
  152. package/dist/esm/node/Node.d.ts +5 -0
  153. package/dist/esm/node/Node.d.ts.map +1 -1
  154. package/dist/esm/node/Node.js +17 -2
  155. package/dist/esm/node/Node.js.map +1 -1
  156. package/dist/esm/node/NodeLifecycle.d.ts +11 -1
  157. package/dist/esm/node/NodeLifecycle.d.ts.map +1 -1
  158. package/dist/esm/node/NodeLifecycle.js +15 -1
  159. package/dist/esm/node/NodeLifecycle.js.map +1 -1
  160. package/dist/esm/node/ServerNode.d.ts +3 -2
  161. package/dist/esm/node/ServerNode.d.ts.map +1 -1
  162. package/dist/esm/node/ServerNode.js +10 -10
  163. package/dist/esm/node/ServerNode.js.map +1 -1
  164. package/dist/esm/node/server/ServerEnvironment.js +1 -1
  165. package/dist/esm/node/server/ServerEnvironment.js.map +1 -1
  166. package/dist/esm/node/server/TransactionalInteractionServer.d.ts +2 -2
  167. package/dist/esm/node/server/TransactionalInteractionServer.d.ts.map +1 -1
  168. package/dist/esm/node/server/TransactionalInteractionServer.js +9 -4
  169. package/dist/esm/node/server/TransactionalInteractionServer.js.map +2 -2
  170. package/dist/esm/node/server/index.d.ts +0 -1
  171. package/dist/esm/node/server/index.d.ts.map +1 -1
  172. package/dist/esm/node/server/index.js +0 -1
  173. package/dist/esm/node/server/index.js.map +1 -1
  174. package/package.json +7 -7
  175. package/src/behavior/internal/BehaviorBacking.ts +9 -1
  176. package/src/behavior/internal/ClientBehaviorBacking.ts +6 -1
  177. package/src/behavior/internal/ServerBehaviorBacking.ts +51 -0
  178. package/src/behavior/system/events/EventsBehavior.ts +60 -0
  179. package/src/behavior/system/events/index.ts +7 -0
  180. package/src/behavior/system/network/ServerNetworkRuntime.ts +6 -0
  181. package/src/behaviors/administrator-commissioning/AdministratorCommissioningServer.ts +14 -4
  182. package/src/behaviors/general-diagnostics/GeneralDiagnosticsServer.ts +16 -9
  183. package/src/endpoint/Agent.ts +1 -1
  184. package/src/endpoint/index.ts +1 -1
  185. package/src/endpoint/properties/Behaviors.ts +56 -28
  186. package/src/endpoint/properties/EndpointInitializer.ts +9 -3
  187. package/src/endpoint/server/BehaviorServer.ts +387 -0
  188. package/src/endpoint/{EndpointServer.ts → server/EndpointServer.ts} +50 -20
  189. package/src/{node → endpoint}/server/ServerEndpointInitializer.ts +7 -7
  190. package/src/endpoint/server/index.ts +8 -0
  191. package/src/endpoint/type/MutableEndpoint.ts +4 -0
  192. package/src/node/Node.ts +22 -4
  193. package/src/node/NodeLifecycle.ts +17 -1
  194. package/src/node/ServerNode.ts +11 -13
  195. package/src/node/server/ServerEnvironment.ts +1 -1
  196. package/src/node/server/TransactionalInteractionServer.ts +13 -7
  197. package/src/node/server/index.ts +0 -1
  198. package/dist/cjs/behavior/internal/ClusterServerBacking.d.ts +0 -36
  199. package/dist/cjs/behavior/internal/ClusterServerBacking.d.ts.map +0 -1
  200. package/dist/cjs/behavior/internal/ClusterServerBacking.js +0 -342
  201. package/dist/cjs/behavior/internal/ClusterServerBacking.js.map +0 -6
  202. package/dist/cjs/endpoint/EndpointServer.d.ts.map +0 -1
  203. package/dist/cjs/endpoint/EndpointServer.js.map +0 -6
  204. package/dist/cjs/node/server/ServerEndpointInitializer.d.ts.map +0 -1
  205. package/dist/cjs/node/server/ServerEndpointInitializer.js.map +0 -6
  206. package/dist/esm/behavior/internal/ClusterServerBacking.d.ts +0 -36
  207. package/dist/esm/behavior/internal/ClusterServerBacking.d.ts.map +0 -1
  208. package/dist/esm/behavior/internal/ClusterServerBacking.js +0 -330
  209. package/dist/esm/behavior/internal/ClusterServerBacking.js.map +0 -6
  210. package/dist/esm/endpoint/EndpointServer.d.ts.map +0 -1
  211. package/dist/esm/endpoint/EndpointServer.js.map +0 -6
  212. package/dist/esm/node/server/ServerEndpointInitializer.d.ts.map +0 -1
  213. package/dist/esm/node/server/ServerEndpointInitializer.js.map +0 -6
  214. package/src/behavior/internal/ClusterServerBacking.ts +0 -446
@@ -4,9 +4,8 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { ClusterBehavior } from "#behavior/cluster/ClusterBehavior.js";
7
- import { ClusterServerBacking } from "#behavior/internal/ClusterServerBacking.js";
8
- import { ServerBehaviorBacking } from "#behavior/internal/ServerBehaviorBacking.js";
9
7
  import { ImplementationError, InternalError, NotImplementedError } from "#general";
8
+ import { BehaviorServer } from "./BehaviorServer.js";
10
9
  const SERVER = Symbol("server");
11
10
  class EndpointServer {
12
11
  #endpoint;
@@ -19,22 +18,19 @@ class EndpointServer {
19
18
  return this.#endpoint.type.deviceType;
20
19
  }
21
20
  constructor(endpoint) {
22
- endpoint[SERVER] = this;
21
+ if (endpoint[SERVER] !== void 0) {
22
+ throw new InternalError(`Endpoint ${endpoint} cluster server is already initialized`);
23
+ }
24
+ endpoint.construction.assert();
23
25
  this.#endpoint = endpoint;
24
26
  this.#name = endpoint.type.name;
25
- }
26
- createBacking(type) {
27
- let backing;
28
- if (type.prototype instanceof ClusterBehavior) {
29
- const cluster = type.cluster;
30
- if (this.#clusterServers.has(cluster.id)) {
31
- throw new InternalError(`${this.#endpoint}.${cluster.id} initialized multiple times`);
27
+ endpoint[SERVER] = this;
28
+ for (const type of Object.values(endpoint.behaviors.supported)) {
29
+ if (!(type.prototype instanceof ClusterBehavior)) {
30
+ continue;
32
31
  }
33
- backing = new ClusterServerBacking(this, type);
34
- } else {
35
- backing = new ServerBehaviorBacking(this.#endpoint, type, this.#endpoint.behaviors.optionsFor(type));
32
+ this.#serve(type);
36
33
  }
37
- return backing;
38
34
  }
39
35
  get number() {
40
36
  return this.#endpoint.number;
@@ -42,6 +38,17 @@ class EndpointServer {
42
38
  get name() {
43
39
  return this.#name;
44
40
  }
41
+ updateServers() {
42
+ for (const type of Object.values(this.#endpoint.behaviors.supported)) {
43
+ if (!(type.prototype instanceof ClusterBehavior)) {
44
+ continue;
45
+ }
46
+ if (this.#clusterServers.has(type.cluster?.id)) {
47
+ continue;
48
+ }
49
+ this.#serve(type);
50
+ }
51
+ }
45
52
  getNumber() {
46
53
  if (this.number === void 0) {
47
54
  throw new InternalError("Endpoint ID has not been assigned yet");
@@ -69,6 +76,9 @@ class EndpointServer {
69
76
  close() {
70
77
  }
71
78
  async [Symbol.asyncDispose]() {
79
+ for (const server of this.#clusterServers.values()) {
80
+ server.close();
81
+ }
72
82
  this.#clusterServers.clear();
73
83
  delete this.#endpoint[SERVER];
74
84
  for (const endpoint of this.#endpoint.parts) {
@@ -124,6 +134,20 @@ class EndpointServer {
124
134
  }
125
135
  }
126
136
  }
137
+ /**
138
+ * Install a ClusterServer for a behavior.
139
+ */
140
+ #serve(type) {
141
+ const { cluster } = type;
142
+ if (cluster === void 0) {
143
+ throw new InternalError(`Cannot serve ${this.endpoint} behavior ${type.id}} because it is not a cluster`);
144
+ }
145
+ if (this.#clusterServers.has(cluster.id)) {
146
+ throw new ImplementationError(`Duplicate behaviors for ${this.endpoint} define cluster ${cluster.id}`);
147
+ }
148
+ const clusterServer = BehaviorServer(this, type);
149
+ this.#clusterServers.set(cluster.id, clusterServer);
150
+ }
127
151
  /**
128
152
  * Retrieve the server for an endpoint.
129
153
  */
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/endpoint/server/EndpointServer.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -15,11 +15,11 @@ export declare class ServerEndpointInitializer extends EndpointInitializer {
15
15
  eraseDescendant(endpoint: Endpoint): Promise<void>;
16
16
  deactivateDescendant(endpoint: Endpoint): Promise<void>;
17
17
  /**
18
- * If a {@link Endpoint} does not yet have a {@link EndpointServer}, create one now, then create a
19
- * {@link BehaviorBacking} for a specific {@link Behavior}.
18
+ * Create the backing.
20
19
  *
21
- * This is where we adapt endpoints and behaviors for a server role.
20
+ * If the behavior is a cluster behavior and the node is already initialized, create a server when the behavior
21
+ * initializes.
22
22
  */
23
- createBacking(endpoint: Endpoint, behavior: Behavior.Type): BehaviorBacking;
23
+ createBacking(endpoint: Endpoint, type: Behavior.Type): BehaviorBacking;
24
24
  }
25
25
  //# sourceMappingURL=ServerEndpointInitializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerEndpointInitializer.d.ts","sourceRoot":"","sources":["../../../../src/endpoint/server/ServerEndpointInitializer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAClF,OAAO,EAAE,WAAW,EAAyB,MAAM,UAAU,CAAC;AAM9D,qBAAa,yBAA0B,SAAQ,mBAAmB;;gBAGlD,WAAW,EAAE,WAAW;IAK3B,oBAAoB,CAAC,QAAQ,EAAE,QAAQ;IAU1C,eAAe,CAAC,QAAQ,EAAE,QAAQ;IAQlC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ;IAQ7C;;;;;OAKG;IACH,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,GAAG,eAAe;CA6C1E"}
@@ -3,12 +3,12 @@
3
3
  * Copyright 2022-2024 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { ServerBehaviorBacking } from "#behavior/internal/ServerBehaviorBacking.js";
6
7
  import { Endpoint } from "#endpoint/Endpoint.js";
7
- import { EndpointServer } from "#endpoint/EndpointServer.js";
8
8
  import { EndpointInitializer } from "#endpoint/properties/EndpointInitializer.js";
9
9
  import { InternalError, Logger } from "#general";
10
10
  import { DescriptorServer } from "../../behaviors/descriptor/DescriptorServer.js";
11
- import { ServerNodeStore } from "../storage/ServerNodeStore.js";
11
+ import { ServerNodeStore } from "../../node/storage/ServerNodeStore.js";
12
12
  const logger = Logger.get("BehaviorInit");
13
13
  class ServerEndpointInitializer extends EndpointInitializer {
14
14
  #store;
@@ -36,13 +36,13 @@ class ServerEndpointInitializer extends EndpointInitializer {
36
36
  this.#store.endpointStores.deactivateStoreForEndpoint(endpoint);
37
37
  }
38
38
  /**
39
- * If a {@link Endpoint} does not yet have a {@link EndpointServer}, create one now, then create a
40
- * {@link BehaviorBacking} for a specific {@link Behavior}.
39
+ * Create the backing.
41
40
  *
42
- * This is where we adapt endpoints and behaviors for a server role.
41
+ * If the behavior is a cluster behavior and the node is already initialized, create a server when the behavior
42
+ * initializes.
43
43
  */
44
- createBacking(endpoint, behavior) {
45
- return EndpointServer.forEndpoint(endpoint).createBacking(behavior);
44
+ createBacking(endpoint, type) {
45
+ return new ServerBehaviorBacking(endpoint, type, endpoint.behaviors.optionsFor(type));
46
46
  }
47
47
  /**
48
48
  * Select an ID for an endpoint automatically based on available metadata.
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/endpoint/server/ServerEndpointInitializer.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,6BAA6B;AACtC,SAAS,gBAAgB;AACzB,SAAS,2BAA2B;AACpC,SAAsB,eAAe,cAAc;AACnD,SAAS,wBAAwB;AACjC,SAAS,uBAAuB;AAEhC,MAAM,SAAS,OAAO,IAAI,cAAc;AAEjC,MAAM,kCAAkC,oBAAoB;AAAA,EAC/D;AAAA,EAEA,YAAY,aAA0B;AAClC,UAAM;AACN,SAAK,SAAS,YAAY,IAAI,eAAe;AAAA,EACjD;AAAA,EAES,qBAAqB,UAAoB;AAC9C,QAAI,CAAC,SAAS,UAAU,OAAO;AAC3B,eAAS,KAAK,KAAK,cAAc,QAAQ;AAAA,IAC7C;AAEA,SAAK,OAAO,eAAe,aAAa,QAAQ;AAEhD,aAAS,UAAU,QAAQ,gBAAgB;AAAA,EAC/C;AAAA,EAEA,MAAM,gBAAgB,UAAoB;AACtC,QAAI,CAAC,SAAS,UAAU,OAAO;AAC3B;AAAA,IACJ;AAEA,UAAM,KAAK,OAAO,eAAe,sBAAsB,QAAQ;AAAA,EACnE;AAAA,EAEA,MAAM,qBAAqB,UAAoB;AAC3C,QAAI,CAAC,SAAS,UAAU,SAAS,SAAS,WAAW,GAAG;AACpD;AAAA,IACJ;AAEA,SAAK,OAAO,eAAe,2BAA2B,QAAQ;AAAA,EAClE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,cAAc,UAAoB,MAAsC;AACpE,WAAO,IAAI,sBAAsB,UAAU,MAAM,SAAS,UAAU,WAAW,IAAI,CAAC;AAAA,EACxF;AAAA;AAAA;AAAA;AAAA,EAKA,cAAc,UAAoB;AAC9B,UAAM,YACF,SAAS,UAAU,UAAU,oBAAoB,SAAS,UAAU,UAAU;AAClF,QAAI,WAAW;AACX,YAAM,WAAW;AAAA,QACb,GAAG,IAAI,UAAU,MAAM;AAAA,QACvB,GAAG,SAAS,UAAU,YAAY,SAAS;AAAA,MAC/C;AAEA,UAAIA,MAAM,SAAoC;AAC9C,UAAIA,KAAI;AACJ,eAAOA;AAAA,MACX;AAEA,MAAAA,MAAM,SAAoC;AAC1C,UAAIA,KAAI;AACJ,eAAOA;AAAA,MACX;AAAA,IACJ;AAEA,QAAI,EAAE,SAAS,iBAAiB,WAAW;AACvC,YAAM,IAAI,cAAc,2DAA2D;AAAA,IACvF;AACA,QAAI,CAAC,SAAS,MAAM,UAAU,OAAO;AACjC,YAAM,IAAI,cAAc,2DAA2D;AAAA,IACvF;AAEA,UAAM,QAAQ,SAAS,MAAM,MAAM,QAAQ,QAAQ;AACnD,QAAI,UAAU,IAAI;AACd,YAAM,IAAI,cAAc,wEAAwE;AAAA,IACpG;AAGA,UAAM,KAAK,OAAO,KAAK;AACvB,WAAO,KAAK,wBAAwB,EAAE,iBAAiB,SAAS,KAAK,oCAAoC;AAEzG,WAAO;AAAA,EACX;AACJ;",
5
+ "names": ["id"]
6
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export * from "./EndpointServer.js";
7
+ export * from "./ServerEndpointInitializer.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/endpoint/server/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export * from "./EndpointServer.js";
7
+ export * from "./ServerEndpointInitializer.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/endpoint/server/index.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;AACd,cAAc;",
5
+ "names": []
6
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"MutableEndpoint.d.ts","sourceRoot":"","sources":["../../../../src/endpoint/type/MutableEndpoint.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACjD;;OAEG;IACH,QAAQ,EAAE,EAAE,CAAC;IAEb;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,eAAe,CAAC;IAEnC;;OAEG;IACH,aAAa,CAAC,GAAG,SAAS,EAAE,kBAAkB,CAAC,IAAI,GAAG,eAAe,CAAC;IAEtE;;OAEG;IACH,IAAI,CAAC,GAAG,SAAS,EAAE,kBAAkB,CAAC,IAAI,GAAG,eAAe,CAAC;CAChE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,CAAC,CAAC,SAAS,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,GAuC5D,eAAe,CAAC,IAAI,CAChC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EACnB,CAAC,CAAC,WAAW,CAAC,SAAS,kBAAkB,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAClE,CACJ;AAED,yBAAiB,eAAe,CAAC;IAC7B,KAAY,IAAI,CAAC,CAAC,SAAS,YAAY,EAAE,EAAE,SAAS,kBAAkB,IAAI,IAAI,CAC1E,CAAC,EACD,WAAW,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM,CAC5C,GAAG;QACA,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;QAE/B;;WAEG;QACH,QAAQ,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEzC;;WAEG;QACH,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEhE;;WAEG;QACH,aAAa,CAAC,KAAK,CAAC,EAAE,SAAS,kBAAkB,CAAC,IAAI,EAClD,GAAG,SAAS,EAAE,EAAE,GACjB,IAAI,CAAC,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAE5C;;WAEG;QACH,IAAI,CAAC,KAAK,CAAC,EAAE,SAAS,kBAAkB,CAAC,IAAI,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;KAC9G,CAAC;CACL"}
1
+ {"version":3,"file":"MutableEndpoint.d.ts","sourceRoot":"","sources":["../../../../src/endpoint/type/MutableEndpoint.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACjD;;OAEG;IACH,QAAQ,EAAE,EAAE,CAAC;IAEb;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,eAAe,CAAC;IAEnC;;OAEG;IACH,aAAa,CAAC,GAAG,SAAS,EAAE,kBAAkB,CAAC,IAAI,GAAG,eAAe,CAAC;IAEtE;;OAEG;IACH,IAAI,CAAC,GAAG,SAAS,EAAE,kBAAkB,CAAC,IAAI,GAAG,eAAe,CAAC;CAChE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,CAAC,CAAC,SAAS,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,GA2C5D,eAAe,CAAC,IAAI,CAChC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EACnB,CAAC,CAAC,WAAW,CAAC,SAAS,kBAAkB,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAClE,CACJ;AAED,yBAAiB,eAAe,CAAC;IAC7B,KAAY,IAAI,CAAC,CAAC,SAAS,YAAY,EAAE,EAAE,SAAS,kBAAkB,IAAI,IAAI,CAC1E,CAAC,EACD,WAAW,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM,CAC5C,GAAG;QACA,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;QAE/B;;WAEG;QACH,QAAQ,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEzC;;WAEG;QACH,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEhE;;WAEG;QACH,aAAa,CAAC,KAAK,CAAC,EAAE,SAAS,kBAAkB,CAAC,IAAI,EAClD,GAAG,SAAS,EAAE,EAAE,GACjB,IAAI,CAAC,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAE5C;;WAEG;QACH,IAAI,CAAC,KAAK,CAAC,EAAE,SAAS,kBAAkB,CAAC,IAAI,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;KAC9G,CAAC;CACL"}
@@ -35,6 +35,9 @@ function MutableEndpoint(options) {
35
35
  ...options,
36
36
  behaviors: SupportedBehaviors.extend(this.behaviors, behaviors)
37
37
  });
38
+ },
39
+ withBehaviors(...behaviors) {
40
+ return this.with(...behaviors);
38
41
  }
39
42
  };
40
43
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/endpoint/type/MutableEndpoint.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,0BAA0B;AACnC,SAAS,oBAAoB;AA8BtB,SAAS,gBAAsD,SAAY;AAC9E,QAAM,OAAO,aAAa,OAAO;AACjC,MAAI;AAEJ,SAAO;AAAA,IACH,GAAG;AAAA,IAEH,IAAI,WAAW;AACX,UAAI,CAAC,UAAU;AACX,mBAAW,CAAC;AAEZ,mBAAW,QAAQ,KAAK,WAAW;AAC/B,mBAAS,IAAI,IAAK,KAAK,UAAU,IAAI,EAAoB;AAAA,QAC7D;AAAA,MACJ;AAEA,aAAO;AAAA,IACX;AAAA,IAEA,IAA2BA,WAAkE;AACzF,YAAM,eAAe,MAAqB;AAE1C,iBAAW,QAAQ,KAAK,WAAW;AAC/B,cAAM,UAAWA,UAAiB,IAAI;AACtC,cAAM,WAAW,KAAK,UAAU,IAAI;AACpC,YAAI,SAAS;AACT,uBAAa,KAAK,SAAS,IAAI,OAAO,CAAC;AAAA,QAC3C;AAAA,MACJ;AAEA,aAAO,KAAK,KAAK,GAAG,YAAY;AAAA,IACpC;AAAA,IAEA,QAA+B,WAA4B;AACvD,aAAO,gBAAgB;AAAA,QACnB,GAAG;AAAA,QACH,WAAW,mBAAmB,OAAO,KAAK,WAAW,SAAS;AAAA,MAClE,CAAC;AAAA,IACL;AAAA,EACJ;AAIJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,0BAA0B;AACnC,SAAS,oBAAoB;AA8BtB,SAAS,gBAAsD,SAAY;AAC9E,QAAM,OAAO,aAAa,OAAO;AACjC,MAAI;AAEJ,SAAO;AAAA,IACH,GAAG;AAAA,IAEH,IAAI,WAAW;AACX,UAAI,CAAC,UAAU;AACX,mBAAW,CAAC;AAEZ,mBAAW,QAAQ,KAAK,WAAW;AAC/B,mBAAS,IAAI,IAAK,KAAK,UAAU,IAAI,EAAoB;AAAA,QAC7D;AAAA,MACJ;AAEA,aAAO;AAAA,IACX;AAAA,IAEA,IAA2BA,WAAkE;AACzF,YAAM,eAAe,MAAqB;AAE1C,iBAAW,QAAQ,KAAK,WAAW;AAC/B,cAAM,UAAWA,UAAiB,IAAI;AACtC,cAAM,WAAW,KAAK,UAAU,IAAI;AACpC,YAAI,SAAS;AACT,uBAAa,KAAK,SAAS,IAAI,OAAO,CAAC;AAAA,QAC3C;AAAA,MACJ;AAEA,aAAO,KAAK,KAAK,GAAG,YAAY;AAAA,IACpC;AAAA,IAEA,QAA+B,WAA4B;AACvD,aAAO,gBAAgB;AAAA,QACnB,GAAG;AAAA,QACH,WAAW,mBAAmB,OAAO,KAAK,WAAW,SAAS;AAAA,MAClE,CAAC;AAAA,IACL;AAAA,IAEA,iBAAwC,WAA4B;AAChE,aAAO,KAAK,KAAK,GAAG,SAAS;AAAA,IACjC;AAAA,EACJ;AAIJ;",
5
5
  "names": ["defaults"]
6
6
  }
@@ -26,6 +26,7 @@ export declare abstract class Node<T extends Node.CommonRootEndpoint = Node.Comm
26
26
  * Bring the node online.
27
27
  */
28
28
  start(): Promise<void>;
29
+ protected startWithMutex(): Promise<void>;
29
30
  /**
30
31
  * @deprecated use {@link start}
31
32
  */
@@ -40,7 +41,11 @@ export declare abstract class Node<T extends Node.CommonRootEndpoint = Node.Comm
40
41
  * Once the node is offline you may use {@link start} to bring the node online again.
41
42
  */
42
43
  cancel(): Promise<void>;
44
+ protected cancelWithMutex(): Promise<void>;
43
45
  close(): Promise<void>;
46
+ protected closeWithMutex(): Promise<void>;
47
+ reset(): Promise<void>;
48
+ protected resetWithMutex(): Promise<void>;
44
49
  /**
45
50
  * Create the network runtime.
46
51
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Node.d.ts","sourceRoot":"","sources":["../../../src/node/Node.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EACH,YAAY,EACZ,UAAU,EAEV,WAAW,EACX,QAAQ,EAGR,cAAc,EACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD;;;;GAIG;AACH,8BAAsB,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAE,SAAQ,QAAQ,CAAC,CAAC,CAAC;;gBAI3F,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAmCzC,IAAa,GAAG,gBAEf;cAEkB,eAAe,IAAI,aAAa;IAInD;;OAEG;IACG,KAAK;IAqBX;;OAEG;IACG,WAAW;IAIjB;;OAEG;IACG,GAAG;IAKT;;;;OAIG;IACG,MAAM;IAUG,KAAK;IAYpB;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,cAAc;IAElD,QAAQ,CAAC,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAEhD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,4BAEzB;IAED,IAAa,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,OAAO,CAWzC;IAED,IAAa,SAAS,IAAI,aAAa,CAEtC;IAED,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM;IAIvB,CAAC,YAAY,CAAC,QAAQ,CAAC;CAKzC;AAED,yBAAiB,IAAI,CAAC;IAClB,UAAiB,WAAY,SAAQ,QAAQ,CAAC,eAAe;QACzD,WAAW,CAAC,EAAE,WAAW,CAAC;KAC7B;IAED,KAAY,OAAO,CAAC,CAAC,SAAS,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAEpH,KAAY,aAAa,CAAC,CAAC,SAAS,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,IAAI,QAAQ,CAAC,aAAa,CAC3G,CAAC,EACD,WAAW,CACd,CAAC;IAEF,SAAgB,aAAa,CAAC,CAAC,SAAS,YAAY,EAChD,WAAW,EAAE,CAAC,EACd,aAAa,EAAE,SAAS,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,EAC/C,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GACrB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAoBvB;IAED;;OAEG;IACI,MAAM,kBAAkB;;;;;;;;;;;;;MAU7B,CAAC;IAEH,UAAiB,kBAAmB,SAAQ,QAAQ,CAAC,OAAO,kBAAkB,CAAC;KAAG;CACrF"}
1
+ {"version":3,"file":"Node.d.ts","sourceRoot":"","sources":["../../../src/node/Node.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EACH,YAAY,EACZ,UAAU,EAEV,WAAW,EACX,QAAQ,EAGR,cAAc,EACjB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD;;;;GAIG;AACH,8BAAsB,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAE,SAAQ,QAAQ,CAAC,CAAC,CAAC;;gBAI3F,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAmCzC,IAAa,GAAG,gBAEf;cAEkB,eAAe,IAAI,aAAa;IAInD;;OAEG;IACG,KAAK;cAIK,cAAc;IAqB9B;;OAEG;IACG,WAAW;IAIjB;;OAEG;IACG,GAAG;IAKT;;;;OAIG;IACG,MAAM;cAII,eAAe;IAUhB,KAAK;cAIJ,cAAc;IAUf,KAAK;cAIJ,cAAc;IAI9B;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,cAAc;IAElD,QAAQ,CAAC,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAEhD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,4BAEzB;IAED,IAAa,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,OAAO,CAWzC;IAED,IAAa,SAAS,IAAI,aAAa,CAEtC;IAED,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM;IAIvB,CAAC,YAAY,CAAC,QAAQ,CAAC;CAKzC;AAED,yBAAiB,IAAI,CAAC;IAClB,UAAiB,WAAY,SAAQ,QAAQ,CAAC,eAAe;QACzD,WAAW,CAAC,EAAE,WAAW,CAAC;KAC7B;IAED,KAAY,OAAO,CAAC,CAAC,SAAS,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAEpH,KAAY,aAAa,CAAC,CAAC,SAAS,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,IAAI,QAAQ,CAAC,aAAa,CAC3G,CAAC,EACD,WAAW,CACd,CAAC;IAEF,SAAgB,aAAa,CAAC,CAAC,SAAS,YAAY,EAChD,WAAW,EAAE,CAAC,EACd,aAAa,EAAE,SAAS,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,EAC/C,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GACrB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAoBvB;IAED;;OAEG;IACI,MAAM,kBAAkB;;;;;;;;;;;;;MAU7B,CAAC;IAEH,UAAiB,kBAAmB,SAAQ,QAAQ,CAAC,OAAO,kBAAkB,CAAC;KAAG;CACrF"}
@@ -103,6 +103,9 @@ class Node extends Endpoint {
103
103
  * Bring the node online.
104
104
  */
105
105
  async start() {
106
+ await this.lifecycle.mutex.produce(this.startWithMutex.bind(this));
107
+ }
108
+ async startWithMutex() {
106
109
  this.env.runtime.add(this);
107
110
  try {
108
111
  await this.construction.ready;
@@ -137,6 +140,9 @@ class Node extends Endpoint {
137
140
  * Once the node is offline you may use {@link start} to bring the node online again.
138
141
  */
139
142
  async cancel() {
143
+ await this.lifecycle.mutex.produce(this.cancelWithMutex.bind(this));
144
+ }
145
+ async cancelWithMutex() {
140
146
  if (!this.#runtime) {
141
147
  return;
142
148
  }
@@ -145,11 +151,20 @@ class Node extends Endpoint {
145
151
  this.#runtime = void 0;
146
152
  }
147
153
  async close() {
154
+ await this.lifecycle.mutex.produce(this.closeWithMutex.bind(this));
155
+ }
156
+ async closeWithMutex() {
148
157
  if (this.#runtime) {
149
- await this.cancel();
158
+ await this.cancelWithMutex();
150
159
  }
151
160
  await super.close();
152
161
  }
162
+ async reset() {
163
+ await this.lifecycle.mutex.produce(this.resetWithMutex.bind(this));
164
+ }
165
+ async resetWithMutex() {
166
+ return super.reset();
167
+ }
153
168
  get [RuntimeService.label]() {
154
169
  return ["Runtime for", Diagnostic.strong(this.toString())];
155
170
  }
@@ -179,7 +194,7 @@ class Node extends Endpoint {
179
194
  logger.notice(Diagnostic.strong(this.toString()), message);
180
195
  }
181
196
  async [Construction.destruct]() {
182
- await this.cancel();
197
+ await this.cancelWithMutex();
183
198
  await super[Construction.destruct]();
184
199
  DiagnosticSource.delete(this);
185
200
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/node/Node.ts"],
4
- "mappings": "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",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAE9B,SAAS,qBAAqB;AAC9B,SAAS,gBAAgB;AACzB,SAAS,uBAAuB;AAEhC;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,oBAAoB;AAC7B,SAAS,qBAAqB;AAE9B,MAAM,SAAS,OAAO,IAAI,MAAM;AAOzB,MAAe,aAA0E,SAAY;AAAA,EACxG;AAAA,EACA;AAAA,EAEA,YAAY,QAA+B;AACvC,UAAM,oBAAoB,OAAO,eAAe,OAAO,OAAO,OAAO,YAAY;AAEjF,QAAI,OAAO,OAAO,QAAW;AACzB,aAAO,KAAK,OAAO,kBAAkB,KAAK,UAAU,qBAAqB,CAAC;AAAA,IAC9E;AAEA,UAAM,MAAM;AAGZ,SAAK,eAAe,IAAI,YAAY,OAAO,IAAI,iBAAiB;AAEhE,SAAK,aAAa,IAAI,cAAc,IAAI,aAAa,CAAC;AAEtD,QAAI,KAAK,UAAU,WAAW;AAC1B,UAAI,KAAK,WAAW,GAAG;AACnB,cAAM,IAAI,oBAAoB,gCAAgC;AAAA,MAClE;AAAA,IACJ,OAAO;AACH,WAAK,SAAS;AAAA,IAClB;AAEA,SAAK,UAAU,OAAO,GAAG,MAAM;AAC3B,WAAK,aAAa,WAAW;AAAA,IACjC,CAAC;AAED,SAAK,UAAU,QAAQ,GAAG,MAAM;AAC5B,WAAK,aAAa,YAAY;AAAA,IAClC,CAAC;AAED,SAAK,UAAU,aAAa,GAAG,MAAM;AACjC,WAAK,aAAa,eAAe;AAAA,IACrC,CAAC;AAAA,EACL;AAAA,EAEA,IAAa,MAAM;AACf,WAAO,KAAK;AAAA,EAChB;AAAA,EAEmB,kBAAiC;AAChD,WAAO,IAAI,cAAc,IAAI;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,QAAQ;AACV,UAAM,KAAK,UAAU,MAAM,QAAQ,KAAK,eAAe,KAAK,IAAI,CAAC;AAAA,EACrE;AAAA,EAEA,MAAgB,iBAAiB;AAC7B,SAAK,IAAI,QAAQ,IAAI,IAAI;AAEzB,QAAI;AACA,YAAM,KAAK,aAAa;AAExB,UAAI,KAAK,UAAU;AACf;AAAA,MACJ;AAEA,WAAK,aAAa,cAAc;AAEhC,WAAK,WAAW,KAAK,cAAc;AACnC,WAAK,SAAS,aAAa,MAAM;AACjC,YAAM,KAAK,SAAS,aAAa;AAAA,IACrC,SAAS,GAAG;AACR,WAAK,IAAI,QAAQ,OAAO,IAAI;AAC5B,YAAM;AAAA,IACV;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,cAAc;AAChB,WAAO,KAAK,MAAM;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,MAAM;AACR,UAAM,KAAK,MAAM;AACjB,UAAM,KAAK,aAAa;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,SAAS;AACX,UAAM,KAAK,UAAU,MAAM,QAAQ,KAAK,gBAAgB,KAAK,IAAI,CAAC;AAAA,EACtE;AAAA,EAEA,MAAgB,kBAAkB;AAC9B,QAAI,CAAC,KAAK,UAAU;AAChB;AAAA,IACJ;AAEA,UAAM,KAAK,IAAI,WAAS,KAAK,UAAU,aAAa,KAAK,MAAM,OAAO,CAAC;AACvE,UAAM,KAAK,UAAU,MAAM;AAC3B,SAAK,WAAW;AAAA,EACpB;AAAA,EAEA,MAAe,QAAQ;AACnB,UAAM,KAAK,UAAU,MAAM,QAAQ,KAAK,eAAe,KAAK,IAAI,CAAC;AAAA,EACrE;AAAA,EAEA,MAAgB,iBAAiB;AAG7B,QAAI,KAAK,UAAU;AACf,YAAM,KAAK,gBAAgB;AAAA,IAC/B;AAEA,UAAM,MAAM,MAAM;AAAA,EACtB;AAAA,EAEA,MAAe,QAAQ;AACnB,UAAM,KAAK,UAAU,MAAM,QAAQ,KAAK,eAAe,KAAK,IAAI,CAAC;AAAA,EACrE;AAAA,EAEA,MAAgB,iBAAiB;AAC7B,WAAO,MAAM,MAAM;AAAA,EACvB;AAAA,EASA,KAAK,eAAe,KAAK,IAAI;AACzB,WAAO,CAAC,eAAe,WAAW,OAAO,KAAK,SAAS,CAAC,CAAC;AAAA,EAC7D;AAAA,EAEA,KAAc,WAAW,KAAK,IAAa;AAEvC;AAAA;AADA,YAAM,eAAe,KAAK,aAAa,IAAI,YAAY;AACvD,YAAM,YAAY,6BAAa,MAAM,aAAa;AAClD,aAAO,WAAW,KAAK,aAAM,KAAK,IAAI;AAAA,QAClC,UAAU;AAAA,UACN,WAAW,OAAO,WAAW;AAAA,UAC7B,WAAW,KAAK,CAAC,MAAM,WAAW,KAAK,CAAC,CAAC;AAAA,UACzC,WAAW,OAAO,UAAU;AAAA,UAC5B,aAAa,WAAW,KAAK;AAAA,QACjC;AAAA,MACJ,CAAC;AAAA,aARD;AAAA;AAAA;AAAA;AAAA;AAAA,EASJ;AAAA,EAEA,IAAa,YAA2B;AACpC,WAAO,MAAM;AAAA,EACjB;AAAA,EAEU,aAAa,SAAiB;AACpC,WAAO,OAAO,WAAW,OAAO,KAAK,SAAS,CAAC,GAAG,OAAO;AAAA,EAC7D;AAAA,EAEA,OAAgB,aAAa,QAAQ,IAAI;AACrC,UAAM,KAAK,gBAAgB;AAC3B,UAAM,MAAM,aAAa,QAAQ,EAAE;AACnC,qBAAiB,OAAO,IAAI;AAAA,EAChC;AACJ;AAAA,CAEO,CAAUA,UAAV;AAYI,WAAS,cACZ,aACA,eACA,SACqB;AACrB,QAAI,CAAC,SAAS;AACV,gBAAU,CAAC;AAAA,IACf;AACA,QAAI,kBAAkB,QAAW;AAC7B,aAAO;AAAA,QACH,MAAM;AAAA,QACN,GAAG;AAAA,MACP;AAAA,IACJ;AACA,QAAK,cAA+B,eAAe,QAAW;AAC1D,aAAO;AAAA,QACH,MAAM;AAAA,QACN,GAAG;AAAA,MACP;AAAA,IACJ;AACA,WAAO;AAAA,MACH,MAAM;AAAA,MACN,GAAG;AAAA,IACP;AAAA,EACJ;AAxBO,EAAAA,MAAS;AA6BT,EAAMA,MAAA,qBAAqB,gBAAgB;AAAA,IAC9C,MAAM,aAAa;AAAA,IACnB,YAAY,aAAa;AAAA,IACzB,gBAAgB,aAAa;AAAA,IAC7B,aAAa,aAAa;AAAA,IAC1B,cAAc,aAAa;AAAA,IAC3B,WAAW;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,IACX;AAAA,EACJ,CAAC;AAAA,GAnDY;",
5
5
  "names": ["Node"]
6
6
  }
@@ -6,7 +6,7 @@
6
6
  import { ActionContext } from "#behavior/context/ActionContext.js";
7
7
  import { Endpoint } from "#endpoint/Endpoint.js";
8
8
  import { EndpointLifecycle } from "#endpoint/properties/EndpointLifecycle.js";
9
- import { AsyncObservable, Observable } from "#general";
9
+ import { AsyncObservable, Mutex, Observable } from "#general";
10
10
  /**
11
11
  * Extended lifecycle information that only applies to root endpoints.
12
12
  */
@@ -45,5 +45,15 @@ export declare class NodeLifecycle extends EndpointLifecycle {
45
45
  * Emits when node is no longer comissioned.
46
46
  */
47
47
  get decommissioned(): Observable<[context: ActionContext], void>;
48
+ /**
49
+ * Mutex for protecting node lifecycle transitions.
50
+ *
51
+ * Methods that implement complex async lifecycle transitions use this mutex to ensure conflicting operations cannot
52
+ * intermingle.
53
+ *
54
+ * Generally methods that hold this mutex have a protected "*WithMutex" variant. This allows for nesting of logic
55
+ * that requires the mutex without causing deadlock.
56
+ */
57
+ get mutex(): Mutex;
48
58
  }
49
59
  //# sourceMappingURL=NodeLifecycle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeLifecycle.d.ts","sourceRoot":"","sources":["../../../src/node/NodeLifecycle.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEvD;;GAEG;AACH,qBAAa,aAAc,SAAQ,iBAAiB;;gBAUpC,QAAQ,EAAE,QAAQ;IAoB9B;;OAEG;IACH,IAAI,QAAQ,YAEX;IAED;;OAEG;IACH,IAAI,MAAM,oDAET;IAED;;OAEG;IACH,IAAI,WAAW,gDAEd;IAED;;OAEG;IACH,IAAI,YAAY,oDAEf;IAED;;OAEG;IACH,IAAI,OAAO,+CAEV;IAED;;OAEG;IACH,IAAI,cAAc,YAEjB;IAED;;OAEG;IACH,IAAI,YAAY,+CAEf;IAED;;OAEG;IACH,IAAI,cAAc,+CAEjB;CACJ"}
1
+ {"version":3,"file":"NodeLifecycle.d.ts","sourceRoot":"","sources":["../../../src/node/NodeLifecycle.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE9D;;GAEG;AACH,qBAAa,aAAc,SAAQ,iBAAiB;;gBAWpC,QAAQ,EAAE,QAAQ;IAsB9B;;OAEG;IACH,IAAI,QAAQ,YAEX;IAED;;OAEG;IACH,IAAI,MAAM,oDAET;IAED;;OAEG;IACH,IAAI,WAAW,gDAEd;IAED;;OAEG;IACH,IAAI,YAAY,oDAEf;IAED;;OAEG;IACH,IAAI,OAAO,+CAEV;IAED;;OAEG;IACH,IAAI,cAAc,YAEjB;IAED;;OAEG;IACH,IAAI,YAAY,+CAEf;IAED;;OAEG;IACH,IAAI,cAAc,+CAEjB;IAED;;;;;;;;OAQG;IACH,IAAI,KAAK,UAER;CACJ"}
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { EndpointLifecycle } from "#endpoint/properties/EndpointLifecycle.js";
7
- import { AsyncObservable, Observable } from "#general";
7
+ import { AsyncObservable, Mutex, Observable } from "#general";
8
8
  class NodeLifecycle extends EndpointLifecycle {
9
9
  #online = AsyncObservable();
10
10
  #goingOffline = AsyncObservable();
@@ -14,8 +14,10 @@ class NodeLifecycle extends EndpointLifecycle {
14
14
  #initialized = Observable();
15
15
  #isOnline = false;
16
16
  #isCommissioned = false;
17
+ #mutex;
17
18
  constructor(endpoint) {
18
19
  super(endpoint);
20
+ this.#mutex = new Mutex(endpoint);
19
21
  this.#online.on(() => {
20
22
  this.#isOnline = true;
21
23
  });
@@ -80,6 +82,18 @@ class NodeLifecycle extends EndpointLifecycle {
80
82
  get decommissioned() {
81
83
  return this.#decommissioned;
82
84
  }
85
+ /**
86
+ * Mutex for protecting node lifecycle transitions.
87
+ *
88
+ * Methods that implement complex async lifecycle transitions use this mutex to ensure conflicting operations cannot
89
+ * intermingle.
90
+ *
91
+ * Generally methods that hold this mutex have a protected "*WithMutex" variant. This allows for nesting of logic
92
+ * that requires the mutex without causing deadlock.
93
+ */
94
+ get mutex() {
95
+ return this.#mutex;
96
+ }
83
97
  }
84
98
  export {
85
99
  NodeLifecycle
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/node/NodeLifecycle.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,yBAAyB;AAClC,SAAS,iBAAiB,kBAAkB;AAKrC,MAAM,sBAAsB,kBAAkB;AAAA,EACjD,UAAU,gBAA0C;AAAA,EACpD,gBAAgB,gBAA0C;AAAA,EAC1D,WAAW,WAAqC;AAAA,EAChD,gBAAgB,WAAqC;AAAA,EACrD,kBAAkB,WAAqC;AAAA,EACvD,eAAe,WAAsC;AAAA,EACrD,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAElB,YAAY,UAAoB;AAC5B,UAAM,QAAQ;AAEd,SAAK,QAAQ,GAAG,MAAM;AAClB,WAAK,YAAY;AAAA,IACrB,CAAC;AACD,SAAK,SAAS,GAAG,MAAM;AACnB,WAAK,YAAY;AAAA,IACrB,CAAC;AACD,SAAK,cAAc,GAAG,MAAM;AACxB,WAAK,kBAAkB;AAAA,IAC3B,CAAC;AACD,SAAK,gBAAgB,GAAG,MAAM;AAC1B,WAAK,kBAAkB;AAAA,IAC3B,CAAC;AACD,SAAK,aAAa,GAAG,oBAAkB;AACnC,WAAK,kBAAkB;AAAA,IAC3B,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAAW;AACX,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAAS;AACT,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,cAAc;AACd,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAAU;AACV,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,iBAAiB;AACjB,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,iBAAiB;AACjB,WAAO,KAAK;AAAA,EAChB;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,yBAAyB;AAClC,SAAS,iBAAiB,OAAO,kBAAkB;AAK5C,MAAM,sBAAsB,kBAAkB;AAAA,EACjD,UAAU,gBAA0C;AAAA,EACpD,gBAAgB,gBAA0C;AAAA,EAC1D,WAAW,WAAqC;AAAA,EAChD,gBAAgB,WAAqC;AAAA,EACrD,kBAAkB,WAAqC;AAAA,EACvD,eAAe,WAAsC;AAAA,EACrD,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAClB;AAAA,EAEA,YAAY,UAAoB;AAC5B,UAAM,QAAQ;AAEd,SAAK,SAAS,IAAI,MAAM,QAAQ;AAEhC,SAAK,QAAQ,GAAG,MAAM;AAClB,WAAK,YAAY;AAAA,IACrB,CAAC;AACD,SAAK,SAAS,GAAG,MAAM;AACnB,WAAK,YAAY;AAAA,IACrB,CAAC;AACD,SAAK,cAAc,GAAG,MAAM;AACxB,WAAK,kBAAkB;AAAA,IAC3B,CAAC;AACD,SAAK,gBAAgB,GAAG,MAAM;AAC1B,WAAK,kBAAkB;AAAA,IAC3B,CAAC;AACD,SAAK,aAAa,GAAG,oBAAkB;AACnC,WAAK,kBAAkB;AAAA,IAC3B,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAAW;AACX,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAAS;AACT,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,cAAc;AACd,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAAU;AACV,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,iBAAiB;AACjB,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,iBAAiB;AACjB,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,IAAI,QAAQ;AACR,WAAO,KAAK;AAAA,EAChB;AACJ;",
5
5
  "names": []
6
6
  }
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { CommissioningServer } from "#behavior/system/commissioning/CommissioningServer.js";
7
7
  import { ControllerBehavior } from "#behavior/system/controller/ControllerBehavior.js";
8
+ import { EventsBehavior } from "#behavior/system/events/EventsBehavior.js";
8
9
  import { NetworkServer } from "#behavior/system/network/NetworkServer.js";
9
10
  import { ServerNetworkRuntime } from "#behavior/system/network/ServerNetworkRuntime.js";
10
11
  import { ProductDescriptionServer } from "#behavior/system/product-description/ProductDescriptionServer.js";
@@ -51,12 +52,12 @@ export declare class ServerNode<T extends ServerNode.RootEndpoint = ServerNode.R
51
52
  static create<This extends typeof ServerNode<any>, T extends ServerNode.RootEndpoint = ServerNode.RootEndpoint>(this: This, config: Partial<Node.Configuration<T>>): Promise<ServerNode<T>>;
52
53
  protected createRuntime(): ServerNetworkRuntime;
53
54
  [Construction.destruct](): Promise<void>;
54
- reset(): Promise<void>;
55
55
  prepareRuntimeShutdown(): Promise<void>;
56
56
  /**
57
57
  * Perform a factory reset of the node.
58
58
  */
59
59
  erase(): Promise<void>;
60
+ protected eraseWithMutex(): Promise<void>;
60
61
  /**
61
62
  * Access other nodes on the fabric.
62
63
  */
@@ -122,7 +123,7 @@ export declare namespace ServerNode {
122
123
  readonly operationalCredentials: typeof import("../behaviors/index.js").OperationalCredentialsServer;
123
124
  } & {
124
125
  readonly generalDiagnostics: typeof import("../behaviors/index.js").GeneralDiagnosticsServer;
125
- }, readonly [typeof CommissioningServer, typeof NetworkServer, typeof ProductDescriptionServer, typeof SessionsBehavior, typeof ControllerBehavior]>>;
126
+ }, readonly [typeof CommissioningServer, typeof NetworkServer, typeof ProductDescriptionServer, typeof SessionsBehavior, typeof EventsBehavior, typeof ControllerBehavior]>>;
126
127
  interface RootEndpoint extends Identity<typeof RootEndpoint> {
127
128
  }
128
129
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ServerNode.d.ts","sourceRoot":"","sources":["../../../src/node/ServerNode.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kEAAkE,CAAC;AAC5G,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AAIjF,OAAO,EAAE,YAAY,EAAoB,QAAQ,EAAkC,MAAM,UAAU,CAAC;AAGpG,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AActD;;;;GAIG;AACH,qBAAa,UAAU,CAAC,CAAC,SAAS,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAE,SAAQ,IAAI,CAAC,CAAC,CAAC;;IAGhG;;;;;;;OAOG;gBACS,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAE/C;;;;;;OAMG;gBACS,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAYlD;;;;;OAKG;WACU,MAAM,CACf,IAAI,SAAS,OAAO,UAAU,CAAC,GAAG,CAAC,EACnC,CAAC,SAAS,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,EAC7D,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAE1E;;;;OAIG;WACU,MAAM,CACf,IAAI,SAAS,OAAO,UAAU,CAAC,GAAG,CAAC,EACnC,CAAC,SAAS,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,EAC7D,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAS7E,SAAS,CAAC,aAAa,IAAI,oBAAoB;IAIhC,CAAC,YAAY,CAAC,QAAQ,CAAC;IAKvB,KAAK;IAOL,sBAAsB;IAKrC;;OAEG;IACY,KAAK;IAkCpB;;OAEG;IACH,IAAI,KAAK,gBAOR;IAEK,YAAY;cAIO,UAAU;IAMnC;;;;;;;OAOG;cACa,YAAY;IAO5B;;;OAGG;cACgB,mBAAmB;CACzC;AAED,yBAAiB,UAAU,CAAC;IACjB,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yJAMxB,CAAC;IAEF,UAAiB,YAAa,SAAQ,QAAQ,CAAC,OAAO,YAAY,CAAC;KAAG;CACzE"}
1
+ {"version":3,"file":"ServerNode.d.ts","sourceRoot":"","sources":["../../../src/node/ServerNode.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kEAAkE,CAAC;AAC5G,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AAGjF,OAAO,EAAE,YAAY,EAAoB,QAAQ,EAAkC,MAAM,UAAU,CAAC;AAGpG,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AActD;;;;GAIG;AACH,qBAAa,UAAU,CAAC,CAAC,SAAS,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAE,SAAQ,IAAI,CAAC,CAAC,CAAC;;IAGhG;;;;;;;OAOG;gBACS,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAE/C;;;;;;OAMG;gBACS,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAYlD;;;;;OAKG;WACU,MAAM,CACf,IAAI,SAAS,OAAO,UAAU,CAAC,GAAG,CAAC,EACnC,CAAC,SAAS,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,EAC7D,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAE1E;;;;OAIG;WACU,MAAM,CACf,IAAI,SAAS,OAAO,UAAU,CAAC,GAAG,CAAC,EACnC,CAAC,SAAS,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,EAC7D,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAS7E,SAAS,CAAC,aAAa,IAAI,oBAAoB;IAIhC,CAAC,YAAY,CAAC,QAAQ,CAAC;IAKvB,sBAAsB;IAKrC;;OAEG;IACY,KAAK;cAIJ,cAAc;IAkC9B;;OAEG;IACH,IAAI,KAAK,gBAOR;IAEK,YAAY;cAIO,UAAU;IAMnC;;;;;;;OAOG;cACa,YAAY;IAO5B;;;OAGG;cACgB,mBAAmB;CACzC;AAED,yBAAiB,UAAU,CAAC;IACjB,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gLAOxB,CAAC;IAEF,UAAiB,YAAa,SAAQ,QAAQ,CAAC,OAAO,YAAY,CAAC;KAAG;CACzE"}
@@ -5,13 +5,13 @@
5
5
  */
6
6
  import { CommissioningServer } from "#behavior/system/commissioning/CommissioningServer.js";
7
7
  import { ControllerBehavior } from "#behavior/system/controller/ControllerBehavior.js";
8
+ import { EventsBehavior } from "#behavior/system/events/EventsBehavior.js";
8
9
  import { NetworkServer } from "#behavior/system/network/NetworkServer.js";
9
10
  import { ServerNetworkRuntime } from "#behavior/system/network/ServerNetworkRuntime.js";
10
11
  import { ProductDescriptionServer } from "#behavior/system/product-description/ProductDescriptionServer.js";
11
12
  import { SessionsBehavior } from "#behavior/system/sessions/SessionsBehavior.js";
12
- import { EndpointServer } from "#endpoint/EndpointServer.js";
13
13
  import { Construction, DiagnosticSource, MatterError, asyncNew, errorOf } from "#general";
14
- import { EventHandler, FabricManager, SessionManager } from "#protocol";
14
+ import { FabricManager, OccurrenceManager, SessionManager } from "#protocol";
15
15
  import { RootEndpoint as BaseRootEndpoint } from "../endpoints/root.js";
16
16
  import { Node } from "./Node.js";
17
17
  import { ClientNodes } from "./client/ClientNodes.js";
@@ -41,10 +41,6 @@ class ServerNode extends Node {
41
41
  await super[Construction.destruct]();
42
42
  await ServerEnvironment.close(this);
43
43
  }
44
- async reset() {
45
- await super.reset();
46
- await EndpointServer.forEndpoint(this)[Symbol.asyncDispose]();
47
- }
48
44
  async prepareRuntimeShutdown() {
49
45
  const sessions = this.env.get(SessionManager);
50
46
  await sessions.close();
@@ -53,18 +49,21 @@ class ServerNode extends Node {
53
49
  * Perform a factory reset of the node.
54
50
  */
55
51
  async erase() {
52
+ await this.lifecycle.mutex.produce(this.eraseWithMutex.bind(this));
53
+ }
54
+ async eraseWithMutex() {
56
55
  try {
57
56
  await this.construction;
58
57
  const isOnline = this.lifecycle.isOnline;
59
58
  if (isOnline) {
60
- await this.cancel();
59
+ await this.cancelWithMutex();
61
60
  }
62
61
  this.statusUpdate("resetting to factory defaults");
63
- await this.reset();
62
+ await this.resetWithMutex();
64
63
  await this.resetStorage();
65
64
  this.construction.start();
66
65
  if (isOnline) {
67
- await this.start();
66
+ await this.startWithMutex();
68
67
  } else {
69
68
  await this.construction.ready;
70
69
  }
@@ -101,7 +100,7 @@ class ServerNode extends Node {
101
100
  async resetStorage() {
102
101
  await this.env.get(SessionManager).clear();
103
102
  await this.env.get(FabricManager).clear();
104
- await this.env.get(EventHandler).clear();
103
+ await this.env.get(OccurrenceManager).clear();
105
104
  await this.env.get(ServerNodeStore).erase();
106
105
  }
107
106
  /**
@@ -117,6 +116,7 @@ class ServerNode extends Node {
117
116
  NetworkServer,
118
117
  ProductDescriptionServer,
119
118
  SessionsBehavior,
119
+ EventsBehavior,
120
120
  ControllerBehavior
121
121
  );
122
122
  })(ServerNode || (ServerNode = {}));
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/node/ServerNode.ts"],
4
- "mappings": "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",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,2BAA2B;AACpC,SAAS,0BAA0B;AACnC,SAAS,sBAAsB;AAC/B,SAAS,qBAAqB;AAC9B,SAAS,4BAA4B;AACrC,SAAS,gCAAgC;AACzC,SAAS,wBAAwB;AAGjC,SAAS,cAAc,kBAA4B,aAAa,UAAU,eAAe;AACzF,SAAS,eAAe,mBAAmB,sBAAsB;AACjE,SAAS,gBAAgB,wBAAwB;AACjD,SAAS,YAAY;AACrB,SAAS,mBAAmB;AAC5B,SAAS,yBAAyB;AAClC,SAAS,uBAAuB;AAKhC,MAAM,0BAA0B,YAAY;AAAA,EACxC,YAAY,SAAiB,OAAY;AACrC,UAAM,OAAO;AACb,SAAK,QAAQ,QAAQ,KAAK;AAAA,EAC9B;AACJ;AAOO,MAAM,mBAAgF,KAAQ;AAAA,EACjG;AAAA,EAqBA,YAAY,YAAwC,SAA2B;AAC3E,UAAM,KAAK,cAAc,WAAW,cAAmB,YAAY,OAAO,CAAC;AAE3E,SAAK,IAAI,IAAI,YAAY,IAAI;AAE7B,qBAAiB,IAAI,IAAI;AAEzB,SAAK,aAAa,MAAM;AAAA,EAC5B;AAAA,EAuBA,aAAa,OAGC,YAAwC,SAA2B;AAC7E,WAAO,MAAM,SAAS,MAAM,YAAY,OAAO;AAAA,EACnD;AAAA,EAEU,gBAAsC;AAC5C,WAAO,IAAI,qBAAqB,IAAI;AAAA,EACxC;AAAA,EAEA,OAAgB,aAAa,QAAQ,IAAI;AACrC,UAAM,MAAM,aAAa,QAAQ,EAAE;AACnC,UAAM,kBAAkB,MAAM,IAAI;AAAA,EACtC;AAAA,EAEA,MAAe,yBAAyB;AACpC,UAAM,WAAW,KAAK,IAAI,IAAI,cAAc;AAC5C,UAAM,SAAS,MAAM;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAe,QAAQ;AACnB,UAAM,KAAK,UAAU,MAAM,QAAQ,KAAK,eAAe,KAAK,IAAI,CAAC;AAAA,EACrE;AAAA,EAEA,MAAgB,iBAAiB;AAC7B,QAAI;AACA,YAAM,KAAK;AAGX,YAAM,WAAW,KAAK,UAAU;AAChC,UAAI,UAAU;AACV,cAAM,KAAK,gBAAgB;AAAA,MAC/B;AAGA,WAAK,aAAa,+BAA+B;AAGjD,YAAM,KAAK,eAAe;AAG1B,YAAM,KAAK,aAAa;AAGxB,WAAK,aAAa,MAAM;AAGxB,UAAI,UAAU;AACV,cAAM,KAAK,eAAe;AAAA,MAC9B,OAAO;AACH,cAAM,KAAK,aAAa;AAAA,MAC5B;AAAA,IACJ,SAAS,GAAG;AACR,WAAK,aAAa,MAAM;AACxB,YAAM,IAAI,kBAAkB,iCAAiC,IAAI,IAAI,CAAC;AAAA,IAC1E;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,QAAQ;AACR,QAAI,CAAC,KAAK,QAAQ;AACd,WAAK,SAAS,IAAI,YAAY,IAAI;AAClC,WAAK,OAAO,WAAW;AAAA,IAC3B;AAEA,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,eAAe;AACjB,UAAM,KAAK,IAAI,gBAAgB,IAAI,KAAK,WAAS,MAAM,IAAI,aAAa,EAAE,aAAa,CAAC;AAAA,EAC5F;AAAA,EAEA,MAAyB,aAAa;AAClC,UAAM,kBAAkB,WAAW,IAAI;AAEvC,UAAM,MAAM,WAAW;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAgB,eAAe;AAC3B,UAAM,KAAK,IAAI,IAAI,cAAc,EAAE,MAAM;AACzC,UAAM,KAAK,IAAI,IAAI,aAAa,EAAE,MAAM;AACxC,UAAM,KAAK,IAAI,IAAI,iBAAiB,EAAE,MAAM;AAC5C,UAAM,KAAK,IAAI,IAAI,eAAe,EAAE,MAAM;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMmB,sBAAsB;AAAA,EAAC;AAC9C;AAAA,CAEO,CAAUA,gBAAV;AACI,EAAMA,YAAA,eAAe,iBAAiB;AAAA,IACzC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AAAA,GARa;",
5
5
  "names": ["ServerNode"]
6
6
  }
@@ -6,8 +6,8 @@
6
6
  import { EndpointInitializer } from "#endpoint/index.js";
7
7
  import { ServerNodeStore } from "#node/storage/ServerNodeStore.js";
8
8
  import { FabricManager, SessionManager } from "#protocol";
9
+ import { ServerEndpointInitializer } from "../../endpoint/server/ServerEndpointInitializer.js";
9
10
  import { IdentityService } from "./IdentityService.js";
10
- import { ServerEndpointInitializer } from "./ServerEndpointInitializer.js";
11
11
  var ServerEnvironment;
12
12
  ((ServerEnvironment2) => {
13
13
  async function initialize(node) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/node/server/ServerEnvironment.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,2BAA2B;AAEpC,SAAS,uBAAuB;AAChC,SAAS,eAAe,sBAAsB;AAC9C,SAAS,uBAAuB;AAChC,SAAS,iCAAiC;AAKnC,IAAU;AAAA,CAAV,CAAUA,uBAAV;AACH,iBAAsB,WAAW,MAAkB;AAC/C,UAAM,EAAE,IAAI,IAAI;AAGhB,QAAI,IAAI,iBAAiB,MAAM,gBAAgB,OAAO,KAAK,KAAK,EAAE,CAAC;AACnE,QAAI,IAAI,qBAAqB,IAAI,0BAA0B,GAAG,CAAC;AAC/D,QAAI,IAAI,iBAAiB,IAAI,gBAAgB,IAAI,CAAC;AAGlD,UAAM,IAAI,KAAK,aAAa;AAC5B,UAAM,IAAI,KAAK,cAAc;AAAA,EACjC;AAXA,EAAAA,mBAAsB;AAatB,iBAAsB,MAAM,MAAkB;AAC1C,UAAM,EAAE,IAAI,IAAI;AAEhB,QAAI,MAAM,aAAa;AACvB,UAAM,IAAI,MAAM,cAAc;AAC9B,UAAM,IAAI,MAAM,eAAe;AAAA,EACnC;AANA,EAAAA,mBAAsB;AAAA,GAdT;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,2BAA2B;AAEpC,SAAS,uBAAuB;AAChC,SAAS,eAAe,sBAAsB;AAC9C,SAAS,iCAAiC;AAC1C,SAAS,uBAAuB;AAKzB,IAAU;AAAA,CAAV,CAAUA,uBAAV;AACH,iBAAsB,WAAW,MAAkB;AAC/C,UAAM,EAAE,IAAI,IAAI;AAGhB,QAAI,IAAI,iBAAiB,MAAM,gBAAgB,OAAO,KAAK,KAAK,EAAE,CAAC;AACnE,QAAI,IAAI,qBAAqB,IAAI,0BAA0B,GAAG,CAAC;AAC/D,QAAI,IAAI,iBAAiB,IAAI,gBAAgB,IAAI,CAAC;AAGlD,UAAM,IAAI,KAAK,aAAa;AAC5B,UAAM,IAAI,KAAK,cAAc;AAAA,EACjC;AAXA,EAAAA,mBAAsB;AAatB,iBAAsB,MAAM,MAAkB;AAC1C,UAAM,EAAE,IAAI,IAAI;AAEhB,QAAI,MAAM,aAAa;AACvB,UAAM,IAAI,MAAM,cAAc;AAC9B,UAAM,IAAI,MAAM,eAAe;AAAA,EACnC;AANA,EAAAA,mBAAsB;AAAA,GAdT;",
5
5
  "names": ["ServerEnvironment"]
6
6
  }
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { Endpoint } from "#endpoint/Endpoint.js";
7
- import { AnyAttributeServer, AnyEventServer, AttributePath, AttributeServer, CommandPath, CommandServer, EndpointInterface, EventPath, EventStorageData, InteractionContext, InteractionServer, Message, MessageExchange, SessionManager, WriteRequest, WriteResponse } from "#protocol";
7
+ import { AnyAttributeServer, AnyEventServer, AttributePath, AttributeServer, CommandPath, CommandServer, EndpointInterface, EventPath, InteractionContext, InteractionServer, Message, MessageExchange, NumberedOccurrence, SessionManager, WriteRequest, WriteResponse } from "#protocol";
8
8
  import { TlvEventFilter, TypeFromSchema } from "#types";
9
9
  import { AccessControlServer } from "../../behaviors/access-control/AccessControlServer.js";
10
10
  import { ServerNode } from "../ServerNode.js";
@@ -32,7 +32,7 @@ export declare class TransactionalInteractionServer extends InteractionServer {
32
32
  version: number;
33
33
  value: any;
34
34
  }>;
35
- protected readEvent(path: EventPath, eventFilters: TypeFromSchema<typeof TlvEventFilter>[] | undefined, event: AnyEventServer<any, any>, exchange: MessageExchange, fabricFiltered: boolean, message: Message, endpoint: EndpointInterface): Promise<EventStorageData<any>[]>;
35
+ protected readEvent(path: EventPath, eventFilters: TypeFromSchema<typeof TlvEventFilter>[] | undefined, event: AnyEventServer<any, any>, exchange: MessageExchange, fabricFiltered: boolean, message: Message, endpoint: EndpointInterface): Promise<NumberedOccurrence[]>;
36
36
  handleWriteRequest(exchange: MessageExchange, writeRequest: WriteRequest, message: Message): Promise<WriteResponse>;
37
37
  protected writeAttribute(path: AttributePath, attribute: AttributeServer<any>, value: any, exchange: MessageExchange, message: Message, endpoint: EndpointInterface, timed?: boolean, isListWrite?: boolean): Promise<void>;
38
38
  protected invokeCommand(path: CommandPath, command: CommandServer<any, any>, exchange: MessageExchange, commandFields: any, message: Message, endpoint: EndpointInterface, timed?: boolean): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"TransactionalInteractionServer.d.ts","sourceRoot":"","sources":["../../../../src/node/server/TransactionalInteractionServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAIjD,OAAO,EAEH,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,eAAe,EACf,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,gBAAgB,EAEhB,kBAAkB,EAElB,iBAAiB,EAEjB,OAAO,EACP,eAAe,EACf,cAAc,EACd,YAAY,EACZ,aAAa,EAChB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAa9C;;;;;;;;;;;GAWG;AACH,qBAAa,8BAA+B,SAAQ,iBAAiB;;WASpD,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,cAAc;gBAa7E,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,kBAAkB;IA0B9E,CAAC,MAAM,CAAC,YAAY,CAAC;IAM3B,gBAAgB;IAID,aAAa,CAAC,QAAQ,EAAE,eAAe;IAiBtD,IAAI,SAAS,wBASZ;cAEwB,aAAa,CAClC,IAAI,EAAE,aAAa,EACnB,SAAS,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAClC,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,UAAQ;;;;cAsBM,SAAS,CAC9B,IAAI,EAAE,SAAS,EACf,YAAY,EAAE,cAAc,CAAC,OAAO,cAAc,CAAC,EAAE,GAAG,SAAS,EACjE,KAAK,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,EAC/B,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,iBAAiB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;IAsBpB,kBAAkB,CAC7B,QAAQ,EAAE,eAAe,EACzB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC,aAAa,CAAC;cAkCA,cAAc,CACnC,IAAI,EAAE,aAAa,EACnB,SAAS,EAAE,eAAe,CAAC,GAAG,CAAC,EAC/B,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,UAAQ,EACb,WAAW,CAAC,EAAE,OAAO;cAoCA,aAAa,CAClC,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,EAChC,QAAQ,EAAE,eAAe,EACzB,aAAa,EAAE,GAAG,EAClB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,UAAQ;;;;yBA/Ib,QAAE;;CAkLT"}
1
+ {"version":3,"file":"TransactionalInteractionServer.d.ts","sourceRoot":"","sources":["../../../../src/node/server/TransactionalInteractionServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAIjD,OAAO,EAEH,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,eAAe,EACf,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,SAAS,EAET,kBAAkB,EAElB,iBAAiB,EAEjB,OAAO,EACP,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,aAAa,EAChB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAa9C;;;;;;;;;;;GAWG;AACH,qBAAa,8BAA+B,SAAQ,iBAAiB;;WASpD,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,cAAc;gBAa7E,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,kBAAkB;IA8B9E,CAAC,MAAM,CAAC,YAAY,CAAC;IAO3B,gBAAgB;IAID,aAAa,CAAC,QAAQ,EAAE,eAAe;IAiBtD,IAAI,SAAS,wBASZ;cAEwB,aAAa,CAClC,IAAI,EAAE,aAAa,EACnB,SAAS,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAClC,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,UAAQ;;;;cAsBM,SAAS,CAC9B,IAAI,EAAE,SAAS,EACf,YAAY,EAAE,cAAc,CAAC,OAAO,cAAc,CAAC,EAAE,GAAG,SAAS,EACjE,KAAK,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,EAC/B,QAAQ,EAAE,eAAe,EACzB,cAAc,EAAE,OAAO,EACvB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,iBAAiB,GAC5B,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAsBjB,kBAAkB,CAC7B,QAAQ,EAAE,eAAe,EACzB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,OAAO,GACjB,OAAO,CAAC,aAAa,CAAC;cAkCA,cAAc,CACnC,IAAI,EAAE,aAAa,EACnB,SAAS,EAAE,eAAe,CAAC,GAAG,CAAC,EAC/B,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,UAAQ,EACb,WAAW,CAAC,EAAE,OAAO;cAoCA,aAAa,CAClC,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,EAChC,QAAQ,EAAE,eAAe,EACzB,aAAa,EAAE,GAAG,EAClB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,UAAQ;;;;yBAzJ2C,QAAO;;CA6LtE"}