tool-db 1.2.3 → 1.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/custom-test-env.js +18 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +21 -1
- package/dist/index.js.map +1 -1
- package/dist/libp2p/create.d.ts +2 -0
- package/dist/libp2p/create.js +131 -0
- package/dist/libp2p/create.js.map +1 -0
- package/dist/libp2p/createLibP2p.d.ts +3 -0
- package/dist/libp2p/createLibP2p.js +130 -0
- package/dist/libp2p/createLibP2p.js.map +1 -0
- package/dist/libp2p/tooldb-protocol.d.ts +19 -0
- package/dist/libp2p/tooldb-protocol.js +156 -0
- package/dist/libp2p/tooldb-protocol.js.map +1 -0
- package/dist/messageHandlers/handleCrdt copy.d.ts +2 -0
- package/dist/messageHandlers/handleCrdt copy.js +15 -0
- package/dist/messageHandlers/handleCrdt copy.js.map +1 -0
- package/dist/messageHandlers/handleCrdt.d.ts +2 -0
- package/dist/messageHandlers/handleCrdt.js +15 -0
- package/dist/messageHandlers/handleCrdt.js.map +1 -0
- package/dist/messageHandlers/handleCrdtGet copy.d.ts +2 -0
- package/dist/messageHandlers/handleCrdtGet copy.js +22 -0
- package/dist/messageHandlers/handleCrdtGet copy.js.map +1 -0
- package/dist/messageHandlers/handleCrdtGet.d.ts +2 -0
- package/dist/messageHandlers/handleCrdtGet.js +22 -0
- package/dist/messageHandlers/handleCrdtGet.js.map +1 -0
- package/dist/messageHandlers/handleCrdtPut copy.d.ts +2 -0
- package/dist/messageHandlers/handleCrdtPut copy.js +83 -0
- package/dist/messageHandlers/handleCrdtPut copy.js.map +1 -0
- package/dist/messageHandlers/handleCrdtPut.d.ts +2 -0
- package/dist/messageHandlers/handleCrdtPut.js +83 -0
- package/dist/messageHandlers/handleCrdtPut.js.map +1 -0
- package/dist/messageHandlers/handleGet copy.d.ts +2 -0
- package/dist/messageHandlers/handleGet copy.js +37 -0
- package/dist/messageHandlers/handleGet copy.js.map +1 -0
- package/dist/messageHandlers/handleGet.d.ts +2 -0
- package/dist/messageHandlers/handleGet.js +37 -0
- package/dist/messageHandlers/handleGet.js.map +1 -0
- package/dist/messageHandlers/handleGetServers.d.ts +2 -0
- package/dist/messageHandlers/handleGetServers.js +23 -0
- package/dist/messageHandlers/handleGetServers.js.map +1 -0
- package/dist/messageHandlers/handleJoin copy.d.ts +2 -0
- package/dist/messageHandlers/handleJoin copy.js +37 -0
- package/dist/messageHandlers/handleJoin copy.js.map +1 -0
- package/dist/messageHandlers/handleJoin.d.ts +2 -0
- package/dist/messageHandlers/handleJoin.js +36 -0
- package/dist/messageHandlers/handleJoin.js.map +1 -0
- package/dist/messageHandlers/handlePing copy.d.ts +2 -0
- package/dist/messageHandlers/handlePing copy.js +13 -0
- package/dist/messageHandlers/handlePing copy.js.map +1 -0
- package/dist/messageHandlers/handlePing.d.ts +2 -0
- package/dist/messageHandlers/handlePing.js +20 -0
- package/dist/messageHandlers/handlePing.js.map +1 -0
- package/dist/messageHandlers/handlePong.d.ts +2 -0
- package/dist/messageHandlers/handlePong.js +30 -0
- package/dist/messageHandlers/handlePong.js.map +1 -0
- package/dist/messageHandlers/handlePut.d.ts +2 -0
- package/dist/messageHandlers/handlePut.js +61 -0
- package/dist/messageHandlers/handlePut.js.map +1 -0
- package/dist/messageHandlers/handleQuery.d.ts +2 -0
- package/dist/messageHandlers/handleQuery.js +18 -0
- package/dist/messageHandlers/handleQuery.js.map +1 -0
- package/dist/messageHandlers/handleServers copy.d.ts +2 -0
- package/dist/messageHandlers/handleServers copy.js +23 -0
- package/dist/messageHandlers/handleServers copy.js.map +1 -0
- package/dist/messageHandlers/handleServers.d.ts +2 -0
- package/dist/messageHandlers/handleServers.js +23 -0
- package/dist/messageHandlers/handleServers.js.map +1 -0
- package/dist/messageHandlers/handleSubscribe.d.ts +2 -0
- package/dist/messageHandlers/handleSubscribe.js +62 -0
- package/dist/messageHandlers/handleSubscribe.js.map +1 -0
- package/dist/toolDbClientOnMessage.d.ts +2 -2
- package/dist/toolDbClientOnMessage.js +59 -264
- package/dist/toolDbClientOnMessage.js.map +1 -1
- package/dist/toolDbCrdtPut.js +1 -1
- package/dist/toolDbCrdtPut.js.map +1 -1
- package/dist/toolDbGet.js +1 -1
- package/dist/toolDbGet.js.map +1 -1
- package/dist/toolDbLibP2p.d.ts +34 -0
- package/dist/toolDbLibP2p.js +375 -0
- package/dist/toolDbLibP2p.js.map +1 -0
- package/dist/toolDbNetwork.d.ts +33 -0
- package/dist/toolDbNetwork.js +277 -0
- package/dist/toolDbNetwork.js.map +1 -0
- package/dist/toolDbPut.js +1 -1
- package/dist/toolDbPut.js.map +1 -1
- package/dist/toolDbQueryKeys.js +1 -1
- package/dist/toolDbQueryKeys.js.map +1 -1
- package/dist/toolDbSignUp.js +1 -1
- package/dist/toolDbSignUp.js.map +1 -1
- package/dist/toolDbSubscribe.js +1 -1
- package/dist/toolDbSubscribe.js.map +1 -1
- package/dist/toolDbVerificationWrapper.js +1 -1
- package/dist/toolDbVerificationWrapper.js.map +1 -1
- package/dist/tooldb.d.ts +26 -10
- package/dist/tooldb.js +63 -7
- package/dist/tooldb.js.map +1 -1
- package/dist/types/message.d.ts +11 -2
- package/dist/types/message.js.map +1 -1
- package/dist/types/tooldb.d.ts +34 -1
- package/dist/types/tooldb.js +19 -0
- package/dist/types/tooldb.js.map +1 -1
- package/dist/utils/indexedb.d.ts +2 -6
- package/dist/utils/indexedb.js +13 -3
- package/dist/utils/indexedb.js.map +1 -1
- package/dist/utils/leveldb.d.ts +2 -6
- package/dist/utils/leveldb.js +12 -2
- package/dist/utils/leveldb.js.map +1 -1
- package/dist/utils/verifyPeer.d.ts +2 -0
- package/dist/utils/verifyPeer.js +13 -0
- package/dist/utils/verifyPeer.js.map +1 -0
- package/dist/wss.js +2 -2
- package/dist/wss.js.map +1 -1
- package/jest.config.ts +2 -1
- package/package.json +3 -2
- package/test-alice/000003.log +0 -0
- package/test-alice/CURRENT +1 -0
- package/test-alice/LOCK +0 -0
- package/test-alice/LOG +1 -0
- package/test-alice/MANIFEST-000002 +0 -0
- package/test-bob/000003.log +0 -0
- package/test-bob/CURRENT +1 -0
- package/test-bob/LOCK +0 -0
- package/test-bob/LOG +1 -0
- package/test-bob/MANIFEST-000002 +0 -0
- package/test-node-a/000003.log +0 -0
- package/test-node-a/CURRENT +1 -0
- package/test-node-a/LOCK +0 -0
- package/test-node-a/LOG +1 -0
- package/test-node-a/MANIFEST-000002 +0 -0
- package/test-node-b/000003.log +0 -0
- package/test-node-b/CURRENT +1 -0
- package/test-node-b/LOCK +0 -0
- package/test-node-b/LOG +1 -0
- package/test-node-b/MANIFEST-000002 +0 -0
- package/toolDbLibP2p.ts +206 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var verifyPeer_1 = __importDefault(require("../utils/verifyPeer"));
|
|
7
|
+
function handleServers(message, remotePeerId) {
|
|
8
|
+
var _this = this;
|
|
9
|
+
message.servers.forEach(function (peer) {
|
|
10
|
+
(0, verifyPeer_1.default)(peer).then(function (verified) {
|
|
11
|
+
// Add this peer to our list of peers
|
|
12
|
+
if (verified) {
|
|
13
|
+
var filteredPeers = _this.peers.findIndex(function (p) { return p.pubkey === peer.pubkey; });
|
|
14
|
+
if (filteredPeers === -1) {
|
|
15
|
+
// Add this peer to the list
|
|
16
|
+
_this.peers.push(peer);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
exports.default = handleServers;
|
|
23
|
+
//# sourceMappingURL=handleServers%20copy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleServers copy.js","sourceRoot":"","sources":["../../src/messageHandlers/handleServers copy.ts"],"names":[],"mappings":";;;;;AACA,mEAA6C;AAE7C,SAAwB,aAAa,CAEnC,OAAuB,EACvB,YAAoB;IAHtB,iBAmBC;IAdC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,IAAI;QAC3B,IAAA,oBAAU,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAC,QAAQ;YAC7B,qCAAqC;YACrC,IAAI,QAAQ,EAAE;gBACZ,IAAM,aAAa,GAAG,KAAI,CAAC,KAAK,CAAC,SAAS,CACxC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAxB,CAAwB,CAChC,CAAC;gBACF,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE;oBACxB,4BAA4B;oBAC5B,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACvB;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAnBD,gCAmBC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var verifyPeer_1 = __importDefault(require("../utils/verifyPeer"));
|
|
7
|
+
function handleServers(message, remotePeerId) {
|
|
8
|
+
var _this = this;
|
|
9
|
+
message.servers.forEach(function (peer) {
|
|
10
|
+
(0, verifyPeer_1.default)(peer).then(function (verified) {
|
|
11
|
+
// Add this peer to our list of peers
|
|
12
|
+
if (verified) {
|
|
13
|
+
var filteredPeers = _this.peers.findIndex(function (p) { return p.pubkey === peer.pubkey; });
|
|
14
|
+
if (filteredPeers === -1) {
|
|
15
|
+
// Add this peer to the list
|
|
16
|
+
_this.peers.push(peer);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
exports.default = handleServers;
|
|
23
|
+
//# sourceMappingURL=handleServers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleServers.js","sourceRoot":"","sources":["../../src/messageHandlers/handleServers.ts"],"names":[],"mappings":";;;;;AACA,mEAA6C;AAE7C,SAAwB,aAAa,CAEnC,OAAuB,EACvB,YAAoB;IAHtB,iBAmBC;IAdC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,IAAI;QAC3B,IAAA,oBAAU,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAC,QAAQ;YAC7B,qCAAqC;YACrC,IAAI,QAAQ,EAAE;gBACZ,IAAM,aAAa,GAAG,KAAI,CAAC,KAAK,CAAC,SAAS,CACxC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAxB,CAAwB,CAChC,CAAC;gBACF,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE;oBACxB,4BAA4B;oBAC5B,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACvB;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAnBD,gCAmBC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
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 __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
var automerge_1 = __importDefault(require("automerge"));
|
|
18
|
+
var __1 = require("..");
|
|
19
|
+
function handleSubscribe(message, remotePeerId) {
|
|
20
|
+
var _this = this;
|
|
21
|
+
if (remotePeerId) {
|
|
22
|
+
var subId = remotePeerId + "-" + message.key;
|
|
23
|
+
if (!this.subscriptions.includes(subId)) {
|
|
24
|
+
this.subscriptions.push(subId);
|
|
25
|
+
this.addKeyListener(message.key, function (msg) {
|
|
26
|
+
if ((msg.type === "put" || msg.type === "crdt") && remotePeerId) {
|
|
27
|
+
// We do not reply to the socket directly
|
|
28
|
+
// instead we use the client id, in case the socket reconnects
|
|
29
|
+
_this.network.sendToClientId(remotePeerId, msg);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// basically the exact same as GET, below
|
|
35
|
+
this.store.get(message.key, function (err, data) {
|
|
36
|
+
if (data) {
|
|
37
|
+
try {
|
|
38
|
+
var oldData = __assign(__assign({}, JSON.parse(data)), { id: message.id });
|
|
39
|
+
_this.network.sendToClientId(remotePeerId, oldData);
|
|
40
|
+
}
|
|
41
|
+
catch (e) {
|
|
42
|
+
// do nothing
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
this.loadCrdtDocument(message.key, false).then(function (doc) {
|
|
47
|
+
// console.log("Load crdt from subscribe", message.key, doc);
|
|
48
|
+
if (doc) {
|
|
49
|
+
var savedDoc = automerge_1.default.save(doc);
|
|
50
|
+
var msg = {
|
|
51
|
+
type: "crdt",
|
|
52
|
+
key: message.key,
|
|
53
|
+
to: [],
|
|
54
|
+
id: (0, __1.textRandom)(10),
|
|
55
|
+
doc: (0, __1.uint8ToBase64)(savedDoc),
|
|
56
|
+
};
|
|
57
|
+
_this.network.sendToClientId(remotePeerId, msg);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
exports.default = handleSubscribe;
|
|
62
|
+
//# sourceMappingURL=handleSubscribe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleSubscribe.js","sourceRoot":"","sources":["../../src/messageHandlers/handleSubscribe.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAkC;AAClC,wBAMY;AAEZ,SAAwB,eAAe,CAErC,OAAyB,EACzB,YAAoB;IAHtB,iBA8CC;IAzCC,IAAI,YAAY,EAAE;QAChB,IAAM,KAAK,GAAG,YAAY,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAE/B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,UAAC,GAAG;gBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE;oBAC/D,yCAAyC;oBACzC,8DAA8D;oBAC9D,KAAI,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;iBAChD;YACH,CAAC,CAAC,CAAC;SACJ;KACF;IAED,yCAAyC;IACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,UAAC,GAAG,EAAE,IAAI;QACpC,IAAI,IAAI,EAAE;YACR,IAAI;gBACF,IAAM,OAAO,yBAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAE,EAAE,EAAE,OAAO,CAAC,EAAE,GAAE,CAAC;gBACxD,KAAI,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;aACpD;YAAC,OAAO,CAAC,EAAE;gBACV,aAAa;aACd;SACF;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,UAAC,GAAG;QACjD,6DAA6D;QAC7D,IAAI,GAAG,EAAE;YACP,IAAM,QAAQ,GAAG,mBAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrC,IAAM,GAAG,GAAgB;gBACvB,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,EAAE,EAAE,EAAE;gBACN,EAAE,EAAE,IAAA,cAAU,EAAC,EAAE,CAAC;gBAClB,GAAG,EAAE,IAAA,iBAAa,EAAC,QAAQ,CAAC;aAC7B,CAAC;YACF,KAAI,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;SAChD;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AA9CD,kCA8CC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
+
import { ToolDbMessage } from ".";
|
|
1
2
|
import ToolDb from "./tooldb";
|
|
2
|
-
|
|
3
|
-
export default function toolDbClientOnMessage(this: ToolDb, data: string, socket: ToolDbWebSocket): void;
|
|
3
|
+
export default function toolDbClientOnMessage(this: ToolDb, message: ToolDbMessage, remotePeerId: string): void;
|
|
@@ -1,271 +1,66 @@
|
|
|
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 __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
-
};
|
|
16
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
if (message_1.type === "ping") {
|
|
42
|
-
socket.toolDbId = message_1.clientId;
|
|
43
|
-
this.websockets._clientSockets[message_1.clientId] = socket;
|
|
44
|
-
socket.isServer = message_1.isServer;
|
|
45
|
-
this.websockets.sendToClientId(socket.toolDbId || "", {
|
|
46
|
-
type: "pong",
|
|
47
|
-
isServer: this.options.server,
|
|
48
|
-
clientId: this.options.id,
|
|
49
|
-
to: [],
|
|
50
|
-
id: (0, _1.textRandom)(10),
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
if (message_1.type === "pong") {
|
|
54
|
-
socket.toolDbId = message_1.clientId;
|
|
55
|
-
socket.isServer = message_1.isServer;
|
|
56
|
-
this.websockets._clientSockets[message_1.clientId] = socket;
|
|
57
|
-
this.onConnect();
|
|
58
|
-
}
|
|
59
|
-
if (message_1.type === "subscribe") {
|
|
60
|
-
if (socket.toolDbId) {
|
|
61
|
-
var subId = socket.toolDbId + "-" + message_1.key;
|
|
62
|
-
if (!this.subscriptions.includes(subId)) {
|
|
63
|
-
this.subscriptions.push(subId);
|
|
64
|
-
this.addKeyListener(message_1.key, function (msg) {
|
|
65
|
-
if ((msg.type === "put" || msg.type === "crdt") &&
|
|
66
|
-
socket.toolDbId) {
|
|
67
|
-
// We do not reply to the socket directly
|
|
68
|
-
// instead we use the client id, in case the socket reconnects
|
|
69
|
-
_this.websockets.sendToClientId(socket.toolDbId, msg);
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
// basically the exact same as GET, below
|
|
75
|
-
this.store.get(message_1.key, function (err, data) {
|
|
76
|
-
if (data) {
|
|
77
|
-
try {
|
|
78
|
-
var oldData = __assign(__assign({}, JSON.parse(data)), { id: message_1.id });
|
|
79
|
-
_this.websockets.sendToClientId(socket.toolDbId || "", oldData);
|
|
80
|
-
}
|
|
81
|
-
catch (e) {
|
|
82
|
-
// do nothing
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
this.loadCrdtDocument(message_1.key, false).then(function (doc) {
|
|
87
|
-
// console.log("Load crdt from subscribe", message.key, doc);
|
|
88
|
-
if (doc) {
|
|
89
|
-
var savedDoc = automerge_1.default.save(doc);
|
|
90
|
-
// console.log("saved", savedDoc);
|
|
91
|
-
var msg = {
|
|
92
|
-
type: "crdt",
|
|
93
|
-
key: message_1.key,
|
|
94
|
-
to: [],
|
|
95
|
-
id: (0, _1.textRandom)(10),
|
|
96
|
-
doc: (0, _1.uint8ToBase64)(savedDoc),
|
|
97
|
-
};
|
|
98
|
-
_this.websockets.sendToClientId(socket.toolDbId || "", msg);
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
if (message_1.type === "get") {
|
|
103
|
-
this.store.get(message_1.key, function (err, data) {
|
|
104
|
-
if (data) {
|
|
105
|
-
try {
|
|
106
|
-
// Use the id of the get so the other client knows we are replying
|
|
107
|
-
var oldData = __assign(__assign({ type: "put" }, JSON.parse(data)), { id: message_1.id });
|
|
108
|
-
_this.websockets.sendToClientId(socket.toolDbId || "", oldData);
|
|
109
|
-
}
|
|
110
|
-
catch (e) {
|
|
111
|
-
// socket.send(data);
|
|
112
|
-
// do nothing
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
if (_this.options.debug) {
|
|
117
|
-
console.log("Local key not found, relay", originalData);
|
|
118
|
-
}
|
|
119
|
-
_this.websockets.send(message_1);
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
if (message_1.type === "put") {
|
|
124
|
-
toolDbVerificationWrapper_1.default.call(this, message_1).then(function (value) {
|
|
125
|
-
// console.log("Verification wrapper result: ", value, message.k);
|
|
126
|
-
if (value === _1.VerifyResult.Verified) {
|
|
127
|
-
// relay to other servers !!!
|
|
128
|
-
_this.websockets.send(message_1, true);
|
|
129
|
-
_this.store.get(message_1.k, function (err, oldData) {
|
|
130
|
-
if (oldData) {
|
|
131
|
-
var parsedOldData = __assign({ type: "put" }, JSON.parse(oldData));
|
|
132
|
-
if (parsedOldData.t < message_1.t) {
|
|
133
|
-
var key = message_1.k;
|
|
134
|
-
_this.triggerKeyListener(key, message_1);
|
|
135
|
-
_this.store.put(message_1.k, JSON.stringify(message_1), function (err, data) {
|
|
136
|
-
//
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
var key = message_1.k;
|
|
141
|
-
_this.triggerKeyListener(key, parsedOldData);
|
|
142
|
-
}
|
|
143
|
-
// } else if (this.options.debug) {
|
|
144
|
-
// console.log(
|
|
145
|
-
// `${message.k} has old data, but its newer. old ${parsedOldData.t} < new ${message.t}`
|
|
146
|
-
// );
|
|
147
|
-
// }
|
|
148
|
-
}
|
|
149
|
-
else {
|
|
150
|
-
var key = message_1.k;
|
|
151
|
-
_this.triggerKeyListener(key, message_1);
|
|
152
|
-
_this.store.put(message_1.k, JSON.stringify(message_1), function (err, data) {
|
|
153
|
-
//
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
else {
|
|
159
|
-
console.warn("unverified message: ", value, message_1);
|
|
160
|
-
}
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
if (message_1.type === "crdtPut") {
|
|
164
|
-
// key = aggregated, final value
|
|
165
|
-
// key.crdt = automerge doc with changes
|
|
166
|
-
// const writeStart = new Date().getTime();
|
|
167
|
-
toolDbVerificationWrapper_1.default.call(this, message_1).then(function (value) {
|
|
168
|
-
// console.log("CRDT Verification wrapper result: ", value);
|
|
169
|
-
if (value === _1.VerifyResult.Verified) {
|
|
170
|
-
var key_1 = message_1.k;
|
|
171
|
-
var data_1 = [];
|
|
172
|
-
try {
|
|
173
|
-
data_1 = JSON.parse(message_1.v);
|
|
174
|
-
}
|
|
175
|
-
catch (e) {
|
|
176
|
-
//
|
|
177
|
-
}
|
|
178
|
-
var changes_1 = data_1.map(base64ToBinaryChange_1.default);
|
|
179
|
-
_this.loadCrdtDocument(key_1).then(function (currentDoc) {
|
|
180
|
-
// if (currentDoc) {
|
|
181
|
-
// console.log(
|
|
182
|
-
// "loaded",
|
|
183
|
-
// key,
|
|
184
|
-
// currentDoc,
|
|
185
|
-
// Automerge.getHistory(currentDoc)
|
|
186
|
-
// );
|
|
187
|
-
// }
|
|
188
|
-
var newDoc = automerge_1.default.init();
|
|
189
|
-
try {
|
|
190
|
-
newDoc = automerge_1.default.applyChanges(currentDoc || automerge_1.default.init(), changes_1)[0];
|
|
191
|
-
}
|
|
192
|
-
catch (e) {
|
|
193
|
-
try {
|
|
194
|
-
newDoc = automerge_1.default.applyChanges(automerge_1.default.init(), changes_1)[0];
|
|
195
|
-
}
|
|
196
|
-
catch (ee) {
|
|
197
|
-
if (_this.options.debug) {
|
|
198
|
-
console.log(ee);
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
// if (newDoc) {
|
|
203
|
-
// console.log(
|
|
204
|
-
// "new document changes:",
|
|
205
|
-
// Automerge.getHistory(newDoc)
|
|
206
|
-
// );
|
|
207
|
-
// }
|
|
208
|
-
// persist
|
|
209
|
-
_this.documents[key_1] = newDoc;
|
|
210
|
-
var savedDoc = automerge_1.default.save(newDoc);
|
|
211
|
-
_this.store.put(key_1 + ".crdt", savedDoc, function (err, data) {
|
|
212
|
-
// const writeEnd = new Date().getTime();
|
|
213
|
-
// console.log("CRDT write: ", (writeEnd - writeStart) / 1000);
|
|
214
|
-
});
|
|
215
|
-
var crdtMessage = {
|
|
216
|
-
type: "crdt",
|
|
217
|
-
key: key_1,
|
|
218
|
-
id: message_1.id,
|
|
219
|
-
to: [],
|
|
220
|
-
doc: (0, _1.uint8ToBase64)(savedDoc),
|
|
221
|
-
};
|
|
222
|
-
_this.triggerKeyListener(key_1, crdtMessage);
|
|
223
|
-
// relay to other servers
|
|
224
|
-
// !!!
|
|
225
|
-
_this.websockets.send(crdtMessage, true);
|
|
226
|
-
});
|
|
227
|
-
}
|
|
228
|
-
else {
|
|
229
|
-
console.log("unverified message", value, message_1);
|
|
230
|
-
}
|
|
231
|
-
});
|
|
232
|
-
}
|
|
233
|
-
if (message_1.type === "crdtGet") {
|
|
234
|
-
this.loadCrdtDocument(message_1.key).then(function (currentDoc) {
|
|
235
|
-
var saved = automerge_1.default.save(currentDoc || automerge_1.default.init());
|
|
236
|
-
_this.websockets.sendToClientId(socket.toolDbId || "", {
|
|
237
|
-
type: "crdt",
|
|
238
|
-
id: message_1.id,
|
|
239
|
-
key: message_1.key,
|
|
240
|
-
to: [],
|
|
241
|
-
doc: (0, _1.uint8ToBase64)(saved),
|
|
242
|
-
});
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
|
-
if (message_1.type === "query") {
|
|
246
|
-
this.store.query(message_1.key).then(function (keys) {
|
|
247
|
-
_this.websockets.sendToClientId(socket.toolDbId || "", {
|
|
248
|
-
type: "queryAck",
|
|
249
|
-
id: message_1.id,
|
|
250
|
-
to: [],
|
|
251
|
-
keys: keys,
|
|
252
|
-
});
|
|
253
|
-
});
|
|
254
|
-
}
|
|
255
|
-
if (message_1.type === "crdt") {
|
|
256
|
-
var key = message_1.key;
|
|
257
|
-
this.triggerKeyListener(key, message_1);
|
|
258
|
-
var savedDoc = (0, _1.base64ToBinaryDocument)(message_1.doc);
|
|
259
|
-
this.store.put(key + ".crdt", savedDoc, function (err, data) {
|
|
260
|
-
//
|
|
261
|
-
});
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
catch (e) {
|
|
265
|
-
console.log("Got message ERR > ", data);
|
|
266
|
-
console.log(e);
|
|
3
|
+
function toolDbClientOnMessage(message, remotePeerId) {
|
|
4
|
+
if (!this.processedIds[message.type]) {
|
|
5
|
+
this.processedIds[message.type] = [];
|
|
6
|
+
}
|
|
7
|
+
if (this.processedIds[message.type].includes(message.id)) {
|
|
8
|
+
// console.warn(
|
|
9
|
+
// `Already processed this message > ${message.type} from ${remotePeerId}`
|
|
10
|
+
// );
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
this.processedIds[message.type].push(message.id);
|
|
14
|
+
// console.warn(
|
|
15
|
+
// `Got message > ${remotePeerId}`,
|
|
16
|
+
// message.type,
|
|
17
|
+
// (message as any).k || ""
|
|
18
|
+
// // message
|
|
19
|
+
// );
|
|
20
|
+
// console.warn(`Got message ${message.type} from ${remotePeerId}`);
|
|
21
|
+
// Check if we are listening for this ID
|
|
22
|
+
if (message.id) {
|
|
23
|
+
var msgId = message.id;
|
|
24
|
+
if (this._idListeners[msgId]) {
|
|
25
|
+
this._idListeners[msgId](message);
|
|
26
|
+
this.removeIdListener(msgId);
|
|
267
27
|
}
|
|
268
28
|
}
|
|
29
|
+
if (message === undefined || message.type === undefined) {
|
|
30
|
+
console.warn("Message is invalid!", message, typeof message);
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
switch (message.type) {
|
|
34
|
+
case "ping":
|
|
35
|
+
this.handlePing(message, remotePeerId);
|
|
36
|
+
break;
|
|
37
|
+
case "pong":
|
|
38
|
+
this.handlePong(message, remotePeerId);
|
|
39
|
+
break;
|
|
40
|
+
case "subscribe":
|
|
41
|
+
this.handleSubscribe(message, remotePeerId);
|
|
42
|
+
break;
|
|
43
|
+
case "get":
|
|
44
|
+
this.handleGet(message, remotePeerId);
|
|
45
|
+
break;
|
|
46
|
+
case "put":
|
|
47
|
+
this.handlePut(message, remotePeerId);
|
|
48
|
+
break;
|
|
49
|
+
case "crdtPut":
|
|
50
|
+
this.handleCrdtPut(message, remotePeerId);
|
|
51
|
+
break;
|
|
52
|
+
case "crdtGet":
|
|
53
|
+
this.handleCrdtGet(message, remotePeerId);
|
|
54
|
+
break;
|
|
55
|
+
case "query":
|
|
56
|
+
this.handleQuery(message, remotePeerId);
|
|
57
|
+
break;
|
|
58
|
+
case "crdt":
|
|
59
|
+
this.handleCrdt(message, remotePeerId);
|
|
60
|
+
break;
|
|
61
|
+
default:
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
269
64
|
}
|
|
270
65
|
exports.default = toolDbClientOnMessage;
|
|
271
66
|
//# sourceMappingURL=toolDbClientOnMessage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolDbClientOnMessage.js","sourceRoot":"","sources":["../src/toolDbClientOnMessage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"toolDbClientOnMessage.js","sourceRoot":"","sources":["../src/toolDbClientOnMessage.ts"],"names":[],"mappings":";;AAGA,SAAwB,qBAAqB,CAE3C,OAAsB,EACtB,YAAoB;IAEpB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACpC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;KACtC;IACD,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QACxD,gBAAgB;QAChB,4EAA4E;QAC5E,KAAK;QACL,OAAO;KACR;IAED,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACjD,gBAAgB;IAChB,qCAAqC;IACrC,kBAAkB;IAClB,6BAA6B;IAC7B,eAAe;IACf,KAAK;IACL,oEAAoE;IAEpE,wCAAwC;IACxC,IAAI,OAAO,CAAC,EAAE,EAAE;QACd,IAAM,KAAK,GAAG,OAAO,CAAC,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;YAC5B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAC9B;KACF;IAED,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;QACvD,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,OAAO,EAAE,OAAO,OAAO,CAAC,CAAC;QAC7D,OAAO;KACR;IAED,QAAQ,OAAO,CAAC,IAAI,EAAE;QACpB,KAAK,MAAM;YACT,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACvC,MAAM;QAER,KAAK,MAAM;YACT,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACvC,MAAM;QAER,KAAK,WAAW;YACd,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC5C,MAAM;QAER,KAAK,KAAK;YACR,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACtC,MAAM;QAER,KAAK,KAAK;YACR,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACtC,MAAM;QAER,KAAK,SAAS;YACZ,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC1C,MAAM;QAER,KAAK,SAAS;YACZ,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC1C,MAAM;QAER,KAAK,OAAO;YACV,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACxC,MAAM;QAER,KAAK,MAAM;YACT,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACvC,MAAM;QAER;YACE,MAAM;KACT;AACH,CAAC;AA9ED,wCA8EC"}
|
package/dist/toolDbCrdtPut.js
CHANGED
|
@@ -102,7 +102,7 @@ function toolDbCrdtPut(key, value, userNamespaced) {
|
|
|
102
102
|
console.log("PUT CRDT > " + key, data);
|
|
103
103
|
}
|
|
104
104
|
finalMessage = __assign({ type: "crdtPut", id: (0, _1.textRandom)(10), to: [] }, data);
|
|
105
|
-
this.
|
|
105
|
+
this.network.sendToAll(finalMessage);
|
|
106
106
|
resolve(finalMessage);
|
|
107
107
|
return [2 /*return*/];
|
|
108
108
|
});
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;wBACrC,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
package/dist/toolDbGet.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,OAAO,CAAC,SAAS,CAAC;YACrB,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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import Libp2p from "libp2p";
|
|
2
|
+
import { MuxedStream } from "libp2p-interfaces/dist/src/stream-muxer/types";
|
|
3
|
+
import { ToolDb, ToolDbMessage } from ".";
|
|
4
|
+
export declare const PROTOCOL_VER = "/tooldb/1.2.0";
|
|
5
|
+
export default class toolDbLibP2p {
|
|
6
|
+
private options;
|
|
7
|
+
private _tooldb;
|
|
8
|
+
private _libp2p;
|
|
9
|
+
_clientSockets: Record<string, MuxedStream>;
|
|
10
|
+
get clientSockets(): Record<string, MuxedStream>;
|
|
11
|
+
get libp2p(): Libp2p | undefined;
|
|
12
|
+
private createLibP2p;
|
|
13
|
+
constructor(db: ToolDb);
|
|
14
|
+
close(clientId: string): void;
|
|
15
|
+
/**
|
|
16
|
+
* A simple handler to print incoming messages to the console
|
|
17
|
+
* @param {Object} params
|
|
18
|
+
* @param {Connection} params.connection The connection the stream belongs to
|
|
19
|
+
* @param {Stream} params.stream stream to the peer
|
|
20
|
+
*/
|
|
21
|
+
toolDbProtocolHandler({ connection, stream, }: {
|
|
22
|
+
connection: any;
|
|
23
|
+
stream: any[];
|
|
24
|
+
}): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Writes a given `message` over the given `stream`.
|
|
27
|
+
* @param {String} message The message to send over `stream`
|
|
28
|
+
* @param {Stream} stream A stream over the muxed Connection to our peer
|
|
29
|
+
*/
|
|
30
|
+
toolDbProtocolSend(message: string, stream: MuxedStream): Promise<void>;
|
|
31
|
+
sendToAll(msg: ToolDbMessage, crossServerOnly?: boolean): void;
|
|
32
|
+
sendToClientId(clientId: string, msg: ToolDbMessage): void;
|
|
33
|
+
get tooldb(): ToolDb;
|
|
34
|
+
}
|