tool-db 2.5.0 → 2.5.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.
- package/README.md +82 -1
- package/bundle.js +1 -0
- package/dist/adapters-base/networkAdapter.d.ts +58 -0
- package/dist/adapters-base/networkAdapter.js +214 -0
- package/dist/adapters-base/networkAdapter.js.map +1 -0
- package/dist/adapters-base/storageAdapter.d.ts +11 -0
- package/dist/adapters-base/storageAdapter.js +36 -0
- package/dist/adapters-base/storageAdapter.js.map +1 -0
- package/dist/adapters-base/userAdapter.d.ts +15 -0
- package/dist/adapters-base/userAdapter.js +42 -0
- package/dist/adapters-base/userAdapter.js.map +1 -0
- package/dist/crdt/baseCrdt.d.ts +9 -0
- package/dist/crdt/baseCrdt.js +27 -0
- package/dist/crdt/baseCrdt.js.map +1 -0
- package/dist/crdt/counterCrdt.d.ts +30 -0
- package/dist/crdt/counterCrdt.js +106 -0
- package/dist/crdt/counterCrdt.js.map +1 -0
- package/dist/crdt/listCrdt.d.ts +42 -0
- package/dist/crdt/listCrdt.js +159 -0
- package/dist/crdt/listCrdt.js.map +1 -0
- package/dist/crdt/mapCrdt.d.ts +32 -0
- package/dist/crdt/mapCrdt.js +118 -0
- package/dist/crdt/mapCrdt.js.map +1 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.js +83 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +2 -0
- package/dist/logger.js +29 -0
- package/dist/logger.js.map +1 -0
- package/dist/messageHandlers/handleCrdtGet.d.ts +2 -0
- package/dist/messageHandlers/handleCrdtGet.js +29 -0
- package/dist/messageHandlers/handleCrdtGet.js.map +1 -0
- package/dist/messageHandlers/handleCrdtPut.d.ts +2 -0
- package/dist/messageHandlers/handleCrdtPut.js +93 -0
- package/dist/messageHandlers/handleCrdtPut.js.map +1 -0
- package/dist/messageHandlers/handleGet.d.ts +2 -0
- package/dist/messageHandlers/handleGet.js +29 -0
- package/dist/messageHandlers/handleGet.js.map +1 -0
- package/dist/messageHandlers/handlePing.d.ts +2 -0
- package/dist/messageHandlers/handlePing.js +36 -0
- package/dist/messageHandlers/handlePing.js.map +1 -0
- package/dist/messageHandlers/handlePong.d.ts +2 -0
- package/dist/messageHandlers/handlePong.js +26 -0
- package/dist/messageHandlers/handlePong.js.map +1 -0
- package/dist/messageHandlers/handlePut.d.ts +2 -0
- package/dist/messageHandlers/handlePut.js +57 -0
- package/dist/messageHandlers/handlePut.js.map +1 -0
- package/dist/messageHandlers/handleQuery.d.ts +2 -0
- package/dist/messageHandlers/handleQuery.js +23 -0
- package/dist/messageHandlers/handleQuery.js.map +1 -0
- package/dist/messageHandlers/handleSubscribe.d.ts +2 -0
- package/dist/messageHandlers/handleSubscribe.js +44 -0
- package/dist/messageHandlers/handleSubscribe.js.map +1 -0
- package/dist/server.d.ts +1 -0
- package/dist/server.js +9 -0
- package/dist/server.js.map +1 -0
- package/dist/shared.d.ts +2 -0
- package/dist/shared.js +7 -0
- package/dist/shared.js.map +1 -0
- package/dist/toolDbAnonSignIn.d.ts +2 -0
- package/dist/toolDbAnonSignIn.js +7 -0
- package/dist/toolDbAnonSignIn.js.map +1 -0
- package/dist/toolDbClientOnMessage.d.ts +2 -0
- package/dist/toolDbClientOnMessage.js +59 -0
- package/dist/toolDbClientOnMessage.js.map +1 -0
- package/dist/toolDbCrdtGet.d.ts +9 -0
- package/dist/toolDbCrdtGet.js +77 -0
- package/dist/toolDbCrdtGet.js.map +1 -0
- package/dist/toolDbCrdtPut.d.ts +9 -0
- package/dist/toolDbCrdtPut.js +63 -0
- package/dist/toolDbCrdtPut.js.map +1 -0
- package/dist/toolDbGet.d.ts +9 -0
- package/dist/toolDbGet.js +77 -0
- package/dist/toolDbGet.js.map +1 -0
- package/dist/toolDbKeysSignIn.d.ts +2 -0
- package/dist/toolDbKeysSignIn.js +16 -0
- package/dist/toolDbKeysSignIn.js.map +1 -0
- package/dist/toolDbPut.d.ts +9 -0
- package/dist/toolDbPut.js +69 -0
- package/dist/toolDbPut.js.map +1 -0
- package/dist/toolDbQueryKeys.d.ts +8 -0
- package/dist/toolDbQueryKeys.js +66 -0
- package/dist/toolDbQueryKeys.js.map +1 -0
- package/dist/toolDbSignIn.d.ts +2 -0
- package/dist/toolDbSignIn.js +27 -0
- package/dist/toolDbSignIn.js.map +1 -0
- package/dist/toolDbSignUp.d.ts +2 -0
- package/dist/toolDbSignUp.js +101 -0
- package/dist/toolDbSignUp.js.map +1 -0
- package/dist/toolDbSubscribe.d.ts +9 -0
- package/dist/toolDbSubscribe.js +50 -0
- package/dist/toolDbSubscribe.js.map +1 -0
- package/dist/toolDbVerificationWrapper.d.ts +2 -0
- package/dist/toolDbVerificationWrapper.js +98 -0
- package/dist/toolDbVerificationWrapper.js.map +1 -0
- package/dist/tooldb.d.ts +108 -0
- package/dist/tooldb.js +284 -0
- package/dist/tooldb.js.map +1 -0
- package/dist/types/message.d.ts +100 -0
- package/dist/types/message.js +17 -0
- package/dist/types/message.js.map +1 -0
- package/dist/types/tooldb.d.ts +79 -0
- package/dist/types/tooldb.js +3 -0
- package/dist/types/tooldb.js.map +1 -0
- package/dist/utils/catchReturn.d.ts +1 -0
- package/dist/utils/catchReturn.js +8 -0
- package/dist/utils/catchReturn.js.map +1 -0
- package/dist/utils/encoding/arrayBufferToHex.d.ts +1 -0
- package/dist/utils/encoding/arrayBufferToHex.js +19 -0
- package/dist/utils/encoding/arrayBufferToHex.js.map +1 -0
- package/dist/utils/encoding/arrayBufferToString.d.ts +1 -0
- package/dist/utils/encoding/arrayBufferToString.js +12 -0
- package/dist/utils/encoding/arrayBufferToString.js.map +1 -0
- package/dist/utils/encoding/hexToArrayBuffer.d.ts +1 -0
- package/dist/utils/encoding/hexToArrayBuffer.js +15 -0
- package/dist/utils/encoding/hexToArrayBuffer.js.map +1 -0
- package/dist/utils/encoding/hexToString.d.ts +1 -0
- package/dist/utils/encoding/hexToString.js +12 -0
- package/dist/utils/encoding/hexToString.js.map +1 -0
- package/dist/utils/encoding/hexToUint8.d.ts +1 -0
- package/dist/utils/encoding/hexToUint8.js +8 -0
- package/dist/utils/encoding/hexToUint8.js.map +1 -0
- package/dist/utils/encoding/stringToArrayBuffer.d.ts +1 -0
- package/dist/utils/encoding/stringToArrayBuffer.js +12 -0
- package/dist/utils/encoding/stringToArrayBuffer.js.map +1 -0
- package/dist/utils/getPeerSignature.d.ts +2 -0
- package/dist/utils/getPeerSignature.js +9 -0
- package/dist/utils/getPeerSignature.js.map +1 -0
- package/dist/utils/getTimestamp.d.ts +1 -0
- package/dist/utils/getTimestamp.js +7 -0
- package/dist/utils/getTimestamp.js.map +1 -0
- package/dist/utils/proofOfWork.d.ts +4 -0
- package/dist/utils/proofOfWork.js +16 -0
- package/dist/utils/proofOfWork.js.map +1 -0
- package/dist/utils/randomAnimal.d.ts +1 -0
- package/dist/utils/randomAnimal.js +77 -0
- package/dist/utils/randomAnimal.js.map +1 -0
- package/dist/utils/sha1.d.ts +1 -0
- package/dist/utils/sha1.js +13 -0
- package/dist/utils/sha1.js.map +1 -0
- package/dist/utils/sha256.d.ts +3 -0
- package/dist/utils/sha256.js +13 -0
- package/dist/utils/sha256.js.map +1 -0
- package/dist/utils/textRandom.d.ts +1 -0
- package/dist/utils/textRandom.js +15 -0
- package/dist/utils/textRandom.js.map +1 -0
- package/dist/utils/uniq.d.ts +1 -0
- package/dist/utils/uniq.js +7 -0
- package/dist/utils/uniq.js.map +1 -0
- package/dist/utils/verifyMessage.d.ts +8 -0
- package/dist/utils/verifyMessage.js +129 -0
- package/dist/utils/verifyMessage.js.map +1 -0
- package/dist/utils/verifyPeer.d.ts +2 -0
- package/dist/utils/verifyPeer.js +15 -0
- package/dist/utils/verifyPeer.js.map +1 -0
- package/package.json +4 -3
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.ListCrdt = void 0;
|
|
19
|
+
var __1 = require("..");
|
|
20
|
+
var ListCrdt = /** @class */ (function (_super) {
|
|
21
|
+
__extends(ListCrdt, _super);
|
|
22
|
+
function ListCrdt(author, changes) {
|
|
23
|
+
var _this = _super.call(this) || this;
|
|
24
|
+
_this.type = __1.CRDT_LIST;
|
|
25
|
+
_this._changes = [];
|
|
26
|
+
_this._author = "";
|
|
27
|
+
_this._value = [];
|
|
28
|
+
_this._tempValues = [];
|
|
29
|
+
_this._lastUpdateSize = 0;
|
|
30
|
+
_this._author = author;
|
|
31
|
+
if (changes) {
|
|
32
|
+
_this.mergeChanges(changes);
|
|
33
|
+
}
|
|
34
|
+
_this.calculate();
|
|
35
|
+
return _this;
|
|
36
|
+
}
|
|
37
|
+
ListCrdt.prototype.changesSort = function (a, b) {
|
|
38
|
+
if (a.i > b.i)
|
|
39
|
+
return 1;
|
|
40
|
+
if (a.i < b.i)
|
|
41
|
+
return -1;
|
|
42
|
+
return 0; // Should never be equal!
|
|
43
|
+
};
|
|
44
|
+
ListCrdt.prototype.calculate = function () {
|
|
45
|
+
var temp = [];
|
|
46
|
+
// Only update if we have new changes
|
|
47
|
+
if (Object.values(this._changes).length !== this._lastUpdateSize) {
|
|
48
|
+
this._changes.sort(this.changesSort).forEach(function (change) {
|
|
49
|
+
if (change.t === "INS") {
|
|
50
|
+
var poisitionToInsert = 0;
|
|
51
|
+
if (change.p) {
|
|
52
|
+
poisitionToInsert = temp.findIndex(function (v) { return v.index === change.p; }) + 1;
|
|
53
|
+
}
|
|
54
|
+
else if (change.n) {
|
|
55
|
+
poisitionToInsert = temp.findIndex(function (v) { return v.index === change.n; });
|
|
56
|
+
}
|
|
57
|
+
var cursorValue = {
|
|
58
|
+
value: change.v,
|
|
59
|
+
index: change.i,
|
|
60
|
+
tomb: false,
|
|
61
|
+
prev: change.p,
|
|
62
|
+
next: change.n,
|
|
63
|
+
};
|
|
64
|
+
temp.splice(poisitionToInsert, 0, cursorValue);
|
|
65
|
+
}
|
|
66
|
+
else if (change.t === "DEL") {
|
|
67
|
+
var poisitionToInsert = temp.findIndex(function (v) { return v.index === change.v; });
|
|
68
|
+
temp[poisitionToInsert].tomb = true;
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
this._lastUpdateSize = Object.values(temp).length;
|
|
72
|
+
this._tempValues = temp;
|
|
73
|
+
this._value = temp.filter(function (v) { return !v.tomb; }).map(function (v) { return v.value; });
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
Object.defineProperty(ListCrdt.prototype, "value", {
|
|
77
|
+
get: function () {
|
|
78
|
+
this.calculate();
|
|
79
|
+
return this._value;
|
|
80
|
+
},
|
|
81
|
+
enumerable: false,
|
|
82
|
+
configurable: true
|
|
83
|
+
});
|
|
84
|
+
ListCrdt.prototype.mergeChanges = function (newChanges) {
|
|
85
|
+
var _this = this;
|
|
86
|
+
newChanges.forEach(function (change) {
|
|
87
|
+
// Filter by author and index
|
|
88
|
+
var filtered = _this._changes.filter(function (c) { return c.i === change.i && c.t === change.t && c.v === change.v; });
|
|
89
|
+
// Only add if there are not matches
|
|
90
|
+
if (filtered.length === 0) {
|
|
91
|
+
_this._changes.push(change);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
this.calculate();
|
|
95
|
+
};
|
|
96
|
+
ListCrdt.prototype.getChanges = function () {
|
|
97
|
+
return this._changes;
|
|
98
|
+
};
|
|
99
|
+
ListCrdt.prototype.INS = function (value, index) {
|
|
100
|
+
var _this = this;
|
|
101
|
+
var filterTombs = this._tempValues.filter(function (v) { return !v.tomb; });
|
|
102
|
+
var currentPrev = undefined;
|
|
103
|
+
var currentNext = undefined;
|
|
104
|
+
if (filterTombs.length !== 0) {
|
|
105
|
+
var currentIndex_1 = filterTombs[index].index;
|
|
106
|
+
var currentIndexPosition = this._tempValues.findIndex(function (v) { return v.index === currentIndex_1; });
|
|
107
|
+
currentPrev = this._tempValues[currentIndexPosition - 1];
|
|
108
|
+
currentNext = this._tempValues[currentIndexPosition];
|
|
109
|
+
}
|
|
110
|
+
var ourChanges = this._changes.filter(function (c) {
|
|
111
|
+
return c.i.startsWith(_this._author);
|
|
112
|
+
});
|
|
113
|
+
this._changes.push({
|
|
114
|
+
t: "INS",
|
|
115
|
+
p: currentPrev === null || currentPrev === void 0 ? void 0 : currentPrev.index,
|
|
116
|
+
n: currentNext === null || currentNext === void 0 ? void 0 : currentNext.index,
|
|
117
|
+
v: value,
|
|
118
|
+
i: this._author + "-" + "".concat(ourChanges.length).padStart(8, "0"),
|
|
119
|
+
});
|
|
120
|
+
this.calculate();
|
|
121
|
+
};
|
|
122
|
+
ListCrdt.prototype.PUSH = function (value) {
|
|
123
|
+
var _this = this;
|
|
124
|
+
var _a;
|
|
125
|
+
var filterTombs = this._tempValues.filter(function (v) { return !v.tomb; });
|
|
126
|
+
var currentIndex = (_a = filterTombs[filterTombs.length - 1]) === null || _a === void 0 ? void 0 : _a.index;
|
|
127
|
+
var currentIndexPosition = this._tempValues.findIndex(function (v) { return v.index === currentIndex; });
|
|
128
|
+
var currentPrev = this._tempValues[currentIndexPosition];
|
|
129
|
+
var ourChanges = this._changes.filter(function (c) {
|
|
130
|
+
return c.i.startsWith(_this._author);
|
|
131
|
+
});
|
|
132
|
+
this._changes.push({
|
|
133
|
+
t: "INS",
|
|
134
|
+
p: currentPrev === null || currentPrev === void 0 ? void 0 : currentPrev.index,
|
|
135
|
+
n: undefined,
|
|
136
|
+
v: value,
|
|
137
|
+
i: this._author + "-" + "".concat(ourChanges.length).padStart(8, "0"),
|
|
138
|
+
});
|
|
139
|
+
this.calculate();
|
|
140
|
+
};
|
|
141
|
+
ListCrdt.prototype.DEL = function (index) {
|
|
142
|
+
var _this = this;
|
|
143
|
+
var currentIndex = this._tempValues.filter(function (v) { return !v.tomb; })[index].index;
|
|
144
|
+
var currentIndexPosition = this._tempValues.findIndex(function (v) { return v.index === currentIndex; });
|
|
145
|
+
var current = this._tempValues[currentIndexPosition];
|
|
146
|
+
var ourChanges = this._changes.filter(function (c) {
|
|
147
|
+
return c.i.startsWith(_this._author);
|
|
148
|
+
});
|
|
149
|
+
this._changes.push({
|
|
150
|
+
t: "DEL",
|
|
151
|
+
v: current.index,
|
|
152
|
+
i: this._author + "-" + "".concat(ourChanges.length).padStart(8, "0"),
|
|
153
|
+
});
|
|
154
|
+
this.calculate();
|
|
155
|
+
};
|
|
156
|
+
return ListCrdt;
|
|
157
|
+
}(__1.BaseCrdt));
|
|
158
|
+
exports.ListCrdt = ListCrdt;
|
|
159
|
+
//# sourceMappingURL=listCrdt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listCrdt.js","sourceRoot":"","sources":["../../lib/crdt/listCrdt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { BaseCrdt } from "..";
|
|
2
|
+
export declare type MapOperations = "SET" | "DEL";
|
|
3
|
+
export interface ChangeMapBase<T> {
|
|
4
|
+
t: MapOperations;
|
|
5
|
+
a: string;
|
|
6
|
+
k: string;
|
|
7
|
+
i: number;
|
|
8
|
+
}
|
|
9
|
+
export interface SetMapChange<T> extends ChangeMapBase<T> {
|
|
10
|
+
t: "SET";
|
|
11
|
+
v: T;
|
|
12
|
+
}
|
|
13
|
+
export interface DelMapChange<T> extends ChangeMapBase<T> {
|
|
14
|
+
t: "DEL";
|
|
15
|
+
}
|
|
16
|
+
export declare type MapChanges<T> = SetMapChange<T> | DelMapChange<T>;
|
|
17
|
+
export declare class MapCrdt<T> extends BaseCrdt<T, MapChanges<T>, Record<string, T>> {
|
|
18
|
+
type: string;
|
|
19
|
+
private _changes;
|
|
20
|
+
private _author;
|
|
21
|
+
private _value;
|
|
22
|
+
private _keyIndex;
|
|
23
|
+
private _lastUpdateSize;
|
|
24
|
+
constructor(author: string, changes?: MapChanges<T>[]);
|
|
25
|
+
changesSort(a: MapChanges<T>, b: MapChanges<T>): 0 | 1 | -1;
|
|
26
|
+
calculate(): void;
|
|
27
|
+
get value(): Record<string, T>;
|
|
28
|
+
mergeChanges(newChanges: MapChanges<T>[]): void;
|
|
29
|
+
getChanges(): MapChanges<T>[];
|
|
30
|
+
SET(key: string, value: T): void;
|
|
31
|
+
DEL(key: string): void;
|
|
32
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.MapCrdt = void 0;
|
|
19
|
+
var __1 = require("..");
|
|
20
|
+
var MapCrdt = /** @class */ (function (_super) {
|
|
21
|
+
__extends(MapCrdt, _super);
|
|
22
|
+
function MapCrdt(author, changes) {
|
|
23
|
+
var _this = _super.call(this) || this;
|
|
24
|
+
_this.type = __1.CRDT_MAP;
|
|
25
|
+
_this._changes = [];
|
|
26
|
+
_this._author = "";
|
|
27
|
+
_this._value = {};
|
|
28
|
+
_this._keyIndex = {};
|
|
29
|
+
_this._lastUpdateSize = 0;
|
|
30
|
+
_this._author = author;
|
|
31
|
+
if (changes) {
|
|
32
|
+
_this.mergeChanges(changes);
|
|
33
|
+
}
|
|
34
|
+
_this.calculate();
|
|
35
|
+
return _this;
|
|
36
|
+
}
|
|
37
|
+
MapCrdt.prototype.changesSort = function (a, b) {
|
|
38
|
+
if (a.i < b.i)
|
|
39
|
+
return -1;
|
|
40
|
+
if (a.i > b.i)
|
|
41
|
+
return 1;
|
|
42
|
+
if (a.t === "SET" && b.t === "DEL")
|
|
43
|
+
return -1;
|
|
44
|
+
if (a.t === "DEL" && b.t === "SET")
|
|
45
|
+
return 1;
|
|
46
|
+
if (a.a < b.a)
|
|
47
|
+
return -1;
|
|
48
|
+
if (a.a > b.a)
|
|
49
|
+
return 1;
|
|
50
|
+
return 0; // Should never be equal!
|
|
51
|
+
};
|
|
52
|
+
MapCrdt.prototype.calculate = function () {
|
|
53
|
+
var _this = this;
|
|
54
|
+
var temp = {};
|
|
55
|
+
// Only update if we have new changes
|
|
56
|
+
if (Object.values(this._changes).length !== this._lastUpdateSize) {
|
|
57
|
+
this._changes.sort(this.changesSort).forEach(function (change) {
|
|
58
|
+
// Here we apply the model properties
|
|
59
|
+
// Since this is a KV store we dont need much logic,
|
|
60
|
+
// except for the sorting of the changes. Then we just apply them.
|
|
61
|
+
if (change.t === "SET") {
|
|
62
|
+
temp[change.k] = change.v;
|
|
63
|
+
}
|
|
64
|
+
else if (change.t === "DEL") {
|
|
65
|
+
delete temp[change.k];
|
|
66
|
+
}
|
|
67
|
+
_this._keyIndex[change.k] = change.i;
|
|
68
|
+
});
|
|
69
|
+
this._lastUpdateSize = Object.values(temp).length;
|
|
70
|
+
this._value = temp;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
Object.defineProperty(MapCrdt.prototype, "value", {
|
|
74
|
+
get: function () {
|
|
75
|
+
this.calculate();
|
|
76
|
+
return this._value;
|
|
77
|
+
},
|
|
78
|
+
enumerable: false,
|
|
79
|
+
configurable: true
|
|
80
|
+
});
|
|
81
|
+
MapCrdt.prototype.mergeChanges = function (newChanges) {
|
|
82
|
+
var _this = this;
|
|
83
|
+
newChanges.forEach(function (change) {
|
|
84
|
+
// Filter by author and index
|
|
85
|
+
var filtered = _this._changes.filter(function (c) { return c.i === change.i && c.a === change.a && c.t === change.t; });
|
|
86
|
+
// Only add if there are not matches
|
|
87
|
+
if (filtered.length === 0) {
|
|
88
|
+
_this._changes.push(change);
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
this.calculate();
|
|
92
|
+
};
|
|
93
|
+
MapCrdt.prototype.getChanges = function () {
|
|
94
|
+
return this._changes;
|
|
95
|
+
};
|
|
96
|
+
MapCrdt.prototype.SET = function (key, value) {
|
|
97
|
+
this._keyIndex[key] = (this._keyIndex[key] || 0) + 1;
|
|
98
|
+
this._changes.push({
|
|
99
|
+
t: "SET",
|
|
100
|
+
k: key,
|
|
101
|
+
a: this._author,
|
|
102
|
+
v: value,
|
|
103
|
+
i: this._keyIndex[key],
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
MapCrdt.prototype.DEL = function (key) {
|
|
107
|
+
this._keyIndex[key] = (this._keyIndex[key] || 0) + 1;
|
|
108
|
+
this._changes.push({
|
|
109
|
+
t: "DEL",
|
|
110
|
+
k: key,
|
|
111
|
+
a: this._author,
|
|
112
|
+
i: this._keyIndex[key],
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
return MapCrdt;
|
|
116
|
+
}(__1.BaseCrdt));
|
|
117
|
+
exports.MapCrdt = MapCrdt;
|
|
118
|
+
//# sourceMappingURL=mapCrdt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapCrdt.js","sourceRoot":"","sources":["../../lib/crdt/mapCrdt.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,wBAAwC;AAsBxC;IAAgC,2BAA6C;IAa3E,iBAAY,MAAc,EAAE,OAAyB;QAArD,YACE,iBAAO,SAOR;QApBM,UAAI,GAAG,YAAQ,CAAC;QAEf,cAAQ,GAAoB,EAAE,CAAC;QAE/B,aAAO,GAAG,EAAE,CAAC;QAEb,YAAM,GAAsB,EAAE,CAAC;QAE/B,eAAS,GAA2B,EAAE,CAAC;QAEvC,qBAAe,GAAW,CAAC,CAAC;QAIlC,KAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,OAAO,EAAE;YACX,KAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;SAC5B;QAED,KAAI,CAAC,SAAS,EAAE,CAAC;;IACnB,CAAC;IAED,6BAAW,GAAX,UAAY,CAAgB,EAAE,CAAgB;QAC5C,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK;YAAE,OAAO,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK;YAAE,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACxB,OAAO,CAAC,CAAC,CAAC,yBAAyB;IACrC,CAAC;IAED,2BAAS,GAAT;QAAA,iBAkBC;QAjBC,IAAM,IAAI,GAAsB,EAAE,CAAC;QACnC,qCAAqC;QACrC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,EAAE;YAChE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,UAAC,MAAM;gBAClD,qCAAqC;gBACrC,oDAAoD;gBACpD,kEAAkE;gBAClE,IAAI,MAAM,CAAC,CAAC,KAAK,KAAK,EAAE;oBACtB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;iBAC3B;qBAAM,IAAI,MAAM,CAAC,CAAC,KAAK,KAAK,EAAE;oBAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;iBACvB;gBACD,KAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YAClD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;SACpB;IACH,CAAC;IAED,sBAAI,0BAAK;aAAT;YACE,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;;;OAAA;IAEM,8BAAY,GAAnB,UAAoB,UAA2B;QAA/C,iBAYC;QAXC,UAAU,CAAC,OAAO,CAAC,UAAC,MAAM;YACxB,6BAA6B;YAC7B,IAAM,QAAQ,GAAG,KAAI,CAAC,QAAQ,CAAC,MAAM,CACnC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,EAAxD,CAAwD,CAChE,CAAC;YACF,oCAAoC;YACpC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBACzB,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAC5B;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAEM,4BAAU,GAAjB;QACE,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEM,qBAAG,GAAV,UAAW,GAAW,EAAE,KAAQ;QAC9B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,CAAC,EAAE,KAAK;YACR,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI,CAAC,OAAO;YACf,CAAC,EAAE,KAAK;YACR,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;SACvB,CAAC,CAAC;IACL,CAAC;IAEM,qBAAG,GAAV,UAAW,GAAW;QACpB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,CAAC,EAAE,KAAK;YACR,CAAC,EAAE,GAAG;YACN,CAAC,EAAE,IAAI,CAAC,OAAO;YACf,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;SACvB,CAAC,CAAC;IACL,CAAC;IACH,cAAC;AAAD,CAAC,AAhGD,CAAgC,YAAQ,GAgGvC;AAhGY,0BAAO"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export { default as proofOfWork } from "./utils/proofOfWork";
|
|
2
|
+
export { default as sha1 } from "./utils/sha1";
|
|
3
|
+
export { default as sha256 } from "./utils/sha256";
|
|
4
|
+
export { default as uniq } from "./utils/uniq";
|
|
5
|
+
export { default as randomAnimal } from "./utils/randomAnimal";
|
|
6
|
+
export { default as verifyMessage } from "./utils/verifyMessage";
|
|
7
|
+
export { default as getPeerSignature } from "./utils/getPeerSignature";
|
|
8
|
+
export { default as verifyPeer } from "./utils/verifyPeer";
|
|
9
|
+
export { default as textRandom } from "./utils/textRandom";
|
|
10
|
+
export { default as catchReturn } from "./utils/catchReturn";
|
|
11
|
+
export { default as stringToArrayBuffer } from "./utils/encoding/stringToArrayBuffer";
|
|
12
|
+
export { default as arrayBufferToString } from "./utils/encoding/arrayBufferToString";
|
|
13
|
+
export { default as arrayBufferToHex } from "./utils/encoding/arrayBufferToHex";
|
|
14
|
+
export { default as hexToArrayBuffer } from "./utils/encoding/hexToArrayBuffer";
|
|
15
|
+
export { default as hexToString } from "./utils/encoding/hexToString";
|
|
16
|
+
export { default as hexToUint8 } from "./utils/encoding/hexToUint8";
|
|
17
|
+
export { default as ToolDbNetworkAdapter } from "./adapters-base/networkAdapter";
|
|
18
|
+
export { default as ToolDbStorageAdapter } from "./adapters-base/storageAdapter";
|
|
19
|
+
export { default as ToolDbUserAdapter } from "./adapters-base/userAdapter";
|
|
20
|
+
export * from "./types/tooldb";
|
|
21
|
+
export * from "./types/message";
|
|
22
|
+
export * from "./crdt/baseCrdt";
|
|
23
|
+
export * from "./crdt/counterCrdt";
|
|
24
|
+
export * from "./crdt/listCrdt";
|
|
25
|
+
export * from "./crdt/mapCrdt";
|
|
26
|
+
export { default as handleSubscribe } from "./messageHandlers/handleSubscribe";
|
|
27
|
+
export { default as handleCrdtGet } from "./messageHandlers/handleCrdtGet";
|
|
28
|
+
export { default as handleCrdtPut } from "./messageHandlers/handleCrdtPut";
|
|
29
|
+
export { default as handleQuery } from "./messageHandlers/handleQuery";
|
|
30
|
+
export { default as handlePing } from "./messageHandlers/handlePing";
|
|
31
|
+
export { default as handlePong } from "./messageHandlers/handlePong";
|
|
32
|
+
export { default as handleGet } from "./messageHandlers/handleGet";
|
|
33
|
+
export { default as handlePut } from "./messageHandlers/handlePut";
|
|
34
|
+
export { default as ToolDb } from "./tooldb";
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.ToolDb = exports.handlePut = exports.handleGet = exports.handlePong = exports.handlePing = exports.handleQuery = exports.handleCrdtPut = exports.handleCrdtGet = exports.handleSubscribe = exports.ToolDbUserAdapter = exports.ToolDbStorageAdapter = exports.ToolDbNetworkAdapter = exports.hexToUint8 = exports.hexToString = exports.hexToArrayBuffer = exports.arrayBufferToHex = exports.arrayBufferToString = exports.stringToArrayBuffer = exports.catchReturn = exports.textRandom = exports.verifyPeer = exports.getPeerSignature = exports.verifyMessage = exports.randomAnimal = exports.uniq = exports.sha256 = exports.sha1 = exports.proofOfWork = void 0;
|
|
21
|
+
var proofOfWork_1 = require("./utils/proofOfWork");
|
|
22
|
+
Object.defineProperty(exports, "proofOfWork", { enumerable: true, get: function () { return __importDefault(proofOfWork_1).default; } });
|
|
23
|
+
var sha1_1 = require("./utils/sha1");
|
|
24
|
+
Object.defineProperty(exports, "sha1", { enumerable: true, get: function () { return __importDefault(sha1_1).default; } });
|
|
25
|
+
var sha256_1 = require("./utils/sha256");
|
|
26
|
+
Object.defineProperty(exports, "sha256", { enumerable: true, get: function () { return __importDefault(sha256_1).default; } });
|
|
27
|
+
var uniq_1 = require("./utils/uniq");
|
|
28
|
+
Object.defineProperty(exports, "uniq", { enumerable: true, get: function () { return __importDefault(uniq_1).default; } });
|
|
29
|
+
var randomAnimal_1 = require("./utils/randomAnimal");
|
|
30
|
+
Object.defineProperty(exports, "randomAnimal", { enumerable: true, get: function () { return __importDefault(randomAnimal_1).default; } });
|
|
31
|
+
var verifyMessage_1 = require("./utils/verifyMessage");
|
|
32
|
+
Object.defineProperty(exports, "verifyMessage", { enumerable: true, get: function () { return __importDefault(verifyMessage_1).default; } });
|
|
33
|
+
var getPeerSignature_1 = require("./utils/getPeerSignature");
|
|
34
|
+
Object.defineProperty(exports, "getPeerSignature", { enumerable: true, get: function () { return __importDefault(getPeerSignature_1).default; } });
|
|
35
|
+
var verifyPeer_1 = require("./utils/verifyPeer");
|
|
36
|
+
Object.defineProperty(exports, "verifyPeer", { enumerable: true, get: function () { return __importDefault(verifyPeer_1).default; } });
|
|
37
|
+
var textRandom_1 = require("./utils/textRandom");
|
|
38
|
+
Object.defineProperty(exports, "textRandom", { enumerable: true, get: function () { return __importDefault(textRandom_1).default; } });
|
|
39
|
+
var catchReturn_1 = require("./utils/catchReturn");
|
|
40
|
+
Object.defineProperty(exports, "catchReturn", { enumerable: true, get: function () { return __importDefault(catchReturn_1).default; } });
|
|
41
|
+
var stringToArrayBuffer_1 = require("./utils/encoding/stringToArrayBuffer");
|
|
42
|
+
Object.defineProperty(exports, "stringToArrayBuffer", { enumerable: true, get: function () { return __importDefault(stringToArrayBuffer_1).default; } });
|
|
43
|
+
var arrayBufferToString_1 = require("./utils/encoding/arrayBufferToString");
|
|
44
|
+
Object.defineProperty(exports, "arrayBufferToString", { enumerable: true, get: function () { return __importDefault(arrayBufferToString_1).default; } });
|
|
45
|
+
var arrayBufferToHex_1 = require("./utils/encoding/arrayBufferToHex");
|
|
46
|
+
Object.defineProperty(exports, "arrayBufferToHex", { enumerable: true, get: function () { return __importDefault(arrayBufferToHex_1).default; } });
|
|
47
|
+
var hexToArrayBuffer_1 = require("./utils/encoding/hexToArrayBuffer");
|
|
48
|
+
Object.defineProperty(exports, "hexToArrayBuffer", { enumerable: true, get: function () { return __importDefault(hexToArrayBuffer_1).default; } });
|
|
49
|
+
var hexToString_1 = require("./utils/encoding/hexToString");
|
|
50
|
+
Object.defineProperty(exports, "hexToString", { enumerable: true, get: function () { return __importDefault(hexToString_1).default; } });
|
|
51
|
+
var hexToUint8_1 = require("./utils/encoding/hexToUint8");
|
|
52
|
+
Object.defineProperty(exports, "hexToUint8", { enumerable: true, get: function () { return __importDefault(hexToUint8_1).default; } });
|
|
53
|
+
var networkAdapter_1 = require("./adapters-base/networkAdapter");
|
|
54
|
+
Object.defineProperty(exports, "ToolDbNetworkAdapter", { enumerable: true, get: function () { return __importDefault(networkAdapter_1).default; } });
|
|
55
|
+
var storageAdapter_1 = require("./adapters-base/storageAdapter");
|
|
56
|
+
Object.defineProperty(exports, "ToolDbStorageAdapter", { enumerable: true, get: function () { return __importDefault(storageAdapter_1).default; } });
|
|
57
|
+
var userAdapter_1 = require("./adapters-base/userAdapter");
|
|
58
|
+
Object.defineProperty(exports, "ToolDbUserAdapter", { enumerable: true, get: function () { return __importDefault(userAdapter_1).default; } });
|
|
59
|
+
__exportStar(require("./types/tooldb"), exports);
|
|
60
|
+
__exportStar(require("./types/message"), exports);
|
|
61
|
+
__exportStar(require("./crdt/baseCrdt"), exports);
|
|
62
|
+
__exportStar(require("./crdt/counterCrdt"), exports);
|
|
63
|
+
__exportStar(require("./crdt/listCrdt"), exports);
|
|
64
|
+
__exportStar(require("./crdt/mapCrdt"), exports);
|
|
65
|
+
var handleSubscribe_1 = require("./messageHandlers/handleSubscribe");
|
|
66
|
+
Object.defineProperty(exports, "handleSubscribe", { enumerable: true, get: function () { return __importDefault(handleSubscribe_1).default; } });
|
|
67
|
+
var handleCrdtGet_1 = require("./messageHandlers/handleCrdtGet");
|
|
68
|
+
Object.defineProperty(exports, "handleCrdtGet", { enumerable: true, get: function () { return __importDefault(handleCrdtGet_1).default; } });
|
|
69
|
+
var handleCrdtPut_1 = require("./messageHandlers/handleCrdtPut");
|
|
70
|
+
Object.defineProperty(exports, "handleCrdtPut", { enumerable: true, get: function () { return __importDefault(handleCrdtPut_1).default; } });
|
|
71
|
+
var handleQuery_1 = require("./messageHandlers/handleQuery");
|
|
72
|
+
Object.defineProperty(exports, "handleQuery", { enumerable: true, get: function () { return __importDefault(handleQuery_1).default; } });
|
|
73
|
+
var handlePing_1 = require("./messageHandlers/handlePing");
|
|
74
|
+
Object.defineProperty(exports, "handlePing", { enumerable: true, get: function () { return __importDefault(handlePing_1).default; } });
|
|
75
|
+
var handlePong_1 = require("./messageHandlers/handlePong");
|
|
76
|
+
Object.defineProperty(exports, "handlePong", { enumerable: true, get: function () { return __importDefault(handlePong_1).default; } });
|
|
77
|
+
var handleGet_1 = require("./messageHandlers/handleGet");
|
|
78
|
+
Object.defineProperty(exports, "handleGet", { enumerable: true, get: function () { return __importDefault(handleGet_1).default; } });
|
|
79
|
+
var handlePut_1 = require("./messageHandlers/handlePut");
|
|
80
|
+
Object.defineProperty(exports, "handlePut", { enumerable: true, get: function () { return __importDefault(handlePut_1).default; } });
|
|
81
|
+
var tooldb_1 = require("./tooldb");
|
|
82
|
+
Object.defineProperty(exports, "ToolDb", { enumerable: true, get: function () { return __importDefault(tooldb_1).default; } });
|
|
83
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,mDAA6D;AAApD,2HAAA,OAAO,OAAe;AAC/B,qCAA+C;AAAtC,6GAAA,OAAO,OAAQ;AACxB,yCAAmD;AAA1C,iHAAA,OAAO,OAAU;AAC1B,qCAA+C;AAAtC,6GAAA,OAAO,OAAQ;AAExB,qDAA+D;AAAtD,6HAAA,OAAO,OAAgB;AAChC,uDAAiE;AAAxD,+HAAA,OAAO,OAAiB;AACjC,6DAAuE;AAA9D,qIAAA,OAAO,OAAoB;AACpC,iDAA2D;AAAlD,yHAAA,OAAO,OAAc;AAC9B,iDAA2D;AAAlD,yHAAA,OAAO,OAAc;AAE9B,mDAA6D;AAApD,2HAAA,OAAO,OAAe;AAE/B,4EAAsF;AAA7E,2IAAA,OAAO,OAAuB;AACvC,4EAAsF;AAA7E,2IAAA,OAAO,OAAuB;AAEvC,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,iEAAiF;AAAxE,uIAAA,OAAO,OAAwB;AACxC,iEAAiF;AAAxE,uIAAA,OAAO,OAAwB;AACxC,2DAA2E;AAAlE,iIAAA,OAAO,OAAqB;AAErC,iDAA+B;AAC/B,kDAAgC;AAChC,kDAAgC;AAChC,qDAAmC;AACnC,kDAAgC;AAChC,iDAA+B;AAE/B,qEAA+E;AAAtE,mIAAA,OAAO,OAAmB;AACnC,iEAA2E;AAAlE,+HAAA,OAAO,OAAiB;AACjC,iEAA2E;AAAlE,+HAAA,OAAO,OAAiB;AACjC,6DAAuE;AAA9D,2HAAA,OAAO,OAAe;AAC/B,2DAAqE;AAA5D,yHAAA,OAAO,OAAc;AAC9B,2DAAqE;AAA5D,yHAAA,OAAO,OAAc;AAC9B,yDAAmE;AAA1D,uHAAA,OAAO,OAAa;AAC7B,yDAAmE;AAA1D,uHAAA,OAAO,OAAa;AAE7B,mCAA6C;AAApC,iHAAA,OAAO,OAAU"}
|
package/dist/logger.d.ts
ADDED
package/dist/logger.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
3
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
4
|
+
if (ar || !(i in from)) {
|
|
5
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
6
|
+
ar[i] = from[i];
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
var _1 = require(".");
|
|
13
|
+
function logger(arg0, arg1, arg2, arg3, arg4, arg5) {
|
|
14
|
+
if (this.options.debug) {
|
|
15
|
+
var isNode = typeof window === "undefined";
|
|
16
|
+
var title = isNode
|
|
17
|
+
? this.options.storageName
|
|
18
|
+
: "%c" + this.options.storageName;
|
|
19
|
+
var style = isNode
|
|
20
|
+
? ""
|
|
21
|
+
: "background: #" +
|
|
22
|
+
(0, _1.sha1)(this.options.storageName).slice(-6) +
|
|
23
|
+
"; padding: 2px; color: black";
|
|
24
|
+
console.log.apply(console, __spreadArray([title,
|
|
25
|
+
style], [arg0, arg1, arg2, arg3, arg4, arg4, arg5].slice(0, arguments.length), false));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.default = logger;
|
|
29
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../lib/logger.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sBAAiC;AAEjC,SAAwB,MAAM,CAE5B,IAAS,EACT,IAAU,EACV,IAAU,EACV,IAAU,EACV,IAAU,EACV,IAAU;IAEV,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;QACtB,IAAM,MAAM,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;QAC7C,IAAM,KAAK,GAAG,MAAM;YAClB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW;YAC1B,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAEpC,IAAM,KAAK,GAAG,MAAM;YAClB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,eAAe;gBACf,IAAA,OAAI,EAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACxC,8BAA8B,CAAC;QAEnC,OAAO,CAAC,GAAG,OAAX,OAAO,iBACL,KAAK;YACL,KAAK,GACF,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,UACxE;KACH;AACH,CAAC;AA3BD,yBA2BC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function handleCrdtGet(message, remotePeerId) {
|
|
4
|
+
var _this = this;
|
|
5
|
+
this.store
|
|
6
|
+
.get(message.key)
|
|
7
|
+
.then(function (data) {
|
|
8
|
+
try {
|
|
9
|
+
// Use the id of the get so the other client knows we are replying
|
|
10
|
+
var oldData = {
|
|
11
|
+
type: "crdtPut",
|
|
12
|
+
data: JSON.parse(data),
|
|
13
|
+
to: [],
|
|
14
|
+
id: message.id,
|
|
15
|
+
};
|
|
16
|
+
_this.network.sendToClientId(remotePeerId, oldData);
|
|
17
|
+
}
|
|
18
|
+
catch (e) {
|
|
19
|
+
// socket.send(data);
|
|
20
|
+
// do nothing
|
|
21
|
+
}
|
|
22
|
+
})
|
|
23
|
+
.catch(function (e) {
|
|
24
|
+
_this.logger("Local key not found, relay", JSON.stringify(message));
|
|
25
|
+
_this.network.sendToAll(message, false);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
exports.default = handleCrdtGet;
|
|
29
|
+
//# sourceMappingURL=handleCrdtGet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleCrdtGet.js","sourceRoot":"","sources":["../../lib/messageHandlers/handleCrdtGet.ts"],"names":[],"mappings":";;AAEA,SAAwB,aAAa,CAEnC,OAAuB,EACvB,YAAoB;IAHtB,iBA0BC;IArBC,IAAI,CAAC,KAAK;SACP,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;SAChB,IAAI,CAAC,UAAC,IAAI;QACT,IAAI;YACF,kEAAkE;YAClE,IAAM,OAAO,GAAG;gBACd,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACtB,EAAE,EAAE,EAAE;gBACN,EAAE,EAAE,OAAO,CAAC,EAAE;aACG,CAAC;YACpB,KAAI,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;SACpD;QAAC,OAAO,CAAC,EAAE;YACV,qBAAqB;YACrB,aAAa;SACd;IACH,CAAC,CAAC;SACD,KAAK,CAAC,UAAC,CAAC;QACP,KAAI,CAAC,MAAM,CAAC,4BAA4B,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACnE,KAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACP,CAAC;AA1BD,gCA0BC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
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 __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
var __1 = require("..");
|
|
18
|
+
var toolDbVerificationWrapper_1 = __importDefault(require("../toolDbVerificationWrapper"));
|
|
19
|
+
function handleCrdtPut(message, remotePeerId) {
|
|
20
|
+
var _this = this;
|
|
21
|
+
toolDbVerificationWrapper_1.default.call(this, message.data).then(function (value) {
|
|
22
|
+
// this.logger("Verification wrapper result: ", value, message.k);
|
|
23
|
+
if (value === __1.VerifyResult.Verified) {
|
|
24
|
+
_this.emit("crdtput", message);
|
|
25
|
+
_this.emit("data", message.data);
|
|
26
|
+
_this.emit("verified", message);
|
|
27
|
+
// relay to other servers !!!
|
|
28
|
+
_this.network.sendToAll(message, true);
|
|
29
|
+
_this.store
|
|
30
|
+
.get(message.data.k)
|
|
31
|
+
.then(function (oldData) {
|
|
32
|
+
try {
|
|
33
|
+
var parsedOldData = JSON.parse(oldData);
|
|
34
|
+
var newMessage = message;
|
|
35
|
+
// Merge old document with new data incoming and save it
|
|
36
|
+
// Add handles for all kinds of CRDT we add
|
|
37
|
+
var oldDoc = void 0;
|
|
38
|
+
if (parsedOldData.c === __1.CRDT_MAP) {
|
|
39
|
+
oldDoc = new __1.MapCrdt(_this.userAccount.getAddress() || "", parsedOldData.v);
|
|
40
|
+
}
|
|
41
|
+
if (parsedOldData.c === __1.CRDT_LIST) {
|
|
42
|
+
oldDoc = new __1.ListCrdt(_this.userAccount.getAddress() || "", parsedOldData.v);
|
|
43
|
+
}
|
|
44
|
+
if (parsedOldData.c === __1.CRDT_COUNTER) {
|
|
45
|
+
oldDoc = new __1.CounterCrdt(_this.userAccount.getAddress() || "", parsedOldData.v);
|
|
46
|
+
}
|
|
47
|
+
var changesMerged = [];
|
|
48
|
+
if (oldDoc) {
|
|
49
|
+
oldDoc.mergeChanges(message.data.v);
|
|
50
|
+
changesMerged = oldDoc.getChanges();
|
|
51
|
+
}
|
|
52
|
+
newMessage = __assign({}, message);
|
|
53
|
+
newMessage.data.v = changesMerged;
|
|
54
|
+
if (parsedOldData.t < message.data.t) {
|
|
55
|
+
var key = newMessage.data.k;
|
|
56
|
+
_this.triggerKeyListener(key, newMessage.data);
|
|
57
|
+
_this.store
|
|
58
|
+
.put(newMessage.data.k, JSON.stringify(newMessage.data))
|
|
59
|
+
.catch(function (e) {
|
|
60
|
+
// do nothing
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
var key = message.data.k;
|
|
65
|
+
_this.triggerKeyListener(key, parsedOldData);
|
|
66
|
+
}
|
|
67
|
+
// } else {
|
|
68
|
+
// this.logger(
|
|
69
|
+
// `${message.k} has old data, but its newer. old ${parsedOldData.t} < new ${message.t}`
|
|
70
|
+
// );
|
|
71
|
+
// }
|
|
72
|
+
}
|
|
73
|
+
catch (e) {
|
|
74
|
+
_this.logger("Couldnt parse crdt data", oldData, e);
|
|
75
|
+
}
|
|
76
|
+
})
|
|
77
|
+
.catch(function (e) {
|
|
78
|
+
var key = message.data.k;
|
|
79
|
+
_this.triggerKeyListener(key, message.data);
|
|
80
|
+
_this.store
|
|
81
|
+
.put(message.data.k, JSON.stringify(message.data))
|
|
82
|
+
.catch(function (e) {
|
|
83
|
+
// do nothing
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
_this.logger("unverified message: ", value, message);
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
exports.default = handleCrdtPut;
|
|
93
|
+
//# sourceMappingURL=handleCrdtPut.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleCrdtPut.js","sourceRoot":"","sources":["../../lib/messageHandlers/handleCrdtPut.ts"],"names":[],"mappings":"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"}
|