@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.
- package/LICENSE +201 -0
- package/README.md +1 -0
- package/dist/cjs/behavior/index.d.ts +7 -0
- package/dist/cjs/behavior/index.d.ts.map +1 -0
- package/dist/cjs/behavior/index.js +8 -0
- package/dist/cjs/behavior/index.js.map +6 -0
- package/dist/cjs/behavior/instrumentation.d.ts +11 -0
- package/dist/cjs/behavior/instrumentation.d.ts.map +1 -0
- package/dist/cjs/behavior/instrumentation.js +47 -0
- package/dist/cjs/behavior/instrumentation.js.map +6 -0
- package/dist/cjs/behavior/register.d.ts +7 -0
- package/dist/cjs/behavior/register.d.ts.map +1 -0
- package/dist/cjs/behavior/register.js +9 -0
- package/dist/cjs/behavior/register.js.map +6 -0
- package/dist/cjs/crypto/NodeJsCrypto.d.ts +29 -0
- package/dist/cjs/crypto/NodeJsCrypto.d.ts.map +1 -0
- package/dist/cjs/crypto/NodeJsCrypto.js +154 -0
- package/dist/cjs/crypto/NodeJsCrypto.js.map +6 -0
- package/dist/cjs/crypto/index.d.ts +8 -0
- package/dist/cjs/crypto/index.d.ts.map +1 -0
- package/dist/cjs/crypto/index.js +25 -0
- package/dist/cjs/crypto/index.js.map +6 -0
- package/dist/cjs/crypto/register.d.ts +7 -0
- package/dist/cjs/crypto/register.d.ts.map +1 -0
- package/dist/cjs/crypto/register.js +21 -0
- package/dist/cjs/crypto/register.js.map +6 -0
- package/dist/cjs/environment/NodeJsActionTracer.d.ts +15 -0
- package/dist/cjs/environment/NodeJsActionTracer.d.ts.map +1 -0
- package/dist/cjs/environment/NodeJsActionTracer.js +80 -0
- package/dist/cjs/environment/NodeJsActionTracer.js.map +6 -0
- package/dist/cjs/environment/NodeJsEnvironment.d.ts +55 -0
- package/dist/cjs/environment/NodeJsEnvironment.d.ts.map +1 -0
- package/dist/cjs/environment/NodeJsEnvironment.js +121 -0
- package/dist/cjs/environment/NodeJsEnvironment.js.map +6 -0
- package/dist/cjs/environment/ProcessManager.d.ts +45 -0
- package/dist/cjs/environment/ProcessManager.d.ts.map +1 -0
- package/dist/cjs/environment/ProcessManager.js +112 -0
- package/dist/cjs/environment/ProcessManager.js.map +6 -0
- package/dist/cjs/environment/index.d.ts +10 -0
- package/dist/cjs/environment/index.d.ts.map +1 -0
- package/dist/cjs/environment/index.js +27 -0
- package/dist/cjs/environment/index.js.map +6 -0
- package/dist/cjs/environment/register.d.ts +7 -0
- package/dist/cjs/environment/register.d.ts.map +1 -0
- package/dist/cjs/environment/register.js +10 -0
- package/dist/cjs/environment/register.js.map +6 -0
- package/dist/cjs/index.d.ts +12 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +29 -0
- package/dist/cjs/index.js.map +6 -0
- package/dist/cjs/log/FileLogger.d.ts +13 -0
- package/dist/cjs/log/FileLogger.d.ts.map +1 -0
- package/dist/cjs/log/FileLogger.js +46 -0
- package/dist/cjs/log/FileLogger.js.map +6 -0
- package/dist/cjs/log/index.d.ts +7 -0
- package/dist/cjs/log/index.d.ts.map +1 -0
- package/dist/cjs/log/index.js +24 -0
- package/dist/cjs/log/index.js.map +6 -0
- package/dist/cjs/net/NodeJsNetwork.d.ts +27 -0
- package/dist/cjs/net/NodeJsNetwork.d.ts.map +1 -0
- package/dist/cjs/net/NodeJsNetwork.js +145 -0
- package/dist/cjs/net/NodeJsNetwork.js.map +6 -0
- package/dist/cjs/net/NodeJsUdpChannel.d.ts +23 -0
- package/dist/cjs/net/NodeJsUdpChannel.d.ts.map +1 -0
- package/dist/cjs/net/NodeJsUdpChannel.js +181 -0
- package/dist/cjs/net/NodeJsUdpChannel.js.map +6 -0
- package/dist/cjs/net/index.d.ts +9 -0
- package/dist/cjs/net/index.d.ts.map +1 -0
- package/dist/cjs/net/index.js +26 -0
- package/dist/cjs/net/index.js.map +6 -0
- package/dist/cjs/net/register.d.ts +7 -0
- package/dist/cjs/net/register.d.ts.map +1 -0
- package/dist/cjs/net/register.js +16 -0
- package/dist/cjs/net/register.js.map +6 -0
- package/dist/cjs/package.json +11 -0
- package/dist/cjs/storage/StorageBackendDisk.d.ts +27 -0
- package/dist/cjs/storage/StorageBackendDisk.d.ts.map +1 -0
- package/dist/cjs/storage/StorageBackendDisk.js +128 -0
- package/dist/cjs/storage/StorageBackendDisk.js.map +6 -0
- package/dist/cjs/storage/StorageBackendJsonFile.d.ts +27 -0
- package/dist/cjs/storage/StorageBackendJsonFile.d.ts.map +1 -0
- package/dist/cjs/storage/StorageBackendJsonFile.js +110 -0
- package/dist/cjs/storage/StorageBackendJsonFile.js.map +6 -0
- package/dist/cjs/storage/index.d.ts +8 -0
- package/dist/cjs/storage/index.d.ts.map +1 -0
- package/dist/cjs/storage/index.js +25 -0
- package/dist/cjs/storage/index.js.map +6 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -0
- package/dist/esm/behavior/index.d.ts +7 -0
- package/dist/esm/behavior/index.d.ts.map +1 -0
- package/dist/esm/behavior/index.js +7 -0
- package/dist/esm/behavior/index.js.map +6 -0
- package/dist/esm/behavior/instrumentation.d.ts +11 -0
- package/dist/esm/behavior/instrumentation.d.ts.map +1 -0
- package/dist/esm/behavior/instrumentation.js +27 -0
- package/dist/esm/behavior/instrumentation.js.map +6 -0
- package/dist/esm/behavior/register.d.ts +7 -0
- package/dist/esm/behavior/register.d.ts.map +1 -0
- package/dist/esm/behavior/register.js +8 -0
- package/dist/esm/behavior/register.js.map +6 -0
- package/dist/esm/crypto/NodeJsCrypto.d.ts +29 -0
- package/dist/esm/crypto/NodeJsCrypto.d.ts.map +1 -0
- package/dist/esm/crypto/NodeJsCrypto.js +135 -0
- package/dist/esm/crypto/NodeJsCrypto.js.map +6 -0
- package/dist/esm/crypto/index.d.ts +8 -0
- package/dist/esm/crypto/index.d.ts.map +1 -0
- package/dist/esm/crypto/index.js +8 -0
- package/dist/esm/crypto/index.js.map +6 -0
- package/dist/esm/crypto/register.d.ts +7 -0
- package/dist/esm/crypto/register.d.ts.map +1 -0
- package/dist/esm/crypto/register.js +20 -0
- package/dist/esm/crypto/register.js.map +6 -0
- package/dist/esm/environment/NodeJsActionTracer.d.ts +15 -0
- package/dist/esm/environment/NodeJsActionTracer.d.ts.map +1 -0
- package/dist/esm/environment/NodeJsActionTracer.js +60 -0
- package/dist/esm/environment/NodeJsActionTracer.js.map +6 -0
- package/dist/esm/environment/NodeJsEnvironment.d.ts +55 -0
- package/dist/esm/environment/NodeJsEnvironment.d.ts.map +1 -0
- package/dist/esm/environment/NodeJsEnvironment.js +108 -0
- package/dist/esm/environment/NodeJsEnvironment.js.map +6 -0
- package/dist/esm/environment/ProcessManager.d.ts +45 -0
- package/dist/esm/environment/ProcessManager.d.ts.map +1 -0
- package/dist/esm/environment/ProcessManager.js +92 -0
- package/dist/esm/environment/ProcessManager.js.map +6 -0
- package/dist/esm/environment/index.d.ts +10 -0
- package/dist/esm/environment/index.d.ts.map +1 -0
- package/dist/esm/environment/index.js +10 -0
- package/dist/esm/environment/index.js.map +6 -0
- package/dist/esm/environment/register.d.ts +7 -0
- package/dist/esm/environment/register.d.ts.map +1 -0
- package/dist/esm/environment/register.js +9 -0
- package/dist/esm/environment/register.js.map +6 -0
- package/dist/esm/index.d.ts +12 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +12 -0
- package/dist/esm/index.js.map +6 -0
- package/dist/esm/log/FileLogger.d.ts +13 -0
- package/dist/esm/log/FileLogger.d.ts.map +1 -0
- package/dist/esm/log/FileLogger.js +26 -0
- package/dist/esm/log/FileLogger.js.map +6 -0
- package/dist/esm/log/index.d.ts +7 -0
- package/dist/esm/log/index.d.ts.map +1 -0
- package/dist/esm/log/index.js +7 -0
- package/dist/esm/log/index.js.map +6 -0
- package/dist/esm/net/NodeJsNetwork.d.ts +27 -0
- package/dist/esm/net/NodeJsNetwork.d.ts.map +1 -0
- package/dist/esm/net/NodeJsNetwork.js +133 -0
- package/dist/esm/net/NodeJsNetwork.js.map +6 -0
- package/dist/esm/net/NodeJsUdpChannel.d.ts +23 -0
- package/dist/esm/net/NodeJsUdpChannel.d.ts.map +1 -0
- package/dist/esm/net/NodeJsUdpChannel.js +159 -0
- package/dist/esm/net/NodeJsUdpChannel.js.map +6 -0
- package/dist/esm/net/index.d.ts +9 -0
- package/dist/esm/net/index.d.ts.map +1 -0
- package/dist/esm/net/index.js +9 -0
- package/dist/esm/net/index.js.map +6 -0
- package/dist/esm/net/register.d.ts +7 -0
- package/dist/esm/net/register.d.ts.map +1 -0
- package/dist/esm/net/register.js +15 -0
- package/dist/esm/net/register.js.map +6 -0
- package/dist/esm/package.json +11 -0
- package/dist/esm/storage/StorageBackendDisk.d.ts +27 -0
- package/dist/esm/storage/StorageBackendDisk.d.ts.map +1 -0
- package/dist/esm/storage/StorageBackendDisk.js +108 -0
- package/dist/esm/storage/StorageBackendDisk.js.map +6 -0
- package/dist/esm/storage/StorageBackendJsonFile.d.ts +27 -0
- package/dist/esm/storage/StorageBackendJsonFile.d.ts.map +1 -0
- package/dist/esm/storage/StorageBackendJsonFile.js +90 -0
- package/dist/esm/storage/StorageBackendJsonFile.js.map +6 -0
- package/dist/esm/storage/index.d.ts +8 -0
- package/dist/esm/storage/index.d.ts.map +1 -0
- package/dist/esm/storage/index.js +8 -0
- package/dist/esm/storage/index.js.map +6 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -0
- package/package.json +114 -0
- package/src/behavior/index.ts +7 -0
- package/src/behavior/instrumentation.ts +32 -0
- package/src/behavior/register.ts +9 -0
- package/src/crypto/NodeJsCrypto.ts +164 -0
- package/src/crypto/index.ts +8 -0
- package/src/crypto/register.ts +25 -0
- package/src/environment/NodeJsActionTracer.ts +70 -0
- package/src/environment/NodeJsEnvironment.ts +172 -0
- package/src/environment/ProcessManager.ts +128 -0
- package/src/environment/index.ts +10 -0
- package/src/environment/register.ts +10 -0
- package/src/index.ts +12 -0
- package/src/log/FileLogger.ts +30 -0
- package/src/log/index.ts +7 -0
- package/src/net/NodeJsNetwork.ts +157 -0
- package/src/net/NodeJsUdpChannel.ts +179 -0
- package/src/net/index.ts +9 -0
- package/src/net/register.ts +20 -0
- package/src/storage/StorageBackendDisk.ts +132 -0
- package/src/storage/StorageBackendJsonFile.ts +102 -0
- package/src/storage/index.ts +8 -0
- 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 @@
|
|
|
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
|