@matter/node 0.16.0-alpha.0-20251110-c4c70a41b → 0.16.0-alpha.0-20251111-11cc8c3bd

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 (91) hide show
  1. package/dist/cjs/behavior/internal/BehaviorBacking.d.ts +2 -1
  2. package/dist/cjs/behavior/internal/BehaviorBacking.d.ts.map +1 -1
  3. package/dist/cjs/behavior/internal/BehaviorBacking.js +11 -3
  4. package/dist/cjs/behavior/internal/BehaviorBacking.js.map +1 -1
  5. package/dist/cjs/behavior/internal/ClientBehaviorBacking.d.ts +2 -0
  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/state/managed/Datasource.d.ts +4 -0
  10. package/dist/cjs/behavior/state/managed/Datasource.d.ts.map +1 -1
  11. package/dist/cjs/behavior/state/managed/Datasource.js +5 -0
  12. package/dist/cjs/behavior/state/managed/Datasource.js.map +1 -1
  13. package/dist/cjs/endpoint/properties/Behaviors.d.ts +12 -2
  14. package/dist/cjs/endpoint/properties/Behaviors.d.ts.map +1 -1
  15. package/dist/cjs/endpoint/properties/Behaviors.js +44 -10
  16. package/dist/cjs/endpoint/properties/Behaviors.js.map +2 -2
  17. package/dist/cjs/node/client/ClientStructure.d.ts +31 -1
  18. package/dist/cjs/node/client/ClientStructure.d.ts.map +1 -1
  19. package/dist/cjs/node/client/ClientStructure.js +257 -81
  20. package/dist/cjs/node/client/ClientStructure.js.map +1 -1
  21. package/dist/cjs/node/client/ClientStructureEvents.d.ts +5 -2
  22. package/dist/cjs/node/client/ClientStructureEvents.d.ts.map +1 -1
  23. package/dist/cjs/node/client/ClientStructureEvents.js +38 -2
  24. package/dist/cjs/node/client/ClientStructureEvents.js.map +1 -1
  25. package/dist/cjs/node/client/Peers.d.ts +3 -0
  26. package/dist/cjs/node/client/Peers.d.ts.map +1 -1
  27. package/dist/cjs/node/client/Peers.js +3 -0
  28. package/dist/cjs/node/client/Peers.js.map +1 -1
  29. package/dist/cjs/node/server/ServerEndpointInitializer.js +1 -1
  30. package/dist/cjs/node/server/ServerEndpointInitializer.js.map +1 -1
  31. package/dist/cjs/storage/EndpointStore.d.ts +5 -1
  32. package/dist/cjs/storage/EndpointStore.d.ts.map +1 -1
  33. package/dist/cjs/storage/EndpointStore.js +7 -1
  34. package/dist/cjs/storage/EndpointStore.js.map +1 -1
  35. package/dist/cjs/storage/client/ClientEndpointStore.d.ts +2 -1
  36. package/dist/cjs/storage/client/ClientEndpointStore.d.ts.map +1 -1
  37. package/dist/cjs/storage/client/DatasourceCache.d.ts +14 -3
  38. package/dist/cjs/storage/client/DatasourceCache.d.ts.map +1 -1
  39. package/dist/cjs/storage/client/DatasourceCache.js +10 -0
  40. package/dist/cjs/storage/client/DatasourceCache.js.map +1 -1
  41. package/dist/esm/behavior/internal/BehaviorBacking.d.ts +2 -1
  42. package/dist/esm/behavior/internal/BehaviorBacking.d.ts.map +1 -1
  43. package/dist/esm/behavior/internal/BehaviorBacking.js +11 -3
  44. package/dist/esm/behavior/internal/BehaviorBacking.js.map +1 -1
  45. package/dist/esm/behavior/internal/ClientBehaviorBacking.d.ts +2 -0
  46. package/dist/esm/behavior/internal/ClientBehaviorBacking.d.ts.map +1 -1
  47. package/dist/esm/behavior/internal/ClientBehaviorBacking.js +4 -0
  48. package/dist/esm/behavior/internal/ClientBehaviorBacking.js.map +1 -1
  49. package/dist/esm/behavior/state/managed/Datasource.d.ts +4 -0
  50. package/dist/esm/behavior/state/managed/Datasource.d.ts.map +1 -1
  51. package/dist/esm/behavior/state/managed/Datasource.js +5 -0
  52. package/dist/esm/behavior/state/managed/Datasource.js.map +1 -1
  53. package/dist/esm/endpoint/properties/Behaviors.d.ts +12 -2
  54. package/dist/esm/endpoint/properties/Behaviors.d.ts.map +1 -1
  55. package/dist/esm/endpoint/properties/Behaviors.js +44 -10
  56. package/dist/esm/endpoint/properties/Behaviors.js.map +2 -2
  57. package/dist/esm/node/client/ClientStructure.d.ts +31 -1
  58. package/dist/esm/node/client/ClientStructure.d.ts.map +1 -1
  59. package/dist/esm/node/client/ClientStructure.js +258 -82
  60. package/dist/esm/node/client/ClientStructure.js.map +1 -1
  61. package/dist/esm/node/client/ClientStructureEvents.d.ts +5 -2
  62. package/dist/esm/node/client/ClientStructureEvents.d.ts.map +1 -1
  63. package/dist/esm/node/client/ClientStructureEvents.js +39 -3
  64. package/dist/esm/node/client/ClientStructureEvents.js.map +1 -1
  65. package/dist/esm/node/client/Peers.d.ts +3 -0
  66. package/dist/esm/node/client/Peers.d.ts.map +1 -1
  67. package/dist/esm/node/client/Peers.js +3 -0
  68. package/dist/esm/node/client/Peers.js.map +1 -1
  69. package/dist/esm/node/server/ServerEndpointInitializer.js +1 -1
  70. package/dist/esm/node/server/ServerEndpointInitializer.js.map +1 -1
  71. package/dist/esm/storage/EndpointStore.d.ts +5 -1
  72. package/dist/esm/storage/EndpointStore.d.ts.map +1 -1
  73. package/dist/esm/storage/EndpointStore.js +7 -1
  74. package/dist/esm/storage/EndpointStore.js.map +1 -1
  75. package/dist/esm/storage/client/ClientEndpointStore.d.ts +2 -1
  76. package/dist/esm/storage/client/ClientEndpointStore.d.ts.map +1 -1
  77. package/dist/esm/storage/client/DatasourceCache.d.ts +14 -3
  78. package/dist/esm/storage/client/DatasourceCache.d.ts.map +1 -1
  79. package/dist/esm/storage/client/DatasourceCache.js +10 -0
  80. package/dist/esm/storage/client/DatasourceCache.js.map +1 -1
  81. package/package.json +7 -7
  82. package/src/behavior/internal/BehaviorBacking.ts +16 -3
  83. package/src/behavior/internal/ClientBehaviorBacking.ts +10 -1
  84. package/src/behavior/state/managed/Datasource.ts +13 -0
  85. package/src/endpoint/properties/Behaviors.ts +53 -12
  86. package/src/node/client/ClientStructure.ts +352 -91
  87. package/src/node/client/ClientStructureEvents.ts +55 -7
  88. package/src/node/client/Peers.ts +4 -0
  89. package/src/node/server/ServerEndpointInitializer.ts +1 -1
  90. package/src/storage/EndpointStore.ts +8 -1
  91. package/src/storage/client/DatasourceCache.ts +28 -4
@@ -3,7 +3,6 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { Behavior } from "#behavior/Behavior.js";
7
6
  import { ClusterBehavior } from "#behavior/cluster/ClusterBehavior.js";
8
7
  import { Endpoint } from "#endpoint/Endpoint.js";
9
8
  import { EndpointType } from "#endpoint/type/EndpointType.js";
@@ -16,7 +15,11 @@ export declare class ClientStructureEvents {
16
15
  static [Environmental.create](env: Environment): ClientStructureEvents;
17
16
  endpointInstalled<T extends EndpointType>(type: T): Observable<[endpoint: Endpoint<T>]>;
18
17
  clusterInstalled<T extends ClusterBehavior.Type>(type: T): Observable<[endpoint: Endpoint, type: T]>;
18
+ get clusterReplaced(): Observable<any, void>;
19
+ get clusterDeleted(): Observable<any, void>;
19
20
  emitEndpoint(endpoint: Endpoint): void;
20
- emitCluster(endpoint: Endpoint, type: Behavior.Type): void;
21
+ emitCluster(endpoint: Endpoint, type: ClusterBehavior.Type): void;
22
+ emitClusterReplaced(endpoint: Endpoint, type: ClusterBehavior.Type): void;
23
+ emitClusterDeleted(endpoint: Endpoint, type: ClusterBehavior.Type): void;
21
24
  }
22
25
  //# sourceMappingURL=ClientStructureEvents.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClientStructureEvents.d.ts","sourceRoot":"","sources":["../../../../src/node/client/ClientStructureEvents.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAEvE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGlE;;GAEG;AACH,qBAAa,qBAAqB;;IAU9B,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAM9C,iBAAiB,CAAC,CAAC,SAAS,YAAY,EAAE,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAavF,gBAAgB,CAAC,CAAC,SAAS,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAsBpG,YAAY,CAAC,QAAQ,EAAE,QAAQ;IAiB/B,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI;CAWtD"}
1
+ {"version":3,"file":"ClientStructureEvents.d.ts","sourceRoot":"","sources":["../../../../src/node/client/ClientStructureEvents.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAEvE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAU,UAAU,EAAE,MAAM,UAAU,CAAC;AAK1E;;GAEG;AACH,qBAAa,qBAAqB;;IAa9B,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAM9C,iBAAiB,CAAC,CAAC,SAAS,YAAY,EAAE,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAavF,gBAAgB,CAAC,CAAC,SAAS,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAsBpG,IAAI,eAAe,0BAKlB;IAED,IAAI,cAAc,0BAKjB;IAED,YAAY,CAAC,QAAQ,EAAE,QAAQ;IAqB/B,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,CAAC,IAAI;IAa1D,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,CAAC,IAAI;IAQlE,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,CAAC,IAAI;CAepE"}
@@ -4,10 +4,13 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { DescriptorClient } from "#behaviors/descriptor";
7
- import { Environmental, Observable } from "#general";
7
+ import { Environmental, Logger, Observable } from "#general";
8
+ const logger = Logger.get("ClientStructureEvents");
8
9
  class ClientStructureEvents {
9
10
  #endpointEvents;
10
11
  #clusterEvents;
12
+ #clusterReplaced;
13
+ #clusterDeleted;
11
14
  static [Environmental.create](env) {
12
15
  const instance = new ClientStructureEvents();
13
16
  env.set(ClientStructureEvents, instance);
@@ -19,7 +22,7 @@ class ClientStructureEvents {
19
22
  }
20
23
  let event = this.#endpointEvents.get(type.deviceType);
21
24
  if (event === void 0) {
22
- this.#endpointEvents.set(type.deviceType, event = Observable());
25
+ this.#endpointEvents.set(type.deviceType, event = this.#createEvent("endpointInstalled"));
23
26
  }
24
27
  return event;
25
28
  }
@@ -36,10 +39,22 @@ class ClientStructureEvents {
36
39
  return event2;
37
40
  }
38
41
  }
39
- const event = Observable();
42
+ const event = this.#createEvent("clusterInstalled");
40
43
  events.push({ requestedType: type, event });
41
44
  return event;
42
45
  }
46
+ get clusterReplaced() {
47
+ if (this.#clusterReplaced) {
48
+ return this.#clusterReplaced;
49
+ }
50
+ return this.#clusterReplaced = this.#createEvent("clusterReplaced");
51
+ }
52
+ get clusterDeleted() {
53
+ if (this.#clusterDeleted) {
54
+ return this.#clusterDeleted;
55
+ }
56
+ return this.#clusterDeleted = this.#createEvent("clusterDeleted");
57
+ }
43
58
  emitEndpoint(endpoint) {
44
59
  if (this.#endpointEvents && endpoint.behaviors.supported.descriptor) {
45
60
  const deviceTypes = endpoint.stateOf(DescriptorClient).deviceTypeList;
@@ -48,6 +63,9 @@ class ClientStructureEvents {
48
63
  }
49
64
  }
50
65
  for (const type of Object.values(endpoint.behaviors.supported)) {
66
+ if (!("cluster" in type)) {
67
+ continue;
68
+ }
51
69
  this.emitCluster(endpoint, type);
52
70
  }
53
71
  for (const part of endpoint.parts) {
@@ -65,6 +83,24 @@ class ClientStructureEvents {
65
83
  }
66
84
  }
67
85
  }
86
+ emitClusterReplaced(endpoint, type) {
87
+ if (!this.#clusterReplaced) {
88
+ return;
89
+ }
90
+ this.#clusterReplaced.emit(endpoint, type);
91
+ }
92
+ emitClusterDeleted(endpoint, type) {
93
+ if (!this.#clusterDeleted) {
94
+ return;
95
+ }
96
+ this.#clusterDeleted.emit(endpoint, type);
97
+ }
98
+ #createEvent(kind) {
99
+ return Observable(unhandledError);
100
+ function unhandledError(e) {
101
+ logger.error(`Unhandled error in client structure ${kind} event handler:`, e);
102
+ }
103
+ }
68
104
  }
69
105
  export {
70
106
  ClientStructureEvents
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/node/client/ClientStructureEvents.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,wBAAwB;AAGjC,SAAsB,eAAe,kBAAkB;AAMhD,MAAM,sBAAsB;AAAA,EAC/B;AAAA,EACA;AAAA,EAQA,QAAQ,cAAc,MAAM,EAAE,KAAkB;AAC5C,UAAM,WAAW,IAAI,sBAAsB;AAC3C,QAAI,IAAI,uBAAuB,QAAQ;AACvC,WAAO;AAAA,EACX;AAAA,EAEA,kBAA0C,MAA8C;AACpF,QAAI,KAAK,oBAAoB,QAAW;AACpC,WAAK,kBAAkB,oBAAI,IAAI;AAAA,IACnC;AAEA,QAAI,QAAQ,KAAK,gBAAgB,IAAI,KAAK,UAAU;AACpD,QAAI,UAAU,QAAW;AACrB,WAAK,gBAAgB,IAAI,KAAK,YAAa,QAAQ,WAAW,CAAE;AAAA,IACpE;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,iBAAiD,MAAoD;AACjG,QAAI,KAAK,mBAAmB,QAAW;AACnC,WAAK,iBAAiB,oBAAI,IAAI;AAAA,IAClC;AAEA,QAAI,SAAS,KAAK,eAAe,IAAI,KAAK,EAAE;AAC5C,QAAI,WAAW,QAAW;AACtB,WAAK,eAAe,IAAI,KAAK,IAAK,SAAS,CAAC,CAAE;AAAA,IAClD;AAEA,eAAW,EAAE,eAAe,OAAAA,OAAM,KAAK,QAAQ;AAC3C,UAAI,cAAc,SAAS,IAAI,GAAG;AAC9B,eAAOA;AAAA,MACX;AAAA,IACJ;AAEA,UAAM,QAAQ,WAAW;AACzB,WAAO,KAAK,EAAE,eAAe,MAAM,MAAM,CAAC;AAE1C,WAAO;AAAA,EACX;AAAA,EAEA,aAAa,UAAoB;AAC7B,QAAI,KAAK,mBAAmB,SAAS,UAAU,UAAU,YAAY;AACjE,YAAM,cAAc,SAAS,QAAQ,gBAAgB,EAAE;AACvD,iBAAW,MAAM,aAAa;AAC1B,aAAK,gBAAgB,IAAI,GAAG,UAAU,GAAG,KAAK,QAAQ;AAAA,MAC1D;AAAA,IACJ;AAEA,eAAW,QAAQ,OAAO,OAAO,SAAS,UAAU,SAAS,GAAG;AAC5D,WAAK,YAAY,UAAU,IAAI;AAAA,IACnC;AAEA,eAAW,QAAQ,SAAS,OAAO;AAC/B,WAAK,aAAa,IAAI;AAAA,IAC1B;AAAA,EACJ;AAAA,EAEA,YAAY,UAAoB,MAAqB;AACjD,UAAM,SAAS,KAAK,gBAAgB,IAAI,KAAK,EAAE;AAC/C,QAAI,CAAC,QAAQ;AACT;AAAA,IACJ;AACA,eAAW,EAAE,eAAe,MAAM,KAAK,QAAQ;AAC3C,UAAI,KAAK,SAAS,aAAa,GAAG;AAC9B,cAAM,KAAK,UAAU,IAAI;AAAA,MAC7B;AAAA,IACJ;AAAA,EACJ;AACJ;",
4
+ "mappings": "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",
5
5
  "names": ["event"]
6
6
  }
@@ -54,6 +54,9 @@ export declare class Peers extends EndpointContainer<ClientNode> {
54
54
  * This is useful for initializing general behavior on any peer endpoint with the specified cluster.
55
55
  */
56
56
  clusterInstalled<T extends ClusterBehavior.Type>(type: T): Observable<[endpoint: Endpoint<EndpointType.Empty>, type: T], void>;
57
+ /**
58
+ * Emits when fixed attributes
59
+ */
57
60
  get(id: number | string | PeerAddress): ClientNode | undefined;
58
61
  get owner(): ServerNode;
59
62
  add(node: ClientNode): void;
@@ -1 +1 @@
1
- {"version":3,"file":"Peers.d.ts","sourceRoot":"","sources":["../../../../src/node/client/Peers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAI5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iEAAiE,CAAC;AACzG,OAAO,EAAE,mBAAmB,EAAE,MAAM,8DAA8D,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,MAAM,oDAAoD,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,4DAA4D,CAAC;AAG/F,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAQH,UAAU,EAIb,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAiE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGvG,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AASnD;;;;GAIG;AACH,qBAAa,KAAM,SAAQ,iBAAiB,CAAC,UAAU,CAAC;;gBAMxC,KAAK,EAAE,UAAU;IAe7B;;OAEG;IACH,UAAU;IAeV;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO;IAIlC;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO;IAIpC;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,sBAAsB,CAAC,OAAO;IAIlD;;;;OAIG;IACH,iBAAiB,CAAC,CAAC,SAAS,YAAY,EAAE,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAIvF;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,SAAS,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;IAI/C,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW;IAe9C,IAAa,KAAK,IACQ,UAAU,CACnC;IAEQ,GAAG,CAAC,IAAI,EAAE,UAAU;IAM7B;;;;;OAKG;IACG,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,GAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAM;IAuB3E,KAAK;CAuKvB"}
1
+ {"version":3,"file":"Peers.d.ts","sourceRoot":"","sources":["../../../../src/node/client/Peers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAI5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,iEAAiE,CAAC;AACzG,OAAO,EAAE,mBAAmB,EAAE,MAAM,8DAA8D,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,MAAM,oDAAoD,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,4DAA4D,CAAC;AAG/F,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAQH,UAAU,EAIb,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAiE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGvG,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AASnD;;;;GAIG;AACH,qBAAa,KAAM,SAAQ,iBAAiB,CAAC,UAAU,CAAC;;gBAMxC,KAAK,EAAE,UAAU;IAe7B;;OAEG;IACH,UAAU;IAeV;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO;IAIlC;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO;IAIpC;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,sBAAsB,CAAC,OAAO;IAIlD;;;;OAIG;IACH,iBAAiB,CAAC,CAAC,SAAS,YAAY,EAAE,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAIvF;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,SAAS,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;IAIxD;;OAEG;IAEM,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW;IAe9C,IAAa,KAAK,IACQ,UAAU,CACnC;IAEQ,GAAG,CAAC,IAAI,EAAE,UAAU;IAM7B;;;;;OAKG;IACG,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,GAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAM;IAuB3E,KAAK;CAuKvB"}
@@ -99,6 +99,9 @@ class Peers extends EndpointContainer {
99
99
  clusterInstalled(type) {
100
100
  return this.owner.env.get(ClientStructureEvents).clusterInstalled(type);
101
101
  }
102
+ /**
103
+ * Emits when fixed attributes
104
+ */
102
105
  get(id) {
103
106
  if (typeof id !== "string" && typeof id !== "number") {
104
107
  const address = PeerAddress(id);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/node/client/Peers.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["freshestExp"]
6
6
  }
@@ -22,7 +22,7 @@ class ServerEndpointInitializer extends EndpointInitializer {
22
22
  }
23
23
  this.#store.endpointStores.assignNumber(endpoint);
24
24
  if (!(DescriptorServer.id in endpoint.behaviors.supported)) {
25
- endpoint.behaviors.inject(DescriptorServer);
25
+ endpoint.behaviors.inject(DescriptorServer, void 0, false);
26
26
  }
27
27
  }
28
28
  async eraseDescendant(endpoint) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/node/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,uBAAuB;AAChC,SAAS,wBAAwB;AAEjC,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;AAGhD,QAAI,EAAE,iBAAiB,MAAM,SAAS,UAAU,YAAY;AACxD,eAAS,UAAU,OAAO,gBAAgB;AAAA,IAC9C;AAAA,EACJ;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,UAAM,QAAQ,KAAK,OAAO,iBAAiB,QAAQ,EAAE,uBAAuB,KAAK,EAAE;AAEnF,WAAO,IAAI,sBAAsB,UAAU,MAAM,OAAO,SAAS,UAAU,WAAW,IAAI,CAAC;AAAA,EAC/F;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;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,6BAA6B;AACtC,SAAS,gBAAgB;AACzB,SAAS,2BAA2B;AACpC,SAAsB,eAAe,cAAc;AACnD,SAAS,uBAAuB;AAChC,SAAS,wBAAwB;AAEjC,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;AAGhD,QAAI,EAAE,iBAAiB,MAAM,SAAS,UAAU,YAAY;AACxD,eAAS,UAAU,OAAO,kBAAkB,QAAW,KAAK;AAAA,IAChE;AAAA,EACJ;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,UAAM,QAAQ,KAAK,OAAO,iBAAiB,QAAQ,EAAE,uBAAuB,KAAK,EAAE;AAEnF,WAAO,IAAI,sBAAsB,UAAU,MAAM,OAAO,SAAS,UAAU,WAAW,IAAI,CAAC;AAAA,EAC/F;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
5
  "names": ["id"]
6
6
  }
@@ -40,9 +40,13 @@ export declare class EndpointStore {
40
40
  */
41
41
  load(): Promise<void>;
42
42
  /**
43
- * Remove all persisted information for the {@link Endpoint}
43
+ * Remove all persisted information for the {@link Endpoint}.
44
44
  */
45
45
  erase(): import("#general").MaybePromise<void>;
46
+ /**
47
+ * Remove all persisted information for a single behavior on the {@link Endpoint}.
48
+ */
49
+ eraseStoreForBehavior(behaviorId: string): import("#general").MaybePromise<void>;
46
50
  protected get storage(): StorageContext;
47
51
  }
48
52
  //# sourceMappingURL=EndpointStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EndpointStore.d.ts","sourceRoot":"","sources":["../../../src/storage/EndpointStore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAyB,MAAM,UAAU,CAAC;AACjE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEhC;;GAEG;AACH,qBAAa,aAAa;;IACtB,SAAS,CAAC,aAAa,0BAAiC;gBAM5C,OAAO,EAAE,cAAc;IAInC;;OAEG;IACH,IAAI,EAAE,WAEL;IAED;;;OAGG;IACH,SAAS,CAAC,oBAAoB,CAAC,UAAU,EAAE,MAAM;IAQjD;;;;OAIG;IACG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;IAkCxD;;OAEG;IACH,QAAQ;IAIR;;OAEG;IACH,IAAI,cAAc,gBAEjB;IAED;;OAEG;IACG,IAAI;IAiBV;;OAEG;IACH,KAAK;IAIL,SAAS,KAAK,OAAO,mBAEpB;CACJ"}
1
+ {"version":3,"file":"EndpointStore.d.ts","sourceRoot":"","sources":["../../../src/storage/EndpointStore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAyB,MAAM,UAAU,CAAC;AACjE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEhC;;GAEG;AACH,qBAAa,aAAa;;IACtB,SAAS,CAAC,aAAa,0BAAiC;gBAM5C,OAAO,EAAE,cAAc;IAInC;;OAEG;IACH,IAAI,EAAE,WAEL;IAED;;;OAGG;IACH,SAAS,CAAC,oBAAoB,CAAC,UAAU,EAAE,MAAM;IAQjD;;;;OAIG;IACG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;IAkCxD;;OAEG;IACH,QAAQ;IAIR;;OAEG;IACH,IAAI,cAAc,gBAEjB;IAED;;OAEG;IACG,IAAI;IAiBV;;OAEG;IACH,KAAK;IAIL;;OAEG;IACH,qBAAqB,CAAC,UAAU,EAAE,MAAM;IAIxC,SAAS,KAAK,OAAO,mBAEpB;CACJ"}
@@ -92,11 +92,17 @@ class EndpointStore {
92
92
  }
93
93
  }
94
94
  /**
95
- * Remove all persisted information for the {@link Endpoint}
95
+ * Remove all persisted information for the {@link Endpoint}.
96
96
  */
97
97
  erase() {
98
98
  return this.storage.clearAll();
99
99
  }
100
+ /**
101
+ * Remove all persisted information for a single behavior on the {@link Endpoint}.
102
+ */
103
+ eraseStoreForBehavior(behaviorId) {
104
+ return this.storage.createContext(behaviorId).clearAll();
105
+ }
100
106
  get storage() {
101
107
  return this.#storage;
102
108
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/storage/EndpointStore.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAaO,MAAM,cAAc;AAAA,EACb,gBAAgB,oBAAI,IAAwB;AAAA,EAEtD;AAAA,EAEA,kBAAkB,oBAAI,IAAY;AAAA,EAElC,YAAY,SAAyB;AACjC,SAAK,WAAW;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,KAAK;AACL,WAAO,KAAK,QAAQ,aAAa,KAAK,QAAQ,aAAa,SAAS,CAAC;AAAA,EACzE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMU,qBAAqB,YAAoB;AAC/C,UAAM,gBAAgB,KAAK,cAAc,IAAI,UAAU;AACvD,QAAI,kBAAkB,QAAW;AAC7B,WAAK,cAAc,OAAO,UAAU;AAAA,IACxC;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,IAAI,QAAgD;AACtD,eAAW,cAAc,QAAQ;AAC7B,YAAM,iBAAiB,OAAO,UAAU;AACxC,YAAM,kBAAkB,KAAK,QAAQ,cAAc,UAAU;AAE7D,UAAI,mBAAmB,QAAW;AAC9B,YAAI,KAAK,eAAe,IAAI,UAAU,GAAG;AACrC,gBAAM,gBAAgB,SAAS;AAC/B,eAAK,eAAe,OAAO,UAAU;AAAA,QACzC;AACA;AAAA,MACJ;AAEA,UAAI,CAAC,KAAK,eAAe,IAAI,UAAU,GAAG;AACtC,aAAK,eAAe,IAAI,UAAU;AAAA,MACtC;AAEA,YAAM,SAAS,CAAC;AAChB,UAAI,aAAa;AACjB,iBAAW,OAAO,gBAAgB;AAC9B,cAAM,QAAQ,eAAe,GAAG;AAChC,YAAI,UAAU,QAAW;AACrB,gBAAM,gBAAgB,OAAO,GAAG;AAAA,QACpC,OAAO;AACH,iBAAO,GAAG,IAAI;AACd;AAAA,QACJ;AAAA,MACJ;AACA,UAAI,aAAa,GAAG;AAChB,cAAM,gBAAgB,IAAI,MAAM;AAAA,MACpC;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW;AACP,WAAO,WAAW,KAAK,SAAS,aAAa,KAAK,GAAG,CAAC;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,iBAAiB;AACjB,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAO;AACT,SAAK,kBAAkB,IAAI,IAAI,MAAM,KAAK,QAAQ,SAAS,CAAC;AAE5D,eAAW,cAAc,KAAK,iBAAiB;AAC3C,YAAM,iBAAiB,CAAC;AACxB,WAAK,cAAc,IAAI,YAAY,cAAc;AACjD,YAAM,kBAAkB,KAAK,QAAQ,cAAc,UAAU;AAE7D,YAAM,eAAe,MAAM,gBAAgB,OAAO;AAClD,iBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,YAAY,GAAG;AACrD,YAAI,UAAU,QAAW;AACrB,yBAAe,GAAG,IAAI;AAAA,QAC1B;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,QAAQ;AACJ,WAAO,KAAK,QAAQ,SAAS;AAAA,EACjC;AAAA,EAEA,IAAc,UAAU;AACpB,WAAO,KAAK;AAAA,EAChB;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAaO,MAAM,cAAc;AAAA,EACb,gBAAgB,oBAAI,IAAwB;AAAA,EAEtD;AAAA,EAEA,kBAAkB,oBAAI,IAAY;AAAA,EAElC,YAAY,SAAyB;AACjC,SAAK,WAAW;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,KAAK;AACL,WAAO,KAAK,QAAQ,aAAa,KAAK,QAAQ,aAAa,SAAS,CAAC;AAAA,EACzE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMU,qBAAqB,YAAoB;AAC/C,UAAM,gBAAgB,KAAK,cAAc,IAAI,UAAU;AACvD,QAAI,kBAAkB,QAAW;AAC7B,WAAK,cAAc,OAAO,UAAU;AAAA,IACxC;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,IAAI,QAAgD;AACtD,eAAW,cAAc,QAAQ;AAC7B,YAAM,iBAAiB,OAAO,UAAU;AACxC,YAAM,kBAAkB,KAAK,QAAQ,cAAc,UAAU;AAE7D,UAAI,mBAAmB,QAAW;AAC9B,YAAI,KAAK,eAAe,IAAI,UAAU,GAAG;AACrC,gBAAM,gBAAgB,SAAS;AAC/B,eAAK,eAAe,OAAO,UAAU;AAAA,QACzC;AACA;AAAA,MACJ;AAEA,UAAI,CAAC,KAAK,eAAe,IAAI,UAAU,GAAG;AACtC,aAAK,eAAe,IAAI,UAAU;AAAA,MACtC;AAEA,YAAM,SAAS,CAAC;AAChB,UAAI,aAAa;AACjB,iBAAW,OAAO,gBAAgB;AAC9B,cAAM,QAAQ,eAAe,GAAG;AAChC,YAAI,UAAU,QAAW;AACrB,gBAAM,gBAAgB,OAAO,GAAG;AAAA,QACpC,OAAO;AACH,iBAAO,GAAG,IAAI;AACd;AAAA,QACJ;AAAA,MACJ;AACA,UAAI,aAAa,GAAG;AAChB,cAAM,gBAAgB,IAAI,MAAM;AAAA,MACpC;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW;AACP,WAAO,WAAW,KAAK,SAAS,aAAa,KAAK,GAAG,CAAC;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,iBAAiB;AACjB,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAO;AACT,SAAK,kBAAkB,IAAI,IAAI,MAAM,KAAK,QAAQ,SAAS,CAAC;AAE5D,eAAW,cAAc,KAAK,iBAAiB;AAC3C,YAAM,iBAAiB,CAAC;AACxB,WAAK,cAAc,IAAI,YAAY,cAAc;AACjD,YAAM,kBAAkB,KAAK,QAAQ,cAAc,UAAU;AAE7D,YAAM,eAAe,MAAM,gBAAgB,OAAO;AAClD,iBAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,YAAY,GAAG;AACrD,YAAI,UAAU,QAAW;AACrB,yBAAe,GAAG,IAAI;AAAA,QAC1B;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,QAAQ;AACJ,WAAO,KAAK,QAAQ,SAAS;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAKA,sBAAsB,YAAoB;AACtC,WAAO,KAAK,QAAQ,cAAc,UAAU,EAAE,SAAS;AAAA,EAC3D;AAAA,EAEA,IAAc,UAAU;AACpB,WAAO,KAAK;AAAA,EAChB;AACJ;",
5
5
  "names": []
6
6
  }
@@ -7,6 +7,7 @@ import { StorageContext, Transaction } from "#general";
7
7
  import { EndpointStore } from "#storage/EndpointStore.js";
8
8
  import type { EndpointNumber } from "#types";
9
9
  import type { ClientNodeStore } from "./ClientNodeStore.js";
10
+ import { DatasourceCache } from "./DatasourceCache.js";
10
11
  export declare class ClientEndpointStore extends EndpointStore {
11
12
  #private;
12
13
  constructor(owner: ClientNodeStore, number: EndpointNumber, storage: StorageContext);
@@ -19,7 +20,7 @@ export declare class ClientEndpointStore extends EndpointStore {
19
20
  /**
20
21
  * Create a {@link Datasource.ExternallyMutableStore} for a behavior.
21
22
  */
22
- createStoreForBehavior(behaviorId: string): import("../../behavior/state/managed/Datasource.js").Datasource.ExternallyMutableStore;
23
+ createStoreForBehavior(behaviorId: string): DatasourceCache;
23
24
  /**
24
25
  * Create a {@link Datasource.Store} for a behavior that does not track a remote cluster.
25
26
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ClientEndpointStore.d.ts","sourceRoot":"","sources":["../../../../src/storage/client/ClientEndpointStore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI5D,qBAAa,mBAAoB,SAAQ,aAAa;;gBAItC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc;IAMnF,IAAI,MAAM,mBAET;IAED;;OAEG;IACH,IAAI,WAAW,YAEd;IAED,cAAc,CAAC,WAAW,EAAE,WAAW;IASvC;;OAEG;IACH,sBAAsB,CAAC,UAAU,EAAE,MAAM;IAKzC;;OAEG;IACH,2BAA2B,CAAC,UAAU,EAAE,MAAM;CAIjD"}
1
+ {"version":3,"file":"ClientEndpointStore.d.ts","sourceRoot":"","sources":["../../../../src/storage/client/ClientEndpointStore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,qBAAa,mBAAoB,SAAQ,aAAa;;gBAItC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc;IAMnF,IAAI,MAAM,mBAET;IAED;;OAEG;IACH,IAAI,WAAW,YAEd;IAED,cAAc,CAAC,WAAW,EAAE,WAAW;IASvC;;OAEG;IACH,sBAAsB,CAAC,UAAU,EAAE,MAAM;IAKzC;;OAEG;IACH,2BAA2B,CAAC,UAAU,EAAE,MAAM;CAIjD"}
@@ -4,14 +4,25 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { Datasource } from "#behavior/state/managed/Datasource.js";
7
+ import { MaybePromise } from "#general";
7
8
  import { Val } from "#protocol";
8
9
  import type { ClientEndpointStore } from "./ClientEndpointStore.js";
9
10
  /**
10
- * Factory function for the default implementation of {@link Datasource.ExternallyMutableStore}.
11
+ * The default implementation of {@link Datasource.ExternallyMutableStore}.
11
12
  *
12
- * This implements storage for attribute values for a single cluster loaded from remote nodes.
13
+ * This implements storage for attribute values for a single cluster loaded from peers.
13
14
  */
14
- export declare function DatasourceCache(store: ClientEndpointStore, behaviorId: string, initialValues: Val.Struct | undefined): Datasource.ExternallyMutableStore;
15
+ export interface DatasourceCache extends Datasource.ExternallyMutableStore {
16
+ /**
17
+ * Reset the cache to "uninitialized" state by reclaiming {@link initialValues} from an active datasource.
18
+ */
19
+ reclaimValues(): void;
20
+ /**
21
+ * Erase values just for this datasource.
22
+ */
23
+ erase(): MaybePromise<void>;
24
+ }
25
+ export declare function DatasourceCache(store: ClientEndpointStore, behaviorId: string, initialValues: Val.Struct | undefined): DatasourceCache;
15
26
  export declare namespace DatasourceCache {
16
27
  /**
17
28
  * Standard key for storing the version.
@@ -1 +1 @@
1
- {"version":3,"file":"DatasourceCache.d.ts","sourceRoot":"","sources":["../../../../src/storage/client/DatasourceCache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAEnE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGpE;;;;GAIG;AACH,wBAAgB,eAAe,CAC3B,KAAK,EAAE,mBAAmB,EAC1B,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,GAAG,CAAC,MAAM,GAAG,SAAS,GACtC,UAAU,CAAC,sBAAsB,CAyCnC;AAED,yBAAiB,eAAe,CAAC;IAC7B;;;;OAIG;IACI,MAAM,WAAW,gBAAgB,CAAC;CAC5C"}
1
+ {"version":3,"file":"DatasourceCache.d.ts","sourceRoot":"","sources":["../../../../src/storage/client/DatasourceCache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACnE,OAAO,EAAiB,YAAY,EAAe,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGpE;;;;GAIG;AACH,MAAM,WAAW,eAAgB,SAAQ,UAAU,CAAC,sBAAsB;IACtE;;OAEG;IACH,aAAa,IAAI,IAAI,CAAC;IAEtB;;OAEG;IACH,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;CAC/B;AAED,wBAAgB,eAAe,CAC3B,KAAK,EAAE,mBAAmB,EAC1B,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,GAAG,CAAC,MAAM,GAAG,SAAS,GACtC,eAAe,CAqDjB;AAED,yBAAiB,eAAe,CAAC;IAC7B;;;;OAIG;IACI,MAAM,WAAW,gBAAgB,CAAC;CAC5C"}
@@ -31,11 +31,21 @@ function DatasourceCache(store, behaviorId, initialValues) {
31
31
  }
32
32
  },
33
33
  externalChangeListener: void 0,
34
+ releaseValues: void 0,
35
+ reclaimValues() {
36
+ if (this.releaseValues) {
37
+ this.initialValues = this.releaseValues();
38
+ this.releaseValues = void 0;
39
+ }
40
+ },
34
41
  get version() {
35
42
  return version;
36
43
  },
37
44
  set version(_version) {
38
45
  throw new InternalError("Datasource version must be set via externalSet");
46
+ },
47
+ async erase() {
48
+ await store.eraseStoreForBehavior(behaviorId);
39
49
  }
40
50
  };
41
51
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/storage/client/DatasourceCache.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,kBAAkB;AAC3B,SAAS,qBAAkC;AAUpC,SAAS,gBACZ,OACA,YACA,eACiC;AACjC,MAAI,UAAU,gBAAgB,gBAAgB,WAAW;AACzD,MAAI,OAAO,YAAY,UAAU;AAC7B,cAAU,WAAW;AAAA,EACzB;AAEA,SAAO;AAAA,IACH;AAAA,IAEA,MAAM,IAAI,aAA0B,QAAoB;AACpD,YAAM,cAAc,MAAM,eAAe,WAAW;AACpD,kBAAY,IAAI,MAAM,QAAQ,YAAY,MAAM;AAAA,IACpD;AAAA,IAEA,MAAM,YAAY,QAAoB;AAClC,UAAI,OAAO,OAAO,gBAAgB,WAAW,MAAM,UAAU;AACzD,kBAAU,OAAO,gBAAgB,WAAW;AAAA,MAChD;AAEA,YAAM,MAAM,IAAI,EAAE,CAAC,UAAU,GAAG,OAAO,CAAC;AAExC,UAAI,KAAK,wBAAwB;AAC7B,cAAM,KAAK,uBAAuB,MAAM;AAAA,MAC5C,OAAO;AACH,YAAI,CAAC,KAAK,eAAe;AACrB,eAAK,gBAAgB,CAAC;AAAA,QAC1B;AACA,eAAO,OAAO,KAAK,eAAe,MAAM;AAAA,MAC5C;AAAA,IACJ;AAAA,IAEA,wBAAwB;AAAA,IAExB,IAAI,UAAU;AACV,aAAO;AAAA,IACX;AAAA,IAEA,IAAI,QAAQ,UAAkB;AAC1B,YAAM,IAAI,cAAc,gDAAgD;AAAA,IAC5E;AAAA,EACJ;AACJ;AAAA,CAEO,CAAUA,qBAAV;AAMI,EAAMA,iBAAA,cAAc;AAAA,GANd;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,kBAAkB;AAC3B,SAAS,qBAAgD;AAsBlD,SAAS,gBACZ,OACA,YACA,eACe;AACf,MAAI,UAAU,gBAAgB,gBAAgB,WAAW;AACzD,MAAI,OAAO,YAAY,UAAU;AAC7B,cAAU,WAAW;AAAA,EACzB;AAEA,SAAO;AAAA,IACH;AAAA,IAEA,MAAM,IAAI,aAA0B,QAAoB;AACpD,YAAM,cAAc,MAAM,eAAe,WAAW;AACpD,kBAAY,IAAI,MAAM,QAAQ,YAAY,MAAM;AAAA,IACpD;AAAA,IAEA,MAAM,YAAY,QAAoB;AAClC,UAAI,OAAO,OAAO,gBAAgB,WAAW,MAAM,UAAU;AACzD,kBAAU,OAAO,gBAAgB,WAAW;AAAA,MAChD;AAEA,YAAM,MAAM,IAAI,EAAE,CAAC,UAAU,GAAG,OAAO,CAAC;AAExC,UAAI,KAAK,wBAAwB;AAC7B,cAAM,KAAK,uBAAuB,MAAM;AAAA,MAC5C,OAAO;AACH,YAAI,CAAC,KAAK,eAAe;AACrB,eAAK,gBAAgB,CAAC;AAAA,QAC1B;AACA,eAAO,OAAO,KAAK,eAAe,MAAM;AAAA,MAC5C;AAAA,IACJ;AAAA,IAEA,wBAAwB;AAAA,IACxB,eAAe;AAAA,IAEf,gBAAgB;AACZ,UAAI,KAAK,eAAe;AACpB,aAAK,gBAAgB,KAAK,cAAc;AACxC,aAAK,gBAAgB;AAAA,MACzB;AAAA,IACJ;AAAA,IAEA,IAAI,UAAU;AACV,aAAO;AAAA,IACX;AAAA,IAEA,IAAI,QAAQ,UAAkB;AAC1B,YAAM,IAAI,cAAc,gDAAgD;AAAA,IAC5E;AAAA,IAEA,MAAM,QAAQ;AACV,YAAM,MAAM,sBAAsB,UAAU;AAAA,IAChD;AAAA,EACJ;AACJ;AAAA,CAEO,CAAUA,qBAAV;AAMI,EAAMA,iBAAA,cAAc;AAAA,GANd;",
5
5
  "names": ["DatasourceCache"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/node",
3
- "version": "0.16.0-alpha.0-20251110-c4c70a41b",
3
+ "version": "0.16.0-alpha.0-20251111-11cc8c3bd",
4
4
  "description": "API for building Matter nodes",
5
5
  "keywords": [
6
6
  "iot",
@@ -42,14 +42,14 @@
42
42
  "#*": "./src/*"
43
43
  },
44
44
  "dependencies": {
45
- "@matter/general": "0.16.0-alpha.0-20251110-c4c70a41b",
46
- "@matter/model": "0.16.0-alpha.0-20251110-c4c70a41b",
47
- "@matter/types": "0.16.0-alpha.0-20251110-c4c70a41b",
48
- "@matter/protocol": "0.16.0-alpha.0-20251110-c4c70a41b"
45
+ "@matter/general": "0.16.0-alpha.0-20251111-11cc8c3bd",
46
+ "@matter/model": "0.16.0-alpha.0-20251111-11cc8c3bd",
47
+ "@matter/types": "0.16.0-alpha.0-20251111-11cc8c3bd",
48
+ "@matter/protocol": "0.16.0-alpha.0-20251111-11cc8c3bd"
49
49
  },
50
50
  "devDependencies": {
51
- "@matter/tools": "0.16.0-alpha.0-20251110-c4c70a41b",
52
- "@matter/testing": "0.16.0-alpha.0-20251110-c4c70a41b"
51
+ "@matter/tools": "0.16.0-alpha.0-20251111-11cc8c3bd",
52
+ "@matter/testing": "0.16.0-alpha.0-20251111-11cc8c3bd"
53
53
  },
54
54
  "files": [
55
55
  "dist/**/*",
@@ -130,10 +130,10 @@ export abstract class BehaviorBacking {
130
130
  /**
131
131
  * Destroy the backing.
132
132
  */
133
- close(agent: Agent, invokeClose = true) {
133
+ close(agent?: Agent) {
134
134
  const initialized = this.construction.status === Lifecycle.Status.Active;
135
135
  if (!initialized) {
136
- invokeClose = false;
136
+ agent = undefined;
137
137
  }
138
138
 
139
139
  return this.construction.close(() => {
@@ -146,7 +146,7 @@ export abstract class BehaviorBacking {
146
146
  },
147
147
  );
148
148
 
149
- if (invokeClose) {
149
+ if (agent) {
150
150
  result = MaybePromise.then(result, () => this.#invokeClose(agent));
151
151
  }
152
152
 
@@ -178,6 +178,19 @@ export abstract class BehaviorBacking {
178
178
  return this.#type;
179
179
  }
180
180
 
181
+ set type(type: Behavior.Type) {
182
+ if (!type.supports(this.#type)) {
183
+ // This is unlikely to cause issues because we limit to peer contexts. In that case we implement elements
184
+ // fairly expansively regardless of reported support. So worst case scenario the metadata reported earlier
185
+ // may be out of sync with the device. There is a small possibility this causes problems, though, so log a
186
+ // warning
187
+ logger.warn(
188
+ `The cluster for active behavior ${this} may no longer be strictly compatible with local implementation`,
189
+ );
190
+ }
191
+ this.#type = type;
192
+ }
193
+
181
194
  /**
182
195
  * Create an instance of the backed {@link Behavior}.
183
196
  *
@@ -5,8 +5,9 @@
5
5
  */
6
6
 
7
7
  import { GlobalAttributeState } from "#behavior/cluster/ClusterState.js";
8
+ import { DatasourceCache } from "#endpoint/index.js";
8
9
  import { SupportedElements } from "#endpoint/properties/Behaviors.js";
9
- import { camelize } from "#general";
10
+ import { camelize, MaybePromise } from "#general";
10
11
  import { ClusterModel } from "#model";
11
12
  import { AttributeId, CommandId } from "#types";
12
13
  import { BehaviorBacking } from "./BehaviorBacking.js";
@@ -54,4 +55,12 @@ export class ClientBehaviorBacking extends BehaviorBacking {
54
55
  options.primaryKey = "id";
55
56
  return options;
56
57
  }
58
+
59
+ override close(): MaybePromise {
60
+ // Prepare the store for reuse in the case of reset
61
+ (this.store as DatasourceCache).reclaimValues?.();
62
+
63
+ // Omit the agent to skip disposal logic as client behaviors have none
64
+ super.close();
65
+ }
57
66
  }
@@ -229,6 +229,11 @@ export namespace Datasource {
229
229
  */
230
230
  externalChangeListener?: (changes: Val.Struct) => Promise<void>;
231
231
 
232
+ /**
233
+ * Callback installed by the store that releases the values from the datasource when invoked.
234
+ */
235
+ releaseValues?: () => Val.Struct;
236
+
232
237
  /**
233
238
  * The current version of the data.
234
239
  */
@@ -472,6 +477,14 @@ function configureExternalChanges(internals: Internals) {
472
477
  }
473
478
  }
474
479
  };
480
+
481
+ store.releaseValues = () => {
482
+ const { values } = internals;
483
+
484
+ internals.values = {};
485
+
486
+ return values;
487
+ };
475
488
  }
476
489
 
477
490
  /**
@@ -54,6 +54,7 @@ export class Behaviors {
54
54
  #endpoint: Endpoint;
55
55
  #supported: SupportedBehaviors;
56
56
  #backings: Record<string, BehaviorBacking> = {};
57
+ #events: Record<string, EventEmitter> = {};
57
58
  #options: Record<string, object | undefined>;
58
59
  #protocol?: ProtocolService;
59
60
 
@@ -296,12 +297,6 @@ export class Behaviors {
296
297
  }
297
298
 
298
299
  this.inject(type, options);
299
-
300
- this.#endpoint.lifecycle.change(EndpointLifecycle.Change.ServersChanged);
301
-
302
- if (type.early && this.#endpoint.lifecycle.isInstalled) {
303
- this.#activateLate(type);
304
- }
305
300
  }
306
301
 
307
302
  /**
@@ -456,9 +451,12 @@ export class Behaviors {
456
451
  }
457
452
 
458
453
  /**
459
- * Add support for an additional behavior statically. Should only be invoked prior to initialization.
454
+ * Add support for an additional behavior.
455
+ *
456
+ * This should generally only be used prior to initialization. It may cause subtle errors if incompatible types are
457
+ * injected once the endpoint is initialized.
460
458
  */
461
- inject(type: Behavior.Type, options?: Behavior.Options) {
459
+ inject(type: Behavior.Type, options?: Behavior.Options, notify = true) {
462
460
  if (options) {
463
461
  this.#options[type.id] = options;
464
462
  }
@@ -470,6 +468,47 @@ export class Behaviors {
470
468
  this.#supported[type.id] = type;
471
469
 
472
470
  this.#augmentEndpoint(type);
471
+
472
+ if (notify) {
473
+ this.#endpoint.lifecycle.change(EndpointLifecycle.Change.ServersChanged);
474
+ }
475
+
476
+ if (!this.#endpoint.lifecycle.isInstalled) {
477
+ return;
478
+ }
479
+
480
+ const activeBacking = this.#backings[type.id];
481
+ if (activeBacking) {
482
+ activeBacking.type = type;
483
+ } else if (type.early) {
484
+ this.#activateLate(type);
485
+ }
486
+ }
487
+
488
+ /**
489
+ * Drop support for a behavior.
490
+ *
491
+ * This is intended for synchronization with peers and should not be used for servers as Matter does not allow an
492
+ * endpoint to change its set of supported clusters.
493
+ */
494
+ drop(id: string): MaybePromise<void> {
495
+ const supported = this.#supported[id];
496
+ if (!supported) {
497
+ return;
498
+ }
499
+
500
+ delete this.#supported[id];
501
+
502
+ let promise: undefined | MaybePromise<void>;
503
+ const backing = this.#backings[id];
504
+ if (backing) {
505
+ logger.warn(`Removing ${backing} from active endpoint`);
506
+ promise = backing.close();
507
+ }
508
+
509
+ this.#endpoint.lifecycle.change(EndpointLifecycle.Change.ServersChanged);
510
+
511
+ return promise;
473
512
  }
474
513
 
475
514
  /**
@@ -704,17 +743,19 @@ export class Behaviors {
704
743
  * Updates endpoint "state" and "events" properties to include properties for a supported behavior.
705
744
  */
706
745
  #augmentEndpoint(type: Behavior.Type) {
746
+ const { id, Events } = type;
747
+
707
748
  const get = () => this.#backingFor(type).stateView;
708
- Object.defineProperty(this.#endpoint.state, type.id, { get, enumerable: true });
749
+ Object.defineProperty(this.#endpoint.state, id, { get, enumerable: true });
709
750
  if (type.schema.id !== undefined) {
710
751
  Object.defineProperty(this.#endpoint.state, type.schema.id, { get });
711
752
  }
712
753
 
713
- let events: undefined | EventEmitter;
714
- Object.defineProperty(this.#endpoint.events, type.id, {
754
+ Object.defineProperty(this.#endpoint.events, id, {
715
755
  get: () => {
756
+ let events = this.#events[id];
716
757
  if (!events) {
717
- events = new type.Events();
758
+ events = this.#events[id] = new Events();
718
759
 
719
760
  if (typeof (events as Events).setContext === "function") {
720
761
  (events as Events).setContext(this.#endpoint, type);