tool-db 2.2.0 → 2.3.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/README.md +12 -139
- package/bundle.js +1 -1
- package/dist/adapters/toolDbIndexedb.d.ts +10 -0
- package/dist/adapters/toolDbIndexedb.js +128 -0
- package/dist/adapters/toolDbIndexedb.js.map +1 -0
- package/dist/adapters/toolDbLeveldb.d.ts +9 -0
- package/dist/adapters/toolDbLeveldb.js +112 -0
- package/dist/adapters/toolDbLeveldb.js.map +1 -0
- package/dist/adapters/toolDbWeb3User.d.ts +20 -0
- package/dist/adapters/toolDbWeb3User.js +75 -0
- package/dist/adapters/toolDbWeb3User.js.map +1 -0
- package/dist/adapters/toolDbWebrtc.d.ts +59 -0
- package/dist/adapters/toolDbWebrtc.js +492 -0
- package/dist/adapters/toolDbWebrtc.js.map +1 -0
- package/dist/adapters/toolDbWebsocket.d.ts +19 -0
- package/dist/adapters/toolDbWebsocket.js +181 -0
- package/dist/adapters/toolDbWebsocket.js.map +1 -0
- package/dist/adapters-base/networkAdapter.d.ts +57 -0
- package/dist/adapters-base/networkAdapter.js +184 -0
- package/dist/adapters-base/networkAdapter.js.map +1 -0
- package/dist/adapters-base/storageAdapter.d.ts +9 -0
- package/dist/adapters-base/storageAdapter.js +26 -0
- package/dist/adapters-base/storageAdapter.js.map +1 -0
- package/dist/adapters-base/userAdapter.d.ts +14 -0
- package/dist/adapters-base/userAdapter.js +35 -0
- package/dist/adapters-base/userAdapter.js.map +1 -0
- package/dist/index.d.ts +8 -4
- package/dist/index.js +15 -7
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +2 -0
- package/dist/logger.js +32 -0
- package/dist/logger.js.map +1 -0
- package/dist/messageHandlers/handleCrdtGet.js +19 -22
- package/dist/messageHandlers/handleCrdtGet.js.map +1 -1
- package/dist/messageHandlers/handleCrdtPut.js +23 -14
- package/dist/messageHandlers/handleCrdtPut.js.map +1 -1
- package/dist/messageHandlers/handleGet.js +19 -21
- package/dist/messageHandlers/handleGet.js.map +1 -1
- package/dist/messageHandlers/handleJoin.js +2 -2
- package/dist/messageHandlers/handleJoin.js.map +1 -1
- package/dist/messageHandlers/handlePing.js +1 -0
- package/dist/messageHandlers/handlePing.js.map +1 -1
- package/dist/messageHandlers/handlePong.js +1 -23
- package/dist/messageHandlers/handlePong.js.map +1 -1
- package/dist/messageHandlers/handlePut.js +29 -25
- package/dist/messageHandlers/handlePut.js.map +1 -1
- package/dist/messageHandlers/handleQuery.js +7 -2
- package/dist/messageHandlers/handleQuery.js.map +1 -1
- package/dist/messageHandlers/handleServers.js +1 -1
- package/dist/messageHandlers/handleServers.js.map +1 -1
- package/dist/messageHandlers/handleSubscribe.js +30 -29
- package/dist/messageHandlers/handleSubscribe.js.map +1 -1
- package/dist/sendJoin.d.ts +2 -0
- package/dist/sendJoin.js +31 -0
- package/dist/sendJoin.js.map +1 -0
- package/dist/toolDbClientOnMessage.js +5 -8
- package/dist/toolDbClientOnMessage.js.map +1 -1
- package/dist/toolDbCrdtGet.js +29 -32
- package/dist/toolDbCrdtGet.js.map +1 -1
- package/dist/toolDbCrdtPut.js +25 -26
- package/dist/toolDbCrdtPut.js.map +1 -1
- package/dist/toolDbGet.js +29 -30
- package/dist/toolDbGet.js.map +1 -1
- package/dist/toolDbKeysSignIn.d.ts +1 -1
- package/dist/toolDbKeysSignIn.js +8 -4
- package/dist/toolDbKeysSignIn.js.map +1 -1
- package/dist/toolDbNetworkAdapter.js +5 -9
- package/dist/toolDbNetworkAdapter.js.map +1 -1
- package/dist/toolDbPut.js +33 -30
- package/dist/toolDbPut.js.map +1 -1
- package/dist/toolDbQueryKeys.js +8 -7
- package/dist/toolDbQueryKeys.js.map +1 -1
- package/dist/toolDbSignIn.js +6 -3
- package/dist/toolDbSignIn.js.map +1 -1
- package/dist/toolDbSignUp.js +37 -33
- package/dist/toolDbSignUp.js.map +1 -1
- package/dist/toolDbSubscribe.d.ts +2 -1
- package/dist/toolDbSubscribe.js +20 -16
- package/dist/toolDbSubscribe.js.map +1 -1
- package/dist/toolDbVerificationWrapper.js +15 -10
- package/dist/toolDbVerificationWrapper.js.map +1 -1
- package/dist/toolDbWebrtc.d.ts +0 -6
- package/dist/toolDbWebrtc.js +16 -15
- package/dist/toolDbWebrtc.js.map +1 -1
- package/dist/toolDbWebsocket.js +9 -15
- package/dist/toolDbWebsocket.js.map +1 -1
- package/dist/tooldb.d.ts +9 -3
- package/dist/tooldb.js +12 -9
- package/dist/tooldb.js.map +1 -1
- package/dist/types/message.d.ts +1 -1
- package/dist/types/tooldb.d.ts +7 -27
- package/dist/types/tooldb.js +0 -33
- package/dist/types/tooldb.js.map +1 -1
- package/dist/utils/getPeerSignature.d.ts +2 -2
- package/dist/utils/indexedb.js +4 -4
- package/dist/utils/indexedb.js.map +1 -1
- package/dist/utils/leveldb.js +4 -4
- package/dist/utils/leveldb.js.map +1 -1
- package/dist/utils/verifyMessage.js +37 -33
- package/dist/utils/verifyMessage.js.map +1 -1
- package/dist/utils/verifyPeer.js +1 -1
- package/dist/utils/verifyPeer.js.map +1 -1
- package/package.json +1 -1
- package/test-alice/000145.ldb +0 -0
- package/test-alice/000147.ldb +0 -0
- package/test-alice/000150.ldb +0 -0
- package/test-alice/000153.ldb +0 -0
- package/test-alice/000154.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-000152 +0 -0
- package/test-alice-speed/000022.ldb +0 -0
- package/test-alice-speed/000024.ldb +0 -0
- package/test-alice-speed/000027.ldb +0 -0
- package/test-alice-speed/000030.ldb +0 -0
- package/test-alice-speed/000031.log +0 -0
- package/test-alice-speed/CURRENT +1 -1
- package/test-alice-speed/LOG +5 -13
- package/test-alice-speed/LOG.old +5 -5
- package/test-alice-speed/MANIFEST-000029 +0 -0
- package/{test-verify-a/000250.log → test-base-client/000099.log} +0 -0
- package/test-base-client/CURRENT +1 -0
- package/test-base-client/LOCK +0 -0
- package/test-base-client/LOG +3 -0
- package/test-base-client/LOG.old +3 -0
- package/test-base-client/MANIFEST-000098 +0 -0
- package/test-base-server/000101.log +0 -0
- package/test-base-server/CURRENT +1 -0
- package/test-base-server/LOCK +0 -0
- package/test-base-server/LOG +3 -0
- package/test-base-server/LOG.old +3 -0
- package/test-base-server/MANIFEST-000100 +0 -0
- package/test-bob/000160.ldb +0 -0
- package/test-bob/000162.ldb +0 -0
- package/test-bob/000163.log +0 -0
- package/test-bob/CURRENT +1 -1
- package/test-bob/LOG +5 -5
- package/test-bob/LOG.old +14 -14
- package/test-bob/MANIFEST-000161 +0 -0
- package/test-chris/000017.ldb +0 -0
- package/test-chris/000020.ldb +0 -0
- package/test-chris/000023.ldb +0 -0
- package/test-chris/000026.ldb +0 -0
- package/test-chris/000029.ldb +0 -0
- package/test-chris/000086.ldb +0 -0
- package/test-chris/000089.ldb +0 -0
- package/test-chris/000092.ldb +0 -0
- package/test-chris/000095.ldb +0 -0
- package/test-chris/000098.ldb +0 -0
- package/test-chris/000103.ldb +0 -0
- package/test-chris/000106.ldb +0 -0
- package/test-chris/000109.ldb +0 -0
- package/test-chris/000112.ldb +0 -0
- package/test-chris/000115.ldb +0 -0
- package/test-chris/000118.ldb +0 -0
- package/test-chris/000121.ldb +0 -0
- package/test-chris/000124.ldb +0 -0
- package/test-chris/000127.ldb +0 -0
- package/test-chris/000130.ldb +0 -0
- package/test-chris/000133.ldb +0 -0
- package/test-chris/000136.ldb +0 -0
- package/test-chris/000139.ldb +0 -0
- package/test-chris/000142.ldb +0 -0
- package/test-chris/000145.ldb +0 -0
- package/test-chris/000148.ldb +0 -0
- package/test-chris/000151.ldb +0 -0
- package/test-chris/000152.log +0 -0
- package/test-chris/CURRENT +1 -0
- package/test-chris/LOCK +0 -0
- package/test-chris/LOG +6 -0
- package/test-chris/LOG.old +6 -0
- package/test-chris/MANIFEST-000150 +0 -0
- package/test-node-a/000175.ldb +0 -0
- package/test-node-a/000177.ldb +0 -0
- package/test-node-a/000178.log +0 -0
- package/test-node-a/CURRENT +1 -1
- package/test-node-a/LOG +5 -5
- package/test-node-a/LOG.old +14 -5
- package/test-node-a/MANIFEST-000176 +0 -0
- package/test-node-b/000175.ldb +0 -0
- package/test-node-b/000177.ldb +0 -0
- package/test-node-b/000178.log +0 -0
- package/test-node-b/CURRENT +1 -1
- package/test-node-b/LOG +5 -5
- package/test-node-b/LOG.old +14 -5
- package/test-node-b/MANIFEST-000176 +0 -0
- package/test-store/000007.ldb +0 -0
- package/test-store/000010.ldb +0 -0
- package/test-store/000013.ldb +0 -0
- package/test-store/000016.ldb +0 -0
- package/test-store/000019.ldb +0 -0
- package/test-store/000022.ldb +0 -0
- package/test-store/000025.ldb +0 -0
- package/test-store/000028.ldb +0 -0
- package/test-store/000031.ldb +0 -0
- package/test-store/000034.ldb +0 -0
- package/test-store/000037.ldb +0 -0
- package/test-store/000038.log +0 -0
- package/test-store/CURRENT +1 -0
- package/test-store/LOCK +0 -0
- package/test-store/LOG +6 -0
- package/test-store/LOG.old +6 -0
- package/test-store/MANIFEST-000036 +0 -0
- package/test-verify-a/000049.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-000048 +0 -0
- package/toolDbLibP2p.ts +12 -11
- 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/MANIFEST-000667 +0 -0
- package/test-alice-speed/000035.log +0 -0
- package/test-alice-speed/000036.ldb +0 -0
- 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/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/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/MANIFEST-000667 +0 -0
- package/test-verify-a/000026.ldb +0 -0
- package/test-verify-a/000029.ldb +0 -0
- package/test-verify-a/000031.ldb +0 -0
- package/test-verify-a/000033.ldb +0 -0
- package/test-verify-a/MANIFEST-000249 +0 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import ToolDbStorageAdapter from "../adapters-base/storageAdapter";
|
|
2
|
+
import ToolDb from "../tooldb";
|
|
3
|
+
export default class ToolDbIndexedb extends ToolDbStorageAdapter {
|
|
4
|
+
private database;
|
|
5
|
+
private dbStart;
|
|
6
|
+
constructor(db: ToolDb);
|
|
7
|
+
put(key: string, data: string): Promise<unknown>;
|
|
8
|
+
get(key: string): Promise<string>;
|
|
9
|
+
query(key: string): Promise<string[]>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
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 storageAdapter_1 = __importDefault(require("../adapters-base/storageAdapter"));
|
|
22
|
+
var ToolDbIndexedb = /** @class */ (function (_super) {
|
|
23
|
+
__extends(ToolDbIndexedb, _super);
|
|
24
|
+
function ToolDbIndexedb(db) {
|
|
25
|
+
var _this = _super.call(this, db) || this;
|
|
26
|
+
_this.dbStart();
|
|
27
|
+
// reset webkit bug?
|
|
28
|
+
setInterval(function () {
|
|
29
|
+
_this.database && _this.database.close();
|
|
30
|
+
_this.dbStart();
|
|
31
|
+
}, 1000 * 15);
|
|
32
|
+
return _this;
|
|
33
|
+
}
|
|
34
|
+
ToolDbIndexedb.prototype.dbStart = function () {
|
|
35
|
+
var _this = this;
|
|
36
|
+
var open = indexedDB.open(this.tooldb.options.storageName, 1);
|
|
37
|
+
open.onupgradeneeded = function (eve) {
|
|
38
|
+
eve.target.result.createObjectStore(_this.tooldb.options.storageName);
|
|
39
|
+
};
|
|
40
|
+
open.onsuccess = function () {
|
|
41
|
+
_this.database = open.result;
|
|
42
|
+
};
|
|
43
|
+
open.onerror = function (eve) {
|
|
44
|
+
_this.tooldb.logger(eve || 1);
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
ToolDbIndexedb.prototype.put = function (key, data) {
|
|
48
|
+
var _this = this;
|
|
49
|
+
return new Promise(function (resolve, reject) {
|
|
50
|
+
if (!_this.database) {
|
|
51
|
+
reject();
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
var tx = _this.database.transaction([_this.tooldb.options.storageName], "readwrite");
|
|
55
|
+
var obj = tx.objectStore(_this.tooldb.options.storageName);
|
|
56
|
+
var req = obj.put(data, "" + key);
|
|
57
|
+
req.onsuccess =
|
|
58
|
+
// obj.onsuccess =
|
|
59
|
+
// tx.onsuccess =
|
|
60
|
+
function () {
|
|
61
|
+
resolve(true);
|
|
62
|
+
};
|
|
63
|
+
// req.onabort =
|
|
64
|
+
// obj.onabort =
|
|
65
|
+
// tx.onabort =
|
|
66
|
+
// (eve: any) => {
|
|
67
|
+
// reject(eve || "put.tx.abort");
|
|
68
|
+
// };
|
|
69
|
+
req.onerror =
|
|
70
|
+
// obj.onerror =
|
|
71
|
+
tx.onerror = function (eve) {
|
|
72
|
+
reject(eve || "put.tx.error");
|
|
73
|
+
};
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
ToolDbIndexedb.prototype.get = function (key) {
|
|
77
|
+
var _this = this;
|
|
78
|
+
return new Promise(function (resolve, reject) {
|
|
79
|
+
if (!_this.database) {
|
|
80
|
+
reject();
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
var tx = _this.database.transaction([_this.tooldb.options.storageName], "readonly");
|
|
84
|
+
var obj = tx.objectStore(_this.tooldb.options.storageName);
|
|
85
|
+
var req = obj.get("" + key);
|
|
86
|
+
req.onsuccess = function () {
|
|
87
|
+
resolve(req.result);
|
|
88
|
+
};
|
|
89
|
+
// req.onabort = (eve: any) => {
|
|
90
|
+
// reject(eve || 4);
|
|
91
|
+
// };
|
|
92
|
+
req.onerror = function (eve) {
|
|
93
|
+
reject(eve || 5);
|
|
94
|
+
};
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
ToolDbIndexedb.prototype.query = function (key) {
|
|
98
|
+
var _this = this;
|
|
99
|
+
return new Promise(function (resolve, reject) {
|
|
100
|
+
if (!_this.database) {
|
|
101
|
+
reject();
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
try {
|
|
105
|
+
var keyRange = IDBKeyRange.bound(key, key + "|", true, true);
|
|
106
|
+
var tx = _this.database.transaction([_this.tooldb.options.storageName], "readonly");
|
|
107
|
+
var obj = tx.objectStore(_this.tooldb.options.storageName);
|
|
108
|
+
var keysArray_1 = [];
|
|
109
|
+
obj.openCursor(keyRange).onsuccess = function (event) {
|
|
110
|
+
var cursor = event.target.result;
|
|
111
|
+
if (cursor) {
|
|
112
|
+
keysArray_1.push(event.target.result.key);
|
|
113
|
+
cursor.continue();
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
resolve(keysArray_1);
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
reject(error);
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
};
|
|
125
|
+
return ToolDbIndexedb;
|
|
126
|
+
}(storageAdapter_1.default));
|
|
127
|
+
exports.default = ToolDbIndexedb;
|
|
128
|
+
//# sourceMappingURL=toolDbIndexedb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolDbIndexedb.js","sourceRoot":"","sources":["../../src/adapters/toolDbIndexedb.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import ToolDbStorageAdapter from "../adapters-base/storageAdapter";
|
|
2
|
+
import ToolDb from "../tooldb";
|
|
3
|
+
export default class ToolDbLeveldb extends ToolDbStorageAdapter {
|
|
4
|
+
private database;
|
|
5
|
+
constructor(db: ToolDb);
|
|
6
|
+
put(key: string, data: string): Promise<unknown>;
|
|
7
|
+
get(key: string): Promise<string>;
|
|
8
|
+
query(key: string): Promise<string[]>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
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 storageAdapter_1 = __importDefault(require("../adapters-base/storageAdapter"));
|
|
22
|
+
var ToolDbLeveldb = /** @class */ (function (_super) {
|
|
23
|
+
__extends(ToolDbLeveldb, _super);
|
|
24
|
+
function ToolDbLeveldb(db) {
|
|
25
|
+
var _this = _super.call(this, db) || this;
|
|
26
|
+
var level = require("level");
|
|
27
|
+
_this.database = level(_this.tooldb.options.storageName);
|
|
28
|
+
_this.database.open();
|
|
29
|
+
return _this;
|
|
30
|
+
}
|
|
31
|
+
ToolDbLeveldb.prototype.put = function (key, data) {
|
|
32
|
+
var _this = this;
|
|
33
|
+
return new Promise(function (resolve, reject) {
|
|
34
|
+
if (!_this.database ||
|
|
35
|
+
(_this.database.status !== "open" && _this.database.status !== "new")) {
|
|
36
|
+
setTimeout(function () {
|
|
37
|
+
resolve(_this.put(key, data));
|
|
38
|
+
}, 5);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
// console.warn(this.tooldb.options.storageName, "put", key);
|
|
42
|
+
_this.database.put(key, data, function (err) {
|
|
43
|
+
// this.logger("put", key, err, err?.message);
|
|
44
|
+
if (err) {
|
|
45
|
+
reject(new Error("Error inserting data"));
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
resolve(true);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
ToolDbLeveldb.prototype.get = function (key) {
|
|
54
|
+
var _this = this;
|
|
55
|
+
return new Promise(function (resolve, reject) {
|
|
56
|
+
if (!_this.database ||
|
|
57
|
+
(_this.database.status !== "open" && _this.database.status !== "new")) {
|
|
58
|
+
setTimeout(function () {
|
|
59
|
+
resolve(_this.get(key));
|
|
60
|
+
}, 5);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
_this.database.get(key, function (err, value) {
|
|
64
|
+
// this.logger("get", key, err, err?.message);
|
|
65
|
+
if (err) {
|
|
66
|
+
reject(new Error("Error retrieving data"));
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
resolve(value);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
ToolDbLeveldb.prototype.query = function (key) {
|
|
75
|
+
var _this = this;
|
|
76
|
+
// console.warn(this.tooldb.options.storageName, "QUERY", key);
|
|
77
|
+
return new Promise(function (resolve, reject) {
|
|
78
|
+
if (!_this.database ||
|
|
79
|
+
(_this.database.status !== "open" && _this.database.status !== "new")) {
|
|
80
|
+
setTimeout(function () {
|
|
81
|
+
resolve(_this.query(key));
|
|
82
|
+
}, 5);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
try {
|
|
86
|
+
var array_1 = [];
|
|
87
|
+
_this.database
|
|
88
|
+
.createKeyStream({
|
|
89
|
+
gte: key,
|
|
90
|
+
lte: key + "\uffff",
|
|
91
|
+
})
|
|
92
|
+
.on("data", function (data) {
|
|
93
|
+
// if (data.startsWith(key)) {
|
|
94
|
+
array_1.push(data);
|
|
95
|
+
// }
|
|
96
|
+
})
|
|
97
|
+
.on("error", function (err) {
|
|
98
|
+
reject(new Error("Error finding keys"));
|
|
99
|
+
})
|
|
100
|
+
.on("close", function () {
|
|
101
|
+
resolve(array_1);
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
reject(error);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
};
|
|
109
|
+
return ToolDbLeveldb;
|
|
110
|
+
}(storageAdapter_1.default));
|
|
111
|
+
exports.default = ToolDbLeveldb;
|
|
112
|
+
//# sourceMappingURL=toolDbLeveldb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolDbLeveldb.js","sourceRoot":"","sources":["../../src/adapters/toolDbLeveldb.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import w3 from "web3";
|
|
2
|
+
import { EncryptedKeystoreV3Json, Account } from "web3-core";
|
|
3
|
+
import ToolDbUserAdapter from "../adapters-base/userAdapter";
|
|
4
|
+
import ToolDb from "../tooldb";
|
|
5
|
+
import { VerificationData } from "../types/message";
|
|
6
|
+
export default class ToolDbWeb3User extends ToolDbUserAdapter {
|
|
7
|
+
web3: w3;
|
|
8
|
+
private _user;
|
|
9
|
+
private _userName;
|
|
10
|
+
constructor(db: ToolDb);
|
|
11
|
+
anonUser(): void;
|
|
12
|
+
setUser(account: Account, name: string): void;
|
|
13
|
+
signData(data: string): Promise<string>;
|
|
14
|
+
verifySignature(message: Partial<VerificationData<any>>): Promise<boolean>;
|
|
15
|
+
getAccountFromPrivate(privateKey: string): Promise<Account>;
|
|
16
|
+
encryptAccount(password: string): Promise<EncryptedKeystoreV3Json>;
|
|
17
|
+
decryptAccount(acc: EncryptedKeystoreV3Json, password: string): Promise<Account>;
|
|
18
|
+
getAddress(): string;
|
|
19
|
+
getUsername(): string;
|
|
20
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
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 web3_1 = __importDefault(require("web3"));
|
|
22
|
+
var userAdapter_1 = __importDefault(require("../adapters-base/userAdapter"));
|
|
23
|
+
var randomAnimal_1 = __importDefault(require("../utils/randomAnimal"));
|
|
24
|
+
var ToolDbWeb3User = /** @class */ (function (_super) {
|
|
25
|
+
__extends(ToolDbWeb3User, _super);
|
|
26
|
+
function ToolDbWeb3User(db) {
|
|
27
|
+
var _this = _super.call(this, db) || this;
|
|
28
|
+
_this.web3 = new web3_1.default(web3_1.default.givenProvider);
|
|
29
|
+
_this._user = _this.web3.eth.accounts.create();
|
|
30
|
+
_this._userName = (0, randomAnimal_1.default)();
|
|
31
|
+
return _this;
|
|
32
|
+
}
|
|
33
|
+
ToolDbWeb3User.prototype.anonUser = function () {
|
|
34
|
+
this._user = this.web3.eth.accounts.create();
|
|
35
|
+
this._userName = (0, randomAnimal_1.default)();
|
|
36
|
+
};
|
|
37
|
+
ToolDbWeb3User.prototype.setUser = function (account, name) {
|
|
38
|
+
this._user = account;
|
|
39
|
+
this._userName = name;
|
|
40
|
+
};
|
|
41
|
+
ToolDbWeb3User.prototype.signData = function (data) {
|
|
42
|
+
var signature = this.web3.eth.accounts.sign(data, this._user.privateKey);
|
|
43
|
+
return Promise.resolve(signature.signature);
|
|
44
|
+
};
|
|
45
|
+
ToolDbWeb3User.prototype.verifySignature = function (message) {
|
|
46
|
+
if (!message.h || !message.s)
|
|
47
|
+
return Promise.resolve(false);
|
|
48
|
+
var address = this.web3.eth.accounts.recover(message.h, message.s);
|
|
49
|
+
return Promise.resolve(address === message.a);
|
|
50
|
+
};
|
|
51
|
+
ToolDbWeb3User.prototype.getAccountFromPrivate = function (privateKey) {
|
|
52
|
+
return Promise.resolve(this.web3.eth.accounts.privateKeyToAccount(privateKey));
|
|
53
|
+
};
|
|
54
|
+
ToolDbWeb3User.prototype.encryptAccount = function (password) {
|
|
55
|
+
return Promise.resolve(this._user.encrypt(password));
|
|
56
|
+
};
|
|
57
|
+
ToolDbWeb3User.prototype.decryptAccount = function (acc, password) {
|
|
58
|
+
try {
|
|
59
|
+
var newAccount = this.web3.eth.accounts.decrypt(acc, password);
|
|
60
|
+
return Promise.resolve(newAccount);
|
|
61
|
+
}
|
|
62
|
+
catch (e) {
|
|
63
|
+
throw e;
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
ToolDbWeb3User.prototype.getAddress = function () {
|
|
67
|
+
return this._user.address;
|
|
68
|
+
};
|
|
69
|
+
ToolDbWeb3User.prototype.getUsername = function () {
|
|
70
|
+
return this._userName;
|
|
71
|
+
};
|
|
72
|
+
return ToolDbWeb3User;
|
|
73
|
+
}(userAdapter_1.default));
|
|
74
|
+
exports.default = ToolDbWeb3User;
|
|
75
|
+
//# sourceMappingURL=toolDbWeb3User.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolDbWeb3User.js","sourceRoot":"","sources":["../../src/adapters/toolDbWeb3User.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,8CAAsB;AAGtB,6EAA6D;AAK7D,uEAAiD;AAEjD;IAA4C,kCAAiB;IAM3D,wBAAY,EAAU;QAAtB,YACE,kBAAM,EAAE,CAAC,SAIV;QAHC,KAAI,CAAC,IAAI,GAAG,IAAI,cAAE,CAAC,cAAE,CAAC,aAAa,CAAC,CAAC;QACrC,KAAI,CAAC,KAAK,GAAG,KAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC7C,KAAI,CAAC,SAAS,GAAG,IAAA,sBAAY,GAAE,CAAC;;IAClC,CAAC;IAEM,iCAAQ,GAAf;QACE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,IAAA,sBAAY,GAAE,CAAC;IAClC,CAAC;IAEM,gCAAO,GAAd,UAAe,OAAgB,EAAE,IAAY;QAC3C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;IAEM,iCAAQ,GAAf,UAAgB,IAAY;QAC1B,IAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAE3E,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAEM,wCAAe,GAAtB,UAAuB,OAAuC;QAC5D,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAE5D,IAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACrE,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IAEM,8CAAqB,GAA5B,UAA6B,UAAkB;QAC7C,OAAO,OAAO,CAAC,OAAO,CACpB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,mBAAmB,CAAC,UAAU,CAAC,CACvD,CAAC;IACJ,CAAC;IAEM,uCAAc,GAArB,UAAsB,QAAgB;QACpC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,CAAC;IAEM,uCAAc,GAArB,UAAsB,GAA4B,EAAE,QAAgB;QAClE,IAAI;YACF,IAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YACjE,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;SACpC;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAC,CAAC;SACT;IACH,CAAC;IAEM,mCAAU,GAAjB;QACE,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC5B,CAAC;IAEM,oCAAW,GAAlB;QACE,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IACH,qBAAC;AAAD,CAAC,AA9DD,CAA4C,qBAAiB,GA8D5D"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import ToolDb from "../tooldb";
|
|
2
|
+
import ToolDbNetworkAdapter from "../adapters-base/networkAdapter";
|
|
3
|
+
export default class toolDbWebrtc extends ToolDbNetworkAdapter {
|
|
4
|
+
private wnd;
|
|
5
|
+
private wss;
|
|
6
|
+
private sockets;
|
|
7
|
+
private socketListeners;
|
|
8
|
+
private peerMap;
|
|
9
|
+
private connectedPeers;
|
|
10
|
+
private onDisconnect;
|
|
11
|
+
private peersCheck;
|
|
12
|
+
private announceInterval;
|
|
13
|
+
/**
|
|
14
|
+
* Initialize webrtc peer
|
|
15
|
+
*/
|
|
16
|
+
private initPeer;
|
|
17
|
+
private handledOffers;
|
|
18
|
+
private offerPool;
|
|
19
|
+
private trackerUrls;
|
|
20
|
+
private infoHash;
|
|
21
|
+
/**
|
|
22
|
+
* Make connection offers (sdp) to send to the tracker
|
|
23
|
+
*/
|
|
24
|
+
private makeOffers;
|
|
25
|
+
/**
|
|
26
|
+
* When we sucessfully connect to a webrtc peer
|
|
27
|
+
*/
|
|
28
|
+
private onPeerConnect;
|
|
29
|
+
/**
|
|
30
|
+
* Handle the webrtc peer connection
|
|
31
|
+
*/
|
|
32
|
+
private onConnect;
|
|
33
|
+
/**
|
|
34
|
+
* Clean the announce offers pool
|
|
35
|
+
*/
|
|
36
|
+
private cleanPool;
|
|
37
|
+
/**
|
|
38
|
+
* Makes a websocket connection to a tracker
|
|
39
|
+
*/
|
|
40
|
+
private makeSocket;
|
|
41
|
+
/**
|
|
42
|
+
* Announce ourselves to a tracker (send "announce")
|
|
43
|
+
*/
|
|
44
|
+
private announce;
|
|
45
|
+
/**
|
|
46
|
+
* Announce ourselves to all trackers
|
|
47
|
+
*/
|
|
48
|
+
private announceAll;
|
|
49
|
+
/**
|
|
50
|
+
* Handle the tracker messages
|
|
51
|
+
*/
|
|
52
|
+
private onSocketMessage;
|
|
53
|
+
/**
|
|
54
|
+
* Leave the tracker
|
|
55
|
+
*/
|
|
56
|
+
onLeave: () => Promise<void>;
|
|
57
|
+
constructor(db: ToolDb);
|
|
58
|
+
close(clientId: string): void;
|
|
59
|
+
}
|