tool-db 1.0.22 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/README.md +71 -9
  2. package/dist/deduplicator.d.ts +19 -0
  3. package/dist/deduplicator.js +60 -0
  4. package/dist/deduplicator.js.map +1 -0
  5. package/dist/index.d.ts +4 -2
  6. package/dist/index.js +9 -5
  7. package/dist/index.js.map +1 -1
  8. package/dist/loadCrdtDocument.d.ts +3 -0
  9. package/dist/loadCrdtDocument.js +43 -0
  10. package/dist/loadCrdtDocument.js.map +1 -0
  11. package/dist/server.d.ts +1 -0
  12. package/dist/server.js +12 -0
  13. package/dist/server.js.map +1 -0
  14. package/dist/shared.js +0 -1
  15. package/dist/shared.js.map +1 -1
  16. package/dist/toolDbAnonSignIn.d.ts +2 -2
  17. package/dist/toolDbClientOnMessage.d.ts +2 -0
  18. package/dist/toolDbClientOnMessage.js +204 -0
  19. package/dist/toolDbClientOnMessage.js.map +1 -0
  20. package/dist/toolDbCrdtPut.d.ts +11 -0
  21. package/dist/toolDbCrdtPut.js +118 -0
  22. package/dist/toolDbCrdtPut.js.map +1 -0
  23. package/dist/toolDbGet.d.ts +2 -2
  24. package/dist/toolDbGet.js +46 -19
  25. package/dist/toolDbGet.js.map +1 -1
  26. package/dist/toolDbGetPubKey.d.ts +2 -2
  27. package/dist/toolDbKeysSignIn.d.ts +8 -0
  28. package/dist/toolDbKeysSignIn.js +23 -0
  29. package/dist/toolDbKeysSignIn.js.map +1 -0
  30. package/dist/toolDbPut.d.ts +3 -3
  31. package/dist/toolDbPut.js +33 -22
  32. package/dist/toolDbPut.js.map +1 -1
  33. package/dist/toolDbSignIn.d.ts +2 -2
  34. package/dist/toolDbSignIn.js +1 -1
  35. package/dist/toolDbSignIn.js.map +1 -1
  36. package/dist/toolDbSignUp.d.ts +2 -2
  37. package/dist/toolDbSignUp.js +25 -18
  38. package/dist/toolDbSignUp.js.map +1 -1
  39. package/dist/toolDbSubscribe.d.ts +8 -0
  40. package/dist/toolDbSubscribe.js +61 -0
  41. package/dist/toolDbSubscribe.js.map +1 -0
  42. package/dist/toolDbVerificationWrapper.d.ts +2 -2
  43. package/dist/toolDbVerificationWrapper.js +2 -2
  44. package/dist/toolDbVerificationWrapper.js.map +1 -1
  45. package/dist/tooldb.d.ts +85 -0
  46. package/dist/tooldb.js +164 -0
  47. package/dist/tooldb.js.map +1 -0
  48. package/dist/types/graph.d.ts +0 -9
  49. package/dist/types/message.d.ts +56 -0
  50. package/dist/types/tooldb.d.ts +10 -0
  51. package/dist/types/tooldb.js +3 -0
  52. package/dist/types/tooldb.js.map +1 -0
  53. package/dist/utils/base64ToBinaryChange.d.ts +2 -0
  54. package/dist/utils/base64ToBinaryChange.js +18 -0
  55. package/dist/utils/base64ToBinaryChange.js.map +1 -0
  56. package/dist/utils/base64ToBinaryDocument.d.ts +2 -0
  57. package/dist/utils/base64ToBinaryDocument.js +18 -0
  58. package/dist/utils/base64ToBinaryDocument.js.map +1 -0
  59. package/dist/utils/crypto/loadKeysComb.d.ts +2 -1
  60. package/dist/utils/crypto/loadKeysComb.js +19 -26
  61. package/dist/utils/crypto/loadKeysComb.js.map +1 -1
  62. package/dist/utils/getIpFromUrl.d.ts +1 -0
  63. package/dist/utils/getIpFromUrl.js +7 -0
  64. package/dist/utils/getIpFromUrl.js.map +1 -0
  65. package/dist/utils/indexedb.d.ts +5 -0
  66. package/dist/utils/indexedb.js +83 -0
  67. package/dist/utils/indexedb.js.map +1 -0
  68. package/dist/utils/leveldb.d.ts +5 -0
  69. package/dist/utils/leveldb.js +47 -0
  70. package/dist/utils/leveldb.js.map +1 -0
  71. package/dist/utils/proofOfWork.js +1 -1
  72. package/dist/utils/proofOfWork.js.map +1 -1
  73. package/dist/utils/uint8ToBase64.d.ts +2 -1
  74. package/dist/utils/uint8ToBase64.js.map +1 -1
  75. package/dist/utils/verifyMessage.d.ts +3 -3
  76. package/dist/utils/verifyMessage.js +29 -12
  77. package/dist/utils/verifyMessage.js.map +1 -1
  78. package/dist/wss.d.ts +28 -0
  79. package/dist/wss.js +176 -0
  80. package/dist/wss.js.map +1 -0
  81. package/package.json +14 -11
  82. package/dist/customGun.d.ts +0 -1
  83. package/dist/customGun.js +0 -147
  84. package/dist/customGun.js.map +0 -1
  85. package/dist/toolDbClient.d.ts +0 -46
  86. package/dist/toolDbClient.js +0 -83
  87. package/dist/toolDbClient.js.map +0 -1
  88. package/dist/toolDbService.d.ts +0 -29
  89. package/dist/toolDbService.js +0 -149
  90. package/dist/toolDbService.js.map +0 -1
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (_) try {
29
+ 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;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __importDefault = (this && this.__importDefault) || function (mod) {
50
+ return (mod && mod.__esModule) ? mod : { "default": mod };
51
+ };
52
+ Object.defineProperty(exports, "__esModule", { value: true });
53
+ var _1 = require(".");
54
+ var getIpFromUrl_1 = __importDefault(require("./utils/getIpFromUrl"));
55
+ var proofOfWork_1 = __importDefault(require("./utils/proofOfWork"));
56
+ var signData_1 = __importDefault(require("./utils/signData"));
57
+ var toBase64_1 = __importDefault(require("./utils/toBase64"));
58
+ /**
59
+ * Triggers a PUT request to other peers.
60
+ * @param key key where we want to put the data at.
61
+ * @param value Data we want to any (any type)
62
+ * @param userNamespaced If this key bolongs to a user or its public. Making it private will enforce validation for our public key and signatures.
63
+ * @returns Promise<Data | null>
64
+ */
65
+ function toolDbCrdtPut(key, value, userNamespaced) {
66
+ var _this = this;
67
+ if (userNamespaced === void 0) { userNamespaced = false; }
68
+ return new Promise(function (resolve, reject) {
69
+ if (key.includes(".")) {
70
+ // Dots are used as a delimitator character between bublic keys and the key of the user's data
71
+ reject(new Error("Key cannot include dots!; " + key));
72
+ return;
73
+ }
74
+ if (!_this.user) {
75
+ reject(new Error("You need to log in before you can PUT."));
76
+ return;
77
+ }
78
+ var timestamp = new Date().getTime();
79
+ var encodedData = JSON.stringify(value.map(_1.uint8ToBase64));
80
+ var dataString = "" + encodedData + _this.user.pubKey + timestamp;
81
+ // WORK
82
+ (0, proofOfWork_1.default)(dataString, _this.options.pow)
83
+ .then(function (_a) {
84
+ var _b;
85
+ var hash = _a.hash, nonce = _a.nonce;
86
+ if ((_b = _this.user) === null || _b === void 0 ? void 0 : _b.keys) {
87
+ // Sign our value
88
+ (0, signData_1.default)(hash, _this.user.keys.signKeys.privateKey)
89
+ .then(function (signature) { return __awaiter(_this, void 0, void 0, function () {
90
+ var data, finalMessage;
91
+ var _a, _b;
92
+ return __generator(this, function (_c) {
93
+ data = {
94
+ k: userNamespaced ? ":" + ((_a = this.user) === null || _a === void 0 ? void 0 : _a.pubKey) + "." + key : key,
95
+ p: ((_b = this.user) === null || _b === void 0 ? void 0 : _b.pubKey) || "",
96
+ n: nonce,
97
+ t: timestamp,
98
+ h: hash,
99
+ s: (0, toBase64_1.default)(signature),
100
+ v: encodedData,
101
+ };
102
+ if (this.options.debug) {
103
+ console.log("PUT CRDT > " + key, data);
104
+ }
105
+ finalMessage = __assign({ type: "crdtPut", id: (0, _1.textRandom)(10), to: this.websockets.activePeers.map(getIpFromUrl_1.default) }, data);
106
+ this.websockets.send(finalMessage);
107
+ resolve(finalMessage);
108
+ return [2 /*return*/];
109
+ });
110
+ }); })
111
+ .catch(reject);
112
+ }
113
+ })
114
+ .catch(reject);
115
+ });
116
+ }
117
+ exports.default = toolDbCrdtPut;
118
+ //# sourceMappingURL=toolDbCrdtPut.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolDbCrdtPut.js","sourceRoot":"","sources":["../src/toolDbCrdtPut.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,sBAAgF;AAEhF,sEAAgD;AAEhD,oEAA8C;AAE9C,8DAAwC;AACxC,8DAAwC;AAExC;;;;;;GAMG;AACH,SAAwB,aAAa,CAEnC,GAAW,EACX,KAAqB,EACrB,cAAsB;IAJxB,iBA4DC;IAxDC,+BAAA,EAAA,sBAAsB;IAEtB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACrB,8FAA8F;YAC9F,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA6B,GAAK,CAAC,CAAC,CAAC;YACtD,OAAO;SACR;QAED,IAAI,CAAC,KAAI,CAAC,IAAI,EAAE;YACd,MAAM,CAAC,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;YAC5D,OAAO;SACR;QAED,IAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QAEvC,IAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAa,CAAC,CAAC,CAAC;QAE7D,IAAM,UAAU,GAAG,KAAG,WAAW,GAAG,KAAI,CAAC,IAAI,CAAC,MAAM,GAAG,SAAW,CAAC;QAEnE,OAAO;QACP,IAAA,qBAAW,EAAC,UAAU,EAAE,KAAI,CAAC,OAAO,CAAC,GAAG,CAAC;aACtC,IAAI,CAAC,UAAC,EAAe;;gBAAb,IAAI,UAAA,EAAE,KAAK,WAAA;YAClB,IAAI,MAAA,KAAI,CAAC,IAAI,0CAAE,IAAI,EAAE;gBACnB,iBAAiB;gBACjB,IAAA,kBAAQ,EAAC,IAAI,EAAE,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAuB,CAAC;qBAC5D,IAAI,CAAC,UAAO,SAAS;;;;wBAEd,IAAI,GAAqB;4BAC7B,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,OAAI,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,UAAI,GAAK,CAAC,CAAC,CAAC,GAAG;4BACxD,CAAC,EAAE,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,KAAI,EAAE;4BAC1B,CAAC,EAAE,KAAK;4BACR,CAAC,EAAE,SAAS;4BACZ,CAAC,EAAE,IAAI;4BACP,CAAC,EAAE,IAAA,kBAAQ,EAAC,SAAS,CAAC;4BACtB,CAAC,EAAE,WAAW;yBACf,CAAC;wBAEF,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;4BACtB,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;yBACxC;wBAEK,YAAY,cAChB,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,IAAA,aAAU,EAAC,EAAE,CAAC,EAClB,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,sBAAY,CAAC,IAC9C,IAAI,CACR,CAAC;wBACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBACnC,OAAO,CAAC,YAAY,CAAC,CAAC;;;qBACvB,CAAC;qBACD,KAAK,CAAC,MAAM,CAAC,CAAC;aAClB;QACH,CAAC,CAAC;aACD,KAAK,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AA5DD,gCA4DC"}
@@ -1,4 +1,4 @@
1
- import ToolDbClient from "./toolDbClient";
1
+ import ToolDb from "./tooldb";
2
2
  /**
3
3
  * Triggers a GET request to other peers. If the data is available locally it will return that instead.
4
4
  * @param key key of the data
@@ -6,4 +6,4 @@ import ToolDbClient from "./toolDbClient";
6
6
  * @param timeout Max time to wait for remote.
7
7
  * @returns Promise<Data>
8
8
  */
9
- export default function toolDbGet<T = any>(this: ToolDbClient, key: string, userNamespaced?: boolean, timeoutMs?: number): Promise<T | null>;
9
+ export default function toolDbGet<T = any>(this: ToolDb, key: string, userNamespaced?: boolean, timeoutMs?: number): Promise<T | null>;
package/dist/toolDbGet.js CHANGED
@@ -1,5 +1,10 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ var _1 = require(".");
7
+ var getIpFromUrl_1 = __importDefault(require("./utils/getIpFromUrl"));
3
8
  /**
4
9
  * Triggers a GET request to other peers. If the data is available locally it will return that instead.
5
10
  * @param key key of the data
@@ -18,30 +23,52 @@ function toolDbGet(key, userNamespaced, timeoutMs) {
18
23
  return;
19
24
  }
20
25
  var finalKey = userNamespaced ? ":" + ((_b = _this.user) === null || _b === void 0 ? void 0 : _b.pubKey) + "." + key : key;
21
- if (_this.debug) {
26
+ if (_this.options.debug) {
22
27
  console.log("GET > " + finalKey);
23
28
  }
24
- var first = true;
25
- var timeout = setTimeout(function () {
26
- resolve(null);
27
- }, timeoutMs);
28
- _this.gun.get(finalKey, function (ack) {
29
- if (ack["@"] || ack.put) {
30
- var d = ack.put;
31
- if ((d && first) || (d && !first)) {
32
- if (d.v) {
33
- try {
34
- var data = JSON.parse(d.v);
35
- clearTimeout(timeout);
36
- resolve(data.value);
37
- }
38
- catch (e) {
39
- console.error(e);
40
- }
29
+ var msgId = (0, _1.textRandom)(10);
30
+ _this.store.get(finalKey, function (err, data) {
31
+ if (data) {
32
+ try {
33
+ var message = JSON.parse(data);
34
+ _this.triggerKeyListener(finalKey, message);
35
+ }
36
+ catch (e) {
37
+ // do nothing
38
+ }
39
+ }
40
+ });
41
+ var cancelTimeout = setTimeout(function () {
42
+ _this.store.get(finalKey, function (err, data) {
43
+ if (data) {
44
+ try {
45
+ var message = JSON.parse(data);
46
+ resolve(message.v);
41
47
  }
48
+ catch (e) {
49
+ resolve(null);
50
+ }
51
+ }
52
+ else {
53
+ resolve(null);
42
54
  }
43
- first = false;
55
+ });
56
+ }, timeoutMs);
57
+ _this.addIdListener(msgId, function (msg) {
58
+ if (_this.options.debug) {
59
+ console.log("GET RECV > " + finalKey, msg);
44
60
  }
61
+ clearTimeout(cancelTimeout);
62
+ if (msg.type === "put") {
63
+ resolve(msg.v);
64
+ }
65
+ });
66
+ // Do get
67
+ _this.websockets.send({
68
+ type: "get",
69
+ to: _this.websockets.activePeers.map(getIpFromUrl_1.default),
70
+ key: finalKey,
71
+ id: msgId,
45
72
  });
46
73
  });
47
74
  }
@@ -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;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"}
1
+ {"version":3,"file":"toolDbGet.js","sourceRoot":"","sources":["../src/toolDbGet.ts"],"names":[],"mappings":";;;;;AAAA,sBAA+B;AAE/B,sEAAgD;AAEhD;;;;;;GAMG;AACH,SAAwB,SAAS,CAE/B,GAAW,EACX,cAAsB,EACtB,SAAgB;IAJlB,iBA+DC;IA5DC,+BAAA,EAAA,sBAAsB;IACtB,0BAAA,EAAA,gBAAgB;IAEhB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;;QACjC,IAAI,cAAc,IAAI,CAAA,MAAA,KAAI,CAAC,IAAI,0CAAE,MAAM,MAAK,SAAS,EAAE;YACrD,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;YACjD,OAAO;SACR;QACD,IAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,OAAI,MAAA,KAAI,CAAC,IAAI,0CAAE,MAAM,UAAI,GAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QACvE,IAAI,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YACtB,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;SAClC;QAED,IAAM,KAAK,GAAG,IAAA,aAAU,EAAC,EAAE,CAAC,CAAC;QAE7B,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,GAAG,EAAE,IAAI;YACjC,IAAI,IAAI,EAAE;gBACR,IAAI;oBACF,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACjC,KAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;iBAC5C;gBAAC,OAAO,CAAC,EAAE;oBACV,aAAa;iBACd;aACF;QACH,CAAC,CAAC,CAAC;QAEH,IAAM,aAAa,GAAG,UAAU,CAAC;YAC/B,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,GAAG,EAAE,IAAI;gBACjC,IAAI,IAAI,EAAE;oBACR,IAAI;wBACF,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACjC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;qBACpB;oBAAC,OAAO,CAAC,EAAE;wBACV,OAAO,CAAC,IAAI,CAAC,CAAC;qBACf;iBACF;qBAAM;oBACL,OAAO,CAAC,IAAI,CAAC,CAAC;iBACf;YACH,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,SAAS,CAAC,CAAC;QAEd,KAAI,CAAC,aAAa,CAAC,KAAK,EAAE,UAAC,GAAG;YAC5B,IAAI,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBACtB,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC;aAC7C;YAED,YAAY,CAAC,aAAa,CAAC,CAAC;YAC5B,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,EAAE;gBACtB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAChB;QACH,CAAC,CAAC,CAAC;QAEH,SAAS;QACT,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,IAAI,EAAE,KAAK;YACX,EAAE,EAAE,KAAI,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,sBAAY,CAAC;YACjD,GAAG,EAAE,QAAQ;YACb,EAAE,EAAE,KAAK;SACV,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AA/DD,4BA+DC"}
@@ -1,2 +1,2 @@
1
- import ToolDbClient from "./toolDbClient";
2
- export default function toolDbGetPubKey(this: ToolDbClient): Promise<string>;
1
+ import ToolDb from "./tooldb";
2
+ export default function toolDbGetPubKey(this: ToolDb): Promise<string>;
@@ -0,0 +1,8 @@
1
+ import ToolDb from "./tooldb";
2
+ export default function toolDbKeysSignIn(this: ToolDb, keys: {
3
+ signKeys: CryptoKeyPair;
4
+ encryptionKeys: CryptoKeyPair;
5
+ }, username?: string): Promise<{
6
+ signKeys: CryptoKeyPair;
7
+ encryptionKeys: CryptoKeyPair;
8
+ }>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var encodeKeyString_1 = __importDefault(require("./utils/crypto/encodeKeyString"));
7
+ var exportKey_1 = __importDefault(require("./utils/crypto/exportKey"));
8
+ var randomAnimal_1 = __importDefault(require("./utils/randomAnimal"));
9
+ function toolDbKeysSignIn(keys, username) {
10
+ var _this = this;
11
+ return (0, exportKey_1.default)("spki", keys.signKeys.publicKey)
12
+ .then(function (skpub) { return (0, encodeKeyString_1.default)(skpub); })
13
+ .then(function (pubKey) {
14
+ _this.user = {
15
+ keys: keys,
16
+ name: username || "Anonymous " + (0, randomAnimal_1.default)(),
17
+ pubKey: pubKey,
18
+ };
19
+ return keys;
20
+ });
21
+ }
22
+ exports.default = toolDbKeysSignIn;
23
+ //# sourceMappingURL=toolDbKeysSignIn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolDbKeysSignIn.js","sourceRoot":"","sources":["../src/toolDbKeysSignIn.ts"],"names":[],"mappings":";;;;;AACA,mFAA6D;AAC7D,uEAAiD;AAEjD,sEAAgD;AAEhD,SAAwB,gBAAgB,CAEtC,IAGC,EACD,QAAiB;IANnB,iBAqBC;IAVC,OAAO,IAAA,mBAAS,EAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAsB,CAAC;SAC3D,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,IAAA,yBAAe,EAAC,KAAoB,CAAC,EAArC,CAAqC,CAAC;SACtD,IAAI,CAAC,UAAC,MAAM;QACX,KAAI,CAAC,IAAI,GAAG;YACV,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,QAAQ,IAAI,eAAa,IAAA,sBAAY,GAAI;YAC/C,MAAM,QAAA;SACP,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACP,CAAC;AArBD,mCAqBC"}
@@ -1,5 +1,5 @@
1
- import toolDbClient from "./toolDbClient";
2
- import { GraphEntryValue } from "./types/graph";
1
+ import { PutMessage } from ".";
2
+ import ToolDb from "./tooldb";
3
3
  /**
4
4
  * Triggers a PUT request to other peers.
5
5
  * @param key key where we want to put the data at.
@@ -7,4 +7,4 @@ import { GraphEntryValue } from "./types/graph";
7
7
  * @param userNamespaced If this key bolongs to a user or its public. Making it private will enforce validation for our public key and signatures.
8
8
  * @returns Promise<Data | null>
9
9
  */
10
- export default function toolDbPut<T = any>(this: toolDbClient, key: string, value: T, userNamespaced?: boolean, pow?: number): Promise<GraphEntryValue | null>;
10
+ export default function toolDbPut<T = any>(this: ToolDb, key: string, value: T, userNamespaced?: boolean): Promise<PutMessage<T> | null>;
package/dist/toolDbPut.js CHANGED
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
14
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
15
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -39,6 +50,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
39
50
  return (mod && mod.__esModule) ? mod : { "default": mod };
40
51
  };
41
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
+ var _1 = require(".");
54
+ var getIpFromUrl_1 = __importDefault(require("./utils/getIpFromUrl"));
42
55
  var proofOfWork_1 = __importDefault(require("./utils/proofOfWork"));
43
56
  var signData_1 = __importDefault(require("./utils/signData"));
44
57
  var toBase64_1 = __importDefault(require("./utils/toBase64"));
@@ -49,10 +62,9 @@ var toBase64_1 = __importDefault(require("./utils/toBase64"));
49
62
  * @param userNamespaced If this key bolongs to a user or its public. Making it private will enforce validation for our public key and signatures.
50
63
  * @returns Promise<Data | null>
51
64
  */
52
- function toolDbPut(key, value, userNamespaced, pow) {
65
+ function toolDbPut(key, value, userNamespaced) {
53
66
  var _this = this;
54
67
  if (userNamespaced === void 0) { userNamespaced = false; }
55
- if (pow === void 0) { pow = 0; }
56
68
  return new Promise(function (resolve, reject) {
57
69
  if (key.includes(".")) {
58
70
  // Dots are used as a delimitator character between bublic keys and the key of the user's data
@@ -66,7 +78,7 @@ function toolDbPut(key, value, userNamespaced, pow) {
66
78
  var timestamp = new Date().getTime();
67
79
  var dataString = "" + JSON.stringify(value) + _this.user.pubKey + timestamp;
68
80
  // WORK
69
- (0, proofOfWork_1.default)(dataString, pow)
81
+ (0, proofOfWork_1.default)(dataString, _this.options.pow)
70
82
  .then(function (_a) {
71
83
  var _b;
72
84
  var hash = _a.hash, nonce = _a.nonce;
@@ -74,31 +86,30 @@ function toolDbPut(key, value, userNamespaced, pow) {
74
86
  // Sign our value
75
87
  (0, signData_1.default)(hash, _this.user.keys.signKeys.privateKey)
76
88
  .then(function (signature) { return __awaiter(_this, void 0, void 0, function () {
77
- var data;
89
+ var finalKey, data, finalMessage;
78
90
  var _a, _b;
79
91
  return __generator(this, function (_c) {
92
+ finalKey = userNamespaced
93
+ ? ":" + ((_a = this.user) === null || _a === void 0 ? void 0 : _a.pubKey) + "." + key
94
+ : key;
80
95
  data = {
81
- key: userNamespaced ? ":" + ((_a = this.user) === null || _a === void 0 ? void 0 : _a.pubKey) + "." + key : key,
82
- pub: ((_b = this.user) === null || _b === void 0 ? void 0 : _b.pubKey) || "",
83
- nonce: nonce,
84
- timestamp: timestamp,
85
- hash: hash,
86
- sig: (0, toBase64_1.default)(signature),
87
- value: value,
96
+ k: finalKey,
97
+ p: ((_b = this.user) === null || _b === void 0 ? void 0 : _b.pubKey) || "",
98
+ n: nonce,
99
+ t: timestamp,
100
+ h: hash,
101
+ s: (0, toBase64_1.default)(signature),
102
+ v: value,
88
103
  };
89
- if (this.debug) {
104
+ this.store.put(finalKey, JSON.stringify(data), function (err, data) {
105
+ //
106
+ });
107
+ if (this.options.debug) {
90
108
  console.log("PUT > " + key, data);
91
109
  }
92
- this.gun
93
- .get(data.key)
94
- .put({ v: JSON.stringify(data) }, function (ack) {
95
- if (ack.err) {
96
- reject(ack.err);
97
- }
98
- else {
99
- resolve(data.value);
100
- }
101
- });
110
+ finalMessage = __assign({ type: "put", id: (0, _1.textRandom)(10), to: this.websockets.activePeers.map(getIpFromUrl_1.default) }, data);
111
+ this.websockets.send(finalMessage);
112
+ resolve(finalMessage);
102
113
  return [2 /*return*/];
103
114
  });
104
115
  }); })
@@ -1 +1 @@
1
- {"version":3,"file":"toolDbPut.js","sourceRoot":"","sources":["../src/toolDbPut.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,oEAA8C;AAE9C,8DAAwC;AACxC,8DAAwC;AAExC;;;;;;GAMG;AACH,SAAwB,SAAS,CAE/B,GAAW,EACX,KAAQ,EACR,cAAsB,EACtB,GAAO;IALT,iBA2DC;IAvDC,+BAAA,EAAA,sBAAsB;IACtB,oBAAA,EAAA,OAAO;IAEP,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACrB,8FAA8F;YAC9F,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA6B,GAAK,CAAC,CAAC,CAAC;YACtD,OAAO;SACR;QAED,IAAI,CAAC,KAAI,CAAC,IAAI,EAAE;YACd,MAAM,CAAC,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;YAC5D,OAAO;SACR;QAED,IAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACvC,IAAM,UAAU,GAAG,KAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GACzC,KAAI,CAAC,IAAI,CAAC,MAAM,GACf,SAAW,CAAC;QACf,OAAO;QACP,IAAA,qBAAW,EAAC,UAAU,EAAE,GAAG,CAAC;aACzB,IAAI,CAAC,UAAC,EAAe;;gBAAb,IAAI,UAAA,EAAE,KAAK,WAAA;YAClB,IAAI,MAAA,KAAI,CAAC,IAAI,0CAAE,IAAI,EAAE;gBACnB,iBAAiB;gBACjB,IAAA,kBAAQ,EAAC,IAAI,EAAE,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAuB,CAAC;qBAC5D,IAAI,CAAC,UAAO,SAAS;;;;wBAEd,IAAI,GAAoB;4BAC5B,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,OAAI,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,UAAI,GAAK,CAAC,CAAC,CAAC,GAAG;4BAC1D,GAAG,EAAE,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,KAAI,EAAE;4BAC5B,KAAK,OAAA;4BACL,SAAS,WAAA;4BACT,IAAI,MAAA;4BACJ,GAAG,EAAE,IAAA,kBAAQ,EAAC,SAAS,CAAC;4BACxB,KAAK,OAAA;yBACN,CAAC;wBAEF,IAAI,IAAI,CAAC,KAAK,EAAE;4BACd,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;yBACnC;wBACD,IAAI,CAAC,GAAG;6BACL,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;6BACb,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,UAAC,GAAQ;4BACzC,IAAI,GAAG,CAAC,GAAG,EAAE;gCACX,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;6BACjB;iCAAM;gCACL,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;6BACrB;wBACH,CAAC,CAAC,CAAC;;;qBACN,CAAC;qBACD,KAAK,CAAC,MAAM,CAAC,CAAC;aAClB;QACH,CAAC,CAAC;aACD,KAAK,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AA3DD,4BA2DC"}
1
+ {"version":3,"file":"toolDbPut.js","sourceRoot":"","sources":["../src/toolDbPut.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sBAA4E;AAE5E,sEAAgD;AAEhD,oEAA8C;AAE9C,8DAAwC;AACxC,8DAAwC;AAExC;;;;;;GAMG;AACH,SAAwB,SAAS,CAE/B,GAAW,EACX,KAAQ,EACR,cAAsB;IAJxB,iBAmEC;IA/DC,+BAAA,EAAA,sBAAsB;IAEtB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACrB,8FAA8F;YAC9F,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA6B,GAAK,CAAC,CAAC,CAAC;YACtD,OAAO;SACR;QAED,IAAI,CAAC,KAAI,CAAC,IAAI,EAAE;YACd,MAAM,CAAC,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;YAC5D,OAAO;SACR;QAED,IAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACvC,IAAM,UAAU,GAAG,KAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GACzC,KAAI,CAAC,IAAI,CAAC,MAAM,GACf,SAAW,CAAC;QAEf,OAAO;QACP,IAAA,qBAAW,EAAC,UAAU,EAAE,KAAI,CAAC,OAAO,CAAC,GAAG,CAAC;aACtC,IAAI,CAAC,UAAC,EAAe;;gBAAb,IAAI,UAAA,EAAE,KAAK,WAAA;YAClB,IAAI,MAAA,KAAI,CAAC,IAAI,0CAAE,IAAI,EAAE;gBACnB,iBAAiB;gBACjB,IAAA,kBAAQ,EAAC,IAAI,EAAE,KAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAuB,CAAC;qBAC5D,IAAI,CAAC,UAAO,SAAS;;;;wBACd,QAAQ,GAAG,cAAc;4BAC7B,CAAC,CAAC,OAAI,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,UAAI,GAAK;4BAChC,CAAC,CAAC,GAAG,CAAC;wBAEF,IAAI,GAAqB;4BAC7B,CAAC,EAAE,QAAQ;4BACX,CAAC,EAAE,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,MAAM,KAAI,EAAE;4BAC1B,CAAC,EAAE,KAAK;4BACR,CAAC,EAAE,SAAS;4BACZ,CAAC,EAAE,IAAI;4BACP,CAAC,EAAE,IAAA,kBAAQ,EAAC,SAAS,CAAC;4BACtB,CAAC,EAAE,KAAK;yBACT,CAAC;wBAEF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,UAAC,GAAG,EAAE,IAAI;4BACvD,EAAE;wBACJ,CAAC,CAAC,CAAC;wBAEH,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;4BACtB,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;yBACnC;wBAEK,YAAY,cAChB,IAAI,EAAE,KAAK,EACX,EAAE,EAAE,IAAA,aAAU,EAAC,EAAE,CAAC,EAClB,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,sBAAY,CAAC,IAC9C,IAAI,CACR,CAAC;wBACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBAEnC,OAAO,CAAC,YAAY,CAAC,CAAC;;;qBACvB,CAAC;qBACD,KAAK,CAAC,MAAM,CAAC,CAAC;aAClB;QACH,CAAC,CAAC;aACD,KAAK,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAnED,4BAmEC"}
@@ -1,5 +1,5 @@
1
- import ToolDbClient from "./toolDbClient";
2
- export default function toolDbSignIn(this: ToolDbClient, user: string, password: string): Promise<{
1
+ import ToolDb from "./tooldb";
2
+ export default function toolDbSignIn(this: ToolDb, user: string, password: string): Promise<{
3
3
  signKeys: CryptoKeyPair;
4
4
  encryptionKeys: CryptoKeyPair;
5
5
  } | undefined>;
@@ -63,7 +63,7 @@ function toolDbSignIn(user, password) {
63
63
  _this.getData("==" + user, false, 5000)
64
64
  .then(function (_user) {
65
65
  if (!_user) {
66
- reject(Error("Unvalid user data"));
66
+ reject(Error("Could not find user"));
67
67
  return;
68
68
  }
69
69
  if ((0, sha256_1.default)(password) !== _user.pass) {
@@ -1 +1 @@
1
- {"version":3,"file":"toolDbSignIn.js","sourceRoot":"","sources":["../src/toolDbSignIn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toolDbSignIn.js","sourceRoot":"","sources":["../src/toolDbSignIn.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import toolDbClient from "./toolDbClient";
2
- export default function toolDbSignUp(this: toolDbClient, user: string, password: string): Promise<any>;
1
+ import ToolDb from "./tooldb";
2
+ export default function toolDbSignUp(this: ToolDb, user: string, password: string): Promise<any>;
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
14
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
15
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -39,10 +50,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
39
50
  return (mod && mod.__esModule) ? mod : { "default": mod };
40
51
  };
41
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
+ var _1 = require(".");
42
54
  var encryptWithPass_1 = __importDefault(require("./utils/crypto/encryptWithPass"));
43
55
  var generateKeysComb_1 = __importDefault(require("./utils/crypto/generateKeysComb"));
44
56
  var saveKeysComb_1 = __importDefault(require("./utils/crypto/saveKeysComb"));
45
57
  var generateIv_1 = __importDefault(require("./utils/generateIv"));
58
+ var getIpFromUrl_1 = __importDefault(require("./utils/getIpFromUrl"));
46
59
  var proofOfWork_1 = __importDefault(require("./utils/proofOfWork"));
47
60
  var sha256_1 = __importDefault(require("./utils/sha256"));
48
61
  var signData_1 = __importDefault(require("./utils/signData"));
@@ -55,7 +68,7 @@ function toolDbSignUp(user, password) {
55
68
  return __generator(this, function (_a) {
56
69
  userRoot = "==" + user;
57
70
  return [2 /*return*/, new Promise(function (resolve, reject) {
58
- _this.getData(userRoot, false, 5000)
71
+ _this.getData(userRoot, false, 3000)
59
72
  .then(function (data) {
60
73
  if (data === null) {
61
74
  (0, generateKeysComb_1.default)()
@@ -92,24 +105,18 @@ function toolDbSignUp(user, password) {
92
105
  var hash = _a.hash, nonce = _a.nonce;
93
106
  (0, signData_1.default)(hash, keys.signKeys.privateKey).then(function (signature) {
94
107
  var signupMessage = {
95
- key: userRoot,
96
- pub: savedKeys.skpub,
97
- nonce: nonce,
98
- timestamp: timestamp,
99
- hash: hash,
100
- sig: (0, toBase64_1.default)(signature),
101
- value: userData,
108
+ k: userRoot,
109
+ p: savedKeys.skpub,
110
+ n: nonce,
111
+ t: timestamp,
112
+ h: hash,
113
+ s: (0, toBase64_1.default)(signature),
114
+ v: userData,
102
115
  };
103
- _this.gun
104
- .get(signupMessage.key)
105
- .put({ v: JSON.stringify(signupMessage) }, function (ack) {
106
- if (ack.err) {
107
- reject(ack.err);
108
- }
109
- else {
110
- resolve(signupMessage.value);
111
- }
112
- });
116
+ if (_this.options.debug) {
117
+ console.log("SIGNUP PUT > " + userRoot, signupMessage);
118
+ }
119
+ _this.websockets.send(__assign({ type: "put", id: (0, _1.textRandom)(10), to: _this.websockets.activePeers.map(getIpFromUrl_1.default) }, signupMessage));
113
120
  });
114
121
  })
115
122
  .catch(reject);
@@ -1 +1 @@
1
- {"version":3,"file":"toolDbSignUp.js","sourceRoot":"","sources":["../src/toolDbSignUp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toolDbSignUp.js","sourceRoot":"","sources":["../src/toolDbSignUp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import ToolDb from "./tooldb";
2
+ /**
3
+ * Subscribe to all PUT updates for this key.
4
+ * @param key key of the data
5
+ * @param userNamespaced If this key bolongs to a user or its public. Making it private will enforce validation for our public key and signatures.
6
+ * @returns Promise<Data>
7
+ */
8
+ export default function toolDbSubscribe(this: ToolDb, key: string, userNamespaced?: boolean): Promise<void>;
@@ -0,0 +1,61 @@
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 _1 = require(".");
7
+ var automerge_1 = __importDefault(require("automerge"));
8
+ /**
9
+ * Subscribe to all PUT updates for this key.
10
+ * @param key key of the data
11
+ * @param userNamespaced If this key bolongs to a user or its public. Making it private will enforce validation for our public key and signatures.
12
+ * @returns Promise<Data>
13
+ */
14
+ function toolDbSubscribe(key, userNamespaced) {
15
+ var _this = this;
16
+ if (userNamespaced === void 0) { userNamespaced = false; }
17
+ return new Promise(function (resolve, reject) {
18
+ var _a, _b;
19
+ if (userNamespaced && ((_a = _this.user) === null || _a === void 0 ? void 0 : _a.pubKey) === undefined) {
20
+ reject(new Error("You are not authorized yet!"));
21
+ return;
22
+ }
23
+ var finalKey = userNamespaced ? ":" + ((_b = _this.user) === null || _b === void 0 ? void 0 : _b.pubKey) + "." + key : key;
24
+ if (_this.options.debug) {
25
+ console.log("Subscribe > " + finalKey);
26
+ }
27
+ var msgId = (0, _1.textRandom)(10);
28
+ _this.store.get(finalKey, function (err, data) {
29
+ if (data) {
30
+ try {
31
+ var message = JSON.parse(data);
32
+ _this.triggerKeyListener(finalKey, message);
33
+ }
34
+ catch (e) {
35
+ // do nothing
36
+ }
37
+ }
38
+ });
39
+ // console.log("do subscribe", finalKey);
40
+ _this.loadCrdtDocument(finalKey, false).then(function (doc) {
41
+ if (doc) {
42
+ var savedDoc = automerge_1.default.save(doc);
43
+ var msg = {
44
+ type: "crdt",
45
+ key: finalKey,
46
+ id: (0, _1.textRandom)(10),
47
+ doc: (0, _1.uint8ToBase64)(savedDoc),
48
+ };
49
+ _this.triggerKeyListener(finalKey, msg);
50
+ }
51
+ });
52
+ _this.websockets.send({
53
+ type: "subscribe",
54
+ key: finalKey,
55
+ id: msgId,
56
+ });
57
+ resolve();
58
+ });
59
+ }
60
+ exports.default = toolDbSubscribe;
61
+ //# sourceMappingURL=toolDbSubscribe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolDbSubscribe.js","sourceRoot":"","sources":["../src/toolDbSubscribe.ts"],"names":[],"mappings":";;;;;AAAA,sBAA2D;AAE3D,wDAAkC;AAElC;;;;;GAKG;AACH,SAAwB,eAAe,CAErC,GAAW,EACX,cAAsB;IAHxB,iBAkDC;IA/CC,+BAAA,EAAA,sBAAsB;IAEtB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;;QACjC,IAAI,cAAc,IAAI,CAAA,MAAA,KAAI,CAAC,IAAI,0CAAE,MAAM,MAAK,SAAS,EAAE;YACrD,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;YACjD,OAAO;SACR;QACD,IAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,OAAI,MAAA,KAAI,CAAC,IAAI,0CAAE,MAAM,UAAI,GAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QACvE,IAAI,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YACtB,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,QAAQ,CAAC,CAAC;SACxC;QAED,IAAM,KAAK,GAAG,IAAA,aAAU,EAAC,EAAE,CAAC,CAAC;QAE7B,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,GAAG,EAAE,IAAI;YACjC,IAAI,IAAI,EAAE;gBACR,IAAI;oBACF,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACjC,KAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;iBAC5C;gBAAC,OAAO,CAAC,EAAE;oBACV,aAAa;iBACd;aACF;QACH,CAAC,CAAC,CAAC;QAEH,yCAAyC;QACzC,KAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,UAAC,GAAG;YAC9C,IAAI,GAAG,EAAE;gBACP,IAAM,QAAQ,GAAG,mBAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrC,IAAM,GAAG,GAAgB;oBACvB,IAAI,EAAE,MAAM;oBACZ,GAAG,EAAE,QAAQ;oBACb,EAAE,EAAE,IAAA,aAAU,EAAC,EAAE,CAAC;oBAClB,GAAG,EAAE,IAAA,gBAAa,EAAC,QAAQ,CAAC;iBAC7B,CAAC;gBACF,KAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;aACxC;QACH,CAAC,CAAC,CAAC;QAEH,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,IAAI,EAAE,WAAW;YACjB,GAAG,EAAE,QAAQ;YACb,EAAE,EAAE,KAAK;SACV,CAAC,CAAC;QAEH,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAlDD,kCAkDC"}
@@ -1,2 +1,2 @@
1
- import { GraphEntryValue, ToolDbClient } from ".";
2
- export default function toolDbVerificationWrapper(this: ToolDbClient, data: GraphEntryValue<any>): Promise<unknown>;
1
+ import { ToolDb, VerificationData } from ".";
2
+ export default function toolDbVerificationWrapper(this: ToolDb, data: VerificationData<any>): Promise<unknown>;