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.
Files changed (237) hide show
  1. package/README.md +12 -139
  2. package/bundle.js +1 -1
  3. package/dist/adapters/toolDbIndexedb.d.ts +10 -0
  4. package/dist/adapters/toolDbIndexedb.js +128 -0
  5. package/dist/adapters/toolDbIndexedb.js.map +1 -0
  6. package/dist/adapters/toolDbLeveldb.d.ts +9 -0
  7. package/dist/adapters/toolDbLeveldb.js +112 -0
  8. package/dist/adapters/toolDbLeveldb.js.map +1 -0
  9. package/dist/adapters/toolDbWeb3User.d.ts +20 -0
  10. package/dist/adapters/toolDbWeb3User.js +75 -0
  11. package/dist/adapters/toolDbWeb3User.js.map +1 -0
  12. package/dist/adapters/toolDbWebrtc.d.ts +59 -0
  13. package/dist/adapters/toolDbWebrtc.js +492 -0
  14. package/dist/adapters/toolDbWebrtc.js.map +1 -0
  15. package/dist/adapters/toolDbWebsocket.d.ts +19 -0
  16. package/dist/adapters/toolDbWebsocket.js +181 -0
  17. package/dist/adapters/toolDbWebsocket.js.map +1 -0
  18. package/dist/adapters-base/networkAdapter.d.ts +57 -0
  19. package/dist/adapters-base/networkAdapter.js +184 -0
  20. package/dist/adapters-base/networkAdapter.js.map +1 -0
  21. package/dist/adapters-base/storageAdapter.d.ts +9 -0
  22. package/dist/adapters-base/storageAdapter.js +26 -0
  23. package/dist/adapters-base/storageAdapter.js.map +1 -0
  24. package/dist/adapters-base/userAdapter.d.ts +14 -0
  25. package/dist/adapters-base/userAdapter.js +35 -0
  26. package/dist/adapters-base/userAdapter.js.map +1 -0
  27. package/dist/index.d.ts +8 -4
  28. package/dist/index.js +15 -7
  29. package/dist/index.js.map +1 -1
  30. package/dist/logger.d.ts +2 -0
  31. package/dist/logger.js +32 -0
  32. package/dist/logger.js.map +1 -0
  33. package/dist/messageHandlers/handleCrdtGet.js +19 -22
  34. package/dist/messageHandlers/handleCrdtGet.js.map +1 -1
  35. package/dist/messageHandlers/handleCrdtPut.js +23 -14
  36. package/dist/messageHandlers/handleCrdtPut.js.map +1 -1
  37. package/dist/messageHandlers/handleGet.js +19 -21
  38. package/dist/messageHandlers/handleGet.js.map +1 -1
  39. package/dist/messageHandlers/handleJoin.js +2 -2
  40. package/dist/messageHandlers/handleJoin.js.map +1 -1
  41. package/dist/messageHandlers/handlePing.js +1 -0
  42. package/dist/messageHandlers/handlePing.js.map +1 -1
  43. package/dist/messageHandlers/handlePong.js +1 -23
  44. package/dist/messageHandlers/handlePong.js.map +1 -1
  45. package/dist/messageHandlers/handlePut.js +29 -25
  46. package/dist/messageHandlers/handlePut.js.map +1 -1
  47. package/dist/messageHandlers/handleQuery.js +7 -2
  48. package/dist/messageHandlers/handleQuery.js.map +1 -1
  49. package/dist/messageHandlers/handleServers.js +1 -1
  50. package/dist/messageHandlers/handleServers.js.map +1 -1
  51. package/dist/messageHandlers/handleSubscribe.js +30 -29
  52. package/dist/messageHandlers/handleSubscribe.js.map +1 -1
  53. package/dist/sendJoin.d.ts +2 -0
  54. package/dist/sendJoin.js +31 -0
  55. package/dist/sendJoin.js.map +1 -0
  56. package/dist/toolDbClientOnMessage.js +5 -8
  57. package/dist/toolDbClientOnMessage.js.map +1 -1
  58. package/dist/toolDbCrdtGet.js +29 -32
  59. package/dist/toolDbCrdtGet.js.map +1 -1
  60. package/dist/toolDbCrdtPut.js +25 -26
  61. package/dist/toolDbCrdtPut.js.map +1 -1
  62. package/dist/toolDbGet.js +29 -30
  63. package/dist/toolDbGet.js.map +1 -1
  64. package/dist/toolDbKeysSignIn.d.ts +1 -1
  65. package/dist/toolDbKeysSignIn.js +8 -4
  66. package/dist/toolDbKeysSignIn.js.map +1 -1
  67. package/dist/toolDbNetworkAdapter.js +5 -9
  68. package/dist/toolDbNetworkAdapter.js.map +1 -1
  69. package/dist/toolDbPut.js +33 -30
  70. package/dist/toolDbPut.js.map +1 -1
  71. package/dist/toolDbQueryKeys.js +8 -7
  72. package/dist/toolDbQueryKeys.js.map +1 -1
  73. package/dist/toolDbSignIn.js +6 -3
  74. package/dist/toolDbSignIn.js.map +1 -1
  75. package/dist/toolDbSignUp.js +37 -33
  76. package/dist/toolDbSignUp.js.map +1 -1
  77. package/dist/toolDbSubscribe.d.ts +2 -1
  78. package/dist/toolDbSubscribe.js +20 -16
  79. package/dist/toolDbSubscribe.js.map +1 -1
  80. package/dist/toolDbVerificationWrapper.js +15 -10
  81. package/dist/toolDbVerificationWrapper.js.map +1 -1
  82. package/dist/toolDbWebrtc.d.ts +0 -6
  83. package/dist/toolDbWebrtc.js +16 -15
  84. package/dist/toolDbWebrtc.js.map +1 -1
  85. package/dist/toolDbWebsocket.js +9 -15
  86. package/dist/toolDbWebsocket.js.map +1 -1
  87. package/dist/tooldb.d.ts +9 -3
  88. package/dist/tooldb.js +12 -9
  89. package/dist/tooldb.js.map +1 -1
  90. package/dist/types/message.d.ts +1 -1
  91. package/dist/types/tooldb.d.ts +7 -27
  92. package/dist/types/tooldb.js +0 -33
  93. package/dist/types/tooldb.js.map +1 -1
  94. package/dist/utils/getPeerSignature.d.ts +2 -2
  95. package/dist/utils/indexedb.js +4 -4
  96. package/dist/utils/indexedb.js.map +1 -1
  97. package/dist/utils/leveldb.js +4 -4
  98. package/dist/utils/leveldb.js.map +1 -1
  99. package/dist/utils/verifyMessage.js +37 -33
  100. package/dist/utils/verifyMessage.js.map +1 -1
  101. package/dist/utils/verifyPeer.js +1 -1
  102. package/dist/utils/verifyPeer.js.map +1 -1
  103. package/package.json +1 -1
  104. package/test-alice/000145.ldb +0 -0
  105. package/test-alice/000147.ldb +0 -0
  106. package/test-alice/000150.ldb +0 -0
  107. package/test-alice/000153.ldb +0 -0
  108. package/test-alice/000154.log +0 -0
  109. package/test-alice/CURRENT +1 -1
  110. package/test-alice/LOG +5 -5
  111. package/test-alice/LOG.old +5 -5
  112. package/test-alice/MANIFEST-000152 +0 -0
  113. package/test-alice-speed/000022.ldb +0 -0
  114. package/test-alice-speed/000024.ldb +0 -0
  115. package/test-alice-speed/000027.ldb +0 -0
  116. package/test-alice-speed/000030.ldb +0 -0
  117. package/test-alice-speed/000031.log +0 -0
  118. package/test-alice-speed/CURRENT +1 -1
  119. package/test-alice-speed/LOG +5 -13
  120. package/test-alice-speed/LOG.old +5 -5
  121. package/test-alice-speed/MANIFEST-000029 +0 -0
  122. package/{test-verify-a/000250.log → test-base-client/000099.log} +0 -0
  123. package/test-base-client/CURRENT +1 -0
  124. package/test-base-client/LOCK +0 -0
  125. package/test-base-client/LOG +3 -0
  126. package/test-base-client/LOG.old +3 -0
  127. package/test-base-client/MANIFEST-000098 +0 -0
  128. package/test-base-server/000101.log +0 -0
  129. package/test-base-server/CURRENT +1 -0
  130. package/test-base-server/LOCK +0 -0
  131. package/test-base-server/LOG +3 -0
  132. package/test-base-server/LOG.old +3 -0
  133. package/test-base-server/MANIFEST-000100 +0 -0
  134. package/test-bob/000160.ldb +0 -0
  135. package/test-bob/000162.ldb +0 -0
  136. package/test-bob/000163.log +0 -0
  137. package/test-bob/CURRENT +1 -1
  138. package/test-bob/LOG +5 -5
  139. package/test-bob/LOG.old +14 -14
  140. package/test-bob/MANIFEST-000161 +0 -0
  141. package/test-chris/000017.ldb +0 -0
  142. package/test-chris/000020.ldb +0 -0
  143. package/test-chris/000023.ldb +0 -0
  144. package/test-chris/000026.ldb +0 -0
  145. package/test-chris/000029.ldb +0 -0
  146. package/test-chris/000086.ldb +0 -0
  147. package/test-chris/000089.ldb +0 -0
  148. package/test-chris/000092.ldb +0 -0
  149. package/test-chris/000095.ldb +0 -0
  150. package/test-chris/000098.ldb +0 -0
  151. package/test-chris/000103.ldb +0 -0
  152. package/test-chris/000106.ldb +0 -0
  153. package/test-chris/000109.ldb +0 -0
  154. package/test-chris/000112.ldb +0 -0
  155. package/test-chris/000115.ldb +0 -0
  156. package/test-chris/000118.ldb +0 -0
  157. package/test-chris/000121.ldb +0 -0
  158. package/test-chris/000124.ldb +0 -0
  159. package/test-chris/000127.ldb +0 -0
  160. package/test-chris/000130.ldb +0 -0
  161. package/test-chris/000133.ldb +0 -0
  162. package/test-chris/000136.ldb +0 -0
  163. package/test-chris/000139.ldb +0 -0
  164. package/test-chris/000142.ldb +0 -0
  165. package/test-chris/000145.ldb +0 -0
  166. package/test-chris/000148.ldb +0 -0
  167. package/test-chris/000151.ldb +0 -0
  168. package/test-chris/000152.log +0 -0
  169. package/test-chris/CURRENT +1 -0
  170. package/test-chris/LOCK +0 -0
  171. package/test-chris/LOG +6 -0
  172. package/test-chris/LOG.old +6 -0
  173. package/test-chris/MANIFEST-000150 +0 -0
  174. package/test-node-a/000175.ldb +0 -0
  175. package/test-node-a/000177.ldb +0 -0
  176. package/test-node-a/000178.log +0 -0
  177. package/test-node-a/CURRENT +1 -1
  178. package/test-node-a/LOG +5 -5
  179. package/test-node-a/LOG.old +14 -5
  180. package/test-node-a/MANIFEST-000176 +0 -0
  181. package/test-node-b/000175.ldb +0 -0
  182. package/test-node-b/000177.ldb +0 -0
  183. package/test-node-b/000178.log +0 -0
  184. package/test-node-b/CURRENT +1 -1
  185. package/test-node-b/LOG +5 -5
  186. package/test-node-b/LOG.old +14 -5
  187. package/test-node-b/MANIFEST-000176 +0 -0
  188. package/test-store/000007.ldb +0 -0
  189. package/test-store/000010.ldb +0 -0
  190. package/test-store/000013.ldb +0 -0
  191. package/test-store/000016.ldb +0 -0
  192. package/test-store/000019.ldb +0 -0
  193. package/test-store/000022.ldb +0 -0
  194. package/test-store/000025.ldb +0 -0
  195. package/test-store/000028.ldb +0 -0
  196. package/test-store/000031.ldb +0 -0
  197. package/test-store/000034.ldb +0 -0
  198. package/test-store/000037.ldb +0 -0
  199. package/test-store/000038.log +0 -0
  200. package/test-store/CURRENT +1 -0
  201. package/test-store/LOCK +0 -0
  202. package/test-store/LOG +6 -0
  203. package/test-store/LOG.old +6 -0
  204. package/test-store/MANIFEST-000036 +0 -0
  205. package/test-verify-a/000049.log +0 -0
  206. package/test-verify-a/CURRENT +1 -1
  207. package/test-verify-a/LOG +3 -3
  208. package/test-verify-a/LOG.old +3 -3
  209. package/test-verify-a/MANIFEST-000048 +0 -0
  210. package/toolDbLibP2p.ts +12 -11
  211. package/test-alice/000663.ldb +0 -0
  212. package/test-alice/000665.ldb +0 -0
  213. package/test-alice/000668.ldb +0 -0
  214. package/test-alice/000669.log +0 -0
  215. package/test-alice/MANIFEST-000667 +0 -0
  216. package/test-alice-speed/000035.log +0 -0
  217. package/test-alice-speed/000036.ldb +0 -0
  218. package/test-alice-speed/MANIFEST-000033 +0 -0
  219. package/test-bob/000665.ldb +0 -0
  220. package/test-bob/000667.ldb +0 -0
  221. package/test-bob/000668.log +0 -0
  222. package/test-bob/MANIFEST-000666 +0 -0
  223. package/test-node-a/000663.ldb +0 -0
  224. package/test-node-a/000665.ldb +0 -0
  225. package/test-node-a/000668.ldb +0 -0
  226. package/test-node-a/000669.log +0 -0
  227. package/test-node-a/MANIFEST-000667 +0 -0
  228. package/test-node-b/000663.ldb +0 -0
  229. package/test-node-b/000665.ldb +0 -0
  230. package/test-node-b/000668.ldb +0 -0
  231. package/test-node-b/000669.log +0 -0
  232. package/test-node-b/MANIFEST-000667 +0 -0
  233. package/test-verify-a/000026.ldb +0 -0
  234. package/test-verify-a/000029.ldb +0 -0
  235. package/test-verify-a/000031.ldb +0 -0
  236. package/test-verify-a/000033.ldb +0 -0
  237. 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":";;;;;;;;;;;;;;;;;;;;AAAA,mFAAmE;AAGnE;IAA2C,iCAAoB;IAG7D,uBAAY,EAAU;QAAtB,YACE,kBAAM,EAAE,CAAC,SAKV;QAHC,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/B,KAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACvD,KAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;;IACvB,CAAC;IAEM,2BAAG,GAAV,UAAW,GAAW,EAAE,IAAY;QAApC,iBAsBC;QArBC,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YACjC,IACE,CAAC,KAAI,CAAC,QAAQ;gBACd,CAAC,KAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM,IAAI,KAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,EACnE;gBACA,UAAU,CAAC;oBACT,OAAO,CAAC,KAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC/B,CAAC,EAAE,CAAC,CAAC,CAAC;gBACN,OAAO;aACR;YACD,6DAA6D;YAE7D,KAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,UAAC,GAAQ;gBACpC,8CAA8C;gBAC9C,IAAI,GAAG,EAAE;oBACP,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;iBAC3C;qBAAM;oBACL,OAAO,CAAC,IAAI,CAAC,CAAC;iBACf;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,2BAAG,GAAV,UAAW,GAAW;QAAtB,iBAqBC;QApBC,OAAO,IAAI,OAAO,CAAS,UAAC,OAAO,EAAE,MAAM;YACzC,IACE,CAAC,KAAI,CAAC,QAAQ;gBACd,CAAC,KAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM,IAAI,KAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,EACnE;gBACA,UAAU,CAAC;oBACT,OAAO,CAAC,KAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzB,CAAC,EAAE,CAAC,CAAC,CAAC;gBACN,OAAO;aACR;YAED,KAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,UAAC,GAAQ,EAAE,KAAU;gBAC1C,8CAA8C;gBAC9C,IAAI,GAAG,EAAE;oBACP,MAAM,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;iBAC5C;qBAAM;oBACL,OAAO,CAAC,KAAK,CAAC,CAAC;iBAChB;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,6BAAK,GAAZ,UAAa,GAAW;QAAxB,iBAmCC;QAlCC,+DAA+D;QAC/D,OAAO,IAAI,OAAO,CAAW,UAAC,OAAO,EAAE,MAAM;YAC3C,IACE,CAAC,KAAI,CAAC,QAAQ;gBACd,CAAC,KAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM,IAAI,KAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,EACnE;gBACA,UAAU,CAAC;oBACT,OAAO,CAAC,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC3B,CAAC,EAAE,CAAC,CAAC,CAAC;gBACN,OAAO;aACR;YAED,IAAI;gBACF,IAAM,OAAK,GAAa,EAAE,CAAC;gBAC3B,KAAI,CAAC,QAAQ;qBACV,eAAe,CAAC;oBACf,GAAG,EAAE,GAAG;oBACR,GAAG,EAAE,GAAG,GAAG,QAAQ;iBACpB,CAAC;qBACD,EAAE,CAAC,MAAM,EAAE,UAAC,IAAY;oBACvB,8BAA8B;oBAC9B,OAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACjB,IAAI;gBACN,CAAC,CAAC;qBACD,EAAE,CAAC,OAAO,EAAE,UAAC,GAAQ;oBACpB,MAAM,CAAC,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBAC1C,CAAC,CAAC;qBACD,EAAE,CAAC,OAAO,EAAE;oBACX,OAAO,CAAC,OAAK,CAAC,CAAC;gBACjB,CAAC,CAAC,CAAC;aACN;YAAC,OAAO,KAAK,EAAE;gBACd,MAAM,CAAC,KAAK,CAAC,CAAC;aACf;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACH,oBAAC;AAAD,CAAC,AA9FD,CAA2C,wBAAoB,GA8F9D"}
@@ -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
+ }