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: any | null | undefined;
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): any;
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;AAEvD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,gBAAgB;IAClD,EAAE,EAAE,GAAG,GAAG,IAAI,GAAG,SAAS,CAAA;gBAGd,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;IAaV,KAAK;IAKL,MAAM,CAAC,GAAG,EAAE,MAAM;IAIlB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAS9B,OAAO;CAGV"}
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: any | null;
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;AAwBnE,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,gBAAgB;IAC7C,EAAE,EAAE,GAAG,GAAC,IAAI,CAAC;gBACR,QAAQ,EAAC,QAAQ;IAsB7B,IAAI,CAAC,QAAQ,EAAE,QAAQ;IAejB,MAAM,CAAC,GAAG,EAAC,MAAM,EAAE,MAAM,UAAK;IAYpC,GAAG,CAAC,GAAG,EAAC,MAAM,EAAE,QAAQ,EAAC,QAAQ;IAKjC,QAAQ,CAAC,GAAG,EAAC,MAAM,EAAE,MAAM,EAAC,MAAM,EAAE,QAAQ,EAAC,QAAQ;IAkBrD,GAAG,CAAC,GAAG,EAAC,MAAM,EAAE,KAAK,EAAC,MAAM,EAAE,QAAQ,EAAC,QAAQ;IAK/C,MAAM,CAAC,GAAG,EAAC,MAAM,EAAE,QAAQ,EAAC,QAAQ;IAKpC,UAAU,CAAC,IAAI,EAAC,UAAU;IAS1B,MAAM,CAAC,IAAI,EAAC,UAAU,EAAE,EAAE,QAAQ,EAAC,QAAQ;IAW3C,KAAK,CAAC,QAAQ,EAAE,QAAQ;CAIzB"}
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
- let SQLITEDB;
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.prepare('SELECT value FROM store WHERE key = ?').get(key);
326197
- callback(null, res ? res.value : null);
326161
+ const res = this.db.get(key);
326162
+ callback(null, res ? res : null);
326198
326163
  }
326199
326164
  findKeys(key, notKey, callback) {
326200
- let query = 'SELECT key FROM store WHERE key LIKE ?';
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.prepare('REPLACE INTO store VALUES (?,?)').run(key, value);
326216
- res.changes === 0 ? callback(null, null) : callback(null, res.lastInsertRowid);
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.prepare('DELETE FROM store WHERE key = ?').run(key);
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 transaction = this.db.transaction((bulk) => {
326234
- bulk.forEach(b => {
326235
- let sql = this.handleBulk(b);
326236
- this.db.prepare(sql).run();
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
- transaction(bulk);
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
- let RUSTY_DB;
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.1.4",
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.102",
68
+ "version": "4.2.103",
71
69
  "bugs": {
72
70
  "url": "https://github.com/ether/ueberDB/issues"
73
71
  },