@matter/nodejs 0.16.6-alpha.0-20260121-06f1d9611 → 0.16.6-alpha.0-20260122-b5154bcb4
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/config.d.ts +6 -0
- package/dist/cjs/config.d.ts.map +1 -1
- package/dist/cjs/config.js +14 -1
- package/dist/cjs/config.js.map +1 -1
- package/dist/cjs/environment/NodeJsEnvironment.d.ts +2 -1
- package/dist/cjs/environment/NodeJsEnvironment.d.ts.map +1 -1
- package/dist/cjs/environment/NodeJsEnvironment.js +28 -10
- package/dist/cjs/environment/NodeJsEnvironment.js.map +1 -1
- package/dist/cjs/storage/StorageFactory.d.ts +52 -0
- package/dist/cjs/storage/StorageFactory.d.ts.map +1 -0
- package/dist/cjs/storage/StorageFactory.js +215 -0
- package/dist/cjs/storage/StorageFactory.js.map +6 -0
- package/dist/cjs/storage/fs/StorageBackendDisk.d.ts.map +1 -0
- package/dist/cjs/storage/{StorageBackendDisk.js.map → fs/StorageBackendDisk.js.map} +1 -1
- package/dist/cjs/storage/fs/StorageBackendJsonFile.d.ts.map +1 -0
- package/dist/cjs/storage/{StorageBackendJsonFile.js.map → fs/StorageBackendJsonFile.js.map} +1 -1
- package/dist/cjs/storage/fs/index.d.ts +8 -0
- package/dist/cjs/storage/fs/index.d.ts.map +1 -0
- package/dist/cjs/storage/fs/index.js +25 -0
- package/dist/cjs/storage/fs/index.js.map +6 -0
- package/dist/cjs/storage/index.d.ts +3 -2
- package/dist/cjs/storage/index.d.ts.map +1 -1
- package/dist/cjs/storage/index.js +3 -2
- package/dist/cjs/storage/index.js.map +1 -1
- package/dist/cjs/storage/sqlite/SqliteStorage.d.ts +105 -0
- package/dist/cjs/storage/sqlite/SqliteStorage.d.ts.map +1 -0
- package/dist/cjs/storage/sqlite/SqliteStorage.js +439 -0
- package/dist/cjs/storage/sqlite/SqliteStorage.js.map +6 -0
- package/dist/cjs/storage/sqlite/SqliteStorageError.d.ts +19 -0
- package/dist/cjs/storage/sqlite/SqliteStorageError.d.ts.map +1 -0
- package/dist/cjs/storage/sqlite/SqliteStorageError.js +38 -0
- package/dist/cjs/storage/sqlite/SqliteStorageError.js.map +6 -0
- package/dist/cjs/storage/sqlite/SqliteTypes.d.ts +67 -0
- package/dist/cjs/storage/sqlite/SqliteTypes.d.ts.map +1 -0
- package/dist/cjs/storage/sqlite/SqliteTypes.js +35 -0
- package/dist/cjs/storage/sqlite/SqliteTypes.js.map +6 -0
- package/dist/cjs/storage/sqlite/SqliteUtil.d.ts +33 -0
- package/dist/cjs/storage/sqlite/SqliteUtil.d.ts.map +1 -0
- package/dist/cjs/storage/sqlite/SqliteUtil.js +64 -0
- package/dist/cjs/storage/sqlite/SqliteUtil.js.map +6 -0
- package/dist/cjs/storage/sqlite/index.d.ts +10 -0
- package/dist/cjs/storage/sqlite/index.d.ts.map +1 -0
- package/dist/cjs/storage/sqlite/index.js +34 -0
- package/dist/cjs/storage/sqlite/index.js.map +6 -0
- package/dist/cjs/storage/sqlite/platform/BunSqlite.d.ts +17 -0
- package/dist/cjs/storage/sqlite/platform/BunSqlite.d.ts.map +1 -0
- package/dist/cjs/storage/sqlite/platform/BunSqlite.js +62 -0
- package/dist/cjs/storage/sqlite/platform/BunSqlite.js.map +6 -0
- package/dist/cjs/storage/sqlite/platform/NodeJsSqlite.d.ts +12 -0
- package/dist/cjs/storage/sqlite/platform/NodeJsSqlite.d.ts.map +1 -0
- package/dist/cjs/storage/sqlite/platform/NodeJsSqlite.js +49 -0
- package/dist/cjs/storage/sqlite/platform/NodeJsSqlite.js.map +6 -0
- package/dist/cjs/storage/sqlite/platform/PlatformSqlite.d.ts +8 -0
- package/dist/cjs/storage/sqlite/platform/PlatformSqlite.d.ts.map +1 -0
- package/dist/cjs/storage/sqlite/platform/PlatformSqlite.js +54 -0
- package/dist/cjs/storage/sqlite/platform/PlatformSqlite.js.map +6 -0
- package/dist/cjs/util/runtimeChecks.d.ts +14 -0
- package/dist/cjs/util/runtimeChecks.d.ts.map +1 -0
- package/dist/cjs/util/runtimeChecks.js +45 -0
- package/dist/cjs/util/runtimeChecks.js.map +6 -0
- package/dist/esm/config.d.ts +6 -0
- package/dist/esm/config.d.ts.map +1 -1
- package/dist/esm/config.js +14 -1
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/environment/NodeJsEnvironment.d.ts +2 -1
- package/dist/esm/environment/NodeJsEnvironment.d.ts.map +1 -1
- package/dist/esm/environment/NodeJsEnvironment.js +29 -10
- package/dist/esm/environment/NodeJsEnvironment.js.map +1 -1
- package/dist/esm/storage/StorageFactory.d.ts +52 -0
- package/dist/esm/storage/StorageFactory.d.ts.map +1 -0
- package/dist/esm/storage/StorageFactory.js +195 -0
- package/dist/esm/storage/StorageFactory.js.map +6 -0
- package/dist/esm/storage/fs/StorageBackendDisk.d.ts.map +1 -0
- package/dist/esm/storage/{StorageBackendDisk.js.map → fs/StorageBackendDisk.js.map} +1 -1
- package/dist/esm/storage/fs/StorageBackendJsonFile.d.ts.map +1 -0
- package/dist/esm/storage/{StorageBackendJsonFile.js.map → fs/StorageBackendJsonFile.js.map} +1 -1
- package/dist/esm/storage/fs/index.d.ts +8 -0
- package/dist/esm/storage/fs/index.d.ts.map +1 -0
- package/dist/esm/storage/fs/index.js +8 -0
- package/dist/esm/storage/fs/index.js.map +6 -0
- package/dist/esm/storage/index.d.ts +3 -2
- package/dist/esm/storage/index.d.ts.map +1 -1
- package/dist/esm/storage/index.js +3 -2
- package/dist/esm/storage/index.js.map +1 -1
- package/dist/esm/storage/sqlite/SqliteStorage.d.ts +105 -0
- package/dist/esm/storage/sqlite/SqliteStorage.d.ts.map +1 -0
- package/dist/esm/storage/sqlite/SqliteStorage.js +423 -0
- package/dist/esm/storage/sqlite/SqliteStorage.js.map +6 -0
- package/dist/esm/storage/sqlite/SqliteStorageError.d.ts +19 -0
- package/dist/esm/storage/sqlite/SqliteStorageError.d.ts.map +1 -0
- package/dist/esm/storage/sqlite/SqliteStorageError.js +18 -0
- package/dist/esm/storage/sqlite/SqliteStorageError.js.map +6 -0
- package/dist/esm/storage/sqlite/SqliteTypes.d.ts +67 -0
- package/dist/esm/storage/sqlite/SqliteTypes.d.ts.map +1 -0
- package/dist/esm/storage/sqlite/SqliteTypes.js +15 -0
- package/dist/esm/storage/sqlite/SqliteTypes.js.map +6 -0
- package/dist/esm/storage/sqlite/SqliteUtil.d.ts +33 -0
- package/dist/esm/storage/sqlite/SqliteUtil.d.ts.map +1 -0
- package/dist/esm/storage/sqlite/SqliteUtil.js +44 -0
- package/dist/esm/storage/sqlite/SqliteUtil.js.map +6 -0
- package/dist/esm/storage/sqlite/index.d.ts +10 -0
- package/dist/esm/storage/sqlite/index.d.ts.map +1 -0
- package/dist/esm/storage/sqlite/index.js +14 -0
- package/dist/esm/storage/sqlite/index.js.map +6 -0
- package/dist/esm/storage/sqlite/platform/BunSqlite.d.ts +17 -0
- package/dist/esm/storage/sqlite/platform/BunSqlite.d.ts.map +1 -0
- package/dist/esm/storage/sqlite/platform/BunSqlite.js +32 -0
- package/dist/esm/storage/sqlite/platform/BunSqlite.js.map +6 -0
- package/dist/esm/storage/sqlite/platform/NodeJsSqlite.d.ts +12 -0
- package/dist/esm/storage/sqlite/platform/NodeJsSqlite.d.ts.map +1 -0
- package/dist/esm/storage/sqlite/platform/NodeJsSqlite.js +29 -0
- package/dist/esm/storage/sqlite/platform/NodeJsSqlite.js.map +6 -0
- package/dist/esm/storage/sqlite/platform/PlatformSqlite.d.ts +8 -0
- package/dist/esm/storage/sqlite/platform/PlatformSqlite.d.ts.map +1 -0
- package/dist/esm/storage/sqlite/platform/PlatformSqlite.js +24 -0
- package/dist/esm/storage/sqlite/platform/PlatformSqlite.js.map +6 -0
- package/dist/esm/util/runtimeChecks.d.ts +14 -0
- package/dist/esm/util/runtimeChecks.d.ts.map +1 -0
- package/dist/esm/util/runtimeChecks.js +25 -0
- package/dist/esm/util/runtimeChecks.js.map +6 -0
- package/package.json +10 -10
- package/src/config.ts +18 -4
- package/src/environment/NodeJsEnvironment.ts +41 -12
- package/src/net/NodeJsHttpEndpoint.ts +1 -1
- package/src/storage/StorageFactory.ts +310 -0
- package/src/storage/fs/index.ts +8 -0
- package/src/storage/index.ts +3 -2
- package/src/storage/sqlite/SqliteStorage.ts +572 -0
- package/src/storage/sqlite/SqliteStorageError.ts +23 -0
- package/src/storage/sqlite/SqliteTypes.ts +75 -0
- package/src/storage/sqlite/SqliteUtil.ts +61 -0
- package/src/storage/sqlite/index.ts +10 -0
- package/src/storage/sqlite/platform/BunSqlite.ts +40 -0
- package/src/storage/sqlite/platform/NodeJsSqlite.ts +35 -0
- package/src/storage/sqlite/platform/PlatformSqlite.ts +52 -0
- package/src/util/runtimeChecks.ts +31 -0
- package/dist/cjs/storage/StorageBackendDisk.d.ts.map +0 -1
- package/dist/cjs/storage/StorageBackendJsonFile.d.ts.map +0 -1
- package/dist/esm/storage/StorageBackendDisk.d.ts.map +0 -1
- package/dist/esm/storage/StorageBackendJsonFile.d.ts.map +0 -1
- /package/dist/cjs/storage/{StorageBackendDisk.d.ts → fs/StorageBackendDisk.d.ts} +0 -0
- /package/dist/cjs/storage/{StorageBackendDisk.js → fs/StorageBackendDisk.js} +0 -0
- /package/dist/cjs/storage/{StorageBackendJsonFile.d.ts → fs/StorageBackendJsonFile.d.ts} +0 -0
- /package/dist/cjs/storage/{StorageBackendJsonFile.js → fs/StorageBackendJsonFile.js} +0 -0
- /package/dist/esm/storage/{StorageBackendDisk.d.ts → fs/StorageBackendDisk.d.ts} +0 -0
- /package/dist/esm/storage/{StorageBackendDisk.js → fs/StorageBackendDisk.js} +0 -0
- /package/dist/esm/storage/{StorageBackendJsonFile.d.ts → fs/StorageBackendJsonFile.d.ts} +0 -0
- /package/dist/esm/storage/{StorageBackendJsonFile.js → fs/StorageBackendJsonFile.js} +0 -0
- /package/src/storage/{StorageBackendDisk.ts → fs/StorageBackendDisk.ts} +0 -0
- /package/src/storage/{StorageBackendJsonFile.ts → fs/StorageBackendJsonFile.ts} +0 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2026 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { type Bytes, type CloneableStorage, type SupportedStorageTypes, Storage } from "@matter/general";
|
|
7
|
+
import type { DatabaseCreator, DatabaseLike, SafeUint8Array } from "./SqliteTypes.js";
|
|
8
|
+
import { SqliteTransaction as Transaction } from "./SqliteTypes.js";
|
|
9
|
+
/**
|
|
10
|
+
* Type of Key-Value store table
|
|
11
|
+
*
|
|
12
|
+
* T means JSON or BLOB type
|
|
13
|
+
*/
|
|
14
|
+
type KVStoreType<T extends string | SafeUint8Array = string | SafeUint8Array> = {
|
|
15
|
+
context: string;
|
|
16
|
+
key: string;
|
|
17
|
+
value_type: T extends string ? "json" : "blob";
|
|
18
|
+
value_json: T extends string ? string : null;
|
|
19
|
+
value_blob: T extends SafeUint8Array ? SafeUint8Array : null;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* SQLite implementation of `StorageBackendDisk.ts`
|
|
23
|
+
*
|
|
24
|
+
* `DatabaseCreator` is need to use (sqlite).
|
|
25
|
+
*
|
|
26
|
+
* Supports `node:sqlite`, `bun:sqlite`. (maybe also `better-sqlite3` support)
|
|
27
|
+
*/
|
|
28
|
+
export declare class SqliteStorage extends Storage implements CloneableStorage {
|
|
29
|
+
#private;
|
|
30
|
+
static readonly memoryPath = ":memory:";
|
|
31
|
+
static readonly defaultTableName = "kvstore";
|
|
32
|
+
protected isInitialized: boolean;
|
|
33
|
+
protected readonly database: DatabaseLike;
|
|
34
|
+
protected readonly dbPath: string;
|
|
35
|
+
protected readonly tableName: string;
|
|
36
|
+
protected readonly clearOnInit: boolean;
|
|
37
|
+
protected readonly databaseCreator: DatabaseCreator;
|
|
38
|
+
/**
|
|
39
|
+
* Create sqlite-based disk
|
|
40
|
+
*
|
|
41
|
+
* @param args.databaseCreator database instance creator
|
|
42
|
+
* @param args.path Database path (treats `null` as `:memory:`, DO NOT input `:memory:` directly)
|
|
43
|
+
* @param args.clear Clear on init
|
|
44
|
+
* @param args.tableName table name
|
|
45
|
+
*/
|
|
46
|
+
constructor(args: {
|
|
47
|
+
databaseCreator: DatabaseCreator;
|
|
48
|
+
path: string | null;
|
|
49
|
+
tableName?: string;
|
|
50
|
+
clear?: boolean;
|
|
51
|
+
});
|
|
52
|
+
/**
|
|
53
|
+
* Manual transaction control
|
|
54
|
+
*
|
|
55
|
+
* Use this for explicit transaction management across multiple operations.
|
|
56
|
+
* Internal methods like `set()` will automatically detect and use external transactions.
|
|
57
|
+
*
|
|
58
|
+
* TODO: Sync transaction to native matter.js API
|
|
59
|
+
*/
|
|
60
|
+
transaction(mode: Transaction): void;
|
|
61
|
+
protected withAnyTransaction<T>(callback: () => T): T;
|
|
62
|
+
get initialized(): boolean;
|
|
63
|
+
initialize(): Promise<void>;
|
|
64
|
+
clone(): Storage;
|
|
65
|
+
close(): void;
|
|
66
|
+
get<T extends SupportedStorageTypes>(contexts: string[], key: string): T | null | undefined;
|
|
67
|
+
protected getRawAll(): KVStoreType<string | SafeUint8Array>[];
|
|
68
|
+
set(contexts: string[], key: string, value: SupportedStorageTypes): void;
|
|
69
|
+
set(contexts: string[], values: Record<string, SupportedStorageTypes>): void;
|
|
70
|
+
/**
|
|
71
|
+
* Set [contexts, key] to value
|
|
72
|
+
* @param contexts Context
|
|
73
|
+
* @param key Key
|
|
74
|
+
* @param value Value
|
|
75
|
+
* @returns
|
|
76
|
+
*/
|
|
77
|
+
protected setValue(contexts: string[], key: string, value: string): void;
|
|
78
|
+
/**
|
|
79
|
+
* Set Raw data. (for copy)
|
|
80
|
+
*/
|
|
81
|
+
protected setRaw(rawData: KVStoreType[]): void;
|
|
82
|
+
delete(contexts: string[], key: string): void;
|
|
83
|
+
keys(contexts: string[]): string[];
|
|
84
|
+
values(contexts: string[]): Record<string, SupportedStorageTypes>;
|
|
85
|
+
/**
|
|
86
|
+
* Return sub contexts of context
|
|
87
|
+
* (search nested depth, return 1 depth of them)
|
|
88
|
+
* @param contexts context path
|
|
89
|
+
* @returns sub contexts
|
|
90
|
+
*/
|
|
91
|
+
contexts(contexts: string[]): string[];
|
|
92
|
+
/**
|
|
93
|
+
* Should be implement to platform specific class
|
|
94
|
+
* when `completely = true`
|
|
95
|
+
*
|
|
96
|
+
* basic cleanup query for here.
|
|
97
|
+
*/
|
|
98
|
+
clear(_completely?: boolean): Promise<void>;
|
|
99
|
+
clearAll(contexts: string[]): void;
|
|
100
|
+
has(contexts: string[], key: string): boolean;
|
|
101
|
+
openBlob(contexts: string[], key: string): Blob;
|
|
102
|
+
writeBlobFromStream(contexts: string[], key: string, stream: ReadableStream<Bytes>): Promise<void>;
|
|
103
|
+
}
|
|
104
|
+
export {};
|
|
105
|
+
//# sourceMappingURL=SqliteStorage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SqliteStorage.d.ts","sourceRoot":"","sources":["../../../../src/storage/sqlite/SqliteStorage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,439 @@
|
|
|
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 SqliteStorage_exports = {};
|
|
20
|
+
__export(SqliteStorage_exports, {
|
|
21
|
+
SqliteStorage: () => SqliteStorage
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(SqliteStorage_exports);
|
|
24
|
+
var import_general = require("@matter/general");
|
|
25
|
+
var import_SqliteStorageError = require("./SqliteStorageError.js");
|
|
26
|
+
var import_SqliteTypes = require("./SqliteTypes.js");
|
|
27
|
+
var import_SqliteUtil = require("./SqliteUtil.js");
|
|
28
|
+
/**
|
|
29
|
+
* @license
|
|
30
|
+
* Copyright 2022-2026 Matter.js Authors
|
|
31
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
32
|
+
*/
|
|
33
|
+
class SqliteStorage extends import_general.Storage {
|
|
34
|
+
static memoryPath = ":memory:";
|
|
35
|
+
static defaultTableName = "kvstore";
|
|
36
|
+
isInitialized = false;
|
|
37
|
+
#inTransaction = false;
|
|
38
|
+
// internal values
|
|
39
|
+
database;
|
|
40
|
+
dbPath;
|
|
41
|
+
tableName;
|
|
42
|
+
clearOnInit;
|
|
43
|
+
databaseCreator;
|
|
44
|
+
// queries
|
|
45
|
+
#queryInit;
|
|
46
|
+
#queryGet;
|
|
47
|
+
#queryGetRaw;
|
|
48
|
+
#querySet;
|
|
49
|
+
#querySetRaw;
|
|
50
|
+
#queryDelete;
|
|
51
|
+
#queryKeys;
|
|
52
|
+
#queryValues;
|
|
53
|
+
#queryContextSub;
|
|
54
|
+
#queryClear;
|
|
55
|
+
#queryClearAll;
|
|
56
|
+
#queryHas;
|
|
57
|
+
#queryOpenBlob;
|
|
58
|
+
#queryWriteBlob;
|
|
59
|
+
/**
|
|
60
|
+
* Create sqlite-based disk
|
|
61
|
+
*
|
|
62
|
+
* @param args.databaseCreator database instance creator
|
|
63
|
+
* @param args.path Database path (treats `null` as `:memory:`, DO NOT input `:memory:` directly)
|
|
64
|
+
* @param args.clear Clear on init
|
|
65
|
+
* @param args.tableName table name
|
|
66
|
+
*/
|
|
67
|
+
constructor(args) {
|
|
68
|
+
super();
|
|
69
|
+
const { databaseCreator, path, tableName, clear } = args;
|
|
70
|
+
this.dbPath = path === null ? SqliteStorage.memoryPath : path;
|
|
71
|
+
this.databaseCreator = databaseCreator;
|
|
72
|
+
this.database = databaseCreator(this.dbPath);
|
|
73
|
+
this.tableName = tableName ?? SqliteStorage.defaultTableName;
|
|
74
|
+
this.clearOnInit = clear ?? false;
|
|
75
|
+
this.#queryInit = this.database.prepare(`
|
|
76
|
+
CREATE TABLE IF NOT EXISTS ${this.tableName} (
|
|
77
|
+
context TEXT NOT NULL,
|
|
78
|
+
key TEXT NOT NULL,
|
|
79
|
+
value_type TEXT CHECK(value_type IN ('json', 'blob')),
|
|
80
|
+
value_json TEXT,
|
|
81
|
+
value_blob BLOB,
|
|
82
|
+
CONSTRAINT PKPair PRIMARY KEY (context, key)
|
|
83
|
+
) STRICT
|
|
84
|
+
`);
|
|
85
|
+
this.#queryInit.run();
|
|
86
|
+
this.#queryGet = this.database.prepare(`
|
|
87
|
+
SELECT value_json FROM ${this.tableName} WHERE
|
|
88
|
+
context=$context AND
|
|
89
|
+
key=$key AND
|
|
90
|
+
value_type='json'
|
|
91
|
+
`);
|
|
92
|
+
this.#queryGetRaw = this.database.prepare(`
|
|
93
|
+
SELECT * FROM ${this.tableName}
|
|
94
|
+
`);
|
|
95
|
+
this.#queryHas = this.database.prepare(`
|
|
96
|
+
SELECT EXISTS(
|
|
97
|
+
SELECT 1 FROM ${this.tableName}
|
|
98
|
+
WHERE context=$context AND key=$key
|
|
99
|
+
) as has_record
|
|
100
|
+
`);
|
|
101
|
+
this.#querySet = this.database.prepare(`
|
|
102
|
+
INSERT INTO ${this.tableName}
|
|
103
|
+
(context, key, value_type, value_json, value_blob)
|
|
104
|
+
VALUES($context, $key, 'json', $value_json, NULL)
|
|
105
|
+
ON CONFLICT(context, key)
|
|
106
|
+
DO UPDATE SET
|
|
107
|
+
value_type = 'json',
|
|
108
|
+
value_json = excluded.value_json,
|
|
109
|
+
value_blob = NULL
|
|
110
|
+
`);
|
|
111
|
+
this.#querySetRaw = this.database.prepare(`
|
|
112
|
+
INSERT INTO ${this.tableName}
|
|
113
|
+
(context, key, value_type, value_json, value_blob)
|
|
114
|
+
VALUES($context, $key, $value_type, $value_json, $value_blob)
|
|
115
|
+
ON CONFLICT(context, key)
|
|
116
|
+
DO UPDATE SET
|
|
117
|
+
value_type = excluded.value_type,
|
|
118
|
+
value_json = excluded.value_json,
|
|
119
|
+
value_blob = excluded.value_blob
|
|
120
|
+
`);
|
|
121
|
+
this.#queryDelete = this.database.prepare(`
|
|
122
|
+
DELETE FROM ${this.tableName} WHERE
|
|
123
|
+
context=$context AND
|
|
124
|
+
key=$key
|
|
125
|
+
`);
|
|
126
|
+
this.#queryClear = this.database.prepare(`
|
|
127
|
+
DELETE FROM ${this.tableName}
|
|
128
|
+
`);
|
|
129
|
+
this.#queryClearAll = this.database.prepare(`
|
|
130
|
+
DELETE FROM ${this.tableName} WHERE
|
|
131
|
+
context=$context OR context GLOB $contextGlob
|
|
132
|
+
`);
|
|
133
|
+
this.#queryKeys = this.database.prepare(`
|
|
134
|
+
SELECT DISTINCT key FROM ${this.tableName} WHERE
|
|
135
|
+
context=$context
|
|
136
|
+
`);
|
|
137
|
+
this.#queryValues = this.database.prepare(`
|
|
138
|
+
SELECT key, value_json FROM ${this.tableName} WHERE
|
|
139
|
+
context=$context AND
|
|
140
|
+
value_type='json'
|
|
141
|
+
`);
|
|
142
|
+
this.#queryContextSub = this.database.prepare(`
|
|
143
|
+
SELECT DISTINCT context FROM ${this.tableName} WHERE
|
|
144
|
+
context GLOB $contextGlob
|
|
145
|
+
`);
|
|
146
|
+
this.#queryOpenBlob = this.database.prepare(`
|
|
147
|
+
SELECT value_type, value_json, value_blob FROM ${this.tableName} WHERE
|
|
148
|
+
context=$context AND
|
|
149
|
+
key=$key
|
|
150
|
+
`);
|
|
151
|
+
this.#queryWriteBlob = this.database.prepare(`
|
|
152
|
+
INSERT INTO ${this.tableName}
|
|
153
|
+
(context, key, value_type, value_json, value_blob)
|
|
154
|
+
VALUES($context, $key, 'blob', NULL, $value_blob)
|
|
155
|
+
ON CONFLICT(context, key)
|
|
156
|
+
DO UPDATE SET
|
|
157
|
+
value_type = 'blob',
|
|
158
|
+
value_json = NULL,
|
|
159
|
+
value_blob = excluded.value_blob
|
|
160
|
+
`);
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Manual transaction control
|
|
164
|
+
*
|
|
165
|
+
* Use this for explicit transaction management across multiple operations.
|
|
166
|
+
* Internal methods like `set()` will automatically detect and use external transactions.
|
|
167
|
+
*
|
|
168
|
+
* TODO: Sync transaction to native matter.js API
|
|
169
|
+
*/
|
|
170
|
+
transaction(mode) {
|
|
171
|
+
switch (mode) {
|
|
172
|
+
case import_SqliteTypes.SqliteTransaction.BEGIN:
|
|
173
|
+
if (this.#inTransaction) {
|
|
174
|
+
throw new import_SqliteStorageError.SqliteStorageError("transaction", "BEGIN", "Transaction is in progress.");
|
|
175
|
+
}
|
|
176
|
+
this.database.exec("BEGIN IMMEDIATE TRANSACTION");
|
|
177
|
+
this.#inTransaction = true;
|
|
178
|
+
break;
|
|
179
|
+
case import_SqliteTypes.SqliteTransaction.COMMIT:
|
|
180
|
+
if (!this.#inTransaction) {
|
|
181
|
+
throw new import_SqliteStorageError.SqliteStorageError("transaction", "COMMIT", "No transaction in progress.");
|
|
182
|
+
}
|
|
183
|
+
this.database.exec("COMMIT");
|
|
184
|
+
this.#inTransaction = false;
|
|
185
|
+
break;
|
|
186
|
+
case import_SqliteTypes.SqliteTransaction.ROLLBACK:
|
|
187
|
+
if (!this.#inTransaction) {
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
this.database.exec("ROLLBACK");
|
|
191
|
+
this.#inTransaction = false;
|
|
192
|
+
break;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
withAnyTransaction(callback) {
|
|
196
|
+
if (this.#inTransaction) {
|
|
197
|
+
return callback();
|
|
198
|
+
}
|
|
199
|
+
this.transaction(import_SqliteTypes.SqliteTransaction.BEGIN);
|
|
200
|
+
try {
|
|
201
|
+
const result = callback();
|
|
202
|
+
this.transaction(import_SqliteTypes.SqliteTransaction.COMMIT);
|
|
203
|
+
return result;
|
|
204
|
+
} catch (err) {
|
|
205
|
+
this.transaction(import_SqliteTypes.SqliteTransaction.ROLLBACK);
|
|
206
|
+
throw err;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
get initialized() {
|
|
210
|
+
return this.isInitialized;
|
|
211
|
+
}
|
|
212
|
+
async initialize() {
|
|
213
|
+
if (this.clearOnInit) {
|
|
214
|
+
await this.clear(false);
|
|
215
|
+
}
|
|
216
|
+
this.isInitialized = true;
|
|
217
|
+
}
|
|
218
|
+
clone() {
|
|
219
|
+
const clonedStorage = new SqliteStorage({
|
|
220
|
+
databaseCreator: this.databaseCreator,
|
|
221
|
+
path: null,
|
|
222
|
+
tableName: this.tableName,
|
|
223
|
+
clear: false
|
|
224
|
+
});
|
|
225
|
+
const rawData = this.getRawAll();
|
|
226
|
+
clonedStorage.setRaw(rawData);
|
|
227
|
+
clonedStorage.isInitialized = true;
|
|
228
|
+
return clonedStorage;
|
|
229
|
+
}
|
|
230
|
+
close() {
|
|
231
|
+
this.isInitialized = false;
|
|
232
|
+
this.database.close();
|
|
233
|
+
}
|
|
234
|
+
get(contexts, key) {
|
|
235
|
+
const queryResult = this.#queryGet.get((0, import_SqliteUtil.buildContextKeyPair)(contexts, key));
|
|
236
|
+
if (queryResult == null) {
|
|
237
|
+
return void 0;
|
|
238
|
+
}
|
|
239
|
+
if (queryResult.value_json === null) {
|
|
240
|
+
this.delete(contexts, key);
|
|
241
|
+
throw new import_SqliteStorageError.SqliteStorageError(
|
|
242
|
+
"get",
|
|
243
|
+
(0, import_SqliteUtil.buildContextKeyLog)(contexts, key),
|
|
244
|
+
"path has null json-value! (expected non-null value)"
|
|
245
|
+
);
|
|
246
|
+
}
|
|
247
|
+
return (0, import_general.fromJson)(queryResult.value_json);
|
|
248
|
+
}
|
|
249
|
+
getRawAll() {
|
|
250
|
+
return this.#queryGetRaw.all().filter((v) => v != null);
|
|
251
|
+
}
|
|
252
|
+
set(contexts, keyOrValues, value) {
|
|
253
|
+
if (typeof keyOrValues === "string") {
|
|
254
|
+
if (value === void 0) {
|
|
255
|
+
throw new import_SqliteStorageError.SqliteStorageError(
|
|
256
|
+
"set",
|
|
257
|
+
(0, import_SqliteUtil.buildContextKeyLog)(contexts, keyOrValues),
|
|
258
|
+
"Use null instead of undefined if you want to store null value!"
|
|
259
|
+
);
|
|
260
|
+
}
|
|
261
|
+
this.setValue(contexts, keyOrValues, (0, import_general.toJson)(value));
|
|
262
|
+
} else {
|
|
263
|
+
this.withAnyTransaction(() => {
|
|
264
|
+
for (const [key, value2] of Object.entries(keyOrValues)) {
|
|
265
|
+
this.setValue(contexts, key, (0, import_general.toJson)(value2 ?? null));
|
|
266
|
+
}
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Set [contexts, key] to value
|
|
272
|
+
* @param contexts Context
|
|
273
|
+
* @param key Key
|
|
274
|
+
* @param value Value
|
|
275
|
+
* @returns
|
|
276
|
+
*/
|
|
277
|
+
setValue(contexts, key, value) {
|
|
278
|
+
const { changes } = this.#querySet.run({
|
|
279
|
+
...(0, import_SqliteUtil.buildContextKeyPair)(contexts, key),
|
|
280
|
+
value_json: value
|
|
281
|
+
});
|
|
282
|
+
if (Number(changes) <= 0) {
|
|
283
|
+
throw new import_SqliteStorageError.SqliteStorageError(
|
|
284
|
+
"set",
|
|
285
|
+
(0, import_SqliteUtil.buildContextKeyLog)(contexts, key),
|
|
286
|
+
`Something went wrong! Value wasn't changed.`
|
|
287
|
+
);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Set Raw data. (for copy)
|
|
292
|
+
*/
|
|
293
|
+
setRaw(rawData) {
|
|
294
|
+
if (rawData.length <= 0) {
|
|
295
|
+
return;
|
|
296
|
+
}
|
|
297
|
+
if (rawData.length === 1) {
|
|
298
|
+
const raw = rawData[0];
|
|
299
|
+
const { changes } = this.#querySetRaw.run({
|
|
300
|
+
context: raw.context,
|
|
301
|
+
key: raw.key,
|
|
302
|
+
value_type: raw.value_type,
|
|
303
|
+
value_json: raw.value_json,
|
|
304
|
+
value_blob: raw.value_blob
|
|
305
|
+
});
|
|
306
|
+
if (Number(changes) <= 0) {
|
|
307
|
+
throw new import_SqliteStorageError.SqliteStorageError(
|
|
308
|
+
"setraw",
|
|
309
|
+
`${raw.context}$${raw.key}`,
|
|
310
|
+
`Something went wrong! Value wasn't changed.`
|
|
311
|
+
);
|
|
312
|
+
}
|
|
313
|
+
return;
|
|
314
|
+
}
|
|
315
|
+
this.withAnyTransaction(() => {
|
|
316
|
+
for (const raw of rawData) {
|
|
317
|
+
const { changes } = this.#querySetRaw.run({
|
|
318
|
+
context: raw.context,
|
|
319
|
+
key: raw.key,
|
|
320
|
+
value_type: raw.value_type,
|
|
321
|
+
value_json: raw.value_json,
|
|
322
|
+
value_blob: raw.value_blob
|
|
323
|
+
});
|
|
324
|
+
if (Number(changes) <= 0) {
|
|
325
|
+
throw new import_SqliteStorageError.SqliteStorageError(
|
|
326
|
+
"setraw",
|
|
327
|
+
`${raw.context}$${raw.key}`,
|
|
328
|
+
`Something went wrong! Value wasn't changed.`
|
|
329
|
+
);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
delete(contexts, key) {
|
|
335
|
+
this.#queryDelete.run((0, import_SqliteUtil.buildContextKeyPair)(contexts, key));
|
|
336
|
+
}
|
|
337
|
+
keys(contexts) {
|
|
338
|
+
const queryResults = this.#queryKeys.all({
|
|
339
|
+
context: (0, import_SqliteUtil.buildContextPath)(contexts)
|
|
340
|
+
}).filter((v) => v != null);
|
|
341
|
+
return queryResults.map((v) => v.key);
|
|
342
|
+
}
|
|
343
|
+
values(contexts) {
|
|
344
|
+
const queryResults = this.#queryValues.all({
|
|
345
|
+
context: (0, import_SqliteUtil.buildContextPath)(contexts)
|
|
346
|
+
}).filter((v) => v != null);
|
|
347
|
+
const record = /* @__PURE__ */ Object.create(null);
|
|
348
|
+
for (const element of queryResults) {
|
|
349
|
+
record[element.key] = (0, import_general.fromJson)(element.value_json);
|
|
350
|
+
}
|
|
351
|
+
return record;
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Return sub contexts of context
|
|
355
|
+
* (search nested depth, return 1 depth of them)
|
|
356
|
+
* @param contexts context path
|
|
357
|
+
* @returns sub contexts
|
|
358
|
+
*/
|
|
359
|
+
contexts(contexts) {
|
|
360
|
+
const parentCtx = (0, import_SqliteUtil.buildContextPath)(contexts);
|
|
361
|
+
let subContexts;
|
|
362
|
+
if (contexts.length === 0) {
|
|
363
|
+
const allContexts = this.#queryContextSub.all({ contextGlob: "*" }).filter((v) => v != null);
|
|
364
|
+
subContexts = allContexts.map((v) => {
|
|
365
|
+
const firstDotIndex = v.context.indexOf(".");
|
|
366
|
+
if (firstDotIndex < 0) {
|
|
367
|
+
return v.context;
|
|
368
|
+
}
|
|
369
|
+
return v.context.substring(0, firstDotIndex);
|
|
370
|
+
});
|
|
371
|
+
} else {
|
|
372
|
+
const allSubContexts = this.#queryContextSub.all({
|
|
373
|
+
contextGlob: (0, import_SqliteUtil.escapeGlob)(parentCtx) + ".*"
|
|
374
|
+
}).filter((v) => v != null);
|
|
375
|
+
subContexts = allSubContexts.map((v) => {
|
|
376
|
+
const subKey = v.context.substring(parentCtx.length + 1);
|
|
377
|
+
const dotIndex = subKey.indexOf(".");
|
|
378
|
+
if (dotIndex < 0) {
|
|
379
|
+
return subKey;
|
|
380
|
+
}
|
|
381
|
+
return subKey.substring(0, dotIndex);
|
|
382
|
+
});
|
|
383
|
+
}
|
|
384
|
+
return [...new Set(subContexts.filter((c) => c != null && c.trim().length > 0))];
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Should be implement to platform specific class
|
|
388
|
+
* when `completely = true`
|
|
389
|
+
*
|
|
390
|
+
* basic cleanup query for here.
|
|
391
|
+
*/
|
|
392
|
+
async clear(_completely) {
|
|
393
|
+
this.#queryClear.run();
|
|
394
|
+
}
|
|
395
|
+
clearAll(contexts) {
|
|
396
|
+
if (contexts.length === 0) {
|
|
397
|
+
return;
|
|
398
|
+
}
|
|
399
|
+
const contextPath = (0, import_SqliteUtil.buildContextPath)(contexts);
|
|
400
|
+
this.#queryClearAll.run({
|
|
401
|
+
context: contextPath,
|
|
402
|
+
contextGlob: (0, import_SqliteUtil.escapeGlob)(contextPath) + ".*"
|
|
403
|
+
});
|
|
404
|
+
}
|
|
405
|
+
has(contexts, key) {
|
|
406
|
+
const result = this.#queryHas.get((0, import_SqliteUtil.buildContextKeyPair)(contexts, key));
|
|
407
|
+
return result?.has_record === 1;
|
|
408
|
+
}
|
|
409
|
+
openBlob(contexts, key) {
|
|
410
|
+
const queryResult = this.#queryOpenBlob.get((0, import_SqliteUtil.buildContextKeyPair)(contexts, key));
|
|
411
|
+
if (queryResult == null) {
|
|
412
|
+
return new Blob();
|
|
413
|
+
}
|
|
414
|
+
if (queryResult.value_type === "blob" && queryResult.value_blob != null) {
|
|
415
|
+
return new Blob([new Uint8Array(queryResult.value_blob)]);
|
|
416
|
+
}
|
|
417
|
+
if (queryResult.value_type === "json" && queryResult.value_json != null) {
|
|
418
|
+
return new Blob([queryResult.value_json]);
|
|
419
|
+
}
|
|
420
|
+
this.delete(contexts, key);
|
|
421
|
+
return new Blob();
|
|
422
|
+
}
|
|
423
|
+
async writeBlobFromStream(contexts, key, stream) {
|
|
424
|
+
const arrayBuffer = await new Response(stream).arrayBuffer();
|
|
425
|
+
const bytes = new Uint8Array(arrayBuffer);
|
|
426
|
+
const queryResult = this.#queryWriteBlob.run({
|
|
427
|
+
...(0, import_SqliteUtil.buildContextKeyPair)(contexts, key),
|
|
428
|
+
value_blob: bytes
|
|
429
|
+
});
|
|
430
|
+
if (Number(queryResult.changes) <= 0) {
|
|
431
|
+
throw new import_SqliteStorageError.SqliteStorageError(
|
|
432
|
+
"writeBlob",
|
|
433
|
+
(0, import_SqliteUtil.buildContextKeyLog)(contexts, key),
|
|
434
|
+
`Something went wrong! Value wasn't changed.`
|
|
435
|
+
);
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
//# sourceMappingURL=SqliteStorage.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/storage/sqlite/SqliteStorage.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["Transaction", "value"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2026 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { StorageError } from "@matter/general";
|
|
7
|
+
/**
|
|
8
|
+
* StorageError with
|
|
9
|
+
*
|
|
10
|
+
* `methodType`: Method type of Storage
|
|
11
|
+
* `contextKey`: Context$Key
|
|
12
|
+
*/
|
|
13
|
+
export declare class SqliteStorageError extends StorageError {
|
|
14
|
+
readonly methodType: string;
|
|
15
|
+
readonly contextKey: string;
|
|
16
|
+
readonly mainReason: string;
|
|
17
|
+
constructor(methodType: string, contextKey: string, mainReason: string);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=SqliteStorageError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SqliteStorageError.d.ts","sourceRoot":"","sources":["../../../../src/storage/sqlite/SqliteStorageError.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C;;;;;GAKG;AACH,qBAAa,kBAAmB,SAAQ,YAAY;aAE5B,UAAU,EAAE,MAAM;aAClB,UAAU,EAAE,MAAM;aAClB,UAAU,EAAE,MAAM;gBAFlB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM;CAIzC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
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 SqliteStorageError_exports = {};
|
|
20
|
+
__export(SqliteStorageError_exports, {
|
|
21
|
+
SqliteStorageError: () => SqliteStorageError
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(SqliteStorageError_exports);
|
|
24
|
+
var import_general = require("@matter/general");
|
|
25
|
+
/**
|
|
26
|
+
* @license
|
|
27
|
+
* Copyright 2022-2026 Matter.js Authors
|
|
28
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
29
|
+
*/
|
|
30
|
+
class SqliteStorageError extends import_general.StorageError {
|
|
31
|
+
constructor(methodType, contextKey, mainReason) {
|
|
32
|
+
super(`[${methodType.toUpperCase()}] ${contextKey}: ${mainReason}`);
|
|
33
|
+
this.methodType = methodType;
|
|
34
|
+
this.contextKey = contextKey;
|
|
35
|
+
this.mainReason = mainReason;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=SqliteStorageError.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/storage/sqlite/SqliteStorageError.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAA6B;AAN7B;AAAA;AAAA;AAAA;AAAA;AAcO,MAAM,2BAA2B,4BAAa;AAAA,EACjD,YACoB,YACA,YACA,YAClB;AACE,UAAM,IAAI,WAAW,YAAY,CAAC,KAAK,UAAU,KAAK,UAAU,EAAE;AAJlD;AACA;AACA;AAAA,EAGpB;AACJ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|