tool-db 1.1.10 → 1.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/README.md +32 -7
- package/dist/toolDbClientOnMessage.js +38 -32
- package/dist/toolDbClientOnMessage.js.map +1 -1
- package/dist/toolDbCrdtPut.js +1 -2
- package/dist/toolDbCrdtPut.js.map +1 -1
- package/dist/toolDbGet.js +14 -16
- package/dist/toolDbGet.js.map +1 -1
- package/dist/toolDbPut.js +1 -2
- package/dist/toolDbPut.js.map +1 -1
- package/dist/toolDbQueryKeys.js +1 -2
- package/dist/toolDbQueryKeys.js.map +1 -1
- package/dist/toolDbSignUp.js +1 -2
- package/dist/toolDbSignUp.js.map +1 -1
- package/dist/toolDbSubscribe.js +2 -0
- package/dist/toolDbSubscribe.js.map +1 -1
- package/dist/tooldb.d.ts +1 -0
- package/dist/tooldb.js +12 -1
- package/dist/tooldb.js.map +1 -1
- package/dist/types/message.d.ts +14 -13
- package/dist/types/message.js +9 -9
- package/dist/types/message.js.map +1 -1
- package/dist/types/tooldb.d.ts +1 -0
- package/dist/wss.d.ts +4 -2
- package/dist/wss.js +48 -13
- package/dist/wss.js.map +1 -1
- package/dist/zkp.d.ts +1 -0
- package/dist/zkp.js +29 -0
- package/dist/zkp.js.map +1 -0
- package/package.json +1 -2
package/README.md
CHANGED
|
@@ -15,9 +15,9 @@ Please check the [chain-swarm](https://github.com/Manuel-777/chain-swarm) reposi
|
|
|
15
15
|
We do that using [discovery-channel](https://www.npmjs.com/package/discovery-channel), but you can use any DHT solution you want! Theoretically, even WebRTC between browsers would work.
|
|
16
16
|
|
|
17
17
|
## Base usage
|
|
18
|
-
Connect to the selected
|
|
18
|
+
Connect to the selected toolDb peers;
|
|
19
19
|
```
|
|
20
|
-
const client = new
|
|
20
|
+
const client = new ToolDb(options);
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
These are the options you can pass to the constructor:
|
|
@@ -63,7 +63,9 @@ if (client.user) {
|
|
|
63
63
|
}
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
-
|
|
66
|
+
## Putting and getting data
|
|
67
|
+
|
|
68
|
+
Core methods are very straighforward:
|
|
67
69
|
```
|
|
68
70
|
client.getData("key", userNamespaced?, timeout?).then();
|
|
69
71
|
client.putData("key", value, userNamespaced?).then();
|
|
@@ -83,9 +85,9 @@ client.removeKeyListener(listenerId);
|
|
|
83
85
|
|
|
84
86
|
Similarly, for using a custom verification on a key (or subset of keys) you can create a new function that returns a Promise boolean;
|
|
85
87
|
```
|
|
86
|
-
const
|
|
88
|
+
const validateFn = (msg) => {
|
|
87
89
|
return new Promise((resolve) => {
|
|
88
|
-
console.log("Custom
|
|
90
|
+
console.log("Custom verification: ", msg);
|
|
89
91
|
if (typeof msg.value === "string") resolve(true);
|
|
90
92
|
else resolve(false);
|
|
91
93
|
});
|
|
@@ -93,12 +95,27 @@ const validateDn = (msg) => {
|
|
|
93
95
|
|
|
94
96
|
const validatorId = client.addCustomVerification("value", validateFn);
|
|
95
97
|
|
|
96
|
-
// You will not usually need to remove validators, but we provide a function anyway.
|
|
97
98
|
client.removeCustomVerification(validatorId);
|
|
98
99
|
```
|
|
99
100
|
|
|
100
101
|
Keep in mind custom validators should run on all client and server nodes, and even though the nodes not running your validator will be able to store and relay invalid messages its up to each peer to check these messages on arrival. ToolDb does this automatically when using the custom validation, but its important to make sure every peer runs the same code to avoid tampered messages flowing in the network.
|
|
101
102
|
|
|
103
|
+
## Query
|
|
104
|
+
|
|
105
|
+
To make queries or just create indexes you can make a query, it simply asks all server or peers connected a list of all keys starting with a prefix. You can later use these keys to get the data itself.
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
client.queryKeys(keyPrefix, userNamespaced?, timeout?).then()
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Just like previous methods you can configure the namespace and timeout and returns a promise, but in this case the value is always an array with the found keys.
|
|
112
|
+
Using for example ":" + publicKey as our prefix would return all keys stored for that specific user namespace; you can also create keys for very specific use cases like "post-1" and query again "post-" to get a list of all available posts.
|
|
113
|
+
|
|
114
|
+
Keep in mind this can be an intensive thing to do if your indexes are too big, and not recommended to be used very frequently.
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
## Listen for changes
|
|
118
|
+
|
|
102
119
|
Some times you want to subscribe to the changes made on a certain key, this is possible via subscribeData;
|
|
103
120
|
```
|
|
104
121
|
client.subscribeData("key", userNamespaced?);
|
|
@@ -125,4 +142,12 @@ function handleDocumentKeyCrdt(msg) {
|
|
|
125
142
|
}
|
|
126
143
|
}
|
|
127
144
|
}
|
|
128
|
-
```
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Events
|
|
148
|
+
|
|
149
|
+
If you need to check when you are connected to a server peer or not you can use the following method replacements;
|
|
150
|
+
```
|
|
151
|
+
client.onConnect = () => { /* Your code here */ };
|
|
152
|
+
client.onDisconnect = () => { /* Your code here */ };
|
|
153
|
+
```
|
|
@@ -23,12 +23,7 @@ function toolDbClientOnMessage(data, socket) {
|
|
|
23
23
|
var originalData = data;
|
|
24
24
|
if (typeof data === "string") {
|
|
25
25
|
var message_1 = JSON.parse(data);
|
|
26
|
-
// console.log(
|
|
27
|
-
// "Got message > ",
|
|
28
|
-
// data,
|
|
29
|
-
// message.type,
|
|
30
|
-
// (message as any).key || ""
|
|
31
|
-
// );
|
|
26
|
+
// console.log("Got message > ", message.type, (message as any).k || "");
|
|
32
27
|
// Check if we are listening for this ID
|
|
33
28
|
if (message_1.id) {
|
|
34
29
|
var msgId = message_1.id;
|
|
@@ -38,16 +33,22 @@ function toolDbClientOnMessage(data, socket) {
|
|
|
38
33
|
}
|
|
39
34
|
}
|
|
40
35
|
if (message_1.type === "ping") {
|
|
41
|
-
socket.toolDbId = message_1.
|
|
42
|
-
this.websockets._clientSockets[message_1.
|
|
43
|
-
socket.
|
|
36
|
+
socket.toolDbId = message_1.clientId;
|
|
37
|
+
this.websockets._clientSockets[message_1.clientId] = socket;
|
|
38
|
+
socket.isServer = message_1.isServer;
|
|
39
|
+
this.websockets.sendToClientId(socket.toolDbId || "", {
|
|
44
40
|
type: "pong",
|
|
45
|
-
|
|
46
|
-
|
|
41
|
+
isServer: this.options.server,
|
|
42
|
+
clientId: this.options.id,
|
|
43
|
+
to: [],
|
|
44
|
+
id: (0, _1.textRandom)(10),
|
|
45
|
+
});
|
|
47
46
|
}
|
|
48
47
|
if (message_1.type === "pong") {
|
|
49
|
-
socket.toolDbId = message_1.
|
|
50
|
-
|
|
48
|
+
socket.toolDbId = message_1.clientId;
|
|
49
|
+
socket.isServer = message_1.isServer;
|
|
50
|
+
this.websockets._clientSockets[message_1.clientId] = socket;
|
|
51
|
+
this.onConnect();
|
|
51
52
|
}
|
|
52
53
|
if (message_1.type === "subscribe") {
|
|
53
54
|
if (socket.toolDbId) {
|
|
@@ -69,7 +70,7 @@ function toolDbClientOnMessage(data, socket) {
|
|
|
69
70
|
if (data) {
|
|
70
71
|
try {
|
|
71
72
|
var oldData = __assign(__assign({}, JSON.parse(data)), { id: message_1.id });
|
|
72
|
-
|
|
73
|
+
_this.websockets.sendToClientId(socket.toolDbId || "", oldData);
|
|
73
74
|
}
|
|
74
75
|
catch (e) {
|
|
75
76
|
// do nothing
|
|
@@ -84,10 +85,11 @@ function toolDbClientOnMessage(data, socket) {
|
|
|
84
85
|
var msg = {
|
|
85
86
|
type: "crdt",
|
|
86
87
|
key: message_1.key,
|
|
88
|
+
to: [],
|
|
87
89
|
id: (0, _1.textRandom)(10),
|
|
88
90
|
doc: (0, _1.uint8ToBase64)(savedDoc),
|
|
89
91
|
};
|
|
90
|
-
|
|
92
|
+
_this.websockets.sendToClientId(socket.toolDbId || "", msg);
|
|
91
93
|
}
|
|
92
94
|
});
|
|
93
95
|
}
|
|
@@ -97,7 +99,7 @@ function toolDbClientOnMessage(data, socket) {
|
|
|
97
99
|
try {
|
|
98
100
|
// Use the id of the get so the other client knows we are replying
|
|
99
101
|
var oldData = __assign(__assign({ type: "put" }, JSON.parse(data)), { id: message_1.id });
|
|
100
|
-
|
|
102
|
+
_this.websockets.sendToClientId(socket.toolDbId || "", oldData);
|
|
101
103
|
}
|
|
102
104
|
catch (e) {
|
|
103
105
|
// socket.send(data);
|
|
@@ -108,24 +110,19 @@ function toolDbClientOnMessage(data, socket) {
|
|
|
108
110
|
if (_this.options.debug) {
|
|
109
111
|
console.log("Local key not found, relay", originalData);
|
|
110
112
|
}
|
|
111
|
-
|
|
112
|
-
if ("" + socketId !== "" + socket.toolDbId) {
|
|
113
|
-
var socket_1 = _this.websockets.clientSockets[socketId];
|
|
114
|
-
console.log("Sending to", socketId);
|
|
115
|
-
socket_1.send(originalData);
|
|
116
|
-
}
|
|
117
|
-
});
|
|
113
|
+
_this.websockets.send(message_1);
|
|
118
114
|
}
|
|
119
115
|
});
|
|
120
116
|
}
|
|
121
117
|
if (message_1.type === "put") {
|
|
122
118
|
toolDbVerificationWrapper_1.default.call(this, message_1).then(function (value) {
|
|
119
|
+
// console.log("Verification wrapper result: ", value, message.k);
|
|
123
120
|
if (value === _1.VerifyResult.Verified) {
|
|
124
|
-
// relay to other servers
|
|
125
|
-
_this.websockets.send(message_1
|
|
121
|
+
// relay to other servers !!!
|
|
122
|
+
_this.websockets.send(message_1);
|
|
126
123
|
_this.store.get(message_1.k, function (err, oldData) {
|
|
127
124
|
if (oldData) {
|
|
128
|
-
var parsedOldData = JSON.parse(oldData);
|
|
125
|
+
var parsedOldData = __assign({ type: "put" }, JSON.parse(oldData));
|
|
129
126
|
if (parsedOldData.t < message_1.t) {
|
|
130
127
|
var key = message_1.k;
|
|
131
128
|
_this.triggerKeyListener(key, message_1);
|
|
@@ -133,6 +130,10 @@ function toolDbClientOnMessage(data, socket) {
|
|
|
133
130
|
//
|
|
134
131
|
});
|
|
135
132
|
}
|
|
133
|
+
else {
|
|
134
|
+
var key = message_1.k;
|
|
135
|
+
_this.triggerKeyListener(key, parsedOldData);
|
|
136
|
+
}
|
|
136
137
|
// } else if (this.options.debug) {
|
|
137
138
|
// console.log(
|
|
138
139
|
// `${message.k} has old data, but its newer. old ${parsedOldData.t} < new ${message.t}`
|
|
@@ -149,7 +150,7 @@ function toolDbClientOnMessage(data, socket) {
|
|
|
149
150
|
});
|
|
150
151
|
}
|
|
151
152
|
else {
|
|
152
|
-
console.
|
|
153
|
+
console.warn("unverified message: ", value, message_1);
|
|
153
154
|
}
|
|
154
155
|
});
|
|
155
156
|
}
|
|
@@ -158,6 +159,7 @@ function toolDbClientOnMessage(data, socket) {
|
|
|
158
159
|
// key.crdt = automerge doc with changes
|
|
159
160
|
// const writeStart = new Date().getTime();
|
|
160
161
|
toolDbVerificationWrapper_1.default.call(this, message_1).then(function (value) {
|
|
162
|
+
// console.log("CRDT Verification wrapper result: ", value);
|
|
161
163
|
if (value === _1.VerifyResult.Verified) {
|
|
162
164
|
var key_1 = message_1.k;
|
|
163
165
|
var data_1 = [];
|
|
@@ -208,11 +210,13 @@ function toolDbClientOnMessage(data, socket) {
|
|
|
208
210
|
type: "crdt",
|
|
209
211
|
key: key_1,
|
|
210
212
|
id: message_1.id,
|
|
213
|
+
to: [],
|
|
211
214
|
doc: (0, _1.uint8ToBase64)(savedDoc),
|
|
212
215
|
};
|
|
213
216
|
_this.triggerKeyListener(key_1, crdtMessage);
|
|
214
217
|
// relay to other servers
|
|
215
|
-
|
|
218
|
+
// !!!
|
|
219
|
+
_this.websockets.send(crdtMessage);
|
|
216
220
|
});
|
|
217
221
|
}
|
|
218
222
|
else {
|
|
@@ -223,21 +227,23 @@ function toolDbClientOnMessage(data, socket) {
|
|
|
223
227
|
if (message_1.type === "crdtGet") {
|
|
224
228
|
this.loadCrdtDocument(message_1.key).then(function (currentDoc) {
|
|
225
229
|
var saved = automerge_1.default.save(currentDoc || automerge_1.default.init());
|
|
226
|
-
|
|
230
|
+
_this.websockets.sendToClientId(socket.toolDbId || "", {
|
|
227
231
|
type: "crdt",
|
|
228
232
|
id: message_1.id,
|
|
229
233
|
key: message_1.key,
|
|
234
|
+
to: [],
|
|
230
235
|
doc: (0, _1.uint8ToBase64)(saved),
|
|
231
|
-
})
|
|
236
|
+
});
|
|
232
237
|
});
|
|
233
238
|
}
|
|
234
239
|
if (message_1.type === "query") {
|
|
235
240
|
this.store.query(message_1.key).then(function (keys) {
|
|
236
|
-
|
|
241
|
+
_this.websockets.sendToClientId(socket.toolDbId || "", {
|
|
237
242
|
type: "queryAck",
|
|
238
243
|
id: message_1.id,
|
|
244
|
+
to: [],
|
|
239
245
|
keys: keys,
|
|
240
|
-
})
|
|
246
|
+
});
|
|
241
247
|
});
|
|
242
248
|
}
|
|
243
249
|
if (message_1.type === "crdt") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolDbClientOnMessage.js","sourceRoot":"","sources":["../src/toolDbClientOnMessage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sBAUW;AAEX,0FAAoE;AAEpE,wDAAkC;AAClC,sFAAgE;AAGhE,SAAwB,qBAAqB,CAE3C,IAAY,EACZ,MAAuB;IAHzB,
|
|
1
|
+
{"version":3,"file":"toolDbClientOnMessage.js","sourceRoot":"","sources":["../src/toolDbClientOnMessage.ts"],"names":[],"mappings":"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"}
|
package/dist/toolDbCrdtPut.js
CHANGED
|
@@ -51,7 +51,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
51
51
|
};
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
var _1 = require(".");
|
|
54
|
-
var getIpFromUrl_1 = __importDefault(require("./utils/getIpFromUrl"));
|
|
55
54
|
var proofOfWork_1 = __importDefault(require("./utils/proofOfWork"));
|
|
56
55
|
var signData_1 = __importDefault(require("./utils/signData"));
|
|
57
56
|
var toBase64_1 = __importDefault(require("./utils/toBase64"));
|
|
@@ -102,7 +101,7 @@ function toolDbCrdtPut(key, value, userNamespaced) {
|
|
|
102
101
|
if (this.options.debug) {
|
|
103
102
|
console.log("PUT CRDT > " + key, data);
|
|
104
103
|
}
|
|
105
|
-
finalMessage = __assign({ type: "crdtPut", id: (0, _1.textRandom)(10), to:
|
|
104
|
+
finalMessage = __assign({ type: "crdtPut", id: (0, _1.textRandom)(10), to: [] }, data);
|
|
106
105
|
this.websockets.send(finalMessage);
|
|
107
106
|
resolve(finalMessage);
|
|
108
107
|
return [2 /*return*/];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolDbCrdtPut.js","sourceRoot":"","sources":["../src/toolDbCrdtPut.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,sBAAgF;
|
|
1
|
+
{"version":3,"file":"toolDbCrdtPut.js","sourceRoot":"","sources":["../src/toolDbCrdtPut.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,sBAAgF;AAGhF,oEAA8C;AAE9C,8DAAwC;AACxC,8DAAwC;AAExC;;;;;;GAMG;AACH,SAAwB,aAAa,CAEnC,GAAW,EACX,KAAqB,EACrB,cAAsB;IAJxB,iBA4DC;IAxDC,+BAAA,EAAA,sBAAsB;IAEtB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACrB,8FAA8F;YAC9F,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA6B,GAAK,CAAC,CAAC,CAAC;YACtD,OAAO;SACR;QAED,IAAI,CAAC,KAAI,CAAC,IAAI,EAAE;YACd,MAAM,CAAC,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;YAC5D,OAAO;SACR;QAED,IAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QAEvC,IAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAa,CAAC,CAAC,CAAC;QAE7D,IAAM,UAAU,GAAG,KAAG,WAAW,GAAG,KAAI,CAAC,IAAI,CAAC,MAAM,GAAG,SAAW,CAAC;QAEnE,OAAO;QACP,IAAA,qBAAW,EAAC,UAAU,EAAE,KAAI,CAAC,OAAO,CAAC,GAAG,CAAC;aACtC,IAAI,CAAC,UAAC,EAAe;;gBAAb,IAAI,UAAA,EAAE,KAAK,WAAA;YAClB,IAAI,MAAA,KAAI,CAAC,IAAI,0CAAE,IAAI,EAAE;gBACnB,iBAAiB;gBACjB,IAAA,kBAAQ,EAAC,IAAI,EAAE,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAuB,CAAC;qBAC5D,IAAI,CAAC,UAAO,SAAS;;;;wBAEd,IAAI,GAAqB;4BAC7B,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,OAAI,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,UAAI,GAAK,CAAC,CAAC,CAAC,GAAG;4BACxD,CAAC,EAAE,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,KAAI,EAAE;4BAC1B,CAAC,EAAE,KAAK;4BACR,CAAC,EAAE,SAAS;4BACZ,CAAC,EAAE,IAAI;4BACP,CAAC,EAAE,IAAA,kBAAQ,EAAC,SAAS,CAAC;4BACtB,CAAC,EAAE,WAAW;yBACf,CAAC;wBAEF,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;4BACtB,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;yBACxC;wBAEK,YAAY,cAChB,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,IAAA,aAAU,EAAC,EAAE,CAAC,EAClB,EAAE,EAAE,EAAE,IACH,IAAI,CACR,CAAC;wBACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBACnC,OAAO,CAAC,YAAY,CAAC,CAAC;;;qBACvB,CAAC;qBACD,KAAK,CAAC,MAAM,CAAC,CAAC;aAClB;QACH,CAAC,CAAC;aACD,KAAK,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AA5DD,gCA4DC"}
|
package/dist/toolDbGet.js
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
var _1 = require(".");
|
|
7
|
-
var getIpFromUrl_1 = __importDefault(require("./utils/getIpFromUrl"));
|
|
8
4
|
/**
|
|
9
5
|
* Triggers a GET request to other peers. If the data is available locally it will return that instead.
|
|
10
6
|
* @param key key of the data
|
|
@@ -27,17 +23,6 @@ function toolDbGet(key, userNamespaced, timeoutMs) {
|
|
|
27
23
|
console.log("GET > " + finalKey);
|
|
28
24
|
}
|
|
29
25
|
var msgId = (0, _1.textRandom)(10);
|
|
30
|
-
_this.store.get(finalKey, function (err, data) {
|
|
31
|
-
if (data) {
|
|
32
|
-
try {
|
|
33
|
-
var message = JSON.parse(data);
|
|
34
|
-
_this.triggerKeyListener(finalKey, message);
|
|
35
|
-
}
|
|
36
|
-
catch (e) {
|
|
37
|
-
// do nothing
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
26
|
var cancelTimeout = setTimeout(function () {
|
|
42
27
|
_this.store.get(finalKey, function (err, data) {
|
|
43
28
|
if (data) {
|
|
@@ -63,10 +48,23 @@ function toolDbGet(key, userNamespaced, timeoutMs) {
|
|
|
63
48
|
resolve(msg.v);
|
|
64
49
|
}
|
|
65
50
|
});
|
|
51
|
+
_this.store.get(finalKey, function (err, data) {
|
|
52
|
+
if (data) {
|
|
53
|
+
try {
|
|
54
|
+
var val = JSON.parse(data).v;
|
|
55
|
+
clearTimeout(cancelTimeout);
|
|
56
|
+
_this.removeIdListener(msgId);
|
|
57
|
+
resolve(val);
|
|
58
|
+
}
|
|
59
|
+
catch (e) {
|
|
60
|
+
// do nothing
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
});
|
|
66
64
|
// Do get
|
|
67
65
|
_this.websockets.send({
|
|
68
66
|
type: "get",
|
|
69
|
-
to:
|
|
67
|
+
to: [],
|
|
70
68
|
key: finalKey,
|
|
71
69
|
id: msgId,
|
|
72
70
|
});
|
package/dist/toolDbGet.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolDbGet.js","sourceRoot":"","sources":["../src/toolDbGet.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"toolDbGet.js","sourceRoot":"","sources":["../src/toolDbGet.ts"],"names":[],"mappings":";;AAAA,sBAA+B;AAI/B;;;;;;GAMG;AACH,SAAwB,SAAS,CAE/B,GAAW,EACX,cAAsB,EACtB,SAAgB;IAJlB,iBAiEC;IA9DC,+BAAA,EAAA,sBAAsB;IACtB,0BAAA,EAAA,gBAAgB;IAEhB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;;QACjC,IAAI,cAAc,IAAI,CAAA,MAAA,KAAI,CAAC,IAAI,0CAAE,MAAM,MAAK,SAAS,EAAE;YACrD,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;YACjD,OAAO;SACR;QACD,IAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,OAAI,MAAA,KAAI,CAAC,IAAI,0CAAE,MAAM,UAAI,GAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QACvE,IAAI,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YACtB,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;SAClC;QAED,IAAM,KAAK,GAAG,IAAA,aAAU,EAAC,EAAE,CAAC,CAAC;QAE7B,IAAM,aAAa,GAAG,UAAU,CAAC;YAC/B,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,GAAG,EAAE,IAAI;gBACjC,IAAI,IAAI,EAAE;oBACR,IAAI;wBACF,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;qBACpB;oBAAC,OAAO,CAAC,EAAE;wBACV,OAAO,CAAC,IAAI,CAAC,CAAC;qBACf;iBACF;qBAAM;oBACL,OAAO,CAAC,IAAI,CAAC,CAAC;iBACf;YACH,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,SAAS,CAAC,CAAC;QAEd,KAAI,CAAC,aAAa,CAAC,KAAK,EAAE,UAAC,GAAG;YAC5B,IAAI,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBACtB,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC;aAC7C;YAED,YAAY,CAAC,aAAa,CAAC,CAAC;YAC5B,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,EAAE;gBACtB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAChB;QACH,CAAC,CAAC,CAAC;QAEH,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,GAAG,EAAE,IAAI;YACjC,IAAI,IAAI,EAAE;gBACR,IAAI;oBACF,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC/B,YAAY,CAAC,aAAa,CAAC,CAAC;oBAC5B,KAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;oBAC7B,OAAO,CAAC,GAAG,CAAC,CAAC;iBACd;gBAAC,OAAO,CAAC,EAAE;oBACV,aAAa;iBACd;aACF;QACH,CAAC,CAAC,CAAC;QAEH,SAAS;QACT,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,IAAI,EAAE,KAAK;YACX,EAAE,EAAE,EAAE;YACN,GAAG,EAAE,QAAQ;YACb,EAAE,EAAE,KAAK;SACV,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAjED,4BAiEC"}
|
package/dist/toolDbPut.js
CHANGED
|
@@ -51,7 +51,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
51
51
|
};
|
|
52
52
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
53
|
var _1 = require(".");
|
|
54
|
-
var getIpFromUrl_1 = __importDefault(require("./utils/getIpFromUrl"));
|
|
55
54
|
var proofOfWork_1 = __importDefault(require("./utils/proofOfWork"));
|
|
56
55
|
var signData_1 = __importDefault(require("./utils/signData"));
|
|
57
56
|
var toBase64_1 = __importDefault(require("./utils/toBase64"));
|
|
@@ -107,7 +106,7 @@ function toolDbPut(key, value, userNamespaced) {
|
|
|
107
106
|
if (this.options.debug) {
|
|
108
107
|
console.log("PUT > " + key, data);
|
|
109
108
|
}
|
|
110
|
-
finalMessage = __assign({ type: "put", id: (0, _1.textRandom)(10), to:
|
|
109
|
+
finalMessage = __assign({ type: "put", id: (0, _1.textRandom)(10), to: [] }, data);
|
|
111
110
|
this.websockets.send(finalMessage);
|
|
112
111
|
resolve(finalMessage);
|
|
113
112
|
return [2 /*return*/];
|
package/dist/toolDbPut.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolDbPut.js","sourceRoot":"","sources":["../src/toolDbPut.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sBAA4E;
|
|
1
|
+
{"version":3,"file":"toolDbPut.js","sourceRoot":"","sources":["../src/toolDbPut.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sBAA4E;AAI5E,oEAA8C;AAE9C,8DAAwC;AACxC,8DAAwC;AAExC;;;;;;GAMG;AACH,SAAwB,SAAS,CAE/B,GAAW,EACX,KAAQ,EACR,cAAsB;IAJxB,iBAmEC;IA/DC,+BAAA,EAAA,sBAAsB;IAEtB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACrB,8FAA8F;YAC9F,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA6B,GAAK,CAAC,CAAC,CAAC;YACtD,OAAO;SACR;QAED,IAAI,CAAC,KAAI,CAAC,IAAI,EAAE;YACd,MAAM,CAAC,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;YAC5D,OAAO;SACR;QAED,IAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACvC,IAAM,UAAU,GAAG,KAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GACzC,KAAI,CAAC,IAAI,CAAC,MAAM,GACf,SAAW,CAAC;QAEf,OAAO;QACP,IAAA,qBAAW,EAAC,UAAU,EAAE,KAAI,CAAC,OAAO,CAAC,GAAG,CAAC;aACtC,IAAI,CAAC,UAAC,EAAe;;gBAAb,IAAI,UAAA,EAAE,KAAK,WAAA;YAClB,IAAI,MAAA,KAAI,CAAC,IAAI,0CAAE,IAAI,EAAE;gBACnB,iBAAiB;gBACjB,IAAA,kBAAQ,EAAC,IAAI,EAAE,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAuB,CAAC;qBAC5D,IAAI,CAAC,UAAO,SAAS;;;;wBACd,QAAQ,GAAG,cAAc;4BAC7B,CAAC,CAAC,OAAI,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,UAAI,GAAK;4BAChC,CAAC,CAAC,GAAG,CAAC;wBAEF,IAAI,GAAqB;4BAC7B,CAAC,EAAE,QAAQ;4BACX,CAAC,EAAE,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,KAAI,EAAE;4BAC1B,CAAC,EAAE,KAAK;4BACR,CAAC,EAAE,SAAS;4BACZ,CAAC,EAAE,IAAI;4BACP,CAAC,EAAE,IAAA,kBAAQ,EAAC,SAAS,CAAC;4BACtB,CAAC,EAAE,KAAK;yBACT,CAAC;wBAEF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,UAAC,GAAG,EAAE,IAAI;4BACvD,EAAE;wBACJ,CAAC,CAAC,CAAC;wBAEH,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;4BACtB,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;yBACnC;wBAEK,YAAY,cAChB,IAAI,EAAE,KAAK,EACX,EAAE,EAAE,IAAA,aAAU,EAAC,EAAE,CAAC,EAClB,EAAE,EAAE,EAAE,IACH,IAAI,CACR,CAAC;wBACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBAEnC,OAAO,CAAC,YAAY,CAAC,CAAC;;;qBACvB,CAAC;qBACD,KAAK,CAAC,MAAM,CAAC,CAAC;aAClB;QACH,CAAC,CAAC;aACD,KAAK,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAnED,4BAmEC"}
|
package/dist/toolDbQueryKeys.js
CHANGED
|
@@ -14,7 +14,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
var lodash_1 = __importDefault(require("lodash"));
|
|
16
16
|
var _1 = require(".");
|
|
17
|
-
var getIpFromUrl_1 = __importDefault(require("./utils/getIpFromUrl"));
|
|
18
17
|
/**
|
|
19
18
|
* Triggers a QUERY request to other peers.
|
|
20
19
|
* @param key start of the key
|
|
@@ -60,7 +59,7 @@ function toolDbQueryKeys(key, userNamespaced, timeoutMs) {
|
|
|
60
59
|
// Do get
|
|
61
60
|
_this.websockets.send({
|
|
62
61
|
type: "query",
|
|
63
|
-
to:
|
|
62
|
+
to: [],
|
|
64
63
|
key: finalKey,
|
|
65
64
|
id: msgId,
|
|
66
65
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolDbQueryKeys.js","sourceRoot":"","sources":["../src/toolDbQueryKeys.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAAuB;AACvB,sBAA+B;
|
|
1
|
+
{"version":3,"file":"toolDbQueryKeys.js","sourceRoot":"","sources":["../src/toolDbQueryKeys.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAAuB;AACvB,sBAA+B;AAI/B;;;;;GAKG;AACH,SAAwB,eAAe,CAErC,GAAW,EACX,cAAsB,EACtB,SAAgB;IAJlB,iBAmDC;IAhDC,+BAAA,EAAA,sBAAsB;IACtB,0BAAA,EAAA,gBAAgB;IAEhB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;;QACjC,IAAI,cAAc,IAAI,CAAA,MAAA,KAAI,CAAC,IAAI,0CAAE,MAAM,MAAK,SAAS,EAAE;YACrD,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;YACjD,OAAO;SACR;QACD,IAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,OAAI,MAAA,KAAI,CAAC,IAAI,0CAAE,MAAM,UAAI,GAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QACvE,IAAI,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YACtB,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC;SACpC;QAED,IAAM,KAAK,GAAG,IAAA,aAAU,EAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,SAAS,GAAa,EAAE,CAAC;QAC7B,IAAI,OAAmC,CAAC;QAExC,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAC,SAAS;YACxC,SAAS,mCAAO,SAAS,SAAK,SAAS,OAAC,CAAC;YACzC,OAAO,GAAG,UAAU,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,IAAM,eAAe,GAAG;YACtB,OAAO,CAAC,gBAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC;QAEF,KAAI,CAAC,aAAa,CAAC,KAAK,EAAE,UAAC,GAAG;YAC5B,IAAI,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBACtB,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC;aAC/C;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE;gBAC3B,SAAS,mCAAO,SAAS,SAAK,GAAG,CAAC,IAAI,OAAC,CAAC;gBAExC,IAAI,OAAO,EAAE;oBACX,YAAY,CAAC,OAAO,CAAC,CAAC;iBACvB;gBACD,OAAO,GAAG,UAAU,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;aAClD;QACH,CAAC,CAAC,CAAC;QAEH,SAAS;QACT,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,IAAI,EAAE,OAAO;YACb,EAAE,EAAE,EAAE;YACN,GAAG,EAAE,QAAQ;YACb,EAAE,EAAE,KAAK;SACV,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAnDD,kCAmDC"}
|
package/dist/toolDbSignUp.js
CHANGED
|
@@ -55,7 +55,6 @@ var encryptWithPass_1 = __importDefault(require("./utils/crypto/encryptWithPass"
|
|
|
55
55
|
var generateKeysComb_1 = __importDefault(require("./utils/crypto/generateKeysComb"));
|
|
56
56
|
var saveKeysComb_1 = __importDefault(require("./utils/crypto/saveKeysComb"));
|
|
57
57
|
var generateIv_1 = __importDefault(require("./utils/generateIv"));
|
|
58
|
-
var getIpFromUrl_1 = __importDefault(require("./utils/getIpFromUrl"));
|
|
59
58
|
var proofOfWork_1 = __importDefault(require("./utils/proofOfWork"));
|
|
60
59
|
var sha256_1 = __importDefault(require("./utils/sha256"));
|
|
61
60
|
var signData_1 = __importDefault(require("./utils/signData"));
|
|
@@ -116,7 +115,7 @@ function toolDbSignUp(user, password) {
|
|
|
116
115
|
if (_this.options.debug) {
|
|
117
116
|
console.log("SIGNUP PUT > " + userRoot, signupMessage);
|
|
118
117
|
}
|
|
119
|
-
var finalMsg = __assign({ type: "put", id: (0, _1.textRandom)(10), to:
|
|
118
|
+
var finalMsg = __assign({ type: "put", id: (0, _1.textRandom)(10), to: [] }, signupMessage);
|
|
120
119
|
_this.websockets.send(finalMsg);
|
|
121
120
|
resolve(finalMsg);
|
|
122
121
|
});
|
package/dist/toolDbSignUp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolDbSignUp.js","sourceRoot":"","sources":["../src/toolDbSignUp.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sBAA2E;AAI3E,mFAA6D;AAC7D,qFAA+D;AAC/D,6EAAuD;AACvD,kEAA4C;
|
|
1
|
+
{"version":3,"file":"toolDbSignUp.js","sourceRoot":"","sources":["../src/toolDbSignUp.ts"],"names":[],"mappings":"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"}
|
package/dist/toolDbSubscribe.js
CHANGED
|
@@ -44,6 +44,7 @@ function toolDbSubscribe(key, userNamespaced) {
|
|
|
44
44
|
type: "crdt",
|
|
45
45
|
key: finalKey,
|
|
46
46
|
id: (0, _1.textRandom)(10),
|
|
47
|
+
to: [],
|
|
47
48
|
doc: (0, _1.uint8ToBase64)(savedDoc),
|
|
48
49
|
};
|
|
49
50
|
_this.triggerKeyListener(finalKey, msg);
|
|
@@ -52,6 +53,7 @@ function toolDbSubscribe(key, userNamespaced) {
|
|
|
52
53
|
_this.websockets.send({
|
|
53
54
|
type: "subscribe",
|
|
54
55
|
key: finalKey,
|
|
56
|
+
to: [],
|
|
55
57
|
id: msgId,
|
|
56
58
|
});
|
|
57
59
|
resolve();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolDbSubscribe.js","sourceRoot":"","sources":["../src/toolDbSubscribe.ts"],"names":[],"mappings":";;;;;AAAA,sBAA2D;AAE3D,wDAAkC;AAElC;;;;;GAKG;AACH,SAAwB,eAAe,CAErC,GAAW,EACX,cAAsB;IAHxB,
|
|
1
|
+
{"version":3,"file":"toolDbSubscribe.js","sourceRoot":"","sources":["../src/toolDbSubscribe.ts"],"names":[],"mappings":";;;;;AAAA,sBAA2D;AAE3D,wDAAkC;AAElC;;;;;GAKG;AACH,SAAwB,eAAe,CAErC,GAAW,EACX,cAAsB;IAHxB,iBAoDC;IAjDC,+BAAA,EAAA,sBAAsB;IAEtB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;;QACjC,IAAI,cAAc,IAAI,CAAA,MAAA,KAAI,CAAC,IAAI,0CAAE,MAAM,MAAK,SAAS,EAAE;YACrD,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;YACjD,OAAO;SACR;QACD,IAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,OAAI,MAAA,KAAI,CAAC,IAAI,0CAAE,MAAM,UAAI,GAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QACvE,IAAI,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YACtB,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,QAAQ,CAAC,CAAC;SACxC;QAED,IAAM,KAAK,GAAG,IAAA,aAAU,EAAC,EAAE,CAAC,CAAC;QAE7B,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,GAAG,EAAE,IAAI;YACjC,IAAI,IAAI,EAAE;gBACR,IAAI;oBACF,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACjC,KAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;iBAC5C;gBAAC,OAAO,CAAC,EAAE;oBACV,aAAa;iBACd;aACF;QACH,CAAC,CAAC,CAAC;QAEH,yCAAyC;QACzC,KAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,UAAC,GAAG;YAC9C,IAAI,GAAG,EAAE;gBACP,IAAM,QAAQ,GAAG,mBAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrC,IAAM,GAAG,GAAgB;oBACvB,IAAI,EAAE,MAAM;oBACZ,GAAG,EAAE,QAAQ;oBACb,EAAE,EAAE,IAAA,aAAU,EAAC,EAAE,CAAC;oBAClB,EAAE,EAAE,EAAE;oBACN,GAAG,EAAE,IAAA,gBAAa,EAAC,QAAQ,CAAC;iBAC7B,CAAC;gBACF,KAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;aACxC;QACH,CAAC,CAAC,CAAC;QAEH,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,IAAI,EAAE,WAAW;YACjB,GAAG,EAAE,QAAQ;YACb,EAAE,EAAE,EAAE;YACN,EAAE,EAAE,KAAK;SACV,CAAC,CAAC;QAEH,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AApDD,kCAoDC"}
|
package/dist/tooldb.d.ts
CHANGED
|
@@ -33,6 +33,7 @@ export default class ToolDb {
|
|
|
33
33
|
get subscriptions(): string[];
|
|
34
34
|
subscribeData: typeof toolDbSubscribe;
|
|
35
35
|
onDisconnect: () => void;
|
|
36
|
+
onConnect: () => void;
|
|
36
37
|
loadCrdtDocument: typeof loadCrdtDocument;
|
|
37
38
|
getData: typeof toolDbGet;
|
|
38
39
|
putData: typeof toolDbPut;
|
package/dist/tooldb.js
CHANGED
|
@@ -39,9 +39,14 @@ var ToolDb = /** @class */ (function () {
|
|
|
39
39
|
this.clientOnMessage = toolDbClientOnMessage_1.default;
|
|
40
40
|
this._subscriptions = [];
|
|
41
41
|
this.subscribeData = toolDbSubscribe_1.default;
|
|
42
|
+
// Emitted when there are no more server peers connected to
|
|
42
43
|
this.onDisconnect = function () {
|
|
43
44
|
//
|
|
44
45
|
};
|
|
46
|
+
// Emitted when a server peer responds with "pong"
|
|
47
|
+
this.onConnect = function () {
|
|
48
|
+
//
|
|
49
|
+
};
|
|
45
50
|
this.loadCrdtDocument = loadCrdtDocument_1.default;
|
|
46
51
|
this.getData = toolDbGet_1.default;
|
|
47
52
|
this.putData = toolDbPut_1.default;
|
|
@@ -84,9 +89,14 @@ var ToolDb = /** @class */ (function () {
|
|
|
84
89
|
_this._keyListeners[id] = null;
|
|
85
90
|
};
|
|
86
91
|
this.triggerKeyListener = function (key, message) {
|
|
92
|
+
// console.warn(`triggerKeyListener ${key}`);
|
|
87
93
|
_this._keyListeners.forEach(function (listener) {
|
|
88
94
|
if ((listener === null || listener === void 0 ? void 0 : listener.key) === key) {
|
|
89
|
-
|
|
95
|
+
// console.log(`TRIGGER OK`, message);
|
|
96
|
+
if (listener.timeout) {
|
|
97
|
+
clearTimeout(listener.timeout);
|
|
98
|
+
}
|
|
99
|
+
listener.timeout = setTimeout(function () { return listener.fn(message); }, _this._options.triggerDebouce);
|
|
90
100
|
}
|
|
91
101
|
});
|
|
92
102
|
};
|
|
@@ -110,6 +120,7 @@ var ToolDb = /** @class */ (function () {
|
|
|
110
120
|
db: "tooldb",
|
|
111
121
|
peers: [],
|
|
112
122
|
maxRetries: 5,
|
|
123
|
+
triggerDebouce: 100,
|
|
113
124
|
wait: 2000,
|
|
114
125
|
pow: 0,
|
|
115
126
|
server: false,
|
package/dist/tooldb.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooldb.js","sourceRoot":"","sources":["../src/tooldb.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAAwB;AAIxB,0DAAoC;AACpC,0DAAoC;AACpC,sEAAgD;AAChD,gEAA0C;AAC1C,wEAAkD;AAClD,gEAA0C;AAC1C,0FAAoE;AAEpE,kFAA4D;AAC5D,8DAAwC;AACxC,4DAAsC;AACtC,sBAOW;AACX,sEAAgD;AAChD,kEAA4C;AAE5C,wEAAkD;AAClD,wEAAkD;AAClD,sEAAgD;AAahD;
|
|
1
|
+
{"version":3,"file":"tooldb.js","sourceRoot":"","sources":["../src/tooldb.ts"],"names":[],"mappings":"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"}
|
package/dist/types/message.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
export declare enum VerifyResult {
|
|
2
|
-
CustomVerificationFailed =
|
|
3
|
-
InvalidData =
|
|
4
|
-
InvalidVerification =
|
|
5
|
-
InvalidTimestamp =
|
|
6
|
-
PubKeyMismatch =
|
|
7
|
-
NoProofOfWork =
|
|
8
|
-
InvalidHashNonce =
|
|
9
|
-
InvalidSignature =
|
|
10
|
-
Verified =
|
|
2
|
+
CustomVerificationFailed = "CustomVerificationFailed",
|
|
3
|
+
InvalidData = "InvalidData",
|
|
4
|
+
InvalidVerification = "InvalidVerification",
|
|
5
|
+
InvalidTimestamp = "InvalidTimestamp",
|
|
6
|
+
PubKeyMismatch = "PubKeyMismatch",
|
|
7
|
+
NoProofOfWork = "NoProofOfWork",
|
|
8
|
+
InvalidHashNonce = "InvalidHashNonce",
|
|
9
|
+
InvalidSignature = "InvalidSignature",
|
|
10
|
+
Verified = "Verified"
|
|
11
11
|
}
|
|
12
12
|
export interface VerificationData<T = any> {
|
|
13
13
|
k: string;
|
|
@@ -22,17 +22,21 @@ export declare type MessageType = "ping" | "pong" | "query" | "queryAck" | "subs
|
|
|
22
22
|
export interface BaseMessage {
|
|
23
23
|
type: MessageType;
|
|
24
24
|
id: string;
|
|
25
|
+
to: string[];
|
|
25
26
|
}
|
|
26
27
|
export interface PingMessage extends BaseMessage {
|
|
27
28
|
type: "ping";
|
|
29
|
+
isServer: boolean;
|
|
30
|
+
clientId: string;
|
|
28
31
|
}
|
|
29
32
|
export interface PongMessage extends BaseMessage {
|
|
30
33
|
type: "pong";
|
|
34
|
+
isServer: boolean;
|
|
35
|
+
clientId: string;
|
|
31
36
|
}
|
|
32
37
|
export interface QueryMessage extends BaseMessage {
|
|
33
38
|
type: "query";
|
|
34
39
|
key: string;
|
|
35
|
-
to: string[];
|
|
36
40
|
}
|
|
37
41
|
export interface QueryAckMessage extends BaseMessage {
|
|
38
42
|
type: "queryAck";
|
|
@@ -45,15 +49,12 @@ export interface SubscribeMessage extends BaseMessage {
|
|
|
45
49
|
export interface GetMessage extends BaseMessage {
|
|
46
50
|
type: "get";
|
|
47
51
|
key: string;
|
|
48
|
-
to: string[];
|
|
49
52
|
}
|
|
50
53
|
export interface PutMessage<T = any> extends BaseMessage, VerificationData<T> {
|
|
51
54
|
type: "put";
|
|
52
|
-
to: string[];
|
|
53
55
|
}
|
|
54
56
|
export interface CrdtPutMessage extends BaseMessage, VerificationData<string> {
|
|
55
57
|
type: "crdtPut";
|
|
56
|
-
to: string[];
|
|
57
58
|
}
|
|
58
59
|
export interface CrdtGetMessage extends BaseMessage {
|
|
59
60
|
type: "crdtGet";
|
package/dist/types/message.js
CHANGED
|
@@ -3,14 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.VerifyResult = void 0;
|
|
4
4
|
var VerifyResult;
|
|
5
5
|
(function (VerifyResult) {
|
|
6
|
-
VerifyResult[
|
|
7
|
-
VerifyResult[
|
|
8
|
-
VerifyResult[
|
|
9
|
-
VerifyResult[
|
|
10
|
-
VerifyResult[
|
|
11
|
-
VerifyResult[
|
|
12
|
-
VerifyResult[
|
|
13
|
-
VerifyResult[
|
|
14
|
-
VerifyResult[
|
|
6
|
+
VerifyResult["CustomVerificationFailed"] = "CustomVerificationFailed";
|
|
7
|
+
VerifyResult["InvalidData"] = "InvalidData";
|
|
8
|
+
VerifyResult["InvalidVerification"] = "InvalidVerification";
|
|
9
|
+
VerifyResult["InvalidTimestamp"] = "InvalidTimestamp";
|
|
10
|
+
VerifyResult["PubKeyMismatch"] = "PubKeyMismatch";
|
|
11
|
+
VerifyResult["NoProofOfWork"] = "NoProofOfWork";
|
|
12
|
+
VerifyResult["InvalidHashNonce"] = "InvalidHashNonce";
|
|
13
|
+
VerifyResult["InvalidSignature"] = "InvalidSignature";
|
|
14
|
+
VerifyResult["Verified"] = "Verified";
|
|
15
15
|
})(VerifyResult = exports.VerifyResult || (exports.VerifyResult = {}));
|
|
16
16
|
//# sourceMappingURL=message.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":";;;AAAA,IAAY,YAUX;AAVD,WAAY,YAAY;IACtB,
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":";;;AAAA,IAAY,YAUX;AAVD,WAAY,YAAY;IACtB,qEAAqD,CAAA;IACrD,2CAA2B,CAAA;IAC3B,2DAA2C,CAAA;IAC3C,qDAAqC,CAAA;IACrC,iDAAiC,CAAA;IACjC,+CAA+B,CAAA;IAC/B,qDAAqC,CAAA;IACrC,qDAAqC,CAAA;IACrC,qCAAqB,CAAA;AACvB,CAAC,EAVW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAUvB"}
|
package/dist/types/tooldb.d.ts
CHANGED
package/dist/wss.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ import { ToolDbMessage } from ".";
|
|
|
3
3
|
import ToolDb from "./tooldb";
|
|
4
4
|
export declare type ToolDbWebSocket = WebSocket & {
|
|
5
5
|
toolDbId?: string;
|
|
6
|
+
isServer: boolean;
|
|
7
|
+
origUrl: string;
|
|
6
8
|
};
|
|
7
9
|
export default class WSS {
|
|
8
10
|
private wnd;
|
|
@@ -24,8 +26,8 @@ export default class WSS {
|
|
|
24
26
|
* @returns websocket
|
|
25
27
|
*/
|
|
26
28
|
open: (url: string) => ToolDbWebSocket | undefined;
|
|
27
|
-
close(
|
|
28
|
-
send(msg: ToolDbMessage,
|
|
29
|
+
close(clientId: string): void;
|
|
30
|
+
send(msg: ToolDbMessage, crossServer?: boolean): void;
|
|
29
31
|
sendToClientId(clientId: string, msg: ToolDbMessage): void;
|
|
30
32
|
private reconnect;
|
|
31
33
|
get tooldb(): ToolDb;
|
package/dist/wss.js
CHANGED
|
@@ -1,8 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
14
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
15
|
+
if (ar || !(i in from)) {
|
|
16
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
17
|
+
ar[i] = from[i];
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
21
|
+
};
|
|
2
22
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
23
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
24
|
};
|
|
5
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
var lodash_1 = __importDefault(require("lodash"));
|
|
6
27
|
var ws_1 = __importDefault(require("ws"));
|
|
7
28
|
var _1 = require(".");
|
|
8
29
|
var WSS = /** @class */ (function () {
|
|
@@ -29,6 +50,7 @@ var WSS = /** @class */ (function () {
|
|
|
29
50
|
if (!_this._connections[url]) {
|
|
30
51
|
_this._connections[url] = { tries: 0, peer: wss_1, defer: null };
|
|
31
52
|
}
|
|
53
|
+
wss_1.origUrl = url;
|
|
32
54
|
wss_1.onclose = function (_error) {
|
|
33
55
|
if (_this._activePeers.includes(url)) {
|
|
34
56
|
_this._activePeers.splice(_this._activePeers.indexOf(url), 1);
|
|
@@ -59,7 +81,10 @@ var WSS = /** @class */ (function () {
|
|
|
59
81
|
// hi peer
|
|
60
82
|
wss_1.send(JSON.stringify({
|
|
61
83
|
type: "ping",
|
|
62
|
-
|
|
84
|
+
clientId: _this.options.id,
|
|
85
|
+
to: [_this.options.id],
|
|
86
|
+
isServer: _this.options.server,
|
|
87
|
+
id: (0, _1.textRandom)(10),
|
|
63
88
|
}));
|
|
64
89
|
};
|
|
65
90
|
wss_1.onmessage = function (msg) {
|
|
@@ -162,18 +187,25 @@ var WSS = /** @class */ (function () {
|
|
|
162
187
|
WSS.prototype.connectTo = function (url) {
|
|
163
188
|
this.open(url);
|
|
164
189
|
};
|
|
165
|
-
WSS.prototype.close = function (
|
|
166
|
-
var
|
|
167
|
-
|
|
168
|
-
|
|
190
|
+
WSS.prototype.close = function (clientId) {
|
|
191
|
+
var sock = this._clientSockets[clientId];
|
|
192
|
+
if (sock) {
|
|
193
|
+
if (sock.origUrl) {
|
|
194
|
+
var peer = this._connections[sock.origUrl];
|
|
195
|
+
peer.tries = this.options.maxRetries;
|
|
196
|
+
}
|
|
197
|
+
sock.close();
|
|
198
|
+
delete this._clientSockets[clientId];
|
|
199
|
+
}
|
|
169
200
|
};
|
|
170
|
-
WSS.prototype.send = function (msg,
|
|
201
|
+
WSS.prototype.send = function (msg, crossServer) {
|
|
171
202
|
var _this = this;
|
|
172
|
-
if (
|
|
173
|
-
var
|
|
174
|
-
|
|
175
|
-
.
|
|
176
|
-
.
|
|
203
|
+
if (crossServer === void 0) { crossServer = false; }
|
|
204
|
+
var to = lodash_1.default.uniq(__spreadArray(__spreadArray([], msg.to, true), [this.options.id], false));
|
|
205
|
+
var filteredConns = to
|
|
206
|
+
.filter(function (clientId) { return !to.includes(clientId) && clientId !== _this.options.id; })
|
|
207
|
+
.map(function (clientId) { return _this._clientSockets[clientId]; })
|
|
208
|
+
.filter(function (conn) { return conn && conn.readyState === conn.OPEN; });
|
|
177
209
|
// console.log(
|
|
178
210
|
// "Send to ",
|
|
179
211
|
// filteredConns.map((c) => c.peer.url),
|
|
@@ -181,13 +213,16 @@ var WSS = /** @class */ (function () {
|
|
|
181
213
|
// filterUrls
|
|
182
214
|
// );
|
|
183
215
|
filteredConns.forEach(function (conn) {
|
|
184
|
-
conn.
|
|
216
|
+
if ((crossServer && conn.isServer) || !crossServer) {
|
|
217
|
+
conn.send(JSON.stringify(__assign(__assign({}, msg), { to: to })));
|
|
218
|
+
}
|
|
185
219
|
});
|
|
186
220
|
};
|
|
187
221
|
WSS.prototype.sendToClientId = function (clientId, msg) {
|
|
188
222
|
var socket = this._clientSockets[clientId];
|
|
189
223
|
if (socket) {
|
|
190
|
-
|
|
224
|
+
var to = lodash_1.default.uniq(__spreadArray(__spreadArray([], msg.to, true), [this.options.id], false));
|
|
225
|
+
socket.send(JSON.stringify(__assign(__assign({}, msg), { to: to })));
|
|
191
226
|
}
|
|
192
227
|
};
|
|
193
228
|
Object.defineProperty(WSS.prototype, "tooldb", {
|
package/dist/wss.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wss.js","sourceRoot":"","sources":["../src/wss.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wss.js","sourceRoot":"","sources":["../src/wss.ts"],"names":[],"mappings":"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"}
|
package/dist/zkp.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function zkp(): void;
|
package/dist/zkp.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function zkp() {
|
|
4
|
+
/*
|
|
5
|
+
|
|
6
|
+
A and B are key pairs each with the following properties;
|
|
7
|
+
A(pub): Public key
|
|
8
|
+
A(priv): Private key
|
|
9
|
+
A(env): Public (evaluation) key
|
|
10
|
+
|
|
11
|
+
A wants to transfer 12 coins to B and has 15 coins on his wallet, based on its last UTxI added up.
|
|
12
|
+
A encrypts the UTxI and UTxO (12 and 3) values of the Tx with (B)env so its now H(i) and H(o)
|
|
13
|
+
A creates proof for each PH(i) and PH(o), and sends the transaction
|
|
14
|
+
|
|
15
|
+
Tx = H, UTxI => H(i), UTxO => H(o), In => A(pub), PH(i), PH(o), Out => B(pub)
|
|
16
|
+
|
|
17
|
+
V wants to know if all the UTxO on A(pub) added up are lower than all of the UTxI on A(pub).
|
|
18
|
+
V uses homomorphic evaluation to add all the H(o) of TX and compares against all H(i) on A(pub)
|
|
19
|
+
V verifies the proofs PH(i) and PH(o), if valid, proceeds to accept Tx.
|
|
20
|
+
|
|
21
|
+
B recieves Tx and should be able to decrypt all UTxI and UTxO to know how many coins he recieved using (B)priv
|
|
22
|
+
and B(env) to reverse the homomorphic calculation.
|
|
23
|
+
|
|
24
|
+
He also has proof of each one of them for third parties to validate he has that ammount exactly.
|
|
25
|
+
|
|
26
|
+
*/
|
|
27
|
+
}
|
|
28
|
+
exports.default = zkp;
|
|
29
|
+
//# sourceMappingURL=zkp.js.map
|
package/dist/zkp.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zkp.js","sourceRoot":"","sources":["../src/zkp.ts"],"names":[],"mappings":";;AAAA,SAAwB,GAAG;IACzB;;;;;;;;;;;;;;;;;;;;;;MAsBE;AACJ,CAAC;AAxBD,sBAwBC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tool-db",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A decentralized database model for federated p2p networks.",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -19,7 +19,6 @@
|
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@peculiar/webcrypto": "^1.1.7",
|
|
21
21
|
"automerge": "^1.0.1-preview.4",
|
|
22
|
-
"axios": "^0.21.1",
|
|
23
22
|
"babel": "^6.23.0",
|
|
24
23
|
"buffer": "^6.0.3",
|
|
25
24
|
"crypto": "^1.0.1",
|