@matter/node 0.16.0-alpha.0-20251110-c4c70a41b → 0.16.0-alpha.0-20251112-dba1973d5

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 (135) hide show
  1. package/dist/cjs/behavior/cluster/ClusterBehavior.d.ts +1 -0
  2. package/dist/cjs/behavior/cluster/ClusterBehavior.d.ts.map +1 -1
  3. package/dist/cjs/behavior/cluster/ClusterBehavior.js +3 -0
  4. package/dist/cjs/behavior/cluster/ClusterBehavior.js.map +1 -1
  5. package/dist/cjs/behavior/cluster/ClusterBehaviorType.d.ts.map +1 -1
  6. package/dist/cjs/behavior/cluster/ClusterBehaviorType.js +3 -0
  7. package/dist/cjs/behavior/cluster/ClusterBehaviorType.js.map +1 -1
  8. package/dist/cjs/behavior/internal/BehaviorBacking.d.ts +2 -1
  9. package/dist/cjs/behavior/internal/BehaviorBacking.d.ts.map +1 -1
  10. package/dist/cjs/behavior/internal/BehaviorBacking.js +11 -3
  11. package/dist/cjs/behavior/internal/BehaviorBacking.js.map +1 -1
  12. package/dist/cjs/behavior/internal/ClientBehaviorBacking.d.ts +2 -0
  13. package/dist/cjs/behavior/internal/ClientBehaviorBacking.d.ts.map +1 -1
  14. package/dist/cjs/behavior/internal/ClientBehaviorBacking.js +4 -0
  15. package/dist/cjs/behavior/internal/ClientBehaviorBacking.js.map +1 -1
  16. package/dist/cjs/behavior/internal/ServerBehaviorBacking.d.ts +3 -0
  17. package/dist/cjs/behavior/internal/ServerBehaviorBacking.d.ts.map +1 -1
  18. package/dist/cjs/behavior/internal/ServerBehaviorBacking.js +18 -0
  19. package/dist/cjs/behavior/internal/ServerBehaviorBacking.js.map +1 -1
  20. package/dist/cjs/behavior/state/managed/Datasource.d.ts +4 -0
  21. package/dist/cjs/behavior/state/managed/Datasource.d.ts.map +1 -1
  22. package/dist/cjs/behavior/state/managed/Datasource.js +5 -0
  23. package/dist/cjs/behavior/state/managed/Datasource.js.map +1 -1
  24. package/dist/cjs/behaviors/operational-credentials/OperationalCredentialsServer.d.ts.map +1 -1
  25. package/dist/cjs/behaviors/operational-credentials/OperationalCredentialsServer.js +4 -3
  26. package/dist/cjs/behaviors/operational-credentials/OperationalCredentialsServer.js.map +1 -1
  27. package/dist/cjs/behaviors/operational-credentials/VendorIdVerification.d.ts.map +1 -1
  28. package/dist/cjs/behaviors/operational-credentials/VendorIdVerification.js +6 -2
  29. package/dist/cjs/behaviors/operational-credentials/VendorIdVerification.js.map +1 -1
  30. package/dist/cjs/behaviors/scenes-management/ScenesManagementServer.js +2 -3
  31. package/dist/cjs/behaviors/scenes-management/ScenesManagementServer.js.map +1 -1
  32. package/dist/cjs/endpoint/properties/Behaviors.d.ts +12 -2
  33. package/dist/cjs/endpoint/properties/Behaviors.d.ts.map +1 -1
  34. package/dist/cjs/endpoint/properties/Behaviors.js +44 -10
  35. package/dist/cjs/endpoint/properties/Behaviors.js.map +2 -2
  36. package/dist/cjs/node/client/ClientStructure.d.ts +31 -1
  37. package/dist/cjs/node/client/ClientStructure.d.ts.map +1 -1
  38. package/dist/cjs/node/client/ClientStructure.js +257 -81
  39. package/dist/cjs/node/client/ClientStructure.js.map +1 -1
  40. package/dist/cjs/node/client/ClientStructureEvents.d.ts +5 -2
  41. package/dist/cjs/node/client/ClientStructureEvents.d.ts.map +1 -1
  42. package/dist/cjs/node/client/ClientStructureEvents.js +38 -2
  43. package/dist/cjs/node/client/ClientStructureEvents.js.map +1 -1
  44. package/dist/cjs/node/client/Peers.d.ts +3 -0
  45. package/dist/cjs/node/client/Peers.d.ts.map +1 -1
  46. package/dist/cjs/node/client/Peers.js +3 -0
  47. package/dist/cjs/node/client/Peers.js.map +1 -1
  48. package/dist/cjs/node/server/ServerEndpointInitializer.js +1 -1
  49. package/dist/cjs/node/server/ServerEndpointInitializer.js.map +1 -1
  50. package/dist/cjs/storage/EndpointStore.d.ts +5 -1
  51. package/dist/cjs/storage/EndpointStore.d.ts.map +1 -1
  52. package/dist/cjs/storage/EndpointStore.js +7 -1
  53. package/dist/cjs/storage/EndpointStore.js.map +1 -1
  54. package/dist/cjs/storage/client/ClientEndpointStore.d.ts +2 -1
  55. package/dist/cjs/storage/client/ClientEndpointStore.d.ts.map +1 -1
  56. package/dist/cjs/storage/client/DatasourceCache.d.ts +14 -3
  57. package/dist/cjs/storage/client/DatasourceCache.d.ts.map +1 -1
  58. package/dist/cjs/storage/client/DatasourceCache.js +10 -0
  59. package/dist/cjs/storage/client/DatasourceCache.js.map +1 -1
  60. package/dist/esm/behavior/cluster/ClusterBehavior.d.ts +1 -0
  61. package/dist/esm/behavior/cluster/ClusterBehavior.d.ts.map +1 -1
  62. package/dist/esm/behavior/cluster/ClusterBehavior.js +3 -0
  63. package/dist/esm/behavior/cluster/ClusterBehavior.js.map +1 -1
  64. package/dist/esm/behavior/cluster/ClusterBehaviorType.d.ts.map +1 -1
  65. package/dist/esm/behavior/cluster/ClusterBehaviorType.js +3 -0
  66. package/dist/esm/behavior/cluster/ClusterBehaviorType.js.map +1 -1
  67. package/dist/esm/behavior/internal/BehaviorBacking.d.ts +2 -1
  68. package/dist/esm/behavior/internal/BehaviorBacking.d.ts.map +1 -1
  69. package/dist/esm/behavior/internal/BehaviorBacking.js +11 -3
  70. package/dist/esm/behavior/internal/BehaviorBacking.js.map +1 -1
  71. package/dist/esm/behavior/internal/ClientBehaviorBacking.d.ts +2 -0
  72. package/dist/esm/behavior/internal/ClientBehaviorBacking.d.ts.map +1 -1
  73. package/dist/esm/behavior/internal/ClientBehaviorBacking.js +4 -0
  74. package/dist/esm/behavior/internal/ClientBehaviorBacking.js.map +1 -1
  75. package/dist/esm/behavior/internal/ServerBehaviorBacking.d.ts +3 -0
  76. package/dist/esm/behavior/internal/ServerBehaviorBacking.d.ts.map +1 -1
  77. package/dist/esm/behavior/internal/ServerBehaviorBacking.js +20 -2
  78. package/dist/esm/behavior/internal/ServerBehaviorBacking.js.map +1 -1
  79. package/dist/esm/behavior/state/managed/Datasource.d.ts +4 -0
  80. package/dist/esm/behavior/state/managed/Datasource.d.ts.map +1 -1
  81. package/dist/esm/behavior/state/managed/Datasource.js +5 -0
  82. package/dist/esm/behavior/state/managed/Datasource.js.map +1 -1
  83. package/dist/esm/behaviors/operational-credentials/OperationalCredentialsServer.d.ts.map +1 -1
  84. package/dist/esm/behaviors/operational-credentials/OperationalCredentialsServer.js +4 -3
  85. package/dist/esm/behaviors/operational-credentials/OperationalCredentialsServer.js.map +1 -1
  86. package/dist/esm/behaviors/operational-credentials/VendorIdVerification.d.ts.map +1 -1
  87. package/dist/esm/behaviors/operational-credentials/VendorIdVerification.js +7 -2
  88. package/dist/esm/behaviors/operational-credentials/VendorIdVerification.js.map +1 -1
  89. package/dist/esm/behaviors/scenes-management/ScenesManagementServer.js +2 -3
  90. package/dist/esm/behaviors/scenes-management/ScenesManagementServer.js.map +1 -1
  91. package/dist/esm/endpoint/properties/Behaviors.d.ts +12 -2
  92. package/dist/esm/endpoint/properties/Behaviors.d.ts.map +1 -1
  93. package/dist/esm/endpoint/properties/Behaviors.js +44 -10
  94. package/dist/esm/endpoint/properties/Behaviors.js.map +2 -2
  95. package/dist/esm/node/client/ClientStructure.d.ts +31 -1
  96. package/dist/esm/node/client/ClientStructure.d.ts.map +1 -1
  97. package/dist/esm/node/client/ClientStructure.js +258 -82
  98. package/dist/esm/node/client/ClientStructure.js.map +1 -1
  99. package/dist/esm/node/client/ClientStructureEvents.d.ts +5 -2
  100. package/dist/esm/node/client/ClientStructureEvents.d.ts.map +1 -1
  101. package/dist/esm/node/client/ClientStructureEvents.js +39 -3
  102. package/dist/esm/node/client/ClientStructureEvents.js.map +1 -1
  103. package/dist/esm/node/client/Peers.d.ts +3 -0
  104. package/dist/esm/node/client/Peers.d.ts.map +1 -1
  105. package/dist/esm/node/client/Peers.js +3 -0
  106. package/dist/esm/node/client/Peers.js.map +1 -1
  107. package/dist/esm/node/server/ServerEndpointInitializer.js +1 -1
  108. package/dist/esm/node/server/ServerEndpointInitializer.js.map +1 -1
  109. package/dist/esm/storage/EndpointStore.d.ts +5 -1
  110. package/dist/esm/storage/EndpointStore.d.ts.map +1 -1
  111. package/dist/esm/storage/EndpointStore.js +7 -1
  112. package/dist/esm/storage/EndpointStore.js.map +1 -1
  113. package/dist/esm/storage/client/ClientEndpointStore.d.ts +2 -1
  114. package/dist/esm/storage/client/ClientEndpointStore.d.ts.map +1 -1
  115. package/dist/esm/storage/client/DatasourceCache.d.ts +14 -3
  116. package/dist/esm/storage/client/DatasourceCache.d.ts.map +1 -1
  117. package/dist/esm/storage/client/DatasourceCache.js +10 -0
  118. package/dist/esm/storage/client/DatasourceCache.js.map +1 -1
  119. package/package.json +7 -7
  120. package/src/behavior/cluster/ClusterBehavior.ts +4 -0
  121. package/src/behavior/cluster/ClusterBehaviorType.ts +5 -0
  122. package/src/behavior/internal/BehaviorBacking.ts +16 -3
  123. package/src/behavior/internal/ClientBehaviorBacking.ts +10 -1
  124. package/src/behavior/internal/ServerBehaviorBacking.ts +22 -3
  125. package/src/behavior/state/managed/Datasource.ts +13 -0
  126. package/src/behaviors/operational-credentials/OperationalCredentialsServer.ts +4 -3
  127. package/src/behaviors/operational-credentials/VendorIdVerification.ts +7 -2
  128. package/src/behaviors/scenes-management/ScenesManagementServer.ts +2 -2
  129. package/src/endpoint/properties/Behaviors.ts +53 -12
  130. package/src/node/client/ClientStructure.ts +352 -91
  131. package/src/node/client/ClientStructureEvents.ts +55 -7
  132. package/src/node/client/Peers.ts +4 -0
  133. package/src/node/server/ServerEndpointInitializer.ts +1 -1
  134. package/src/storage/EndpointStore.ts +8 -1
  135. package/src/storage/client/DatasourceCache.ts +28 -4
@@ -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-20251112-dba1973d5",
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-20251112-dba1973d5",
46
+ "@matter/model": "0.16.0-alpha.0-20251112-dba1973d5",
47
+ "@matter/types": "0.16.0-alpha.0-20251112-dba1973d5",
48
+ "@matter/protocol": "0.16.0-alpha.0-20251112-dba1973d5"
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-20251112-dba1973d5",
52
+ "@matter/testing": "0.16.0-alpha.0-20251112-dba1973d5"
53
53
  },
54
54
  "files": [
55
55
  "dist/**/*",
@@ -56,6 +56,10 @@ export class ClusterBehavior extends Behavior {
56
56
  return this.cluster.supportedFeatures;
57
57
  }
58
58
 
59
+ override get type() {
60
+ return this.constructor as ClusterBehavior.Type;
61
+ }
62
+
59
63
  /**
60
64
  * Every cluster behavior has an associated ClusterType defined statically.
61
65
  */
@@ -110,6 +110,11 @@ export function ClusterBehaviorType<const C extends ClusterType>({
110
110
  // Decorate the class
111
111
  ClassSemantics.of(type).mutableModel = schema;
112
112
 
113
+ // If the schema was overridden, it won't change with class semantics so override explicitly if necessary
114
+ if (type.schema !== schema) {
115
+ Object.defineProperty(type, "schema", { value: schema });
116
+ }
117
+
113
118
  // Mutation of schema will almost certainly result in logic errors so ensure that can't happen
114
119
  schema.finalize();
115
120
 
@@ -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
  }
@@ -8,8 +8,8 @@ import { ClusterBehavior } from "#behavior/cluster/ClusterBehavior.js";
8
8
  import { GlobalAttributeState } from "#behavior/cluster/ClusterState.js";
9
9
  import { ValidatedElements } from "#behavior/cluster/ValidatedElements.js";
10
10
  import type { SupportedElements } from "#endpoint/properties/Behaviors.js";
11
- import { camelize } from "#general";
12
- import { type ClusterModel, FieldValue } from "#model";
11
+ import { camelize, ImplementationError } from "#general";
12
+ import { ClusterModel, FeatureSet, FieldValue, Schema } from "#model";
13
13
  import { Val } from "#protocol";
14
14
  import { ClusterType, TlvNoResponse } from "#types";
15
15
  import { Behavior } from "../Behavior.js";
@@ -17,6 +17,8 @@ import { BehaviorBacking } from "./BehaviorBacking.js";
17
17
 
18
18
  const NoElements = new Set<string>();
19
19
 
20
+ export class FeatureMismatchError extends ImplementationError {}
21
+
20
22
  /**
21
23
  * This class backs the server implementation of a behavior.
22
24
  */
@@ -101,9 +103,26 @@ export class ServerBehaviorBacking extends BehaviorBacking {
101
103
  ),
102
104
  ];
103
105
 
106
+ // Validate the feature map
107
+ const schema = Schema(behavior.type) as ClusterModel;
108
+ if (schema.tag === "cluster") {
109
+ const { supportedFeatures, featureMap } = Schema(behavior.type) as ClusterModel;
110
+ const { featuresSupported, featuresAvailable } = FeatureSet.normalize(
111
+ featureMap,
112
+ new FeatureSet(globals.featureMap),
113
+ );
114
+ for (const name of featuresAvailable) {
115
+ if (supportedFeatures.has(name) !== featuresSupported.has(name)) {
116
+ throw new FeatureMismatchError(
117
+ `The featureMap for ${behavior} does not match the implementation; please use ${behavior.type.name}.with("FeatureName") to configure features`,
118
+ );
119
+ }
120
+ }
121
+ }
122
+
104
123
  // Load public API
105
124
  this.#elements = {
106
- features: (behavior.type.schema as ClusterModel).supportedFeatures ?? new Set(),
125
+ features: behavior.type.schema.supportedFeatures ?? new Set(),
107
126
  attributes: validation.attributes,
108
127
  commands: validation.commands,
109
128
  events: validation.events,
@@ -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
  /**
@@ -115,7 +115,7 @@ export class OperationalCredentialsServer extends OperationalCredentialsBehavior
115
115
  timestamp: 0,
116
116
  });
117
117
 
118
- const attestationSignature = await certification.sign(session, attestationElements);
118
+ const attestationSignature = (await certification.sign(session, attestationElements)).bytes;
119
119
 
120
120
  return { attestationElements, attestationSignature };
121
121
  }
@@ -153,7 +153,8 @@ export class OperationalCredentialsServer extends OperationalCredentialsBehavior
153
153
  this.context.session.id,
154
154
  );
155
155
  const nocsrElements = TlvCertSigningRequest.encode({ certSigningRequest, csrNonce });
156
- return { nocsrElements, attestationSignature: await certification.sign(session, nocsrElements) };
156
+ const attestationSignature = (await certification.sign(session, nocsrElements)).bytes;
157
+ return { nocsrElements, attestationSignature };
157
158
  }
158
159
 
159
160
  override async certificateChainRequest({ certificateType }: OperationalCredentials.CertificateChainRequest) {
@@ -480,7 +481,7 @@ export class OperationalCredentialsServer extends OperationalCredentialsBehavior
480
481
  return {
481
482
  fabricIndex,
482
483
  fabricBindingVersion,
483
- signature: await fabric.sign(signatureData),
484
+ signature: (await fabric.sign(signatureData)).bytes,
484
485
  };
485
486
  }
486
487
 
@@ -11,6 +11,7 @@ import {
11
11
  CryptoError,
12
12
  DataReader,
13
13
  DataWriter,
14
+ EcdsaSignature,
14
15
  Endian,
15
16
  InternalError,
16
17
  Logger,
@@ -189,7 +190,7 @@ export namespace VendorIdVerification {
189
190
 
190
191
  try {
191
192
  // Validate signature over TBS data
192
- await crypto.verifyEcdsa(PublicKey(rootPublicKey), tbs, signature);
193
+ await crypto.verifyEcdsa(PublicKey(rootPublicKey), tbs, new EcdsaSignature(signature));
193
194
 
194
195
  // Verify Noc cert chain using trusted root
195
196
  const rootCert = Rcac.fromTlv(rcac);
@@ -255,7 +256,11 @@ export namespace VendorIdVerification {
255
256
  signerSkid,
256
257
  });
257
258
 
258
- await crypto.verifyEcdsa(PublicKey(ellipticCurvePublicKey), ourStatement, vidStatementSignature);
259
+ await crypto.verifyEcdsa(
260
+ PublicKey(ellipticCurvePublicKey),
261
+ ourStatement,
262
+ new EcdsaSignature(vidStatementSignature),
263
+ );
259
264
  } else {
260
265
  // TODO
261
266
  // Look-up the entry in the Operational Trust Anchors Schema under the expected VendorID
@@ -845,8 +845,8 @@ export class ScenesManagementServer extends ScenesManagementBase {
845
845
  * @param applyFunc Function that applies scene values for that cluster
846
846
  */
847
847
  implementScenes<T extends ClusterBehavior>(behavior: T, applyFunc: ScenesManagementServer.ApplySceneValuesFunc<T>) {
848
- const type = behavior.type as ClusterBehavior.Type;
849
- if (!ClusterBehavior.is(type) || !type.schema || !type.schema.id) {
848
+ const { type } = behavior;
849
+ if (!type.schema.id) {
850
850
  return;
851
851
  }
852
852
  const clusterName = camelize(type.schema.name);
@@ -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);