ueberdb2 4.2.102 → 4.2.103
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.
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import AbstractDatabase from "../lib/AbstractDatabase";
|
|
2
|
+
import { KeyValueDB } from 'rusty-store-kv';
|
|
2
3
|
export default class Rusty_db extends AbstractDatabase {
|
|
3
|
-
db:
|
|
4
|
+
db: KeyValueDB | null | undefined;
|
|
4
5
|
constructor(settings: {
|
|
5
6
|
filename: string;
|
|
6
7
|
});
|
|
7
8
|
get isAsync(): boolean;
|
|
8
|
-
findKeys(key: string, notKey?: string):
|
|
9
|
+
findKeys(key: string, notKey?: string): string[];
|
|
9
10
|
get(key: string): any;
|
|
10
11
|
init(): Promise<void>;
|
|
11
12
|
close(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rusty_db.d.ts","sourceRoot":"","sources":["../../databases/rusty_db.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"rusty_db.d.ts","sourceRoot":"","sources":["../../databases/rusty_db.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAA;AAEzC,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,gBAAgB;IAClD,EAAE,EAAE,UAAU,GAAE,IAAI,GAAE,SAAS,CAAA;gBAEnB,QAAQ,EAAE;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC;IASxC,IAAI,OAAO,YAEV;IAED,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAC,MAAM;IAIpC,GAAG,CAAC,GAAG,EAAE,MAAM;IAYT,IAAI;IAIV,KAAK;IAKL,MAAM,CAAC,GAAG,EAAE,MAAM;IAIlB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAS9B,OAAO;CAGV"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { BulkObject } from "./cassandra_db";
|
|
2
2
|
import AbstractDatabase, { Settings } from "../lib/AbstractDatabase";
|
|
3
|
+
import { SQLite } from 'rusty-store-kv';
|
|
3
4
|
export default class SQLiteDB extends AbstractDatabase {
|
|
4
|
-
db:
|
|
5
|
+
db: SQLite | null;
|
|
5
6
|
constructor(settings: Settings);
|
|
6
7
|
init(callback: Function): void;
|
|
7
|
-
_query(sql: string, params?: never[]): Promise<any>;
|
|
8
8
|
get(key: string, callback: Function): void;
|
|
9
9
|
findKeys(key: string, notKey: string, callback: Function): void;
|
|
10
10
|
set(key: string, value: string, callback: Function): void;
|
|
11
11
|
remove(key: string, callback: Function): void;
|
|
12
|
-
handleBulk(bulk: BulkObject): string;
|
|
13
12
|
doBulk(bulk: BulkObject[], callback: Function): void;
|
|
14
13
|
close(callback: Function): void;
|
|
15
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite_db.d.ts","sourceRoot":"","sources":["../../databases/sqlite_db.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAC1C,OAAO,gBAAgB,EAAE,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"sqlite_db.d.ts","sourceRoot":"","sources":["../../databases/sqlite_db.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAC1C,OAAO,gBAAgB,EAAE,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAA;AAwBrC,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,gBAAgB;IAC7C,EAAE,EAAE,MAAM,GAAC,IAAI,CAAC;gBACX,QAAQ,EAAC,QAAQ;IAsB7B,IAAI,CAAC,QAAQ,EAAE,QAAQ;IAMvB,GAAG,CAAC,GAAG,EAAC,MAAM,EAAE,QAAQ,EAAC,QAAQ;IAKjC,QAAQ,CAAC,GAAG,EAAC,MAAM,EAAE,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAC,QAAQ;IAMrD,GAAG,CAAC,GAAG,EAAC,MAAM,EAAE,KAAK,EAAC,MAAM,EAAE,QAAQ,EAAC,QAAQ;IAK/C,MAAM,CAAC,GAAG,EAAC,MAAM,EAAE,QAAQ,EAAC,QAAQ;IAMpC,MAAM,CAAC,IAAI,EAAC,UAAU,EAAE,EAAE,QAAQ,EAAC,QAAQ;IAgB3C,KAAK,CAAC,QAAQ,EAAE,QAAQ;CAIzB"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var require$$0$6=require('util'),require$$1$6=require('console'),require$$0$p=require('process'),require$$0$9=require('dns'),require$$0$7=require('net'),require$$0$8=require('events'),require$$0$a=require('crypto'),require$$0$b=require('stream'),require$$1$2=require('tls'),require$$0$c=require('os'),require$$1$3=require('path'),require$$0$d=require('fs'),require$$2$2=require('https'),require$$0$e=require('zlib'),require$$0$f=require('url'),require$$0$g=require('vm'),http$5=require('http'),require$$0$i=require('assert'),require$$0$h=require('tty'),node_path=require('node:path'),child_process=require('child_process'),require$$0$j=require('node:events'),require$$0$k=require('buffer'),require$$1$4=require('querystring'),require$$13=require('stream/web'),require$$0$l=require('node:stream'),require$$1$5=require('node:util'),require$$0$m=require('worker_threads'),require$$2$3=require('perf_hooks'),require$$5$2=require('util/types'),require$$4$1=require('async_hooks'),require$$1$7=require('string_decoder'),require$$0$n=require('diagnostics_channel'),require$$0$o=require('timers'),require$$0$q=require('fs/promises'),require$$0$r=require('timers/promises'),require$$5$3=require('constants'),os$3=require('node:os'),process$4=require('node:process'),http$6=require('node:http'),https$6=require('node:https'),zlib$2=require('node:zlib'),fs$9=require('node:fs'),require$$0$s=require('dgram'),require$$2$4=require('node:url');function _interopNamespaceDefault(e){var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var child_process__namespace=/*#__PURE__*/_interopNamespaceDefault(child_process);var os__namespace=/*#__PURE__*/_interopNamespaceDefault(os$3);var process__namespace=/*#__PURE__*/_interopNamespaceDefault(process$4);var http__namespace=/*#__PURE__*/_interopNamespaceDefault(http$6);var https__namespace=/*#__PURE__*/_interopNamespaceDefault(https$6);var zlib__namespace=/*#__PURE__*/_interopNamespaceDefault(zlib$2);// @ts-nocheck
|
|
1
|
+
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var require$$0$6=require('util'),require$$1$6=require('console'),require$$0$p=require('process'),require$$0$9=require('dns'),require$$0$7=require('net'),require$$0$8=require('events'),require$$0$a=require('crypto'),require$$0$b=require('stream'),require$$1$2=require('tls'),require$$0$c=require('os'),require$$1$3=require('path'),require$$0$d=require('fs'),require$$2$2=require('https'),require$$0$e=require('zlib'),require$$0$f=require('url'),require$$0$g=require('vm'),http$5=require('http'),require$$0$i=require('assert'),require$$0$h=require('tty'),node_path=require('node:path'),child_process=require('child_process'),require$$0$j=require('node:events'),require$$0$k=require('buffer'),require$$1$4=require('querystring'),require$$13=require('stream/web'),require$$0$l=require('node:stream'),require$$1$5=require('node:util'),require$$0$m=require('worker_threads'),require$$2$3=require('perf_hooks'),require$$5$2=require('util/types'),require$$4$1=require('async_hooks'),require$$1$7=require('string_decoder'),require$$0$n=require('diagnostics_channel'),require$$0$o=require('timers'),require$$0$q=require('fs/promises'),require$$0$r=require('timers/promises'),require$$5$3=require('constants'),os$3=require('node:os'),process$4=require('node:process'),http$6=require('node:http'),https$6=require('node:https'),zlib$2=require('node:zlib'),fs$9=require('node:fs'),require$$0$s=require('dgram'),require$$2$4=require('node:url'),rustyStoreKv=require('rusty-store-kv');function _interopNamespaceDefault(e){var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var child_process__namespace=/*#__PURE__*/_interopNamespaceDefault(child_process);var os__namespace=/*#__PURE__*/_interopNamespaceDefault(os$3);var process__namespace=/*#__PURE__*/_interopNamespaceDefault(process$4);var http__namespace=/*#__PURE__*/_interopNamespaceDefault(http$6);var https__namespace=/*#__PURE__*/_interopNamespaceDefault(https$6);var zlib__namespace=/*#__PURE__*/_interopNamespaceDefault(zlib$2);// @ts-nocheck
|
|
2
2
|
/**
|
|
3
3
|
* 2011 Peter 'Pita' Martischka
|
|
4
4
|
*
|
|
@@ -326132,23 +326132,7 @@ class Rethink_db extends AbstractDatabase {
|
|
|
326132
326132
|
this.connection.close(callback);
|
|
326133
326133
|
}
|
|
326134
326134
|
}
|
|
326135
|
-
}
|
|
326136
|
-
* 2011 Peter 'Pita' Martischka
|
|
326137
|
-
*
|
|
326138
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
326139
|
-
* you may not use this file except in compliance with the License.
|
|
326140
|
-
* You may obtain a copy of the License at
|
|
326141
|
-
*
|
|
326142
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
326143
|
-
*
|
|
326144
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
326145
|
-
* distributed under the License is distributed on an "AS-IS" BASIS,
|
|
326146
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
326147
|
-
* See the License for the specific language governing permissions and
|
|
326148
|
-
* limitations under the License.
|
|
326149
|
-
*/
|
|
326150
|
-
const escape$1 = (val) => `'${val.replace(/'/g, "''")}'`;
|
|
326151
|
-
class SQLiteDB extends AbstractDatabase {
|
|
326135
|
+
}class SQLiteDB extends AbstractDatabase {
|
|
326152
326136
|
db;
|
|
326153
326137
|
constructor(settings) {
|
|
326154
326138
|
super(settings);
|
|
@@ -326170,73 +326154,38 @@ class SQLiteDB extends AbstractDatabase {
|
|
|
326170
326154
|
}
|
|
326171
326155
|
}
|
|
326172
326156
|
init(callback) {
|
|
326173
|
-
|
|
326174
|
-
try {
|
|
326175
|
-
SQLITEDB = require('better-sqlite3');
|
|
326176
|
-
}
|
|
326177
|
-
catch (err) {
|
|
326178
|
-
throw new Error('better-sqlite3 not found. It was removed from ueberdb\'s dependencies because it requires ' +
|
|
326179
|
-
'compilation which fails on several systems. If you still want to use sqlite, run ' +
|
|
326180
|
-
'"pnpm install better-sqlite3" in your etherpad-lite ./src directory.');
|
|
326181
|
-
}
|
|
326182
|
-
this.db = new SQLITEDB(this.settings.filename);
|
|
326183
|
-
this._query('CREATE TABLE IF NOT EXISTS store (key TEXT PRIMARY KEY, value TEXT)');
|
|
326157
|
+
this.db = new rustyStoreKv.SQLite(this.settings.filename);
|
|
326184
326158
|
callback();
|
|
326185
326159
|
}
|
|
326186
|
-
async _query(sql, params = []) {
|
|
326187
|
-
// It is unclear how util.promisify() deals with variadic functions, so it is not used here.
|
|
326188
|
-
// According to sqlite3's documentation, .run() method (and maybe .all() and .get(); the
|
|
326189
|
-
// documentation is unclear) might call the callback multiple times. That's OK -- ECMAScript
|
|
326190
|
-
// guarantees that it is safe to call a Promise executor's resolve and reject functions
|
|
326191
|
-
// multiple times. The subsequent calls are ignored, except Node.js's 'process' object emits a
|
|
326192
|
-
// 'multipleResolves' event to aid in debugging.
|
|
326193
|
-
return this.db.prepare(sql).run(params);
|
|
326194
|
-
}
|
|
326195
326160
|
get(key, callback) {
|
|
326196
|
-
const res = this.db.
|
|
326197
|
-
callback(null, res ? res
|
|
326161
|
+
const res = this.db.get(key);
|
|
326162
|
+
callback(null, res ? res : null);
|
|
326198
326163
|
}
|
|
326199
326164
|
findKeys(key, notKey, callback) {
|
|
326200
|
-
|
|
326201
|
-
const params = [];
|
|
326202
|
-
// desired keys are %key:%, e.g. pad:%
|
|
326203
|
-
key = key.replace(/\*/g, '%');
|
|
326204
|
-
params.push(key);
|
|
326205
|
-
if (notKey != null) {
|
|
326206
|
-
// not desired keys are notKey:%, e.g. %:%:%
|
|
326207
|
-
notKey = notKey.replace(/\*/g, '%');
|
|
326208
|
-
query += ' AND key NOT LIKE ?';
|
|
326209
|
-
params.push(notKey);
|
|
326210
|
-
}
|
|
326211
|
-
const res = this.db.prepare(query).all(params).map((row) => row.key);
|
|
326165
|
+
const res = this.db?.findKeys(key, notKey);
|
|
326212
326166
|
callback(null, res);
|
|
326213
326167
|
}
|
|
326214
326168
|
set(key, value, callback) {
|
|
326215
|
-
const res = this.db.
|
|
326216
|
-
res
|
|
326169
|
+
const res = this.db.set(key, value);
|
|
326170
|
+
res ? callback(null, null) : callback(null, res);
|
|
326217
326171
|
}
|
|
326218
326172
|
remove(key, callback) {
|
|
326219
|
-
this.db.
|
|
326173
|
+
this.db.remove(key);
|
|
326220
326174
|
callback(null, null);
|
|
326221
326175
|
}
|
|
326222
|
-
handleBulk(bulk) {
|
|
326223
|
-
let statement = '';
|
|
326224
|
-
if (bulk.type === 'set') {
|
|
326225
|
-
statement = `REPLACE INTO store VALUES (${escape$1(bulk.key)}, ${escape$1(bulk.value)});`;
|
|
326226
|
-
}
|
|
326227
|
-
else if (bulk.type === 'remove') {
|
|
326228
|
-
statement = `DELETE FROM store WHERE key = ${escape$1(bulk.key)};\n`;
|
|
326229
|
-
}
|
|
326230
|
-
return statement;
|
|
326231
|
-
}
|
|
326232
326176
|
doBulk(bulk, callback) {
|
|
326233
|
-
const
|
|
326234
|
-
|
|
326235
|
-
|
|
326236
|
-
|
|
326237
|
-
|
|
326177
|
+
const convertedBulk = bulk.map(b => {
|
|
326178
|
+
if (b.value === null) {
|
|
326179
|
+
return {
|
|
326180
|
+
key: b.key,
|
|
326181
|
+
type: b.type
|
|
326182
|
+
};
|
|
326183
|
+
}
|
|
326184
|
+
else {
|
|
326185
|
+
return b;
|
|
326186
|
+
}
|
|
326238
326187
|
});
|
|
326239
|
-
|
|
326188
|
+
this.db.doBulk(convertedBulk);
|
|
326240
326189
|
callback();
|
|
326241
326190
|
}
|
|
326242
326191
|
close(callback) {
|
|
@@ -335363,16 +335312,7 @@ class SurrealDB extends AbstractDatabase {
|
|
|
335363
335312
|
}
|
|
335364
335313
|
}
|
|
335365
335314
|
async init() {
|
|
335366
|
-
|
|
335367
|
-
try {
|
|
335368
|
-
RUSTY_DB = await import('rusty-store-kv');
|
|
335369
|
-
}
|
|
335370
|
-
catch (err) {
|
|
335371
|
-
throw new Error('better-sqlite3 not found. It was removed from ueberdb\'s dependencies because it requires ' +
|
|
335372
|
-
'compilation which fails on several systems. If you still want to use sqlite, run ' +
|
|
335373
|
-
'"pnpm install rusty-store-kv" in your etherpad-lite ./src directory.');
|
|
335374
|
-
}
|
|
335375
|
-
this.db = new RUSTY_DB.KeyValueDB(this.settings.filename);
|
|
335315
|
+
this.db = new rustyStoreKv.KeyValueDB(this.settings.filename);
|
|
335376
335316
|
}
|
|
335377
335317
|
close() {
|
|
335378
335318
|
this.db?.close();
|
package/package.json
CHANGED
|
@@ -28,14 +28,12 @@
|
|
|
28
28
|
"@rollup/plugin-node-resolve": "^15.2.3",
|
|
29
29
|
"@rollup/plugin-terser": "^0.4.4",
|
|
30
30
|
"@types/async": "^3.2.24",
|
|
31
|
-
"@types/better-sqlite3": "^7.6.11",
|
|
32
31
|
"@types/mssql": "^9.1.5",
|
|
33
32
|
"@types/node": "^22.5.4",
|
|
34
33
|
"@types/pg": "^8.11.8",
|
|
35
34
|
"@types/rethinkdb": "^2.3.21",
|
|
36
35
|
"@types/wtfnode": "^0.7.3",
|
|
37
36
|
"async": "^3.2.6",
|
|
38
|
-
"better-sqlite3": "^11.2.1",
|
|
39
37
|
"cassandra-driver": "^4.7.2",
|
|
40
38
|
"cli-table3": "^0.6.5",
|
|
41
39
|
"dirty-ts": "^1.1.8",
|
|
@@ -53,7 +51,7 @@
|
|
|
53
51
|
"rethinkdb": "^2.4.2",
|
|
54
52
|
"rollup": "^4.21.2",
|
|
55
53
|
"rollup-plugin-typescript2": "^0.36.0",
|
|
56
|
-
"rusty-store-kv": "^1.
|
|
54
|
+
"rusty-store-kv": "^1.2.0",
|
|
57
55
|
"semver": "^7.6.3",
|
|
58
56
|
"simple-git": "^3.26.0",
|
|
59
57
|
"surrealdb.js": "^0.11.1",
|
|
@@ -67,7 +65,7 @@
|
|
|
67
65
|
"url": "https://github.com/ether/ueberDB.git"
|
|
68
66
|
},
|
|
69
67
|
"main": "./dist/index.js",
|
|
70
|
-
"version": "4.2.
|
|
68
|
+
"version": "4.2.103",
|
|
71
69
|
"bugs": {
|
|
72
70
|
"url": "https://github.com/ether/ueberDB/issues"
|
|
73
71
|
},
|