@matter/nodejs 0.11.0-alpha.0-20241005-e3e4e4a7a

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 (197) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +1 -0
  3. package/dist/cjs/behavior/index.d.ts +7 -0
  4. package/dist/cjs/behavior/index.d.ts.map +1 -0
  5. package/dist/cjs/behavior/index.js +8 -0
  6. package/dist/cjs/behavior/index.js.map +6 -0
  7. package/dist/cjs/behavior/instrumentation.d.ts +11 -0
  8. package/dist/cjs/behavior/instrumentation.d.ts.map +1 -0
  9. package/dist/cjs/behavior/instrumentation.js +47 -0
  10. package/dist/cjs/behavior/instrumentation.js.map +6 -0
  11. package/dist/cjs/behavior/register.d.ts +7 -0
  12. package/dist/cjs/behavior/register.d.ts.map +1 -0
  13. package/dist/cjs/behavior/register.js +9 -0
  14. package/dist/cjs/behavior/register.js.map +6 -0
  15. package/dist/cjs/crypto/NodeJsCrypto.d.ts +29 -0
  16. package/dist/cjs/crypto/NodeJsCrypto.d.ts.map +1 -0
  17. package/dist/cjs/crypto/NodeJsCrypto.js +154 -0
  18. package/dist/cjs/crypto/NodeJsCrypto.js.map +6 -0
  19. package/dist/cjs/crypto/index.d.ts +8 -0
  20. package/dist/cjs/crypto/index.d.ts.map +1 -0
  21. package/dist/cjs/crypto/index.js +25 -0
  22. package/dist/cjs/crypto/index.js.map +6 -0
  23. package/dist/cjs/crypto/register.d.ts +7 -0
  24. package/dist/cjs/crypto/register.d.ts.map +1 -0
  25. package/dist/cjs/crypto/register.js +21 -0
  26. package/dist/cjs/crypto/register.js.map +6 -0
  27. package/dist/cjs/environment/NodeJsActionTracer.d.ts +15 -0
  28. package/dist/cjs/environment/NodeJsActionTracer.d.ts.map +1 -0
  29. package/dist/cjs/environment/NodeJsActionTracer.js +80 -0
  30. package/dist/cjs/environment/NodeJsActionTracer.js.map +6 -0
  31. package/dist/cjs/environment/NodeJsEnvironment.d.ts +55 -0
  32. package/dist/cjs/environment/NodeJsEnvironment.d.ts.map +1 -0
  33. package/dist/cjs/environment/NodeJsEnvironment.js +121 -0
  34. package/dist/cjs/environment/NodeJsEnvironment.js.map +6 -0
  35. package/dist/cjs/environment/ProcessManager.d.ts +45 -0
  36. package/dist/cjs/environment/ProcessManager.d.ts.map +1 -0
  37. package/dist/cjs/environment/ProcessManager.js +112 -0
  38. package/dist/cjs/environment/ProcessManager.js.map +6 -0
  39. package/dist/cjs/environment/index.d.ts +10 -0
  40. package/dist/cjs/environment/index.d.ts.map +1 -0
  41. package/dist/cjs/environment/index.js +27 -0
  42. package/dist/cjs/environment/index.js.map +6 -0
  43. package/dist/cjs/environment/register.d.ts +7 -0
  44. package/dist/cjs/environment/register.d.ts.map +1 -0
  45. package/dist/cjs/environment/register.js +10 -0
  46. package/dist/cjs/environment/register.js.map +6 -0
  47. package/dist/cjs/index.d.ts +12 -0
  48. package/dist/cjs/index.d.ts.map +1 -0
  49. package/dist/cjs/index.js +29 -0
  50. package/dist/cjs/index.js.map +6 -0
  51. package/dist/cjs/log/FileLogger.d.ts +13 -0
  52. package/dist/cjs/log/FileLogger.d.ts.map +1 -0
  53. package/dist/cjs/log/FileLogger.js +46 -0
  54. package/dist/cjs/log/FileLogger.js.map +6 -0
  55. package/dist/cjs/log/index.d.ts +7 -0
  56. package/dist/cjs/log/index.d.ts.map +1 -0
  57. package/dist/cjs/log/index.js +24 -0
  58. package/dist/cjs/log/index.js.map +6 -0
  59. package/dist/cjs/net/NodeJsNetwork.d.ts +27 -0
  60. package/dist/cjs/net/NodeJsNetwork.d.ts.map +1 -0
  61. package/dist/cjs/net/NodeJsNetwork.js +145 -0
  62. package/dist/cjs/net/NodeJsNetwork.js.map +6 -0
  63. package/dist/cjs/net/NodeJsUdpChannel.d.ts +23 -0
  64. package/dist/cjs/net/NodeJsUdpChannel.d.ts.map +1 -0
  65. package/dist/cjs/net/NodeJsUdpChannel.js +181 -0
  66. package/dist/cjs/net/NodeJsUdpChannel.js.map +6 -0
  67. package/dist/cjs/net/index.d.ts +9 -0
  68. package/dist/cjs/net/index.d.ts.map +1 -0
  69. package/dist/cjs/net/index.js +26 -0
  70. package/dist/cjs/net/index.js.map +6 -0
  71. package/dist/cjs/net/register.d.ts +7 -0
  72. package/dist/cjs/net/register.d.ts.map +1 -0
  73. package/dist/cjs/net/register.js +16 -0
  74. package/dist/cjs/net/register.js.map +6 -0
  75. package/dist/cjs/package.json +11 -0
  76. package/dist/cjs/storage/StorageBackendDisk.d.ts +27 -0
  77. package/dist/cjs/storage/StorageBackendDisk.d.ts.map +1 -0
  78. package/dist/cjs/storage/StorageBackendDisk.js +128 -0
  79. package/dist/cjs/storage/StorageBackendDisk.js.map +6 -0
  80. package/dist/cjs/storage/StorageBackendJsonFile.d.ts +27 -0
  81. package/dist/cjs/storage/StorageBackendJsonFile.d.ts.map +1 -0
  82. package/dist/cjs/storage/StorageBackendJsonFile.js +110 -0
  83. package/dist/cjs/storage/StorageBackendJsonFile.js.map +6 -0
  84. package/dist/cjs/storage/index.d.ts +8 -0
  85. package/dist/cjs/storage/index.d.ts.map +1 -0
  86. package/dist/cjs/storage/index.js +25 -0
  87. package/dist/cjs/storage/index.js.map +6 -0
  88. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  89. package/dist/esm/behavior/index.d.ts +7 -0
  90. package/dist/esm/behavior/index.d.ts.map +1 -0
  91. package/dist/esm/behavior/index.js +7 -0
  92. package/dist/esm/behavior/index.js.map +6 -0
  93. package/dist/esm/behavior/instrumentation.d.ts +11 -0
  94. package/dist/esm/behavior/instrumentation.d.ts.map +1 -0
  95. package/dist/esm/behavior/instrumentation.js +27 -0
  96. package/dist/esm/behavior/instrumentation.js.map +6 -0
  97. package/dist/esm/behavior/register.d.ts +7 -0
  98. package/dist/esm/behavior/register.d.ts.map +1 -0
  99. package/dist/esm/behavior/register.js +8 -0
  100. package/dist/esm/behavior/register.js.map +6 -0
  101. package/dist/esm/crypto/NodeJsCrypto.d.ts +29 -0
  102. package/dist/esm/crypto/NodeJsCrypto.d.ts.map +1 -0
  103. package/dist/esm/crypto/NodeJsCrypto.js +135 -0
  104. package/dist/esm/crypto/NodeJsCrypto.js.map +6 -0
  105. package/dist/esm/crypto/index.d.ts +8 -0
  106. package/dist/esm/crypto/index.d.ts.map +1 -0
  107. package/dist/esm/crypto/index.js +8 -0
  108. package/dist/esm/crypto/index.js.map +6 -0
  109. package/dist/esm/crypto/register.d.ts +7 -0
  110. package/dist/esm/crypto/register.d.ts.map +1 -0
  111. package/dist/esm/crypto/register.js +20 -0
  112. package/dist/esm/crypto/register.js.map +6 -0
  113. package/dist/esm/environment/NodeJsActionTracer.d.ts +15 -0
  114. package/dist/esm/environment/NodeJsActionTracer.d.ts.map +1 -0
  115. package/dist/esm/environment/NodeJsActionTracer.js +60 -0
  116. package/dist/esm/environment/NodeJsActionTracer.js.map +6 -0
  117. package/dist/esm/environment/NodeJsEnvironment.d.ts +55 -0
  118. package/dist/esm/environment/NodeJsEnvironment.d.ts.map +1 -0
  119. package/dist/esm/environment/NodeJsEnvironment.js +108 -0
  120. package/dist/esm/environment/NodeJsEnvironment.js.map +6 -0
  121. package/dist/esm/environment/ProcessManager.d.ts +45 -0
  122. package/dist/esm/environment/ProcessManager.d.ts.map +1 -0
  123. package/dist/esm/environment/ProcessManager.js +92 -0
  124. package/dist/esm/environment/ProcessManager.js.map +6 -0
  125. package/dist/esm/environment/index.d.ts +10 -0
  126. package/dist/esm/environment/index.d.ts.map +1 -0
  127. package/dist/esm/environment/index.js +10 -0
  128. package/dist/esm/environment/index.js.map +6 -0
  129. package/dist/esm/environment/register.d.ts +7 -0
  130. package/dist/esm/environment/register.d.ts.map +1 -0
  131. package/dist/esm/environment/register.js +9 -0
  132. package/dist/esm/environment/register.js.map +6 -0
  133. package/dist/esm/index.d.ts +12 -0
  134. package/dist/esm/index.d.ts.map +1 -0
  135. package/dist/esm/index.js +12 -0
  136. package/dist/esm/index.js.map +6 -0
  137. package/dist/esm/log/FileLogger.d.ts +13 -0
  138. package/dist/esm/log/FileLogger.d.ts.map +1 -0
  139. package/dist/esm/log/FileLogger.js +26 -0
  140. package/dist/esm/log/FileLogger.js.map +6 -0
  141. package/dist/esm/log/index.d.ts +7 -0
  142. package/dist/esm/log/index.d.ts.map +1 -0
  143. package/dist/esm/log/index.js +7 -0
  144. package/dist/esm/log/index.js.map +6 -0
  145. package/dist/esm/net/NodeJsNetwork.d.ts +27 -0
  146. package/dist/esm/net/NodeJsNetwork.d.ts.map +1 -0
  147. package/dist/esm/net/NodeJsNetwork.js +133 -0
  148. package/dist/esm/net/NodeJsNetwork.js.map +6 -0
  149. package/dist/esm/net/NodeJsUdpChannel.d.ts +23 -0
  150. package/dist/esm/net/NodeJsUdpChannel.d.ts.map +1 -0
  151. package/dist/esm/net/NodeJsUdpChannel.js +159 -0
  152. package/dist/esm/net/NodeJsUdpChannel.js.map +6 -0
  153. package/dist/esm/net/index.d.ts +9 -0
  154. package/dist/esm/net/index.d.ts.map +1 -0
  155. package/dist/esm/net/index.js +9 -0
  156. package/dist/esm/net/index.js.map +6 -0
  157. package/dist/esm/net/register.d.ts +7 -0
  158. package/dist/esm/net/register.d.ts.map +1 -0
  159. package/dist/esm/net/register.js +15 -0
  160. package/dist/esm/net/register.js.map +6 -0
  161. package/dist/esm/package.json +11 -0
  162. package/dist/esm/storage/StorageBackendDisk.d.ts +27 -0
  163. package/dist/esm/storage/StorageBackendDisk.d.ts.map +1 -0
  164. package/dist/esm/storage/StorageBackendDisk.js +108 -0
  165. package/dist/esm/storage/StorageBackendDisk.js.map +6 -0
  166. package/dist/esm/storage/StorageBackendJsonFile.d.ts +27 -0
  167. package/dist/esm/storage/StorageBackendJsonFile.d.ts.map +1 -0
  168. package/dist/esm/storage/StorageBackendJsonFile.js +90 -0
  169. package/dist/esm/storage/StorageBackendJsonFile.js.map +6 -0
  170. package/dist/esm/storage/index.d.ts +8 -0
  171. package/dist/esm/storage/index.d.ts.map +1 -0
  172. package/dist/esm/storage/index.js +8 -0
  173. package/dist/esm/storage/index.js.map +6 -0
  174. package/dist/esm/tsconfig.tsbuildinfo +1 -0
  175. package/package.json +114 -0
  176. package/src/behavior/index.ts +7 -0
  177. package/src/behavior/instrumentation.ts +32 -0
  178. package/src/behavior/register.ts +9 -0
  179. package/src/crypto/NodeJsCrypto.ts +164 -0
  180. package/src/crypto/index.ts +8 -0
  181. package/src/crypto/register.ts +25 -0
  182. package/src/environment/NodeJsActionTracer.ts +70 -0
  183. package/src/environment/NodeJsEnvironment.ts +172 -0
  184. package/src/environment/ProcessManager.ts +128 -0
  185. package/src/environment/index.ts +10 -0
  186. package/src/environment/register.ts +10 -0
  187. package/src/index.ts +12 -0
  188. package/src/log/FileLogger.ts +30 -0
  189. package/src/log/index.ts +7 -0
  190. package/src/net/NodeJsNetwork.ts +157 -0
  191. package/src/net/NodeJsUdpChannel.ts +179 -0
  192. package/src/net/index.ts +9 -0
  193. package/src/net/register.ts +20 -0
  194. package/src/storage/StorageBackendDisk.ts +132 -0
  195. package/src/storage/StorageBackendJsonFile.ts +102 -0
  196. package/src/storage/index.ts +8 -0
  197. package/src/tsconfig.json +28 -0
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var StorageBackendDisk_exports = {};
20
+ __export(StorageBackendDisk_exports, {
21
+ StorageBackendDisk: () => StorageBackendDisk
22
+ });
23
+ module.exports = __toCommonJS(StorageBackendDisk_exports);
24
+ var import_general = require("#general");
25
+ var import_node_localstorage = require("node-localstorage");
26
+ /**
27
+ * @license
28
+ * Copyright 2022-2024 Matter.js Authors
29
+ * SPDX-License-Identifier: Apache-2.0
30
+ */
31
+ class StorageBackendDisk extends import_general.SyncStorage {
32
+ localStorage;
33
+ isInitialized = false;
34
+ constructor(path, clear = false) {
35
+ super();
36
+ this.localStorage = new import_node_localstorage.LocalStorage(path);
37
+ if (clear) this.clear();
38
+ }
39
+ get initialized() {
40
+ return this.isInitialized;
41
+ }
42
+ initialize() {
43
+ this.isInitialized = true;
44
+ }
45
+ close() {
46
+ this.isInitialized = false;
47
+ }
48
+ clear() {
49
+ this.localStorage.clear();
50
+ }
51
+ getContextBaseKey(contexts, allowEmptyContext = false) {
52
+ const contextKey = contexts.join(".");
53
+ if (!contextKey.length && !allowEmptyContext || contextKey.includes("..") || contextKey.startsWith(".") || contextKey.endsWith("."))
54
+ throw new import_general.StorageError("Context must not be an empty and not contain dots.");
55
+ return contextKey;
56
+ }
57
+ buildStorageKey(contexts, key) {
58
+ if (!key.length) {
59
+ throw new import_general.StorageError("Key must not be an empty string.");
60
+ }
61
+ const contextKey = this.getContextBaseKey(contexts);
62
+ return `${contextKey}.${key}`;
63
+ }
64
+ get(contexts, key) {
65
+ const value = this.localStorage.getItem(this.buildStorageKey(contexts, key));
66
+ if (value === null) return void 0;
67
+ return (0, import_general.fromJson)(value);
68
+ }
69
+ set(contexts, keyOrValues, value) {
70
+ if (typeof keyOrValues === "string") {
71
+ this.localStorage.setItem(this.buildStorageKey(contexts, keyOrValues), (0, import_general.toJson)(value));
72
+ } else {
73
+ for (const [key, value2] of Object.entries(keyOrValues)) {
74
+ this.localStorage.setItem(this.buildStorageKey(contexts, key), (0, import_general.toJson)(value2));
75
+ }
76
+ }
77
+ }
78
+ delete(contexts, key) {
79
+ this.localStorage.removeItem(this.buildStorageKey(contexts, key));
80
+ }
81
+ /** Returns all keys of a storage context without keys of sub-contexts */
82
+ keys(contexts) {
83
+ const contextKey = this.getContextBaseKey(contexts);
84
+ const keys = [];
85
+ const contextKeyStart = `${contextKey}.`;
86
+ const len = contextKeyStart.length;
87
+ for (const key of Object.keys(this.localStorage)) {
88
+ if (key.startsWith(contextKeyStart) && !key.includes(".", len)) {
89
+ keys.push(key.substring(len));
90
+ }
91
+ }
92
+ return keys;
93
+ }
94
+ values(contexts) {
95
+ const values = {};
96
+ for (const key of this.keys(contexts)) {
97
+ values[key] = this.get(contexts, key);
98
+ }
99
+ return values;
100
+ }
101
+ contexts(contexts) {
102
+ const contextKey = this.getContextBaseKey(contexts, true);
103
+ const startContextKey = contextKey.length ? `${contextKey}.` : "";
104
+ const len = startContextKey.length;
105
+ const foundContexts = new Array();
106
+ for (const key of Object.keys(this.localStorage)) {
107
+ if (key.startsWith(startContextKey)) {
108
+ const subKeys = key.substring(len).split(".");
109
+ if (subKeys.length === 1) continue;
110
+ const context = subKeys[0];
111
+ if (!foundContexts.includes(context)) {
112
+ foundContexts.push(context);
113
+ }
114
+ }
115
+ }
116
+ return foundContexts;
117
+ }
118
+ clearAll(contexts) {
119
+ const contextKey = this.getContextBaseKey(contexts, true);
120
+ const startContextKey = contextKey.length ? `${contextKey}.` : "";
121
+ for (const key of Object.keys(this.localStorage)) {
122
+ if (key.startsWith(startContextKey)) {
123
+ this.localStorage.removeItem(key);
124
+ }
125
+ }
126
+ }
127
+ }
128
+ //# sourceMappingURL=StorageBackendDisk.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/storage/StorageBackendDisk.ts"],
4
+ "mappings": "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",
5
+ "names": ["value"]
6
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { StorageBackendMemory, SupportedStorageTypes } from "#general";
7
+ export declare class StorageBackendJsonFile extends StorageBackendMemory {
8
+ private readonly path;
9
+ /** We store changes after a value was set to the storage, but not more often than this setting (in ms). */
10
+ static commitDelay: number;
11
+ committed: Promise<void>;
12
+ private readonly commitTimer;
13
+ private closed;
14
+ private resolveCommitted?;
15
+ constructor(path: string);
16
+ static create(path: string): Promise<StorageBackendJsonFile>;
17
+ initialize(): Promise<void>;
18
+ private triggerCommit;
19
+ set(contexts: string[], keyOrValues: string | Record<string, SupportedStorageTypes>, value?: SupportedStorageTypes): void;
20
+ delete(contexts: string[], key: string): void;
21
+ clear(): void;
22
+ private commit;
23
+ close(): Promise<void>;
24
+ private toJson;
25
+ private fromJson;
26
+ }
27
+ //# sourceMappingURL=StorageBackendJsonFile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StorageBackendJsonFile.d.ts","sourceRoot":"","sources":["../../../src/storage/StorageBackendJsonFile.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAY,oBAAoB,EAAgB,qBAAqB,EAAgB,MAAM,UAAU,CAAC;AAG7G,qBAAa,sBAAuB,SAAQ,oBAAoB;IAWhD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAVjC,2GAA2G;IAC3G,MAAM,CAAC,WAAW,SAAQ;IAC1B,SAAS,gBAAqB;IAE9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAE1B;IACF,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,gBAAgB,CAAC,CAAa;gBAET,IAAI,EAAE,MAAM;WAInB,MAAM,CAAC,IAAI,EAAE,MAAM;IAM1B,UAAU;IAczB,OAAO,CAAC,aAAa;IASZ,GAAG,CACR,QAAQ,EAAE,MAAM,EAAE,EAClB,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAC3D,KAAK,CAAC,EAAE,qBAAqB,GAC9B,IAAI;IAKE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAK7C,KAAK,IAAI,IAAI;YAKR,MAAM;IAcL,KAAK;IAQpB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,QAAQ;CAGnB"}
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var StorageBackendJsonFile_exports = {};
20
+ __export(StorageBackendJsonFile_exports, {
21
+ StorageBackendJsonFile: () => StorageBackendJsonFile
22
+ });
23
+ module.exports = __toCommonJS(StorageBackendJsonFile_exports);
24
+ var import_general = require("#general");
25
+ var import_promises = require("fs/promises");
26
+ /**
27
+ * @license
28
+ * Copyright 2022-2024 Matter.js Authors
29
+ * SPDX-License-Identifier: Apache-2.0
30
+ */
31
+ class StorageBackendJsonFile extends import_general.StorageBackendMemory {
32
+ constructor(path) {
33
+ super();
34
+ this.path = path;
35
+ }
36
+ /** We store changes after a value was set to the storage, but not more often than this setting (in ms). */
37
+ static commitDelay = 1e3;
38
+ committed = Promise.resolve();
39
+ commitTimer = import_general.Time.getTimer(
40
+ "Storage commit",
41
+ StorageBackendJsonFile.commitDelay,
42
+ () => this.commit()
43
+ );
44
+ closed = false;
45
+ resolveCommitted;
46
+ static async create(path) {
47
+ const storage = new this(path);
48
+ await storage.initialize();
49
+ return storage;
50
+ }
51
+ async initialize() {
52
+ if (this.initialized) throw new import_general.StorageError("Storage already initialized!");
53
+ super.initialize();
54
+ try {
55
+ this.store = this.fromJson(await (0, import_promises.readFile)(this.path, "utf-8"));
56
+ } catch (error) {
57
+ if (error.code !== "ENOENT") {
58
+ throw error;
59
+ }
60
+ }
61
+ this.isInitialized = true;
62
+ }
63
+ triggerCommit() {
64
+ if (!this.commitTimer.isRunning) {
65
+ this.committed = new Promise((resolve) => {
66
+ this.resolveCommitted = resolve;
67
+ });
68
+ this.commitTimer.start();
69
+ }
70
+ }
71
+ set(contexts, keyOrValues, value) {
72
+ super.set(contexts, keyOrValues, value);
73
+ this.triggerCommit();
74
+ }
75
+ delete(contexts, key) {
76
+ super.delete(contexts, key);
77
+ this.triggerCommit();
78
+ }
79
+ clear() {
80
+ super.clear();
81
+ this.triggerCommit();
82
+ }
83
+ async commit() {
84
+ if (!this.initialized || this.closed) return;
85
+ if (this.commitTimer.isRunning) {
86
+ this.commitTimer.stop();
87
+ }
88
+ try {
89
+ await (0, import_promises.writeFile)(this.path, this.toJson(this.store), "utf-8");
90
+ } finally {
91
+ if (this.resolveCommitted !== void 0) {
92
+ this.resolveCommitted?.();
93
+ }
94
+ }
95
+ }
96
+ async close() {
97
+ this.commitTimer.stop();
98
+ await this.commit();
99
+ super.close();
100
+ this.closed = true;
101
+ this.isInitialized = false;
102
+ }
103
+ toJson(object) {
104
+ return (0, import_general.toJson)(object, 1);
105
+ }
106
+ fromJson(json) {
107
+ return (0, import_general.fromJson)(json);
108
+ }
109
+ }
110
+ //# sourceMappingURL=StorageBackendJsonFile.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/storage/StorageBackendJsonFile.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAAkG;AAClG,sBAAoC;AAPpC;AAAA;AAAA;AAAA;AAAA;AASO,MAAM,+BAA+B,oCAAqB;AAAA,EAW7D,YAA6B,MAAc;AACvC,UAAM;AADmB;AAAA,EAE7B;AAAA;AAAA,EAXA,OAAO,cAAc;AAAA,EACrB,YAAY,QAAQ,QAAQ;AAAA,EAEX,cAAc,oBAAK;AAAA,IAAS;AAAA,IAAkB,uBAAuB;AAAA,IAAa,MAC/F,KAAK,OAAO;AAAA,EAChB;AAAA,EACQ,SAAS;AAAA,EACT;AAAA,EAMR,aAAsB,OAAO,MAAc;AACvC,UAAM,UAAU,IAAI,KAAK,IAAI;AAC7B,UAAM,QAAQ,WAAW;AACzB,WAAO;AAAA,EACX;AAAA,EAEA,MAAe,aAAa;AACxB,QAAI,KAAK,YAAa,OAAM,IAAI,4BAAa,8BAA8B;AAC3E,UAAM,WAAW;AACjB,QAAI;AACA,WAAK,QAAQ,KAAK,SAAS,UAAM,0BAAS,KAAK,MAAM,OAAO,CAAC;AAAA,IACjE,SAAS,OAAY;AAEjB,UAAI,MAAM,SAAS,UAAU;AACzB,cAAM;AAAA,MACV;AAAA,IACJ;AACA,SAAK,gBAAgB;AAAA,EACzB;AAAA,EAEQ,gBAAgB;AACpB,QAAI,CAAC,KAAK,YAAY,WAAW;AAC7B,WAAK,YAAY,IAAI,QAAQ,aAAW;AACpC,aAAK,mBAAmB;AAAA,MAC5B,CAAC;AACD,WAAK,YAAY,MAAM;AAAA,IAC3B;AAAA,EACJ;AAAA,EAES,IACL,UACA,aACA,OACI;AACJ,UAAM,IAAI,UAAU,aAAa,KAAK;AACtC,SAAK,cAAc;AAAA,EACvB;AAAA,EAES,OAAO,UAAoB,KAAmB;AACnD,UAAM,OAAO,UAAU,GAAG;AAC1B,SAAK,cAAc;AAAA,EACvB;AAAA,EAES,QAAc;AACnB,UAAM,MAAM;AACZ,SAAK,cAAc;AAAA,EACvB;AAAA,EAEA,MAAc,SAAS;AACnB,QAAI,CAAC,KAAK,eAAe,KAAK,OAAQ;AACtC,QAAI,KAAK,YAAY,WAAW;AAC5B,WAAK,YAAY,KAAK;AAAA,IAC1B;AACA,QAAI;AACA,gBAAM,2BAAU,KAAK,MAAM,KAAK,OAAO,KAAK,KAAK,GAAG,OAAO;AAAA,IAC/D,UAAE;AACE,UAAI,KAAK,qBAAqB,QAAW;AACrC,aAAK,mBAAmB;AAAA,MAC5B;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAe,QAAQ;AACnB,SAAK,YAAY,KAAK;AACtB,UAAM,KAAK,OAAO;AAClB,UAAM,MAAM;AACZ,SAAK,SAAS;AACd,SAAK,gBAAgB;AAAA,EACzB;AAAA,EAEQ,OAAO,QAAqB;AAChC,eAAO,uBAAO,QAAQ,CAAC;AAAA,EAC3B;AAAA,EAEQ,SAAS,MAAmB;AAChC,eAAO,yBAAS,IAAI;AAAA,EACxB;AACJ;",
5
+ "names": []
6
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export * from "./StorageBackendDisk.js";
7
+ export * from "./StorageBackendJsonFile.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
+ var storage_exports = {};
17
+ module.exports = __toCommonJS(storage_exports);
18
+ __reExport(storage_exports, require("./StorageBackendDisk.js"), module.exports);
19
+ __reExport(storage_exports, require("./StorageBackendJsonFile.js"), module.exports);
20
+ /**
21
+ * @license
22
+ * Copyright 2022-2024 Matter.js Authors
23
+ * SPDX-License-Identifier: Apache-2.0
24
+ */
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/storage/index.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,4BAAc,oCANd;AAOA,4BAAc,wCAPd;AAAA;AAAA;AAAA;AAAA;AAAA;",
5
+ "names": []
6
+ }