@project-chip/matter.js 0.15.2-alpha.0-20250717-3607eeac6 → 0.15.2-alpha.0-20250719-e4aeb457c
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.
- package/dist/cjs/device/CachedClientNodeStore.js +4 -4
- package/dist/cjs/device/CachedClientNodeStore.js.map +1 -1
- package/dist/cjs/device/ClientEndpointStore.d.ts +1 -1
- package/dist/cjs/device/ClientEndpointStore.d.ts.map +1 -1
- package/dist/cjs/device/ClientEndpointStore.js +9 -8
- package/dist/cjs/device/ClientEndpointStore.js.map +1 -1
- package/dist/esm/device/CachedClientNodeStore.js +4 -4
- package/dist/esm/device/CachedClientNodeStore.js.map +1 -1
- package/dist/esm/device/ClientEndpointStore.d.ts +1 -1
- package/dist/esm/device/ClientEndpointStore.d.ts.map +1 -1
- package/dist/esm/device/ClientEndpointStore.js +9 -8
- package/dist/esm/device/ClientEndpointStore.js.map +1 -1
- package/package.json +8 -8
- package/src/device/CachedClientNodeStore.ts +4 -4
- package/src/device/ClientEndpointStore.ts +9 -8
|
@@ -80,7 +80,7 @@ class CachedClientNodeStore extends import_protocol.PeerDataStore {
|
|
|
80
80
|
}
|
|
81
81
|
retrieveAttribute(endpointId, clusterId, attributeId) {
|
|
82
82
|
const store = this.#storeForEndpoint(endpointId);
|
|
83
|
-
const clusterValues = store.get
|
|
83
|
+
const clusterValues = store.get.get(clusterId.toString());
|
|
84
84
|
if (clusterValues === void 0) {
|
|
85
85
|
return void 0;
|
|
86
86
|
}
|
|
@@ -107,7 +107,7 @@ class CachedClientNodeStore extends import_protocol.PeerDataStore {
|
|
|
107
107
|
}
|
|
108
108
|
retrieveAttributes(endpointId, clusterId) {
|
|
109
109
|
const store = this.#storeForEndpoint(endpointId);
|
|
110
|
-
const clusterValues = store.get
|
|
110
|
+
const clusterValues = store.get.get(clusterId.toString());
|
|
111
111
|
if (clusterValues === void 0) {
|
|
112
112
|
return [];
|
|
113
113
|
}
|
|
@@ -155,7 +155,7 @@ class CachedClientNodeStore extends import_protocol.PeerDataStore {
|
|
|
155
155
|
}
|
|
156
156
|
getClusterDataVersion(endpointId, clusterId) {
|
|
157
157
|
const store = this.#storeForEndpoint(endpointId);
|
|
158
|
-
const clusterValues = store.get
|
|
158
|
+
const clusterValues = store.get.get(clusterId.toString());
|
|
159
159
|
return clusterValues?.[VERSION_KEY];
|
|
160
160
|
}
|
|
161
161
|
getClusterDataVersions(filterEndpointId, filterClusterId) {
|
|
@@ -170,7 +170,7 @@ class CachedClientNodeStore extends import_protocol.PeerDataStore {
|
|
|
170
170
|
if (filterClusterIdStr !== void 0 && clusterId !== filterClusterIdStr) {
|
|
171
171
|
continue;
|
|
172
172
|
}
|
|
173
|
-
const version = endpointData
|
|
173
|
+
const version = endpointData.get(clusterId.toString())[VERSION_KEY];
|
|
174
174
|
if (typeof version === "number") {
|
|
175
175
|
versions.push({ endpointId, clusterId: (0, import_types.ClusterId)(parseInt(clusterId)), dataVersion: version });
|
|
176
176
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/device/CachedClientNodeStore.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,qBAAqC;AACrC,sBAAgE;AAChE,mBAAoE;AACpE,iCAAoC;AAVpC;AAAA;AAAA;AAAA;AAAA;AAYA,MAAM,SAAS,sBAAO,IAAI,uBAAuB;AAEjD,MAAM,cAAc;AACpB,MAAM,uBAAuB;AAOtB,MAAM,8BAA8B,8BAAc;AAAA,EACrD;AAAA,EACA;AAAA,EACA,kBAAkB,oBAAI,IAAyC;AAAA,EAC/D,sBAA+B,0BAAY,CAAC;AAAA,EAE5C,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,YAAY,SAAyB,OAAO,MAAM;AAC9C,UAAM;AACN,SAAK,WAAW;AAEhB,SAAK,oBAAgB,6BAAa,MAAM,YAAY;AAChD,UAAI,CAAC,MAAM;AACP;AAAA,MACJ;AACA,WAAK,kBAAkB,MAAM,KAAK,SAAS,IAAI,0BAAsB,0BAAY,CAAC,CAAC;AAGnF,YAAM,aAAa,MAAM,KAAK,SAAS,SAAS;AAChD,iBAAW,UAAU,YAAY;AAC7B,cAAM,KAAK,mBAAmB,MAAM;AAAA,MACxC;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,mBAAmB,QAAgB;AACrC,UAAM,qBAAiB,6BAAe,SAAS,MAAM,CAAC;AACtD,UAAM,gBAAgB,IAAI,+CAAoB,KAAK,SAAS,cAAc,MAAM,CAAC;AACjF,SAAK,gBAAgB,IAAI,gBAAgB,aAAa;AACtD,UAAM,cAAc;AAAA,EACxB;AAAA,EAEA,kBAAkB,YAAiD;AAC/D,SAAK,cAAc,OAAO;AAE1B,UAAM,gBAAgB,KAAK,gBAAgB,IAAI,UAAU;AACzD,QAAI,kBAAkB,QAAW;AAC7B,aAAO;AAAA,IACX;AAEA,UAAM,QAAQ,IAAI,+CAAoB,KAAK,SAAS,cAAc,WAAW,SAAS,CAAC,GAAG,KAAK;AAC/F,SAAK,gBAAgB,IAAI,YAAY,KAAK;AAE1C,WAAO;AAAA,EACX;AAAA,EAEA,IAAI,iBAAiB;AACjB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,sBAAsB,aAA0B;AAC5C,SAAK,kBAAkB;AACvB,WAAO,KAAK,SAAS,IAAI,sBAAsB,WAAW;AAAA,EAC9D;AAAA,EAEA,kBACI,YACA,WACA,aAC4C;AAC5C,UAAM,QAAQ,KAAK,kBAAkB,UAAU;AAC/C,UAAM,gBAAgB,MAAM,IAAI,SAAS;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -15,7 +15,7 @@ export declare class ClientEndpointStore extends ServerEndpointStore {
|
|
|
15
15
|
#private;
|
|
16
16
|
constructor(storage: StorageContext, load?: boolean);
|
|
17
17
|
get construction(): Construction<ServerEndpointStore>;
|
|
18
|
-
get get():
|
|
18
|
+
get get(): Map<string, Val.Struct>;
|
|
19
19
|
set(values: Record<string, undefined | Val.Struct>): Promise<void>;
|
|
20
20
|
}
|
|
21
21
|
//# sourceMappingURL=ClientEndpointStore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientEndpointStore.d.ts","sourceRoot":"","sources":["../../../src/device/ClientEndpointStore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAe,cAAc,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC;;;;GAIG;AACH,qBAAa,mBAAoB,SAAQ,mBAAmB;;gBAI5C,OAAO,EAAE,cAAc,EAAE,IAAI,UAAO;IAchD,IAAI,YAAY,sCAEf;IAED,IAAI,GAAG
|
|
1
|
+
{"version":3,"file":"ClientEndpointStore.d.ts","sourceRoot":"","sources":["../../../src/device/ClientEndpointStore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAe,cAAc,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC;;;;GAIG;AACH,qBAAa,mBAAoB,SAAQ,mBAAmB;;gBAI5C,OAAO,EAAE,cAAc,EAAE,IAAI,UAAO;IAchD,IAAI,YAAY,sCAEf;IAED,IAAI,GAAG,4BAEN;IAEc,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;CA6BpE"}
|
|
@@ -30,14 +30,14 @@ var import_node = require("#node");
|
|
|
30
30
|
*/
|
|
31
31
|
class ClientEndpointStore extends import_node.ServerEndpointStore {
|
|
32
32
|
#construction;
|
|
33
|
-
#values =
|
|
33
|
+
#values = /* @__PURE__ */ new Map();
|
|
34
34
|
constructor(storage, load = true) {
|
|
35
35
|
super(storage);
|
|
36
36
|
this.#construction = (0, import_general.Construction)(this, async () => {
|
|
37
37
|
if (load) {
|
|
38
38
|
await this.load();
|
|
39
39
|
this.#values = this.initialValues;
|
|
40
|
-
this.initialValues =
|
|
40
|
+
this.initialValues = /* @__PURE__ */ new Map();
|
|
41
41
|
}
|
|
42
42
|
});
|
|
43
43
|
}
|
|
@@ -52,19 +52,20 @@ class ClientEndpointStore extends import_node.ServerEndpointStore {
|
|
|
52
52
|
for (const behaviorId in values) {
|
|
53
53
|
const behaviorValues = values[behaviorId];
|
|
54
54
|
if (behaviorValues === void 0) {
|
|
55
|
-
|
|
55
|
+
this.#values.delete(behaviorId);
|
|
56
56
|
} else {
|
|
57
57
|
for (const key in behaviorValues) {
|
|
58
58
|
const value = behaviorValues[key];
|
|
59
59
|
if (value === void 0) {
|
|
60
|
-
delete this.#values
|
|
60
|
+
delete this.#values.get(behaviorId)?.[key];
|
|
61
61
|
} else {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
62
|
+
let vals = this.#values.get(behaviorId);
|
|
63
|
+
if (!vals) {
|
|
64
|
+
this.#values.set(behaviorId, vals = {});
|
|
65
|
+
} else if ((0, import_general.isDeepEqual)(vals[key], value)) {
|
|
65
66
|
delete behaviorValues[key];
|
|
66
67
|
}
|
|
67
|
-
|
|
68
|
+
vals[key] = value;
|
|
68
69
|
}
|
|
69
70
|
}
|
|
70
71
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/device/ClientEndpointStore.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAA0D;AAC1D,kBAAoC;AAPpC;AAAA;AAAA;AAAA;AAAA;AAeO,MAAM,4BAA4B,gCAAoB;AAAA,EAChD;AAAA,EACT,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAA0D;AAC1D,kBAAoC;AAPpC;AAAA;AAAA;AAAA;AAAA;AAeO,MAAM,4BAA4B,gCAAoB;AAAA,EAChD;AAAA,EACT,UAAU,oBAAI,IAAwB;AAAA,EAEtC,YAAY,SAAyB,OAAO,MAAM;AAC9C,UAAM,OAAO;AAEb,SAAK,oBAAgB,6BAAa,MAAM,YAAY;AAChD,UAAI,MAAM;AACN,cAAM,KAAK,KAAK;AAGhB,aAAK,UAAU,KAAK;AACpB,aAAK,gBAAgB,oBAAI,IAAI;AAAA,MACjC;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,MAAM;AACN,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAe,IAAI,QAAgD;AAC/D,UAAM,KAAK;AAGX,eAAW,cAAc,QAAQ;AAC7B,YAAM,iBAAiB,OAAO,UAAU;AACxC,UAAI,mBAAmB,QAAW;AAC9B,aAAK,QAAQ,OAAO,UAAU;AAAA,MAClC,OAAO;AACH,mBAAW,OAAO,gBAAgB;AAC9B,gBAAM,QAAQ,eAAe,GAAG;AAChC,cAAI,UAAU,QAAW;AACrB,mBAAO,KAAK,QAAQ,IAAI,UAAU,IAAI,GAAG;AAAA,UAC7C,OAAO;AACH,gBAAI,OAAO,KAAK,QAAQ,IAAI,UAAU;AACtC,gBAAI,CAAC,MAAM;AACP,mBAAK,QAAQ,IAAI,YAAa,OAAO,CAAC,CAAE;AAAA,YAC5C,eAAW,4BAAY,KAAK,GAAG,GAAG,KAAK,GAAG;AACtC,qBAAO,eAAe,GAAG;AAAA,YAC7B;AACA,iBAAK,GAAG,IAAI;AAAA,UAChB;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAGA,UAAM,MAAM,IAAI,MAAM;AAAA,EAC1B;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -57,7 +57,7 @@ class CachedClientNodeStore extends PeerDataStore {
|
|
|
57
57
|
}
|
|
58
58
|
retrieveAttribute(endpointId, clusterId, attributeId) {
|
|
59
59
|
const store = this.#storeForEndpoint(endpointId);
|
|
60
|
-
const clusterValues = store.get
|
|
60
|
+
const clusterValues = store.get.get(clusterId.toString());
|
|
61
61
|
if (clusterValues === void 0) {
|
|
62
62
|
return void 0;
|
|
63
63
|
}
|
|
@@ -84,7 +84,7 @@ class CachedClientNodeStore extends PeerDataStore {
|
|
|
84
84
|
}
|
|
85
85
|
retrieveAttributes(endpointId, clusterId) {
|
|
86
86
|
const store = this.#storeForEndpoint(endpointId);
|
|
87
|
-
const clusterValues = store.get
|
|
87
|
+
const clusterValues = store.get.get(clusterId.toString());
|
|
88
88
|
if (clusterValues === void 0) {
|
|
89
89
|
return [];
|
|
90
90
|
}
|
|
@@ -132,7 +132,7 @@ class CachedClientNodeStore extends PeerDataStore {
|
|
|
132
132
|
}
|
|
133
133
|
getClusterDataVersion(endpointId, clusterId) {
|
|
134
134
|
const store = this.#storeForEndpoint(endpointId);
|
|
135
|
-
const clusterValues = store.get
|
|
135
|
+
const clusterValues = store.get.get(clusterId.toString());
|
|
136
136
|
return clusterValues?.[VERSION_KEY];
|
|
137
137
|
}
|
|
138
138
|
getClusterDataVersions(filterEndpointId, filterClusterId) {
|
|
@@ -147,7 +147,7 @@ class CachedClientNodeStore extends PeerDataStore {
|
|
|
147
147
|
if (filterClusterIdStr !== void 0 && clusterId !== filterClusterIdStr) {
|
|
148
148
|
continue;
|
|
149
149
|
}
|
|
150
|
-
const version = endpointData
|
|
150
|
+
const version = endpointData.get(clusterId.toString())[VERSION_KEY];
|
|
151
151
|
if (typeof version === "number") {
|
|
152
152
|
versions.push({ endpointId, clusterId: ClusterId(parseInt(clusterId)), dataVersion: version });
|
|
153
153
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/device/CachedClientNodeStore.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,cAAc,cAAc;AACrC,SAAsC,qBAA0B;AAChE,SAAS,aAAa,WAAW,gBAAgB,mBAAmB;AACpE,SAAS,2BAA2B;AAEpC,MAAM,SAAS,OAAO,IAAI,uBAAuB;AAEjD,MAAM,cAAc;AACpB,MAAM,uBAAuB;AAOtB,MAAM,8BAA8B,cAAc;AAAA,EACrD;AAAA,EACA;AAAA,EACA,kBAAkB,oBAAI,IAAyC;AAAA,EAC/D,kBAA+B,YAAY,CAAC;AAAA,EAE5C,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,YAAY,SAAyB,OAAO,MAAM;AAC9C,UAAM;AACN,SAAK,WAAW;AAEhB,SAAK,gBAAgB,aAAa,MAAM,YAAY;AAChD,UAAI,CAAC,MAAM;AACP;AAAA,MACJ;AACA,WAAK,kBAAkB,MAAM,KAAK,SAAS,IAAI,sBAAsB,YAAY,CAAC,CAAC;AAGnF,YAAM,aAAa,MAAM,KAAK,SAAS,SAAS;AAChD,iBAAW,UAAU,YAAY;AAC7B,cAAM,KAAK,mBAAmB,MAAM;AAAA,MACxC;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,mBAAmB,QAAgB;AACrC,UAAM,iBAAiB,eAAe,SAAS,MAAM,CAAC;AACtD,UAAM,gBAAgB,IAAI,oBAAoB,KAAK,SAAS,cAAc,MAAM,CAAC;AACjF,SAAK,gBAAgB,IAAI,gBAAgB,aAAa;AACtD,UAAM,cAAc;AAAA,EACxB;AAAA,EAEA,kBAAkB,YAAiD;AAC/D,SAAK,cAAc,OAAO;AAE1B,UAAM,gBAAgB,KAAK,gBAAgB,IAAI,UAAU;AACzD,QAAI,kBAAkB,QAAW;AAC7B,aAAO;AAAA,IACX;AAEA,UAAM,QAAQ,IAAI,oBAAoB,KAAK,SAAS,cAAc,WAAW,SAAS,CAAC,GAAG,KAAK;AAC/F,SAAK,gBAAgB,IAAI,YAAY,KAAK;AAE1C,WAAO;AAAA,EACX;AAAA,EAEA,IAAI,iBAAiB;AACjB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,sBAAsB,aAA0B;AAC5C,SAAK,kBAAkB;AACvB,WAAO,KAAK,SAAS,IAAI,sBAAsB,WAAW;AAAA,EAC9D;AAAA,EAEA,kBACI,YACA,WACA,aAC4C;AAC5C,UAAM,QAAQ,KAAK,kBAAkB,UAAU;AAC/C,UAAM,gBAAgB,MAAM,IAAI,SAAS;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -15,7 +15,7 @@ export declare class ClientEndpointStore extends ServerEndpointStore {
|
|
|
15
15
|
#private;
|
|
16
16
|
constructor(storage: StorageContext, load?: boolean);
|
|
17
17
|
get construction(): Construction<ServerEndpointStore>;
|
|
18
|
-
get get():
|
|
18
|
+
get get(): Map<string, Val.Struct>;
|
|
19
19
|
set(values: Record<string, undefined | Val.Struct>): Promise<void>;
|
|
20
20
|
}
|
|
21
21
|
//# sourceMappingURL=ClientEndpointStore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientEndpointStore.d.ts","sourceRoot":"","sources":["../../../src/device/ClientEndpointStore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAe,cAAc,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC;;;;GAIG;AACH,qBAAa,mBAAoB,SAAQ,mBAAmB;;gBAI5C,OAAO,EAAE,cAAc,EAAE,IAAI,UAAO;IAchD,IAAI,YAAY,sCAEf;IAED,IAAI,GAAG
|
|
1
|
+
{"version":3,"file":"ClientEndpointStore.d.ts","sourceRoot":"","sources":["../../../src/device/ClientEndpointStore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAe,cAAc,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC;;;;GAIG;AACH,qBAAa,mBAAoB,SAAQ,mBAAmB;;gBAI5C,OAAO,EAAE,cAAc,EAAE,IAAI,UAAO;IAchD,IAAI,YAAY,sCAEf;IAED,IAAI,GAAG,4BAEN;IAEc,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;CA6BpE"}
|
|
@@ -7,14 +7,14 @@ import { Construction, isDeepEqual } from "#general";
|
|
|
7
7
|
import { ServerEndpointStore } from "#node";
|
|
8
8
|
class ClientEndpointStore extends ServerEndpointStore {
|
|
9
9
|
#construction;
|
|
10
|
-
#values =
|
|
10
|
+
#values = /* @__PURE__ */ new Map();
|
|
11
11
|
constructor(storage, load = true) {
|
|
12
12
|
super(storage);
|
|
13
13
|
this.#construction = Construction(this, async () => {
|
|
14
14
|
if (load) {
|
|
15
15
|
await this.load();
|
|
16
16
|
this.#values = this.initialValues;
|
|
17
|
-
this.initialValues =
|
|
17
|
+
this.initialValues = /* @__PURE__ */ new Map();
|
|
18
18
|
}
|
|
19
19
|
});
|
|
20
20
|
}
|
|
@@ -29,19 +29,20 @@ class ClientEndpointStore extends ServerEndpointStore {
|
|
|
29
29
|
for (const behaviorId in values) {
|
|
30
30
|
const behaviorValues = values[behaviorId];
|
|
31
31
|
if (behaviorValues === void 0) {
|
|
32
|
-
|
|
32
|
+
this.#values.delete(behaviorId);
|
|
33
33
|
} else {
|
|
34
34
|
for (const key in behaviorValues) {
|
|
35
35
|
const value = behaviorValues[key];
|
|
36
36
|
if (value === void 0) {
|
|
37
|
-
delete this.#values
|
|
37
|
+
delete this.#values.get(behaviorId)?.[key];
|
|
38
38
|
} else {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
let vals = this.#values.get(behaviorId);
|
|
40
|
+
if (!vals) {
|
|
41
|
+
this.#values.set(behaviorId, vals = {});
|
|
42
|
+
} else if (isDeepEqual(vals[key], value)) {
|
|
42
43
|
delete behaviorValues[key];
|
|
43
44
|
}
|
|
44
|
-
|
|
45
|
+
vals[key] = value;
|
|
45
46
|
}
|
|
46
47
|
}
|
|
47
48
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/device/ClientEndpointStore.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,cAAc,mBAAmC;AAC1D,SAAS,2BAA2B;AAQ7B,MAAM,4BAA4B,oBAAoB;AAAA,EAChD;AAAA,EACT,
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,cAAc,mBAAmC;AAC1D,SAAS,2BAA2B;AAQ7B,MAAM,4BAA4B,oBAAoB;AAAA,EAChD;AAAA,EACT,UAAU,oBAAI,IAAwB;AAAA,EAEtC,YAAY,SAAyB,OAAO,MAAM;AAC9C,UAAM,OAAO;AAEb,SAAK,gBAAgB,aAAa,MAAM,YAAY;AAChD,UAAI,MAAM;AACN,cAAM,KAAK,KAAK;AAGhB,aAAK,UAAU,KAAK;AACpB,aAAK,gBAAgB,oBAAI,IAAI;AAAA,MACjC;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,MAAM;AACN,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAe,IAAI,QAAgD;AAC/D,UAAM,KAAK;AAGX,eAAW,cAAc,QAAQ;AAC7B,YAAM,iBAAiB,OAAO,UAAU;AACxC,UAAI,mBAAmB,QAAW;AAC9B,aAAK,QAAQ,OAAO,UAAU;AAAA,MAClC,OAAO;AACH,mBAAW,OAAO,gBAAgB;AAC9B,gBAAM,QAAQ,eAAe,GAAG;AAChC,cAAI,UAAU,QAAW;AACrB,mBAAO,KAAK,QAAQ,IAAI,UAAU,IAAI,GAAG;AAAA,UAC7C,OAAO;AACH,gBAAI,OAAO,KAAK,QAAQ,IAAI,UAAU;AACtC,gBAAI,CAAC,MAAM;AACP,mBAAK,QAAQ,IAAI,YAAa,OAAO,CAAC,CAAE;AAAA,YAC5C,WAAW,YAAY,KAAK,GAAG,GAAG,KAAK,GAAG;AACtC,qBAAO,eAAe,GAAG;AAAA,YAC7B;AACA,iBAAK,GAAG,IAAI;AAAA,UAChB;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAGA,UAAM,MAAM,IAAI,MAAM;AAAA,EAC1B;AACJ;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@project-chip/matter.js",
|
|
3
|
-
"version": "0.15.2-alpha.0-
|
|
3
|
+
"version": "0.15.2-alpha.0-20250719-e4aeb457c",
|
|
4
4
|
"description": "Matter protocol in pure js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -44,15 +44,15 @@
|
|
|
44
44
|
"#*": "./src/*"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@matter/general": "0.15.2-alpha.0-
|
|
48
|
-
"@matter/model": "0.15.2-alpha.0-
|
|
49
|
-
"@matter/node": "0.15.2-alpha.0-
|
|
50
|
-
"@matter/protocol": "0.15.2-alpha.0-
|
|
51
|
-
"@matter/types": "0.15.2-alpha.0-
|
|
47
|
+
"@matter/general": "0.15.2-alpha.0-20250719-e4aeb457c",
|
|
48
|
+
"@matter/model": "0.15.2-alpha.0-20250719-e4aeb457c",
|
|
49
|
+
"@matter/node": "0.15.2-alpha.0-20250719-e4aeb457c",
|
|
50
|
+
"@matter/protocol": "0.15.2-alpha.0-20250719-e4aeb457c",
|
|
51
|
+
"@matter/types": "0.15.2-alpha.0-20250719-e4aeb457c"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@matter/tools": "0.15.2-alpha.0-
|
|
55
|
-
"@matter/testing": "0.15.2-alpha.0-
|
|
54
|
+
"@matter/tools": "0.15.2-alpha.0-20250719-e4aeb457c",
|
|
55
|
+
"@matter/testing": "0.15.2-alpha.0-20250719-e4aeb457c"
|
|
56
56
|
},
|
|
57
57
|
"files": [
|
|
58
58
|
"dist/**/*",
|
|
@@ -84,7 +84,7 @@ export class CachedClientNodeStore extends PeerDataStore {
|
|
|
84
84
|
attributeId: AttributeId,
|
|
85
85
|
): DecodedAttributeReportValue<any> | undefined {
|
|
86
86
|
const store = this.#storeForEndpoint(endpointId);
|
|
87
|
-
const clusterValues = store.get
|
|
87
|
+
const clusterValues = store.get.get(clusterId.toString());
|
|
88
88
|
if (clusterValues === undefined) {
|
|
89
89
|
return undefined;
|
|
90
90
|
}
|
|
@@ -112,7 +112,7 @@ export class CachedClientNodeStore extends PeerDataStore {
|
|
|
112
112
|
|
|
113
113
|
retrieveAttributes(endpointId: EndpointNumber, clusterId: ClusterId): DecodedAttributeReportValue<any>[] {
|
|
114
114
|
const store = this.#storeForEndpoint(endpointId);
|
|
115
|
-
const clusterValues = store.get
|
|
115
|
+
const clusterValues = store.get.get(clusterId.toString());
|
|
116
116
|
if (clusterValues === undefined) {
|
|
117
117
|
return [];
|
|
118
118
|
}
|
|
@@ -166,7 +166,7 @@ export class CachedClientNodeStore extends PeerDataStore {
|
|
|
166
166
|
|
|
167
167
|
getClusterDataVersion(endpointId: EndpointNumber, clusterId: ClusterId): number | undefined {
|
|
168
168
|
const store = this.#storeForEndpoint(endpointId);
|
|
169
|
-
const clusterValues = store.get
|
|
169
|
+
const clusterValues = store.get.get(clusterId.toString());
|
|
170
170
|
return clusterValues?.[VERSION_KEY] as number | undefined;
|
|
171
171
|
}
|
|
172
172
|
|
|
@@ -185,7 +185,7 @@ export class CachedClientNodeStore extends PeerDataStore {
|
|
|
185
185
|
if (filterClusterIdStr !== undefined && clusterId !== filterClusterIdStr) {
|
|
186
186
|
continue;
|
|
187
187
|
}
|
|
188
|
-
const version = endpointData
|
|
188
|
+
const version = endpointData.get(clusterId.toString())![VERSION_KEY];
|
|
189
189
|
if (typeof version === "number") {
|
|
190
190
|
versions.push({ endpointId, clusterId: ClusterId(parseInt(clusterId)), dataVersion: version });
|
|
191
191
|
}
|
|
@@ -15,7 +15,7 @@ import { Val } from "@matter/protocol";
|
|
|
15
15
|
*/
|
|
16
16
|
export class ClientEndpointStore extends ServerEndpointStore {
|
|
17
17
|
readonly #construction: Construction<ServerEndpointStore>;
|
|
18
|
-
#values
|
|
18
|
+
#values = new Map<string, Val.Struct>();
|
|
19
19
|
|
|
20
20
|
constructor(storage: StorageContext, load = true) {
|
|
21
21
|
super(storage);
|
|
@@ -26,7 +26,7 @@ export class ClientEndpointStore extends ServerEndpointStore {
|
|
|
26
26
|
|
|
27
27
|
// Copy over initial values from the superclass
|
|
28
28
|
this.#values = this.initialValues;
|
|
29
|
-
this.initialValues =
|
|
29
|
+
this.initialValues = new Map();
|
|
30
30
|
}
|
|
31
31
|
});
|
|
32
32
|
}
|
|
@@ -46,19 +46,20 @@ export class ClientEndpointStore extends ServerEndpointStore {
|
|
|
46
46
|
for (const behaviorId in values) {
|
|
47
47
|
const behaviorValues = values[behaviorId];
|
|
48
48
|
if (behaviorValues === undefined) {
|
|
49
|
-
|
|
49
|
+
this.#values.delete(behaviorId);
|
|
50
50
|
} else {
|
|
51
51
|
for (const key in behaviorValues) {
|
|
52
52
|
const value = behaviorValues[key];
|
|
53
53
|
if (value === undefined) {
|
|
54
|
-
delete this.#values
|
|
54
|
+
delete this.#values.get(behaviorId)?.[key];
|
|
55
55
|
} else {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
let vals = this.#values.get(behaviorId);
|
|
57
|
+
if (!vals) {
|
|
58
|
+
this.#values.set(behaviorId, (vals = {}));
|
|
59
|
+
} else if (isDeepEqual(vals[key], value)) {
|
|
59
60
|
delete behaviorValues[key];
|
|
60
61
|
}
|
|
61
|
-
|
|
62
|
+
vals[key] = value;
|
|
62
63
|
}
|
|
63
64
|
}
|
|
64
65
|
}
|