tool-db 1.2.0 → 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.
Files changed (136) hide show
  1. package/custom-test-env.js +18 -0
  2. package/dist/index.d.ts +10 -0
  3. package/dist/index.js +21 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/libp2p/create.d.ts +2 -0
  6. package/dist/libp2p/create.js +131 -0
  7. package/dist/libp2p/create.js.map +1 -0
  8. package/dist/libp2p/createLibP2p.d.ts +3 -0
  9. package/dist/libp2p/createLibP2p.js +130 -0
  10. package/dist/libp2p/createLibP2p.js.map +1 -0
  11. package/dist/libp2p/tooldb-protocol.d.ts +19 -0
  12. package/dist/libp2p/tooldb-protocol.js +156 -0
  13. package/dist/libp2p/tooldb-protocol.js.map +1 -0
  14. package/dist/messageHandlers/handleCrdt copy.d.ts +2 -0
  15. package/dist/messageHandlers/handleCrdt copy.js +15 -0
  16. package/dist/messageHandlers/handleCrdt copy.js.map +1 -0
  17. package/dist/messageHandlers/handleCrdt.d.ts +2 -0
  18. package/dist/messageHandlers/handleCrdt.js +15 -0
  19. package/dist/messageHandlers/handleCrdt.js.map +1 -0
  20. package/dist/messageHandlers/handleCrdtGet copy.d.ts +2 -0
  21. package/dist/messageHandlers/handleCrdtGet copy.js +22 -0
  22. package/dist/messageHandlers/handleCrdtGet copy.js.map +1 -0
  23. package/dist/messageHandlers/handleCrdtGet.d.ts +2 -0
  24. package/dist/messageHandlers/handleCrdtGet.js +22 -0
  25. package/dist/messageHandlers/handleCrdtGet.js.map +1 -0
  26. package/dist/messageHandlers/handleCrdtPut copy.d.ts +2 -0
  27. package/dist/messageHandlers/handleCrdtPut copy.js +83 -0
  28. package/dist/messageHandlers/handleCrdtPut copy.js.map +1 -0
  29. package/dist/messageHandlers/handleCrdtPut.d.ts +2 -0
  30. package/dist/messageHandlers/handleCrdtPut.js +83 -0
  31. package/dist/messageHandlers/handleCrdtPut.js.map +1 -0
  32. package/dist/messageHandlers/handleGet copy.d.ts +2 -0
  33. package/dist/messageHandlers/handleGet copy.js +37 -0
  34. package/dist/messageHandlers/handleGet copy.js.map +1 -0
  35. package/dist/messageHandlers/handleGet.d.ts +2 -0
  36. package/dist/messageHandlers/handleGet.js +37 -0
  37. package/dist/messageHandlers/handleGet.js.map +1 -0
  38. package/dist/messageHandlers/handleGetServers.d.ts +2 -0
  39. package/dist/messageHandlers/handleGetServers.js +23 -0
  40. package/dist/messageHandlers/handleGetServers.js.map +1 -0
  41. package/dist/messageHandlers/handleJoin copy.d.ts +2 -0
  42. package/dist/messageHandlers/handleJoin copy.js +37 -0
  43. package/dist/messageHandlers/handleJoin copy.js.map +1 -0
  44. package/dist/messageHandlers/handleJoin.d.ts +2 -0
  45. package/dist/messageHandlers/handleJoin.js +36 -0
  46. package/dist/messageHandlers/handleJoin.js.map +1 -0
  47. package/dist/messageHandlers/handlePing copy.d.ts +2 -0
  48. package/dist/messageHandlers/handlePing copy.js +13 -0
  49. package/dist/messageHandlers/handlePing copy.js.map +1 -0
  50. package/dist/messageHandlers/handlePing.d.ts +2 -0
  51. package/dist/messageHandlers/handlePing.js +20 -0
  52. package/dist/messageHandlers/handlePing.js.map +1 -0
  53. package/dist/messageHandlers/handlePong.d.ts +2 -0
  54. package/dist/messageHandlers/handlePong.js +30 -0
  55. package/dist/messageHandlers/handlePong.js.map +1 -0
  56. package/dist/messageHandlers/handlePut.d.ts +2 -0
  57. package/dist/messageHandlers/handlePut.js +61 -0
  58. package/dist/messageHandlers/handlePut.js.map +1 -0
  59. package/dist/messageHandlers/handleQuery.d.ts +2 -0
  60. package/dist/messageHandlers/handleQuery.js +18 -0
  61. package/dist/messageHandlers/handleQuery.js.map +1 -0
  62. package/dist/messageHandlers/handleServers copy.d.ts +2 -0
  63. package/dist/messageHandlers/handleServers copy.js +23 -0
  64. package/dist/messageHandlers/handleServers copy.js.map +1 -0
  65. package/dist/messageHandlers/handleServers.d.ts +2 -0
  66. package/dist/messageHandlers/handleServers.js +23 -0
  67. package/dist/messageHandlers/handleServers.js.map +1 -0
  68. package/dist/messageHandlers/handleSubscribe.d.ts +2 -0
  69. package/dist/messageHandlers/handleSubscribe.js +62 -0
  70. package/dist/messageHandlers/handleSubscribe.js.map +1 -0
  71. package/dist/toolDbClientOnMessage.d.ts +2 -2
  72. package/dist/toolDbClientOnMessage.js +59 -253
  73. package/dist/toolDbClientOnMessage.js.map +1 -1
  74. package/dist/toolDbCrdtPut.js +1 -1
  75. package/dist/toolDbCrdtPut.js.map +1 -1
  76. package/dist/toolDbGet.js +1 -1
  77. package/dist/toolDbGet.js.map +1 -1
  78. package/dist/toolDbLibP2p.d.ts +34 -0
  79. package/dist/toolDbLibP2p.js +375 -0
  80. package/dist/toolDbLibP2p.js.map +1 -0
  81. package/dist/toolDbNetwork.d.ts +33 -0
  82. package/dist/toolDbNetwork.js +277 -0
  83. package/dist/toolDbNetwork.js.map +1 -0
  84. package/dist/toolDbPut.js +1 -1
  85. package/dist/toolDbPut.js.map +1 -1
  86. package/dist/toolDbQueryKeys.js +1 -1
  87. package/dist/toolDbQueryKeys.js.map +1 -1
  88. package/dist/toolDbSignUp.js +1 -1
  89. package/dist/toolDbSignUp.js.map +1 -1
  90. package/dist/toolDbSubscribe.js +1 -1
  91. package/dist/toolDbSubscribe.js.map +1 -1
  92. package/dist/toolDbVerificationWrapper.js +1 -1
  93. package/dist/toolDbVerificationWrapper.js.map +1 -1
  94. package/dist/tooldb.d.ts +26 -10
  95. package/dist/tooldb.js +63 -7
  96. package/dist/tooldb.js.map +1 -1
  97. package/dist/types/message.d.ts +11 -2
  98. package/dist/types/message.js.map +1 -1
  99. package/dist/types/tooldb.d.ts +34 -1
  100. package/dist/types/tooldb.js +19 -0
  101. package/dist/types/tooldb.js.map +1 -1
  102. package/dist/utils/indexedb.d.ts +2 -6
  103. package/dist/utils/indexedb.js +13 -3
  104. package/dist/utils/indexedb.js.map +1 -1
  105. package/dist/utils/leveldb.d.ts +2 -6
  106. package/dist/utils/leveldb.js +12 -2
  107. package/dist/utils/leveldb.js.map +1 -1
  108. package/dist/utils/verifyPeer.d.ts +2 -0
  109. package/dist/utils/verifyPeer.js +13 -0
  110. package/dist/utils/verifyPeer.js.map +1 -0
  111. package/dist/wss.d.ts +1 -1
  112. package/dist/wss.js +14 -11
  113. package/dist/wss.js.map +1 -1
  114. package/jest.config.ts +2 -1
  115. package/package.json +3 -2
  116. package/test-alice/000003.log +0 -0
  117. package/test-alice/CURRENT +1 -0
  118. package/test-alice/LOCK +0 -0
  119. package/test-alice/LOG +1 -0
  120. package/test-alice/MANIFEST-000002 +0 -0
  121. package/test-bob/000003.log +0 -0
  122. package/test-bob/CURRENT +1 -0
  123. package/test-bob/LOCK +0 -0
  124. package/test-bob/LOG +1 -0
  125. package/test-bob/MANIFEST-000002 +0 -0
  126. package/test-node-a/000003.log +0 -0
  127. package/test-node-a/CURRENT +1 -0
  128. package/test-node-a/LOCK +0 -0
  129. package/test-node-a/LOG +1 -0
  130. package/test-node-a/MANIFEST-000002 +0 -0
  131. package/test-node-b/000003.log +0 -0
  132. package/test-node-b/CURRENT +1 -0
  133. package/test-node-b/LOCK +0 -0
  134. package/test-node-b/LOG +1 -0
  135. package/test-node-b/MANIFEST-000002 +0 -0
  136. package/toolDbLibP2p.ts +206 -0
@@ -0,0 +1,2 @@
1
+ import { ServersMessage, ToolDb } from "..";
2
+ export default function handleServers(this: ToolDb, message: ServersMessage, remotePeerId: string): void;
@@ -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,2 @@
1
+ import { ServersMessage, ToolDb } from "..";
2
+ export default function handleServers(this: ToolDb, message: ServersMessage, remotePeerId: string): void;
@@ -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,2 @@
1
+ import { SubscribeMessage, ToolDb } from "..";
2
+ export default function handleSubscribe(this: ToolDb, message: SubscribeMessage, remotePeerId: string): void;
@@ -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
- import { ToolDbWebSocket } from "./wss";
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,260 +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
- var _1 = require(".");
18
- var toolDbVerificationWrapper_1 = __importDefault(require("./toolDbVerificationWrapper"));
19
- var automerge_1 = __importDefault(require("automerge"));
20
- var base64ToBinaryChange_1 = __importDefault(require("./utils/base64ToBinaryChange"));
21
- function toolDbClientOnMessage(data, socket) {
22
- var _this = this;
23
- var originalData = data;
24
- if (typeof data === "string") {
25
- var message_1 = JSON.parse(data);
26
- // console.log("Got message > ", message.type, (message as any).k || "");
27
- // Check if we are listening for this ID
28
- if (message_1.id) {
29
- var msgId = message_1.id;
30
- if (this._idListeners[msgId]) {
31
- this._idListeners[msgId](message_1);
32
- this.removeIdListener(msgId);
33
- }
34
- }
35
- if (message_1.type === "ping") {
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 || "", {
40
- type: "pong",
41
- isServer: this.options.server,
42
- clientId: this.options.id,
43
- to: [],
44
- id: (0, _1.textRandom)(10),
45
- });
46
- }
47
- if (message_1.type === "pong") {
48
- socket.toolDbId = message_1.clientId;
49
- socket.isServer = message_1.isServer;
50
- this.websockets._clientSockets[message_1.clientId] = socket;
51
- this.onConnect();
52
- }
53
- if (message_1.type === "subscribe") {
54
- if (socket.toolDbId) {
55
- var subId = socket.toolDbId + "-" + message_1.key;
56
- if (!this.subscriptions.includes(subId)) {
57
- this.subscriptions.push(subId);
58
- this.addKeyListener(message_1.key, function (msg) {
59
- if ((msg.type === "put" || msg.type === "crdt") &&
60
- socket.toolDbId) {
61
- // We do not reply to the socket directly
62
- // instead we use the client id, in case the socket reconnects
63
- _this.websockets.sendToClientId(socket.toolDbId, msg);
64
- }
65
- });
66
- }
67
- }
68
- // basically the exact same as GET, below
69
- this.store.get(message_1.key, function (err, data) {
70
- if (data) {
71
- try {
72
- var oldData = __assign(__assign({}, JSON.parse(data)), { id: message_1.id });
73
- _this.websockets.sendToClientId(socket.toolDbId || "", oldData);
74
- }
75
- catch (e) {
76
- // do nothing
77
- }
78
- }
79
- });
80
- this.loadCrdtDocument(message_1.key, false).then(function (doc) {
81
- // console.log("Load crdt from subscribe", message.key, doc);
82
- if (doc) {
83
- var savedDoc = automerge_1.default.save(doc);
84
- // console.log("saved", savedDoc);
85
- var msg = {
86
- type: "crdt",
87
- key: message_1.key,
88
- to: [],
89
- id: (0, _1.textRandom)(10),
90
- doc: (0, _1.uint8ToBase64)(savedDoc),
91
- };
92
- _this.websockets.sendToClientId(socket.toolDbId || "", msg);
93
- }
94
- });
95
- }
96
- if (message_1.type === "get") {
97
- this.store.get(message_1.key, function (err, data) {
98
- if (data) {
99
- try {
100
- // Use the id of the get so the other client knows we are replying
101
- var oldData = __assign(__assign({ type: "put" }, JSON.parse(data)), { id: message_1.id });
102
- _this.websockets.sendToClientId(socket.toolDbId || "", oldData);
103
- }
104
- catch (e) {
105
- // socket.send(data);
106
- // do nothing
107
- }
108
- }
109
- else {
110
- if (_this.options.debug) {
111
- console.log("Local key not found, relay", originalData);
112
- }
113
- _this.websockets.send(message_1);
114
- }
115
- });
116
- }
117
- if (message_1.type === "put") {
118
- toolDbVerificationWrapper_1.default.call(this, message_1).then(function (value) {
119
- // console.log("Verification wrapper result: ", value, message.k);
120
- if (value === _1.VerifyResult.Verified) {
121
- // relay to other servers !!!
122
- _this.websockets.send(message_1);
123
- _this.store.get(message_1.k, function (err, oldData) {
124
- if (oldData) {
125
- var parsedOldData = __assign({ type: "put" }, JSON.parse(oldData));
126
- if (parsedOldData.t < message_1.t) {
127
- var key = message_1.k;
128
- _this.triggerKeyListener(key, message_1);
129
- _this.store.put(message_1.k, JSON.stringify(message_1), function (err, data) {
130
- //
131
- });
132
- }
133
- else {
134
- var key = message_1.k;
135
- _this.triggerKeyListener(key, parsedOldData);
136
- }
137
- // } else if (this.options.debug) {
138
- // console.log(
139
- // `${message.k} has old data, but its newer. old ${parsedOldData.t} < new ${message.t}`
140
- // );
141
- // }
142
- }
143
- else {
144
- var key = message_1.k;
145
- _this.triggerKeyListener(key, message_1);
146
- _this.store.put(message_1.k, JSON.stringify(message_1), function (err, data) {
147
- //
148
- });
149
- }
150
- });
151
- }
152
- else {
153
- console.warn("unverified message: ", value, message_1);
154
- }
155
- });
156
- }
157
- if (message_1.type === "crdtPut") {
158
- // key = aggregated, final value
159
- // key.crdt = automerge doc with changes
160
- // const writeStart = new Date().getTime();
161
- toolDbVerificationWrapper_1.default.call(this, message_1).then(function (value) {
162
- // console.log("CRDT Verification wrapper result: ", value);
163
- if (value === _1.VerifyResult.Verified) {
164
- var key_1 = message_1.k;
165
- var data_1 = [];
166
- try {
167
- data_1 = JSON.parse(message_1.v);
168
- }
169
- catch (e) {
170
- //
171
- }
172
- var changes_1 = data_1.map(base64ToBinaryChange_1.default);
173
- _this.loadCrdtDocument(key_1).then(function (currentDoc) {
174
- // if (currentDoc) {
175
- // console.log(
176
- // "loaded",
177
- // key,
178
- // currentDoc,
179
- // Automerge.getHistory(currentDoc)
180
- // );
181
- // }
182
- var newDoc = automerge_1.default.init();
183
- try {
184
- newDoc = automerge_1.default.applyChanges(currentDoc || automerge_1.default.init(), changes_1)[0];
185
- }
186
- catch (e) {
187
- try {
188
- newDoc = automerge_1.default.applyChanges(automerge_1.default.init(), changes_1)[0];
189
- }
190
- catch (ee) {
191
- if (_this.options.debug) {
192
- console.log(ee);
193
- }
194
- }
195
- }
196
- // if (newDoc) {
197
- // console.log(
198
- // "new document changes:",
199
- // Automerge.getHistory(newDoc)
200
- // );
201
- // }
202
- // persist
203
- _this.documents[key_1] = newDoc;
204
- var savedDoc = automerge_1.default.save(newDoc);
205
- _this.store.put(key_1 + ".crdt", savedDoc, function (err, data) {
206
- // const writeEnd = new Date().getTime();
207
- // console.log("CRDT write: ", (writeEnd - writeStart) / 1000);
208
- });
209
- var crdtMessage = {
210
- type: "crdt",
211
- key: key_1,
212
- id: message_1.id,
213
- to: [],
214
- doc: (0, _1.uint8ToBase64)(savedDoc),
215
- };
216
- _this.triggerKeyListener(key_1, crdtMessage);
217
- // relay to other servers
218
- // !!!
219
- _this.websockets.send(crdtMessage);
220
- });
221
- }
222
- else {
223
- console.log("unverified message", value, message_1);
224
- }
225
- });
226
- }
227
- if (message_1.type === "crdtGet") {
228
- this.loadCrdtDocument(message_1.key).then(function (currentDoc) {
229
- var saved = automerge_1.default.save(currentDoc || automerge_1.default.init());
230
- _this.websockets.sendToClientId(socket.toolDbId || "", {
231
- type: "crdt",
232
- id: message_1.id,
233
- key: message_1.key,
234
- to: [],
235
- doc: (0, _1.uint8ToBase64)(saved),
236
- });
237
- });
238
- }
239
- if (message_1.type === "query") {
240
- this.store.query(message_1.key).then(function (keys) {
241
- _this.websockets.sendToClientId(socket.toolDbId || "", {
242
- type: "queryAck",
243
- id: message_1.id,
244
- to: [],
245
- keys: keys,
246
- });
247
- });
248
- }
249
- if (message_1.type === "crdt") {
250
- var key = message_1.key;
251
- this.triggerKeyListener(key, message_1);
252
- var savedDoc = (0, _1.base64ToBinaryDocument)(message_1.doc);
253
- this.store.put(key + ".crdt", savedDoc, function (err, data) {
254
- //
255
- });
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);
256
27
  }
257
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
+ }
258
64
  }
259
65
  exports.default = toolDbClientOnMessage;
260
66
  //# sourceMappingURL=toolDbClientOnMessage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolDbClientOnMessage.js","sourceRoot":"","sources":["../src/toolDbClientOnMessage.ts"],"names":[],"mappings":"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"}
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"}
@@ -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.websockets.send(finalMessage);
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,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"}
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
@@ -62,7 +62,7 @@ function toolDbGet(key, userNamespaced, timeoutMs) {
62
62
  }
63
63
  });
64
64
  // Do get
65
- _this.websockets.send({
65
+ _this.network.sendToAll({
66
66
  type: "get",
67
67
  to: [],
68
68
  key: finalKey,
@@ -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,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"}
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
+ }