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.
Files changed (135) 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 -264
  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.js +2 -2
  112. package/dist/wss.js.map +1 -1
  113. package/jest.config.ts +2 -1
  114. package/package.json +3 -2
  115. package/test-alice/000003.log +0 -0
  116. package/test-alice/CURRENT +1 -0
  117. package/test-alice/LOCK +0 -0
  118. package/test-alice/LOG +1 -0
  119. package/test-alice/MANIFEST-000002 +0 -0
  120. package/test-bob/000003.log +0 -0
  121. package/test-bob/CURRENT +1 -0
  122. package/test-bob/LOCK +0 -0
  123. package/test-bob/LOG +1 -0
  124. package/test-bob/MANIFEST-000002 +0 -0
  125. package/test-node-a/000003.log +0 -0
  126. package/test-node-a/CURRENT +1 -0
  127. package/test-node-a/LOCK +0 -0
  128. package/test-node-a/LOG +1 -0
  129. package/test-node-a/MANIFEST-000002 +0 -0
  130. package/test-node-b/000003.log +0 -0
  131. package/test-node-b/CURRENT +1 -0
  132. package/test-node-b/LOCK +0 -0
  133. package/test-node-b/LOG +1 -0
  134. package/test-node-b/MANIFEST-000002 +0 -0
  135. package/toolDbLibP2p.ts +206 -0
@@ -0,0 +1,18 @@
1
+ const Environment = require("jest-environment-jsdom");
2
+
3
+ /**
4
+ * A custom environment to set the TextEncoder.
5
+ */
6
+ module.exports = class CustomTestEnvironment extends Environment {
7
+ async setup() {
8
+ await super.setup();
9
+ if (typeof this.global.TextEncoder === "undefined") {
10
+ const { TextEncoder } = require("util");
11
+ this.global.TextEncoder = TextEncoder;
12
+ }
13
+ if (typeof this.global.TextDecoder === "undefined") {
14
+ const { TextDecoder } = require("util");
15
+ this.global.TextDecoder = TextDecoder;
16
+ }
17
+ }
18
+ };
package/dist/index.d.ts CHANGED
@@ -34,4 +34,14 @@ export { default as importKey } from "./utils/crypto/importKey";
34
34
  export { default as loadKeysComb } from "./utils/crypto/loadKeysComb";
35
35
  export { default as saveKeysComb } from "./utils/crypto/saveKeysComb";
36
36
  export { default as verifyData } from "./utils/crypto/verifyData";
37
+ export { default as toolDbNetwork } from "./toolDbNetwork";
38
+ export { default as handleCrdt } from "./messageHandlers/handleCrdt";
39
+ export { default as handleCrdtGet } from "./messageHandlers/handleCrdtGet";
40
+ export { default as handleCrdtPut } from "./messageHandlers/handleCrdtPut";
41
+ export { default as handleGet } from "./messageHandlers/handleGet";
42
+ export { default as handlePing } from "./messageHandlers/handlePing";
43
+ export { default as handlePong } from "./messageHandlers/handlePong";
44
+ export { default as handlePut } from "./messageHandlers/handlePut";
45
+ export { default as handleQuery } from "./messageHandlers/handleQuery";
46
+ export { default as handleSubscribe } from "./messageHandlers/handleSubscribe";
37
47
  export { default as ToolDb } from "./tooldb";
package/dist/index.js CHANGED
@@ -13,7 +13,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  return (mod && mod.__esModule) ? mod : { "default": mod };
14
14
  };
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.ToolDb = exports.verifyData = exports.saveKeysComb = exports.loadKeysComb = exports.importKey = exports.generateKeysComb = exports.generateKeyPair = exports.generateKeyFromPassword = exports.exportKey = exports.encryptWithPass = exports.encryptData = exports.encodeKeyString = exports.deriveSecret = exports.decryptWithPass = exports.decryptData = exports.decodeKeyString = exports.getIpFromUrl = exports.verifyMessage = exports.uint8ToBase64 = exports.toBase64 = exports.textRandom = exports.stringToArrayBuffer = exports.randomAnimal = exports.generateIv = exports.fromBase64 = exports.base64ToUint8 = exports.base64ToBinaryDocument = exports.base64ToBinaryChange = exports.base64ToArrayBuffer = exports.arrayBufferToString = exports.arrayBufferToBase64 = exports.signData = exports.sha256 = exports.sha1 = exports.proofOfWork = void 0;
16
+ exports.ToolDb = exports.handleSubscribe = exports.handleQuery = exports.handlePut = exports.handlePong = exports.handlePing = exports.handleGet = exports.handleCrdtPut = exports.handleCrdtGet = exports.handleCrdt = exports.toolDbNetwork = exports.verifyData = exports.saveKeysComb = exports.loadKeysComb = exports.importKey = exports.generateKeysComb = exports.generateKeyPair = exports.generateKeyFromPassword = exports.exportKey = exports.encryptWithPass = exports.encryptData = exports.encodeKeyString = exports.deriveSecret = exports.decryptWithPass = exports.decryptData = exports.decodeKeyString = exports.getIpFromUrl = exports.verifyMessage = exports.uint8ToBase64 = exports.toBase64 = exports.textRandom = exports.stringToArrayBuffer = exports.randomAnimal = exports.generateIv = exports.fromBase64 = exports.base64ToUint8 = exports.base64ToBinaryDocument = exports.base64ToBinaryChange = exports.base64ToArrayBuffer = exports.arrayBufferToString = exports.arrayBufferToBase64 = exports.signData = exports.sha256 = exports.sha1 = exports.proofOfWork = void 0;
17
17
  /* eslint-disable no-undef */
18
18
  /* eslint-disable global-require */
19
19
  __exportStar(require("./types/graph"), exports);
@@ -100,6 +100,26 @@ var saveKeysComb_1 = require("./utils/crypto/saveKeysComb");
100
100
  Object.defineProperty(exports, "saveKeysComb", { enumerable: true, get: function () { return __importDefault(saveKeysComb_1).default; } });
101
101
  var verifyData_1 = require("./utils/crypto/verifyData");
102
102
  Object.defineProperty(exports, "verifyData", { enumerable: true, get: function () { return __importDefault(verifyData_1).default; } });
103
+ var toolDbNetwork_1 = require("./toolDbNetwork");
104
+ Object.defineProperty(exports, "toolDbNetwork", { enumerable: true, get: function () { return __importDefault(toolDbNetwork_1).default; } });
105
+ var handleCrdt_1 = require("./messageHandlers/handleCrdt");
106
+ Object.defineProperty(exports, "handleCrdt", { enumerable: true, get: function () { return __importDefault(handleCrdt_1).default; } });
107
+ var handleCrdtGet_1 = require("./messageHandlers/handleCrdtGet");
108
+ Object.defineProperty(exports, "handleCrdtGet", { enumerable: true, get: function () { return __importDefault(handleCrdtGet_1).default; } });
109
+ var handleCrdtPut_1 = require("./messageHandlers/handleCrdtPut");
110
+ Object.defineProperty(exports, "handleCrdtPut", { enumerable: true, get: function () { return __importDefault(handleCrdtPut_1).default; } });
111
+ var handleGet_1 = require("./messageHandlers/handleGet");
112
+ Object.defineProperty(exports, "handleGet", { enumerable: true, get: function () { return __importDefault(handleGet_1).default; } });
113
+ var handlePing_1 = require("./messageHandlers/handlePing");
114
+ Object.defineProperty(exports, "handlePing", { enumerable: true, get: function () { return __importDefault(handlePing_1).default; } });
115
+ var handlePong_1 = require("./messageHandlers/handlePong");
116
+ Object.defineProperty(exports, "handlePong", { enumerable: true, get: function () { return __importDefault(handlePong_1).default; } });
117
+ var handlePut_1 = require("./messageHandlers/handlePut");
118
+ Object.defineProperty(exports, "handlePut", { enumerable: true, get: function () { return __importDefault(handlePut_1).default; } });
119
+ var handleQuery_1 = require("./messageHandlers/handleQuery");
120
+ Object.defineProperty(exports, "handleQuery", { enumerable: true, get: function () { return __importDefault(handleQuery_1).default; } });
121
+ var handleSubscribe_1 = require("./messageHandlers/handleSubscribe");
122
+ Object.defineProperty(exports, "handleSubscribe", { enumerable: true, get: function () { return __importDefault(handleSubscribe_1).default; } });
103
123
  var tooldb_1 = require("./tooldb");
104
124
  Object.defineProperty(exports, "ToolDb", { enumerable: true, get: function () { return __importDefault(tooldb_1).default; } });
105
125
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6BAA6B;AAC7B,mCAAmC;AACnC,gDAA8B;AAC9B,kDAAgC;AAEhC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;AAE1D,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;IAC/B,MAAM,CAAC,IAAI,GAAG,UAAC,GAAG;QAChB,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC,CAAC;CACH;AAED,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;IAC/B,MAAM,CAAC,IAAI,GAAG,UAAC,UAAU;QACvB,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC9D,CAAC,CAAC;CACH;AAED,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;IACjC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC;CAC7C;AAED,mDAA6D;AAApD,2HAAA,OAAO,OAAe;AAC/B,qCAA+C;AAAtC,6GAAA,OAAO,OAAQ;AACxB,yCAAmD;AAA1C,iHAAA,OAAO,OAAU;AAC1B,6CAAuD;AAA9C,qHAAA,OAAO,OAAY;AAC5B,mEAA6E;AAApE,2IAAA,OAAO,OAAuB;AACvC,mEAA6E;AAApE,2IAAA,OAAO,OAAuB;AACvC,mEAA6E;AAApE,2IAAA,OAAO,OAAuB;AACvC,qEAA+E;AAAtE,6IAAA,OAAO,OAAwB;AACxC,yEAAmF;AAA1E,iJAAA,OAAO,OAA0B;AAC1C,uDAAiE;AAAxD,+HAAA,OAAO,OAAiB;AACjC,iDAA2D;AAAlD,yHAAA,OAAO,OAAc;AAC9B,iDAA2D;AAAlD,yHAAA,OAAO,OAAc;AAC9B,qDAA+D;AAAtD,6HAAA,OAAO,OAAgB;AAChC,mEAA6E;AAApE,2IAAA,OAAO,OAAuB;AACvC,iDAA2D;AAAlD,yHAAA,OAAO,OAAc;AAC9B,6CAAuD;AAA9C,qHAAA,OAAO,OAAY;AAC5B,uDAAiE;AAAxD,+HAAA,OAAO,OAAiB;AACjC,uDAAiE;AAAxD,+HAAA,OAAO,OAAiB;AACjC,qDAA+D;AAAtD,6HAAA,OAAO,OAAgB;AAEhC,kEAA4E;AAAnE,mIAAA,OAAO,OAAmB;AACnC,0DAAoE;AAA3D,2HAAA,OAAO,OAAe;AAC/B,kEAA4E;AAAnE,mIAAA,OAAO,OAAmB;AACnC,4DAAsE;AAA7D,6HAAA,OAAO,OAAgB;AAChC,kEAA4E;AAAnE,mIAAA,OAAO,OAAmB;AACnC,0DAAoE;AAA3D,2HAAA,OAAO,OAAe;AAC/B,kEAA4E;AAAnE,mIAAA,OAAO,OAAmB;AACnC,sDAAgE;AAAvD,uHAAA,OAAO,OAAa;AAC7B,kFAA4F;AAAnF,mJAAA,OAAO,OAA2B;AAC3C,kEAA4E;AAAnE,mIAAA,OAAO,OAAmB;AACnC,oEAA8E;AAArE,qIAAA,OAAO,OAAoB;AACpC,sDAAgE;AAAvD,uHAAA,OAAO,OAAa;AAC7B,4DAAsE;AAA7D,6HAAA,OAAO,OAAgB;AAChC,4DAAsE;AAA7D,6HAAA,OAAO,OAAgB;AAChC,wDAAkE;AAAzD,yHAAA,OAAO,OAAc;AAE9B,mCAA6C;AAApC,iHAAA,OAAO,OAAU"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { ToolDb } from "..";
2
+ export default function create(db: ToolDb): Promise<void>;
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ var libp2p_1 = __importDefault(require("libp2p"));
43
+ var libp2p_websockets_1 = __importDefault(require("libp2p-websockets"));
44
+ var libp2p_webrtc_star_1 = __importDefault(require("libp2p-webrtc-star"));
45
+ var libp2p_noise_1 = require("@chainsafe/libp2p-noise");
46
+ var libp2p_mplex_1 = __importDefault(require("libp2p-mplex"));
47
+ var tooldb_protocol_1 = require("./tooldb-protocol");
48
+ function create(db) {
49
+ return __awaiter(this, void 0, void 0, function () {
50
+ var options, node;
51
+ var _this = this;
52
+ return __generator(this, function (_a) {
53
+ switch (_a.label) {
54
+ case 0:
55
+ options = {
56
+ addresses: {
57
+ listen: [
58
+ "/dns4/wrtc-star1.par.dwebops.pub/tcp/443/wss/p2p-webrtc-star",
59
+ "/dns4/wrtc-star2.sjc.dwebops.pub/tcp/443/wss/p2p-webrtc-star",
60
+ ],
61
+ },
62
+ modules: {
63
+ transport: [libp2p_websockets_1.default, libp2p_webrtc_star_1.default],
64
+ connEncryption: [libp2p_noise_1.NOISE],
65
+ streamMuxer: [libp2p_mplex_1.default],
66
+ },
67
+ };
68
+ return [4 /*yield*/, libp2p_1.default.create(options)];
69
+ case 1:
70
+ node = _a.sent();
71
+ window.libp2p = node;
72
+ db.options.id = node.peerId.toB58String();
73
+ // Listen for new peers
74
+ // node.on("peer:discovery", (peerId) => {
75
+ // console.log(`Found peer ${peerId.toB58String()}`);
76
+ // });
77
+ // Listen for new connections to peers
78
+ node.connectionManager.on("peer:connect", function (connection) {
79
+ // Send message to other peers (connected) using the protocol
80
+ node.peerStore.peers.forEach(function (peer) { return __awaiter(_this, void 0, void 0, function () {
81
+ var connection, pid, stream, err_1;
82
+ return __generator(this, function (_a) {
83
+ switch (_a.label) {
84
+ case 0:
85
+ connection = node.connectionManager.get(peer.id);
86
+ if (!connection)
87
+ return [2 /*return*/];
88
+ if (!peer.protocols.includes(tooldb_protocol_1.PROTOCOL_VER)) {
89
+ // Close connections without our protocol
90
+ connection.close();
91
+ return [2 /*return*/];
92
+ }
93
+ pid = peer.id.toB58String();
94
+ if (!!db.websockets.clientSockets[pid]) return [3 /*break*/, 5];
95
+ console.warn("Protocol found " + tooldb_protocol_1.PROTOCOL_VER);
96
+ _a.label = 1;
97
+ case 1:
98
+ _a.trys.push([1, 4, , 5]);
99
+ return [4 /*yield*/, connection.newStream([tooldb_protocol_1.PROTOCOL_VER])];
100
+ case 2:
101
+ stream = (_a.sent()).stream;
102
+ db.websockets.clientSockets[pid] = stream;
103
+ return [4 /*yield*/, (0, tooldb_protocol_1.toolDbProtocolSend)("message data test " + Math.round(Math.random() * 9999), stream, db)];
104
+ case 3:
105
+ _a.sent();
106
+ return [3 /*break*/, 5];
107
+ case 4:
108
+ err_1 = _a.sent();
109
+ console.info("Could not handshake protocol with peer", err_1);
110
+ return [3 /*break*/, 5];
111
+ case 5: return [2 /*return*/];
112
+ }
113
+ });
114
+ }); });
115
+ });
116
+ // Listen for peers disconnecting
117
+ node.connectionManager.on("peer:disconnect", function (connection) {
118
+ var pid = connection.remotePeer.toB58String();
119
+ delete db.websockets.clientSockets[pid];
120
+ });
121
+ node.handle(tooldb_protocol_1.PROTOCOL_VER, function (args) { return (0, tooldb_protocol_1.toolDbProtocolHandler)(args, db); });
122
+ return [4 /*yield*/, node.start()];
123
+ case 2:
124
+ _a.sent();
125
+ return [2 /*return*/];
126
+ }
127
+ });
128
+ });
129
+ }
130
+ exports.default = create;
131
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/libp2p/create.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA4B;AAC5B,wEAA2C;AAC3C,0EAA4C;AAC5C,wDAAgD;AAChD,8DAAiC;AAEjC,qDAI2B;AAG3B,SAA8B,MAAM,CAAC,EAAU;;;;;;;oBACvC,OAAO,GAAG;wBACd,SAAS,EAAE;4BACT,MAAM,EAAE;gCACN,8DAA8D;gCAC9D,8DAA8D;6BAC/D;yBACF;wBACD,OAAO,EAAE;4BACP,SAAS,EAAE,CAAC,2BAAU,EAAE,4BAAU,CAAC;4BACnC,cAAc,EAAE,CAAC,oBAAK,CAAC;4BACvB,WAAW,EAAE,CAAC,sBAAK,CAAC;yBACrB;qBACF,CAAC;oBAEW,qBAAM,gBAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAA;;oBAAnC,IAAI,GAAG,SAA4B;oBACxC,MAAc,CAAC,MAAM,GAAG,IAAI,CAAC;oBAC9B,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;oBAE1C,uBAAuB;oBACvB,0CAA0C;oBAC1C,uDAAuD;oBACvD,MAAM;oBAEN,sCAAsC;oBACtC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,cAAc,EAAE,UAAC,UAAe;wBACxD,6DAA6D;wBAC7D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,UAAO,IAAS;;;;;wCACrC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wCACvD,IAAI,CAAC,UAAU;4CAAE,sBAAO;wCACxB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,8BAAY,CAAC,EAAE;4CAC1C,yCAAyC;4CACzC,UAAU,CAAC,KAAK,EAAE,CAAC;4CACnB,sBAAO;yCACR;wCACK,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;6CAE9B,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,EAAjC,wBAAiC;wCACnC,OAAO,CAAC,IAAI,CAAC,oBAAkB,8BAAc,CAAC,CAAC;;;;wCAE1B,qBAAM,UAAU,CAAC,SAAS,CAAC,CAAC,8BAAY,CAAC,CAAC,EAAA;;wCAArD,MAAM,GAAK,CAAA,SAA0C,CAAA,OAA/C;wCACd,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;wCAC1C,qBAAM,IAAA,oCAAkB,EACtB,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,EACvD,MAAM,EACN,EAAE,CACH,EAAA;;wCAJD,SAIC,CAAC;;;;wCAEF,OAAO,CAAC,IAAI,CAAC,wCAAwC,EAAE,KAAG,CAAC,CAAC;;;;;6BAGjE,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;oBAEH,iCAAiC;oBACjC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,iBAAiB,EAAE,UAAC,UAAe;wBAC3D,IAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;wBAChD,OAAO,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBAC1C,CAAC,CAAC,CAAC;oBAEH,IAAI,CAAC,MAAM,CAAC,8BAAY,EAAE,UAAC,IAAS,IAAK,OAAA,IAAA,uCAAqB,EAAC,IAAI,EAAE,EAAE,CAAC,EAA/B,CAA+B,CAAC,CAAC;oBAC1E,qBAAM,IAAI,CAAC,KAAK,EAAE,EAAA;;oBAAlB,SAAkB,CAAC;;;;;CACpB;AA9DD,yBA8DC"}
@@ -0,0 +1,3 @@
1
+ import Libp2p from "libp2p";
2
+ import { ToolDb } from "..";
3
+ export default function createLibP2p(db: ToolDb): Promise<Libp2p>;
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ var libp2p_1 = __importDefault(require("libp2p"));
43
+ var libp2p_websockets_1 = __importDefault(require("libp2p-websockets"));
44
+ var libp2p_webrtc_star_1 = __importDefault(require("libp2p-webrtc-star"));
45
+ var libp2p_noise_1 = require("@chainsafe/libp2p-noise");
46
+ var libp2p_mplex_1 = __importDefault(require("libp2p-mplex"));
47
+ function createLibP2p(db) {
48
+ return __awaiter(this, void 0, void 0, function () {
49
+ var options, node;
50
+ var _this = this;
51
+ return __generator(this, function (_a) {
52
+ switch (_a.label) {
53
+ case 0:
54
+ options = {
55
+ addresses: {
56
+ listen: [
57
+ "/dns4/wrtc-star1.par.dwebops.pub/tcp/443/wss/p2p-webrtc-star",
58
+ "/dns4/wrtc-star2.sjc.dwebops.pub/tcp/443/wss/p2p-webrtc-star",
59
+ ],
60
+ },
61
+ modules: {
62
+ transport: [libp2p_websockets_1.default, libp2p_webrtc_star_1.default],
63
+ connEncryption: [libp2p_noise_1.NOISE],
64
+ streamMuxer: [libp2p_mplex_1.default],
65
+ },
66
+ };
67
+ return [4 /*yield*/, libp2p_1.default.create(options)];
68
+ case 1:
69
+ node = _a.sent();
70
+ window.libp2p = node;
71
+ db.options.id = node.peerId.toB58String();
72
+ // Listen for new peers
73
+ // node.on("peer:discovery", (peerId) => {
74
+ // console.log(`Found peer ${peerId.toB58String()}`);
75
+ // });
76
+ // Listen for new connections to peers
77
+ node.connectionManager.on("peer:connect", function (connection) {
78
+ // Send message to other peers (connected) using the protocol
79
+ node.peerStore.peers.forEach(function (peer) { return __awaiter(_this, void 0, void 0, function () {
80
+ var connection, pid, stream, err_1;
81
+ return __generator(this, function (_a) {
82
+ switch (_a.label) {
83
+ case 0:
84
+ connection = node.connectionManager.get(peer.id);
85
+ if (!connection)
86
+ return [2 /*return*/];
87
+ if (!peer.protocols.includes(PROTOCOL_VER)) {
88
+ // Close connections without our protocol
89
+ connection.close();
90
+ return [2 /*return*/];
91
+ }
92
+ pid = peer.id.toB58String();
93
+ if (!!db.websockets.clientSockets[pid]) return [3 /*break*/, 5];
94
+ console.warn("Protocol found " + PROTOCOL_VER);
95
+ _a.label = 1;
96
+ case 1:
97
+ _a.trys.push([1, 4, , 5]);
98
+ return [4 /*yield*/, connection.newStream([PROTOCOL_VER])];
99
+ case 2:
100
+ stream = (_a.sent()).stream;
101
+ db.websockets.clientSockets[pid] = stream;
102
+ return [4 /*yield*/, toolDbProtocolSend("message data test " + Math.round(Math.random() * 9999), stream, db)];
103
+ case 3:
104
+ _a.sent();
105
+ return [3 /*break*/, 5];
106
+ case 4:
107
+ err_1 = _a.sent();
108
+ console.info("Could not handshake protocol with peer", err_1);
109
+ return [3 /*break*/, 5];
110
+ case 5: return [2 /*return*/];
111
+ }
112
+ });
113
+ }); });
114
+ });
115
+ // Listen for peers disconnecting
116
+ node.connectionManager.on("peer:disconnect", function (connection) {
117
+ var pid = connection.remotePeer.toB58String();
118
+ delete db.websockets.clientSockets[pid];
119
+ });
120
+ node.handle(PROTOCOL_VER, function (args) { return toolDbProtocolHandler(args, db); });
121
+ return [4 /*yield*/, node.start()];
122
+ case 2:
123
+ _a.sent();
124
+ return [2 /*return*/, node];
125
+ }
126
+ });
127
+ });
128
+ }
129
+ exports.default = createLibP2p;
130
+ //# sourceMappingURL=createLibP2p.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createLibP2p.js","sourceRoot":"","sources":["../../src/libp2p/createLibP2p.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA4B;AAC5B,wEAA2C;AAC3C,0EAA4C;AAC5C,wDAAgD;AAChD,8DAAiC;AAIjC,SAA8B,YAAY,CAAC,EAAU;;;;;;;oBAC7C,OAAO,GAAG;wBACd,SAAS,EAAE;4BACT,MAAM,EAAE;gCACN,8DAA8D;gCAC9D,8DAA8D;6BAC/D;yBACF;wBACD,OAAO,EAAE;4BACP,SAAS,EAAE,CAAC,2BAAU,EAAE,4BAAU,CAAC;4BACnC,cAAc,EAAE,CAAC,oBAAK,CAAC;4BACvB,WAAW,EAAE,CAAC,sBAAK,CAAC;yBACrB;qBACF,CAAC;oBAEW,qBAAM,gBAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAA;;oBAAnC,IAAI,GAAG,SAA4B;oBACxC,MAAc,CAAC,MAAM,GAAG,IAAI,CAAC;oBAC9B,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;oBAE1C,uBAAuB;oBACvB,0CAA0C;oBAC1C,uDAAuD;oBACvD,MAAM;oBAEN,sCAAsC;oBACtC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,cAAc,EAAE,UAAC,UAAe;wBACxD,6DAA6D;wBAC7D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,UAAO,IAAS;;;;;wCACrC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wCACvD,IAAI,CAAC,UAAU;4CAAE,sBAAO;wCACxB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;4CAC1C,yCAAyC;4CACzC,UAAU,CAAC,KAAK,EAAE,CAAC;4CACnB,sBAAO;yCACR;wCACK,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;6CAE9B,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,EAAjC,wBAAiC;wCACnC,OAAO,CAAC,IAAI,CAAC,oBAAkB,YAAc,CAAC,CAAC;;;;wCAE1B,qBAAM,UAAU,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,EAAA;;wCAArD,MAAM,GAAK,CAAA,SAA0C,CAAA,OAA/C;wCACd,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;wCAC1C,qBAAM,kBAAkB,CACtB,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,EACvD,MAAM,EACN,EAAE,CACH,EAAA;;wCAJD,SAIC,CAAC;;;;wCAEF,OAAO,CAAC,IAAI,CAAC,wCAAwC,EAAE,KAAG,CAAC,CAAC;;;;;6BAGjE,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;oBAEH,iCAAiC;oBACjC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,iBAAiB,EAAE,UAAC,UAAe;wBAC3D,IAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;wBAChD,OAAO,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;oBAC1C,CAAC,CAAC,CAAC;oBAEH,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,UAAC,IAAS,IAAK,OAAA,qBAAqB,CAAC,IAAI,EAAE,EAAE,CAAC,EAA/B,CAA+B,CAAC,CAAC;oBAC1E,qBAAM,IAAI,CAAC,KAAK,EAAE,EAAA;;oBAAlB,SAAkB,CAAC;oBACnB,sBAAO,IAAI,EAAC;;;;CACb;AA/DD,+BA+DC"}
@@ -0,0 +1,19 @@
1
+ import { MuxedStream } from "libp2p-interfaces/dist/src/stream-muxer/types";
2
+ import { ToolDb } from "..";
3
+ export declare const PROTOCOL_VER = "/tooldb/1.2.0";
4
+ /**
5
+ * A simple handler to print incoming messages to the console
6
+ * @param {Object} params
7
+ * @param {Connection} params.connection The connection the stream belongs to
8
+ * @param {Stream} params.stream stream to the peer
9
+ */
10
+ export declare function toolDbProtocolHandler({ connection, stream, }: {
11
+ connection: any;
12
+ stream: any[];
13
+ }, db: ToolDb): Promise<void>;
14
+ /**
15
+ * Writes a given `message` over the given `stream`.
16
+ * @param {String} message The message to send over `stream`
17
+ * @param {Stream} stream A stream over the muxed Connection to our peer
18
+ */
19
+ export declare function toolDbProtocolSend(message: string, stream: MuxedStream, db: ToolDb): Promise<void>;
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __asyncValues = (this && this.__asyncValues) || function (o) {
39
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
40
+ var m = o[Symbol.asyncIterator], i;
41
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
42
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
43
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
44
+ };
45
+ var __importDefault = (this && this.__importDefault) || function (mod) {
46
+ return (mod && mod.__esModule) ? mod : { "default": mod };
47
+ };
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ exports.toolDbProtocolSend = exports.toolDbProtocolHandler = exports.PROTOCOL_VER = void 0;
50
+ var it_pipe_1 = __importDefault(require("it-pipe"));
51
+ exports.PROTOCOL_VER = "/tooldb/1.2.0";
52
+ /**
53
+ * A simple handler to print incoming messages to the console
54
+ * @param {Object} params
55
+ * @param {Connection} params.connection The connection the stream belongs to
56
+ * @param {Stream} params.stream stream to the peer
57
+ */
58
+ function toolDbProtocolHandler(_a, db) {
59
+ var connection = _a.connection, stream = _a.stream;
60
+ return __awaiter(this, void 0, void 0, function () {
61
+ var err_1;
62
+ return __generator(this, function (_b) {
63
+ switch (_b.label) {
64
+ case 0:
65
+ _b.trys.push([0, 3, , 4]);
66
+ return [4 /*yield*/, (0, it_pipe_1.default)(stream, function (source) {
67
+ var source_1, source_1_1;
68
+ var e_1, _a;
69
+ return __awaiter(this, void 0, void 0, function () {
70
+ var message, e_1_1;
71
+ return __generator(this, function (_b) {
72
+ switch (_b.label) {
73
+ case 0:
74
+ _b.trys.push([0, 5, 6, 11]);
75
+ source_1 = __asyncValues(source);
76
+ _b.label = 1;
77
+ case 1: return [4 /*yield*/, source_1.next()];
78
+ case 2:
79
+ if (!(source_1_1 = _b.sent(), !source_1_1.done)) return [3 /*break*/, 4];
80
+ message = source_1_1.value;
81
+ db.clientOnMessage(message, connection.remotePeer.toB58String());
82
+ _b.label = 3;
83
+ case 3: return [3 /*break*/, 1];
84
+ case 4: return [3 /*break*/, 11];
85
+ case 5:
86
+ e_1_1 = _b.sent();
87
+ e_1 = { error: e_1_1 };
88
+ return [3 /*break*/, 11];
89
+ case 6:
90
+ _b.trys.push([6, , 9, 10]);
91
+ if (!(source_1_1 && !source_1_1.done && (_a = source_1.return))) return [3 /*break*/, 8];
92
+ return [4 /*yield*/, _a.call(source_1)];
93
+ case 7:
94
+ _b.sent();
95
+ _b.label = 8;
96
+ case 8: return [3 /*break*/, 10];
97
+ case 9:
98
+ if (e_1) throw e_1.error;
99
+ return [7 /*endfinally*/];
100
+ case 10: return [7 /*endfinally*/];
101
+ case 11: return [2 /*return*/];
102
+ }
103
+ });
104
+ });
105
+ })];
106
+ case 1:
107
+ _b.sent();
108
+ // Replies are done on new streams, so let's close this stream so we don't leak it
109
+ return [4 /*yield*/, (0, it_pipe_1.default)([], stream)];
110
+ case 2:
111
+ // Replies are done on new streams, so let's close this stream so we don't leak it
112
+ _b.sent();
113
+ return [3 /*break*/, 4];
114
+ case 3:
115
+ err_1 = _b.sent();
116
+ console.error(err_1);
117
+ return [3 /*break*/, 4];
118
+ case 4: return [2 /*return*/];
119
+ }
120
+ });
121
+ });
122
+ }
123
+ exports.toolDbProtocolHandler = toolDbProtocolHandler;
124
+ /**
125
+ * Writes a given `message` over the given `stream`.
126
+ * @param {String} message The message to send over `stream`
127
+ * @param {Stream} stream A stream over the muxed Connection to our peer
128
+ */
129
+ function toolDbProtocolSend(message, stream, db) {
130
+ return __awaiter(this, void 0, void 0, function () {
131
+ var err_2;
132
+ return __generator(this, function (_a) {
133
+ switch (_a.label) {
134
+ case 0:
135
+ _a.trys.push([0, 2, , 3]);
136
+ return [4 /*yield*/, (0, it_pipe_1.default)([message], stream, function (_source) {
137
+ return __awaiter(this, void 0, void 0, function () {
138
+ return __generator(this, function (_a) {
139
+ return [2 /*return*/];
140
+ });
141
+ });
142
+ })];
143
+ case 1:
144
+ _a.sent();
145
+ return [3 /*break*/, 3];
146
+ case 2:
147
+ err_2 = _a.sent();
148
+ console.error(err_2);
149
+ return [3 /*break*/, 3];
150
+ case 3: return [2 /*return*/];
151
+ }
152
+ });
153
+ });
154
+ }
155
+ exports.toolDbProtocolSend = toolDbProtocolSend;
156
+ //# sourceMappingURL=tooldb-protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooldb-protocol.js","sourceRoot":"","sources":["../../src/libp2p/tooldb-protocol.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,oDAA2B;AAEd,QAAA,YAAY,GAAG,eAAe,CAAC;AAE5C;;;;;GAKG;AACH,SAAsB,qBAAqB,CACzC,EAMC,EACD,EAAU;QANR,UAAU,gBAAA,EACV,MAAM,YAAA;;;;;;;oBAQN,qBAAM,IAAA,iBAAI,EAAC,MAAM,EAAE,UAAgB,MAAM;;;;;;;;;4CACX,WAAA,cAAA,MAAM,CAAA;;;;;4CAAjB,OAAO,mBAAA,CAAA;4CACtB,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;yBAEpE,CAAC,EAAA;;oBAJF,SAIE,CAAC;oBACH,kFAAkF;oBAClF,qBAAM,IAAA,iBAAI,EAAC,EAAE,EAAE,MAAM,CAAC,EAAA;;oBADtB,kFAAkF;oBAClF,SAAsB,CAAC;;;;oBAEvB,OAAO,CAAC,KAAK,CAAC,KAAG,CAAC,CAAC;;;;;;CAEtB;AArBD,sDAqBC;AAED;;;;GAIG;AACH,SAAsB,kBAAkB,CACtC,OAAe,EACf,MAAmB,EACnB,EAAU;;;;;;;oBAGR,qBAAM,IAAA,iBAAI,EAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,UAAgB,OAAY;;;;;;yBAIzD,CAAC,EAAA;;oBAJF,SAIE,CAAC;;;;oBAEH,OAAO,CAAC,KAAK,CAAC,KAAG,CAAC,CAAC;;;;;;CAEtB;AAdD,gDAcC"}
@@ -0,0 +1,2 @@
1
+ import { CrdtMessage, ToolDb } from "..";
2
+ export default function handleCrdt(this: ToolDb, message: CrdtMessage, remotePeerId: string): void;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var __1 = require("..");
4
+ function handleCrdt(message, remotePeerId) {
5
+ var key = message.key;
6
+ this.triggerKeyListener(key, message);
7
+ // OOHH THE TYPECAST PAIN
8
+ // This works but the hacking is awful, we need a better solution for storing the crdts
9
+ var savedDoc = (0, __1.base64ToBinaryDocument)(message.doc);
10
+ this.store.put(key + ".crdt", savedDoc, function (err, data) {
11
+ //
12
+ });
13
+ }
14
+ exports.default = handleCrdt;
15
+ //# sourceMappingURL=handleCrdt%20copy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleCrdt copy.js","sourceRoot":"","sources":["../../src/messageHandlers/handleCrdt copy.ts"],"names":[],"mappings":";;AAAA,wBAAiE;AAEjE,SAAwB,UAAU,CAEhC,OAAoB,EACpB,YAAoB;IAEpB,IAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACxB,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAEtC,yBAAyB;IACzB,uFAAuF;IACvF,IAAM,QAAQ,GAAG,IAAA,0BAAsB,EAAC,OAAO,CAAC,GAAG,CAAQ,CAAC;IAC5D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAI,GAAG,UAAO,EAAE,QAAQ,EAAE,UAAC,GAAG,EAAE,IAAI;QAChD,EAAE;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAdD,6BAcC"}
@@ -0,0 +1,2 @@
1
+ import { CrdtMessage, ToolDb } from "..";
2
+ export default function handleCrdt(this: ToolDb, message: CrdtMessage, remotePeerId: string): void;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var __1 = require("..");
4
+ function handleCrdt(message, remotePeerId) {
5
+ var key = message.key;
6
+ this.triggerKeyListener(key, message);
7
+ // OOHH THE TYPECAST PAIN
8
+ // This works but the hacking is awful, we need a better solution for storing the crdts
9
+ var savedDoc = (0, __1.base64ToBinaryDocument)(message.doc);
10
+ this.store.put(key + ".crdt", savedDoc, function (err, data) {
11
+ //
12
+ });
13
+ }
14
+ exports.default = handleCrdt;
15
+ //# sourceMappingURL=handleCrdt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleCrdt.js","sourceRoot":"","sources":["../../src/messageHandlers/handleCrdt.ts"],"names":[],"mappings":";;AAAA,wBAAiE;AAEjE,SAAwB,UAAU,CAEhC,OAAoB,EACpB,YAAoB;IAEpB,IAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACxB,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAEtC,yBAAyB;IACzB,uFAAuF;IACvF,IAAM,QAAQ,GAAG,IAAA,0BAAsB,EAAC,OAAO,CAAC,GAAG,CAAQ,CAAC;IAC5D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAI,GAAG,UAAO,EAAE,QAAQ,EAAE,UAAC,GAAG,EAAE,IAAI;QAChD,EAAE;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAdD,6BAcC"}
@@ -0,0 +1,2 @@
1
+ import { CrdtGetMessage, ToolDb } from "..";
2
+ export default function handleCrdtGet(this: ToolDb, message: CrdtGetMessage, remotePeerId: string): void;
@@ -0,0 +1,22 @@
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 automerge_1 = __importDefault(require("automerge"));
7
+ var __1 = require("..");
8
+ function handleCrdtGet(message, remotePeerId) {
9
+ var _this = this;
10
+ this.loadCrdtDocument(message.key).then(function (currentDoc) {
11
+ var saved = automerge_1.default.save(currentDoc || automerge_1.default.init());
12
+ _this.websockets.sendToClientId(remotePeerId, {
13
+ type: "crdt",
14
+ id: message.id,
15
+ key: message.key,
16
+ to: [],
17
+ doc: (0, __1.uint8ToBase64)(saved),
18
+ });
19
+ });
20
+ }
21
+ exports.default = handleCrdtGet;
22
+ //# sourceMappingURL=handleCrdtGet%20copy.js.map