solid-ui 2.4.27-5e3807fa → 2.4.27-6168d169

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 (51) hide show
  1. package/README.md +1 -6
  2. package/dist/solid-ui.js +1230 -4929
  3. package/dist/solid-ui.js.map +1 -1
  4. package/dist/solid-ui.min.js +1 -1
  5. package/dist/solid-ui.min.js.LICENSE.txt +0 -4
  6. package/dist/solid-ui.min.js.map +1 -1
  7. package/lib/chat/chatLogic.js +26 -70
  8. package/lib/chat/chatLogic.js.map +1 -1
  9. package/lib/chat/message.js +1 -35
  10. package/lib/chat/message.js.map +1 -1
  11. package/lib/media/media-capture.d.ts +2 -2
  12. package/lib/media/media-capture.d.ts.map +1 -1
  13. package/lib/media/media-capture.js +11 -15
  14. package/lib/media/media-capture.js.map +1 -1
  15. package/lib/pad.d.ts +2 -2
  16. package/lib/pad.d.ts.map +1 -1
  17. package/lib/pad.js +14 -37
  18. package/lib/pad.js.map +1 -1
  19. package/lib/participation.d.ts +5 -5
  20. package/lib/participation.d.ts.map +1 -1
  21. package/lib/participation.js +21 -21
  22. package/lib/participation.js.map +1 -1
  23. package/lib/style.js +32 -1
  24. package/lib/style.js.map +1 -1
  25. package/lib/tabs.d.ts.map +1 -1
  26. package/lib/tabs.js +14 -8
  27. package/lib/tabs.js.map +1 -1
  28. package/lib/versionInfo.js +6 -6
  29. package/lib/versionInfo.js.map +1 -1
  30. package/lib/widgets/dragAndDrop.js +10 -18
  31. package/lib/widgets/dragAndDrop.js.map +1 -1
  32. package/lib/widgets/error.d.ts.map +1 -1
  33. package/lib/widgets/error.js +7 -2
  34. package/lib/widgets/error.js.map +1 -1
  35. package/package.json +1 -4
  36. package/lib/chat/keys.d.ts +0 -13
  37. package/lib/chat/keys.d.ts.map +0 -1
  38. package/lib/chat/keys.js +0 -223
  39. package/lib/chat/keys.js.map +0 -1
  40. package/lib/chat/signature.d.ts +0 -25
  41. package/lib/chat/signature.d.ts.map +0 -1
  42. package/lib/chat/signature.js +0 -113
  43. package/lib/chat/signature.js.map +0 -1
  44. package/lib/utils/keyHelpers/accessData.d.ts +0 -10
  45. package/lib/utils/keyHelpers/accessData.d.ts.map +0 -1
  46. package/lib/utils/keyHelpers/accessData.js +0 -226
  47. package/lib/utils/keyHelpers/accessData.js.map +0 -1
  48. package/lib/utils/keyHelpers/acl.d.ts +0 -20
  49. package/lib/utils/keyHelpers/acl.d.ts.map +0 -1
  50. package/lib/utils/keyHelpers/acl.js +0 -101
  51. package/lib/utils/keyHelpers/acl.js.map +0 -1
package/lib/chat/keys.js DELETED
@@ -1,223 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.generatePrivateKey = generatePrivateKey;
9
- exports.generatePublicKey = generatePublicKey;
10
- exports.getPrivateKey = getPrivateKey;
11
- exports.getPublicKey = getPublicKey;
12
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
14
- var debug = _interopRequireWildcard(require("../debug"));
15
- var _secp256k = require("@noble/curves/secp256k1");
16
- var _utils = require("@noble/hashes/utils");
17
- var _signature = require("./signature");
18
- var _solidLogic = require("solid-logic");
19
- var $rdf = _interopRequireWildcard(require("rdflib"));
20
- var _accessData = require("../utils/keyHelpers/accessData");
21
- var _acl = require("../utils/keyHelpers/acl");
22
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
24
- function generatePrivateKey() {
25
- return (0, _utils.bytesToHex)(_secp256k.schnorr.utils.randomPrivateKey());
26
- }
27
- function generatePublicKey(privateKey) {
28
- return (0, _utils.bytesToHex)(_secp256k.schnorr.getPublicKey(privateKey));
29
- }
30
-
31
- /**
32
- * getPublicKey
33
- * used for displaying messages in chat, therefore does not
34
- * create a new key if not found
35
- * @param webId
36
- * @returns string | undefined
37
- */
38
- function getPublicKey(_x) {
39
- return _getPublicKey.apply(this, arguments);
40
- }
41
- function _getPublicKey() {
42
- _getPublicKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(webId) {
43
- var publicKeyDoc, key;
44
- return _regenerator["default"].wrap(function _callee$(_context) {
45
- while (1) switch (_context.prev = _context.next) {
46
- case 0:
47
- _context.next = 2;
48
- return _solidLogic.store.fetcher.load(webId);
49
- case 2:
50
- _context.next = 4;
51
- return (0, _accessData.pubKeyUrl)(webId);
52
- case 4:
53
- publicKeyDoc = _context.sent;
54
- _context.prev = 5;
55
- _context.next = 8;
56
- return _solidLogic.store.fetcher.load(publicKeyDoc);
57
- case 8:
58
- // url.href)
59
- key = _solidLogic.store.any(webId, _solidLogic.store.sym(_signature.CERT + 'PublicKey'));
60
- return _context.abrupt("return", key === null || key === void 0 ? void 0 : key.value);
61
- case 12:
62
- _context.prev = 12;
63
- _context.t0 = _context["catch"](5);
64
- return _context.abrupt("return", undefined);
65
- case 15:
66
- case "end":
67
- return _context.stop();
68
- }
69
- }, _callee, null, [[5, 12]]);
70
- }));
71
- return _getPublicKey.apply(this, arguments);
72
- }
73
- function getPrivateKey(_x2) {
74
- return _getPrivateKey.apply(this, arguments);
75
- }
76
- /**
77
- * delete acl if keydoc exists
78
- * create/edit keyDoc
79
- * set keyDoc acl
80
- */
81
- function _getPrivateKey() {
82
- _getPrivateKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(webId) {
83
- var publicKeyDoc, privateKeyDoc, publicKey, privateKey, validPublicKey, del, add, newPublicKey, keyContainer;
84
- return _regenerator["default"].wrap(function _callee2$(_context2) {
85
- while (1) switch (_context2.prev = _context2.next) {
86
- case 0:
87
- _context2.next = 2;
88
- return _solidLogic.store.fetcher.load(webId);
89
- case 2:
90
- _context2.next = 4;
91
- return (0, _accessData.pubKeyUrl)(webId);
92
- case 4:
93
- publicKeyDoc = _context2.sent;
94
- _context2.next = 7;
95
- return (0, _accessData.privKeyUrl)(webId);
96
- case 7:
97
- privateKeyDoc = _context2.sent;
98
- _context2.next = 10;
99
- return (0, _accessData.getExistingPublicKey)(webId, publicKeyDoc);
100
- case 10:
101
- publicKey = _context2.sent;
102
- _context2.next = 13;
103
- return (0, _accessData.getExistingPrivateKey)(webId, privateKeyDoc);
104
- case 13:
105
- privateKey = _context2.sent;
106
- // is publicKey valid ?
107
- validPublicKey = true;
108
- if (privateKey && publicKey !== generatePublicKey(privateKey)) {
109
- 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;
110
- }
111
-
112
- // create key pair or repair publicKey
113
- if (!(!privateKey || !publicKey || !validPublicKey)) {
114
- _context2.next = 34;
115
- break;
116
- }
117
- del = [];
118
- add = []; // if (privateKey) del.push($rdf.st(webId, store.sym(CERT + 'PrivateKey'), $rdf.lit(privateKey), store.sym(privateKeyDoc)))
119
- if (privateKey) {
120
- _context2.next = 24;
121
- break;
122
- }
123
- // add = []
124
- privateKey = generatePrivateKey();
125
- add = [$rdf.st(webId, _solidLogic.store.sym(_signature.CERT + 'PrivateKey'), $rdf.literal(privateKey), _solidLogic.store.sym(privateKeyDoc))];
126
- _context2.next = 24;
127
- return saveKey(privateKeyDoc, [], add, webId.uri);
128
- case 24:
129
- if (!(!publicKey || !validPublicKey)) {
130
- _context2.next = 31;
131
- break;
132
- }
133
- del = [];
134
- // delete invalid public key
135
- if (publicKey) {
136
- del = [$rdf.st(webId, _solidLogic.store.sym(_signature.CERT + 'PublicKey'), $rdf.lit(publicKey), _solidLogic.store.sym(publicKeyDoc))];
137
- debug.log(del);
138
- }
139
- // update new valid key
140
- newPublicKey = generatePublicKey(privateKey);
141
- add = [$rdf.st(webId, _solidLogic.store.sym(_signature.CERT + 'PublicKey'), $rdf.literal(newPublicKey), _solidLogic.store.sym(publicKeyDoc))];
142
- _context2.next = 31;
143
- return saveKey(publicKeyDoc, del, add);
144
- case 31:
145
- keyContainer = privateKeyDoc.substring(0, privateKeyDoc.lastIndexOf('/') + 1);
146
- _context2.next = 34;
147
- return (0, _acl.setAcl)(keyContainer, (0, _acl.keyContainerAclBody)(webId.uri));
148
- case 34:
149
- return _context2.abrupt("return", privateKey);
150
- case 35:
151
- case "end":
152
- return _context2.stop();
153
- }
154
- }, _callee2);
155
- }));
156
- return _getPrivateKey.apply(this, arguments);
157
- }
158
- function saveKey(_x3, _x4, _x5) {
159
- return _saveKey.apply(this, arguments);
160
- }
161
- function _saveKey() {
162
- _saveKey = (0, _asyncToGenerator2["default"])(function (keyDoc, del, add) {
163
- var me = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
164
- return /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
165
- var keyAclDoc, response, aclBody;
166
- return _regenerator["default"].wrap(function _callee3$(_context3) {
167
- while (1) switch (_context3.prev = _context3.next) {
168
- case 0:
169
- _context3.next = 2;
170
- return _solidLogic.store.fetcher.load(keyDoc);
171
- case 2:
172
- _context3.prev = 2;
173
- // get keyAcldoc
174
- keyAclDoc = _solidLogic.store.any(_solidLogic.store.sym(keyDoc), _solidLogic.store.sym('http://www.iana.org/assignments/link-relations/acl'));
175
- if (!keyAclDoc) {
176
- _context3.next = 17;
177
- break;
178
- }
179
- _context3.prev = 5;
180
- _context3.next = 8;
181
- return _solidLogic.store.fetcher.webOperation('DELETE', keyAclDoc.value);
182
- case 8:
183
- response = _context3.sent;
184
- // this may fail if webId is not an owner
185
- debug.log('delete ' + keyAclDoc.value + ' ' + response.status); // should test 404 and 2xx
186
- _context3.next = 17;
187
- break;
188
- case 12:
189
- _context3.prev = 12;
190
- _context3.t0 = _context3["catch"](5);
191
- if (!(_context3.t0.response.status !== 404)) {
192
- _context3.next = 16;
193
- break;
194
- }
195
- throw new Error(_context3.t0);
196
- case 16:
197
- debug.log('delete ' + keyAclDoc.value + ' ' + _context3.t0.response.status); // should test 404 and 2xx
198
- case 17:
199
- _context3.next = 19;
200
- return _solidLogic.store.updater.updateMany(del, add);
201
- case 19:
202
- // or a promise store.updater.update ?
203
- // create READ only ACL
204
- aclBody = (0, _acl.keyAclBody)(keyDoc, me);
205
- _context3.next = 22;
206
- return (0, _acl.setAcl)(keyDoc, aclBody);
207
- case 22:
208
- _context3.next = 27;
209
- break;
210
- case 24:
211
- _context3.prev = 24;
212
- _context3.t1 = _context3["catch"](2);
213
- throw new Error(_context3.t1);
214
- case 27:
215
- case "end":
216
- return _context3.stop();
217
- }
218
- }, _callee3, null, [[2, 24], [5, 12]]);
219
- })();
220
- });
221
- return _saveKey.apply(this, arguments);
222
- }
223
- //# sourceMappingURL=keys.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keys.js","names":["debug","_interopRequireWildcard","require","_secp256k","_utils","_signature","_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","_callee","webId","publicKeyDoc","wrap","_callee$","_context","prev","next","store","fetcher","load","pubKeyUrl","sent","any","sym","CERT","abrupt","value","t0","undefined","stop","getPrivateKey","_x2","_getPrivateKey","_callee2","privateKeyDoc","publicKey","validPublicKey","del","add","newPublicKey","keyContainer","_callee2$","_context2","privKeyUrl","getExistingPublicKey","getExistingPrivateKey","confirm","uri","st","literal","saveKey","lit","log","substring","lastIndexOf","setAcl","keyContainerAclBody","_x3","_x4","_x5","_saveKey","keyDoc","me","length","_callee3","keyAclDoc","response","aclBody","_callee3$","_context3","webOperation","status","Error","updater","updateMany","keyAclBody","t1"],"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 { CERT } from './signature'\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, store.sym(CERT + '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 // if (privateKey) del.push($rdf.st(webId, store.sym(CERT + 'PrivateKey'), $rdf.lit(privateKey), store.sym(privateKeyDoc)))\r\n\r\n if (!privateKey) {\r\n // add = []\r\n privateKey = generatePrivateKey()\r\n add = [$rdf.st(webId, store.sym(CERT + '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, store.sym(CERT + '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, store.sym(CERT + '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\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 store.fetcher.load(keyDoc)\r\n // delete keyAclDoc\r\n try {\r\n // get keyAcldoc\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 // 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 } catch (err) { throw new Error(err) }\r\n}\r\n"],"mappings":";;;;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AAEA,IAAAK,IAAA,GAAAN,uBAAA,CAAAC,OAAA;AACA,IAAAM,WAAA,GAAAN,OAAA;AACA,IAAAO,IAAA,GAAAP,OAAA;AAAiF,SAAAQ,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAV,wBAAAc,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAE,OAAA,CAAAF,GAAA,yBAAAA,GAAA,uCAAAA,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,cAAAN,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAE1E,SAASW,kBAAkBA,CAAA,EAAY;EAC5C,OAAO,IAAAC,iBAAU,EAACC,iBAAO,CAACC,KAAK,CAACC,gBAAgB,EAAE,CAAC;AACrD;AAEO,SAASC,iBAAiBA,CAAEC,UAAkB,EAAU;EAC7D,OAAO,IAAAL,iBAAU,EAACC,iBAAO,CAACK,YAAY,CAACD,UAAU,CAAC,CAAC;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SAOsBC,YAAYA,CAAAC,EAAA;EAAA,OAAAC,aAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF,cAAA;EAAAA,aAAA,OAAAG,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAA3B,SAAAC,QAA6BC,KAAgB;IAAA,IAAAC,YAAA,EAAAvB,GAAA;IAAA,OAAAmB,YAAA,YAAAK,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAAAF,QAAA,CAAAE,IAAA;UAAA,OAC5CC,iBAAK,CAACC,OAAO,CAACC,IAAI,CAACT,KAAK,CAAC;QAAA;UAAAI,QAAA,CAAAE,IAAA;UAAA,OACJ,IAAAI,qBAAS,EAACV,KAAK,CAAC;QAAA;UAArCC,YAAY,GAAAG,QAAA,CAAAO,IAAA;UAAAP,QAAA,CAAAC,IAAA;UAAAD,QAAA,CAAAE,IAAA;UAAA,OAEVC,iBAAK,CAACC,OAAO,CAACC,IAAI,CAACR,YAAY,CAAC;QAAA;UAAC;UACjCvB,GAAG,GAAG6B,iBAAK,CAACK,GAAG,CAACZ,KAAK,EAAEO,iBAAK,CAACM,GAAG,CAACC,eAAI,GAAG,WAAW,CAAC,CAAC;UAAA,OAAAV,QAAA,CAAAW,MAAA,WACpDrC,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEsC,KAAK;QAAA;UAAAZ,QAAA,CAAAC,IAAA;UAAAD,QAAA,CAAAa,EAAA,GAAAb,QAAA;UAAA,OAAAA,QAAA,CAAAW,MAAA,WAEVG,SAAS;QAAA;QAAA;UAAA,OAAAd,QAAA,CAAAe,IAAA;MAAA;IAAA,GAAApB,OAAA;EAAA,CAEnB;EAAA,OAAAN,aAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAEqByB,aAAaA,CAAAC,GAAA;EAAA,OAAAC,cAAA,CAAA5B,KAAA,OAAAC,SAAA;AAAA;AA+CnC;AACA;AACA;AACA;AACA;AAJA,SAAA2B,eAAA;EAAAA,cAAA,OAAA1B,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CA/CO,SAAAyB,SAA8BvB,KAAgB;IAAA,IAAAC,YAAA,EAAAuB,aAAA,EAAAC,SAAA,EAAAnC,UAAA,EAAAoC,cAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,YAAA,EAAAC,YAAA;IAAA,OAAAjC,YAAA,YAAAK,IAAA,UAAA6B,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAA3B,IAAA,GAAA2B,SAAA,CAAA1B,IAAA;QAAA;UAAA0B,SAAA,CAAA1B,IAAA;UAAA,OAC7CC,iBAAK,CAACC,OAAO,CAACC,IAAI,CAACT,KAAK,CAAC;QAAA;UAAAgC,SAAA,CAAA1B,IAAA;UAAA,OAEJ,IAAAI,qBAAS,EAACV,KAAK,CAAC;QAAA;UAArCC,YAAY,GAAA+B,SAAA,CAAArB,IAAA;UAAAqB,SAAA,CAAA1B,IAAA;UAAA,OACU,IAAA2B,sBAAU,EAACjC,KAAK,CAAC;QAAA;UAAvCwB,aAAa,GAAAQ,SAAA,CAAArB,IAAA;UAAAqB,SAAA,CAAA1B,IAAA;UAAA,OAGK,IAAA4B,gCAAoB,EAAClC,KAAK,EAAEC,YAAY,CAAC;QAAA;UAA3DwB,SAAS,GAAAO,SAAA,CAAArB,IAAA;UAAAqB,SAAA,CAAA1B,IAAA;UAAA,OACQ,IAAA6B,iCAAqB,EAACnC,KAAK,EAAEwB,aAAa,CAAC;QAAA;UAA9DlC,UAAU,GAAA0C,SAAA,CAAArB,IAAA;UAEd;UACIe,cAAc,GAAG,IAAI;UACzB,IAAIpC,UAAU,IAAKmC,SAAS,KAAKpC,iBAAiB,CAACC,UAAU,CAAY,EAAE;YACzE,IAAI8C,OAAO,CAAC,kDAAkD,IAAGpC,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEqC,GAAG,IAC1E,6CAA6C,CAAC,EAAEX,cAAc,GAAG,KAAK;UACzE;;UAEA;UAAA,MACI,CAACpC,UAAU,IAAI,CAACmC,SAAS,IAAI,CAACC,cAAc;YAAAM,SAAA,CAAA1B,IAAA;YAAA;UAAA;UAC1CqB,GAAU,GAAG,EAAE;UACfC,GAAU,GAAG,EAAE,EACnB;UAAA,IAEKtC,UAAU;YAAA0C,SAAA,CAAA1B,IAAA;YAAA;UAAA;UACb;UACAhB,UAAU,GAAGN,kBAAkB,EAAE;UACjC4C,GAAG,GAAG,CAACrE,IAAI,CAAC+E,EAAE,CAACtC,KAAK,EAAEO,iBAAK,CAACM,GAAG,CAACC,eAAI,GAAG,YAAY,CAAC,EAAEvD,IAAI,CAACgF,OAAO,CAACjD,UAAU,CAAC,EAAEiB,iBAAK,CAACM,GAAG,CAACW,aAAa,CAAC,CAAC,CAAC;UAAAQ,SAAA,CAAA1B,IAAA;UAAA,OACpGkC,OAAO,CAAChB,aAAa,EAAE,EAAE,EAAEI,GAAG,EAAE5B,KAAK,CAACqC,GAAG,CAAC;QAAA;UAAA,MAE9C,CAACZ,SAAS,IAAI,CAACC,cAAc;YAAAM,SAAA,CAAA1B,IAAA;YAAA;UAAA;UAC/BqB,GAAG,GAAG,EAAE;UACR;UACA,IAAIF,SAAS,EAAE;YACbE,GAAG,GAAG,CAACpE,IAAI,CAAC+E,EAAE,CAACtC,KAAK,EAAEO,iBAAK,CAACM,GAAG,CAACC,eAAI,GAAG,WAAW,CAAC,EAAEvD,IAAI,CAACkF,GAAG,CAAChB,SAAS,CAAC,EAAElB,iBAAK,CAACM,GAAG,CAACZ,YAAY,CAAC,CAAC,CAAC;YACnGjD,KAAK,CAAC0F,GAAG,CAACf,GAAG,CAAC;UAChB;UACA;UACME,YAAY,GAAGxC,iBAAiB,CAACC,UAAU,CAAC;UAClDsC,GAAG,GAAG,CAACrE,IAAI,CAAC+E,EAAE,CAACtC,KAAK,EAAEO,iBAAK,CAACM,GAAG,CAACC,eAAI,GAAG,WAAW,CAAC,EAAEvD,IAAI,CAACgF,OAAO,CAACV,YAAY,CAAC,EAAEtB,iBAAK,CAACM,GAAG,CAACZ,YAAY,CAAC,CAAC,CAAC;UAAA+B,SAAA,CAAA1B,IAAA;UAAA,OACpGkC,OAAO,CAACvC,YAAY,EAAE0B,GAAG,EAAEC,GAAG,CAAC;QAAA;UAEjCE,YAAY,GAAGN,aAAa,CAACmB,SAAS,CAAC,CAAC,EAAEnB,aAAa,CAACoB,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;UAAAZ,SAAA,CAAA1B,IAAA;UAAA,OAC7E,IAAAuC,WAAM,EAACf,YAAY,EAAE,IAAAgB,wBAAmB,EAAC9C,KAAK,CAACqC,GAAG,CAAC,CAAC;QAAA;UAAA,OAAAL,SAAA,CAAAjB,MAAA,WAErDzB,UAAU;QAAA;QAAA;UAAA,OAAA0C,SAAA,CAAAb,IAAA;MAAA;IAAA,GAAAI,QAAA;EAAA,CAClB;EAAA,OAAAD,cAAA,CAAA5B,KAAA,OAAAC,SAAA;AAAA;AAAA,SAOc6C,OAAOA,CAAAO,GAAA,EAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,QAAA,CAAAxD,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAuD,SAAA;EAAAA,QAAA,OAAAtD,kBAAA,aAAtB,UAAwBuD,MAAc,EAAExB,GAAG,EAAEC,GAAG;IAAA,IAAEwB,EAAU,GAAAzD,SAAA,CAAA0D,MAAA,QAAA1D,SAAA,QAAAuB,SAAA,GAAAvB,SAAA,MAAG,EAAE;IAAA,oBAAAE,YAAA,YAAAC,IAAA,UAAAwD,SAAA;MAAA,IAAAC,SAAA,EAAAC,QAAA,EAAAC,OAAA;MAAA,OAAA5D,YAAA,YAAAK,IAAA,UAAAwD,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAtD,IAAA,GAAAsD,SAAA,CAAArD,IAAA;UAAA;YAAAqD,SAAA,CAAArD,IAAA;YAAA,OACzDC,iBAAK,CAACC,OAAO,CAACC,IAAI,CAAC0C,MAAM,CAAC;UAAA;YAAAQ,SAAA,CAAAtD,IAAA;YAG9B;YACMkD,SAAS,GAAGhD,iBAAK,CAACK,GAAG,CAACL,iBAAK,CAACM,GAAG,CAACsC,MAAM,CAAC,EAAE5C,iBAAK,CAACM,GAAG,CAAC,oDAAoD,CAAC,CAAC;YAAA,KAC3G0C,SAAS;cAAAI,SAAA,CAAArD,IAAA;cAAA;YAAA;YAAAqD,SAAA,CAAAtD,IAAA;YAAAsD,SAAA,CAAArD,IAAA;YAAA,OAGcC,iBAAK,CAACC,OAAO,CAACoD,YAAY,CAAC,QAAQ,EAAEL,SAAS,CAACvC,KAAK,CAAC;UAAA;YAAtEwC,QAAQ,GAAAG,SAAA,CAAAhD,IAAA;YAA+D;YAC7E3D,KAAK,CAAC0F,GAAG,CAAC,SAAS,GAAGa,SAAS,CAACvC,KAAK,GAAG,GAAG,GAAGwC,QAAQ,CAACK,MAAM,CAAC,EAAC;YAAAF,SAAA,CAAArD,IAAA;YAAA;UAAA;YAAAqD,SAAA,CAAAtD,IAAA;YAAAsD,SAAA,CAAA1C,EAAA,GAAA0C,SAAA;YAAA,MAE3DA,SAAA,CAAA1C,EAAA,CAAIuC,QAAQ,CAACK,MAAM,KAAK,GAAG;cAAAF,SAAA,CAAArD,IAAA;cAAA;YAAA;YAAA,MAAU,IAAIwD,KAAK,CAAAH,SAAA,CAAA1C,EAAA,CAAK;UAAA;YACvDjE,KAAK,CAAC0F,GAAG,CAAC,SAAS,GAAGa,SAAS,CAACvC,KAAK,GAAG,GAAG,GAAG2C,SAAA,CAAA1C,EAAA,CAAIuC,QAAQ,CAACK,MAAM,CAAC,EAAC;UAAA;YAAAF,SAAA,CAAArD,IAAA;YAAA,OAKjEC,iBAAK,CAACwD,OAAO,CAACC,UAAU,CAACrC,GAAG,EAAEC,GAAG,CAAC;UAAA;YAAC;YAEzC;YACM6B,OAAO,GAAG,IAAAQ,eAAU,EAACd,MAAM,EAAEC,EAAE,CAAC;YAAAO,SAAA,CAAArD,IAAA;YAAA,OAChC,IAAAuC,WAAM,EAACM,MAAM,EAAEM,OAAO,CAAC;UAAA;YAAAE,SAAA,CAAArD,IAAA;YAAA;UAAA;YAAAqD,SAAA,CAAAtD,IAAA;YAAAsD,SAAA,CAAAO,EAAA,GAAAP,SAAA;YAAA,MACT,IAAIG,KAAK,CAAAH,SAAA,CAAAO,EAAA,CAAK;UAAA;UAAA;YAAA,OAAAP,SAAA,CAAAxC,IAAA;QAAA;MAAA,GAAAmC,QAAA;IAAA;EAAA,CACrC;EAAA,OAAAJ,QAAA,CAAAxD,KAAA,OAAAC,SAAA;AAAA"}
@@ -1,25 +0,0 @@
1
- export declare const utf8Decoder: TextDecoder;
2
- export declare const utf8Encoder: TextEncoder;
3
- export declare const SEC = "https://w3id.org/security#";
4
- export declare const CERT = "http://www.w3.org/ns/auth/cert#";
5
- export type MsgTemplate = {
6
- id: string;
7
- created: string;
8
- dateDeleted: string;
9
- content: string;
10
- maker: string;
11
- sig: string;
12
- };
13
- export type UnsignedMsg = MsgTemplate & {
14
- pubkey: string;
15
- };
16
- export type Message = UnsignedMsg & {
17
- id: string;
18
- sig: string;
19
- };
20
- export declare function getBlankMsg(): MsgTemplate;
21
- export declare function serializeMsg(msg: UnsignedMsg): string;
22
- export declare function getMsgHash(message: UnsignedMsg): string;
23
- export declare function verifySignature(sig: string, message: Message, pubKey: string): boolean;
24
- export declare function signMsg(message: UnsignedMsg, key: string): string;
25
- //# sourceMappingURL=signature.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../src/chat/signature.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,WAAW,aAA2B,CAAA;AACnD,eAAO,MAAM,WAAW,aAAoB,CAAA;AAE5C,eAAO,MAAM,GAAG,+BAA+B,CAAA;AAC/C,eAAO,MAAM,IAAI,oCAAoC,CAAA;AA2BrD,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG;IACtC,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,wBAAgB,WAAW,IAAK,WAAW,CAS1C;AAWD,wBAAgB,YAAY,CAAE,GAAG,EAAE,WAAW,GAAG,MAAM,CAMtD;AAED,wBAAgB,UAAU,CAAE,OAAO,EAAE,WAAW,UAG/C;AAwBD,wBAAgB,eAAe,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAMvF;AAED,wBAAgB,OAAO,CAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAIlE"}
@@ -1,113 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.SEC = exports.CERT = void 0;
7
- exports.getBlankMsg = getBlankMsg;
8
- exports.getMsgHash = getMsgHash;
9
- exports.serializeMsg = serializeMsg;
10
- exports.signMsg = signMsg;
11
- exports.utf8Encoder = exports.utf8Decoder = void 0;
12
- exports.verifySignature = verifySignature;
13
- var _secp256k = require("@noble/curves/secp256k1");
14
- var _utils = require("@noble/hashes/utils");
15
- var _sha = require("@noble/hashes/sha256");
16
- // import {utf8Encoder} from './utils'
17
- // import { getPublicKey } from './keys'
18
-
19
- var utf8Decoder = new TextDecoder('utf-8');
20
- exports.utf8Decoder = utf8Decoder;
21
- var utf8Encoder = new TextEncoder();
22
- exports.utf8Encoder = utf8Encoder;
23
- var SEC = 'https://w3id.org/security#'; // Proof, VerificationMethod
24
- exports.SEC = SEC;
25
- var CERT = 'http://www.w3.org/ns/auth/cert#'; // PrivateKey, PublicKey
26
-
27
- /* eslint-disable no-unused-vars */
28
- /* export enum Kind {
29
- Metadata = 0,
30
- Text = 1,
31
- RecommendRelay = 2,
32
- Contacts = 3,
33
- EncryptedDirectMessage = 4,
34
- EventDeletion = 5,
35
- Reaction = 7,
36
- BadgeAward = 8,
37
- ChannelCreation = 40,
38
- ChannelMetadata = 41,
39
- ChannelMessage = 42,
40
- ChannelHideMessage = 43,
41
- ChannelMuteUser = 44,
42
- Report = 1984,
43
- ZapRequest = 9734,
44
- Zap = 9735,
45
- RelayList = 10002,
46
- ClientAuth = 22242,
47
- BadgeDefinition = 30008,
48
- ProfileBadge = 30009,
49
- Article = 30023
50
- } */
51
- exports.CERT = CERT;
52
- function getBlankMsg() {
53
- return {
54
- id: '',
55
- created: '',
56
- dateDeleted: '',
57
- // TODO to remove if not used
58
- content: '',
59
- maker: '',
60
- sig: '' // TODO to remove if not used
61
- };
62
- }
63
-
64
- /* export function finishMsg (t: MsgTemplate, privateKey: string): Message {
65
- // to update to chat message triples
66
- const message = t as Message
67
- // message.pubkey = getPublicKey(privateKey)
68
- message.id = getMsgHash(message)
69
- message.sig = signMsg(message, privateKey)
70
- return message
71
- } */
72
-
73
- function serializeMsg(msg) {
74
- // to update to chat messages triples
75
- /* if (!validateMsg(msg))
76
- throw new Error("can't serialize message with wrong or missing properties") */
77
-
78
- return JSON.stringify(msg);
79
- }
80
- function getMsgHash(message) {
81
- var msgHash = (0, _sha.sha256)(utf8Encoder.encode(serializeMsg(message)));
82
- return (0, _utils.bytesToHex)(msgHash);
83
- }
84
-
85
- // const isRecord = (obj: unknown): obj is Record<string, unknown> => obj instanceof Object
86
-
87
- /* export function validateMsg<T> (message: T): message is T & UnsignedMsg {
88
- if (!isRecord(message)) return false
89
- if (typeof message.kind !== 'number') return false
90
- if (typeof message.content !== 'string') return false
91
- if (typeof message.created_at !== 'number') return false
92
- if (typeof message.pubkey !== 'string') return false
93
- if (!message.pubkey.match(/^[a-f0-9]{64}$/)) return false
94
-
95
- if (!Array.isArray(message.tags)) return false
96
- for (let i = 0; i < message.tags.length; i++) {
97
- let tag = message.tags[i]
98
- if (!Array.isArray(tag)) return false
99
- for (let j = 0; j < tag.length; j++) {
100
- if (typeof tag[j] === 'object') return false
101
- }
102
- }
103
-
104
- return true
105
- } */
106
-
107
- function verifySignature(sig, message, pubKey) {
108
- return _secp256k.schnorr.verify(sig, getMsgHash(message), pubKey);
109
- }
110
- function signMsg(message, key) {
111
- return (0, _utils.bytesToHex)(_secp256k.schnorr.sign(getMsgHash(message), key));
112
- }
113
- //# sourceMappingURL=signature.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signature.js","names":["_secp256k","require","_utils","_sha","utf8Decoder","TextDecoder","exports","utf8Encoder","TextEncoder","SEC","CERT","getBlankMsg","id","created","dateDeleted","content","maker","sig","serializeMsg","msg","JSON","stringify","getMsgHash","message","msgHash","sha256","encode","bytesToHex","verifySignature","pubKey","schnorr","verify","signMsg","key","sign"],"sources":["../../src/chat/signature.ts"],"sourcesContent":["import { schnorr } from '@noble/curves/secp256k1'\r\nimport { bytesToHex } from '@noble/hashes/utils'\r\nimport { sha256 } from '@noble/hashes/sha256'\r\n\r\n// import {utf8Encoder} from './utils'\r\n// import { getPublicKey } from './keys'\r\n\r\nexport const utf8Decoder = new TextDecoder('utf-8')\r\nexport const utf8Encoder = new TextEncoder()\r\n\r\nexport const SEC = 'https://w3id.org/security#' // Proof, VerificationMethod\r\nexport const CERT = 'http://www.w3.org/ns/auth/cert#' // PrivateKey, PublicKey\r\n\r\n/* eslint-disable no-unused-vars */\r\n/* export enum Kind {\r\n Metadata = 0,\r\n Text = 1,\r\n RecommendRelay = 2,\r\n Contacts = 3,\r\n EncryptedDirectMessage = 4,\r\n EventDeletion = 5,\r\n Reaction = 7,\r\n BadgeAward = 8,\r\n ChannelCreation = 40,\r\n ChannelMetadata = 41,\r\n ChannelMessage = 42,\r\n ChannelHideMessage = 43,\r\n ChannelMuteUser = 44,\r\n Report = 1984,\r\n ZapRequest = 9734,\r\n Zap = 9735,\r\n RelayList = 10002,\r\n ClientAuth = 22242,\r\n BadgeDefinition = 30008,\r\n ProfileBadge = 30009,\r\n Article = 30023\r\n} */\r\n\r\nexport type MsgTemplate = {\r\n id: string\r\n created: string\r\n dateDeleted: string\r\n content: string\r\n maker: string\r\n sig: string\r\n}\r\n\r\nexport type UnsignedMsg = MsgTemplate & {\r\n pubkey: string\r\n}\r\n\r\nexport type Message = UnsignedMsg & {\r\n id: string\r\n sig: string\r\n}\r\n\r\nexport function getBlankMsg (): MsgTemplate {\r\n return {\r\n id: '',\r\n created: '',\r\n dateDeleted: '', // TODO to remove if not used\r\n content: '',\r\n maker: '',\r\n sig: '' // TODO to remove if not used\r\n }\r\n}\r\n\r\n/* export function finishMsg (t: MsgTemplate, privateKey: string): Message {\r\n // to update to chat message triples\r\n const message = t as Message\r\n // message.pubkey = getPublicKey(privateKey)\r\n message.id = getMsgHash(message)\r\n message.sig = signMsg(message, privateKey)\r\n return message\r\n} */\r\n\r\nexport function serializeMsg (msg: UnsignedMsg): string {\r\n // to update to chat messages triples\r\n /* if (!validateMsg(msg))\r\n throw new Error(\"can't serialize message with wrong or missing properties\") */\r\n\r\n return JSON.stringify(msg)\r\n}\r\n\r\nexport function getMsgHash (message: UnsignedMsg) {\r\n const msgHash = sha256(utf8Encoder.encode(serializeMsg(message)))\r\n return bytesToHex(msgHash)\r\n}\r\n\r\n// const isRecord = (obj: unknown): obj is Record<string, unknown> => obj instanceof Object\r\n\r\n/* export function validateMsg<T> (message: T): message is T & UnsignedMsg {\r\n if (!isRecord(message)) return false\r\n if (typeof message.kind !== 'number') return false\r\n if (typeof message.content !== 'string') return false\r\n if (typeof message.created_at !== 'number') return false\r\n if (typeof message.pubkey !== 'string') return false\r\n if (!message.pubkey.match(/^[a-f0-9]{64}$/)) return false\r\n\r\n if (!Array.isArray(message.tags)) return false\r\n for (let i = 0; i < message.tags.length; i++) {\r\n let tag = message.tags[i]\r\n if (!Array.isArray(tag)) return false\r\n for (let j = 0; j < tag.length; j++) {\r\n if (typeof tag[j] === 'object') return false\r\n }\r\n }\r\n\r\n return true\r\n} */\r\n\r\nexport function verifySignature (sig: string, message: Message, pubKey: string): boolean {\r\n return schnorr.verify(\r\n sig,\r\n getMsgHash(message),\r\n pubKey\r\n )\r\n}\r\n\r\nexport function signMsg (message: UnsignedMsg, key: string): string {\r\n return bytesToHex(\r\n schnorr.sign(getMsgHash(message), key)\r\n )\r\n}\r\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;AAEA;AACA;;AAEO,IAAMG,WAAW,GAAG,IAAIC,WAAW,CAAC,OAAO,CAAC;AAAAC,OAAA,CAAAF,WAAA,GAAAA,WAAA;AAC5C,IAAMG,WAAW,GAAG,IAAIC,WAAW,EAAE;AAAAF,OAAA,CAAAC,WAAA,GAAAA,WAAA;AAErC,IAAME,GAAG,GAAG,4BAA4B,EAAC;AAAAH,OAAA,CAAAG,GAAA,GAAAA,GAAA;AACzC,IAAMC,IAAI,GAAG,iCAAiC,EAAC;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAtBAJ,OAAA,CAAAI,IAAA,GAAAA,IAAA;AA0CO,SAASC,WAAWA,CAAA,EAAiB;EAC1C,OAAO;IACLC,EAAE,EAAE,EAAE;IACNC,OAAO,EAAE,EAAE;IACXC,WAAW,EAAE,EAAE;IAAE;IACjBC,OAAO,EAAE,EAAE;IACXC,KAAK,EAAE,EAAE;IACTC,GAAG,EAAE,EAAE,CAAC;EACV,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASC,YAAYA,CAAEC,GAAgB,EAAU;EACtD;EACA;AACF;;EAEE,OAAOC,IAAI,CAACC,SAAS,CAACF,GAAG,CAAC;AAC5B;AAEO,SAASG,UAAUA,CAAEC,OAAoB,EAAE;EAChD,IAAMC,OAAO,GAAG,IAAAC,WAAM,EAAClB,WAAW,CAACmB,MAAM,CAACR,YAAY,CAACK,OAAO,CAAC,CAAC,CAAC;EACjE,OAAO,IAAAI,iBAAU,EAACH,OAAO,CAAC;AAC5B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,SAASI,eAAeA,CAAEX,GAAW,EAAEM,OAAgB,EAAEM,MAAc,EAAW;EACvF,OAAOC,iBAAO,CAACC,MAAM,CACnBd,GAAG,EACHK,UAAU,CAACC,OAAO,CAAC,EACnBM,MAAM,CACP;AACH;AAEO,SAASG,OAAOA,CAAET,OAAoB,EAAEU,GAAW,EAAU;EAClE,OAAO,IAAAN,iBAAU,EACfG,iBAAO,CAACI,IAAI,CAACZ,UAAU,CAACC,OAAO,CAAC,EAAEU,GAAG,CAAC,CACvC;AACH"}
@@ -1,10 +0,0 @@
1
- import { NamedNode } from 'rdflib';
2
- export declare const getPodRoot: (webId: NamedNode) => Promise<string | undefined>;
3
- export declare const pubKeyUrl: (webId: NamedNode) => Promise<string>;
4
- export declare function getExistingPublicKey(webId: NamedNode, publicKeyUrl: string): Promise<string | undefined>;
5
- export declare const privKeyUrl: (webId: NamedNode) => Promise<string>;
6
- export declare function getExistingPrivateKey(webId: NamedNode, privateKeyUrl: string): Promise<string | undefined>;
7
- type KeyType = 'PublicKey' | 'PrivateKey';
8
- export declare function getKeyIfExists(webId: NamedNode, keyUrl: string, keyType: KeyType): Promise<string | undefined>;
9
- export {};
10
- //# sourceMappingURL=accessData.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"accessData.d.ts","sourceRoot":"","sources":["../../../src/utils/keyHelpers/accessData.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAElC,eAAO,MAAM,UAAU,UAAiB,SAAS,gCAsBhD,CAAA;AAED,eAAO,MAAM,SAAS,UAAiB,SAAS,oBAI/C,CAAA;AAED,wBAAsB,oBAAoB,CAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,+BAGjF;AAED,eAAO,MAAM,UAAU,UAAiB,SAAS,oBAIhD,CAAA;AAED,wBAAsB,qBAAqB,CAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,+BAGnF;AAED,KAAK,OAAO,GAAG,WAAW,GAAG,YAAY,CAAA;AAEzC,wBAAsB,cAAc,CAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,+BAyBvF"}
@@ -1,226 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.getExistingPrivateKey = getExistingPrivateKey;
9
- exports.getExistingPublicKey = getExistingPublicKey;
10
- exports.getKeyIfExists = getKeyIfExists;
11
- exports.pubKeyUrl = exports.privKeyUrl = exports.getPodRoot = void 0;
12
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
14
- var debug = _interopRequireWildcard(require("../../debug"));
15
- var _signature = require("../../chat/signature");
16
- var _solidLogic = require("solid-logic");
17
- var ns = _interopRequireWildcard(require("../../ns"));
18
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
20
- var getPodRoot = /*#__PURE__*/function () {
21
- var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(webId) {
22
- var _podRoot;
23
- var webIdURL, storages, podRoot, path, _res$headers$get, res;
24
- return _regenerator["default"].wrap(function _callee$(_context) {
25
- while (1) switch (_context.prev = _context.next) {
26
- case 0:
27
- webIdURL = new URL(webId.uri); // find storages in webId document
28
- _context.next = 3;
29
- return _solidLogic.store.fetcher.load(webId.uri);
30
- case 3:
31
- storages = _solidLogic.store.each(webId, ns.space('storage'), null, webId.doc());
32
- if (storages !== null && storages !== void 0 && storages.length) {
33
- _context.next = 19;
34
- break;
35
- }
36
- // find storage recursively in webId URL
37
- path = webIdURL.pathname;
38
- case 6:
39
- if (!path.length) {
40
- _context.next = 17;
41
- break;
42
- }
43
- path = path.substring(0, path.lastIndexOf('/'));
44
- podRoot = _solidLogic.store.sym(webIdURL.origin + path + '/');
45
- _context.next = 11;
46
- return _solidLogic.store.fetcher.webOperation('HEAD', podRoot.uri);
47
- case 11:
48
- res = _context.sent;
49
- if (!((_res$headers$get = res.headers.get('link')) !== null && _res$headers$get !== void 0 && _res$headers$get.includes(ns.space('Storage').value))) {
50
- _context.next = 14;
51
- break;
52
- }
53
- return _context.abrupt("break", 17);
54
- case 14:
55
- if (!path) debug.warn("Current user storage not found for\n".concat(webId));
56
- _context.next = 6;
57
- break;
58
- case 17:
59
- _context.next = 21;
60
- break;
61
- case 19:
62
- // give preference to storage in webId root
63
- podRoot = storages.find(function (storage) {
64
- return webIdURL.origin === new URL(storage.value).origin;
65
- });
66
- if (!podRoot) podRoot = storages[0];
67
- case 21:
68
- return _context.abrupt("return", (_podRoot = podRoot) === null || _podRoot === void 0 ? void 0 : _podRoot.value);
69
- case 22:
70
- case "end":
71
- return _context.stop();
72
- }
73
- }, _callee);
74
- }));
75
- return function getPodRoot(_x) {
76
- return _ref.apply(this, arguments);
77
- };
78
- }();
79
- exports.getPodRoot = getPodRoot;
80
- var pubKeyUrl = /*#__PURE__*/function () {
81
- var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(webId) {
82
- return _regenerator["default"].wrap(function _callee2$(_context2) {
83
- while (1) switch (_context2.prev = _context2.next) {
84
- case 0:
85
- _context2.prev = 0;
86
- _context2.next = 3;
87
- return getPodRoot(webId);
88
- case 3:
89
- _context2.t0 = _context2.sent;
90
- return _context2.abrupt("return", _context2.t0 + 'profile/keys/publicKey.ttl');
91
- case 7:
92
- _context2.prev = 7;
93
- _context2.t1 = _context2["catch"](0);
94
- throw new Error(_context2.t1);
95
- case 10:
96
- case "end":
97
- return _context2.stop();
98
- }
99
- }, _callee2, null, [[0, 7]]);
100
- }));
101
- return function pubKeyUrl(_x2) {
102
- return _ref2.apply(this, arguments);
103
- };
104
- }();
105
- exports.pubKeyUrl = pubKeyUrl;
106
- function getExistingPublicKey(_x3, _x4) {
107
- return _getExistingPublicKey.apply(this, arguments);
108
- }
109
- function _getExistingPublicKey() {
110
- _getExistingPublicKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(webId, publicKeyUrl) {
111
- return _regenerator["default"].wrap(function _callee4$(_context4) {
112
- while (1) switch (_context4.prev = _context4.next) {
113
- case 0:
114
- _context4.next = 2;
115
- return getKeyIfExists(webId, publicKeyUrl, 'PublicKey');
116
- case 2:
117
- return _context4.abrupt("return", _context4.sent);
118
- case 3:
119
- case "end":
120
- return _context4.stop();
121
- }
122
- }, _callee4);
123
- }));
124
- return _getExistingPublicKey.apply(this, arguments);
125
- }
126
- var privKeyUrl = /*#__PURE__*/function () {
127
- var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(webId) {
128
- return _regenerator["default"].wrap(function _callee3$(_context3) {
129
- while (1) switch (_context3.prev = _context3.next) {
130
- case 0:
131
- _context3.prev = 0;
132
- _context3.next = 3;
133
- return getPodRoot(webId);
134
- case 3:
135
- _context3.t0 = _context3.sent;
136
- return _context3.abrupt("return", _context3.t0 + 'profile/keys/privateKey.ttl');
137
- case 7:
138
- _context3.prev = 7;
139
- _context3.t1 = _context3["catch"](0);
140
- throw new Error(_context3.t1);
141
- case 10:
142
- case "end":
143
- return _context3.stop();
144
- }
145
- }, _callee3, null, [[0, 7]]);
146
- }));
147
- return function privKeyUrl(_x5) {
148
- return _ref3.apply(this, arguments);
149
- };
150
- }();
151
- exports.privKeyUrl = privKeyUrl;
152
- function getExistingPrivateKey(_x6, _x7) {
153
- return _getExistingPrivateKey.apply(this, arguments);
154
- }
155
- function _getExistingPrivateKey() {
156
- _getExistingPrivateKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(webId, privateKeyUrl) {
157
- return _regenerator["default"].wrap(function _callee5$(_context5) {
158
- while (1) switch (_context5.prev = _context5.next) {
159
- case 0:
160
- _context5.next = 2;
161
- return getKeyIfExists(webId, privateKeyUrl, 'PrivateKey');
162
- case 2:
163
- return _context5.abrupt("return", _context5.sent);
164
- case 3:
165
- case "end":
166
- return _context5.stop();
167
- }
168
- }, _callee5);
169
- }));
170
- return _getExistingPrivateKey.apply(this, arguments);
171
- }
172
- function getKeyIfExists(_x8, _x9, _x10) {
173
- return _getKeyIfExists.apply(this, arguments);
174
- }
175
- function _getKeyIfExists() {
176
- _getKeyIfExists = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(webId, keyUrl, keyType) {
177
- var key, _err$response, data, contentType, response;
178
- return _regenerator["default"].wrap(function _callee6$(_context6) {
179
- while (1) switch (_context6.prev = _context6.next) {
180
- case 0:
181
- _context6.prev = 0;
182
- _context6.next = 3;
183
- return _solidLogic.store.fetcher.load(keyUrl);
184
- case 3:
185
- key = _solidLogic.store.any(webId, _solidLogic.store.sym(_signature.CERT + keyType));
186
- return _context6.abrupt("return", key === null || key === void 0 ? void 0 : key.value);
187
- case 7:
188
- _context6.prev = 7;
189
- _context6.t0 = _context6["catch"](0);
190
- if (!((_context6.t0 === null || _context6.t0 === void 0 ? void 0 : (_err$response = _context6.t0.response) === null || _err$response === void 0 ? void 0 : _err$response.status) === 404)) {
191
- _context6.next = 24;
192
- break;
193
- }
194
- _context6.prev = 10;
195
- // create resource
196
- data = '';
197
- contentType = 'text/turtle';
198
- _context6.next = 15;
199
- return _solidLogic.store.fetcher.webOperation('PUT', keyUrl, {
200
- data: data,
201
- contentType: contentType
202
- });
203
- case 15:
204
- response = _context6.sent;
205
- _context6.next = 22;
206
- break;
207
- case 18:
208
- _context6.prev = 18;
209
- _context6.t1 = _context6["catch"](10);
210
- debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + _context6.t1);
211
- throw _context6.t1;
212
- case 22:
213
- delete _solidLogic.store.fetcher.requested[keyUrl]; // delete cached 404 error
214
- return _context6.abrupt("return", undefined);
215
- case 24:
216
- debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + _context6.t0);
217
- throw _context6.t0;
218
- case 26:
219
- case "end":
220
- return _context6.stop();
221
- }
222
- }, _callee6, null, [[0, 7], [10, 18]]);
223
- }));
224
- return _getKeyIfExists.apply(this, arguments);
225
- }
226
- //# sourceMappingURL=accessData.js.map