tool-db 1.0.10 → 1.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -12
- package/dist/customGun.d.ts +1 -1
- package/dist/customGun.js +52 -22
- package/dist/customGun.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +1 -3
- package/dist/index.js.map +1 -1
- package/dist/toolDbClient.d.ts +20 -1
- package/dist/toolDbClient.js +39 -3
- package/dist/toolDbClient.js.map +1 -1
- package/dist/toolDbGet.js +6 -9
- package/dist/toolDbGet.js.map +1 -1
- package/dist/toolDbSignIn.js +1 -1
- package/dist/toolDbSignIn.js.map +1 -1
- package/dist/toolDbVerificationWrapper.d.ts +2 -0
- package/dist/{customPut.js → toolDbVerificationWrapper.js} +37 -53
- package/dist/toolDbVerificationWrapper.js.map +1 -0
- package/dist/types/message.d.ts +1 -0
- package/dist/types/message.js +1 -0
- package/dist/types/message.js.map +1 -1
- package/package.json +8 -10
- package/dist/customPut.d.ts +0 -1
- package/dist/customPut.js.map +0 -1
- package/dist/gunReplacements.d.ts +0 -1
- package/dist/gunReplacements.js +0 -253
- package/dist/gunReplacements.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,28 +1,66 @@
|
|
|
1
|
-
# Tool
|
|
1
|
+
# Tool Db
|
|
2
2
|
|
|
3
3
|
## WIP
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
ToolDb is a peer-to-peer model for a decentralized database, built on top of Gun, by Mark Nadal: https://gun.eco/
|
|
6
6
|
|
|
7
7
|
Base usage;
|
|
8
|
-
```
|
|
9
|
-
// Namespace of our app, make sure its unique
|
|
10
|
-
const client = new ToolChainClient(host, debug?);
|
|
11
8
|
|
|
12
|
-
|
|
9
|
+
Initializing;
|
|
10
|
+
```
|
|
11
|
+
const client = new ToolChainClient([gunPeers]);
|
|
12
|
+
```
|
|
13
|
+
Connects to the selected gun db peers. These can be normal gun relays or tool-db for a tighter protocol enforcement.
|
|
13
14
|
|
|
15
|
+
You can create a user, sign in or create a random set of keys for anonymous usage;
|
|
16
|
+
```
|
|
14
17
|
client.signUp(user, pass).then();
|
|
15
|
-
|
|
16
18
|
client.signIn(user, pass).then(keys);
|
|
17
|
-
|
|
18
19
|
client.anonSignIn().then();
|
|
20
|
+
```
|
|
19
21
|
|
|
22
|
+
To retrieve your public key; (only if logged in)
|
|
23
|
+
```
|
|
20
24
|
client.getPubKey().then(pubKey);
|
|
25
|
+
// or
|
|
26
|
+
client.user?.pubKey
|
|
27
|
+
```
|
|
21
28
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
29
|
+
You can check if you are correctly logged in by checking if the user field exists or not;
|
|
30
|
+
```
|
|
31
|
+
if (client.user) {
|
|
32
|
+
// Ok!
|
|
33
|
+
}
|
|
34
|
+
```
|
|
26
35
|
|
|
36
|
+
|
|
37
|
+
Simple put and get:
|
|
38
|
+
```
|
|
39
|
+
client.getData("key", userNamespaced?, timeout?).then();
|
|
27
40
|
client.putData("key", value, userNamespaced?).then();
|
|
28
41
|
```
|
|
42
|
+
UserNamespaced will check for the user namespace, so it will transform the key used to ":user.key", This way all peers reading this entry will understand the key belongs to this user and will enforce the verifications required to namespaced entries.
|
|
43
|
+
|
|
44
|
+
To listen for a value you can set up a listener on a key. Beware the listener will check for all keys *starting with* the supplied key, so for example, if you use "value." as your listener if will execute on every key that starts with "value.". This is useful for checking against a public key or use namespace.
|
|
45
|
+
```
|
|
46
|
+
const listenerId = client.addKeyListener("value", console.log);
|
|
47
|
+
client.removeKeyListener(listenerId);
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Similarly, for using a custom verification on a key (or subset of keys) you can create a new function that returns a Promise boolean;
|
|
51
|
+
```
|
|
52
|
+
const validateDn = (msg) => {
|
|
53
|
+
return new Promise((resolve) => {
|
|
54
|
+
console.log("Custom verif", msg);
|
|
55
|
+
if (typeof msg.value === "string") resolve(true);
|
|
56
|
+
else resolve(false);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const validatorId = client.addCustomVerification("value", validateFn);
|
|
61
|
+
|
|
62
|
+
// You will not usually need to remove validators, but we provide a function anyway.
|
|
63
|
+
client.removeCustomVerification(validatorId);
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Keep in mind validators should run on all client nodes, and even though the nodes not running your validator will be able to store and relay invalid messages its up to each client and peer to check these messages on arrival. ToolDb does this automatically when using the custom validation, but its important to make sure every peer runs the same code to avoid issues.
|
package/dist/customGun.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export default function customGun(
|
|
1
|
+
export default function customGun(toolDb: any, _gun?: any): void;
|
package/dist/customGun.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/* eslint-disable */
|
|
3
2
|
// @ts-nocheck
|
|
4
3
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
5
4
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
@@ -49,7 +48,7 @@ function verification(msg) {
|
|
|
49
48
|
if (!msg.put) return [3 /*break*/, 2];
|
|
50
49
|
keys = Object.keys(msg.put);
|
|
51
50
|
promises = keys.map(function (key) { return __awaiter(_this, void 0, void 0, function () {
|
|
52
|
-
var data;
|
|
51
|
+
var data, toolDb;
|
|
53
52
|
var _a;
|
|
54
53
|
return __generator(this, function (_b) {
|
|
55
54
|
switch (_b.label) {
|
|
@@ -63,7 +62,8 @@ function verification(msg) {
|
|
|
63
62
|
//
|
|
64
63
|
}
|
|
65
64
|
}
|
|
66
|
-
|
|
65
|
+
toolDb = (window || global).toolDb;
|
|
66
|
+
return [4 /*yield*/, toolDb.verify(data)];
|
|
67
67
|
case 1: return [2 /*return*/, _b.sent()];
|
|
68
68
|
}
|
|
69
69
|
});
|
|
@@ -74,12 +74,13 @@ function verification(msg) {
|
|
|
74
74
|
if (verifiedList.filter(function (r) { return r === _1.VerifyResult.Verified; }).length ===
|
|
75
75
|
keys.length) {
|
|
76
76
|
this.to.next(msg);
|
|
77
|
-
console.log("Verification OK",
|
|
77
|
+
// console.log("Verification > OK", msg);
|
|
78
78
|
return [2 /*return*/];
|
|
79
79
|
}
|
|
80
|
-
console.log("Verification NOT OK",
|
|
80
|
+
// console.log("Verification > NOT OK", msg);
|
|
81
81
|
return [2 /*return*/];
|
|
82
82
|
case 2:
|
|
83
|
+
// console.log("Verification > Skipped", msg);
|
|
83
84
|
this.to.next(msg);
|
|
84
85
|
_a.label = 3;
|
|
85
86
|
case 3: return [2 /*return*/];
|
|
@@ -87,25 +88,54 @@ function verification(msg) {
|
|
|
87
88
|
});
|
|
88
89
|
});
|
|
89
90
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
91
|
+
function putCheck(msg) {
|
|
92
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
93
|
+
var key_1, data_1, toolDb, verify;
|
|
94
|
+
return __generator(this, function (_a) {
|
|
95
|
+
switch (_a.label) {
|
|
96
|
+
case 0:
|
|
97
|
+
if (!msg.put) return [3 /*break*/, 2];
|
|
98
|
+
key_1 = msg.put["#"];
|
|
99
|
+
data_1 = {};
|
|
100
|
+
try {
|
|
101
|
+
data_1 = JSON.parse(msg.put[":"]);
|
|
102
|
+
}
|
|
103
|
+
catch (e) {
|
|
104
|
+
// console.warn(e);
|
|
105
|
+
}
|
|
106
|
+
if (!(data_1 && data_1.value)) return [3 /*break*/, 2];
|
|
107
|
+
toolDb = (window || global).toolDb;
|
|
108
|
+
return [4 /*yield*/, toolDb.verify(data_1)];
|
|
109
|
+
case 1:
|
|
110
|
+
verify = _a.sent();
|
|
111
|
+
if (verify !== _1.VerifyResult.Verified) {
|
|
112
|
+
return [2 /*return*/];
|
|
113
|
+
}
|
|
114
|
+
// Check listeners
|
|
115
|
+
toolDb._keyListeners.forEach(function (listener) {
|
|
116
|
+
if (key_1.startsWith(listener.key)) {
|
|
117
|
+
if (listener.timeout)
|
|
118
|
+
clearTimeout(listener.timeout);
|
|
119
|
+
listener.timeout = setTimeout(function () {
|
|
120
|
+
listener.fn(data_1.value);
|
|
121
|
+
listener.timeout = null;
|
|
122
|
+
}, 250);
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
_a.label = 2;
|
|
126
|
+
case 2:
|
|
127
|
+
this.to.next(msg);
|
|
128
|
+
return [2 /*return*/];
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
function customGun(toolDb, _gun) {
|
|
134
|
+
if (_gun === void 0) { _gun = undefined; }
|
|
135
|
+
(_gun || Gun).on("create", function (ctx) {
|
|
106
136
|
ctx.on("in", verification);
|
|
107
137
|
ctx.on("out", verification);
|
|
108
|
-
|
|
138
|
+
ctx.on("put", putCheck);
|
|
109
139
|
this.to.next(ctx);
|
|
110
140
|
});
|
|
111
141
|
}
|
package/dist/customGun.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"customGun.js","sourceRoot":"","sources":["../src/customGun.ts"],"names":[],"mappings":";AAAA,
|
|
1
|
+
{"version":3,"file":"customGun.js","sourceRoot":"","sources":["../src/customGun.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -32,5 +32,4 @@ export { default as loadKeysComb } from "./utils/crypto/loadKeysComb";
|
|
|
32
32
|
export { default as saveKeysComb } from "./utils/crypto/saveKeysComb";
|
|
33
33
|
export { default as verifyData } from "./utils/crypto/verifyData";
|
|
34
34
|
export { default as customGun } from "./customGun";
|
|
35
|
-
export { default as ToolDbService } from "./toolDbService";
|
|
36
35
|
export { default as ToolDbClient } from "./toolDbClient";
|
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.ToolDbClient = exports.
|
|
16
|
+
exports.ToolDbClient = exports.customGun = 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.verifyMessage = exports.uint8ToBase64 = exports.toBase64 = exports.textRandom = exports.stringToArrayBuffer = exports.randomAnimal = exports.generateIv = exports.fromBase64 = exports.base64ToUint8 = 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);
|
|
@@ -96,8 +96,6 @@ var verifyData_1 = require("./utils/crypto/verifyData");
|
|
|
96
96
|
Object.defineProperty(exports, "verifyData", { enumerable: true, get: function () { return __importDefault(verifyData_1).default; } });
|
|
97
97
|
var customGun_1 = require("./customGun");
|
|
98
98
|
Object.defineProperty(exports, "customGun", { enumerable: true, get: function () { return __importDefault(customGun_1).default; } });
|
|
99
|
-
var toolDbService_1 = require("./toolDbService");
|
|
100
|
-
Object.defineProperty(exports, "ToolDbService", { enumerable: true, get: function () { return __importDefault(toolDbService_1).default; } });
|
|
101
99
|
var toolDbClient_1 = require("./toolDbClient");
|
|
102
100
|
Object.defineProperty(exports, "ToolDbClient", { enumerable: true, get: function () { return __importDefault(toolDbClient_1).default; } });
|
|
103
101
|
//# 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,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;AAEjC,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,yCAAmD;AAA1C,uHAAA,OAAO,OAAa;AAE7B
|
|
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,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;AAEjC,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,yCAAmD;AAA1C,uHAAA,OAAO,OAAa;AAE7B,+CAAyD;AAAhD,6HAAA,OAAO,OAAgB"}
|
package/dist/toolDbClient.d.ts
CHANGED
|
@@ -1,9 +1,21 @@
|
|
|
1
|
+
import { IGunChainReference } from "gun/types/chain";
|
|
2
|
+
import { GraphEntryValue } from ".";
|
|
1
3
|
import toolDbAnonSignIn from "./toolDbAnonSignIn";
|
|
2
4
|
import toolDbGet from "./toolDbGet";
|
|
3
5
|
import toolDbGetPubKey from "./toolDbGetPubKey";
|
|
4
6
|
import toolDbPut from "./toolDbPut";
|
|
5
7
|
import toolDbSignIn from "./toolDbSignIn";
|
|
6
8
|
import toolDbSignUp from "./toolDbSignUp";
|
|
9
|
+
import toolDbVerificationWrapper from "./toolDbVerificationWrapper";
|
|
10
|
+
interface Listener {
|
|
11
|
+
key: string;
|
|
12
|
+
timeout: number | null;
|
|
13
|
+
fn: (msg: any) => void;
|
|
14
|
+
}
|
|
15
|
+
interface Verificator<T> {
|
|
16
|
+
key: string;
|
|
17
|
+
fn: (msg: GraphEntryValue<T>) => Promise<boolean>;
|
|
18
|
+
}
|
|
7
19
|
declare class ToolDbClient {
|
|
8
20
|
debug: boolean;
|
|
9
21
|
private _gun;
|
|
@@ -13,6 +25,13 @@ declare class ToolDbClient {
|
|
|
13
25
|
signIn: typeof toolDbSignIn;
|
|
14
26
|
anonSignIn: typeof toolDbAnonSignIn;
|
|
15
27
|
signUp: typeof toolDbSignUp;
|
|
28
|
+
verify: typeof toolDbVerificationWrapper;
|
|
29
|
+
_keyListeners: (Listener | null)[];
|
|
30
|
+
addKeyListener: <T = any>(key: string, fn: (msg: T) => void) => number;
|
|
31
|
+
removeKeyListener: (id: number) => void;
|
|
32
|
+
_customVerificator: (Verificator<any> | null)[];
|
|
33
|
+
addCustomVerification: <T = any>(key: string, fn: (msg: GraphEntryValue<T>) => Promise<boolean>) => number;
|
|
34
|
+
removeCustomVerification: (id: number) => void;
|
|
16
35
|
user: {
|
|
17
36
|
keys: {
|
|
18
37
|
signKeys: CryptoKeyPair;
|
|
@@ -22,6 +41,6 @@ declare class ToolDbClient {
|
|
|
22
41
|
pubKey: string;
|
|
23
42
|
} | undefined;
|
|
24
43
|
constructor(peers: string[]);
|
|
25
|
-
get gun():
|
|
44
|
+
get gun(): IGunChainReference<any, any, false>;
|
|
26
45
|
}
|
|
27
46
|
export default ToolDbClient;
|
package/dist/toolDbClient.js
CHANGED
|
@@ -3,7 +3,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
var gun_1 = __importDefault(require("gun"));
|
|
7
6
|
var customGun_1 = __importDefault(require("./customGun"));
|
|
8
7
|
var toolDbAnonSignIn_1 = __importDefault(require("./toolDbAnonSignIn"));
|
|
9
8
|
var toolDbGet_1 = __importDefault(require("./toolDbGet"));
|
|
@@ -11,8 +10,11 @@ var toolDbGetPubKey_1 = __importDefault(require("./toolDbGetPubKey"));
|
|
|
11
10
|
var toolDbPut_1 = __importDefault(require("./toolDbPut"));
|
|
12
11
|
var toolDbSignIn_1 = __importDefault(require("./toolDbSignIn"));
|
|
13
12
|
var toolDbSignUp_1 = __importDefault(require("./toolDbSignUp"));
|
|
13
|
+
var toolDbVerificationWrapper_1 = __importDefault(require("./toolDbVerificationWrapper"));
|
|
14
|
+
var Gun = require("gun");
|
|
14
15
|
var ToolDbClient = /** @class */ (function () {
|
|
15
16
|
function ToolDbClient(peers) {
|
|
17
|
+
var _this = this;
|
|
16
18
|
this.debug = false;
|
|
17
19
|
this.getData = toolDbGet_1.default;
|
|
18
20
|
this.putData = toolDbPut_1.default;
|
|
@@ -20,9 +22,43 @@ var ToolDbClient = /** @class */ (function () {
|
|
|
20
22
|
this.signIn = toolDbSignIn_1.default;
|
|
21
23
|
this.anonSignIn = toolDbAnonSignIn_1.default;
|
|
22
24
|
this.signUp = toolDbSignUp_1.default;
|
|
25
|
+
this.verify = toolDbVerificationWrapper_1.default;
|
|
26
|
+
this._keyListeners = [];
|
|
27
|
+
this.addKeyListener = function (key, fn) {
|
|
28
|
+
var newListener = {
|
|
29
|
+
key: key,
|
|
30
|
+
timeout: null,
|
|
31
|
+
fn: fn,
|
|
32
|
+
};
|
|
33
|
+
_this._keyListeners.push(newListener);
|
|
34
|
+
return _this._keyListeners.length;
|
|
35
|
+
};
|
|
36
|
+
this.removeKeyListener = function (id) {
|
|
37
|
+
var _a, _b;
|
|
38
|
+
if ((_a = _this._keyListeners[id]) === null || _a === void 0 ? void 0 : _a.timeout) {
|
|
39
|
+
clearTimeout(((_b = _this._keyListeners[id]) === null || _b === void 0 ? void 0 : _b.timeout) || undefined);
|
|
40
|
+
}
|
|
41
|
+
_this._keyListeners[id] = null;
|
|
42
|
+
};
|
|
43
|
+
this._customVerificator = [];
|
|
44
|
+
this.addCustomVerification = function (key, fn) {
|
|
45
|
+
var newListener = {
|
|
46
|
+
key: key,
|
|
47
|
+
fn: fn,
|
|
48
|
+
};
|
|
49
|
+
_this._customVerificator.push(newListener);
|
|
50
|
+
return _this._customVerificator.length;
|
|
51
|
+
};
|
|
52
|
+
this.removeCustomVerification = function (id) {
|
|
53
|
+
_this._customVerificator[id] = null;
|
|
54
|
+
};
|
|
23
55
|
this.user = undefined;
|
|
24
|
-
(0, customGun_1.default)();
|
|
25
|
-
|
|
56
|
+
(0, customGun_1.default)(this, Gun);
|
|
57
|
+
if (typeof window !== "undefined")
|
|
58
|
+
window.toolDb = this;
|
|
59
|
+
if (typeof global !== "undefined")
|
|
60
|
+
global.toolDb = this;
|
|
61
|
+
this._gun = new Gun({
|
|
26
62
|
peers: peers,
|
|
27
63
|
});
|
|
28
64
|
}
|
package/dist/toolDbClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolDbClient.js","sourceRoot":"","sources":["../src/toolDbClient.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"toolDbClient.js","sourceRoot":"","sources":["../src/toolDbClient.ts"],"names":[],"mappings":";;;;;AAGA,0DAAoC;AACpC,wEAAkD;AAClD,0DAAoC;AACpC,sEAAgD;AAChD,0DAAoC;AACpC,gEAA0C;AAC1C,gEAA0C;AAC1C,0FAAoE;AAEpE,IAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;AAa3B;IAqEE,sBAAY,KAAe;QAA3B,iBASC;QA7EM,UAAK,GAAG,KAAK,CAAC;QAId,YAAO,GAAG,mBAAS,CAAC;QAEpB,YAAO,GAAG,mBAAS,CAAC;QAEpB,cAAS,GAAG,yBAAe,CAAC;QAE5B,WAAM,GAAG,sBAAY,CAAC;QAEtB,eAAU,GAAG,0BAAgB,CAAC;QAE9B,WAAM,GAAG,sBAAY,CAAC;QAEtB,WAAM,GAAG,mCAAyB,CAAC;QAEnC,kBAAa,GAAwB,EAAE,CAAC;QAExC,mBAAc,GAAG,UAAU,GAAW,EAAE,EAAoB;YACjE,IAAM,WAAW,GAAa;gBAC5B,GAAG,KAAA;gBACH,OAAO,EAAE,IAAI;gBACb,EAAE,IAAA;aACH,CAAC;YAEF,KAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACrC,OAAO,KAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QACnC,CAAC,CAAC;QAEK,sBAAiB,GAAG,UAAC,EAAU;;YACpC,IAAI,MAAA,KAAI,CAAC,aAAa,CAAC,EAAE,CAAC,0CAAE,OAAO,EAAE;gBACnC,YAAY,CAAC,CAAA,MAAA,KAAI,CAAC,aAAa,CAAC,EAAE,CAAC,0CAAE,OAAO,KAAI,SAAS,CAAC,CAAC;aAC5D;YACD,KAAI,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;QAChC,CAAC,CAAC;QAEK,uBAAkB,GAAgC,EAAE,CAAC;QAErD,0BAAqB,GAAG,UAC7B,GAAW,EACX,EAAiD;YAEjD,IAAM,WAAW,GAAmB;gBAClC,GAAG,KAAA;gBACH,EAAE,IAAA;aACH,CAAC;YAEF,KAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC1C,OAAO,KAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;QACxC,CAAC,CAAC;QAEK,6BAAwB,GAAG,UAAC,EAAU;YAC3C,KAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;QACrC,CAAC,CAAC;QAEK,SAAI,GAAG,SAST,CAAC;QAGJ,IAAA,mBAAS,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAErB,IAAI,OAAO,MAAM,KAAK,WAAW;YAAG,MAAc,CAAC,MAAM,GAAG,IAAI,CAAC;QACjE,IAAI,OAAO,MAAM,KAAK,WAAW;YAAG,MAAc,CAAC,MAAM,GAAG,IAAI,CAAC;QAEjE,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC;YAClB,KAAK,OAAA;SACN,CAAC,CAAC;IACL,CAAC;IAED,sBAAI,6BAAG;aAAP;YACE,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,CAAC;;;OAAA;IACH,mBAAC;AAAD,CAAC,AAnFD,IAmFC;AAED,kBAAe,YAAY,CAAC"}
|
package/dist/toolDbGet.js
CHANGED
|
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
10
10
|
function toolDbGet(key, userNamespaced, timeoutMs) {
|
|
11
11
|
var _this = this;
|
|
12
12
|
if (userNamespaced === void 0) { userNamespaced = false; }
|
|
13
|
-
if (timeoutMs === void 0) { timeoutMs =
|
|
13
|
+
if (timeoutMs === void 0) { timeoutMs = 1000; }
|
|
14
14
|
return new Promise(function (resolve, reject) {
|
|
15
15
|
var _a, _b;
|
|
16
16
|
if (userNamespaced && ((_a = _this.user) === null || _a === void 0 ? void 0 : _a.pubKey) === undefined) {
|
|
@@ -22,27 +22,24 @@ function toolDbGet(key, userNamespaced, timeoutMs) {
|
|
|
22
22
|
console.log("GET > " + finalKey);
|
|
23
23
|
}
|
|
24
24
|
var first = true;
|
|
25
|
+
var timeout = setTimeout(function () {
|
|
26
|
+
resolve(null);
|
|
27
|
+
}, timeoutMs);
|
|
25
28
|
_this.gun.get(finalKey, function (ack) {
|
|
26
29
|
if (ack["@"] || ack.put) {
|
|
27
30
|
var d = ack.put;
|
|
28
31
|
if ((d && first) || (d && !first)) {
|
|
29
|
-
if (
|
|
30
|
-
resolve(null);
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
32
|
+
if (d.v) {
|
|
33
33
|
try {
|
|
34
34
|
var data = JSON.parse(d.v);
|
|
35
|
+
clearTimeout(timeout);
|
|
35
36
|
resolve(data.value);
|
|
36
37
|
}
|
|
37
38
|
catch (e) {
|
|
38
39
|
console.error(e);
|
|
39
|
-
resolve(null);
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
-
if (!d && !first) {
|
|
44
|
-
resolve(null);
|
|
45
|
-
}
|
|
46
43
|
first = false;
|
|
47
44
|
}
|
|
48
45
|
});
|
package/dist/toolDbGet.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolDbGet.js","sourceRoot":"","sources":["../src/toolDbGet.ts"],"names":[],"mappings":";;AAEA;;;;;;GAMG;AACH,SAAwB,SAAS,CAE/B,GAAW,EACX,cAAsB,EACtB,SAAgB;IAJlB,iBAwCC;IArCC,+BAAA,EAAA,sBAAsB;IACtB,0BAAA,EAAA,gBAAgB;IAEhB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;;QACjC,IAAI,cAAc,IAAI,CAAA,MAAA,KAAI,CAAC,IAAI,0CAAE,MAAM,MAAK,SAAS,EAAE;YACrD,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;YACjD,OAAO;SACR;QACD,IAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,OAAI,MAAA,KAAI,CAAC,IAAI,0CAAE,MAAM,UAAI,GAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QACvE,IAAI,KAAI,CAAC,KAAK,EAAE;YACd,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;SAClC;QAED,IAAI,KAAK,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"toolDbGet.js","sourceRoot":"","sources":["../src/toolDbGet.ts"],"names":[],"mappings":";;AAEA;;;;;;GAMG;AACH,SAAwB,SAAS,CAE/B,GAAW,EACX,cAAsB,EACtB,SAAgB;IAJlB,iBAwCC;IArCC,+BAAA,EAAA,sBAAsB;IACtB,0BAAA,EAAA,gBAAgB;IAEhB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;;QACjC,IAAI,cAAc,IAAI,CAAA,MAAA,KAAI,CAAC,IAAI,0CAAE,MAAM,MAAK,SAAS,EAAE;YACrD,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;YACjD,OAAO;SACR;QACD,IAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,OAAI,MAAA,KAAI,CAAC,IAAI,0CAAE,MAAM,UAAI,GAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QACvE,IAAI,KAAI,CAAC,KAAK,EAAE;YACd,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;SAClC;QAED,IAAI,KAAK,GAAG,IAAI,CAAC;QAEjB,IAAM,OAAO,GAAG,UAAU,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,EAAE,SAAS,CAAC,CAAC;QAEd,KAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,GAAQ;YAC9B,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE;gBACvB,IAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;gBAClB,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;oBACjC,IAAI,CAAC,CAAC,CAAC,EAAE;wBACP,IAAI;4BACF,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC7B,YAAY,CAAC,OAAO,CAAC,CAAC;4BACtB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;yBACrB;wBAAC,OAAO,CAAC,EAAE;4BACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;yBAClB;qBACF;iBACF;gBACD,KAAK,GAAG,KAAK,CAAC;aACf;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAxCD,4BAwCC"}
|
package/dist/toolDbSignIn.js
CHANGED
|
@@ -60,7 +60,7 @@ var sha256_1 = __importDefault(require("./utils/sha256"));
|
|
|
60
60
|
function toolDbSignIn(user, password) {
|
|
61
61
|
var _this = this;
|
|
62
62
|
return new Promise(function (resolve, reject) {
|
|
63
|
-
_this.getData("==" + user)
|
|
63
|
+
_this.getData("==" + user, false, 5000)
|
|
64
64
|
.then(function (_user) {
|
|
65
65
|
if (!_user) {
|
|
66
66
|
reject(Error("Unvalid user data"));
|
package/dist/toolDbSignIn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolDbSignIn.js","sourceRoot":"","sources":["../src/toolDbSignIn.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mFAA6D;AAC7D,mFAA6D;AAC7D,uEAAiD;AACjD,wEAAkD;AAClD,oEAA8C;AAC9C,kEAA4C;AAC5C,0DAAoC;AAKpC,SAAwB,YAAY,CAElC,IAAY,EACZ,QAAgB;IAHlB,iBAgHC;IArGC,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,KAAI,CAAC,OAAO,CAAe,OAAK,IAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"toolDbSignIn.js","sourceRoot":"","sources":["../src/toolDbSignIn.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/* eslint-disable */
|
|
3
|
-
// @ts-nocheck
|
|
4
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
5
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
6
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -39,58 +37,44 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
39
37
|
};
|
|
40
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
39
|
var _1 = require(".");
|
|
42
|
-
function
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
if (
|
|
53
|
-
|
|
40
|
+
function toolDbVerificationWrapper(data) {
|
|
41
|
+
var _this = this;
|
|
42
|
+
// This wrapper function adds our custom verification functions to all messages.
|
|
43
|
+
return new Promise(function (resolve, reject) {
|
|
44
|
+
(0, _1.verifyMessage)(data).then(function (verified) { return __awaiter(_this, void 0, void 0, function () {
|
|
45
|
+
var skipCustom_1;
|
|
46
|
+
return __generator(this, function (_a) {
|
|
47
|
+
if (verified) {
|
|
48
|
+
skipCustom_1 = true;
|
|
49
|
+
this._customVerificator.forEach(function (listener) {
|
|
50
|
+
if (listener && data.key.startsWith(listener.key)) {
|
|
51
|
+
skipCustom_1 = false;
|
|
52
|
+
listener
|
|
53
|
+
.fn(data)
|
|
54
|
+
.then(function (verified) {
|
|
55
|
+
if (verified) {
|
|
56
|
+
resolve(_1.VerifyResult.Verified);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
resolve(_1.VerifyResult.CustomVerificationFailed);
|
|
60
|
+
}
|
|
61
|
+
})
|
|
62
|
+
.catch(function (e) {
|
|
63
|
+
resolve(_1.VerifyResult.CustomVerificationFailed);
|
|
64
|
+
});
|
|
54
65
|
}
|
|
55
|
-
|
|
66
|
+
});
|
|
67
|
+
if (skipCustom_1) {
|
|
68
|
+
resolve(verified);
|
|
56
69
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}
|
|
65
|
-
return [4 /*yield*/, (0, _1.verifyMessage)(data)];
|
|
66
|
-
case 1:
|
|
67
|
-
verified = _a.sent();
|
|
68
|
-
console.log("verified?", verified, data);
|
|
69
|
-
if (verified === _1.VerifyResult.Verified) {
|
|
70
|
-
to.next(msg);
|
|
71
|
-
}
|
|
72
|
-
return [2 /*return*/];
|
|
73
|
-
case 2:
|
|
74
|
-
to.next(msg);
|
|
75
|
-
return [2 /*return*/];
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
function signature(msg) {
|
|
81
|
-
if (msg.user) {
|
|
82
|
-
return this.to.next(msg);
|
|
83
|
-
}
|
|
84
|
-
var ctx = this.as;
|
|
85
|
-
msg.user = ctx.user;
|
|
86
|
-
security.call(this, msg);
|
|
87
|
-
}
|
|
88
|
-
function customGun(gun) {
|
|
89
|
-
gun.on("opt", function (ctx) {
|
|
90
|
-
ctx.on("in", security, ctx);
|
|
91
|
-
ctx.on("out", signature, ctx);
|
|
92
|
-
this.to.next(ctx);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
resolve(_1.VerifyResult.InvalidVerification);
|
|
73
|
+
}
|
|
74
|
+
return [2 /*return*/];
|
|
75
|
+
});
|
|
76
|
+
}); });
|
|
93
77
|
});
|
|
94
78
|
}
|
|
95
|
-
exports.default =
|
|
96
|
-
//# sourceMappingURL=
|
|
79
|
+
exports.default = toolDbVerificationWrapper;
|
|
80
|
+
//# sourceMappingURL=toolDbVerificationWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolDbVerificationWrapper.js","sourceRoot":"","sources":["../src/toolDbVerificationWrapper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sBAA+E;AAE/E,SAAwB,yBAAyB,CAE/C,IAA0B;IAF5B,iBAmCC;IA/BC,gFAAgF;IAChF,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,IAAA,gBAAa,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAO,QAAQ;;;gBACtC,IAAI,QAAQ,EAAE;oBACR,eAAa,IAAI,CAAC;oBACtB,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,UAAC,QAAQ;wBACvC,IAAI,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;4BACjD,YAAU,GAAG,KAAK,CAAC;4BACnB,QAAQ;iCACL,EAAE,CAAC,IAAI,CAAC;iCACR,IAAI,CAAC,UAAC,QAAQ;gCACb,IAAI,QAAQ,EAAE;oCACZ,OAAO,CAAC,eAAY,CAAC,QAAQ,CAAC,CAAC;iCAChC;qCAAM;oCACL,OAAO,CAAC,eAAY,CAAC,wBAAwB,CAAC,CAAC;iCAChD;4BACH,CAAC,CAAC;iCACD,KAAK,CAAC,UAAC,CAAC;gCACP,OAAO,CAAC,eAAY,CAAC,wBAAwB,CAAC,CAAC;4BACjD,CAAC,CAAC,CAAC;yBACN;oBACH,CAAC,CAAC,CAAC;oBAEH,IAAI,YAAU,EAAE;wBACd,OAAO,CAAC,QAAQ,CAAC,CAAC;qBACnB;iBACF;qBAAM;oBACL,OAAO,CAAC,eAAY,CAAC,mBAAmB,CAAC,CAAC;iBAC3C;;;aACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAnCD,4CAmCC"}
|
package/dist/types/message.d.ts
CHANGED
package/dist/types/message.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.VerifyResult = void 0;
|
|
4
4
|
var VerifyResult;
|
|
5
5
|
(function (VerifyResult) {
|
|
6
|
+
VerifyResult[VerifyResult["CustomVerificationFailed"] = -8] = "CustomVerificationFailed";
|
|
6
7
|
VerifyResult[VerifyResult["InvalidData"] = -7] = "InvalidData";
|
|
7
8
|
VerifyResult[VerifyResult["InvalidVerification"] = -6] = "InvalidVerification";
|
|
8
9
|
VerifyResult[VerifyResult["InvalidTimestamp"] = -5] = "InvalidTimestamp";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":";;;AAAA,IAAY,
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":";;;AAAA,IAAY,YAUX;AAVD,WAAY,YAAY;IACtB,wFAA6B,CAAA;IAC7B,8DAAgB,CAAA;IAChB,8EAAwB,CAAA;IACxB,wEAAqB,CAAA;IACrB,oEAAmB,CAAA;IACnB,kEAAkB,CAAA;IAClB,wEAAqB,CAAA;IACrB,wEAAqB,CAAA;IACrB,uDAAY,CAAA;AACd,CAAC,EAVW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAUvB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tool-db",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.14",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A decentralized database model for p2p networks.",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -16,21 +16,14 @@
|
|
|
16
16
|
"author": "Manuel Etchegaray",
|
|
17
17
|
"license": "ISC",
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@babel/preset-env": "^7.15.0",
|
|
20
|
-
"@babel/preset-typescript": "^7.15.0",
|
|
21
19
|
"@peculiar/webcrypto": "^1.1.7",
|
|
22
20
|
"axios": "^0.21.1",
|
|
23
21
|
"babel": "^6.23.0",
|
|
24
22
|
"buffer": "^6.0.3",
|
|
25
23
|
"crypto": "^1.0.1",
|
|
26
|
-
"gun": "
|
|
27
|
-
"jest": "^27.0.6",
|
|
28
|
-
"localforage": "^1.9.0",
|
|
29
|
-
"localforage-startswith": "^1.4.0",
|
|
24
|
+
"gun": "^0.2020.1235",
|
|
30
25
|
"lodash": "^4.17.21",
|
|
31
|
-
"npm-watch": "^0.11.0"
|
|
32
|
-
"ts-node": "^10.2.0",
|
|
33
|
-
"typescript": "^4.1.2"
|
|
26
|
+
"npm-watch": "^0.11.0"
|
|
34
27
|
},
|
|
35
28
|
"devDependencies": {
|
|
36
29
|
"@types/gun": "^0.9.3",
|
|
@@ -38,6 +31,11 @@
|
|
|
38
31
|
"@types/lodash": "^4.14.172",
|
|
39
32
|
"@types/node": "^15.0.1",
|
|
40
33
|
"@typescript-eslint/eslint-plugin": "^4.29.1",
|
|
34
|
+
"@babel/preset-env": "^7.15.0",
|
|
35
|
+
"@babel/preset-typescript": "^7.15.0",
|
|
36
|
+
"jest": "^27.0.6",
|
|
37
|
+
"typescript": "^4.1.2",
|
|
38
|
+
"ts-node": "^10.2.0",
|
|
41
39
|
"eslint": "^7.32.0",
|
|
42
40
|
"eslint-config-airbnb": "^18.2.1",
|
|
43
41
|
"eslint-config-prettier": "^8.3.0",
|
package/dist/customPut.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default function customGun(gun: any): void;
|
package/dist/customPut.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"customPut.js","sourceRoot":"","sources":["../src/customPut.ts"],"names":[],"mappings":";AAAA,oBAAoB;AACpB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEd,sBAAgD;AAEhD,SAAe,QAAQ,CAAC,GAAG;;;;;;oBACrB,EAAE,GAAG,IAAI,CAAC,EAAE,EACd,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;oBACf,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;oBAC7B,IAAI,GAAG,CAAC,GAAG,EAAE;wBAEP,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBACxB,IAAI,IAAI,EAAE;4BACR,sBAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC;yBACrB;wBACD,sBAAO;qBACR;yBACG,GAAG,CAAC,GAAG,EAAP,wBAAO;oBACL,IAAI,SAAA,CAAC;oBACT,IAAI;wBACF,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;qBAC9B;oBAAC,OAAO,CAAC,EAAE;wBACV,sBAAO;qBACR;oBAEgB,qBAAM,IAAA,gBAAa,EAAC,IAAI,CAAC,EAAA;;oBAApC,QAAQ,GAAG,SAAyB;oBAC1C,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;oBACzC,IAAI,QAAQ,KAAK,eAAY,CAAC,QAAQ,EAAE;wBACtC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;qBACd;oBAED,sBAAO;;oBAET,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;;;;CACd;AAED,SAAS,SAAS,CAAC,GAAG;IACpB,IAAI,GAAG,CAAC,IAAI,EAAE;QACZ,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC1B;IACD,IAAI,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;IAClB,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACpB,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,SAAwB,SAAS,CAAC,GAAG;IACnC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG;QACzB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC5B,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC;AAND,4BAMC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default function gunReplacements(): void;
|
package/dist/gunReplacements.js
DELETED
|
@@ -1,253 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
/* eslint-disable */
|
|
4
|
-
function gunReplacements() {
|
|
5
|
-
Gun.chain.put = function (data, cb, as) {
|
|
6
|
-
console.log("PUT EXECUTED YAY");
|
|
7
|
-
// I rewrote it :)
|
|
8
|
-
var gun = this, at = gun._, root = at.root;
|
|
9
|
-
as = as || {};
|
|
10
|
-
as.root = at.root;
|
|
11
|
-
as.run || (as.run = root.once);
|
|
12
|
-
stun(as, at.id); // set a flag for reads to check if this chain is writing.
|
|
13
|
-
as.ack = as.ack || cb;
|
|
14
|
-
as.via = as.via || gun;
|
|
15
|
-
as.data = as.data || data;
|
|
16
|
-
as.soul || (as.soul = at.soul || ("string" == typeof cb && cb));
|
|
17
|
-
var s = (as.state = as.state || Gun.state());
|
|
18
|
-
if ("function" == typeof data) {
|
|
19
|
-
data(function (d) {
|
|
20
|
-
as.data = d;
|
|
21
|
-
gun.put(u, u, as);
|
|
22
|
-
});
|
|
23
|
-
return gun;
|
|
24
|
-
}
|
|
25
|
-
if (!as.soul) {
|
|
26
|
-
return get(as), gun;
|
|
27
|
-
}
|
|
28
|
-
as.$ = root.$.get(as.soul); // TODO: This may not allow user chaining and similar?
|
|
29
|
-
as.todo = [{ it: as.data, ref: as.$ }];
|
|
30
|
-
as.turn = as.turn || turn;
|
|
31
|
-
as.ran = as.ran || ran;
|
|
32
|
-
//var path = []; as.via.back(at => { at.get && path.push(at.get.slice(0,9)) }); path = path.reverse().join('.');
|
|
33
|
-
// TODO: Perf! We only need to stun chains that are being modified, not necessarily written to.
|
|
34
|
-
(function walk() {
|
|
35
|
-
var to = as.todo, at = to.pop(), d = at.it, cid = at.ref && at.ref._.id, v, k, cat, tmp, g;
|
|
36
|
-
stun(as, at.ref);
|
|
37
|
-
if ((tmp = at.todo)) {
|
|
38
|
-
k = tmp.pop();
|
|
39
|
-
d = d[k];
|
|
40
|
-
if (tmp.length) {
|
|
41
|
-
to.push(at);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
k && (to.path || (to.path = [])).push(k);
|
|
45
|
-
if (!(v = valid(d)) && !(g = Gun.is(d))) {
|
|
46
|
-
if (!Object.plain(d)) {
|
|
47
|
-
(as.ack || noop).call(as, (as.out = {
|
|
48
|
-
err: (as.err = Gun.log("Invalid data: " +
|
|
49
|
-
((d && (tmp = d.constructor) && tmp.name) || typeof d) +
|
|
50
|
-
" at " +
|
|
51
|
-
(as.via.back(function (at) {
|
|
52
|
-
at.get && tmp.push(at.get);
|
|
53
|
-
}, (tmp = [])) || tmp.join(".")) +
|
|
54
|
-
"." +
|
|
55
|
-
(to.path || []).join("."))),
|
|
56
|
-
}));
|
|
57
|
-
as.ran(as);
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
var seen = as.seen || (as.seen = []), i = seen.length;
|
|
61
|
-
while (i--) {
|
|
62
|
-
if (d === (tmp = seen[i]).it) {
|
|
63
|
-
v = d = tmp.link;
|
|
64
|
-
break;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
if (k && v) {
|
|
69
|
-
at.node = state_ify(at.node, k, s, d);
|
|
70
|
-
} // handle soul later.
|
|
71
|
-
else {
|
|
72
|
-
as.seen.push((cat = {
|
|
73
|
-
it: d,
|
|
74
|
-
link: {},
|
|
75
|
-
todo: g ? [] : Object.keys(d).sort().reverse(),
|
|
76
|
-
path: (to.path || []).slice(),
|
|
77
|
-
up: at,
|
|
78
|
-
})); // Any perf reasons to CPU schedule this .keys( ?
|
|
79
|
-
at.node = state_ify(at.node, k, s, cat.link);
|
|
80
|
-
!g && cat.todo.length && to.push(cat);
|
|
81
|
-
// ---------------
|
|
82
|
-
var id = as.seen.length;
|
|
83
|
-
(as.wait || (as.wait = {}))[id] = "";
|
|
84
|
-
tmp = (cat.ref = g ? d : k ? at.ref.get(k) : at.ref)._;
|
|
85
|
-
(tmp = (d && (d._ || "")["#"]) || tmp.soul || tmp.link)
|
|
86
|
-
? resolve({ soul: tmp })
|
|
87
|
-
: cat.ref.get(resolve, {
|
|
88
|
-
run: as.run,
|
|
89
|
-
/*hatch: 0,*/ v2020: 1,
|
|
90
|
-
out: { get: { ".": " " } },
|
|
91
|
-
}); // TODO: BUG! This should be resolve ONLY soul to prevent full data from being loaded. // Fixed now?
|
|
92
|
-
//setTimeout(function(){ if(F){ return } console.log("I HAVE NOT BEEN CALLED!", path, id, cat.ref._.id, k) }, 9000); var F; // MAKE SURE TO ADD F = 1 below!
|
|
93
|
-
function resolve(msg, eve) {
|
|
94
|
-
var end = cat.link["#"];
|
|
95
|
-
if (eve) {
|
|
96
|
-
eve.off();
|
|
97
|
-
eve.rid(msg);
|
|
98
|
-
} // TODO: Too early! Check all peers ack not found.
|
|
99
|
-
// TODO: BUG maybe? Make sure this does not pick up a link change wipe, that it uses the changign link instead.
|
|
100
|
-
var soul = end ||
|
|
101
|
-
msg.soul ||
|
|
102
|
-
(tmp = (msg.$$ || msg.$)._ || "").soul ||
|
|
103
|
-
tmp.link ||
|
|
104
|
-
((tmp = tmp.put || "")._ || "")["#"] ||
|
|
105
|
-
tmp["#"] ||
|
|
106
|
-
((tmp = msg.put || "") && msg.$$
|
|
107
|
-
? tmp["#"]
|
|
108
|
-
: (tmp["="] || tmp[":"] || "")["#"]);
|
|
109
|
-
!end && stun(as, msg.$);
|
|
110
|
-
if (!soul && !at.link["#"]) {
|
|
111
|
-
// check soul link above us
|
|
112
|
-
(at.wait || (at.wait = [])).push(function () {
|
|
113
|
-
resolve(msg, eve);
|
|
114
|
-
}); // wait
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
if (!soul) {
|
|
118
|
-
soul = [];
|
|
119
|
-
(msg.$$ || msg.$).back(function (at) {
|
|
120
|
-
if ((tmp = at.soul || at.link)) {
|
|
121
|
-
return soul.push(tmp);
|
|
122
|
-
}
|
|
123
|
-
soul.push(at.get);
|
|
124
|
-
});
|
|
125
|
-
soul = soul.reverse().join("/");
|
|
126
|
-
}
|
|
127
|
-
cat.link["#"] = soul;
|
|
128
|
-
!g &&
|
|
129
|
-
(((as.graph || (as.graph = {}))[soul] =
|
|
130
|
-
cat.node || (cat.node = { _: {} }))._["#"] = soul);
|
|
131
|
-
delete as.wait[id];
|
|
132
|
-
cat.wait &&
|
|
133
|
-
setTimeout.each(cat.wait, function (cb) {
|
|
134
|
-
cb && cb();
|
|
135
|
-
});
|
|
136
|
-
as.ran(as);
|
|
137
|
-
}
|
|
138
|
-
// ---------------
|
|
139
|
-
}
|
|
140
|
-
if (!to.length) {
|
|
141
|
-
return as.ran(as);
|
|
142
|
-
}
|
|
143
|
-
as.turn(walk);
|
|
144
|
-
})();
|
|
145
|
-
return gun;
|
|
146
|
-
};
|
|
147
|
-
function stun(as, id) {
|
|
148
|
-
if (!id) {
|
|
149
|
-
return;
|
|
150
|
-
}
|
|
151
|
-
id = (id._ || "").id || id;
|
|
152
|
-
var run = as.root.stun || (as.root.stun = { on: Gun.on }), test = {}, tmp;
|
|
153
|
-
as.stun || (as.stun = run.on("stun", function () { }));
|
|
154
|
-
if ((tmp = run.on("" + id))) {
|
|
155
|
-
tmp.the.last.next(test);
|
|
156
|
-
}
|
|
157
|
-
if (test.run >= as.run) {
|
|
158
|
-
return;
|
|
159
|
-
}
|
|
160
|
-
run.on("" + id, function (test) {
|
|
161
|
-
if (as.stun.end) {
|
|
162
|
-
this.off();
|
|
163
|
-
this.to.next(test);
|
|
164
|
-
return;
|
|
165
|
-
}
|
|
166
|
-
test.run = test.run || as.run;
|
|
167
|
-
test.stun = test.stun || as.stun;
|
|
168
|
-
return;
|
|
169
|
-
if (this.to.to) {
|
|
170
|
-
this.the.last.next(test);
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
173
|
-
test.stun = as.stun;
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
function ran(as) {
|
|
177
|
-
if (as.err) {
|
|
178
|
-
ran.end(as.stun, as.root);
|
|
179
|
-
return;
|
|
180
|
-
} // move log handle here.
|
|
181
|
-
if (as.todo.length || as.end || !Object.empty(as.wait)) {
|
|
182
|
-
return;
|
|
183
|
-
}
|
|
184
|
-
as.end = 1;
|
|
185
|
-
var cat = as.$.back(-1)._, root = cat.root, ask = cat.ask(function (ack) {
|
|
186
|
-
root.on("ack", ack);
|
|
187
|
-
if (ack.err) {
|
|
188
|
-
Gun.log(ack);
|
|
189
|
-
}
|
|
190
|
-
if (++acks > (as.acks || 0)) {
|
|
191
|
-
this.off();
|
|
192
|
-
} // Adjustable ACKs! Only 1 by default.
|
|
193
|
-
if (!as.ack) {
|
|
194
|
-
return;
|
|
195
|
-
}
|
|
196
|
-
as.ack(ack, this);
|
|
197
|
-
}, as.opt), acks = 0, stun = as.stun, tmp;
|
|
198
|
-
(tmp = function () {
|
|
199
|
-
// this is not official yet, but quick solution to hack in for now.
|
|
200
|
-
if (!stun) {
|
|
201
|
-
return;
|
|
202
|
-
}
|
|
203
|
-
ran.end(stun, root);
|
|
204
|
-
setTimeout.each(Object.keys((stun = stun.add || "")), function (cb) {
|
|
205
|
-
if ((cb = stun[cb])) {
|
|
206
|
-
cb();
|
|
207
|
-
}
|
|
208
|
-
}); // resume the stunned reads // Any perf reasons to CPU schedule this .keys( ?
|
|
209
|
-
}).hatch = tmp; // this is not official yet ^
|
|
210
|
-
//console.log(1, "PUT", as.run, as.graph);
|
|
211
|
-
as.via._.on("out", {
|
|
212
|
-
put: (as.out = as.graph),
|
|
213
|
-
opt: as.opt,
|
|
214
|
-
"#": ask,
|
|
215
|
-
_: tmp,
|
|
216
|
-
});
|
|
217
|
-
}
|
|
218
|
-
ran.end = function (stun, root) {
|
|
219
|
-
stun.end = noop; // like with the earlier id, cheaper to make this flag a function so below callbacks do not have to do an extra type check.
|
|
220
|
-
if (stun.the.to === stun && stun === stun.the.last) {
|
|
221
|
-
delete root.stun;
|
|
222
|
-
}
|
|
223
|
-
stun.off();
|
|
224
|
-
};
|
|
225
|
-
function get(as) {
|
|
226
|
-
var at = as.via._, tmp;
|
|
227
|
-
as.via = as.via.back(function (at) {
|
|
228
|
-
if (at.soul || !at.get) {
|
|
229
|
-
return at.$;
|
|
230
|
-
}
|
|
231
|
-
tmp = as.data;
|
|
232
|
-
(as.data = {})[at.get] = tmp;
|
|
233
|
-
});
|
|
234
|
-
if (!as.via || !as.via._.soul) {
|
|
235
|
-
as.via = at.root.$.get(((as.data || "")._ || "")["#"] || at.$.back("opt.uuid")());
|
|
236
|
-
}
|
|
237
|
-
as.via.put(as.data, as.ack, as);
|
|
238
|
-
return;
|
|
239
|
-
if (at.get && at.back.soul) {
|
|
240
|
-
tmp = as.data;
|
|
241
|
-
as.via = at.back.$;
|
|
242
|
-
(as.data = {})[at.get] = tmp;
|
|
243
|
-
as.via.put(as.data, as.ack, as);
|
|
244
|
-
return;
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
var u, empty = {}, noop = function () { }, turn = setTimeout.turn, valid = Gun.valid, state_ify = Gun.state.ify;
|
|
248
|
-
var iife = function (fn, as) {
|
|
249
|
-
fn.call(as || empty);
|
|
250
|
-
};
|
|
251
|
-
}
|
|
252
|
-
exports.default = gunReplacements;
|
|
253
|
-
//# sourceMappingURL=gunReplacements.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gunReplacements.js","sourceRoot":"","sources":["../src/gunReplacements.ts"],"names":[],"mappings":"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"}
|