tool-db 2.0.1 → 2.0.2

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 (132) hide show
  1. package/README.md +10 -33
  2. package/bundle.js +48143 -63087
  3. package/dist/crdt/baseCrdt.d.ts +9 -0
  4. package/dist/crdt/baseCrdt.js +27 -0
  5. package/dist/crdt/baseCrdt.js.map +1 -0
  6. package/dist/crdt/counterCrdt.d.ts +30 -0
  7. package/dist/crdt/counterCrdt.js +124 -0
  8. package/dist/crdt/counterCrdt.js.map +1 -0
  9. package/dist/crdt/listCrdt.d.ts +42 -0
  10. package/dist/crdt/listCrdt.js +177 -0
  11. package/dist/crdt/listCrdt.js.map +1 -0
  12. package/dist/crdt/mapCrdt.d.ts +32 -0
  13. package/dist/crdt/mapCrdt.js +136 -0
  14. package/dist/crdt/mapCrdt.js.map +1 -0
  15. package/dist/index.d.ts +2 -12
  16. package/dist/index.js +5 -35
  17. package/dist/index.js.map +1 -1
  18. package/dist/messageHandlers/handleCrdtGet.js +21 -14
  19. package/dist/messageHandlers/handleCrdtGet.js.map +1 -1
  20. package/dist/messageHandlers/handleCrdtPut.js +50 -71
  21. package/dist/messageHandlers/handleCrdtPut.js.map +1 -1
  22. package/dist/messageHandlers/handleSubscribe.js +1 -21
  23. package/dist/messageHandlers/handleSubscribe.js.map +1 -1
  24. package/dist/toolDbClientOnMessage.js +0 -3
  25. package/dist/toolDbClientOnMessage.js.map +1 -1
  26. package/dist/toolDbCrdtGet.d.ts +4 -2
  27. package/dist/toolDbCrdtGet.js +26 -19
  28. package/dist/toolDbCrdtGet.js.map +1 -1
  29. package/dist/toolDbCrdtPut.d.ts +3 -3
  30. package/dist/toolDbCrdtPut.js +11 -11
  31. package/dist/toolDbCrdtPut.js.map +1 -1
  32. package/dist/toolDbGet.d.ts +1 -1
  33. package/dist/toolDbGet.js +3 -3
  34. package/dist/toolDbGet.js.map +1 -1
  35. package/dist/toolDbPut.d.ts +1 -1
  36. package/dist/toolDbPut.js +8 -6
  37. package/dist/toolDbPut.js.map +1 -1
  38. package/dist/toolDbQueryKeys.js +2 -2
  39. package/dist/toolDbQueryKeys.js.map +1 -1
  40. package/dist/toolDbSubscribe.d.ts +1 -1
  41. package/dist/toolDbSubscribe.js +3 -22
  42. package/dist/toolDbSubscribe.js.map +1 -1
  43. package/dist/tooldb.d.ts +6 -12
  44. package/dist/tooldb.js +3 -15
  45. package/dist/tooldb.js.map +1 -1
  46. package/dist/types/message.d.ts +5 -18
  47. package/dist/types/message.js +1 -1
  48. package/dist/types/message.js.map +1 -1
  49. package/dist/utils/encoding/uint8ArrayToHex.d.ts +1 -2
  50. package/dist/utils/encoding/uint8ArrayToHex.js.map +1 -1
  51. package/dist/utils/encoding/uint8ToBase64.d.ts +1 -2
  52. package/dist/utils/encoding/uint8ToBase64.js.map +1 -1
  53. package/dist/utils/sha1.d.ts +1 -1
  54. package/dist/utils/sha1.js +2 -3
  55. package/dist/utils/sha1.js.map +1 -1
  56. package/dist/utils/sha256.d.ts +1 -1
  57. package/dist/utils/sha256.js +2 -3
  58. package/dist/utils/sha256.js.map +1 -1
  59. package/dist/utils/verifyMessage.d.ts +1 -1
  60. package/dist/utils/verifyMessage.js +6 -6
  61. package/dist/utils/verifyMessage.js.map +1 -1
  62. package/package.json +1 -2
  63. package/test-alice/000269.ldb +0 -0
  64. package/test-alice/000271.ldb +0 -0
  65. package/test-alice/000274.ldb +0 -0
  66. package/test-alice/000277.ldb +0 -0
  67. package/test-alice/000278.log +0 -0
  68. package/test-alice/CURRENT +1 -1
  69. package/test-alice/LOG +5 -5
  70. package/test-alice/LOG.old +5 -5
  71. package/test-alice/MANIFEST-000276 +0 -0
  72. package/test-alice-speed/000185.ldb +0 -0
  73. package/test-alice-speed/000187.ldb +0 -0
  74. package/test-alice-speed/000188.log +0 -0
  75. package/test-alice-speed/CURRENT +1 -1
  76. package/test-alice-speed/LOG +5 -1
  77. package/test-alice-speed/LOG.old +14 -0
  78. package/test-alice-speed/MANIFEST-000186 +0 -0
  79. package/test-bob/000269.ldb +0 -0
  80. package/test-bob/000271.ldb +0 -0
  81. package/test-bob/000274.ldb +0 -0
  82. package/test-bob/000277.ldb +0 -0
  83. package/test-bob/000278.log +0 -0
  84. package/test-bob/CURRENT +1 -1
  85. package/test-bob/LOG +5 -5
  86. package/test-bob/LOG.old +5 -5
  87. package/test-bob/MANIFEST-000276 +0 -0
  88. package/test-node-a/000269.ldb +0 -0
  89. package/test-node-a/000271.ldb +0 -0
  90. package/test-node-a/000274.ldb +0 -0
  91. package/test-node-a/000277.ldb +0 -0
  92. package/test-node-a/000278.log +0 -0
  93. package/test-node-a/CURRENT +1 -1
  94. package/test-node-a/LOG +5 -5
  95. package/test-node-a/LOG.old +5 -5
  96. package/test-node-a/MANIFEST-000276 +0 -0
  97. package/test-node-b/000269.ldb +0 -0
  98. package/test-node-b/000271.ldb +0 -0
  99. package/test-node-b/000274.ldb +0 -0
  100. package/test-node-b/000277.ldb +0 -0
  101. package/test-node-b/000278.log +0 -0
  102. package/test-node-b/CURRENT +1 -1
  103. package/test-node-b/LOG +5 -5
  104. package/test-node-b/LOG.old +5 -5
  105. package/test-node-b/MANIFEST-000276 +0 -0
  106. package/test-verify-a/{000068.log → 000182.log} +0 -0
  107. package/test-verify-a/CURRENT +1 -1
  108. package/test-verify-a/LOG +3 -3
  109. package/test-verify-a/LOG.old +3 -3
  110. package/test-verify-a/{MANIFEST-000067 → MANIFEST-000181} +0 -0
  111. package/test-alice/000087.ldb +0 -0
  112. package/test-alice/000089.ldb +0 -0
  113. package/test-alice/000092.ldb +0 -0
  114. package/test-alice/000093.log +0 -0
  115. package/test-alice/MANIFEST-000091 +0 -0
  116. package/test-alice-speed/000003.log +0 -0
  117. package/test-alice-speed/MANIFEST-000002 +0 -0
  118. package/test-bob/000087.ldb +0 -0
  119. package/test-bob/000089.ldb +0 -0
  120. package/test-bob/000092.ldb +0 -0
  121. package/test-bob/000093.log +0 -0
  122. package/test-bob/MANIFEST-000091 +0 -0
  123. package/test-node-a/000087.ldb +0 -0
  124. package/test-node-a/000089.ldb +0 -0
  125. package/test-node-a/000092.ldb +0 -0
  126. package/test-node-a/000093.log +0 -0
  127. package/test-node-a/MANIFEST-000091 +0 -0
  128. package/test-node-b/000087.ldb +0 -0
  129. package/test-node-b/000089.ldb +0 -0
  130. package/test-node-b/000092.ldb +0 -0
  131. package/test-node-b/000093.log +0 -0
  132. package/test-node-b/MANIFEST-000091 +0 -0
package/dist/index.js CHANGED
@@ -15,20 +15,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
15
15
  return (mod && mod.__esModule) ? mod : { "default": mod };
16
16
  };
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.ToolDb = exports.handleSubscribe = exports.handleQuery = exports.handlePut = exports.handlePong = exports.handlePing = exports.handleGet = exports.handleCrdtPut = exports.handleCrdtGet = exports.handleCrdt = exports.toolDbWebrtc = exports.toolDbNetwork = exports.generateKeyFromPassword = exports.encryptWithPass = exports.decryptWithPass = exports.toBase64 = exports.uint8ArrayToHex = exports.uint8ToBase64 = exports.fromBase64 = exports.hexToUint8 = exports.hexToString = exports.hexToBase64 = exports.hexToArrayBuffer = exports.base64ToHex = exports.base64ToUint8 = exports.base64ToBinaryDocument = exports.base64ToBinaryChange = exports.base64ToArrayBuffer = exports.arrayBufferToHex = exports.arrayBufferToString = exports.arrayBufferToBase64 = exports.verifyPeer = exports.verifyMessage = exports.stringToArrayBuffer = exports.textRandom = exports.randomAnimal = exports.generateIv = exports.sha256 = exports.sha1 = exports.proofOfWork = void 0;
18
+ exports.ToolDb = exports.handleSubscribe = exports.handleQuery = exports.handlePut = exports.handlePong = exports.handlePing = exports.handleGet = exports.handleCrdtPut = exports.handleCrdtGet = exports.toolDbWebrtc = exports.toolDbNetwork = exports.generateKeyFromPassword = exports.encryptWithPass = exports.decryptWithPass = exports.MapCrdt = exports.BaseCrdt = exports.hexToUint8 = exports.hexToString = exports.hexToArrayBuffer = exports.arrayBufferToHex = exports.arrayBufferToString = exports.verifyPeer = exports.verifyMessage = exports.stringToArrayBuffer = exports.textRandom = exports.randomAnimal = exports.generateIv = exports.sha256 = exports.sha1 = exports.proofOfWork = void 0;
19
19
  __exportStar(require("./types/tooldb"), exports);
20
20
  __exportStar(require("./types/message"), exports);
21
21
  global.Buffer = global.Buffer || require("buffer").Buffer;
22
- if (typeof btoa === "undefined") {
23
- global.btoa = function (str) {
24
- return Buffer.from(str, "binary").toString("base64");
25
- };
26
- }
27
- if (typeof atob === "undefined") {
28
- global.atob = function (b64Encoded) {
29
- return Buffer.from(b64Encoded, "base64").toString("binary");
30
- };
31
- }
32
22
  if (typeof window === "undefined") {
33
23
  global.crypto = require("crypto").webcrypto;
34
24
  }
@@ -50,38 +40,20 @@ var verifyMessage_1 = require("./utils/verifyMessage");
50
40
  Object.defineProperty(exports, "verifyMessage", { enumerable: true, get: function () { return __importDefault(verifyMessage_1).default; } });
51
41
  var verifyPeer_1 = require("./utils/verifyPeer");
52
42
  Object.defineProperty(exports, "verifyPeer", { enumerable: true, get: function () { return __importDefault(verifyPeer_1).default; } });
53
- var arrayBufferToBase64_1 = require("./utils/encoding/arrayBufferToBase64");
54
- Object.defineProperty(exports, "arrayBufferToBase64", { enumerable: true, get: function () { return __importDefault(arrayBufferToBase64_1).default; } });
55
43
  var arrayBufferToString_1 = require("./utils/encoding/arrayBufferToString");
56
44
  Object.defineProperty(exports, "arrayBufferToString", { enumerable: true, get: function () { return __importDefault(arrayBufferToString_1).default; } });
57
45
  var arrayBufferToHex_1 = require("./utils/encoding/arrayBufferToHex");
58
46
  Object.defineProperty(exports, "arrayBufferToHex", { enumerable: true, get: function () { return __importDefault(arrayBufferToHex_1).default; } });
59
- var base64ToArrayBuffer_1 = require("./utils/encoding/base64ToArrayBuffer");
60
- Object.defineProperty(exports, "base64ToArrayBuffer", { enumerable: true, get: function () { return __importDefault(base64ToArrayBuffer_1).default; } });
61
- var base64ToBinaryChange_1 = require("./utils/encoding/base64ToBinaryChange");
62
- Object.defineProperty(exports, "base64ToBinaryChange", { enumerable: true, get: function () { return __importDefault(base64ToBinaryChange_1).default; } });
63
- var base64ToBinaryDocument_1 = require("./utils/encoding/base64ToBinaryDocument");
64
- Object.defineProperty(exports, "base64ToBinaryDocument", { enumerable: true, get: function () { return __importDefault(base64ToBinaryDocument_1).default; } });
65
- var base64ToUint8_1 = require("./utils/encoding/base64ToUint8");
66
- Object.defineProperty(exports, "base64ToUint8", { enumerable: true, get: function () { return __importDefault(base64ToUint8_1).default; } });
67
- var base64ToHex_1 = require("./utils/encoding/base64ToHex");
68
- Object.defineProperty(exports, "base64ToHex", { enumerable: true, get: function () { return __importDefault(base64ToHex_1).default; } });
69
47
  var hexToArrayBuffer_1 = require("./utils/encoding/hexToArrayBuffer");
70
48
  Object.defineProperty(exports, "hexToArrayBuffer", { enumerable: true, get: function () { return __importDefault(hexToArrayBuffer_1).default; } });
71
- var hexToBase64_1 = require("./utils/encoding/hexToBase64");
72
- Object.defineProperty(exports, "hexToBase64", { enumerable: true, get: function () { return __importDefault(hexToBase64_1).default; } });
73
49
  var hexToString_1 = require("./utils/encoding/hexToString");
74
50
  Object.defineProperty(exports, "hexToString", { enumerable: true, get: function () { return __importDefault(hexToString_1).default; } });
75
51
  var hexToUint8_1 = require("./utils/encoding/hexToUint8");
76
52
  Object.defineProperty(exports, "hexToUint8", { enumerable: true, get: function () { return __importDefault(hexToUint8_1).default; } });
77
- var fromBase64_1 = require("./utils/encoding/fromBase64");
78
- Object.defineProperty(exports, "fromBase64", { enumerable: true, get: function () { return __importDefault(fromBase64_1).default; } });
79
- var uint8ToBase64_1 = require("./utils/encoding/uint8ToBase64");
80
- Object.defineProperty(exports, "uint8ToBase64", { enumerable: true, get: function () { return __importDefault(uint8ToBase64_1).default; } });
81
- var uint8ArrayToHex_1 = require("./utils/encoding/uint8ArrayToHex");
82
- Object.defineProperty(exports, "uint8ArrayToHex", { enumerable: true, get: function () { return __importDefault(uint8ArrayToHex_1).default; } });
83
- var toBase64_1 = require("./utils/encoding/toBase64");
84
- Object.defineProperty(exports, "toBase64", { enumerable: true, get: function () { return __importDefault(toBase64_1).default; } });
53
+ var baseCrdt_1 = require("./crdt/baseCrdt");
54
+ Object.defineProperty(exports, "BaseCrdt", { enumerable: true, get: function () { return __importDefault(baseCrdt_1).default; } });
55
+ var mapCrdt_1 = require("./crdt/mapCrdt");
56
+ Object.defineProperty(exports, "MapCrdt", { enumerable: true, get: function () { return __importDefault(mapCrdt_1).default; } });
85
57
  var decryptWithPass_1 = require("./utils/crypto/decryptWithPass");
86
58
  Object.defineProperty(exports, "decryptWithPass", { enumerable: true, get: function () { return __importDefault(decryptWithPass_1).default; } });
87
59
  var encryptWithPass_1 = require("./utils/crypto/encryptWithPass");
@@ -92,8 +64,6 @@ var toolDbNetwork_1 = require("./toolDbNetwork");
92
64
  Object.defineProperty(exports, "toolDbNetwork", { enumerable: true, get: function () { return __importDefault(toolDbNetwork_1).default; } });
93
65
  var toolDbWebrtc_1 = require("./toolDbWebrtc");
94
66
  Object.defineProperty(exports, "toolDbWebrtc", { enumerable: true, get: function () { return __importDefault(toolDbWebrtc_1).default; } });
95
- var handleCrdt_1 = require("./messageHandlers/handleCrdt");
96
- Object.defineProperty(exports, "handleCrdt", { enumerable: true, get: function () { return __importDefault(handleCrdt_1).default; } });
97
67
  var handleCrdtGet_1 = require("./messageHandlers/handleCrdtGet");
98
68
  Object.defineProperty(exports, "handleCrdtGet", { enumerable: true, get: function () { return __importDefault(handleCrdtGet_1).default; } });
99
69
  var handleCrdtPut_1 = require("./messageHandlers/handleCrdtPut");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,mCAAmC;;;;;;;;;;;;;;;;AAEnC,iDAA+B;AAC/B,kDAAgC;AAEhC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;AAE1D,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;AAE1B,iDAA2D;AAAlD,yHAAA,OAAO,OAAc;AAC9B,qDAA+D;AAAtD,6HAAA,OAAO,OAAgB;AAChC,iDAA2D;AAAlD,yHAAA,OAAO,OAAc;AAC9B,4EAAsF;AAA7E,2IAAA,OAAO,OAAuB;AACvC,uDAAiE;AAAxD,+HAAA,OAAO,OAAiB;AACjC,iDAA2D;AAAlD,yHAAA,OAAO,OAAc;AAE9B,4EAAsF;AAA7E,2IAAA,OAAO,OAAuB;AACvC,sEAAgF;AAAvE,qIAAA,OAAO,OAAoB;AACpC,sEAAgF;AAAvE,qIAAA,OAAO,OAAoB;AACpC,4DAAsE;AAA7D,2HAAA,OAAO,OAAe;AAC/B,0DAAoE;AAA3D,yHAAA,OAAO,OAAc;AAE9B,4CAAsD;AAA7C,qHAAA,OAAO,OAAY;AAC5B,0CAAoD;AAA3C,mHAAA,OAAO,OAAW;AAE3B,kEAA4E;AAAnE,mIAAA,OAAO,OAAmB;AACnC,kEAA4E;AAAnE,mIAAA,OAAO,OAAmB;AACnC,kFAA4F;AAAnF,mJAAA,OAAO,OAA2B;AAE3C,iDAA2D;AAAlD,+HAAA,OAAO,OAAiB;AACjC,+CAAyD;AAAhD,6HAAA,OAAO,OAAgB;AAEhC,iEAA2E;AAAlE,+HAAA,OAAO,OAAiB;AACjC,iEAA2E;AAAlE,+HAAA,OAAO,OAAiB;AACjC,yDAAmE;AAA1D,uHAAA,OAAO,OAAa;AAC7B,2DAAqE;AAA5D,yHAAA,OAAO,OAAc;AAC9B,2DAAqE;AAA5D,yHAAA,OAAO,OAAc;AAC9B,yDAAmE;AAA1D,uHAAA,OAAO,OAAa;AAC7B,6DAAuE;AAA9D,2HAAA,OAAO,OAAe;AAC/B,qEAA+E;AAAtE,mIAAA,OAAO,OAAmB;AAEnC,mCAA6C;AAApC,iHAAA,OAAO,OAAU"}
@@ -1,22 +1,29 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
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);
4
12
  };
5
13
  Object.defineProperty(exports, "__esModule", { value: true });
6
- var automerge_1 = __importDefault(require("automerge"));
7
- var uint8ArrayToHex_1 = __importDefault(require("../utils/encoding/uint8ArrayToHex"));
8
14
  function handleCrdtGet(message, remotePeerId) {
9
15
  var _this = this;
10
- this.loadCrdtDocument(message.key, false).then(function (currentDoc) {
11
- if (currentDoc) {
12
- var saved = automerge_1.default.save(currentDoc || automerge_1.default.init());
13
- _this.network.sendToClientId(remotePeerId, {
14
- type: "crdt",
15
- id: message.id,
16
- key: message.key,
17
- to: [],
18
- doc: (0, uint8ArrayToHex_1.default)(saved),
19
- });
16
+ this.store.get(message.key, function (err, data) {
17
+ if (data) {
18
+ try {
19
+ // Use the id of the get so the other client knows we are replying
20
+ var oldData = __assign(__assign({ type: "putCrdt" }, JSON.parse(data)), { to: [], id: message.id });
21
+ _this.network.sendToClientId(remotePeerId, oldData);
22
+ }
23
+ catch (e) {
24
+ // socket.send(data);
25
+ // do nothing
26
+ }
20
27
  }
21
28
  else {
22
29
  if (_this.options.debug) {
@@ -1 +1 @@
1
- {"version":3,"file":"handleCrdtGet.js","sourceRoot":"","sources":["../../src/messageHandlers/handleCrdtGet.ts"],"names":[],"mappings":";;;;;AAAA,wDAAkC;AAGlC,sFAAgE;AAEhE,SAAwB,aAAa,CAEnC,OAAuB,EACvB,YAAoB;IAHtB,iBAsBC;IAjBC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,UAAC,UAAU;QACxD,IAAI,UAAU,EAAE;YACd,IAAM,KAAK,GAAG,mBAAS,CAAC,IAAI,CAAC,UAAU,IAAI,mBAAS,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7D,KAAI,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE;gBACxC,IAAI,EAAE,MAAM;gBACZ,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,EAAE,EAAE,EAAE;gBACN,GAAG,EAAE,IAAA,yBAAe,EAAC,KAAK,CAAC;aACb,CAAC,CAAC;SACnB;aAAM;YACL,IAAI,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBACtB,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;aACpE;YACD,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;SAC9C;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAtBD,gCAsBC"}
1
+ {"version":3,"file":"handleCrdtGet.js","sourceRoot":"","sources":["../../src/messageHandlers/handleCrdtGet.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAGA,SAAwB,aAAa,CAEnC,OAAuB,EACvB,YAAoB;IAHtB,iBA2BC;IAtBC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,UAAC,GAAG,EAAE,IAAI;QACpC,IAAI,IAAI,EAAE;YACR,IAAI;gBACF,kEAAkE;gBAClE,IAAM,OAAO,GAAG,oBACd,IAAI,EAAE,SAAS,IACZ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KACnB,EAAE,EAAE,EAAE,EACN,EAAE,EAAE,OAAO,CAAC,EAAE,GACG,CAAC;gBACpB,KAAI,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;aACpD;YAAC,OAAO,CAAC,EAAE;gBACV,qBAAqB;gBACrB,aAAa;aACd;SACF;aAAM;YACL,IAAI,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBACtB,OAAO,CAAC,GAAG,CAAC,4BAA4B,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;aACpE;YACD,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;SAC9C;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AA3BD,gCA2BC"}
@@ -1,91 +1,70 @@
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 __importDefault = (this && this.__importDefault) || function (mod) {
3
14
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
15
  };
5
16
  Object.defineProperty(exports, "__esModule", { value: true });
6
- var automerge_1 = __importDefault(require("automerge"));
7
17
  var message_1 = require("../types/message");
8
18
  var toolDbVerificationWrapper_1 = __importDefault(require("../toolDbVerificationWrapper"));
9
- var hexToBase64_1 = __importDefault(require("../utils/encoding/hexToBase64"));
10
- var uint8ArrayToHex_1 = __importDefault(require("../utils/encoding/uint8ArrayToHex"));
11
- var base64ToBinaryChange_1 = __importDefault(require("../utils/encoding/base64ToBinaryChange"));
19
+ var mapCrdt_1 = __importDefault(require("../crdt/mapCrdt"));
12
20
  function handleCrdtPut(message, remotePeerId) {
13
21
  var _this = this;
14
- // key = aggregated, final value
15
- // key.crdt = automerge doc with changes
16
- var writeStart = new Date().getTime();
17
22
  toolDbVerificationWrapper_1.default.call(this, message).then(function (value) {
18
- // console.log("CRDT verification: ", (new Date().getTime() - writeStart) / 1000);
19
- // console.log("CRDT Verification wrapper result: ", value);
23
+ // console.log("Verification wrapper result: ", value, message.k);
20
24
  if (value === message_1.VerifyResult.Verified) {
21
- var key_1 = message.k;
22
- var data = [];
23
- try {
24
- data = JSON.parse(message.v);
25
- }
26
- catch (e) {
27
- //
28
- }
29
- var changes_1 = data.map(hexToBase64_1.default).map(base64ToBinaryChange_1.default);
30
- _this.loadCrdtDocument(key_1).then(function (currentDoc) {
31
- // if (currentDoc) {
32
- // console.log(
33
- // "loaded",
34
- // key,
35
- // currentDoc,
36
- // Automerge.getHistory(currentDoc)
37
- // );
38
- // }
39
- var newDoc = automerge_1.default.init();
40
- try {
41
- newDoc = automerge_1.default.applyChanges(currentDoc || automerge_1.default.init(), changes_1)[0];
42
- }
43
- catch (e) {
44
- try {
45
- newDoc = automerge_1.default.applyChanges(automerge_1.default.init(), changes_1)[0];
25
+ _this.emit("verified", message);
26
+ // relay to other servers !!!
27
+ _this.network.sendToAll(message, true);
28
+ _this.store.get(message.k, function (err, oldData) {
29
+ if (oldData) {
30
+ var parsedOldData = __assign({ type: "crdtPut" }, JSON.parse(oldData));
31
+ var newMessage = message;
32
+ // Merge old document with new data incoming and save it
33
+ // Add handles for all kinds of CRDT we add
34
+ if (parsedOldData.crdt === "MAP") {
35
+ var oldDoc = new mapCrdt_1.default(_this.getAddress() || "", parsedOldData.v);
36
+ oldDoc.mergeChanges(message.v);
37
+ var changesMerged = oldDoc.getChanges();
38
+ newMessage = __assign(__assign({}, message), { v: changesMerged });
46
39
  }
47
- catch (ee) {
48
- if (_this.options.debug) {
49
- console.warn(ee);
50
- }
40
+ if (parsedOldData.t < message.t) {
41
+ var key = newMessage.k;
42
+ _this.triggerKeyListener(key, newMessage);
43
+ _this.store.put(newMessage.k, JSON.stringify(newMessage), function (err, data) {
44
+ //
45
+ });
51
46
  }
47
+ else {
48
+ var key = message.k;
49
+ _this.triggerKeyListener(key, parsedOldData);
50
+ }
51
+ // } else if (this.options.debug) {
52
+ // console.log(
53
+ // `${message.k} has old data, but its newer. old ${parsedOldData.t} < new ${message.t}`
54
+ // );
55
+ // }
56
+ }
57
+ else {
58
+ var key = message.k;
59
+ _this.triggerKeyListener(key, message);
60
+ _this.store.put(message.k, JSON.stringify(message), function (err, data) {
61
+ //
62
+ });
52
63
  }
53
- // if (newDoc) {
54
- // console.log(
55
- // "new document changes:",
56
- // Automerge.getHistory(newDoc),
57
- // "final: ",
58
- // newDoc
59
- // );
60
- // }
61
- // persist
62
- _this.documents[key_1] = newDoc;
63
- // OOHH THE TYPECAST PAIN
64
- // Convert the crdt document to hex before saving
65
- var savedDoc = (0, uint8ArrayToHex_1.default)(automerge_1.default.save(newDoc));
66
- _this.store.put(key_1 + ".crdt", savedDoc, function (err, data) {
67
- // const writeEnd = new Date().getTime();
68
- // console.log(
69
- // "CRDT write: ",
70
- // `${key}.crdt`,
71
- // (writeEnd - writeStart) / 1000
72
- // );
73
- });
74
- var crdtMessage = {
75
- type: "crdt",
76
- key: key_1,
77
- id: message.id,
78
- to: [],
79
- doc: savedDoc,
80
- };
81
- _this.triggerKeyListener(key_1, crdtMessage);
82
- // relay to other servers
83
- // !!!
84
- _this.network.sendToAll(crdtMessage, true);
85
64
  });
86
65
  }
87
66
  else {
88
- console.log("unverified message", value, message);
67
+ console.warn("unverified message: ", value, message);
89
68
  }
90
69
  });
91
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"handleCrdtPut.js","sourceRoot":"","sources":["../../src/messageHandlers/handleCrdtPut.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handleCrdtPut.js","sourceRoot":"","sources":["../../src/messageHandlers/handleCrdtPut.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,4CAAgE;AAChE,2FAAqE;AACrE,4DAAsC;AAEtC,SAAwB,aAAa,CAEnC,OAAuB,EACvB,YAAoB;IAHtB,iBAmEC;IA9DC,mCAAyB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,UAAC,KAAK;QACvD,kEAAkE;QAClE,IAAI,KAAK,KAAK,sBAAY,CAAC,QAAQ,EAAE;YACnC,KAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC/B,6BAA6B;YAC7B,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAEtC,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,UAAC,GAAG,EAAE,OAAgB;gBAC9C,IAAI,OAAO,EAAE;oBACX,IAAM,aAAa,cACjB,IAAI,EAAE,SAAS,IACZ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CACvB,CAAC;oBAEF,IAAI,UAAU,GAAG,OAAO,CAAC;oBAEzB,wDAAwD;oBACxD,2CAA2C;oBAC3C,IAAI,aAAa,CAAC,IAAI,KAAK,KAAK,EAAE;wBAChC,IAAM,MAAM,GAAG,IAAI,iBAAO,CACxB,KAAI,CAAC,UAAU,EAAE,IAAI,EAAE,EACvB,aAAa,CAAC,CAAC,CAChB,CAAC;wBACF,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBAC/B,IAAM,aAAa,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;wBAC1C,UAAU,yBACL,OAAO,KACV,CAAC,EAAE,aAAa,GACjB,CAAC;qBACH;oBAED,IAAI,aAAa,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE;wBAC/B,IAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC;wBACzB,KAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;wBACzC,KAAI,CAAC,KAAK,CAAC,GAAG,CACZ,UAAU,CAAC,CAAC,EACZ,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAC1B,UAAC,GAAG,EAAE,IAAI;4BACR,EAAE;wBACJ,CAAC,CACF,CAAC;qBACH;yBAAM;wBACL,IAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;wBACtB,KAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;qBAC7C;oBACD,mCAAmC;oBACnC,iBAAiB;oBACjB,4FAA4F;oBAC5F,OAAO;oBACP,IAAI;iBACL;qBAAM;oBACL,IAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC;oBACtB,KAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;oBACtC,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,UAAC,GAAG,EAAE,IAAI;wBAC3D,EAAE;oBACJ,CAAC,CAAC,CAAC;iBACJ;YACH,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;SACtD;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAnED,gCAmEC"}
@@ -10,13 +10,7 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
- var __importDefault = (this && this.__importDefault) || function (mod) {
14
- return (mod && mod.__esModule) ? mod : { "default": mod };
15
- };
16
13
  Object.defineProperty(exports, "__esModule", { value: true });
17
- var automerge_1 = __importDefault(require("automerge"));
18
- var uint8ArrayToHex_1 = __importDefault(require("../utils/encoding/uint8ArrayToHex"));
19
- var textRandom_1 = __importDefault(require("../utils/textRandom"));
20
14
  function handleSubscribe(message, remotePeerId) {
21
15
  var _this = this;
22
16
  if (remotePeerId) {
@@ -24,7 +18,7 @@ function handleSubscribe(message, remotePeerId) {
24
18
  if (!this.subscriptions.includes(subId)) {
25
19
  this.subscriptions.push(subId);
26
20
  this.addKeyListener(message.key, function (msg) {
27
- if ((msg.type === "put" || msg.type === "crdt") && remotePeerId) {
21
+ if ((msg.type === "put" || msg.type === "crdtPut") && remotePeerId) {
28
22
  // We do not reply to the socket directly
29
23
  // instead we use the client id, in case the socket reconnects
30
24
  _this.network.sendToClientId(remotePeerId, msg);
@@ -44,20 +38,6 @@ function handleSubscribe(message, remotePeerId) {
44
38
  }
45
39
  }
46
40
  });
47
- this.loadCrdtDocument(message.key, false).then(function (doc) {
48
- // console.log("Load crdt from subscribe", message.key, doc);
49
- if (doc) {
50
- var savedDoc = automerge_1.default.save(doc);
51
- var msg = {
52
- type: "crdt",
53
- key: message.key,
54
- to: [],
55
- id: (0, textRandom_1.default)(10),
56
- doc: (0, uint8ArrayToHex_1.default)(savedDoc),
57
- };
58
- _this.network.sendToClientId(remotePeerId, msg);
59
- }
60
- });
61
41
  }
62
42
  exports.default = handleSubscribe;
63
43
  //# sourceMappingURL=handleSubscribe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handleSubscribe.js","sourceRoot":"","sources":["../../src/messageHandlers/handleSubscribe.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAkC;AAGlC,sFAAgE;AAChE,mEAA6C;AAE7C,SAAwB,eAAe,CAErC,OAAyB,EACzB,YAAoB;IAHtB,iBA8CC;IAzCC,IAAI,YAAY,EAAE;QAChB,IAAM,KAAK,GAAG,YAAY,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAE/B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,UAAC,GAAG;gBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE;oBAC/D,yCAAyC;oBACzC,8DAA8D;oBAC9D,KAAI,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;iBAChD;YACH,CAAC,CAAC,CAAC;SACJ;KACF;IAED,yCAAyC;IACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,UAAC,GAAG,EAAE,IAAI;QACpC,IAAI,IAAI,EAAE;YACR,IAAI;gBACF,IAAM,OAAO,yBAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAE,EAAE,EAAE,OAAO,CAAC,EAAE,GAAE,CAAC;gBACxD,KAAI,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;aACpD;YAAC,OAAO,CAAC,EAAE;gBACV,aAAa;aACd;SACF;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,UAAC,GAAG;QACjD,6DAA6D;QAC7D,IAAI,GAAG,EAAE;YACP,IAAM,QAAQ,GAAG,mBAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrC,IAAM,GAAG,GAAgB;gBACvB,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,EAAE,EAAE,EAAE;gBACN,EAAE,EAAE,IAAA,oBAAU,EAAC,EAAE,CAAC;gBAClB,GAAG,EAAE,IAAA,yBAAe,EAAC,QAAQ,CAAC;aAC/B,CAAC;YACF,KAAI,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;SAChD;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AA9CD,kCA8CC"}
1
+ {"version":3,"file":"handleSubscribe.js","sourceRoot":"","sources":["../../src/messageHandlers/handleSubscribe.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAGA,SAAwB,eAAe,CAErC,OAAyB,EACzB,YAAoB;IAHtB,iBA+BC;IA1BC,IAAI,YAAY,EAAE;QAChB,IAAM,KAAK,GAAG,YAAY,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAE/B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,UAAC,GAAG;gBACnC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,YAAY,EAAE;oBAClE,yCAAyC;oBACzC,8DAA8D;oBAC9D,KAAI,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;iBAChD;YACH,CAAC,CAAC,CAAC;SACJ;KACF;IAED,yCAAyC;IACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,UAAC,GAAG,EAAE,IAAI;QACpC,IAAI,IAAI,EAAE;YACR,IAAI;gBACF,IAAM,OAAO,yBAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAE,EAAE,EAAE,OAAO,CAAC,EAAE,GAAE,CAAC;gBACxD,KAAI,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;aACpD;YAAC,OAAO,CAAC,EAAE;gBACV,aAAa;aACd;SACF;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AA/BD,kCA+BC"}
@@ -52,9 +52,6 @@ function toolDbClientOnMessage(message, remotePeerId) {
52
52
  case "query":
53
53
  this.handleQuery(message, remotePeerId);
54
54
  break;
55
- case "crdt":
56
- this.handleCrdt(message, remotePeerId);
57
- break;
58
55
  default:
59
56
  break;
60
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"toolDbClientOnMessage.js","sourceRoot":"","sources":["../src/toolDbClientOnMessage.ts"],"names":[],"mappings":";;AAGA,SAAwB,qBAAqB,CAE3C,OAAsB,EACtB,YAAoB;IAEpB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACpC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;KACtC;IACD,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QACxD,OAAO,CAAC,IAAI,CACV,sCAAoC,OAAO,CAAC,IAAI,cAAS,YAAc,CACxE,CAAC;QACF,OAAO;KACR;IAED,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAE5C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAEjD,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;QACtB,OAAO,CAAC,IAAI,CAAC,iBAAe,OAAO,CAAC,IAAI,cAAS,YAAc,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACvB;IAED,wCAAwC;IACxC,IAAI,OAAO,CAAC,EAAE,EAAE;QACd,IAAM,KAAK,GAAG,OAAO,CAAC,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;YAC5B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAC9B;KACF;IAED,IACE,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,KAAK,EAClB;QACA,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,OAAO,EAAE,OAAO,OAAO,CAAC,CAAC;QAC7D,OAAO;KACR;IAED,QAAQ,OAAO,CAAC,IAAI,EAAE;QACpB,KAAK,MAAM;YACT,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACvC,MAAM;QAER,KAAK,MAAM;YACT,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACvC,MAAM;QAER,KAAK,WAAW;YACd,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC5C,MAAM;QAER,KAAK,KAAK;YACR,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACtC,MAAM;QAER,KAAK,KAAK;YACR,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACtC,MAAM;QAER,KAAK,SAAS;YACZ,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC1C,MAAM;QAER,KAAK,SAAS;YACZ,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC1C,MAAM;QAER,KAAK,OAAO;YACV,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACxC,MAAM;QAER,KAAK,MAAM;YACT,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACvC,MAAM;QAER;YACE,MAAM;KACT;AACH,CAAC;AAjFD,wCAiFC"}
1
+ {"version":3,"file":"toolDbClientOnMessage.js","sourceRoot":"","sources":["../src/toolDbClientOnMessage.ts"],"names":[],"mappings":";;AAGA,SAAwB,qBAAqB,CAE3C,OAAsB,EACtB,YAAoB;IAEpB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACpC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;KACtC;IACD,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;QACxD,OAAO,CAAC,IAAI,CACV,sCAAoC,OAAO,CAAC,IAAI,cAAS,YAAc,CACxE,CAAC;QACF,OAAO;KACR;IAED,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAE5C,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAEjD,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;QACtB,OAAO,CAAC,IAAI,CAAC,iBAAe,OAAO,CAAC,IAAI,cAAS,YAAc,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACvB;IAED,wCAAwC;IACxC,IAAI,OAAO,CAAC,EAAE,EAAE;QACd,IAAM,KAAK,GAAG,OAAO,CAAC,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;YAC5B,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAC9B;KACF;IAED,IACE,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,KAAK,EAClB;QACA,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,OAAO,EAAE,OAAO,OAAO,CAAC,CAAC;QAC7D,OAAO;KACR;IAED,QAAQ,OAAO,CAAC,IAAI,EAAE;QACpB,KAAK,MAAM;YACT,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACvC,MAAM;QAER,KAAK,MAAM;YACT,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACvC,MAAM;QAER,KAAK,WAAW;YACd,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC5C,MAAM;QAER,KAAK,KAAK;YACR,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACtC,MAAM;QAER,KAAK,KAAK;YACR,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACtC,MAAM;QAER,KAAK,SAAS;YACZ,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC1C,MAAM;QAER,KAAK,SAAS;YACZ,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC1C,MAAM;QAER,KAAK,OAAO;YACV,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACxC,MAAM;QAER;YACE,MAAM;KACT;AACH,CAAC;AA7ED,wCA6EC"}
@@ -1,9 +1,11 @@
1
+ import BaseCrdt from "./crdt/baseCrdt";
1
2
  import ToolDb from "./tooldb";
3
+ import { CrdtPutMessage } from "./types/message";
2
4
  /**
3
5
  * Triggers a GET request to other peers. If the data is available locally it will return that instead.
4
6
  * @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.
7
+ * @param userNamespaced If this key bolongs to a user or its public. Making it private will enforce validation for our address and signatures.
6
8
  * @param timeout Max time to wait for remote.
7
9
  * @returns Promise<Data>
8
10
  */
9
- export default function toolDbCrdtGet(this: ToolDb, key: string, userNamespaced?: boolean, timeoutMs?: number): Promise<Uint8Array | null>;
11
+ export default function toolDbCrdtGet<T = any>(this: ToolDb, key: string, crdt: BaseCrdt<T, any, any>, userNamespaced?: boolean, timeoutMs?: number): Promise<CrdtPutMessage<T> | null>;
@@ -1,41 +1,34 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  var _1 = require(".");
7
- var hexToUint8_1 = __importDefault(require("./utils/encoding/hexToUint8"));
8
4
  /**
9
5
  * Triggers a GET request to other peers. If the data is available locally it will return that instead.
10
6
  * @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.
7
+ * @param userNamespaced If this key bolongs to a user or its public. Making it private will enforce validation for our address and signatures.
12
8
  * @param timeout Max time to wait for remote.
13
9
  * @returns Promise<Data>
14
10
  */
15
- function toolDbCrdtGet(key, userNamespaced, timeoutMs) {
11
+ function toolDbCrdtGet(key, crdt, userNamespaced, timeoutMs) {
16
12
  var _this = this;
17
13
  if (userNamespaced === void 0) { userNamespaced = false; }
18
14
  if (timeoutMs === void 0) { timeoutMs = 1000; }
19
15
  return new Promise(function (resolve, reject) {
20
- if (userNamespaced && _this.getPubKey() === undefined) {
16
+ if (userNamespaced && _this.getAddress() === undefined) {
21
17
  reject(new Error("You are not authorized yet!"));
22
18
  return;
23
19
  }
24
- var finalKey = userNamespaced ? ":" + _this.getPubKey() + "." + key : key;
20
+ var finalKey = userNamespaced ? ":" + _this.getAddress() + "." + key : key;
25
21
  if (_this.options.debug) {
26
22
  console.log("CRDT GET > " + finalKey);
27
23
  }
28
24
  var msgId = (0, _1.textRandom)(10);
29
25
  var cancelTimeout = setTimeout(function () {
30
- _this.loadCrdtDocument(finalKey).then(function (data) {
31
- if (_this.options.debug) {
32
- console.log("CRDT DATA > ", data);
33
- }
26
+ _this.store.get(finalKey, function (err, data) {
34
27
  if (data) {
35
28
  try {
36
- _this.removeIdListener(msgId);
37
- var document_1 = (0, hexToUint8_1.default)(data);
38
- resolve(document_1);
29
+ var message = JSON.parse(data);
30
+ crdt.mergeChanges(message.v);
31
+ resolve(message);
39
32
  }
40
33
  catch (e) {
41
34
  resolve(null);
@@ -48,12 +41,26 @@ function toolDbCrdtGet(key, userNamespaced, timeoutMs) {
48
41
  }, timeoutMs);
49
42
  _this.addIdListener(msgId, function (msg) {
50
43
  if (_this.options.debug) {
51
- console.log("CRDT GET RECV > " + finalKey, msg);
44
+ console.log("GET RECV > " + finalKey, msg);
52
45
  }
53
46
  clearTimeout(cancelTimeout);
54
- if (msg.type === "crdt") {
55
- var document_2 = (0, hexToUint8_1.default)(msg.doc);
56
- resolve(document_2);
47
+ if (msg.type === "crdtPut") {
48
+ crdt.mergeChanges(msg.v);
49
+ resolve(msg);
50
+ }
51
+ });
52
+ _this.store.get(finalKey, function (err, data) {
53
+ if (data) {
54
+ try {
55
+ var msg = JSON.parse(data);
56
+ clearTimeout(cancelTimeout);
57
+ _this.removeIdListener(msgId);
58
+ crdt.mergeChanges(msg.v);
59
+ resolve(msg);
60
+ }
61
+ catch (e) {
62
+ // do nothing
63
+ }
57
64
  }
58
65
  });
59
66
  // Do get
@@ -1 +1 @@
1
- {"version":3,"file":"toolDbCrdtGet.js","sourceRoot":"","sources":["../src/toolDbCrdtGet.ts"],"names":[],"mappings":";;;;;AAAA,sBAA+B;AAE/B,2EAAqD;AAErD;;;;;;GAMG;AACH,SAAwB,aAAa,CAEnC,GAAW,EACX,cAAsB,EACtB,SAAgB;IAJlB,iBAyDC;IAtDC,+BAAA,EAAA,sBAAsB;IACtB,0BAAA,EAAA,gBAAgB;IAEhB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,IAAI,cAAc,IAAI,KAAI,CAAC,SAAS,EAAE,KAAK,SAAS,EAAE;YACpD,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;YACjD,OAAO;SACR;QACD,IAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,MAAI,KAAI,CAAC,SAAS,EAAE,SAAI,GAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QACtE,IAAI,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YACtB,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC;SACvC;QAED,IAAM,KAAK,GAAG,IAAA,aAAU,EAAC,EAAE,CAAC,CAAC;QAE7B,IAAM,aAAa,GAAG,UAAU,CAAC;YAC/B,KAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAC,IAAS;gBAC7C,IAAI,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE;oBACtB,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;iBACnC;gBACD,IAAI,IAAI,EAAE;oBACR,IAAI;wBACF,KAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;wBAC7B,IAAM,UAAQ,GAAG,IAAA,oBAAU,EAAC,IAAI,CAAC,CAAC;wBAClC,OAAO,CAAC,UAAQ,CAAC,CAAC;qBACnB;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,mBAAmB,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC;aAClD;YAED,YAAY,CAAC,aAAa,CAAC,CAAC;YAC5B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE;gBACvB,IAAM,UAAQ,GAAG,IAAA,oBAAU,EAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACrC,OAAO,CAAC,UAAQ,CAAC,CAAC;aACnB;QACH,CAAC,CAAC,CAAC;QAEH,SAAS;QACT,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YACrB,IAAI,EAAE,SAAS;YACf,EAAE,EAAE,EAAE;YACN,GAAG,EAAE,QAAQ;YACb,EAAE,EAAE,KAAK;SACV,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAzDD,gCAyDC"}
1
+ {"version":3,"file":"toolDbCrdtGet.js","sourceRoot":"","sources":["../src/toolDbCrdtGet.ts"],"names":[],"mappings":";;AAAA,sBAA+B;AAK/B;;;;;;GAMG;AACH,SAAwB,aAAa,CAEnC,GAAW,EACX,IAA2B,EAC3B,cAAsB,EACtB,SAAgB;IALlB,iBAqEC;IAjEC,+BAAA,EAAA,sBAAsB;IACtB,0BAAA,EAAA,gBAAgB;IAEhB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,IAAI,cAAc,IAAI,KAAI,CAAC,UAAU,EAAE,KAAK,SAAS,EAAE;YACrD,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;YACjD,OAAO;SACR;QACD,IAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,MAAI,KAAI,CAAC,UAAU,EAAE,SAAI,GAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QACvE,IAAI,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YACtB,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC;SACvC;QAED,IAAM,KAAK,GAAG,IAAA,aAAU,EAAC,EAAE,CAAC,CAAC;QAE7B,IAAM,aAAa,GAAG,UAAU,CAAC;YAC/B,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,GAAG,EAAE,IAAI;gBACjC,IAAI,IAAI,EAAE;oBACR,IAAI;wBACF,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACjC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBAC7B,OAAO,CAAC,OAAO,CAAC,CAAC;qBAClB;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,SAAS,EAAE;gBAC1B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,CAAC;aACd;QACH,CAAC,CAAC,CAAC;QAEH,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAC,GAAG,EAAE,IAAI;YACjC,IAAI,IAAI,EAAE;gBACR,IAAI;oBACF,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC7B,YAAY,CAAC,aAAa,CAAC,CAAC;oBAC5B,KAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;oBAC7B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACzB,OAAO,CAAC,GAAG,CAAC,CAAC;iBACd;gBAAC,OAAO,CAAC,EAAE;oBACV,aAAa;iBACd;aACF;QACH,CAAC,CAAC,CAAC;QAEH,SAAS;QACT,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YACrB,IAAI,EAAE,SAAS;YACf,EAAE,EAAE,EAAE;YACN,GAAG,EAAE,QAAQ;YACb,EAAE,EAAE,KAAK;SACV,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AArED,gCAqEC"}
@@ -1,11 +1,11 @@
1
- import { BinaryChange } from "automerge";
2
1
  import { CrdtPutMessage } from ".";
3
2
  import ToolDb from "./tooldb";
3
+ import BaseCrdt from "./crdt/baseCrdt";
4
4
  /**
5
5
  * Triggers a PUT request to other peers.
6
6
  * @param key key where we want to put the data at.
7
7
  * @param value Data we want to any (any type)
8
- * @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
+ * @param userNamespaced If this key bolongs to a user or its public. Making it private will enforce validation for our address and signatures.
9
9
  * @returns Promise<Data | null>
10
10
  */
11
- export default function toolDbCrdtPut<T = any>(this: ToolDb, key: string, value: BinaryChange[], userNamespaced?: boolean): Promise<CrdtPutMessage | null>;
11
+ export default function toolDbCrdtPut<T = any>(this: ToolDb, key: string, crdt: BaseCrdt<T, any, any>, userNamespaced?: boolean): Promise<CrdtPutMessage | null>;
@@ -16,15 +16,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  var _1 = require(".");
18
18
  var proofOfWork_1 = __importDefault(require("./utils/proofOfWork"));
19
- var uint8ArrayToHex_1 = __importDefault(require("./utils/encoding/uint8ArrayToHex"));
20
19
  /**
21
20
  * Triggers a PUT request to other peers.
22
21
  * @param key key where we want to put the data at.
23
22
  * @param value Data we want to any (any type)
24
- * @param userNamespaced If this key bolongs to a user or its public. Making it private will enforce validation for our public key and signatures.
23
+ * @param userNamespaced If this key bolongs to a user or its public. Making it private will enforce validation for our address and signatures.
25
24
  * @returns Promise<Data | null>
26
25
  */
27
- function toolDbCrdtPut(key, value, userNamespaced) {
26
+ function toolDbCrdtPut(key, crdt, userNamespaced) {
28
27
  var _this = this;
29
28
  if (userNamespaced === void 0) { userNamespaced = false; }
30
29
  return new Promise(function (resolve, reject) {
@@ -33,33 +32,34 @@ function toolDbCrdtPut(key, value, userNamespaced) {
33
32
  reject(new Error("Key cannot include dots!; " + key));
34
33
  return;
35
34
  }
36
- if (!_this.getPubKey()) {
35
+ if (!_this.getAddress()) {
37
36
  reject(new Error("You need to log in before you can PUT."));
38
37
  return;
39
38
  }
40
39
  var timestamp = new Date().getTime();
41
- var encodedData = JSON.stringify(value.map(uint8ArrayToHex_1.default));
42
- var dataString = "" + encodedData + _this.getPubKey() + timestamp;
40
+ var crdtChanges = crdt.getChanges();
41
+ var encodedData = JSON.stringify(crdtChanges);
42
+ var dataString = "" + encodedData + _this.getAddress() + timestamp;
43
43
  // WORK
44
44
  (0, proofOfWork_1.default)(dataString, _this.options.pow)
45
45
  .then(function (_a) {
46
46
  var hash = _a.hash, nonce = _a.nonce;
47
47
  var signature = _this.signData(hash);
48
- if (signature && _this.getPubKey()) {
48
+ if (signature && _this.getAddress()) {
49
49
  // Compose the message
50
50
  var data = {
51
- k: userNamespaced ? ":" + _this.getPubKey() + "." + key : key,
52
- a: _this.getPubKey() || "",
51
+ k: userNamespaced ? ":" + _this.getAddress() + "." + key : key,
52
+ a: _this.getAddress() || "",
53
53
  n: nonce,
54
54
  t: timestamp,
55
55
  h: hash,
56
56
  s: signature.signature,
57
- v: encodedData,
57
+ v: crdtChanges,
58
58
  };
59
59
  if (_this.options.debug) {
60
60
  console.log("PUT CRDT > " + key, data);
61
61
  }
62
- var finalMessage = __assign({ type: "crdtPut", id: (0, _1.textRandom)(10), to: [] }, data);
62
+ var finalMessage = __assign({ type: "crdtPut", crdt: crdt.type, id: (0, _1.textRandom)(10), to: [] }, data);
63
63
  _this.network.sendToAll(finalMessage);
64
64
  resolve(finalMessage);
65
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"toolDbCrdtPut.js","sourceRoot":"","sources":["../src/toolDbCrdtPut.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,sBAAiE;AAGjE,oEAA8C;AAE9C,qFAA+D;AAE/D;;;;;;GAMG;AACH,SAAwB,aAAa,CAEnC,GAAW,EACX,KAAqB,EACrB,cAAsB;IAJxB,iBAwDC;IApDC,+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,SAAS,EAAE,EAAE;YACrB,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,yBAAe,CAAC,CAAC,CAAC;QAE/D,IAAM,UAAU,GAAG,KAAG,WAAW,GAAG,KAAI,CAAC,SAAS,EAAE,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,IAAM,SAAS,GAAG,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,SAAS,IAAI,KAAI,CAAC,SAAS,EAAE,EAAE;gBACjC,sBAAsB;gBACtB,IAAM,IAAI,GAAqB;oBAC7B,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,MAAI,KAAI,CAAC,SAAS,EAAE,SAAI,GAAK,CAAC,CAAC,CAAC,GAAG;oBACvD,CAAC,EAAE,KAAI,CAAC,SAAS,EAAE,IAAI,EAAE;oBACzB,CAAC,EAAE,KAAK;oBACR,CAAC,EAAE,SAAS;oBACZ,CAAC,EAAE,IAAI;oBACP,CAAC,EAAE,SAAS,CAAC,SAAS;oBACtB,CAAC,EAAE,WAAW;iBACf,CAAC;gBAEF,IAAI,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE;oBACtB,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;iBACxC;gBAED,IAAM,YAAY,cAChB,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,IAAA,aAAU,EAAC,EAAE,CAAC,EAClB,EAAE,EAAE,EAAE,IACH,IAAI,CACR,CAAC;gBACF,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;gBACrC,OAAO,CAAC,YAAY,CAAC,CAAC;aACvB;QACH,CAAC,CAAC;aACD,KAAK,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAxDD,gCAwDC"}
1
+ {"version":3,"file":"toolDbCrdtPut.js","sourceRoot":"","sources":["../src/toolDbCrdtPut.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sBAAiE;AAGjE,oEAA8C;AAK9C;;;;;;GAMG;AACH,SAAwB,aAAa,CAEnC,GAAW,EACX,IAA2B,EAC3B,cAAsB;IAJxB,iBA2DC;IAvDC,+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,UAAU,EAAE,EAAE;YACtB,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,UAAU,EAAE,CAAC;QAEtC,IAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAEhD,IAAM,UAAU,GAAG,KAAG,WAAW,GAAG,KAAI,CAAC,UAAU,EAAE,GAAG,SAAW,CAAC;QAEpE,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,IAAM,SAAS,GAAG,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,SAAS,IAAI,KAAI,CAAC,UAAU,EAAE,EAAE;gBAClC,sBAAsB;gBACtB,IAAM,IAAI,GAAsC;oBAC9C,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,MAAI,KAAI,CAAC,UAAU,EAAE,SAAI,GAAK,CAAC,CAAC,CAAC,GAAG;oBACxD,CAAC,EAAE,KAAI,CAAC,UAAU,EAAE,IAAI,EAAE;oBAC1B,CAAC,EAAE,KAAK;oBACR,CAAC,EAAE,SAAS;oBACZ,CAAC,EAAE,IAAI;oBACP,CAAC,EAAE,SAAS,CAAC,SAAS;oBACtB,CAAC,EAAE,WAAW;iBACf,CAAC;gBAEF,IAAI,KAAI,CAAC,OAAO,CAAC,KAAK,EAAE;oBACtB,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;iBACxC;gBAED,IAAM,YAAY,cAChB,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,EAAE,EAAE,IAAA,aAAU,EAAC,EAAE,CAAC,EAClB,EAAE,EAAE,EAAE,IACH,IAAI,CACR,CAAC;gBACF,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;gBACrC,OAAO,CAAC,YAAY,CAAC,CAAC;aACvB;QACH,CAAC,CAAC;aACD,KAAK,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AA3DD,gCA2DC"}
@@ -2,7 +2,7 @@ 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
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.
5
+ * @param userNamespaced If this key bolongs to a user or its public. Making it private will enforce validation for our address and signatures.
6
6
  * @param timeout Max time to wait for remote.
7
7
  * @returns Promise<Data>
8
8
  */
package/dist/toolDbGet.js CHANGED
@@ -4,7 +4,7 @@ var _1 = require(".");
4
4
  /**
5
5
  * Triggers a GET request to other peers. If the data is available locally it will return that instead.
6
6
  * @param key key of the data
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.
7
+ * @param userNamespaced If this key bolongs to a user or its public. Making it private will enforce validation for our address and signatures.
8
8
  * @param timeout Max time to wait for remote.
9
9
  * @returns Promise<Data>
10
10
  */
@@ -13,11 +13,11 @@ function toolDbGet(key, userNamespaced, timeoutMs) {
13
13
  if (userNamespaced === void 0) { userNamespaced = false; }
14
14
  if (timeoutMs === void 0) { timeoutMs = 1000; }
15
15
  return new Promise(function (resolve, reject) {
16
- if (userNamespaced && _this.getPubKey() === undefined) {
16
+ if (userNamespaced && _this.getAddress() === undefined) {
17
17
  reject(new Error("You are not authorized yet!"));
18
18
  return;
19
19
  }
20
- var finalKey = userNamespaced ? ":" + _this.getPubKey() + "." + key : key;
20
+ var finalKey = userNamespaced ? ":" + _this.getAddress() + "." + key : key;
21
21
  if (_this.options.debug) {
22
22
  console.log("GET > " + finalKey);
23
23
  }