tool-db 1.3.0 → 1.3.1
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/README.md +42 -3
- package/dist/metrics/metricsConfig.d.ts +6 -0
- package/dist/metrics/metricsConfig.js +35 -0
- package/dist/metrics/metricsConfig.js.map +1 -0
- package/dist/toolDbClientOnMessage.js +1 -0
- package/dist/toolDbClientOnMessage.js.map +1 -1
- package/dist/toolDbNetwork.js.map +1 -1
- package/dist/tooldb.d.ts +3 -1
- package/dist/tooldb.js +84 -62
- package/dist/tooldb.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@ This setup IS NOT a requirement! It is just what I think is the best and most re
|
|
|
12
12
|
Since anyone can join a federated server swarm to help growing the network we use cryptography (basic public and private key authenthication and signature validation) to ensure all messages are coming from the real authors of the data that they intend to modify; this way by joining a swarm all peers in it can help validate without even having full data; even a new server peer can help, because all information is stored on each message and we dont rely on any centralized database to fetch users data.
|
|
13
13
|
|
|
14
14
|
Please check the [chain-swarm](https://github.com/Manuel-777/chain-swarm) repository to see how a federated server swarm would look like, Tool Db only handles the connection and messaging between peers, but it does not have any logic for peer discovery.
|
|
15
|
-
We do that using [discovery-channel](https://www.npmjs.com/package/discovery-channel), but you can use any DHT solution you want!
|
|
15
|
+
We do that using [discovery-channel](https://www.npmjs.com/package/discovery-channel), but you can use any DHT solution you want! even WebRTC between browsers could work.
|
|
16
16
|
|
|
17
17
|
## Base usage
|
|
18
18
|
Connect to the selected toolDb peers;
|
|
@@ -21,26 +21,65 @@ const client = new ToolDb(options);
|
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
These are the options you can pass to the constructor:
|
|
24
|
+
|
|
24
25
|
```
|
|
25
26
|
{
|
|
26
27
|
// Database name to use
|
|
27
28
|
db: string;
|
|
29
|
+
|
|
28
30
|
// Show debug console logs
|
|
29
31
|
debug: boolean;
|
|
30
|
-
|
|
31
|
-
peers:
|
|
32
|
+
|
|
33
|
+
// Array of peers to connect to, each one in the form of { host: "127.0.0.1", port: 9000 }
|
|
34
|
+
peers: { host: "127.0.0.1", port: 9000 }[];
|
|
35
|
+
|
|
32
36
|
// Max number of tries when a connection fails
|
|
33
37
|
maxRetries: number;
|
|
38
|
+
|
|
39
|
+
// How long to wait (max) for a debounced key listener recv
|
|
40
|
+
triggerDebouce: number;
|
|
41
|
+
|
|
34
42
|
// How long to wait between retries
|
|
35
43
|
wait: number;
|
|
44
|
+
|
|
36
45
|
// If you want to force a Proof of Work on all messages, set how much (zero is no POW)
|
|
37
46
|
pow: number;
|
|
47
|
+
|
|
38
48
|
// Weter we are a server or not
|
|
39
49
|
server: boolean;
|
|
50
|
+
|
|
51
|
+
// Our hostname (server only)
|
|
52
|
+
host: string
|
|
53
|
+
|
|
40
54
|
// Port to listen incoming connections (server only)
|
|
41
55
|
port: number;
|
|
56
|
+
|
|
57
|
+
// A server instance like Express (server only)
|
|
58
|
+
httpServer: HTTPServer | HTTPSServer | undefined;
|
|
59
|
+
|
|
60
|
+
// Our storage namespace (default is "tooldb")
|
|
61
|
+
storageName: string;
|
|
62
|
+
|
|
63
|
+
// A custom network adapter class
|
|
64
|
+
networkAdapter: typeof ToolDbNetworkAdapter;
|
|
65
|
+
|
|
66
|
+
// A custom storage adapter function
|
|
67
|
+
storageAdapter: ToolDbStorageAdapter;
|
|
68
|
+
|
|
69
|
+
// Our client ID (defaults to a random ID)
|
|
70
|
+
id: string;
|
|
71
|
+
|
|
72
|
+
// The namespace/topic of our app
|
|
73
|
+
topic: string;
|
|
74
|
+
|
|
75
|
+
// Public and private (ECDSA) keys of our client. In the default network adapter these are used to sign
|
|
76
|
+
// our messages as we join and leave the network, and public key should match the client ID.
|
|
77
|
+
publicKey: CryptoKey | undefined;
|
|
78
|
+
privateKey: CryptoKey | undefined;
|
|
42
79
|
}
|
|
43
80
|
```
|
|
81
|
+
Notice you can use your own network and storage modules if you would like to implement custom solutions for peers discovery, connections, storage, etc, the default adapters will work both on nodejs and the browser.
|
|
82
|
+
|
|
44
83
|
|
|
45
84
|
You can create a user, sign in or create a random set of keys for anonymous usage;
|
|
46
85
|
```
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const activeListenersCounter: import("@opentelemetry/api-metrics").UpDownCounter;
|
|
2
|
+
export declare const idListenersCounter: import("@opentelemetry/api-metrics").UpDownCounter;
|
|
3
|
+
export declare const messagesCounter: import("@opentelemetry/api-metrics").Counter;
|
|
4
|
+
export declare const messagesGetCounter: import("@opentelemetry/api-metrics").Counter;
|
|
5
|
+
export declare const messagesPutCounter: import("@opentelemetry/api-metrics").Counter;
|
|
6
|
+
export declare const clientsCounter: import("@opentelemetry/api-metrics").Histogram;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.clientsCounter = exports.messagesPutCounter = exports.messagesGetCounter = exports.messagesCounter = exports.idListenersCounter = exports.activeListenersCounter = void 0;
|
|
4
|
+
var exporter_prometheus_1 = require("@opentelemetry/exporter-prometheus");
|
|
5
|
+
var sdk_metrics_base_1 = require("@opentelemetry/sdk-metrics-base");
|
|
6
|
+
var prometheusPort = exporter_prometheus_1.PrometheusExporter.DEFAULT_OPTIONS.port;
|
|
7
|
+
var prometheusEndpoint = exporter_prometheus_1.PrometheusExporter.DEFAULT_OPTIONS.endpoint;
|
|
8
|
+
var exporter = new exporter_prometheus_1.PrometheusExporter({
|
|
9
|
+
port: 9464,
|
|
10
|
+
}, function () {
|
|
11
|
+
console.log("prometheus scrape endpoint: http://localhost:" + prometheusPort + prometheusEndpoint);
|
|
12
|
+
});
|
|
13
|
+
var meter = new sdk_metrics_base_1.MeterProvider({
|
|
14
|
+
exporter: exporter,
|
|
15
|
+
interval: 1000,
|
|
16
|
+
}).getMeter("tooldb");
|
|
17
|
+
exports.activeListenersCounter = meter.createUpDownCounter("tooldb_active_listeners", {
|
|
18
|
+
description: "Current active listeners count",
|
|
19
|
+
});
|
|
20
|
+
exports.idListenersCounter = meter.createUpDownCounter("tooldb_id_listeners", {
|
|
21
|
+
description: "Current ID listeners count",
|
|
22
|
+
});
|
|
23
|
+
exports.messagesCounter = meter.createCounter("tooldb_messages", {
|
|
24
|
+
description: "Messages counter",
|
|
25
|
+
});
|
|
26
|
+
exports.messagesGetCounter = meter.createCounter("tooldb_get", {
|
|
27
|
+
description: "Messages GET counter",
|
|
28
|
+
});
|
|
29
|
+
exports.messagesPutCounter = meter.createCounter("tooldb_put", {
|
|
30
|
+
description: "Messages PUT counter",
|
|
31
|
+
});
|
|
32
|
+
exports.clientsCounter = meter.createHistogram("tooldb_connected_peers", {
|
|
33
|
+
description: "Current connected clients",
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=metricsConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metricsConfig.js","sourceRoot":"","sources":["../../src/metrics/metricsConfig.ts"],"names":[],"mappings":";;;AAAA,0EAAwE;AACxE,oEAAgE;AAEhE,IAAM,cAAc,GAAG,wCAAkB,CAAC,eAAe,CAAC,IAAI,CAAC;AAC/D,IAAM,kBAAkB,GAAG,wCAAkB,CAAC,eAAe,CAAC,QAAQ,CAAC;AAEvE,IAAM,QAAQ,GAAG,IAAI,wCAAkB,CACrC;IACE,IAAI,EAAE,IAAI;CACX,EACD;IACE,OAAO,CAAC,GAAG,CACT,kDAAgD,cAAc,GAAG,kBAAoB,CACtF,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,IAAM,KAAK,GAAG,IAAI,gCAAa,CAAC;IAC9B,QAAQ,UAAA;IACR,QAAQ,EAAE,IAAI;CACf,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAET,QAAA,sBAAsB,GAAG,KAAK,CAAC,mBAAmB,CAC7D,yBAAyB,EACzB;IACE,WAAW,EAAE,gCAAgC;CAC9C,CACF,CAAC;AAEW,QAAA,kBAAkB,GAAG,KAAK,CAAC,mBAAmB,CACzD,qBAAqB,EACrB;IACE,WAAW,EAAE,4BAA4B;CAC1C,CACF,CAAC;AAEW,QAAA,eAAe,GAAG,KAAK,CAAC,aAAa,CAAC,iBAAiB,EAAE;IACpE,WAAW,EAAE,kBAAkB;CAChC,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE;IAClE,WAAW,EAAE,sBAAsB;CACpC,CAAC,CAAC;AAEU,QAAA,kBAAkB,GAAG,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE;IAClE,WAAW,EAAE,sBAAsB;CACpC,CAAC,CAAC;AAEU,QAAA,cAAc,GAAG,KAAK,CAAC,eAAe,CAAC,wBAAwB,EAAE;IAC5E,WAAW,EAAE,2BAA2B;CACzC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolDbClientOnMessage.js","sourceRoot":"","sources":["../src/toolDbClientOnMessage.ts"],"names":[],"mappings":";;AAGA,SAAwB,qBAAqB,CAE3C,OAAsB,EACtB,YAAoB;IAEpB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACpC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;KACtC;IACD,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QACxD,gBAAgB;QAChB,4EAA4E;QAC5E,KAAK;QACL,OAAO;KACR;IAED,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACjD,gBAAgB;IAChB,qCAAqC;IACrC,kBAAkB;IAClB,6BAA6B;IAC7B,eAAe;IACf,KAAK;IACL,oEAAoE;IAEpE,wCAAwC;IACxC,IAAI,OAAO,CAAC,EAAE,EAAE;QACd,IAAM,KAAK,GAAG,OAAO,CAAC,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;YAC5B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAC9B;KACF;IAED,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;QACvD,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,OAAO,EAAE,OAAO,OAAO,CAAC,CAAC;QAC7D,OAAO;KACR;IAED,QAAQ,OAAO,CAAC,IAAI,EAAE;QACpB,KAAK,MAAM;YACT,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACvC,MAAM;QAER,KAAK,MAAM;YACT,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACvC,MAAM;QAER,KAAK,WAAW;YACd,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC5C,MAAM;QAER,KAAK,KAAK;YACR,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACtC,MAAM;QAER,KAAK,KAAK;YACR,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACtC,MAAM;QAER,KAAK,SAAS;YACZ,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC1C,MAAM;QAER,KAAK,SAAS;YACZ,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC1C,MAAM;QAER,KAAK,OAAO;YACV,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACxC,MAAM;QAER,KAAK,MAAM;YACT,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACvC,MAAM;QAER;YACE,MAAM;KACT;AACH,CAAC;
|
|
1
|
+
{"version":3,"file":"toolDbClientOnMessage.js","sourceRoot":"","sources":["../src/toolDbClientOnMessage.ts"],"names":[],"mappings":";;AAGA,SAAwB,qBAAqB,CAE3C,OAAsB,EACtB,YAAoB;IAEpB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACpC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;KACtC;IACD,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QACxD,gBAAgB;QAChB,4EAA4E;QAC5E,KAAK;QACL,OAAO;KACR;IAED,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAE5C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACjD,gBAAgB;IAChB,qCAAqC;IACrC,kBAAkB;IAClB,6BAA6B;IAC7B,eAAe;IACf,KAAK;IACL,oEAAoE;IAEpE,wCAAwC;IACxC,IAAI,OAAO,CAAC,EAAE,EAAE;QACd,IAAM,KAAK,GAAG,OAAO,CAAC,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;YAC5B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAC9B;KACF;IAED,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;QACvD,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,OAAO,EAAE,OAAO,OAAO,CAAC,CAAC;QAC7D,OAAO;KACR;IAED,QAAQ,OAAO,CAAC,IAAI,EAAE;QACpB,KAAK,MAAM;YACT,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACvC,MAAM;QAER,KAAK,MAAM;YACT,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACvC,MAAM;QAER,KAAK,WAAW;YACd,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC5C,MAAM;QAER,KAAK,KAAK;YACR,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACtC,MAAM;QAER,KAAK,KAAK;YACR,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACtC,MAAM;QAER,KAAK,SAAS;YACZ,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC1C,MAAM;QAER,KAAK,SAAS;YACZ,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC1C,MAAM;QAER,KAAK,OAAO;YACV,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACxC,MAAM;QAER,KAAK,MAAM;YACT,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACvC,MAAM;QAER;YACE,MAAM;KACT;AACH,CAAC;AAhFD,wCAgFC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolDbNetwork.js","sourceRoot":"","sources":["../src/toolDbNetwork.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAuB;AACvB,0CAA2B;AAC3B,sBAAyE;AAmBzE;IA2CE,uBAAY,EAAU;QAAtB,
|
|
1
|
+
{"version":3,"file":"toolDbNetwork.js","sourceRoot":"","sources":["../src/toolDbNetwork.ts"],"names":[],"mappings":"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"}
|
package/dist/tooldb.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import { Peer, ToolDbOptions } from "./types/tooldb";
|
|
2
3
|
import toolDbGet from "./toolDbGet";
|
|
3
4
|
import toolDbPut from "./toolDbPut";
|
|
@@ -23,6 +24,7 @@ import handleGet from "./messageHandlers/handleGet";
|
|
|
23
24
|
import handlePut from "./messageHandlers/handlePut";
|
|
24
25
|
import handleQuery from "./messageHandlers/handleQuery";
|
|
25
26
|
import handleSubscribe from "./messageHandlers/handleSubscribe";
|
|
27
|
+
import EventEmitter from "events";
|
|
26
28
|
export interface Listener {
|
|
27
29
|
key: string;
|
|
28
30
|
timeout: number | null;
|
|
@@ -32,7 +34,7 @@ interface Verificator<T> {
|
|
|
32
34
|
key: string;
|
|
33
35
|
fn: (msg: VerificationData<T>) => Promise<boolean>;
|
|
34
36
|
}
|
|
35
|
-
export default class ToolDb {
|
|
37
|
+
export default class ToolDb extends EventEmitter {
|
|
36
38
|
private _network;
|
|
37
39
|
private _store;
|
|
38
40
|
private _peers;
|
package/dist/tooldb.js
CHANGED
|
@@ -1,4 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
2
17
|
var __assign = (this && this.__assign) || function () {
|
|
3
18
|
__assign = Object.assign || function(t) {
|
|
4
19
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
@@ -40,76 +55,77 @@ var handleGet_1 = __importDefault(require("./messageHandlers/handleGet"));
|
|
|
40
55
|
var handlePut_1 = __importDefault(require("./messageHandlers/handlePut"));
|
|
41
56
|
var handleQuery_1 = __importDefault(require("./messageHandlers/handleQuery"));
|
|
42
57
|
var handleSubscribe_1 = __importDefault(require("./messageHandlers/handleSubscribe"));
|
|
43
|
-
var
|
|
58
|
+
var events_1 = __importDefault(require("events"));
|
|
59
|
+
var ToolDb = /** @class */ (function (_super) {
|
|
60
|
+
__extends(ToolDb, _super);
|
|
44
61
|
function ToolDb(options) {
|
|
45
|
-
var _this = this;
|
|
46
62
|
if (options === void 0) { options = {}; }
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
63
|
+
var _this = _super.call(this) || this;
|
|
64
|
+
_this._peers = [];
|
|
65
|
+
_this._documents = {};
|
|
66
|
+
_this.clientOnMessage = toolDbClientOnMessage_1.default;
|
|
67
|
+
_this._subscriptions = [];
|
|
68
|
+
_this._processedIds = {};
|
|
69
|
+
_this.subscribeData = toolDbSubscribe_1.default;
|
|
53
70
|
// Emitted when there are no more server peers connected to
|
|
54
|
-
|
|
71
|
+
_this.onDisconnect = function () {
|
|
55
72
|
//
|
|
56
73
|
};
|
|
57
74
|
// Emitted when a server peer responds with "pong"
|
|
58
|
-
|
|
75
|
+
_this.onConnect = function () {
|
|
59
76
|
//
|
|
60
77
|
};
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
78
|
+
_this.loadCrdtDocument = loadCrdtDocument_1.default;
|
|
79
|
+
_this.getData = toolDbGet_1.default;
|
|
80
|
+
_this.putData = toolDbPut_1.default;
|
|
81
|
+
_this.putCrdt = toolDbCrdtPut_1.default;
|
|
82
|
+
_this.queryKeys = toolDbQueryKeys_1.default;
|
|
83
|
+
_this.getPubKey = toolDbGetPubKey_1.default;
|
|
84
|
+
_this.signIn = toolDbSignIn_1.default;
|
|
85
|
+
_this.anonSignIn = toolDbAnonSignIn_1.default;
|
|
86
|
+
_this.keysSignIn = toolDbKeysSignIn_1.default;
|
|
87
|
+
_this.signUp = toolDbSignUp_1.default;
|
|
88
|
+
_this.verify = toolDbVerificationWrapper_1.default;
|
|
72
89
|
// All message handlers go here
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
90
|
+
_this.handlePing = handlePing_1.default;
|
|
91
|
+
_this.handlePong = handlePong_1.default;
|
|
92
|
+
_this.handleCrdt = handleCrdt_1.default;
|
|
93
|
+
_this.handleCrdtGet = handleCrdtGet_1.default;
|
|
94
|
+
_this.handleCrdtPut = handleCrdtPut_1.default;
|
|
95
|
+
_this.handleGet = handleGet_1.default;
|
|
96
|
+
_this.handlePut = handlePut_1.default;
|
|
97
|
+
_this.handleQuery = handleQuery_1.default;
|
|
98
|
+
_this.handleSubscribe = handleSubscribe_1.default;
|
|
82
99
|
/**
|
|
83
100
|
* id listeners listen for a specific message ID just once
|
|
84
101
|
*/
|
|
85
|
-
|
|
86
|
-
|
|
102
|
+
_this._idListeners = {};
|
|
103
|
+
_this.addIdListener = function (id, fn) {
|
|
87
104
|
_this._idListeners[id] = fn;
|
|
88
105
|
};
|
|
89
|
-
|
|
106
|
+
_this.removeIdListener = function (id) {
|
|
90
107
|
delete _this._idListeners[id];
|
|
91
108
|
};
|
|
92
109
|
/**
|
|
93
110
|
* Key listeners listen for a specific key, as long as the listener remains active
|
|
94
111
|
*/
|
|
95
|
-
|
|
96
|
-
|
|
112
|
+
_this._keyListeners = [];
|
|
113
|
+
_this.addKeyListener = function (key, fn) {
|
|
97
114
|
var newListener = {
|
|
98
115
|
key: key,
|
|
99
116
|
timeout: null,
|
|
100
117
|
fn: fn,
|
|
101
118
|
};
|
|
102
|
-
_this._keyListeners.push(newListener);
|
|
103
119
|
return _this._keyListeners.length;
|
|
104
120
|
};
|
|
105
|
-
|
|
121
|
+
_this.removeKeyListener = function (id) {
|
|
106
122
|
var _a, _b;
|
|
107
123
|
if ((_a = _this._keyListeners[id]) === null || _a === void 0 ? void 0 : _a.timeout) {
|
|
108
124
|
clearTimeout(((_b = _this._keyListeners[id]) === null || _b === void 0 ? void 0 : _b.timeout) || undefined);
|
|
109
125
|
}
|
|
110
126
|
_this._keyListeners[id] = null;
|
|
111
127
|
};
|
|
112
|
-
|
|
128
|
+
_this.triggerKeyListener = function (key, message) {
|
|
113
129
|
// console.warn(`triggerKeyListener ${key}`);
|
|
114
130
|
_this._keyListeners.forEach(function (listener) {
|
|
115
131
|
if ((listener === null || listener === void 0 ? void 0 : listener.key) === key) {
|
|
@@ -124,8 +140,8 @@ var ToolDb = /** @class */ (function () {
|
|
|
124
140
|
/**
|
|
125
141
|
* Custom verificators can enhance default verification on any key field
|
|
126
142
|
*/
|
|
127
|
-
|
|
128
|
-
|
|
143
|
+
_this._customVerificator = [];
|
|
144
|
+
_this.addCustomVerification = function (key, fn) {
|
|
129
145
|
var newListener = {
|
|
130
146
|
key: key,
|
|
131
147
|
fn: fn,
|
|
@@ -133,11 +149,11 @@ var ToolDb = /** @class */ (function () {
|
|
|
133
149
|
_this._customVerificator.push(newListener);
|
|
134
150
|
return _this._customVerificator.length;
|
|
135
151
|
};
|
|
136
|
-
|
|
152
|
+
_this.removeCustomVerification = function (id) {
|
|
137
153
|
_this._customVerificator[id] = null;
|
|
138
154
|
};
|
|
139
|
-
|
|
140
|
-
|
|
155
|
+
_this.user = undefined;
|
|
156
|
+
_this._options = {
|
|
141
157
|
db: "tooldb",
|
|
142
158
|
peers: [],
|
|
143
159
|
maxRetries: 5,
|
|
@@ -152,29 +168,35 @@ var ToolDb = /** @class */ (function () {
|
|
|
152
168
|
networkAdapter: toolDbNetwork_1.default,
|
|
153
169
|
storageName: "tooldb",
|
|
154
170
|
storageAdapter: typeof window === "undefined" ? leveldb_1.default : indexedb_1.default,
|
|
155
|
-
id:
|
|
171
|
+
id: "",
|
|
156
172
|
topic: "tool-db-default",
|
|
157
173
|
publicKey: undefined,
|
|
158
174
|
privateKey: undefined,
|
|
159
175
|
};
|
|
160
|
-
|
|
161
|
-
(
|
|
162
|
-
.
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
176
|
+
_this._options = __assign(__assign({}, _this.options), options);
|
|
177
|
+
if (_this._options.id === "") {
|
|
178
|
+
(0, _1.generateKeyPair)("ECDSA", false)
|
|
179
|
+
.then(function (key) {
|
|
180
|
+
if (key.publicKey && key.privateKey) {
|
|
181
|
+
_this._options.publicKey = key.publicKey;
|
|
182
|
+
_this._options.privateKey = key.privateKey;
|
|
183
|
+
(0, _1.exportKey)("spki", key.publicKey).then(function (skpub) {
|
|
184
|
+
_this._options.id = (0, _1.encodeKeyString)(skpub);
|
|
185
|
+
if (_this._options.debug) {
|
|
186
|
+
console.log("My ID is:", _this._options.id);
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
})
|
|
191
|
+
.catch(console.warn);
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
_this._options.id = (0, _1.sha1)((0, _1.textRandom)(100) + "-" + new Date().getTime());
|
|
195
|
+
}
|
|
175
196
|
// These could be made to be customizable by setting the variables as public
|
|
176
|
-
|
|
177
|
-
|
|
197
|
+
_this._network = new _this.options.networkAdapter(_this);
|
|
198
|
+
_this._store = _this.options.storageAdapter(_this.options.storageName);
|
|
199
|
+
return _this;
|
|
178
200
|
}
|
|
179
201
|
Object.defineProperty(ToolDb.prototype, "subscriptions", {
|
|
180
202
|
get: function () {
|
|
@@ -230,6 +252,6 @@ var ToolDb = /** @class */ (function () {
|
|
|
230
252
|
configurable: true
|
|
231
253
|
});
|
|
232
254
|
return ToolDb;
|
|
233
|
-
}());
|
|
255
|
+
}(events_1.default));
|
|
234
256
|
exports.default = ToolDb;
|
|
235
257
|
//# sourceMappingURL=tooldb.js.map
|
package/dist/tooldb.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooldb.js","sourceRoot":"","sources":["../src/tooldb.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tooldb.js","sourceRoot":"","sources":["../src/tooldb.ts"],"names":[],"mappings":"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"}
|