tool-db 1.0.22 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/README.md +71 -9
  2. package/dist/deduplicator.d.ts +19 -0
  3. package/dist/deduplicator.js +60 -0
  4. package/dist/deduplicator.js.map +1 -0
  5. package/dist/index.d.ts +4 -2
  6. package/dist/index.js +9 -5
  7. package/dist/index.js.map +1 -1
  8. package/dist/loadCrdtDocument.d.ts +3 -0
  9. package/dist/loadCrdtDocument.js +43 -0
  10. package/dist/loadCrdtDocument.js.map +1 -0
  11. package/dist/server.d.ts +1 -0
  12. package/dist/server.js +12 -0
  13. package/dist/server.js.map +1 -0
  14. package/dist/shared.js +0 -1
  15. package/dist/shared.js.map +1 -1
  16. package/dist/toolDbAnonSignIn.d.ts +2 -2
  17. package/dist/toolDbClientOnMessage.d.ts +2 -0
  18. package/dist/toolDbClientOnMessage.js +204 -0
  19. package/dist/toolDbClientOnMessage.js.map +1 -0
  20. package/dist/toolDbCrdtPut.d.ts +11 -0
  21. package/dist/toolDbCrdtPut.js +118 -0
  22. package/dist/toolDbCrdtPut.js.map +1 -0
  23. package/dist/toolDbGet.d.ts +2 -2
  24. package/dist/toolDbGet.js +46 -19
  25. package/dist/toolDbGet.js.map +1 -1
  26. package/dist/toolDbGetPubKey.d.ts +2 -2
  27. package/dist/toolDbKeysSignIn.d.ts +8 -0
  28. package/dist/toolDbKeysSignIn.js +23 -0
  29. package/dist/toolDbKeysSignIn.js.map +1 -0
  30. package/dist/toolDbPut.d.ts +3 -3
  31. package/dist/toolDbPut.js +33 -22
  32. package/dist/toolDbPut.js.map +1 -1
  33. package/dist/toolDbSignIn.d.ts +2 -2
  34. package/dist/toolDbSignIn.js +1 -1
  35. package/dist/toolDbSignIn.js.map +1 -1
  36. package/dist/toolDbSignUp.d.ts +2 -2
  37. package/dist/toolDbSignUp.js +25 -18
  38. package/dist/toolDbSignUp.js.map +1 -1
  39. package/dist/toolDbSubscribe.d.ts +8 -0
  40. package/dist/toolDbSubscribe.js +61 -0
  41. package/dist/toolDbSubscribe.js.map +1 -0
  42. package/dist/toolDbVerificationWrapper.d.ts +2 -2
  43. package/dist/toolDbVerificationWrapper.js +2 -2
  44. package/dist/toolDbVerificationWrapper.js.map +1 -1
  45. package/dist/tooldb.d.ts +85 -0
  46. package/dist/tooldb.js +164 -0
  47. package/dist/tooldb.js.map +1 -0
  48. package/dist/types/graph.d.ts +0 -9
  49. package/dist/types/message.d.ts +56 -0
  50. package/dist/types/tooldb.d.ts +10 -0
  51. package/dist/types/tooldb.js +3 -0
  52. package/dist/types/tooldb.js.map +1 -0
  53. package/dist/utils/base64ToBinaryChange.d.ts +2 -0
  54. package/dist/utils/base64ToBinaryChange.js +18 -0
  55. package/dist/utils/base64ToBinaryChange.js.map +1 -0
  56. package/dist/utils/base64ToBinaryDocument.d.ts +2 -0
  57. package/dist/utils/base64ToBinaryDocument.js +18 -0
  58. package/dist/utils/base64ToBinaryDocument.js.map +1 -0
  59. package/dist/utils/crypto/loadKeysComb.d.ts +2 -1
  60. package/dist/utils/crypto/loadKeysComb.js +19 -26
  61. package/dist/utils/crypto/loadKeysComb.js.map +1 -1
  62. package/dist/utils/getIpFromUrl.d.ts +1 -0
  63. package/dist/utils/getIpFromUrl.js +7 -0
  64. package/dist/utils/getIpFromUrl.js.map +1 -0
  65. package/dist/utils/indexedb.d.ts +5 -0
  66. package/dist/utils/indexedb.js +83 -0
  67. package/dist/utils/indexedb.js.map +1 -0
  68. package/dist/utils/leveldb.d.ts +5 -0
  69. package/dist/utils/leveldb.js +47 -0
  70. package/dist/utils/leveldb.js.map +1 -0
  71. package/dist/utils/proofOfWork.js +1 -1
  72. package/dist/utils/proofOfWork.js.map +1 -1
  73. package/dist/utils/uint8ToBase64.d.ts +2 -1
  74. package/dist/utils/uint8ToBase64.js.map +1 -1
  75. package/dist/utils/verifyMessage.d.ts +3 -3
  76. package/dist/utils/verifyMessage.js +29 -12
  77. package/dist/utils/verifyMessage.js.map +1 -1
  78. package/dist/wss.d.ts +28 -0
  79. package/dist/wss.js +176 -0
  80. package/dist/wss.js.map +1 -0
  81. package/package.json +14 -11
  82. package/dist/customGun.d.ts +0 -1
  83. package/dist/customGun.js +0 -147
  84. package/dist/customGun.js.map +0 -1
  85. package/dist/toolDbClient.d.ts +0 -46
  86. package/dist/toolDbClient.js +0 -83
  87. package/dist/toolDbClient.js.map +0 -1
  88. package/dist/toolDbService.d.ts +0 -29
  89. package/dist/toolDbService.js +0 -149
  90. package/dist/toolDbService.js.map +0 -1
@@ -41,13 +41,13 @@ function toolDbVerificationWrapper(data) {
41
41
  var _this = this;
42
42
  // This wrapper function adds our custom verification functions to all messages.
43
43
  return new Promise(function (resolve, reject) {
44
- (0, _1.verifyMessage)(data).then(function (verified) { return __awaiter(_this, void 0, void 0, function () {
44
+ (0, _1.verifyMessage)(data, _this.options.pow).then(function (verified) { return __awaiter(_this, void 0, void 0, function () {
45
45
  var skipCustom_1;
46
46
  return __generator(this, function (_a) {
47
47
  if (verified) {
48
48
  skipCustom_1 = true;
49
49
  this._customVerificator.forEach(function (listener) {
50
- if (listener && data.key && data.key.startsWith(listener.key)) {
50
+ if (listener && data.k && data.k.startsWith(listener.key)) {
51
51
  skipCustom_1 = false;
52
52
  listener
53
53
  .fn(data)
@@ -1 +1 @@
1
- {"version":3,"file":"toolDbVerificationWrapper.js","sourceRoot":"","sources":["../src/toolDbVerificationWrapper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sBAA+E;AAE/E,SAAwB,yBAAyB,CAE/C,IAA0B;IAF5B,iBAmCC;IA/BC,gFAAgF;IAChF,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,IAAA,gBAAa,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAO,QAAQ;;;gBACtC,IAAI,QAAQ,EAAE;oBACR,eAAa,IAAI,CAAC;oBACtB,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,UAAC,QAAQ;wBACvC,IAAI,QAAQ,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;4BAC7D,YAAU,GAAG,KAAK,CAAC;4BACnB,QAAQ;iCACL,EAAE,CAAC,IAAI,CAAC;iCACR,IAAI,CAAC,UAAC,QAAQ;gCACb,IAAI,QAAQ,EAAE;oCACZ,OAAO,CAAC,eAAY,CAAC,QAAQ,CAAC,CAAC;iCAChC;qCAAM;oCACL,OAAO,CAAC,eAAY,CAAC,wBAAwB,CAAC,CAAC;iCAChD;4BACH,CAAC,CAAC;iCACD,KAAK,CAAC,UAAC,CAAC;gCACP,OAAO,CAAC,eAAY,CAAC,wBAAwB,CAAC,CAAC;4BACjD,CAAC,CAAC,CAAC;yBACN;oBACH,CAAC,CAAC,CAAC;oBAEH,IAAI,YAAU,EAAE;wBACd,OAAO,CAAC,QAAQ,CAAC,CAAC;qBACnB;iBACF;qBAAM;oBACL,OAAO,CAAC,eAAY,CAAC,mBAAmB,CAAC,CAAC;iBAC3C;;;aACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAnCD,4CAmCC"}
1
+ {"version":3,"file":"toolDbVerificationWrapper.js","sourceRoot":"","sources":["../src/toolDbVerificationWrapper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sBAA0E;AAE1E,SAAwB,yBAAyB,CAE/C,IAA2B;IAF7B,iBAmCC;IA/BC,gFAAgF;IAChF,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,IAAA,gBAAa,EAAC,IAAI,EAAE,KAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAO,QAAQ;;;gBACxD,IAAI,QAAQ,EAAE;oBACR,eAAa,IAAI,CAAC;oBACtB,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,UAAC,QAAQ;wBACvC,IAAI,QAAQ,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;4BACzD,YAAU,GAAG,KAAK,CAAC;4BACnB,QAAQ;iCACL,EAAE,CAAC,IAAI,CAAC;iCACR,IAAI,CAAC,UAAC,QAAiB;gCACtB,IAAI,QAAQ,EAAE;oCACZ,OAAO,CAAC,eAAY,CAAC,QAAQ,CAAC,CAAC;iCAChC;qCAAM;oCACL,OAAO,CAAC,eAAY,CAAC,wBAAwB,CAAC,CAAC;iCAChD;4BACH,CAAC,CAAC;iCACD,KAAK,CAAC,UAAC,CAAC;gCACP,OAAO,CAAC,eAAY,CAAC,wBAAwB,CAAC,CAAC;4BACjD,CAAC,CAAC,CAAC;yBACN;oBACH,CAAC,CAAC,CAAC;oBAEH,IAAI,YAAU,EAAE;wBACd,OAAO,CAAC,QAAQ,CAAC,CAAC;qBACnB;iBACF;qBAAM;oBACL,OAAO,CAAC,eAAY,CAAC,mBAAmB,CAAC,CAAC;iBAC3C;;;aACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAnCD,4CAmCC"}
@@ -0,0 +1,85 @@
1
+ import Deduplicator from "./deduplicator";
2
+ import WSS from "./wss";
3
+ import { ToolDbOptions } from "./types/tooldb";
4
+ import toolDbGet from "./toolDbGet";
5
+ import toolDbPut from "./toolDbPut";
6
+ import toolDbGetPubKey from "./toolDbGetPubKey";
7
+ import toolDbSignIn from "./toolDbSignIn";
8
+ import toolDbAnonSignIn from "./toolDbAnonSignIn";
9
+ import toolDbSignUp from "./toolDbSignUp";
10
+ import toolDbVerificationWrapper from "./toolDbVerificationWrapper";
11
+ import toolDbClientOnMessage from "./toolDbClientOnMessage";
12
+ import { CrdtMessage, PutMessage, ToolDbMessage, VerificationData } from ".";
13
+ import toolDbSubscribe from "./toolDbSubscribe";
14
+ import toolDbCrdtPut from "./toolDbCrdtPut";
15
+ import { FreezeObject } from "automerge";
16
+ import loadCrdtDocument from "./loadCrdtDocument";
17
+ import toolDbKeysSignIn from "./toolDbKeysSignIn";
18
+ export interface Listener {
19
+ key: string;
20
+ timeout: number | null;
21
+ fn: (msg: PutMessage | CrdtMessage) => void;
22
+ }
23
+ interface Verificator<T> {
24
+ key: string;
25
+ fn: (msg: VerificationData<T>) => Promise<boolean>;
26
+ }
27
+ export default class ToolDb {
28
+ private _deduplicator;
29
+ private _websockets;
30
+ private _store;
31
+ private _documents;
32
+ clientOnMessage: typeof toolDbClientOnMessage;
33
+ subscribeData: typeof toolDbSubscribe;
34
+ onDisconnect: () => void;
35
+ loadCrdtDocument: typeof loadCrdtDocument;
36
+ getData: typeof toolDbGet;
37
+ putData: typeof toolDbPut;
38
+ putCrdt: typeof toolDbCrdtPut;
39
+ getPubKey: typeof toolDbGetPubKey;
40
+ signIn: typeof toolDbSignIn;
41
+ anonSignIn: typeof toolDbAnonSignIn;
42
+ keysSignIn: typeof toolDbKeysSignIn;
43
+ signUp: typeof toolDbSignUp;
44
+ verify: typeof toolDbVerificationWrapper;
45
+ /**
46
+ * id listeners listen for a specific message ID just once
47
+ */
48
+ _idListeners: Record<string, (msg: ToolDbMessage) => void>;
49
+ addIdListener: (id: string, fn: (msg: ToolDbMessage) => void) => void;
50
+ removeIdListener: (id: string) => void;
51
+ getUserNamespacedKey(key: string): string;
52
+ /**
53
+ * Key listeners listen for a specific key, as long as the listener remains active
54
+ */
55
+ _keyListeners: (Listener | null)[];
56
+ addKeyListener: <T>(key: string, fn: (msg: CrdtMessage | PutMessage<T>) => void) => number;
57
+ removeKeyListener: (id: number) => void;
58
+ triggerKeyListener: (key: string, message: PutMessage | CrdtMessage) => void;
59
+ /**
60
+ * Custom verificators can enhance default verification on any key field
61
+ */
62
+ _customVerificator: (Verificator<any> | null)[];
63
+ addCustomVerification: <T = any>(key: string, fn: (msg: VerificationData) => Promise<boolean>) => number;
64
+ removeCustomVerification: (id: number) => void;
65
+ user: {
66
+ keys: {
67
+ signKeys: CryptoKeyPair;
68
+ encryptionKeys: CryptoKeyPair;
69
+ };
70
+ name: string;
71
+ pubKey: string;
72
+ } | undefined;
73
+ private _options;
74
+ get options(): ToolDbOptions;
75
+ get deduplicator(): Deduplicator;
76
+ get websockets(): WSS;
77
+ get store(): {
78
+ start: () => void;
79
+ put: (key: string, data: any, cb: (err: any, data?: any) => void) => void;
80
+ get: (key: string, cb: (err: any, data?: any) => void) => void;
81
+ };
82
+ get documents(): Record<string, FreezeObject<any>>;
83
+ constructor(options?: Partial<ToolDbOptions>);
84
+ }
85
+ export {};
package/dist/tooldb.js ADDED
@@ -0,0 +1,164 @@
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 deduplicator_1 = __importDefault(require("./deduplicator"));
18
+ var wss_1 = __importDefault(require("./wss"));
19
+ var toolDbGet_1 = __importDefault(require("./toolDbGet"));
20
+ var toolDbPut_1 = __importDefault(require("./toolDbPut"));
21
+ var toolDbGetPubKey_1 = __importDefault(require("./toolDbGetPubKey"));
22
+ var toolDbSignIn_1 = __importDefault(require("./toolDbSignIn"));
23
+ var toolDbAnonSignIn_1 = __importDefault(require("./toolDbAnonSignIn"));
24
+ var toolDbSignUp_1 = __importDefault(require("./toolDbSignUp"));
25
+ var toolDbVerificationWrapper_1 = __importDefault(require("./toolDbVerificationWrapper"));
26
+ var toolDbClientOnMessage_1 = __importDefault(require("./toolDbClientOnMessage"));
27
+ var indexedb_1 = __importDefault(require("./utils/indexedb"));
28
+ var leveldb_1 = __importDefault(require("./utils/leveldb"));
29
+ var toolDbSubscribe_1 = __importDefault(require("./toolDbSubscribe"));
30
+ var toolDbCrdtPut_1 = __importDefault(require("./toolDbCrdtPut"));
31
+ var loadCrdtDocument_1 = __importDefault(require("./loadCrdtDocument"));
32
+ var toolDbKeysSignIn_1 = __importDefault(require("./toolDbKeysSignIn"));
33
+ var ToolDb = /** @class */ (function () {
34
+ function ToolDb(options) {
35
+ var _this = this;
36
+ if (options === void 0) { options = {}; }
37
+ this._documents = {};
38
+ this.clientOnMessage = toolDbClientOnMessage_1.default;
39
+ this.subscribeData = toolDbSubscribe_1.default;
40
+ this.onDisconnect = function () {
41
+ //
42
+ };
43
+ this.loadCrdtDocument = loadCrdtDocument_1.default;
44
+ this.getData = toolDbGet_1.default;
45
+ this.putData = toolDbPut_1.default;
46
+ this.putCrdt = toolDbCrdtPut_1.default;
47
+ this.getPubKey = toolDbGetPubKey_1.default;
48
+ this.signIn = toolDbSignIn_1.default;
49
+ this.anonSignIn = toolDbAnonSignIn_1.default;
50
+ this.keysSignIn = toolDbKeysSignIn_1.default;
51
+ this.signUp = toolDbSignUp_1.default;
52
+ this.verify = toolDbVerificationWrapper_1.default;
53
+ /**
54
+ * id listeners listen for a specific message ID just once
55
+ */
56
+ this._idListeners = {};
57
+ this.addIdListener = function (id, fn) {
58
+ _this._idListeners[id] = fn;
59
+ };
60
+ this.removeIdListener = function (id) {
61
+ delete _this._idListeners[id];
62
+ };
63
+ /**
64
+ * Key listeners listen for a specific key, as long as the listener remains active
65
+ */
66
+ this._keyListeners = [];
67
+ this.addKeyListener = function (key, fn) {
68
+ var newListener = {
69
+ key: key,
70
+ timeout: null,
71
+ fn: fn,
72
+ };
73
+ _this._keyListeners.push(newListener);
74
+ return _this._keyListeners.length;
75
+ };
76
+ this.removeKeyListener = function (id) {
77
+ var _a, _b;
78
+ if ((_a = _this._keyListeners[id]) === null || _a === void 0 ? void 0 : _a.timeout) {
79
+ clearTimeout(((_b = _this._keyListeners[id]) === null || _b === void 0 ? void 0 : _b.timeout) || undefined);
80
+ }
81
+ _this._keyListeners[id] = null;
82
+ };
83
+ this.triggerKeyListener = function (key, message) {
84
+ _this._keyListeners.forEach(function (listener) {
85
+ if ((listener === null || listener === void 0 ? void 0 : listener.key) === key) {
86
+ listener.timeout = setTimeout(function () { return listener.fn(message); }, 100);
87
+ }
88
+ });
89
+ };
90
+ /**
91
+ * Custom verificators can enhance default verification on any key field
92
+ */
93
+ this._customVerificator = [];
94
+ this.addCustomVerification = function (key, fn) {
95
+ var newListener = {
96
+ key: key,
97
+ fn: fn,
98
+ };
99
+ _this._customVerificator.push(newListener);
100
+ return _this._customVerificator.length;
101
+ };
102
+ this.removeCustomVerification = function (id) {
103
+ _this._customVerificator[id] = null;
104
+ };
105
+ this.user = undefined;
106
+ this._options = {
107
+ db: "tooldb",
108
+ peers: [],
109
+ maxRetries: 5,
110
+ wait: 2000,
111
+ pow: 0,
112
+ server: false,
113
+ port: 8080,
114
+ debug: false,
115
+ };
116
+ this._options = __assign(__assign({}, this._options), options);
117
+ // These could be made to be customizable by setting the variables as public
118
+ this._deduplicator = new deduplicator_1.default();
119
+ this._websockets = new wss_1.default(this);
120
+ this._store = typeof window === "undefined" ? (0, leveldb_1.default)() : (0, indexedb_1.default)();
121
+ }
122
+ ToolDb.prototype.getUserNamespacedKey = function (key) {
123
+ var _a;
124
+ return ":" + (((_a = this.user) === null || _a === void 0 ? void 0 : _a.pubKey) || "") + "." + key;
125
+ };
126
+ Object.defineProperty(ToolDb.prototype, "options", {
127
+ get: function () {
128
+ return this._options;
129
+ },
130
+ enumerable: false,
131
+ configurable: true
132
+ });
133
+ Object.defineProperty(ToolDb.prototype, "deduplicator", {
134
+ get: function () {
135
+ return this._deduplicator;
136
+ },
137
+ enumerable: false,
138
+ configurable: true
139
+ });
140
+ Object.defineProperty(ToolDb.prototype, "websockets", {
141
+ get: function () {
142
+ return this._websockets;
143
+ },
144
+ enumerable: false,
145
+ configurable: true
146
+ });
147
+ Object.defineProperty(ToolDb.prototype, "store", {
148
+ get: function () {
149
+ return this._store;
150
+ },
151
+ enumerable: false,
152
+ configurable: true
153
+ });
154
+ Object.defineProperty(ToolDb.prototype, "documents", {
155
+ get: function () {
156
+ return this._documents;
157
+ },
158
+ enumerable: false,
159
+ configurable: true
160
+ });
161
+ return ToolDb;
162
+ }());
163
+ exports.default = ToolDb;
164
+ //# sourceMappingURL=tooldb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooldb.js","sourceRoot":"","sources":["../src/tooldb.ts"],"names":[],"mappings":"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"}
@@ -7,15 +7,6 @@ export interface ParsedKeys {
7
7
  export declare type GenericObject = {
8
8
  [key: string]: any;
9
9
  };
10
- export interface GraphEntryValue<T = any> {
11
- key: string;
12
- pub: string;
13
- hash: string;
14
- sig: string;
15
- timestamp: number;
16
- nonce: number;
17
- value: T;
18
- }
19
10
  export interface UserRootData {
20
11
  keys: {
21
12
  skpub: string;
@@ -9,3 +9,59 @@ export declare enum VerifyResult {
9
9
  InvalidSignature = -1,
10
10
  Verified = 1
11
11
  }
12
+ export interface VerificationData<T = any> {
13
+ k: string;
14
+ p: string;
15
+ n: number;
16
+ h: string;
17
+ t: number;
18
+ s: string;
19
+ v: T;
20
+ }
21
+ export declare type MessageType = "ping" | "pong" | "query" | "queryAck" | "subscribe" | "get" | "put" | "crdtPut" | "crdtGet" | "crdt";
22
+ export interface BaseMessage {
23
+ type: MessageType;
24
+ id: string;
25
+ }
26
+ export interface PingMessage extends BaseMessage {
27
+ type: "ping";
28
+ }
29
+ export interface PongMessage extends BaseMessage {
30
+ type: "pong";
31
+ }
32
+ export interface QueryMessage extends BaseMessage {
33
+ type: "query";
34
+ key: string;
35
+ to: string[];
36
+ }
37
+ export interface QueryAckMessage extends BaseMessage {
38
+ type: "queryAck";
39
+ keys: string[];
40
+ }
41
+ export interface SubscribeMessage extends BaseMessage {
42
+ type: "subscribe";
43
+ key: string;
44
+ }
45
+ export interface GetMessage extends BaseMessage {
46
+ type: "get";
47
+ key: string;
48
+ to: string[];
49
+ }
50
+ export interface PutMessage<T = any> extends BaseMessage, VerificationData<T> {
51
+ type: "put";
52
+ to: string[];
53
+ }
54
+ export interface CrdtPutMessage extends BaseMessage, VerificationData<string> {
55
+ type: "crdtPut";
56
+ to: string[];
57
+ }
58
+ export interface CrdtGetMessage extends BaseMessage {
59
+ type: "crdtGet";
60
+ key: string;
61
+ }
62
+ export interface CrdtMessage extends BaseMessage {
63
+ type: "crdt";
64
+ key: string;
65
+ doc: string;
66
+ }
67
+ export declare type ToolDbMessage = PingMessage | PongMessage | QueryMessage | QueryAckMessage | SubscribeMessage | GetMessage | PutMessage | CrdtPutMessage | CrdtGetMessage | CrdtMessage;
@@ -0,0 +1,10 @@
1
+ export interface ToolDbOptions {
2
+ db: string;
3
+ debug: boolean;
4
+ peers: string[];
5
+ maxRetries: number;
6
+ wait: number;
7
+ pow: number;
8
+ server: boolean;
9
+ port: number;
10
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=tooldb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooldb.js","sourceRoot":"","sources":["../../src/types/tooldb.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import { BinaryChange } from "automerge";
2
+ export default function base64ToBinaryChange(based: string): BinaryChange;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var fromBase64_1 = __importDefault(require("./fromBase64"));
7
+ function base64ToBinaryChange(based) {
8
+ var str = (0, fromBase64_1.default)(based);
9
+ var buf = new ArrayBuffer(str.length);
10
+ var bufView = new Uint8Array(buf);
11
+ for (var i = 0, strLen = str.length; i < strLen; i += 1) {
12
+ bufView[i] = str.charCodeAt(i);
13
+ }
14
+ bufView.__binaryChange = true;
15
+ return bufView;
16
+ }
17
+ exports.default = base64ToBinaryChange;
18
+ //# sourceMappingURL=base64ToBinaryChange.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base64ToBinaryChange.js","sourceRoot":"","sources":["../../src/utils/base64ToBinaryChange.ts"],"names":[],"mappings":";;;;;AACA,4DAAsC;AAEtC,SAAwB,oBAAoB,CAAC,KAAa;IACxD,IAAM,GAAG,GAAG,IAAA,oBAAU,EAAC,KAAK,CAAC,CAAC;IAE9B,IAAM,GAAG,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxC,IAAM,OAAO,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QACvD,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KAChC;IAEA,OAAwB,CAAC,cAAc,GAAG,IAAI,CAAC;IAChD,OAAO,OAAuB,CAAC;AACjC,CAAC;AAXD,uCAWC"}
@@ -0,0 +1,2 @@
1
+ import { BinaryDocument } from "automerge";
2
+ export default function base64ToBinaryDocument(based: string): BinaryDocument;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var fromBase64_1 = __importDefault(require("./fromBase64"));
7
+ function base64ToBinaryDocument(based) {
8
+ var str = (0, fromBase64_1.default)(based);
9
+ var buf = new ArrayBuffer(str.length);
10
+ var bufView = new Uint8Array(buf);
11
+ for (var i = 0, strLen = str.length; i < strLen; i += 1) {
12
+ bufView[i] = str.charCodeAt(i);
13
+ }
14
+ bufView.__binaryDocument = true;
15
+ return bufView;
16
+ }
17
+ exports.default = base64ToBinaryDocument;
18
+ //# sourceMappingURL=base64ToBinaryDocument.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base64ToBinaryDocument.js","sourceRoot":"","sources":["../../src/utils/base64ToBinaryDocument.ts"],"names":[],"mappings":";;;;;AACA,4DAAsC;AAEtC,SAAwB,sBAAsB,CAAC,KAAa;IAC1D,IAAM,GAAG,GAAG,IAAA,oBAAU,EAAC,KAAK,CAAC,CAAC;IAE9B,IAAM,GAAG,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxC,IAAM,OAAO,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QACvD,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KAChC;IAEA,OAA0B,CAAC,gBAAgB,GAAG,IAAI,CAAC;IACpD,OAAO,OAAyB,CAAC;AACnC,CAAC;AAXD,yCAWC"}
@@ -1,4 +1,5 @@
1
- export default function loadKeysComb(): Promise<{
1
+ import { ParsedKeys } from "../../types/graph";
2
+ export default function loadKeysComb(parsedKeys: ParsedKeys): Promise<{
2
3
  signKeys: CryptoKeyPair;
3
4
  encryptionKeys: CryptoKeyPair;
4
5
  } | undefined>;
@@ -64,33 +64,26 @@ function importKeys(parsedKeys) {
64
64
  });
65
65
  });
66
66
  }
67
- function loadKeysComb() {
67
+ function loadKeysComb(parsedKeys) {
68
68
  return new Promise(function (resolve, reject) {
69
- var jsonKeys = localStorage.getItem("keys");
70
- if (jsonKeys) {
71
- var parsedKeys = JSON.parse(jsonKeys);
72
- importKeys(parsedKeys).then(function (_a) {
73
- var skpub = _a.skpub, skpriv = _a.skpriv, ekpub = _a.ekpub, ekpriv = _a.ekpriv;
74
- if (!skpub || !skpriv || !ekpub || !ekpriv) {
75
- reject(new Error("Could not import keys"));
76
- }
77
- else {
78
- resolve({
79
- signKeys: {
80
- publicKey: skpub,
81
- privateKey: skpriv,
82
- },
83
- encryptionKeys: {
84
- publicKey: ekpub,
85
- privateKey: ekpriv,
86
- },
87
- });
88
- }
89
- });
90
- }
91
- else {
92
- reject(new Error("No keys found in localStorage"));
93
- }
69
+ importKeys(parsedKeys).then(function (_a) {
70
+ var skpub = _a.skpub, skpriv = _a.skpriv, ekpub = _a.ekpub, ekpriv = _a.ekpriv;
71
+ if (!skpub || !skpriv || !ekpub || !ekpriv) {
72
+ reject(new Error("Could not import keys"));
73
+ }
74
+ else {
75
+ resolve({
76
+ signKeys: {
77
+ publicKey: skpub,
78
+ privateKey: skpriv,
79
+ },
80
+ encryptionKeys: {
81
+ publicKey: ekpub,
82
+ privateKey: ekpriv,
83
+ },
84
+ });
85
+ }
86
+ });
94
87
  });
95
88
  }
96
89
  exports.default = loadKeysComb;
@@ -1 +1 @@
1
- {"version":3,"file":"loadKeysComb.js","sourceRoot":"","sources":["../../../src/utils/crypto/loadKeysComb.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+DAAyC;AACzC,sEAAgD;AAChD,0DAAoC;AAEpC,SAAe,UAAU,CAAC,UAAsB;;;;;wBAChC,qBAAM,IAAA,mBAAS,EAC3B,IAAA,yBAAe,EAAC,UAAU,CAAC,KAAK,CAAC,EACjC,MAAM,EACN,OAAO,EACP,CAAC,QAAQ,CAAC,CACX,CAAC,KAAK,CAAC,qBAAW,CAAC,EAAA;;oBALd,KAAK,GAAG,SAKM;oBAEL,qBAAM,IAAA,mBAAS,EAC5B,IAAA,yBAAe,EAAC,UAAU,CAAC,MAAM,CAAC,EAClC,OAAO,EACP,OAAO,EACP,CAAC,MAAM,CAAC,CACT,CAAC,KAAK,CAAC,qBAAW,CAAC,EAAA;;oBALd,MAAM,GAAG,SAKK;oBAEN,qBAAM,IAAA,mBAAS,EAC3B,IAAA,yBAAe,EAAC,UAAU,CAAC,KAAK,CAAC,EACjC,MAAM,EACN,MAAM,EACN,EAAE,CACH,CAAC,KAAK,CAAC,qBAAW,CAAC,EAAA;;oBALd,KAAK,GAAG,SAKM;oBAEL,qBAAM,IAAA,mBAAS,EAC5B,IAAA,yBAAe,EAAC,UAAU,CAAC,MAAM,CAAC,EAClC,OAAO,EACP,MAAM,EACN,CAAC,WAAW,EAAE,YAAY,CAAC,CAC5B,CAAC,KAAK,CAAC,qBAAW,CAAC,EAAA;;oBALd,MAAM,GAAG,SAKK;oBAEpB,sBAAO,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,EAAC;;;;CACzC;AAED,SAAwB,YAAY;IAOlC,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,IAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE9C,IAAI,QAAQ,EAAE;YACZ,IAAM,UAAU,GAAe,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAEpD,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAC,EAAgC;oBAA9B,KAAK,WAAA,EAAE,MAAM,YAAA,EAAE,KAAK,WAAA,EAAE,MAAM,YAAA;gBACzD,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE;oBAC1C,MAAM,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;iBAC5C;qBAAM;oBACL,OAAO,CAAC;wBACN,QAAQ,EAAE;4BACR,SAAS,EAAE,KAAK;4BAChB,UAAU,EAAE,MAAM;yBACnB;wBACD,cAAc,EAAE;4BACd,SAAS,EAAE,KAAK;4BAChB,UAAU,EAAE,MAAM;yBACnB;qBACF,CAAC,CAAC;iBACJ;YACH,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;SACpD;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAjCD,+BAiCC"}
1
+ {"version":3,"file":"loadKeysComb.js","sourceRoot":"","sources":["../../../src/utils/crypto/loadKeysComb.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+DAAyC;AACzC,sEAAgD;AAChD,0DAAoC;AAEpC,SAAe,UAAU,CAAC,UAAsB;;;;;wBAChC,qBAAM,IAAA,mBAAS,EAC3B,IAAA,yBAAe,EAAC,UAAU,CAAC,KAAK,CAAC,EACjC,MAAM,EACN,OAAO,EACP,CAAC,QAAQ,CAAC,CACX,CAAC,KAAK,CAAC,qBAAW,CAAC,EAAA;;oBALd,KAAK,GAAG,SAKM;oBAEL,qBAAM,IAAA,mBAAS,EAC5B,IAAA,yBAAe,EAAC,UAAU,CAAC,MAAM,CAAC,EAClC,OAAO,EACP,OAAO,EACP,CAAC,MAAM,CAAC,CACT,CAAC,KAAK,CAAC,qBAAW,CAAC,EAAA;;oBALd,MAAM,GAAG,SAKK;oBAEN,qBAAM,IAAA,mBAAS,EAC3B,IAAA,yBAAe,EAAC,UAAU,CAAC,KAAK,CAAC,EACjC,MAAM,EACN,MAAM,EACN,EAAE,CACH,CAAC,KAAK,CAAC,qBAAW,CAAC,EAAA;;oBALd,KAAK,GAAG,SAKM;oBAEL,qBAAM,IAAA,mBAAS,EAC5B,IAAA,yBAAe,EAAC,UAAU,CAAC,MAAM,CAAC,EAClC,OAAO,EACP,MAAM,EACN,CAAC,WAAW,EAAE,YAAY,CAAC,CAC5B,CAAC,KAAK,CAAC,qBAAW,CAAC,EAAA;;oBALd,MAAM,GAAG,SAKK;oBAEpB,sBAAO,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,EAAC;;;;CACzC;AAED,SAAwB,YAAY,CAAC,UAAsB;IAOzD,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAC,EAAgC;gBAA9B,KAAK,WAAA,EAAE,MAAM,YAAA,EAAE,KAAK,WAAA,EAAE,MAAM,YAAA;YACzD,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE;gBAC1C,MAAM,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;aAC5C;iBAAM;gBACL,OAAO,CAAC;oBACN,QAAQ,EAAE;wBACR,SAAS,EAAE,KAAK;wBAChB,UAAU,EAAE,MAAM;qBACnB;oBACD,cAAc,EAAE;wBACd,SAAS,EAAE,KAAK;wBAChB,UAAU,EAAE,MAAM;qBACnB;iBACF,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAzBD,+BAyBC"}
@@ -0,0 +1 @@
1
+ export default function getIpFromUrl(url: string): string;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function getIpFromUrl(url) {
4
+ return url.split("/")[2].split(":")[0];
5
+ }
6
+ exports.default = getIpFromUrl;
7
+ //# sourceMappingURL=getIpFromUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getIpFromUrl.js","sourceRoot":"","sources":["../../src/utils/getIpFromUrl.ts"],"names":[],"mappings":";;AAAA,SAAwB,YAAY,CAAC,GAAW;IAC9C,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,CAAC;AAFD,+BAEC"}
@@ -0,0 +1,5 @@
1
+ export default function indexedb(dbName?: string): {
2
+ start: () => void;
3
+ put: (key: string, data: any, cb: (err: any | null, data?: any) => void) => void;
4
+ get: (key: string, cb: (err: any | null, data?: any) => void) => void;
5
+ };
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ // @ts-nocheck
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ function indexedb(dbName) {
5
+ if (dbName === void 0) { dbName = "tooldb"; }
6
+ var db = null;
7
+ var store = {};
8
+ store.start = function () {
9
+ // console.warn("store start");
10
+ var open = indexedDB.open(dbName, 1);
11
+ open.onupgradeneeded = function (eve) {
12
+ eve.target.result.createObjectStore(dbName);
13
+ };
14
+ open.onsuccess = function () {
15
+ db = open.result;
16
+ };
17
+ open.onerror = function (eve) {
18
+ console.warn(eve || 1);
19
+ };
20
+ };
21
+ store.start();
22
+ store.put = function (key, data, cb) {
23
+ // console.warn("store put", key);
24
+ if (!db) {
25
+ setTimeout(function () {
26
+ store.put(key, data, cb);
27
+ }, 1);
28
+ return;
29
+ }
30
+ var tx = db.transaction([dbName], "readwrite");
31
+ var obj = tx.objectStore(dbName);
32
+ var req = obj.put(data, "" + key);
33
+ if (cb) {
34
+ req.onsuccess =
35
+ obj.onsuccess =
36
+ tx.onsuccess =
37
+ function () {
38
+ cb(false);
39
+ };
40
+ req.onabort =
41
+ obj.onabort =
42
+ tx.onabort =
43
+ function (eve) {
44
+ cb(eve || "put.tx.abort");
45
+ };
46
+ req.onerror =
47
+ obj.onerror =
48
+ tx.onerror =
49
+ function (eve) {
50
+ cb(eve || "put.tx.error");
51
+ };
52
+ }
53
+ };
54
+ store.get = function (key, cb) {
55
+ // console.warn("store get", key);
56
+ if (!db) {
57
+ setTimeout(function () {
58
+ store.get(key, cb);
59
+ }, 9);
60
+ return;
61
+ }
62
+ var tx = db.transaction([dbName], "readonly");
63
+ var obj = tx.objectStore(dbName);
64
+ var req = obj.get("" + key);
65
+ req.onsuccess = function () {
66
+ cb(false, req.result);
67
+ };
68
+ req.onabort = function (eve) {
69
+ cb(eve || 4);
70
+ };
71
+ req.onerror = function (eve) {
72
+ cb(eve || 5);
73
+ };
74
+ };
75
+ setInterval(function () {
76
+ db && db.close();
77
+ db = null;
78
+ store.start();
79
+ }, 1000 * 15); // reset webkit bug?
80
+ return store;
81
+ }
82
+ exports.default = indexedb;
83
+ //# sourceMappingURL=indexedb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexedb.js","sourceRoot":"","sources":["../../src/utils/indexedb.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export default function leveldb(dbName?: string): {
2
+ start: () => void;
3
+ put: (key: string, data: any, cb: (err: any | null, data?: any) => void) => void;
4
+ get: (key: string, cb: (err: any | null, data?: any) => void) => void;
5
+ };