@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.
@@ -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;IAQhB,KAAK;IAIL,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAInB,KAAK;IAKX,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;IAwCrF,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM;IAItC,yEAAyE;IACnE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE;IAgBvB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE;IAgBzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE;IAqB3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE;CAcpC"}
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
- close() {
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
- return (0, import_promises.rm)(this.filePath(this.buildStorageKey(contexts, key)), { force: true });
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
- values[key] = await this.get(contexts, key);
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;AACJ,SAAK,gBAAgB;AAAA,EACzB;AAAA,EAEA,SAAS,UAAkB;AACvB,eAAO,kBAAK,KAAK,OAAO,QAAQ;AAAA,EACpC;AAAA,EAEA,MAAM,QAAQ;AACV,cAAM,oBAAG,KAAK,OAAO,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC;AACrD,cAAM,uBAAM,KAAK,OAAO,EAAE,WAAW,KAAK,CAAC;AAAA,EAC/C;AAAA,EAEA,kBAAkB,UAAoB,oBAAoB,OAAO;AAC7D,UAAM,aAAa,SAAS,KAAK,GAAG;AACpC,QACK,CAAC,WAAW,UAAU,CAAC,qBACxB,WAAW,SAAS,IAAI,KACxB,WAAW,WAAW,GAAG,KACzB,WAAW,SAAS,GAAG;AAEvB,YAAM,IAAI,4BAAa,oDAAoD;AAC/E,WAAO;AAAA,EACX;AAAA,EAEA,gBAAgB,UAAoB,KAAa;AAC7C,QAAI,CAAC,IAAI,QAAQ;AACb,YAAM,IAAI,4BAAa,kCAAkC;AAAA,IAC7D;AACA,UAAM,aAAa,KAAK,kBAAkB,QAAQ;AAClD,WAAO,GAAG,UAAU,IAAI,GAAG;AAAA,EAC/B;AAAA,EAEA,MAAM,IAAqC,UAAoB,KAAqC;AAChG,QAAI;AACJ,QAAI;AACA,cAAQ,UAAM,0BAAS,KAAK,SAAS,KAAK,gBAAgB,UAAU,GAAG,CAAC,GAAG,MAAM;AAAA,IACrF,SAAS,OAAY;AACjB,UAAI,MAAM,SAAS,SAAU,QAAO;AACpC,YAAM;AAAA,IACV;AACA,QAAI;AACA,iBAAO,yBAAS,KAAK;AAAA,IACzB,SAAS,OAAO;AACZ,aAAO,MAAM,yCAAyC,GAAG,eAAe,SAAS,KAAK,GAAG,CAAC,EAAE;AAAA,IAChG;AAAA,EACJ;AAAA,EAIA,MAAM,IACF,UACA,aACA,OACF;AACE,QAAI,OAAO,gBAAgB,UAAU;AACjC,aAAO,KAAK,WAAW,KAAK,gBAAgB,UAAU,WAAW,OAAG,uBAAO,KAAK,CAAC;AAAA,IACrF;AAEA,UAAM,WAAW,IAAI,MAAqB;AAC1C,eAAW,CAAC,KAAKA,MAAK,KAAK,OAAO,QAAQ,WAAW,GAAG;AACpD,eAAS,KAAK,KAAK,WAAW,KAAK,gBAAgB,UAAU,GAAG,OAAG,uBAAOA,MAAK,CAAC,CAAC;AAAA,IACrF;AACA,UAAM,QAAQ,WAAW,QAAQ;AAAA,EACrC;AAAA;AAAA,EAGA,MAAM,WAAW,UAAkB,OAA8B;AAC7D,UAAM,UAAU,KAAK,kBAAkB,IAAI,QAAQ;AACnD,QAAI,YAAY,QAAW;AACvB,YAAM;AACN,aAAO,KAAK,WAAW,UAAU,KAAK;AAAA,IAC1C;AAEA,UAAM,EAAE,SAAS,UAAU,SAAS,QAAI,8BAAoB;AAE5D,SAAK,kBAAkB,IAAI,UAAU,OAAO;AAC5C,mCAAU,KAAK,SAAS,QAAQ,GAAG,OAAO,MAAM,EAC3C,KAAK,MAAM;AACR,WAAK,kBAAkB,OAAO,QAAQ;AACtC,eAAS;AAAA,IACb,CAAC,EACA,MAAM,MAAM;AACT,WAAK,kBAAkB,OAAO,QAAQ;AACtC,eAAS;AAAA,IACb,CAAC;AACL,WAAO;AAAA,EACX;AAAA,EAEA,OAAO,UAAoB,KAAa;AACpC,eAAO,oBAAG,KAAK,SAAS,KAAK,gBAAgB,UAAU,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,CAAC;AAAA,EACjF;AAAA;AAAA,EAGA,MAAM,KAAK,UAAoB;AAC3B,UAAM,aAAa,KAAK,kBAAkB,QAAQ;AAClD,UAAM,OAAO,CAAC;AACd,UAAM,kBAAkB,GAAG,UAAU;AACrC,UAAM,MAAM,gBAAgB;AAE5B,UAAM,QAAQ,UAAM,yBAAQ,KAAK,KAAK;AAEtC,eAAW,OAAO,OAAO;AACrB,UAAI,IAAI,WAAW,eAAe,KAAK,CAAC,IAAI,SAAS,KAAK,GAAG,GAAG;AAC5D,aAAK,KAAK,IAAI,UAAU,GAAG,CAAC;AAAA,MAChC;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,OAAO,UAAoB;AAE7B,UAAM,SAAS,CAAC;AAEhB,UAAM,WAAW,IAAI,MAAqB;AAC1C,eAAW,OAAO,MAAM,KAAK,KAAK,QAAQ,GAAG;AACzC,eAAS;AAAA,SACJ,YAAY;AACT,iBAAO,GAAG,IAAI,MAAM,KAAK,IAAI,UAAU,GAAG;AAAA,QAC9C,GAAG;AAAA,MACP;AAAA,IACJ;AACA,UAAM,QAAQ,IAAI,QAAQ;AAC1B,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,SAAS,UAAoB;AAC/B,UAAM,aAAa,KAAK,kBAAkB,UAAU,IAAI;AACxD,UAAM,kBAAkB,WAAW,SAAS,GAAG,UAAU,MAAM;AAC/D,UAAM,MAAM,gBAAgB;AAC5B,UAAM,gBAAgB,IAAI,MAAc;AAExC,UAAM,QAAQ,UAAM,yBAAQ,KAAK,KAAK;AAEtC,eAAW,OAAO,OAAO;AACrB,UAAI,IAAI,WAAW,eAAe,GAAG;AACjC,cAAM,UAAU,IAAI,UAAU,GAAG,EAAE,MAAM,GAAG;AAC5C,YAAI,QAAQ,WAAW,EAAG;AAC1B,cAAM,UAAU,QAAQ,CAAC;AACzB,YAAI,CAAC,cAAc,SAAS,OAAO,GAAG;AAClC,wBAAc,KAAK,OAAO;AAAA,QAC9B;AAAA,MACJ;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,SAAS,UAAoB;AAC/B,UAAM,aAAa,KAAK,kBAAkB,UAAU,IAAI;AACxD,UAAM,kBAAkB,WAAW,SAAS,GAAG,UAAU,MAAM;AAE/D,UAAM,QAAQ,UAAM,yBAAQ,KAAK,KAAK;AAEtC,UAAM,WAAW,IAAI,MAAqB;AAC1C,eAAW,OAAO,OAAO;AACrB,UAAI,IAAI,WAAW,eAAe,GAAG;AACjC,iBAAS,SAAK,oBAAG,KAAK,SAAS,GAAG,GAAG,EAAE,OAAO,KAAK,CAAC,CAAC;AAAA,MACzD;AAAA,IACJ;AACA,UAAM,QAAQ,IAAI,QAAQ;AAAA,EAC9B;AACJ;",
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;IAQhB,KAAK;IAIL,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAInB,KAAK;IAKX,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;IAwCrF,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM;IAItC,yEAAyE;IACnE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE;IAgBvB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE;IAgBzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE;IAqB3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE;CAcpC"}
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
- close() {
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
- return rm(this.filePath(this.buildStorageKey(contexts, key)), { force: true });
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
- values[key] = await this.get(contexts, key);
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": "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",
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.2",
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.2",
48
- "@matter/node": "0.11.2",
49
- "@matter/protocol": "0.11.2",
50
- "@matter/types": "0.11.2",
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.2",
55
- "@matter/protocol": "0.11.2",
56
- "@matter/tools": "0.11.2",
57
- "@matter/testing": "0.11.2",
58
- "@project-chip/matter.js": "0.11.2",
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
- close() {
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
- return rm(this.filePath(this.buildStorageKey(contexts, key)), { force: true });
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
- values[key] = await this.get(contexts, key);
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