tool-db 2.1.2 → 2.2.0
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/bundle.js +1 -1
- package/dist/crdt/listCrdt.d.ts +2 -2
- package/dist/index.d.ts +14 -6
- package/dist/index.js +22 -12
- package/dist/index.js.map +1 -1
- package/dist/messageHandlers/handleCrdtPut.js +3 -3
- package/dist/messageHandlers/handleCrdtPut.js.map +1 -1
- package/dist/messageHandlers/handleJoin.js +24 -20
- package/dist/messageHandlers/handleJoin.js.map +1 -1
- package/dist/messageHandlers/handlePing.js +1 -1
- package/dist/messageHandlers/handlePing.js.map +1 -1
- package/dist/messageHandlers/handlePong.js +5 -5
- package/dist/messageHandlers/handlePong.js.map +1 -1
- package/dist/messageHandlers/handleServers.js +9 -8
- package/dist/messageHandlers/handleServers.js.map +1 -1
- package/dist/toolDbAnonSignIn.js +1 -6
- package/dist/toolDbAnonSignIn.js.map +1 -1
- package/dist/toolDbCrdtGet.js +4 -2
- package/dist/toolDbCrdtGet.js.map +1 -1
- package/dist/toolDbCrdtPut.js +9 -7
- package/dist/toolDbCrdtPut.js.map +1 -1
- package/dist/toolDbGet.js +4 -2
- package/dist/toolDbGet.js.map +1 -1
- package/dist/toolDbKeysSignIn.d.ts +1 -1
- package/dist/toolDbKeysSignIn.js +4 -2
- package/dist/toolDbKeysSignIn.js.map +1 -1
- package/dist/toolDbNetwork.d.ts +4 -16
- package/dist/toolDbNetwork.js +74 -179
- package/dist/toolDbNetwork.js.map +1 -1
- package/dist/toolDbNetworkAdapter.d.ts +57 -0
- package/dist/toolDbNetworkAdapter.js +192 -0
- package/dist/toolDbNetworkAdapter.js.map +1 -0
- package/dist/toolDbPut.js +7 -7
- package/dist/toolDbPut.js.map +1 -1
- package/dist/toolDbQueryKeys.js +3 -2
- package/dist/toolDbQueryKeys.js.map +1 -1
- package/dist/toolDbSignIn.d.ts +1 -2
- package/dist/toolDbSignIn.js +2 -2
- package/dist/toolDbSignIn.js.map +1 -1
- package/dist/toolDbSignUp.js +6 -6
- package/dist/toolDbSignUp.js.map +1 -1
- package/dist/toolDbSubscribe.js +4 -2
- package/dist/toolDbSubscribe.js.map +1 -1
- package/dist/toolDbWeb3User.d.ts +20 -0
- package/dist/toolDbWeb3User.js +75 -0
- package/dist/toolDbWeb3User.js.map +1 -0
- package/dist/toolDbWebrtc.d.ts +2 -12
- package/dist/toolDbWebrtc.js +69 -104
- package/dist/toolDbWebrtc.js.map +1 -1
- package/dist/toolDbWebsocket.d.ts +19 -0
- package/dist/toolDbWebsocket.js +193 -0
- package/dist/toolDbWebsocket.js.map +1 -0
- package/dist/tooldb.d.ts +6 -15
- package/dist/tooldb.js +24 -54
- package/dist/tooldb.js.map +1 -1
- package/dist/types/tooldb.d.ts +16 -10
- package/dist/types/tooldb.js +27 -13
- package/dist/types/tooldb.js.map +1 -1
- package/dist/utils/getPeerSignature.d.ts +2 -2
- package/dist/utils/getPeerSignature.js +1 -1
- package/dist/utils/getPeerSignature.js.map +1 -1
- package/dist/utils/randomAnimal.js +36 -1
- package/dist/utils/randomAnimal.js.map +1 -1
- package/dist/utils/verifyMessage.js +4 -3
- package/dist/utils/verifyMessage.js.map +1 -1
- package/dist/utils/verifyPeer.d.ts +1 -1
- package/dist/utils/verifyPeer.js +7 -3
- package/dist/utils/verifyPeer.js.map +1 -1
- package/package.json +1 -1
- package/test-alice/000663.ldb +0 -0
- package/test-alice/000665.ldb +0 -0
- package/test-alice/000668.ldb +0 -0
- package/test-alice/000669.log +0 -0
- package/test-alice/CURRENT +1 -1
- package/test-alice/LOG +5 -5
- package/test-alice/LOG.old +5 -5
- package/test-alice/MANIFEST-000667 +0 -0
- package/test-alice-speed/000035.log +0 -0
- package/test-alice-speed/000036.ldb +0 -0
- package/test-alice-speed/CURRENT +1 -1
- package/test-alice-speed/LOG +13 -14
- package/test-alice-speed/LOG.old +5 -5
- package/test-alice-speed/MANIFEST-000033 +0 -0
- package/test-bob/000665.ldb +0 -0
- package/test-bob/000667.ldb +0 -0
- package/test-bob/000668.log +0 -0
- package/test-bob/CURRENT +1 -1
- package/test-bob/LOG +5 -5
- package/test-bob/LOG.old +14 -5
- package/test-bob/MANIFEST-000666 +0 -0
- package/test-node-a/000663.ldb +0 -0
- package/test-node-a/000665.ldb +0 -0
- package/test-node-a/000668.ldb +0 -0
- package/test-node-a/000669.log +0 -0
- package/test-node-a/CURRENT +1 -1
- package/test-node-a/LOG +5 -5
- package/test-node-a/LOG.old +5 -5
- package/test-node-a/MANIFEST-000667 +0 -0
- package/test-node-b/000663.ldb +0 -0
- package/test-node-b/000665.ldb +0 -0
- package/test-node-b/000668.ldb +0 -0
- package/test-node-b/000669.log +0 -0
- package/test-node-b/CURRENT +1 -1
- package/test-node-b/LOG +5 -5
- package/test-node-b/LOG.old +5 -5
- package/test-node-b/MANIFEST-000667 +0 -0
- package/test-verify-a/{000212.log → 000250.log} +0 -0
- package/test-verify-a/CURRENT +1 -1
- package/test-verify-a/LOG +3 -3
- package/test-verify-a/LOG.old +3 -3
- package/test-verify-a/{MANIFEST-000211 → MANIFEST-000249} +0 -0
- package/test-alice/000425.ldb +0 -0
- package/test-alice/000427.ldb +0 -0
- package/test-alice/000430.ldb +0 -0
- package/test-alice/000431.log +0 -0
- package/test-alice/MANIFEST-000429 +0 -0
- package/test-alice-speed/000236.log +0 -0
- package/test-alice-speed/000237.ldb +0 -0
- package/test-alice-speed/MANIFEST-000234 +0 -0
- package/test-bob/000425.ldb +0 -0
- package/test-bob/000427.ldb +0 -0
- package/test-bob/000430.ldb +0 -0
- package/test-bob/000431.log +0 -0
- package/test-bob/MANIFEST-000429 +0 -0
- package/test-node-a/000425.ldb +0 -0
- package/test-node-a/000427.ldb +0 -0
- package/test-node-a/000430.ldb +0 -0
- package/test-node-a/000431.log +0 -0
- package/test-node-a/MANIFEST-000429 +0 -0
- package/test-node-b/000425.ldb +0 -0
- package/test-node-b/000427.ldb +0 -0
- package/test-node-b/000430.ldb +0 -0
- package/test-node-b/000431.log +0 -0
- package/test-node-b/MANIFEST-000429 +0 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import WebSocket from "ws";
|
|
2
|
+
import ToolDb from "./tooldb";
|
|
3
|
+
import ToolDbNetworkAdapter from "./toolDbNetworkAdapter";
|
|
4
|
+
export default class ToolDbWebsocket extends ToolDbNetworkAdapter {
|
|
5
|
+
private wnd;
|
|
6
|
+
private _wss;
|
|
7
|
+
private server;
|
|
8
|
+
private _connections;
|
|
9
|
+
private _awaitingConnections;
|
|
10
|
+
private removeFromAwaiting;
|
|
11
|
+
constructor(db: ToolDb);
|
|
12
|
+
/**
|
|
13
|
+
* Open a connection to a server
|
|
14
|
+
* @param url URL of the server (including port)
|
|
15
|
+
* @returns websocket
|
|
16
|
+
*/
|
|
17
|
+
connectTo: (host: string, port: number, connectionId?: string | undefined) => WebSocket | undefined;
|
|
18
|
+
private reconnect;
|
|
19
|
+
}
|
|
@@ -0,0 +1,193 @@
|
|
|
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
|
+
})();
|
|
17
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
var ws_1 = __importDefault(require("ws"));
|
|
22
|
+
var _1 = require(".");
|
|
23
|
+
var toolDbNetworkAdapter_1 = __importDefault(require("./toolDbNetworkAdapter"));
|
|
24
|
+
var ToolDbWebsocket = /** @class */ (function (_super) {
|
|
25
|
+
__extends(ToolDbWebsocket, _super);
|
|
26
|
+
function ToolDbWebsocket(db) {
|
|
27
|
+
var _this = _super.call(this, db) || this;
|
|
28
|
+
_this.wnd = typeof window === "undefined" ? undefined : window;
|
|
29
|
+
_this._wss = _this.wnd
|
|
30
|
+
? _this.wnd.WebSocket || _this.wnd.webkitWebSocket || _this.wnd.mozWebSocket
|
|
31
|
+
: ws_1.default;
|
|
32
|
+
_this.server = null;
|
|
33
|
+
_this._connections = {};
|
|
34
|
+
_this._awaitingConnections = [];
|
|
35
|
+
_this.removeFromAwaiting = function (id) {
|
|
36
|
+
var index = _this._awaitingConnections.findIndex(function (c) { return c.id === id; });
|
|
37
|
+
if (index !== -1) {
|
|
38
|
+
_this._awaitingConnections.slice(index, 1);
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Open a connection to a server
|
|
43
|
+
* @param url URL of the server (including port)
|
|
44
|
+
* @returns websocket
|
|
45
|
+
*/
|
|
46
|
+
_this.connectTo = function (host, port, connectionId) {
|
|
47
|
+
try {
|
|
48
|
+
var wsUrl = port === 443 ? "wss://" + host : "ws://" + host + ":" + port;
|
|
49
|
+
var wss_1 = new _this._wss(wsUrl);
|
|
50
|
+
var connId_1 = (0, _1.textRandom)(10);
|
|
51
|
+
var clientId_1 = "";
|
|
52
|
+
wss_1.connId = connectionId || connId_1;
|
|
53
|
+
var previousConnection = _this._awaitingConnections.filter(function (c) { return c.id === connectionId; })[0];
|
|
54
|
+
if (connectionId && previousConnection) {
|
|
55
|
+
previousConnection.socket = wss_1;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
_this._awaitingConnections.push({
|
|
59
|
+
id: connId_1,
|
|
60
|
+
socket: wss_1,
|
|
61
|
+
tries: 0,
|
|
62
|
+
defer: null,
|
|
63
|
+
host: host,
|
|
64
|
+
port: port,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
wss_1.onclose = function (_error) {
|
|
68
|
+
if (_this.tooldb.options.debug) {
|
|
69
|
+
console.log(_error.error);
|
|
70
|
+
}
|
|
71
|
+
_this.reconnect(connId_1);
|
|
72
|
+
};
|
|
73
|
+
wss_1.onerror = function (_error) {
|
|
74
|
+
var _a;
|
|
75
|
+
if (_this.tooldb.options.debug) {
|
|
76
|
+
console.log(_error.error);
|
|
77
|
+
}
|
|
78
|
+
if (((_a = _error === null || _error === void 0 ? void 0 : _error.error) === null || _a === void 0 ? void 0 : _a.code) !== "ETIMEDOUT") {
|
|
79
|
+
_this.reconnect(connId_1);
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
wss_1.onopen = function () {
|
|
83
|
+
_this.removeFromAwaiting(connId_1);
|
|
84
|
+
if (_this.tooldb.options.debug) {
|
|
85
|
+
console.warn("Connected to " + host + ": " + port + " sucessfully.");
|
|
86
|
+
}
|
|
87
|
+
// hi peer
|
|
88
|
+
wss_1.send(JSON.stringify({
|
|
89
|
+
type: "ping",
|
|
90
|
+
clientId: _this.tooldb.network.getClientAddress(),
|
|
91
|
+
to: [_this.tooldb.network.getClientAddress()],
|
|
92
|
+
isServer: _this.tooldb.options.server,
|
|
93
|
+
id: (0, _1.textRandom)(10),
|
|
94
|
+
}));
|
|
95
|
+
};
|
|
96
|
+
wss_1.onmessage = function (msg) {
|
|
97
|
+
if (!msg) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
_this.onClientMessage(msg.data, clientId_1, function (id) {
|
|
101
|
+
clientId_1 = id;
|
|
102
|
+
_this.isClientConnected[id] = function () {
|
|
103
|
+
return wss_1.readyState === wss_1.OPEN;
|
|
104
|
+
};
|
|
105
|
+
_this.clientToSend[id] = function (_msg) {
|
|
106
|
+
wss_1.send(_msg);
|
|
107
|
+
};
|
|
108
|
+
});
|
|
109
|
+
};
|
|
110
|
+
return wss_1;
|
|
111
|
+
}
|
|
112
|
+
catch (e) {
|
|
113
|
+
console.warn(e);
|
|
114
|
+
}
|
|
115
|
+
return undefined;
|
|
116
|
+
};
|
|
117
|
+
_this.reconnect = function (connectionId) {
|
|
118
|
+
var connection = _this._awaitingConnections.filter(function (c) { return c.id === connectionId; })[0];
|
|
119
|
+
if (connection) {
|
|
120
|
+
if (connection.defer) {
|
|
121
|
+
clearTimeout(connection.defer);
|
|
122
|
+
}
|
|
123
|
+
if (connection.tries < _this.tooldb.options.maxRetries) {
|
|
124
|
+
var defer = function () {
|
|
125
|
+
connection.tries += 1;
|
|
126
|
+
console.warn("Connection to " +
|
|
127
|
+
connection.host +
|
|
128
|
+
":" +
|
|
129
|
+
connection.port +
|
|
130
|
+
" retry.");
|
|
131
|
+
_this.connectTo(connection.host, connection.port, connectionId);
|
|
132
|
+
};
|
|
133
|
+
connection.defer = setTimeout(defer, _this.tooldb.options.wait);
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
console.warn("Connection attempts to " +
|
|
137
|
+
connection.host +
|
|
138
|
+
":" +
|
|
139
|
+
connection.port +
|
|
140
|
+
" exceeded.");
|
|
141
|
+
_this.removeFromAwaiting(connectionId);
|
|
142
|
+
// There are no more peers to connect!
|
|
143
|
+
if (Object.keys(_this._connections).length === 0) {
|
|
144
|
+
_this.tooldb.onDisconnect();
|
|
145
|
+
_this.tooldb.isConnected = false;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
// else , attempting to reconnect to a missing peer?
|
|
150
|
+
};
|
|
151
|
+
_this.tooldb.options.peers.forEach(function (p) {
|
|
152
|
+
_this.connectTo(p.host, p.port);
|
|
153
|
+
});
|
|
154
|
+
if (_this.tooldb.options.server) {
|
|
155
|
+
_this.server = new ws_1.default.Server({
|
|
156
|
+
port: _this.tooldb.options.port,
|
|
157
|
+
server: _this.tooldb.options.httpServer,
|
|
158
|
+
});
|
|
159
|
+
_this.server.on("connection", function (socket) {
|
|
160
|
+
var clientId = null;
|
|
161
|
+
// console.log("new connection:", clientId);
|
|
162
|
+
socket.on("close", function () {
|
|
163
|
+
// console.log("closed connection:", clientId);
|
|
164
|
+
if (clientId) {
|
|
165
|
+
_this.onClientDisconnect(clientId);
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
socket.on("error", function () {
|
|
169
|
+
// console.log("errored connection:", clientId);
|
|
170
|
+
if (clientId) {
|
|
171
|
+
_this.onClientDisconnect(clientId);
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
socket.on("message", function (message) {
|
|
175
|
+
_this.onClientMessage(message, clientId || "", function (id) {
|
|
176
|
+
clientId = id;
|
|
177
|
+
// Set this socket's functions on the adapter
|
|
178
|
+
_this.isClientConnected[id] = function () {
|
|
179
|
+
return socket.readyState === socket.OPEN;
|
|
180
|
+
};
|
|
181
|
+
_this.clientToSend[id] = function (_msg) {
|
|
182
|
+
socket.send(_msg);
|
|
183
|
+
};
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
return _this;
|
|
189
|
+
}
|
|
190
|
+
return ToolDbWebsocket;
|
|
191
|
+
}(toolDbNetworkAdapter_1.default));
|
|
192
|
+
exports.default = ToolDbWebsocket;
|
|
193
|
+
//# sourceMappingURL=toolDbWebsocket.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolDbWebsocket.js","sourceRoot":"","sources":["../src/toolDbWebsocket.ts"],"names":[],"mappings":"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"}
|
package/dist/tooldb.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import EventEmitter from "events";
|
|
3
|
-
import w3 from "web3";
|
|
4
|
-
import { EncryptedKeystoreV3Json, Account } from "web3-core";
|
|
5
3
|
import { ToolDbMessage, VerificationData, verifyMessage } from ".";
|
|
6
4
|
import toolDbGet from "./toolDbGet";
|
|
7
5
|
import toolDbPut from "./toolDbPut";
|
|
@@ -23,7 +21,7 @@ import handleQuery from "./messageHandlers/handleQuery";
|
|
|
23
21
|
import handleCrdtGet from "./messageHandlers/handleCrdtGet";
|
|
24
22
|
import handleCrdtPut from "./messageHandlers/handleCrdtPut";
|
|
25
23
|
import handleSubscribe from "./messageHandlers/handleSubscribe";
|
|
26
|
-
import { Peer, ToolDbOptions, ToolDbStore } from "./types/tooldb";
|
|
24
|
+
import { Peer, ToolDbOptions, ToolDbStore, ToolDbUserAdapter } from "./types/tooldb";
|
|
27
25
|
export interface Listener<T = any> {
|
|
28
26
|
key: string;
|
|
29
27
|
timeout: number | null;
|
|
@@ -37,7 +35,8 @@ export default class ToolDb extends EventEmitter {
|
|
|
37
35
|
private _network;
|
|
38
36
|
private _store;
|
|
39
37
|
private _peers;
|
|
40
|
-
|
|
38
|
+
private _peerAccount;
|
|
39
|
+
private _userAccount;
|
|
41
40
|
clientOnMessage: typeof toolDbClientOnMessage;
|
|
42
41
|
verifyMessage: typeof verifyMessage;
|
|
43
42
|
private _subscriptions;
|
|
@@ -76,15 +75,6 @@ export default class ToolDb extends EventEmitter {
|
|
|
76
75
|
handlePut: typeof handlePut;
|
|
77
76
|
handleQuery: typeof handleQuery;
|
|
78
77
|
handleSubscribe: typeof handleSubscribe;
|
|
79
|
-
setUser(account: Account | undefined, name: string): void;
|
|
80
|
-
signData(data: string, privateKey?: string): import("web3-core").Sign;
|
|
81
|
-
recoverAddress(message: string, signature: string): string;
|
|
82
|
-
getAccountFromPrivate(privateKey: string): Account;
|
|
83
|
-
createAccount(): Account;
|
|
84
|
-
encryptAccount(account: Account, password: string): EncryptedKeystoreV3Json;
|
|
85
|
-
decryptAccount(acc: EncryptedKeystoreV3Json, password: string): Account;
|
|
86
|
-
getAddress(): string | undefined;
|
|
87
|
-
getUsername(): string | undefined;
|
|
88
78
|
/**
|
|
89
79
|
* id listeners listen for a specific message ID just once
|
|
90
80
|
*/
|
|
@@ -105,12 +95,13 @@ export default class ToolDb extends EventEmitter {
|
|
|
105
95
|
_customVerificator: (Verificator<any> | null)[];
|
|
106
96
|
addCustomVerification: <T = any>(key: string, fn: (msg: VerificationData<T>, previous: T | undefined) => Promise<boolean>) => number;
|
|
107
97
|
removeCustomVerification: (id: number) => void;
|
|
108
|
-
private _user;
|
|
109
98
|
private _options;
|
|
110
99
|
get options(): ToolDbOptions;
|
|
111
|
-
get network(): import("
|
|
100
|
+
get network(): import("./toolDbNetworkAdapter").default;
|
|
112
101
|
get peers(): Peer[];
|
|
113
102
|
get store(): ToolDbStore;
|
|
103
|
+
get userAccount(): ToolDbUserAdapter;
|
|
104
|
+
get peerAccount(): ToolDbUserAdapter;
|
|
114
105
|
constructor(options?: Partial<ToolDbOptions>);
|
|
115
106
|
}
|
|
116
107
|
export {};
|
package/dist/tooldb.js
CHANGED
|
@@ -30,15 +30,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
30
30
|
};
|
|
31
31
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
32
|
var events_1 = __importDefault(require("events"));
|
|
33
|
-
var web3_1 = __importDefault(require("web3"));
|
|
34
33
|
var _1 = require(".");
|
|
35
34
|
var toolDbGet_1 = __importDefault(require("./toolDbGet"));
|
|
36
35
|
var toolDbPut_1 = __importDefault(require("./toolDbPut"));
|
|
37
36
|
var toolDbSignIn_1 = __importDefault(require("./toolDbSignIn"));
|
|
38
37
|
var toolDbSignUp_1 = __importDefault(require("./toolDbSignUp"));
|
|
39
|
-
var toolDbNetwork_1 = __importDefault(require("./toolDbNetwork"));
|
|
40
38
|
var toolDbCrdtGet_1 = __importDefault(require("./toolDbCrdtGet"));
|
|
41
39
|
var toolDbCrdtPut_1 = __importDefault(require("./toolDbCrdtPut"));
|
|
40
|
+
var toolDbWebsocket_1 = __importDefault(require("./toolDbWebsocket"));
|
|
42
41
|
var toolDbAnonSignIn_1 = __importDefault(require("./toolDbAnonSignIn"));
|
|
43
42
|
var toolDbClientOnMessage_1 = __importDefault(require("./toolDbClientOnMessage"));
|
|
44
43
|
var toolDbVerificationWrapper_1 = __importDefault(require("./toolDbVerificationWrapper"));
|
|
@@ -55,6 +54,7 @@ var handleQuery_1 = __importDefault(require("./messageHandlers/handleQuery"));
|
|
|
55
54
|
var handleCrdtGet_1 = __importDefault(require("./messageHandlers/handleCrdtGet"));
|
|
56
55
|
var handleCrdtPut_1 = __importDefault(require("./messageHandlers/handleCrdtPut"));
|
|
57
56
|
var handleSubscribe_1 = __importDefault(require("./messageHandlers/handleSubscribe"));
|
|
57
|
+
var toolDbWeb3User_1 = __importDefault(require("./toolDbWeb3User"));
|
|
58
58
|
var ToolDb = /** @class */ (function (_super) {
|
|
59
59
|
__extends(ToolDb, _super);
|
|
60
60
|
function ToolDb(options) {
|
|
@@ -162,7 +162,6 @@ var ToolDb = /** @class */ (function (_super) {
|
|
|
162
162
|
_this.removeCustomVerification = function (id) {
|
|
163
163
|
_this._customVerificator[id] = null;
|
|
164
164
|
};
|
|
165
|
-
_this._user = undefined;
|
|
166
165
|
_this._options = {
|
|
167
166
|
db: "tooldb",
|
|
168
167
|
peers: [],
|
|
@@ -175,20 +174,18 @@ var ToolDb = /** @class */ (function (_super) {
|
|
|
175
174
|
port: 8080,
|
|
176
175
|
debug: false,
|
|
177
176
|
httpServer: undefined,
|
|
178
|
-
networkAdapter:
|
|
177
|
+
networkAdapter: toolDbWebsocket_1.default,
|
|
178
|
+
userAdapter: toolDbWeb3User_1.default,
|
|
179
179
|
storageName: "tooldb",
|
|
180
180
|
storageAdapter: typeof window === "undefined" ? leveldb_1.default : indexedb_1.default,
|
|
181
181
|
topic: "tool-db-default",
|
|
182
|
-
peerAccount: undefined,
|
|
183
182
|
};
|
|
184
183
|
_this._options = __assign(__assign({}, _this.options), options);
|
|
185
|
-
_this.web3 = new web3_1.default(web3_1.default.givenProvider);
|
|
186
|
-
var account = _this.web3.eth.accounts.create();
|
|
187
|
-
_this.options.peerAccount = account;
|
|
188
|
-
_this.emit("init", account.address);
|
|
189
|
-
// These could be made to be customizable by setting the variables as public
|
|
190
|
-
_this._network = new _this.options.networkAdapter(_this);
|
|
191
184
|
_this._store = _this.options.storageAdapter(_this.options.storageName);
|
|
185
|
+
_this._peerAccount = new _this.options.userAdapter(_this);
|
|
186
|
+
_this._userAccount = new _this.options.userAdapter(_this);
|
|
187
|
+
_this.emit("init", _this.userAccount.getAddress());
|
|
188
|
+
_this._network = new _this.options.networkAdapter(_this);
|
|
192
189
|
return _this;
|
|
193
190
|
}
|
|
194
191
|
Object.defineProperty(ToolDb.prototype, "subscriptions", {
|
|
@@ -212,50 +209,9 @@ var ToolDb = /** @class */ (function (_super) {
|
|
|
212
209
|
enumerable: false,
|
|
213
210
|
configurable: true
|
|
214
211
|
});
|
|
215
|
-
ToolDb.prototype.setUser = function (account, name) {
|
|
216
|
-
this._user = account
|
|
217
|
-
? {
|
|
218
|
-
account: account,
|
|
219
|
-
name: name,
|
|
220
|
-
}
|
|
221
|
-
: undefined;
|
|
222
|
-
};
|
|
223
|
-
ToolDb.prototype.signData = function (data, privateKey) {
|
|
224
|
-
var _a;
|
|
225
|
-
var signature = this.web3.eth.accounts.sign(data, privateKey || ((_a = this._user) === null || _a === void 0 ? void 0 : _a.account.privateKey) || "");
|
|
226
|
-
return signature;
|
|
227
|
-
};
|
|
228
|
-
ToolDb.prototype.recoverAddress = function (message, signature) {
|
|
229
|
-
return this.web3.eth.accounts.recover(message, signature);
|
|
230
|
-
};
|
|
231
|
-
ToolDb.prototype.getAccountFromPrivate = function (privateKey) {
|
|
232
|
-
return this.web3.eth.accounts.privateKeyToAccount(privateKey);
|
|
233
|
-
};
|
|
234
|
-
ToolDb.prototype.createAccount = function () {
|
|
235
|
-
return this.web3.eth.accounts.create();
|
|
236
|
-
};
|
|
237
|
-
ToolDb.prototype.encryptAccount = function (account, password) {
|
|
238
|
-
return account.encrypt(password);
|
|
239
|
-
};
|
|
240
|
-
ToolDb.prototype.decryptAccount = function (acc, password) {
|
|
241
|
-
try {
|
|
242
|
-
var newAccount = this.web3.eth.accounts.decrypt(acc, password);
|
|
243
|
-
return newAccount;
|
|
244
|
-
}
|
|
245
|
-
catch (e) {
|
|
246
|
-
throw e;
|
|
247
|
-
}
|
|
248
|
-
};
|
|
249
|
-
ToolDb.prototype.getAddress = function () {
|
|
250
|
-
var _a;
|
|
251
|
-
return (_a = this._user) === null || _a === void 0 ? void 0 : _a.account.address;
|
|
252
|
-
};
|
|
253
|
-
ToolDb.prototype.getUsername = function () {
|
|
254
|
-
var _a;
|
|
255
|
-
return (_a = this._user) === null || _a === void 0 ? void 0 : _a.name;
|
|
256
|
-
};
|
|
257
212
|
ToolDb.prototype.getUserNamespacedKey = function (key) {
|
|
258
|
-
|
|
213
|
+
var _a;
|
|
214
|
+
return ":" + (((_a = this.userAccount) === null || _a === void 0 ? void 0 : _a.getAddress()) || "") + "." + key;
|
|
259
215
|
};
|
|
260
216
|
Object.defineProperty(ToolDb.prototype, "options", {
|
|
261
217
|
get: function () {
|
|
@@ -285,6 +241,20 @@ var ToolDb = /** @class */ (function (_super) {
|
|
|
285
241
|
enumerable: false,
|
|
286
242
|
configurable: true
|
|
287
243
|
});
|
|
244
|
+
Object.defineProperty(ToolDb.prototype, "userAccount", {
|
|
245
|
+
get: function () {
|
|
246
|
+
return this._userAccount;
|
|
247
|
+
},
|
|
248
|
+
enumerable: false,
|
|
249
|
+
configurable: true
|
|
250
|
+
});
|
|
251
|
+
Object.defineProperty(ToolDb.prototype, "peerAccount", {
|
|
252
|
+
get: function () {
|
|
253
|
+
return this._peerAccount;
|
|
254
|
+
},
|
|
255
|
+
enumerable: false,
|
|
256
|
+
configurable: true
|
|
257
|
+
});
|
|
288
258
|
return ToolDb;
|
|
289
259
|
}(events_1.default));
|
|
290
260
|
exports.default = ToolDb;
|
package/dist/tooldb.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooldb.js","sourceRoot":"","sources":["../src/tooldb.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAkC;
|
|
1
|
+
{"version":3,"file":"tooldb.js","sourceRoot":"","sources":["../src/tooldb.ts"],"names":[],"mappings":"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"}
|
package/dist/types/tooldb.d.ts
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { Account } from "web3-core";
|
|
3
2
|
import { Server as HTTPServer } from "http";
|
|
4
3
|
import { Server as HTTPSServer } from "https";
|
|
5
|
-
import { ToolDb, ToolDbMessage } from "..";
|
|
6
|
-
|
|
4
|
+
import { ToolDb, ToolDbMessage, VerificationData } from "..";
|
|
5
|
+
import ToolDbNetworkAdapter from "../toolDbNetworkAdapter";
|
|
6
|
+
export declare class ToolDbUserAdapter {
|
|
7
7
|
constructor(db: ToolDb);
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
anonUser(): void;
|
|
9
|
+
setUser(account: unknown | undefined, name: string): void;
|
|
10
|
+
signData(data: string, privateKey?: string): string;
|
|
11
|
+
verifySignature(message: Partial<VerificationData<any>>): boolean;
|
|
12
|
+
getAccountFromPrivate(privateKey: string): unknown;
|
|
13
|
+
encryptAccount(password: string): unknown;
|
|
14
|
+
decryptAccount(acc: unknown, password: string): any;
|
|
15
|
+
getAddress(): string | undefined;
|
|
16
|
+
getUsername(): string | undefined;
|
|
11
17
|
}
|
|
12
18
|
export interface Peer {
|
|
13
19
|
topic: string;
|
|
@@ -86,11 +92,11 @@ export interface ToolDbOptions {
|
|
|
86
92
|
*/
|
|
87
93
|
storageAdapter: ToolDbStorageAdapter;
|
|
88
94
|
/**
|
|
89
|
-
*
|
|
95
|
+
* A custom user storage and validation adapter class
|
|
90
96
|
*/
|
|
91
|
-
|
|
97
|
+
userAdapter: typeof ToolDbUserAdapter;
|
|
92
98
|
/**
|
|
93
|
-
*
|
|
99
|
+
* The namespace/topic of our app (default is "tool-db-default")
|
|
94
100
|
*/
|
|
95
|
-
|
|
101
|
+
topic: string;
|
|
96
102
|
}
|
package/dist/types/tooldb.js
CHANGED
|
@@ -1,22 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
var
|
|
5
|
-
function
|
|
3
|
+
exports.ToolDbUserAdapter = void 0;
|
|
4
|
+
var ToolDbUserAdapter = /** @class */ (function () {
|
|
5
|
+
function ToolDbUserAdapter(db) {
|
|
6
6
|
//
|
|
7
7
|
}
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
ToolDbUserAdapter.prototype.anonUser = function () {
|
|
9
|
+
return;
|
|
10
10
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
//
|
|
11
|
+
ToolDbUserAdapter.prototype.setUser = function (account, name) { };
|
|
12
|
+
ToolDbUserAdapter.prototype.signData = function (data, privateKey) {
|
|
13
|
+
return "";
|
|
15
14
|
};
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
ToolDbUserAdapter.prototype.verifySignature = function (message) {
|
|
16
|
+
return false;
|
|
17
|
+
};
|
|
18
|
+
ToolDbUserAdapter.prototype.getAccountFromPrivate = function (privateKey) {
|
|
19
|
+
return undefined;
|
|
20
|
+
};
|
|
21
|
+
ToolDbUserAdapter.prototype.encryptAccount = function (password) {
|
|
22
|
+
return undefined;
|
|
23
|
+
};
|
|
24
|
+
ToolDbUserAdapter.prototype.decryptAccount = function (acc, password) {
|
|
25
|
+
return undefined;
|
|
26
|
+
};
|
|
27
|
+
ToolDbUserAdapter.prototype.getAddress = function () {
|
|
28
|
+
return "";
|
|
29
|
+
};
|
|
30
|
+
ToolDbUserAdapter.prototype.getUsername = function () {
|
|
31
|
+
return "";
|
|
18
32
|
};
|
|
19
|
-
return
|
|
33
|
+
return ToolDbUserAdapter;
|
|
20
34
|
}());
|
|
21
|
-
exports.
|
|
35
|
+
exports.ToolDbUserAdapter = ToolDbUserAdapter;
|
|
22
36
|
//# sourceMappingURL=tooldb.js.map
|
package/dist/types/tooldb.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooldb.js","sourceRoot":"","sources":["../../src/types/tooldb.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"tooldb.js","sourceRoot":"","sources":["../../src/types/tooldb.ts"],"names":[],"mappings":";;;AAMA;IACE,2BAAY,EAAU;QACpB,EAAE;IACJ,CAAC;IAEM,oCAAQ,GAAf;QACE,OAAO;IACT,CAAC;IAEM,mCAAO,GAAd,UAAe,OAA4B,EAAE,IAAY,IAAS,CAAC;IAE5D,oCAAQ,GAAf,UAAgB,IAAY,EAAE,UAAmB;QAC/C,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,2CAAe,GAAtB,UAAuB,OAAuC;QAC5D,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,iDAAqB,GAA5B,UAA6B,UAAkB;QAC7C,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,0CAAc,GAArB,UAAsB,QAAgB;QACpC,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,0CAAc,GAArB,UAAsB,GAAY,EAAE,QAAgB;QAClD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,sCAAU,GAAjB;QACE,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,uCAAW,GAAlB;QACE,OAAO,EAAE,CAAC;IACZ,CAAC;IACH,wBAAC;AAAD,CAAC,AAtCD,IAsCC;AAtCY,8CAAiB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export default function getPeerSignature(account:
|
|
1
|
+
import { ToolDbUserAdapter } from "../types/tooldb";
|
|
2
|
+
export default function getPeerSignature(account: ToolDbUserAdapter, topic: string, timestamp: number, host: string, port: number): string;
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
var sha256_1 = __importDefault(require("./sha256"));
|
|
7
7
|
function getPeerSignature(account, topic, timestamp, host, port) {
|
|
8
8
|
var dataToSign = (0, sha256_1.default)(topic + "-" + timestamp + "-" + host + ":" + port);
|
|
9
|
-
return account.
|
|
9
|
+
return account.signData(dataToSign);
|
|
10
10
|
}
|
|
11
11
|
exports.default = getPeerSignature;
|
|
12
12
|
//# sourceMappingURL=getPeerSignature.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPeerSignature.js","sourceRoot":"","sources":["../../src/utils/getPeerSignature.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"getPeerSignature.js","sourceRoot":"","sources":["../../src/utils/getPeerSignature.ts"],"names":[],"mappings":";;;;;AACA,oDAA8B;AAE9B,SAAwB,gBAAgB,CACtC,OAA0B,EAC1B,KAAa,EACb,SAAiB,EACjB,IAAY,EACZ,IAAY;IAEZ,IAAM,UAAU,GAAG,IAAA,gBAAM,EAAI,KAAK,SAAI,SAAS,SAAI,IAAI,SAAI,IAAM,CAAC,CAAC;IACnE,OAAO,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACtC,CAAC;AATD,mCASC"}
|
|
@@ -1,6 +1,41 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var adjectives = [
|
|
4
|
+
"Fast",
|
|
5
|
+
"Slow",
|
|
6
|
+
"Cute",
|
|
7
|
+
"Evil",
|
|
8
|
+
"Anxious",
|
|
9
|
+
"Cursed",
|
|
10
|
+
"Average",
|
|
11
|
+
"Zombie",
|
|
12
|
+
"Smart",
|
|
13
|
+
"Small",
|
|
14
|
+
"Tall",
|
|
15
|
+
"Amazing",
|
|
16
|
+
"Splendid",
|
|
17
|
+
"Fat",
|
|
18
|
+
"Invisible",
|
|
19
|
+
"Regular",
|
|
20
|
+
"Domestic",
|
|
21
|
+
"Unique",
|
|
22
|
+
"Soft",
|
|
23
|
+
"Lazy",
|
|
24
|
+
"Angry",
|
|
25
|
+
"Relaxed",
|
|
26
|
+
"Huge",
|
|
27
|
+
"Shy",
|
|
28
|
+
"Playful",
|
|
29
|
+
"Creepy",
|
|
30
|
+
"Ancient",
|
|
31
|
+
"Beautiful",
|
|
32
|
+
];
|
|
3
33
|
var animals = [
|
|
34
|
+
"Snake",
|
|
35
|
+
"Monkey",
|
|
36
|
+
"Platypus",
|
|
37
|
+
"Fox",
|
|
38
|
+
"Lynx",
|
|
4
39
|
"Pug",
|
|
5
40
|
"Chicken",
|
|
6
41
|
"Slug",
|
|
@@ -36,7 +71,7 @@ var animals = [
|
|
|
36
71
|
"Zebra",
|
|
37
72
|
];
|
|
38
73
|
function randomAnimal() {
|
|
39
|
-
return animals[Math.
|
|
74
|
+
return adjectives[Math.floor(Math.random() * adjectives.length)] + " " + animals[Math.floor(Math.random() * animals.length)];
|
|
40
75
|
}
|
|
41
76
|
exports.default = randomAnimal;
|
|
42
77
|
//# sourceMappingURL=randomAnimal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"randomAnimal.js","sourceRoot":"","sources":["../../src/utils/randomAnimal.ts"],"names":[],"mappings":";;AAAA,IAAM,OAAO,GAAG;IACd,KAAK;IACL,SAAS;IACT,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,OAAO;IACP,OAAO;IACP,UAAU;IACV,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,SAAS;IACT,KAAK;IACL,WAAW;IACX,UAAU;IACV,SAAS;IACT,YAAY;IACZ,MAAM;IACN,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,OAAO;IACP,MAAM;IACN,SAAS;IACT,KAAK;IACL,QAAQ;IACR,OAAO;CACR,CAAC;AAEF,SAAwB,YAAY;IAClC,
|
|
1
|
+
{"version":3,"file":"randomAnimal.js","sourceRoot":"","sources":["../../src/utils/randomAnimal.ts"],"names":[],"mappings":";;AAAA,IAAM,UAAU,GAAG;IACjB,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,OAAO;IACP,OAAO;IACP,MAAM;IACN,SAAS;IACT,UAAU;IACV,KAAK;IACL,WAAW;IACX,SAAS;IACT,UAAU;IACV,QAAQ;IACR,MAAM;IACN,MAAM;IACN,OAAO;IACP,SAAS;IACT,MAAM;IACN,KAAK;IACL,SAAS;IACT,QAAQ;IACR,SAAS;IACT,WAAW;CACZ,CAAC;AAEF,IAAM,OAAO,GAAG;IACd,OAAO;IACP,QAAQ;IACR,UAAU;IACV,KAAK;IACL,MAAM;IACN,KAAK;IACL,SAAS;IACT,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,OAAO;IACP,OAAO;IACP,UAAU;IACV,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,SAAS;IACT,KAAK;IACL,WAAW;IACX,UAAU;IACV,SAAS;IACT,YAAY;IACZ,MAAM;IACN,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,OAAO;IACP,MAAM;IACN,SAAS;IACT,KAAK;IACL,QAAQ;IACR,OAAO;CACR,CAAC;AAEF,SAAwB,YAAY;IAClC,OAAU,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,SACjE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAClD,CAAC;AACL,CAAC;AAJD,+BAIC"}
|
|
@@ -50,7 +50,7 @@ var message_1 = require("../types/message");
|
|
|
50
50
|
function verifyMessage(msg, pow) {
|
|
51
51
|
if (pow === void 0) { pow = 0; }
|
|
52
52
|
return __awaiter(this, void 0, void 0, function () {
|
|
53
|
-
var strData, adressNamespace, key_1, data,
|
|
53
|
+
var strData, adressNamespace, key_1, data, verified;
|
|
54
54
|
var _this = this;
|
|
55
55
|
return __generator(this, function (_a) {
|
|
56
56
|
switch (_a.label) {
|
|
@@ -116,8 +116,9 @@ function verifyMessage(msg, pow) {
|
|
|
116
116
|
return [2 /*return*/, message_1.VerifyResult.InvalidHashNonce];
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
|
-
|
|
120
|
-
|
|
119
|
+
verified = this.userAccount
|
|
120
|
+
? this.userAccount.verifySignature(msg)
|
|
121
|
+
: false;
|
|
121
122
|
// console.warn(`Signature validation: ${verified ? "Sucess" : "Failed"}`);
|
|
122
123
|
return [2 /*return*/, verified ? message_1.VerifyResult.Verified : message_1.VerifyResult.InvalidSignature];
|
|
123
124
|
}
|