solid-ui 2.4.28-df3d9431 → 2.4.28-e581c53c
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/dist/solid-ui.js +318 -248
- package/dist/solid-ui.js.map +1 -1
- package/dist/solid-ui.min.js +1 -1
- package/dist/solid-ui.min.js.map +1 -1
- package/lib/chat/keys.d.ts +0 -3
- package/lib/chat/keys.d.ts.map +1 -1
- package/lib/chat/keys.js +80 -124
- package/lib/chat/keys.js.map +1 -1
- package/lib/chat/message.js +35 -35
- package/lib/chat/message.js.map +1 -1
- package/lib/chat/signature.d.ts +2 -0
- package/lib/chat/signature.d.ts.map +1 -1
- package/lib/chat/signature.js +70 -1
- package/lib/chat/signature.js.map +1 -1
- package/lib/style.js +0 -2
- package/lib/style.js.map +1 -1
- package/lib/utils/keyHelpers/accessData.d.ts +2 -2
- package/lib/utils/keyHelpers/accessData.d.ts.map +1 -1
- package/lib/utils/keyHelpers/accessData.js +131 -51
- package/lib/utils/keyHelpers/accessData.js.map +1 -1
- package/lib/versionInfo.js +2 -2
- package/lib/versionInfo.js.map +1 -1
- package/package.json +1 -3
- package/lib/utils/keyHelpers/otherHelpers.d.ts +0 -3
- package/lib/utils/keyHelpers/otherHelpers.d.ts.map +0 -1
- package/lib/utils/keyHelpers/otherHelpers.js +0 -23
- package/lib/utils/keyHelpers/otherHelpers.js.map +0 -1
package/lib/chat/keys.d.ts
CHANGED
|
@@ -9,8 +9,5 @@ export declare function generatePublicKey(privateKey: string): string;
|
|
|
9
9
|
* @returns string | undefined
|
|
10
10
|
*/
|
|
11
11
|
export declare function getPublicKey(webId: NamedNode): Promise<string | undefined>;
|
|
12
|
-
export declare function validPublicKey(webId: NamedNode, publicKey: string | undefined, privateKey: string): boolean;
|
|
13
|
-
export declare function generateAndStoreNewPublicKey(webId: NamedNode, privateKey: string, publicKey: string | undefined, publicKeyDoc: string): Promise<void>;
|
|
14
|
-
export declare function createAndSaveKeyPairs(webId: NamedNode, publicKey: string | undefined, privateKeyDoc: string, publicKeyDoc: string): Promise<string>;
|
|
15
12
|
export declare function getPrivateKey(webId: NamedNode): Promise<string>;
|
|
16
13
|
//# sourceMappingURL=keys.d.ts.map
|
package/lib/chat/keys.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/chat/keys.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAKlC,wBAAgB,kBAAkB,IAAK,MAAM,CAE5C;AAED,wBAAgB,iBAAiB,CAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAE,KAAK,EAAE,SAAS,+
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/chat/keys.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAKlC,wBAAgB,kBAAkB,IAAK,MAAM,CAE5C;AAED,wBAAgB,iBAAiB,CAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAE,KAAK,EAAE,SAAS,+BAUnD;AAED,wBAAsB,aAAa,CAAE,KAAK,EAAE,SAAS,mBA4CpD"}
|
package/lib/chat/keys.js
CHANGED
|
@@ -5,13 +5,10 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.createAndSaveKeyPairs = createAndSaveKeyPairs;
|
|
9
|
-
exports.generateAndStoreNewPublicKey = generateAndStoreNewPublicKey;
|
|
10
8
|
exports.generatePrivateKey = generatePrivateKey;
|
|
11
9
|
exports.generatePublicKey = generatePublicKey;
|
|
12
10
|
exports.getPrivateKey = getPrivateKey;
|
|
13
11
|
exports.getPublicKey = getPublicKey;
|
|
14
|
-
exports.validPublicKey = validPublicKey;
|
|
15
12
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
16
13
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
17
14
|
var debug = _interopRequireWildcard(require("../debug"));
|
|
@@ -47,150 +44,109 @@ function _getPublicKey() {
|
|
|
47
44
|
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
48
45
|
while (1) switch (_context2.prev = _context2.next) {
|
|
49
46
|
case 0:
|
|
50
|
-
_context2.
|
|
51
|
-
_context2.next = 3;
|
|
47
|
+
_context2.next = 2;
|
|
52
48
|
return _solidLogic.store.fetcher.load(webId);
|
|
53
|
-
case
|
|
54
|
-
_context2.next =
|
|
49
|
+
case 2:
|
|
50
|
+
_context2.next = 4;
|
|
55
51
|
return (0, _accessData.pubKeyUrl)(webId);
|
|
56
|
-
case
|
|
52
|
+
case 4:
|
|
57
53
|
publicKeyDoc = _context2.sent;
|
|
58
|
-
_context2.prev =
|
|
59
|
-
_context2.next =
|
|
54
|
+
_context2.prev = 5;
|
|
55
|
+
_context2.next = 8;
|
|
60
56
|
return _solidLogic.store.fetcher.load(publicKeyDoc);
|
|
61
|
-
case
|
|
57
|
+
case 8:
|
|
62
58
|
// url.href)
|
|
63
59
|
key = _solidLogic.store.any(webId, ns.solid('publicKey'));
|
|
64
60
|
return _context2.abrupt("return", key === null || key === void 0 ? void 0 : key.value);
|
|
65
|
-
case
|
|
66
|
-
_context2.prev =
|
|
67
|
-
_context2.t0 = _context2["catch"](
|
|
68
|
-
debug.error(_context2.t0);
|
|
61
|
+
case 12:
|
|
62
|
+
_context2.prev = 12;
|
|
63
|
+
_context2.t0 = _context2["catch"](5);
|
|
69
64
|
return _context2.abrupt("return", undefined);
|
|
70
|
-
case
|
|
71
|
-
_context2.next = 23;
|
|
72
|
-
break;
|
|
73
|
-
case 19:
|
|
74
|
-
_context2.prev = 19;
|
|
75
|
-
_context2.t1 = _context2["catch"](0);
|
|
76
|
-
debug.error(_context2.t1);
|
|
77
|
-
return _context2.abrupt("return", undefined);
|
|
78
|
-
case 23:
|
|
65
|
+
case 15:
|
|
79
66
|
case "end":
|
|
80
67
|
return _context2.stop();
|
|
81
68
|
}
|
|
82
|
-
}, _callee2, null, [[
|
|
69
|
+
}, _callee2, null, [[5, 12]]);
|
|
83
70
|
}));
|
|
84
71
|
return _getPublicKey.apply(this, arguments);
|
|
85
72
|
}
|
|
86
|
-
function
|
|
87
|
-
if (privateKey && publicKey !== generatePublicKey(privateKey)) {
|
|
88
|
-
if (confirm('This is strange the publicKey is not valid for\n' + (webId === null || webId === void 0 ? void 0 : webId.uri) + '\'shall we repair keeping the private key ?')) return false;
|
|
89
|
-
}
|
|
90
|
-
return true;
|
|
91
|
-
}
|
|
92
|
-
function generateAndStoreNewPublicKey(_x2, _x3, _x4, _x5) {
|
|
93
|
-
return _generateAndStoreNewPublicKey.apply(this, arguments);
|
|
94
|
-
}
|
|
95
|
-
function _generateAndStoreNewPublicKey() {
|
|
96
|
-
_generateAndStoreNewPublicKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(webId, privateKey, publicKey, publicKeyDoc) {
|
|
97
|
-
var del, newPublicKey, add;
|
|
98
|
-
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
99
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
100
|
-
case 0:
|
|
101
|
-
del = [$rdf.st(webId, ns.solid('publicKey'), $rdf.lit(publicKey || ''), _solidLogic.store.sym(publicKeyDoc))];
|
|
102
|
-
newPublicKey = generatePublicKey(privateKey);
|
|
103
|
-
add = [$rdf.st(webId, ns.solid('publicKey'), $rdf.literal(newPublicKey), _solidLogic.store.sym(publicKeyDoc))];
|
|
104
|
-
_context3.next = 5;
|
|
105
|
-
return saveKeyAndHandleAcl(publicKeyDoc, del, add);
|
|
106
|
-
case 5:
|
|
107
|
-
case "end":
|
|
108
|
-
return _context3.stop();
|
|
109
|
-
}
|
|
110
|
-
}, _callee3);
|
|
111
|
-
}));
|
|
112
|
-
return _generateAndStoreNewPublicKey.apply(this, arguments);
|
|
113
|
-
}
|
|
114
|
-
function createAndSaveKeyPairs(_x6, _x7, _x8, _x9) {
|
|
115
|
-
return _createAndSaveKeyPairs.apply(this, arguments);
|
|
116
|
-
}
|
|
117
|
-
function _createAndSaveKeyPairs() {
|
|
118
|
-
_createAndSaveKeyPairs = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(webId, publicKey, privateKeyDoc, publicKeyDoc) {
|
|
119
|
-
var privateKey, add;
|
|
120
|
-
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
121
|
-
while (1) switch (_context4.prev = _context4.next) {
|
|
122
|
-
case 0:
|
|
123
|
-
privateKey = generatePrivateKey();
|
|
124
|
-
add = [$rdf.st(webId, ns.solid('privateKey'), $rdf.literal(privateKey), _solidLogic.store.sym(privateKeyDoc))];
|
|
125
|
-
_context4.next = 4;
|
|
126
|
-
return saveKeyAndHandleAcl(privateKeyDoc, [], add, webId.uri);
|
|
127
|
-
case 4:
|
|
128
|
-
_context4.next = 6;
|
|
129
|
-
return generateAndStoreNewPublicKey(webId, privateKey, publicKey, publicKeyDoc);
|
|
130
|
-
case 6:
|
|
131
|
-
return _context4.abrupt("return", privateKey);
|
|
132
|
-
case 7:
|
|
133
|
-
case "end":
|
|
134
|
-
return _context4.stop();
|
|
135
|
-
}
|
|
136
|
-
}, _callee4);
|
|
137
|
-
}));
|
|
138
|
-
return _createAndSaveKeyPairs.apply(this, arguments);
|
|
139
|
-
}
|
|
140
|
-
function getPrivateKey(_x10) {
|
|
73
|
+
function getPrivateKey(_x2) {
|
|
141
74
|
return _getPrivateKey.apply(this, arguments);
|
|
142
75
|
}
|
|
143
76
|
function _getPrivateKey() {
|
|
144
|
-
_getPrivateKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
145
|
-
var publicKeyDoc, privateKeyDoc, publicKey, privateKey, keyContainer;
|
|
146
|
-
return _regenerator["default"].wrap(function
|
|
147
|
-
while (1) switch (
|
|
77
|
+
_getPrivateKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(webId) {
|
|
78
|
+
var publicKeyDoc, privateKeyDoc, publicKey, privateKey, validPublicKey, del, add, newPublicKey, keyContainer;
|
|
79
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
80
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
148
81
|
case 0:
|
|
149
|
-
|
|
82
|
+
_context3.next = 2;
|
|
150
83
|
return _solidLogic.store.fetcher.load(webId);
|
|
151
84
|
case 2:
|
|
152
|
-
|
|
85
|
+
_context3.next = 4;
|
|
153
86
|
return (0, _accessData.pubKeyUrl)(webId);
|
|
154
87
|
case 4:
|
|
155
|
-
publicKeyDoc =
|
|
156
|
-
|
|
88
|
+
publicKeyDoc = _context3.sent;
|
|
89
|
+
_context3.next = 7;
|
|
157
90
|
return (0, _accessData.privKeyUrl)(webId);
|
|
158
91
|
case 7:
|
|
159
|
-
privateKeyDoc =
|
|
160
|
-
|
|
92
|
+
privateKeyDoc = _context3.sent;
|
|
93
|
+
_context3.next = 10;
|
|
161
94
|
return (0, _accessData.getExistingPublicKey)(webId, publicKeyDoc);
|
|
162
95
|
case 10:
|
|
163
|
-
publicKey =
|
|
164
|
-
|
|
96
|
+
publicKey = _context3.sent;
|
|
97
|
+
_context3.next = 13;
|
|
165
98
|
return (0, _accessData.getExistingPrivateKey)(webId, privateKeyDoc);
|
|
166
99
|
case 13:
|
|
167
|
-
privateKey =
|
|
100
|
+
privateKey = _context3.sent;
|
|
101
|
+
// is publicKey valid ?
|
|
102
|
+
validPublicKey = true;
|
|
103
|
+
if (privateKey && publicKey !== generatePublicKey(privateKey)) {
|
|
104
|
+
if (confirm('This is strange the publicKey is not valid for\n' + (webId === null || webId === void 0 ? void 0 : webId.uri) + '\'shall we repair keeping the private key ?')) validPublicKey = false;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// create key pair or repair publicKey
|
|
108
|
+
if (!(!privateKey || !publicKey || !validPublicKey)) {
|
|
109
|
+
_context3.next = 34;
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
112
|
+
del = [];
|
|
113
|
+
add = [];
|
|
168
114
|
if (privateKey) {
|
|
169
|
-
|
|
115
|
+
_context3.next = 24;
|
|
170
116
|
break;
|
|
171
117
|
}
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
118
|
+
// add = []
|
|
119
|
+
privateKey = generatePrivateKey();
|
|
120
|
+
add = [$rdf.st(webId, ns.solid('privateKey'), $rdf.literal(privateKey), _solidLogic.store.sym(privateKeyDoc))];
|
|
121
|
+
_context3.next = 24;
|
|
122
|
+
return saveKey(privateKeyDoc, [], add, webId.uri);
|
|
123
|
+
case 24:
|
|
124
|
+
if (!(!publicKey || !validPublicKey)) {
|
|
125
|
+
_context3.next = 31;
|
|
179
126
|
break;
|
|
180
127
|
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
128
|
+
del = [];
|
|
129
|
+
// delete invalid public key
|
|
130
|
+
if (publicKey) {
|
|
131
|
+
del = [$rdf.st(webId, ns.solid('publicKey'), $rdf.lit(publicKey), _solidLogic.store.sym(publicKeyDoc))];
|
|
132
|
+
debug.log(del);
|
|
133
|
+
}
|
|
134
|
+
// update new valid key
|
|
135
|
+
newPublicKey = generatePublicKey(privateKey);
|
|
136
|
+
add = [$rdf.st(webId, ns.solid('publicKey'), $rdf.literal(newPublicKey), _solidLogic.store.sym(publicKeyDoc))];
|
|
137
|
+
_context3.next = 31;
|
|
138
|
+
return saveKey(publicKeyDoc, del, add);
|
|
139
|
+
case 31:
|
|
184
140
|
keyContainer = privateKeyDoc.substring(0, privateKeyDoc.lastIndexOf('/') + 1);
|
|
185
|
-
|
|
141
|
+
_context3.next = 34;
|
|
186
142
|
return (0, _acl.setAcl)(keyContainer, (0, _acl.keyContainerAclBody)(webId.uri));
|
|
187
|
-
case
|
|
188
|
-
return
|
|
189
|
-
case
|
|
143
|
+
case 34:
|
|
144
|
+
return _context3.abrupt("return", privateKey);
|
|
145
|
+
case 35:
|
|
190
146
|
case "end":
|
|
191
|
-
return
|
|
147
|
+
return _context3.stop();
|
|
192
148
|
}
|
|
193
|
-
},
|
|
149
|
+
}, _callee3);
|
|
194
150
|
}));
|
|
195
151
|
return _getPrivateKey.apply(this, arguments);
|
|
196
152
|
}
|
|
@@ -233,7 +189,7 @@ var deleteKeyAcl = /*#__PURE__*/function () {
|
|
|
233
189
|
}
|
|
234
190
|
}, _callee, null, [[4, 11]]);
|
|
235
191
|
}));
|
|
236
|
-
return function deleteKeyAcl(
|
|
192
|
+
return function deleteKeyAcl(_x3) {
|
|
237
193
|
return _ref.apply(this, arguments);
|
|
238
194
|
};
|
|
239
195
|
}();
|
|
@@ -243,35 +199,35 @@ var deleteKeyAcl = /*#__PURE__*/function () {
|
|
|
243
199
|
* create/edit keyDoc
|
|
244
200
|
* set keyDoc acl
|
|
245
201
|
*/
|
|
246
|
-
function
|
|
247
|
-
return
|
|
202
|
+
function saveKey(_x4, _x5, _x6) {
|
|
203
|
+
return _saveKey.apply(this, arguments);
|
|
248
204
|
}
|
|
249
|
-
function
|
|
250
|
-
|
|
205
|
+
function _saveKey() {
|
|
206
|
+
_saveKey = (0, _asyncToGenerator2["default"])(function (keyDoc, del, add) {
|
|
251
207
|
var me = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
|
|
252
|
-
return /*#__PURE__*/_regenerator["default"].mark(function
|
|
208
|
+
return /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
|
|
253
209
|
var aclBody;
|
|
254
|
-
return _regenerator["default"].wrap(function
|
|
255
|
-
while (1) switch (
|
|
210
|
+
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
211
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
256
212
|
case 0:
|
|
257
|
-
|
|
213
|
+
_context4.next = 2;
|
|
258
214
|
return deleteKeyAcl(keyDoc);
|
|
259
215
|
case 2:
|
|
260
|
-
|
|
216
|
+
_context4.next = 4;
|
|
261
217
|
return _solidLogic.store.updater.updateMany(del, add);
|
|
262
218
|
case 4:
|
|
263
219
|
// or a promise store.updater.update ?
|
|
264
220
|
// create READ only ACL
|
|
265
221
|
aclBody = (0, _acl.keyAclBody)(keyDoc, me);
|
|
266
|
-
|
|
222
|
+
_context4.next = 7;
|
|
267
223
|
return (0, _acl.setAcl)(keyDoc, aclBody);
|
|
268
224
|
case 7:
|
|
269
225
|
case "end":
|
|
270
|
-
return
|
|
226
|
+
return _context4.stop();
|
|
271
227
|
}
|
|
272
|
-
},
|
|
228
|
+
}, _callee4);
|
|
273
229
|
})();
|
|
274
230
|
});
|
|
275
|
-
return
|
|
231
|
+
return _saveKey.apply(this, arguments);
|
|
276
232
|
}
|
|
277
233
|
//# sourceMappingURL=keys.js.map
|
package/lib/chat/keys.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","names":["debug","_interopRequireWildcard","require","_secp256k","_utils","ns","_solidLogic","$rdf","_accessData","_acl","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","generatePrivateKey","bytesToHex","schnorr","utils","randomPrivateKey","generatePublicKey","privateKey","getPublicKey","_x","_getPublicKey","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee2","webId","publicKeyDoc","wrap","_callee2$","_context2","prev","next","store","fetcher","load","pubKeyUrl","sent","any","solid","abrupt","value","t0","error","undefined","t1","stop","validPublicKey","publicKey","confirm","uri","generateAndStoreNewPublicKey","_x2","_x3","_x4","_x5","_generateAndStoreNewPublicKey","_callee3","del","newPublicKey","add","_callee3$","_context3","st","lit","sym","literal","saveKeyAndHandleAcl","createAndSaveKeyPairs","_x6","_x7","_x8","_x9","_createAndSaveKeyPairs","_callee4","privateKeyDoc","_callee4$","_context4","getPrivateKey","_x10","_getPrivateKey","_callee5","keyContainer","_callee5$","_context5","privKeyUrl","getExistingPublicKey","getExistingPrivateKey","substring","lastIndexOf","setAcl","keyContainerAclBody","deleteKeyAcl","_ref","_callee","keyDoc","keyAclDoc","response","_callee$","_context","webOperation","log","status","Error","_x11","_x12","_x13","_x14","_saveKeyAndHandleAcl","me","length","_callee6","aclBody","_callee6$","_context6","updater","updateMany","keyAclBody"],"sources":["../../src/chat/keys.ts"],"sourcesContent":["import * as debug from '../debug'\r\nimport { schnorr } from '@noble/curves/secp256k1'\r\nimport { bytesToHex } from '@noble/hashes/utils'\r\nimport * as ns from '../ns'\r\nimport { store } from 'solid-logic'\r\nimport { NamedNode } from 'rdflib'\r\nimport * as $rdf from 'rdflib'\r\nimport { getExistingPublicKey, pubKeyUrl, privKeyUrl, getExistingPrivateKey } from '../utils/keyHelpers/accessData'\r\nimport { setAcl, keyContainerAclBody, keyAclBody } from '../utils/keyHelpers/acl'\r\n\r\nexport function generatePrivateKey (): string {\r\n return bytesToHex(schnorr.utils.randomPrivateKey())\r\n}\r\n\r\nexport function generatePublicKey (privateKey: string): string {\r\n return bytesToHex(schnorr.getPublicKey(privateKey))\r\n}\r\n\r\n/**\r\n * getPublicKey\r\n * used for displaying messages in chat, therefore does not\r\n * create a new key if not found\r\n * @param webId\r\n * @returns string | undefined\r\n */\r\nexport async function getPublicKey (webId: NamedNode) {\r\n try {\r\n await store.fetcher.load(webId)\r\n const publicKeyDoc = await pubKeyUrl(webId)\r\n try {\r\n await store.fetcher.load(publicKeyDoc) // url.href)\r\n const key = store.any(webId, ns.solid('publicKey'))\r\n return key?.value // as NamedNode\r\n } catch (err) {\r\n debug.error(err)\r\n return undefined\r\n }\r\n } catch (err) {\r\n debug.error(err)\r\n return undefined\r\n }\r\n}\r\n\r\nexport function validPublicKey (webId: NamedNode, publicKey: string | undefined, privateKey: string): boolean {\r\n if (privateKey && (publicKey !== generatePublicKey(privateKey as string))) {\r\n if (confirm('This is strange the publicKey is not valid for\\n' + webId?.uri +\r\n '\\'shall we repair keeping the private key ?')) return false\r\n }\r\n return true\r\n}\r\n\r\nexport async function generateAndStoreNewPublicKey (webId: NamedNode, privateKey: string, publicKey: string | undefined, publicKeyDoc: string) {\r\n const del = [$rdf.st(webId, ns.solid('publicKey'), $rdf.lit(publicKey || ''), store.sym(publicKeyDoc))]\r\n const newPublicKey = generatePublicKey(privateKey)\r\n const add = [$rdf.st(webId, ns.solid('publicKey'), $rdf.literal(newPublicKey), store.sym(publicKeyDoc))]\r\n await saveKeyAndHandleAcl(publicKeyDoc, del, add)\r\n}\r\n\r\nexport async function createAndSaveKeyPairs (webId: NamedNode, publicKey: string | undefined, privateKeyDoc: string, publicKeyDoc: string) {\r\n const privateKey = generatePrivateKey()\r\n const add = [$rdf.st(webId, ns.solid('privateKey'), $rdf.literal(privateKey), store.sym(privateKeyDoc))]\r\n await saveKeyAndHandleAcl(privateKeyDoc, [], add, webId.uri)\r\n\r\n await generateAndStoreNewPublicKey(webId, privateKey, publicKey, publicKeyDoc)\r\n\r\n return privateKey\r\n}\r\n\r\nexport async function getPrivateKey (webId: NamedNode) {\r\n await store.fetcher.load(webId)\r\n // find keys url's\r\n const publicKeyDoc = await pubKeyUrl(webId)\r\n const privateKeyDoc = await privKeyUrl(webId)\r\n\r\n // find key pair\r\n const publicKey = await getExistingPublicKey(webId, publicKeyDoc)\r\n let privateKey = await getExistingPrivateKey(webId, privateKeyDoc)\r\n\r\n if (!privateKey) {\r\n privateKey = await createAndSaveKeyPairs(webId, publicKey, privateKeyDoc, publicKeyDoc)\r\n }\r\n if (!validPublicKey(webId, publicKey, privateKey)) {\r\n await generateAndStoreNewPublicKey(webId, privateKey, publicKey, publicKeyDoc)\r\n }\r\n\r\n const keyContainer = privateKeyDoc.substring(0, privateKeyDoc.lastIndexOf('/') + 1)\r\n await setAcl(keyContainer, keyContainerAclBody(webId.uri)) // includes DELETE and PUT\r\n return privateKey as string\r\n}\r\n\r\nconst deleteKeyAcl = async (keyDoc: string) => {\r\n await store.fetcher.load(keyDoc)\r\n\r\n const keyAclDoc = store.any(store.sym(keyDoc), store.sym('http://www.iana.org/assignments/link-relations/acl'))\r\n if (keyAclDoc) {\r\n // delete READ only keyAclDoc. This is possible if the webId is an owner\r\n try {\r\n const response = await store.fetcher.webOperation('DELETE', keyAclDoc.value) // this may fail if webId is not an owner\r\n debug.log('delete ' + keyAclDoc.value + ' ' + response.status) // should test 404 and 2xx\r\n } catch (err) {\r\n if (err.response.status !== 404) { throw new Error(err) }\r\n debug.log('delete ' + keyAclDoc.value + ' ' + err.response.status) // should test 404 and 2xx\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * delete acl if keydoc exists\r\n * create/edit keyDoc\r\n * set keyDoc acl\r\n */\r\nasync function saveKeyAndHandleAcl (keyDoc: string, del, add, me: string = '') {\r\n await deleteKeyAcl(keyDoc)\r\n // save key\r\n await store.updater.updateMany(del, add) // or a promise store.updater.update ?\r\n\r\n // create READ only ACL\r\n const aclBody = keyAclBody(keyDoc, me)\r\n await setAcl(keyDoc, aclBody)\r\n}\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"keys.js","names":["debug","_interopRequireWildcard","require","_secp256k","_utils","ns","_solidLogic","$rdf","_accessData","_acl","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","generatePrivateKey","bytesToHex","schnorr","utils","randomPrivateKey","generatePublicKey","privateKey","getPublicKey","_x","_getPublicKey","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee2","webId","publicKeyDoc","wrap","_callee2$","_context2","prev","next","store","fetcher","load","pubKeyUrl","sent","any","solid","abrupt","value","t0","undefined","stop","getPrivateKey","_x2","_getPrivateKey","_callee3","privateKeyDoc","publicKey","validPublicKey","del","add","newPublicKey","keyContainer","_callee3$","_context3","privKeyUrl","getExistingPublicKey","getExistingPrivateKey","confirm","uri","st","literal","sym","saveKey","lit","log","substring","lastIndexOf","setAcl","keyContainerAclBody","deleteKeyAcl","_ref","_callee","keyDoc","keyAclDoc","response","_callee$","_context","webOperation","status","Error","_x3","_x4","_x5","_x6","_saveKey","me","length","_callee4","aclBody","_callee4$","_context4","updater","updateMany","keyAclBody"],"sources":["../../src/chat/keys.ts"],"sourcesContent":["import * as debug from '../debug'\r\nimport { schnorr } from '@noble/curves/secp256k1'\r\nimport { bytesToHex } from '@noble/hashes/utils'\r\nimport * as ns from '../ns'\r\nimport { store } from 'solid-logic'\r\nimport { NamedNode } from 'rdflib'\r\nimport * as $rdf from 'rdflib'\r\nimport { getExistingPublicKey, pubKeyUrl, privKeyUrl, getExistingPrivateKey } from '../utils/keyHelpers/accessData'\r\nimport { setAcl, keyContainerAclBody, keyAclBody } from '../utils/keyHelpers/acl'\r\n\r\nexport function generatePrivateKey (): string {\r\n return bytesToHex(schnorr.utils.randomPrivateKey())\r\n}\r\n\r\nexport function generatePublicKey (privateKey: string): string {\r\n return bytesToHex(schnorr.getPublicKey(privateKey))\r\n}\r\n\r\n/**\r\n * getPublicKey\r\n * used for displaying messages in chat, therefore does not\r\n * create a new key if not found\r\n * @param webId\r\n * @returns string | undefined\r\n */\r\nexport async function getPublicKey (webId: NamedNode) {\r\n await store.fetcher.load(webId)\r\n const publicKeyDoc = await pubKeyUrl(webId)\r\n try {\r\n await store.fetcher.load(publicKeyDoc) // url.href)\r\n const key = store.any(webId, ns.solid('publicKey'))\r\n return key?.value // as NamedNode\r\n } catch (err) {\r\n return undefined\r\n }\r\n}\r\n\r\nexport async function getPrivateKey (webId: NamedNode) {\r\n await store.fetcher.load(webId)\r\n // find keys url's\r\n const publicKeyDoc = await pubKeyUrl(webId)\r\n const privateKeyDoc = await privKeyUrl(webId)\r\n\r\n // find key pair\r\n const publicKey = await getExistingPublicKey(webId, publicKeyDoc)\r\n let privateKey = await getExistingPrivateKey(webId, privateKeyDoc)\r\n\r\n // is publicKey valid ?\r\n let validPublicKey = true\r\n if (privateKey && (publicKey !== generatePublicKey(privateKey as string))) {\r\n if (confirm('This is strange the publicKey is not valid for\\n' + webId?.uri +\r\n '\\'shall we repair keeping the private key ?')) validPublicKey = false\r\n }\r\n\r\n // create key pair or repair publicKey\r\n if (!privateKey || !publicKey || !validPublicKey) {\r\n let del: any[] = []\r\n let add: any[] = []\r\n\r\n if (!privateKey) {\r\n // add = []\r\n privateKey = generatePrivateKey()\r\n add = [$rdf.st(webId, ns.solid('privateKey'), $rdf.literal(privateKey), store.sym(privateKeyDoc))]\r\n await saveKey(privateKeyDoc, [], add, webId.uri)\r\n }\r\n if (!publicKey || !validPublicKey) {\r\n del = []\r\n // delete invalid public key\r\n if (publicKey) {\r\n del = [$rdf.st(webId, ns.solid('publicKey'), $rdf.lit(publicKey), store.sym(publicKeyDoc))]\r\n debug.log(del)\r\n }\r\n // update new valid key\r\n const newPublicKey = generatePublicKey(privateKey)\r\n add = [$rdf.st(webId, ns.solid('publicKey'), $rdf.literal(newPublicKey), store.sym(publicKeyDoc))]\r\n await saveKey(publicKeyDoc, del, add)\r\n }\r\n const keyContainer = privateKeyDoc.substring(0, privateKeyDoc.lastIndexOf('/') + 1)\r\n await setAcl(keyContainer, keyContainerAclBody(webId.uri)) // includes DELETE and PUT\r\n }\r\n return privateKey as string\r\n}\r\n\r\nconst deleteKeyAcl = async (keyDoc: string) => {\r\n await store.fetcher.load(keyDoc)\r\n\r\n const keyAclDoc = store.any(store.sym(keyDoc), store.sym('http://www.iana.org/assignments/link-relations/acl'))\r\n if (keyAclDoc) {\r\n // delete READ only keyAclDoc. This is possible if the webId is an owner\r\n try {\r\n const response = await store.fetcher.webOperation('DELETE', keyAclDoc.value) // this may fail if webId is not an owner\r\n debug.log('delete ' + keyAclDoc.value + ' ' + response.status) // should test 404 and 2xx\r\n } catch (err) {\r\n if (err.response.status !== 404) { throw new Error(err) }\r\n debug.log('delete ' + keyAclDoc.value + ' ' + err.response.status) // should test 404 and 2xx\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * delete acl if keydoc exists\r\n * create/edit keyDoc\r\n * set keyDoc acl\r\n */\r\nasync function saveKey (keyDoc: string, del, add, me: string = '') {\r\n await deleteKeyAcl(keyDoc)\r\n // save key\r\n await store.updater.updateMany(del, add) // or a promise store.updater.update ?\r\n\r\n // create READ only ACL\r\n const aclBody = keyAclBody(keyDoc, me)\r\n await setAcl(keyDoc, aclBody)\r\n}\r\n"],"mappings":"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"}
|
package/lib/chat/message.js
CHANGED
|
@@ -144,20 +144,23 @@ function renderMessageRow(_x, _x2, _x3, _x4, _x5) {
|
|
|
144
144
|
} // END OF RENDERMESSAGE
|
|
145
145
|
function _renderMessageRow() {
|
|
146
146
|
_renderMessageRow = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9(channelObject, message, fresh, options, userContext) {
|
|
147
|
-
var colorizeByAuthor, creator, date, latestVersion, latestVersionCreator, msgId, content, versions, replies, thread, straightReplies, _iterator2, _step2, reply, signature, msg,
|
|
147
|
+
var unsignedMessage, colorizeByAuthor, creator, date, latestVersion, latestVersionCreator, msgId, content, versions, replies, thread, straightReplies, _iterator2, _step2, reply, signature, msg, originalMessage, edited, sortDate, messageRow, td1, img, bothDates, td2, text, isURI, para, isImage, _img, anc, bgcolor, getBgColor, strip, td3, toolsButton;
|
|
148
148
|
return _regenerator["default"].wrap(function _callee9$(_context10) {
|
|
149
149
|
while (1) switch (_context10.prev = _context10.next) {
|
|
150
150
|
case 0:
|
|
151
151
|
getBgColor = function _getBgColor(fresh) {
|
|
152
152
|
return fresh ? '#e8ffe8' : 'white';
|
|
153
153
|
};
|
|
154
|
-
|
|
154
|
+
unsignedMessage = false;
|
|
155
|
+
colorizeByAuthor = options.colorizeByAuthor === '1' || options.colorizeByAuthor === true; // const id = store.any(latestVersion, ns.sioc('id'))
|
|
156
|
+
// const replies = store.each(latestVersion, ns.sioc('has_reply'))
|
|
155
157
|
creator = _solidLogic.store.any(message, ns.foaf('maker'));
|
|
156
158
|
date = _solidLogic.store.any(message, ns.dct('created'));
|
|
157
|
-
_context10.next =
|
|
159
|
+
_context10.next = 7;
|
|
158
160
|
return (0, _chatLogic.mostRecentVersion)(message);
|
|
159
|
-
case
|
|
161
|
+
case 7:
|
|
160
162
|
latestVersion = _context10.sent;
|
|
163
|
+
debug.log('@@@@ alain mostRecentVersion');
|
|
161
164
|
debug.log(message);
|
|
162
165
|
debug.log(latestVersion);
|
|
163
166
|
latestVersionCreator = _solidLogic.store.any(latestVersion, ns.foaf('maker')); // use latest content if same owner, else use original
|
|
@@ -167,9 +170,9 @@ function _renderMessageRow() {
|
|
|
167
170
|
debug.log(latestVersionCreator);
|
|
168
171
|
msgId = creator.uri === (latestVersionCreator === null || latestVersionCreator === void 0 ? void 0 : latestVersionCreator.uri) ? latestVersion : message;
|
|
169
172
|
content = _solidLogic.store.any(msgId, ns.sioc('content'));
|
|
170
|
-
_context10.next =
|
|
173
|
+
_context10.next = 19;
|
|
171
174
|
return (0, _chatLogic.allVersions)(msgId);
|
|
172
|
-
case
|
|
175
|
+
case 19:
|
|
173
176
|
versions = _context10.sent;
|
|
174
177
|
if (versions.length > 1) {
|
|
175
178
|
debug.log('renderMessageRow versions: ', versions.join(', '));
|
|
@@ -211,38 +214,35 @@ function _renderMessageRow() {
|
|
|
211
214
|
msg.created = _solidLogic.store.any(msgId, ns.dct('created')).value;
|
|
212
215
|
msg.content = content.value;
|
|
213
216
|
msg.maker = creator.uri;
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
217
|
+
|
|
218
|
+
// verify signature
|
|
219
|
+
if (!(signature !== null && signature !== void 0 && signature.value)) {
|
|
220
|
+
// unsigned message
|
|
221
|
+
unsignedMessage = true;
|
|
222
|
+
debug.warn(msgId.uri + ' is unsigned'); // TODO replace with UI (colored message ?)
|
|
223
|
+
} else {
|
|
224
|
+
// signed message, get public key and check signature
|
|
225
|
+
(0, _keys.getPublicKey)(creator).then(function (publicKey) {
|
|
226
|
+
debug.log(creator.uri + '\n' + msg.created + '\n' + msg.id + '\n' + publicKey);
|
|
227
|
+
if (!publicKey) {
|
|
228
|
+
debug.warn('message is signed but ' + creator.uri + ' is missing publicKey');
|
|
229
|
+
}
|
|
230
|
+
// check that publicKey is a valid hex string
|
|
231
|
+
var regex = /[0-9A-Fa-f]{6}/g;
|
|
232
|
+
if (!(publicKey !== null && publicKey !== void 0 && publicKey.match(regex))) debug.warn('invalid publicKey hex string\n' + creator.uri + '\n' + publicKey);
|
|
233
|
+
// verify signature
|
|
234
|
+
else if (signature !== null && signature !== void 0 && signature.value && !(0, _signature.verifySignature)(signature === null || signature === void 0 ? void 0 : signature.value, msg, publicKey)) debug.warn('invalid signature\n' + msg.id);
|
|
235
|
+
});
|
|
231
236
|
}
|
|
232
|
-
|
|
233
|
-
regex = /[0-9A-Fa-f]{6}/g;
|
|
234
|
-
validSignature = (0, _signature.verifySignature)(signature === null || signature === void 0 ? void 0 : signature.value, msg, publicKey);
|
|
235
|
-
validPublicKeyHexString = publicKey === null || publicKey === void 0 ? void 0 : publicKey.match(regex);
|
|
236
|
-
if (!validPublicKeyHexString) debug.warn('invalid publicKey hex string\n' + creator.uri + '\n' + publicKey);else if (signature !== null && signature !== void 0 && signature.value && !validSignature) debug.warn('invalid signature\n' + msg.id);
|
|
237
|
-
if (!validSignature || !validPublicKeyHexString) messageRow.setAttribute('style', style.textInputBackgroundColorError);
|
|
238
|
-
case 48:
|
|
239
|
-
_context10.next = 50;
|
|
237
|
+
_context10.next = 38;
|
|
240
238
|
return (0, _chatLogic.originalVersion)(message);
|
|
241
|
-
case
|
|
239
|
+
case 38:
|
|
242
240
|
originalMessage = _context10.sent;
|
|
243
241
|
edited = !message.sameTerm(originalMessage); // @@ load it first @@ Or display the new data at the old date.
|
|
244
242
|
// @@@ kludge!
|
|
245
243
|
sortDate = _solidLogic.store.the(originalMessage, ns.dct('created'), null, originalMessage.doc()) || _solidLogic.store.the(message, ns.dct('created'), null, message.doc()); // In message
|
|
244
|
+
messageRow = dom.createElement('tr');
|
|
245
|
+
if (unsignedMessage) messageRow.setAttribute('style', 'background-color: red');
|
|
246
246
|
messageRow.AJAR_date = sortDate.value;
|
|
247
247
|
messageRow.AJAR_subject = message;
|
|
248
248
|
td1 = dom.createElement('td');
|
|
@@ -293,9 +293,9 @@ function _renderMessageRow() {
|
|
|
293
293
|
bgcolor = colorizeByAuthor ? pad.lightColorHash(creator) : getBgColor(fresh);
|
|
294
294
|
para.setAttribute('style', messageBodyStyle + 'background-color: ' + bgcolor + ';');
|
|
295
295
|
}
|
|
296
|
-
_context10.next =
|
|
296
|
+
_context10.next = 59;
|
|
297
297
|
return (0, _messageTools.sentimentStripLinked)(message, message.doc());
|
|
298
|
-
case
|
|
298
|
+
case 59:
|
|
299
299
|
strip = _context10.sent;
|
|
300
300
|
if (strip.children.length) {
|
|
301
301
|
td2.appendChild(dom.createElement('br'));
|
|
@@ -360,7 +360,7 @@ function _renderMessageRow() {
|
|
|
360
360
|
}));
|
|
361
361
|
}
|
|
362
362
|
return _context10.abrupt("return", messageRow);
|
|
363
|
-
case
|
|
363
|
+
case 68:
|
|
364
364
|
case "end":
|
|
365
365
|
return _context10.stop();
|
|
366
366
|
}
|