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.
- 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 -253
- 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.d.ts +1 -1
- package/dist/wss.js +14 -11
- 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,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,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,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,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,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,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
|