@matter/nodejs 0.11.2 → 0.11.3-alpha.0-20241106-39bacbc00
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/storage/StorageBackendDiskAsync.d.ts +1 -1
- package/dist/cjs/storage/StorageBackendDiskAsync.d.ts.map +1 -1
- package/dist/cjs/storage/StorageBackendDiskAsync.js +22 -4
- package/dist/cjs/storage/StorageBackendDiskAsync.js.map +1 -1
- package/dist/esm/storage/StorageBackendDiskAsync.d.ts +1 -1
- package/dist/esm/storage/StorageBackendDiskAsync.d.ts.map +1 -1
- package/dist/esm/storage/StorageBackendDiskAsync.js +22 -4
- package/dist/esm/storage/StorageBackendDiskAsync.js.map +1 -1
- package/package.json +10 -10
- package/src/storage/StorageBackendDiskAsync.ts +24 -4
|
@@ -10,7 +10,7 @@ export declare class StorageBackendDiskAsync extends MaybeAsyncStorage {
|
|
|
10
10
|
constructor(path: string, clear?: boolean);
|
|
11
11
|
get initialized(): boolean;
|
|
12
12
|
initialize(): Promise<void>;
|
|
13
|
-
close(): void
|
|
13
|
+
close(): Promise<void>;
|
|
14
14
|
filePath(fileName: string): string;
|
|
15
15
|
clear(): Promise<void>;
|
|
16
16
|
getContextBaseKey(contexts: string[], allowEmptyContext?: boolean): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageBackendDiskAsync.d.ts","sourceRoot":"","sources":["../../../src/storage/StorageBackendDiskAsync.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAIH,iBAAiB,EAEjB,qBAAqB,EAExB,MAAM,UAAU,CAAC;AAMlB,qBAAa,uBAAwB,SAAQ,iBAAiB;;IAG1D,SAAS,CAAC,aAAa,UAAS;gBAGpB,IAAI,EAAE,MAAM,EAAE,KAAK,UAAQ;IAMvC,IAAI,WAAW,YAEd;IAEK,UAAU;
|
|
1
|
+
{"version":3,"file":"StorageBackendDiskAsync.d.ts","sourceRoot":"","sources":["../../../src/storage/StorageBackendDiskAsync.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAIH,iBAAiB,EAEjB,qBAAqB,EAExB,MAAM,UAAU,CAAC;AAMlB,qBAAa,uBAAwB,SAAQ,iBAAiB;;IAG1D,SAAS,CAAC,aAAa,UAAS;gBAGpB,IAAI,EAAE,MAAM,EAAE,KAAK,UAAQ;IAMvC,IAAI,WAAW,YAEd;IAEK,UAAU;IAoBV,KAAK;IAKX,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAInB,KAAK;IAMX,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,iBAAiB,UAAQ;IAY/D,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM;IAQzC,GAAG,CAAC,CAAC,SAAS,qBAAqB,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAenG,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IACjF,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAwC/E,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM;IAM5C,yEAAyE;IACnE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE;IAgBvB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE;IAmBzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE;IAqB3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE;CAepC"}
|
|
@@ -50,13 +50,25 @@ class StorageBackendDiskAsync extends import_general.MaybeAsyncStorage {
|
|
|
50
50
|
await (0, import_promises.mkdir)(this.#path, { recursive: true });
|
|
51
51
|
this.isInitialized = true;
|
|
52
52
|
}
|
|
53
|
-
|
|
53
|
+
async #finishAllWrites(filename) {
|
|
54
|
+
for (let i = 0; i < 10; i++) {
|
|
55
|
+
await Promise.allSettled(
|
|
56
|
+
filename !== void 0 ? [this.#writeFileBlocker.get(filename)] : this.#writeFileBlocker.values()
|
|
57
|
+
);
|
|
58
|
+
if (!this.#writeFileBlocker.size) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
async close() {
|
|
54
64
|
this.isInitialized = false;
|
|
65
|
+
await this.#finishAllWrites();
|
|
55
66
|
}
|
|
56
67
|
filePath(fileName) {
|
|
57
68
|
return (0, import_path.join)(this.#path, fileName);
|
|
58
69
|
}
|
|
59
70
|
async clear() {
|
|
71
|
+
await this.#finishAllWrites();
|
|
60
72
|
await (0, import_promises.rm)(this.#path, { recursive: true, force: true });
|
|
61
73
|
await (0, import_promises.mkdir)(this.#path, { recursive: true });
|
|
62
74
|
}
|
|
@@ -115,8 +127,10 @@ class StorageBackendDiskAsync extends import_general.MaybeAsyncStorage {
|
|
|
115
127
|
});
|
|
116
128
|
return promise;
|
|
117
129
|
}
|
|
118
|
-
delete(contexts, key) {
|
|
119
|
-
|
|
130
|
+
async delete(contexts, key) {
|
|
131
|
+
const filename = this.buildStorageKey(contexts, key);
|
|
132
|
+
await this.#finishAllWrites(filename);
|
|
133
|
+
return (0, import_promises.rm)(this.filePath(filename), { force: true });
|
|
120
134
|
}
|
|
121
135
|
/** Returns all keys of a storage context without keys of sub-contexts */
|
|
122
136
|
async keys(contexts) {
|
|
@@ -138,7 +152,10 @@ class StorageBackendDiskAsync extends import_general.MaybeAsyncStorage {
|
|
|
138
152
|
for (const key of await this.keys(contexts)) {
|
|
139
153
|
promises.push(
|
|
140
154
|
(async () => {
|
|
141
|
-
|
|
155
|
+
const value = await this.get(contexts, key);
|
|
156
|
+
if (value !== void 0) {
|
|
157
|
+
values[key] = value;
|
|
158
|
+
}
|
|
142
159
|
})()
|
|
143
160
|
);
|
|
144
161
|
}
|
|
@@ -164,6 +181,7 @@ class StorageBackendDiskAsync extends import_general.MaybeAsyncStorage {
|
|
|
164
181
|
return foundContexts;
|
|
165
182
|
}
|
|
166
183
|
async clearAll(contexts) {
|
|
184
|
+
await this.#finishAllWrites();
|
|
167
185
|
const contextKey = this.getContextBaseKey(contexts, true);
|
|
168
186
|
const startContextKey = contextKey.length ? `${contextKey}.` : "";
|
|
169
187
|
const files = await (0, import_promises.readdir)(this.#path);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/storage/StorageBackendDiskAsync.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAQO;AACP,sBAAwD;AACxD,kBAAqB;AAhBrB;AAAA;AAAA;AAAA;AAAA;AAkBA,MAAM,SAAS,IAAI,sBAAO,yBAAyB;AAE5C,MAAM,gCAAgC,iCAAkB;AAAA,EAClD;AAAA,EACA;AAAA,EACC,gBAAgB;AAAA,EAC1B,oBAAoB,oBAAI,IAA2B;AAAA,EAEnD,YAAY,MAAc,QAAQ,OAAO;AACrC,UAAM;AACN,SAAK,QAAQ;AACb,SAAK,SAAS;AAAA,EAClB;AAAA,EAEA,IAAI,cAAc;AACd,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,aAAa;AACf,QAAI,KAAK,QAAQ;AACb,YAAM,KAAK,MAAM;AAAA,IACrB;AACA,cAAM,uBAAM,KAAK,OAAO,EAAE,WAAW,KAAK,CAAC;AAC3C,SAAK,gBAAgB;AAAA,EACzB;AAAA,EAEA,QAAQ;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["value"]
|
|
6
6
|
}
|
|
@@ -10,7 +10,7 @@ export declare class StorageBackendDiskAsync extends MaybeAsyncStorage {
|
|
|
10
10
|
constructor(path: string, clear?: boolean);
|
|
11
11
|
get initialized(): boolean;
|
|
12
12
|
initialize(): Promise<void>;
|
|
13
|
-
close(): void
|
|
13
|
+
close(): Promise<void>;
|
|
14
14
|
filePath(fileName: string): string;
|
|
15
15
|
clear(): Promise<void>;
|
|
16
16
|
getContextBaseKey(contexts: string[], allowEmptyContext?: boolean): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageBackendDiskAsync.d.ts","sourceRoot":"","sources":["../../../src/storage/StorageBackendDiskAsync.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAIH,iBAAiB,EAEjB,qBAAqB,EAExB,MAAM,UAAU,CAAC;AAMlB,qBAAa,uBAAwB,SAAQ,iBAAiB;;IAG1D,SAAS,CAAC,aAAa,UAAS;gBAGpB,IAAI,EAAE,MAAM,EAAE,KAAK,UAAQ;IAMvC,IAAI,WAAW,YAEd;IAEK,UAAU;
|
|
1
|
+
{"version":3,"file":"StorageBackendDiskAsync.d.ts","sourceRoot":"","sources":["../../../src/storage/StorageBackendDiskAsync.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAIH,iBAAiB,EAEjB,qBAAqB,EAExB,MAAM,UAAU,CAAC;AAMlB,qBAAa,uBAAwB,SAAQ,iBAAiB;;IAG1D,SAAS,CAAC,aAAa,UAAS;gBAGpB,IAAI,EAAE,MAAM,EAAE,KAAK,UAAQ;IAMvC,IAAI,WAAW,YAEd;IAEK,UAAU;IAoBV,KAAK;IAKX,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAInB,KAAK;IAMX,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,iBAAiB,UAAQ;IAY/D,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM;IAQzC,GAAG,CAAC,CAAC,SAAS,qBAAqB,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAenG,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IACjF,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAwC/E,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM;IAM5C,yEAAyE;IACnE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE;IAgBvB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE;IAmBzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE;IAqB3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE;CAepC"}
|
|
@@ -34,13 +34,25 @@ class StorageBackendDiskAsync extends MaybeAsyncStorage {
|
|
|
34
34
|
await mkdir(this.#path, { recursive: true });
|
|
35
35
|
this.isInitialized = true;
|
|
36
36
|
}
|
|
37
|
-
|
|
37
|
+
async #finishAllWrites(filename) {
|
|
38
|
+
for (let i = 0; i < 10; i++) {
|
|
39
|
+
await Promise.allSettled(
|
|
40
|
+
filename !== void 0 ? [this.#writeFileBlocker.get(filename)] : this.#writeFileBlocker.values()
|
|
41
|
+
);
|
|
42
|
+
if (!this.#writeFileBlocker.size) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
async close() {
|
|
38
48
|
this.isInitialized = false;
|
|
49
|
+
await this.#finishAllWrites();
|
|
39
50
|
}
|
|
40
51
|
filePath(fileName) {
|
|
41
52
|
return join(this.#path, fileName);
|
|
42
53
|
}
|
|
43
54
|
async clear() {
|
|
55
|
+
await this.#finishAllWrites();
|
|
44
56
|
await rm(this.#path, { recursive: true, force: true });
|
|
45
57
|
await mkdir(this.#path, { recursive: true });
|
|
46
58
|
}
|
|
@@ -99,8 +111,10 @@ class StorageBackendDiskAsync extends MaybeAsyncStorage {
|
|
|
99
111
|
});
|
|
100
112
|
return promise;
|
|
101
113
|
}
|
|
102
|
-
delete(contexts, key) {
|
|
103
|
-
|
|
114
|
+
async delete(contexts, key) {
|
|
115
|
+
const filename = this.buildStorageKey(contexts, key);
|
|
116
|
+
await this.#finishAllWrites(filename);
|
|
117
|
+
return rm(this.filePath(filename), { force: true });
|
|
104
118
|
}
|
|
105
119
|
/** Returns all keys of a storage context without keys of sub-contexts */
|
|
106
120
|
async keys(contexts) {
|
|
@@ -122,7 +136,10 @@ class StorageBackendDiskAsync extends MaybeAsyncStorage {
|
|
|
122
136
|
for (const key of await this.keys(contexts)) {
|
|
123
137
|
promises.push(
|
|
124
138
|
(async () => {
|
|
125
|
-
|
|
139
|
+
const value = await this.get(contexts, key);
|
|
140
|
+
if (value !== void 0) {
|
|
141
|
+
values[key] = value;
|
|
142
|
+
}
|
|
126
143
|
})()
|
|
127
144
|
);
|
|
128
145
|
}
|
|
@@ -148,6 +165,7 @@ class StorageBackendDiskAsync extends MaybeAsyncStorage {
|
|
|
148
165
|
return foundContexts;
|
|
149
166
|
}
|
|
150
167
|
async clearAll(contexts) {
|
|
168
|
+
await this.#finishAllWrites();
|
|
151
169
|
const contextKey = this.getContextBaseKey(contexts, true);
|
|
152
170
|
const startContextKey = contextKey.length ? `${contextKey}.` : "";
|
|
153
171
|
const files = await readdir(this.#path);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/storage/StorageBackendDiskAsync.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,OACG;AACP,SAAS,OAAO,SAAS,UAAU,IAAI,iBAAiB;AACxD,SAAS,YAAY;AAErB,MAAM,SAAS,IAAI,OAAO,yBAAyB;AAE5C,MAAM,gCAAgC,kBAAkB;AAAA,EAClD;AAAA,EACA;AAAA,EACC,gBAAgB;AAAA,EAC1B,oBAAoB,oBAAI,IAA2B;AAAA,EAEnD,YAAY,MAAc,QAAQ,OAAO;AACrC,UAAM;AACN,SAAK,QAAQ;AACb,SAAK,SAAS;AAAA,EAClB;AAAA,EAEA,IAAI,cAAc;AACd,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,aAAa;AACf,QAAI,KAAK,QAAQ;AACb,YAAM,KAAK,MAAM;AAAA,IACrB;AACA,UAAM,MAAM,KAAK,OAAO,EAAE,WAAW,KAAK,CAAC;AAC3C,SAAK,gBAAgB;AAAA,EACzB;AAAA,EAEA,QAAQ;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["value"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/nodejs",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.3-alpha.0-20241106-39bacbc00",
|
|
4
4
|
"description": "Node.js platform support for matter.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -44,18 +44,18 @@
|
|
|
44
44
|
"#*": "./src/*"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@matter/general": "0.11.
|
|
48
|
-
"@matter/node": "0.11.
|
|
49
|
-
"@matter/protocol": "0.11.
|
|
50
|
-
"@matter/types": "0.11.
|
|
47
|
+
"@matter/general": "0.11.3-alpha.0-20241106-39bacbc00",
|
|
48
|
+
"@matter/node": "0.11.3-alpha.0-20241106-39bacbc00",
|
|
49
|
+
"@matter/protocol": "0.11.3-alpha.0-20241106-39bacbc00",
|
|
50
|
+
"@matter/types": "0.11.3-alpha.0-20241106-39bacbc00",
|
|
51
51
|
"node-localstorage": "^3.0.5"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@matter/model": "0.11.
|
|
55
|
-
"@matter/protocol": "0.11.
|
|
56
|
-
"@matter/tools": "0.11.
|
|
57
|
-
"@matter/testing": "0.11.
|
|
58
|
-
"@project-chip/matter.js": "0.11.
|
|
54
|
+
"@matter/model": "0.11.3-alpha.0-20241106-39bacbc00",
|
|
55
|
+
"@matter/protocol": "0.11.3-alpha.0-20241106-39bacbc00",
|
|
56
|
+
"@matter/tools": "0.11.3-alpha.0-20241106-39bacbc00",
|
|
57
|
+
"@matter/testing": "0.11.3-alpha.0-20241106-39bacbc00",
|
|
58
|
+
"@project-chip/matter.js": "0.11.3-alpha.0-20241106-39bacbc00",
|
|
59
59
|
"@types/bytebuffer": "^5.0.49",
|
|
60
60
|
"@types/node-localstorage": "^1.3.3"
|
|
61
61
|
},
|
|
@@ -42,8 +42,21 @@ export class StorageBackendDiskAsync extends MaybeAsyncStorage {
|
|
|
42
42
|
this.isInitialized = true;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
async #finishAllWrites(filename?: string) {
|
|
46
|
+
// Let's try max up to 10 times to finish all writes out there, otherwise something is strange
|
|
47
|
+
for (let i = 0; i < 10; i++) {
|
|
48
|
+
await Promise.allSettled(
|
|
49
|
+
filename !== undefined ? [this.#writeFileBlocker.get(filename)] : this.#writeFileBlocker.values(),
|
|
50
|
+
);
|
|
51
|
+
if (!this.#writeFileBlocker.size) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
async close() {
|
|
46
58
|
this.isInitialized = false;
|
|
59
|
+
await this.#finishAllWrites();
|
|
47
60
|
}
|
|
48
61
|
|
|
49
62
|
filePath(fileName: string) {
|
|
@@ -51,6 +64,7 @@ export class StorageBackendDiskAsync extends MaybeAsyncStorage {
|
|
|
51
64
|
}
|
|
52
65
|
|
|
53
66
|
async clear() {
|
|
67
|
+
await this.#finishAllWrites();
|
|
54
68
|
await rm(this.#path, { recursive: true, force: true });
|
|
55
69
|
await mkdir(this.#path, { recursive: true });
|
|
56
70
|
}
|
|
@@ -131,8 +145,10 @@ export class StorageBackendDiskAsync extends MaybeAsyncStorage {
|
|
|
131
145
|
return promise;
|
|
132
146
|
}
|
|
133
147
|
|
|
134
|
-
delete(contexts: string[], key: string) {
|
|
135
|
-
|
|
148
|
+
async delete(contexts: string[], key: string) {
|
|
149
|
+
const filename = this.buildStorageKey(contexts, key);
|
|
150
|
+
await this.#finishAllWrites(filename);
|
|
151
|
+
return rm(this.filePath(filename), { force: true });
|
|
136
152
|
}
|
|
137
153
|
|
|
138
154
|
/** Returns all keys of a storage context without keys of sub-contexts */
|
|
@@ -160,7 +176,10 @@ export class StorageBackendDiskAsync extends MaybeAsyncStorage {
|
|
|
160
176
|
for (const key of await this.keys(contexts)) {
|
|
161
177
|
promises.push(
|
|
162
178
|
(async () => {
|
|
163
|
-
|
|
179
|
+
const value = await this.get(contexts, key);
|
|
180
|
+
if (value !== undefined) {
|
|
181
|
+
values[key] = value;
|
|
182
|
+
}
|
|
164
183
|
})(),
|
|
165
184
|
);
|
|
166
185
|
}
|
|
@@ -190,6 +209,7 @@ export class StorageBackendDiskAsync extends MaybeAsyncStorage {
|
|
|
190
209
|
}
|
|
191
210
|
|
|
192
211
|
async clearAll(contexts: string[]) {
|
|
212
|
+
await this.#finishAllWrites();
|
|
193
213
|
const contextKey = this.getContextBaseKey(contexts, true);
|
|
194
214
|
const startContextKey = contextKey.length ? `${contextKey}.` : "";
|
|
195
215
|
|