solid-ui 2.4.27-38005bd7 → 2.4.27-39fb847a

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 CHANGED
@@ -2655,7 +2655,7 @@ var ChatChannel = /*#__PURE__*/function () {
2655
2655
  var oldMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
2656
2656
  var deleteIt = arguments.length > 2 ? arguments[2] : undefined;
2657
2657
  return /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
2658
- var sts, now, timestamp, dateStamp, chatDocument, message, me, msg, oldMsgMaker, errMsg, privateKey, pubKey, sig, _errMsg;
2658
+ var sts, now, timestamp, dateStamp, chatDocument, message, me, msg, oldMsgMaker, errMsg, privateKey, sig, _errMsg;
2659
2659
  return _regenerator["default"].wrap(function _callee2$(_context2) {
2660
2660
  while (1) switch (_context2.prev = _context2.next) {
2661
2661
  case 0:
@@ -2703,7 +2703,7 @@ var ChatChannel = /*#__PURE__*/function () {
2703
2703
  sts.push($rdf.st(message, ns.dct('created'), dateStamp, chatDocument));
2704
2704
  msg.created = dateStamp.value;
2705
2705
  if (!me) {
2706
- _context2.next = 36;
2706
+ _context2.next = 35;
2707
2707
  break;
2708
2708
  }
2709
2709
  sts.push($rdf.st(message, ns.foaf('maker'), me, chatDocument));
@@ -2715,35 +2715,34 @@ var ChatChannel = /*#__PURE__*/function () {
2715
2715
  privateKey = _context2.sent;
2716
2716
  // me.uri)
2717
2717
  // const privateKey0 = 'a11bc5d2eee6cdb3b37f5473a712cad905ccfb13fb2ccdbf1be0a1ac4fdc7d2a'
2718
- // const pubKey0 = '023a9da707bee1302f66083c9d95673ff969b41607a66f52686fa774d64ceb87'
2719
- pubKey = (0, _keys.getPublicKey)(me);
2720
- sig = (0, _signature.signMsg)(msg, privateKey);
2721
- /* const verify = verifySignature(sig, msg, pubKey) // alain to remove
2718
+ sig = (0, _signature.signMsg)(msg, privateKey); // const pubKey0 = '023a9da707bee1302f66083c9d95673ff969b41607a66f52686fa774d64ceb87'
2719
+ /* const pubKey = await getPublicKey(me)
2720
+ const verify = verifySignature(sig, msg, pubKey) // alain to remove
2722
2721
  debug.warn('sig ' + sig)
2723
2722
  debug.warn('verifySign ' + verify)
2724
2723
  debug.warn(msg) */
2725
2724
  sts.push($rdf.st(message, $rdf.sym("".concat(_signature.SEC, "Proof")), $rdf.lit(sig), chatDocument));
2726
- case 36:
2727
- _context2.prev = 36;
2728
- _context2.next = 39;
2725
+ case 35:
2726
+ _context2.prev = 35;
2727
+ _context2.next = 38;
2729
2728
  return _solidLogic.store.updater.update([], sts);
2730
- case 39:
2731
- _context2.next = 47;
2729
+ case 38:
2730
+ _context2.next = 46;
2732
2731
  break;
2733
- case 41:
2734
- _context2.prev = 41;
2735
- _context2.t0 = _context2["catch"](36);
2732
+ case 40:
2733
+ _context2.prev = 40;
2734
+ _context2.t0 = _context2["catch"](35);
2736
2735
  _errMsg = 'Error saving chat message: ' + _context2.t0;
2737
2736
  debug.warn(_errMsg);
2738
2737
  alert(_errMsg);
2739
2738
  throw new Error(_errMsg);
2740
- case 47:
2739
+ case 46:
2741
2740
  return _context2.abrupt("return", message);
2742
- case 48:
2741
+ case 47:
2743
2742
  case "end":
2744
2743
  return _context2.stop();
2745
2744
  }
2746
- }, _callee2, null, [[36, 41]]);
2745
+ }, _callee2, null, [[35, 40]]);
2747
2746
  })();
2748
2747
  });
2749
2748
  function updateMessage(_x2) {
@@ -4044,7 +4043,8 @@ var _utils = __webpack_require__(/*! @noble/hashes/utils */ "./node_modules/@nob
4044
4043
  var _signature = __webpack_require__(/*! ./signature */ "./lib/chat/signature.js");
4045
4044
  var _solidLogic = __webpack_require__(/*! solid-logic */ "./node_modules/solid-logic/lib/index.js");
4046
4045
  var $rdf = _interopRequireWildcard(__webpack_require__(/*! rdflib */ "./node_modules/rdflib/esm/index.js"));
4047
- var _cryptoKeyHelpers = __webpack_require__(/*! ../utils/cryptoKeyHelpers */ "./lib/utils/cryptoKeyHelpers.js");
4046
+ var _accessData = __webpack_require__(/*! ../utils/keyHelpers/accessData */ "./lib/utils/keyHelpers/accessData.js");
4047
+ var _acl = __webpack_require__(/*! ../utils/keyHelpers/acl */ "./lib/utils/keyHelpers/acl.js");
4048
4048
  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); }
4049
4049
  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; }
4050
4050
  function generatePrivateKey() {
@@ -4053,74 +4053,77 @@ function generatePrivateKey() {
4053
4053
  function generatePublicKey(privateKey) {
4054
4054
  return (0, _utils.bytesToHex)(_secp256k.schnorr.getPublicKey(privateKey));
4055
4055
  }
4056
+
4057
+ /**
4058
+ * getPublicKey
4059
+ * used for displaying messages in chat, therefore does not
4060
+ * create a new key if not found
4061
+ * @param webId
4062
+ * @returns string | undefined
4063
+ */
4056
4064
  function getPublicKey(_x) {
4057
4065
  return _getPublicKey.apply(this, arguments);
4058
4066
  }
4059
4067
  function _getPublicKey() {
4060
- _getPublicKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(webId) {
4068
+ _getPublicKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(webId) {
4061
4069
  var publicKeyDoc, key;
4062
- return _regenerator["default"].wrap(function _callee$(_context) {
4063
- while (1) switch (_context.prev = _context.next) {
4070
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
4071
+ while (1) switch (_context2.prev = _context2.next) {
4064
4072
  case 0:
4065
- _context.next = 2;
4073
+ _context2.next = 2;
4066
4074
  return _solidLogic.store.fetcher.load(webId);
4067
4075
  case 2:
4068
- _context.next = 4;
4069
- return (0, _cryptoKeyHelpers.pubKeyUrl)(webId);
4076
+ _context2.next = 4;
4077
+ return (0, _accessData.pubKeyUrl)(webId);
4070
4078
  case 4:
4071
- publicKeyDoc = _context.sent;
4072
- _context.prev = 5;
4073
- _context.next = 8;
4079
+ publicKeyDoc = _context2.sent;
4080
+ _context2.prev = 5;
4081
+ _context2.next = 8;
4074
4082
  return _solidLogic.store.fetcher.load(publicKeyDoc);
4075
4083
  case 8:
4076
4084
  // url.href)
4077
4085
  key = _solidLogic.store.any(webId, _solidLogic.store.sym(_signature.CERT + 'PublicKey'));
4078
- return _context.abrupt("return", key === null || key === void 0 ? void 0 : key.value);
4086
+ return _context2.abrupt("return", key === null || key === void 0 ? void 0 : key.value);
4079
4087
  case 12:
4080
- _context.prev = 12;
4081
- _context.t0 = _context["catch"](5);
4082
- return _context.abrupt("return", undefined);
4088
+ _context2.prev = 12;
4089
+ _context2.t0 = _context2["catch"](5);
4090
+ return _context2.abrupt("return", undefined);
4083
4091
  case 15:
4084
4092
  case "end":
4085
- return _context.stop();
4093
+ return _context2.stop();
4086
4094
  }
4087
- }, _callee, null, [[5, 12]]);
4095
+ }, _callee2, null, [[5, 12]]);
4088
4096
  }));
4089
4097
  return _getPublicKey.apply(this, arguments);
4090
4098
  }
4091
4099
  function getPrivateKey(_x2) {
4092
4100
  return _getPrivateKey.apply(this, arguments);
4093
4101
  }
4094
- /**
4095
- * key container ACL
4096
- * @param me
4097
- * @returns aclBody
4098
- */
4099
4102
  function _getPrivateKey() {
4100
- _getPrivateKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(webId) {
4103
+ _getPrivateKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(webId) {
4101
4104
  var publicKeyDoc, privateKeyDoc, publicKey, privateKey, validPublicKey, del, add, newPublicKey, keyContainer;
4102
- return _regenerator["default"].wrap(function _callee2$(_context2) {
4103
- while (1) switch (_context2.prev = _context2.next) {
4105
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
4106
+ while (1) switch (_context3.prev = _context3.next) {
4104
4107
  case 0:
4105
- _context2.next = 2;
4108
+ _context3.next = 2;
4106
4109
  return _solidLogic.store.fetcher.load(webId);
4107
4110
  case 2:
4108
- _context2.next = 4;
4109
- return (0, _cryptoKeyHelpers.pubKeyUrl)(webId);
4111
+ _context3.next = 4;
4112
+ return (0, _accessData.pubKeyUrl)(webId);
4110
4113
  case 4:
4111
- publicKeyDoc = _context2.sent;
4112
- _context2.next = 7;
4113
- return (0, _cryptoKeyHelpers.privKeyUrl)(webId);
4114
+ publicKeyDoc = _context3.sent;
4115
+ _context3.next = 7;
4116
+ return (0, _accessData.privKeyUrl)(webId);
4114
4117
  case 7:
4115
- privateKeyDoc = _context2.sent;
4116
- _context2.next = 10;
4117
- return (0, _cryptoKeyHelpers.publicKeyExists)(webId);
4118
+ privateKeyDoc = _context3.sent;
4119
+ _context3.next = 10;
4120
+ return (0, _accessData.getExistingPublicKey)(webId, publicKeyDoc);
4118
4121
  case 10:
4119
- publicKey = _context2.sent;
4120
- _context2.next = 13;
4121
- return (0, _cryptoKeyHelpers.privateKeyExists)(webId);
4122
+ publicKey = _context3.sent;
4123
+ _context3.next = 13;
4124
+ return (0, _accessData.getExistingPrivateKey)(webId, privateKeyDoc);
4122
4125
  case 13:
4123
- privateKey = _context2.sent;
4126
+ privateKey = _context3.sent;
4124
4127
  // is publicKey valid ?
4125
4128
  validPublicKey = true;
4126
4129
  if (privateKey && publicKey !== generatePublicKey(privateKey)) {
@@ -4129,23 +4132,23 @@ function _getPrivateKey() {
4129
4132
 
4130
4133
  // create key pair or repair publicKey
4131
4134
  if (!(!privateKey || !publicKey || !validPublicKey)) {
4132
- _context2.next = 34;
4135
+ _context3.next = 34;
4133
4136
  break;
4134
4137
  }
4135
4138
  del = [];
4136
4139
  add = []; // if (privateKey) del.push($rdf.st(webId, store.sym(CERT + 'PrivateKey'), $rdf.lit(privateKey), store.sym(privateKeyDoc)))
4137
4140
  if (privateKey) {
4138
- _context2.next = 24;
4141
+ _context3.next = 24;
4139
4142
  break;
4140
4143
  }
4141
4144
  // add = []
4142
4145
  privateKey = generatePrivateKey();
4143
4146
  add = [$rdf.st(webId, _solidLogic.store.sym(_signature.CERT + 'PrivateKey'), $rdf.literal(privateKey), _solidLogic.store.sym(privateKeyDoc))];
4144
- _context2.next = 24;
4147
+ _context3.next = 24;
4145
4148
  return saveKey(privateKeyDoc, [], add, webId.uri);
4146
4149
  case 24:
4147
4150
  if (!(!publicKey || !validPublicKey)) {
4148
- _context2.next = 31;
4151
+ _context3.next = 31;
4149
4152
  break;
4150
4153
  }
4151
4154
  del = [];
@@ -4157,167 +4160,98 @@ function _getPrivateKey() {
4157
4160
  // update new valid key
4158
4161
  newPublicKey = generatePublicKey(privateKey);
4159
4162
  add = [$rdf.st(webId, _solidLogic.store.sym(_signature.CERT + 'PublicKey'), $rdf.literal(newPublicKey), _solidLogic.store.sym(publicKeyDoc))];
4160
- _context2.next = 31;
4163
+ _context3.next = 31;
4161
4164
  return saveKey(publicKeyDoc, del, add);
4162
4165
  case 31:
4163
4166
  keyContainer = privateKeyDoc.substring(0, privateKeyDoc.lastIndexOf('/') + 1);
4164
- _context2.next = 34;
4165
- return setAcl(keyContainer, keyContainerAclBody(webId.uri));
4167
+ _context3.next = 34;
4168
+ return (0, _acl.setAcl)(keyContainer, (0, _acl.keyContainerAclBody)(webId.uri));
4166
4169
  case 34:
4167
- return _context2.abrupt("return", privateKey);
4170
+ return _context3.abrupt("return", privateKey);
4168
4171
  case 35:
4169
4172
  case "end":
4170
- return _context2.stop();
4173
+ return _context3.stop();
4171
4174
  }
4172
- }, _callee2);
4175
+ }, _callee3);
4173
4176
  }));
4174
4177
  return _getPrivateKey.apply(this, arguments);
4175
4178
  }
4176
- var keyContainerAclBody = function keyContainerAclBody(me) {
4177
- var aclBody = "\n@prefix : <#>.\n@prefix acl: <http://www.w3.org/ns/auth/acl#>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix key: <./>.\n\n:ReadWrite\n a acl:Authorization;\n acl:accessTo key:;\n acl:default key:;\n acl:agent <".concat(me, ">;\n acl:mode acl:Read, acl:Write.\n");
4178
- return aclBody;
4179
- };
4180
-
4181
- /**
4182
- * Read only ACL
4183
- * @param keyDoc
4184
- * @param me
4185
- * @returns aclBody
4186
- */
4187
- var keyAclBody = function keyAclBody(keyDoc, me) {
4188
- var keyAgent = 'acl:agentClass foaf:Agent'; // publicKey
4189
- if (me !== null && me !== void 0 && me.length) keyAgent = "acl:agent <".concat(me, ">"); // privateKey
4190
- var aclBody = "\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix acl: <http://www.w3.org/ns/auth/acl#>.\n<#Read>\n a acl:Authorization;\n ".concat(keyAgent, ";\n acl:accessTo <").concat(keyDoc.split('/').pop(), ">;\n acl:mode acl:Read.\n");
4191
- return aclBody;
4192
- };
4193
-
4194
- /**
4195
- * set ACL
4196
- * @param keyDoc
4197
- * @param aclBody
4198
- */
4199
- function setAcl(_x3, _x4) {
4200
- return _setAcl.apply(this, arguments);
4201
- }
4202
- /**
4203
- * delete acl if keydoc exists
4204
- * create/edit keyDoc
4205
- * set keyDoc acl
4206
- */
4207
- function _setAcl() {
4208
- _setAcl = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(keyDoc, aclBody) {
4209
- var keyAclDoc, response, aclResponse;
4210
- return _regenerator["default"].wrap(function _callee3$(_context3) {
4211
- while (1) switch (_context3.prev = _context3.next) {
4179
+ var deleteKeyAcl = /*#__PURE__*/function () {
4180
+ var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(keyDoc) {
4181
+ var keyAclDoc, response;
4182
+ return _regenerator["default"].wrap(function _callee$(_context) {
4183
+ while (1) switch (_context.prev = _context.next) {
4212
4184
  case 0:
4213
- _context3.next = 2;
4185
+ _context.next = 2;
4214
4186
  return _solidLogic.store.fetcher.load(keyDoc);
4215
4187
  case 2:
4216
- // FIXME: check the Why value on this quad:
4217
- debug.log(_solidLogic.store.statementsMatching(_solidLogic.store.sym(keyDoc), _solidLogic.store.sym('http://www.iana.org/assignments/link-relations/acl')));
4218
4188
  keyAclDoc = _solidLogic.store.any(_solidLogic.store.sym(keyDoc), _solidLogic.store.sym('http://www.iana.org/assignments/link-relations/acl'));
4219
- if (keyAclDoc) {
4220
- _context3.next = 6;
4189
+ if (!keyAclDoc) {
4190
+ _context.next = 16;
4221
4191
  break;
4222
4192
  }
4223
- throw new Error('Key ACL doc not found!');
4224
- case 6:
4225
- _context3.prev = 6;
4226
- _context3.next = 9;
4193
+ _context.prev = 4;
4194
+ _context.next = 7;
4227
4195
  return _solidLogic.store.fetcher.webOperation('DELETE', keyAclDoc.value);
4228
- case 9:
4229
- response = _context3.sent;
4196
+ case 7:
4197
+ response = _context.sent;
4230
4198
  // this may fail if webId is not an owner
4231
4199
  debug.log('delete ' + keyAclDoc.value + ' ' + response.status); // should test 404 and 2xx
4232
- _context3.next = 18;
4200
+ _context.next = 16;
4233
4201
  break;
4234
- case 13:
4235
- _context3.prev = 13;
4236
- _context3.t0 = _context3["catch"](6);
4237
- if (!(_context3.t0.response.status !== 404)) {
4238
- _context3.next = 17;
4202
+ case 11:
4203
+ _context.prev = 11;
4204
+ _context.t0 = _context["catch"](4);
4205
+ if (!(_context.t0.response.status !== 404)) {
4206
+ _context.next = 15;
4239
4207
  break;
4240
4208
  }
4241
- throw new Error(_context3.t0);
4242
- case 17:
4243
- debug.log('delete ' + keyAclDoc.value + ' ' + _context3.t0.response.status); // should test 404 and 2xx
4244
- case 18:
4245
- _context3.next = 20;
4246
- return _solidLogic.store.fetcher.webOperation('PUT', keyAclDoc.value, {
4247
- data: aclBody,
4248
- contentType: 'text/turtle'
4249
- });
4250
- case 20:
4251
- aclResponse = _context3.sent;
4252
- case 21:
4209
+ throw new Error(_context.t0);
4210
+ case 15:
4211
+ debug.log('delete ' + keyAclDoc.value + ' ' + _context.t0.response.status); // should test 404 and 2xx
4212
+ case 16:
4253
4213
  case "end":
4254
- return _context3.stop();
4214
+ return _context.stop();
4255
4215
  }
4256
- }, _callee3, null, [[6, 13]]);
4216
+ }, _callee, null, [[4, 11]]);
4257
4217
  }));
4258
- return _setAcl.apply(this, arguments);
4259
- }
4260
- function saveKey(_x5, _x6, _x7) {
4218
+ return function deleteKeyAcl(_x3) {
4219
+ return _ref.apply(this, arguments);
4220
+ };
4221
+ }();
4222
+
4223
+ /**
4224
+ * delete acl if keydoc exists
4225
+ * create/edit keyDoc
4226
+ * set keyDoc acl
4227
+ */
4228
+ function saveKey(_x4, _x5, _x6) {
4261
4229
  return _saveKey.apply(this, arguments);
4262
4230
  }
4263
4231
  function _saveKey() {
4264
4232
  _saveKey = (0, _asyncToGenerator2["default"])(function (keyDoc, del, add) {
4265
4233
  var me = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
4266
4234
  return /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
4267
- var keyAclDoc, response, aclBody;
4235
+ var aclBody;
4268
4236
  return _regenerator["default"].wrap(function _callee4$(_context4) {
4269
4237
  while (1) switch (_context4.prev = _context4.next) {
4270
4238
  case 0:
4271
4239
  _context4.next = 2;
4272
- return _solidLogic.store.fetcher.load(keyDoc);
4240
+ return deleteKeyAcl(keyDoc);
4273
4241
  case 2:
4274
- _context4.prev = 2;
4275
- // get keyAcldoc
4276
- keyAclDoc = _solidLogic.store.any(_solidLogic.store.sym(keyDoc), _solidLogic.store.sym('http://www.iana.org/assignments/link-relations/acl'));
4277
- if (!keyAclDoc) {
4278
- _context4.next = 17;
4279
- break;
4280
- }
4281
- _context4.prev = 5;
4282
- _context4.next = 8;
4283
- return _solidLogic.store.fetcher.webOperation('DELETE', keyAclDoc.value);
4284
- case 8:
4285
- response = _context4.sent;
4286
- // this may fail if webId is not an owner
4287
- debug.log('delete ' + keyAclDoc.value + ' ' + response.status); // should test 404 and 2xx
4288
- _context4.next = 17;
4289
- break;
4290
- case 12:
4291
- _context4.prev = 12;
4292
- _context4.t0 = _context4["catch"](5);
4293
- if (!(_context4.t0.response.status !== 404)) {
4294
- _context4.next = 16;
4295
- break;
4296
- }
4297
- throw new Error(_context4.t0);
4298
- case 16:
4299
- debug.log('delete ' + keyAclDoc.value + ' ' + _context4.t0.response.status); // should test 404 and 2xx
4300
- case 17:
4301
- _context4.next = 19;
4242
+ _context4.next = 4;
4302
4243
  return _solidLogic.store.updater.updateMany(del, add);
4303
- case 19:
4244
+ case 4:
4304
4245
  // or a promise store.updater.update ?
4305
4246
  // create READ only ACL
4306
- aclBody = keyAclBody(keyDoc, me);
4307
- _context4.next = 22;
4308
- return setAcl(keyDoc, aclBody);
4309
- case 22:
4310
- _context4.next = 27;
4311
- break;
4312
- case 24:
4313
- _context4.prev = 24;
4314
- _context4.t1 = _context4["catch"](2);
4315
- throw new Error(_context4.t1);
4316
- case 27:
4247
+ aclBody = (0, _acl.keyAclBody)(keyDoc, me);
4248
+ _context4.next = 7;
4249
+ return (0, _acl.setAcl)(keyDoc, aclBody);
4250
+ case 7:
4317
4251
  case "end":
4318
4252
  return _context4.stop();
4319
4253
  }
4320
- }, _callee4, null, [[2, 24], [5, 12]]);
4254
+ }, _callee4);
4321
4255
  })();
4322
4256
  });
4323
4257
  return _saveKey.apply(this, arguments);
@@ -4374,7 +4308,11 @@ var messageBodyStyle = style.messageBodyStyle;
4374
4308
  var label = utils.label;
4375
4309
 
4376
4310
  /**
4311
+ * elementForImageURI
4377
4312
  * HTML component for an image
4313
+ * @param imageUri
4314
+ * @param options { inlineImageHeightEms }
4315
+ * @returns HTMLAnchorElement For Image
4378
4316
  */
4379
4317
  function elementForImageURI(imageUri, options) {
4380
4318
  var img = dom.createElement('img');
@@ -4404,21 +4342,27 @@ var anchor = function anchor(text, term) {
4404
4342
  a.textContent = text;
4405
4343
  return a;
4406
4344
  };
4407
- function nick(person) {
4345
+ function nickname(person) {
4408
4346
  var s = _solidLogic.store.any(person, ns.foaf('nick'));
4409
4347
  if (s) return '' + s.value;
4410
4348
  return '' + label(person);
4411
4349
  }
4412
4350
 
4413
4351
  /**
4352
+ * creatorAndDate
4414
4353
  * Displays creator and date for a chat message
4415
4354
  * inside the `td1` element
4355
+ * @param td1
4356
+ * @param creator
4357
+ * @param date
4358
+ * @param message
4359
+ * @returns HTMLAnchorElement For Image
4416
4360
  */
4417
4361
  function creatorAndDate(td1, creator, date, message) {
4418
- var nickAnchor = td1.appendChild(anchor(nick(creator), creator));
4362
+ var nickAnchor = td1.appendChild(anchor(nickname(creator), creator));
4419
4363
  if (creator.uri) {
4420
4364
  _solidLogic.store.fetcher.nowOrWhenFetched(creator.doc(), undefined, function (_ok, _body) {
4421
- nickAnchor.textContent = nick(creator);
4365
+ nickAnchor.textContent = nickname(creator);
4422
4366
  });
4423
4367
  }
4424
4368
  td1.appendChild(dom.createElement('br'));
@@ -4426,14 +4370,20 @@ function creatorAndDate(td1, creator, date, message) {
4426
4370
  }
4427
4371
 
4428
4372
  /**
4373
+ * creatorAndDateHorizontal
4429
4374
  * Horizontally displays creator and date for a chat message
4430
4375
  * inside the `td1` element
4376
+ * @param td1
4377
+ * @param creator
4378
+ * @param date
4379
+ * @param message
4380
+ * @returns HTMLAnchorElement For Image
4431
4381
  */
4432
4382
  function creatorAndDateHorizontal(td1, creator, date, message) {
4433
4383
  var nickAnchor = td1.appendChild(anchor(label(creator), creator));
4434
4384
  if (creator.uri) {
4435
4385
  _solidLogic.store.fetcher.nowOrWhenFetched(creator.doc(), undefined, function (_ok, _body) {
4436
- nickAnchor.textContent = nick(creator);
4386
+ nickAnchor.textContent = nickname(creator);
4437
4387
  });
4438
4388
  }
4439
4389
  var dateBit = td1.appendChild(anchor(date, message));
@@ -4443,9 +4393,17 @@ function creatorAndDateHorizontal(td1, creator, date, message) {
4443
4393
  }
4444
4394
 
4445
4395
  /**
4396
+ * renderMessageRow
4446
4397
  * Renders a chat message, read-only mode
4398
+ * @param channelObject
4399
+ * @param message
4400
+ * @param fresh
4401
+ * @param options
4402
+ * @param userContext
4403
+ * @returns Message Row HTML Table Element
4447
4404
  */
4448
4405
  function renderMessageRow(channelObject, message, fresh, options, userContext) {
4406
+ var unsignedMessage = false;
4449
4407
  var colorizeByAuthor = options.colorizeByAuthor === '1' || options.colorizeByAuthor === true;
4450
4408
  var creator = _solidLogic.store.any(message, ns.foaf('maker'));
4451
4409
  var date = _solidLogic.store.any(message, ns.dct('created'));
@@ -4465,10 +4423,11 @@ function renderMessageRow(channelObject, message, fresh, options, userContext) {
4465
4423
  msg.maker = creator.uri;
4466
4424
 
4467
4425
  // unsigned message
4468
- if (!(signature !== null && signature !== void 0 && signature.value)) debug.warn(msgId.uri + ' is unsigned'); // TODO replace with UI (colored message ?)
4469
-
4470
- // signed message, get public key and check signature
4471
- else {
4426
+ if (!(signature !== null && signature !== void 0 && signature.value)) {
4427
+ unsignedMessage = true;
4428
+ debug.warn(msgId.uri + ' is unsigned'); // TODO replace with UI (colored message ?)
4429
+ } else {
4430
+ // signed message, get public key and check signature
4472
4431
  (0, _keys.getPublicKey)(creator).then(function (publicKey) {
4473
4432
  debug.log(creator.uri + '\n' + msg.created + '\n' + msg.id + '\n' + publicKey);
4474
4433
  if (!publicKey) {
@@ -4488,6 +4447,7 @@ function renderMessageRow(channelObject, message, fresh, options, userContext) {
4488
4447
  var sortDate = _solidLogic.store.the(originalMessage, ns.dct('created'), null, originalMessage.doc()); // In message
4489
4448
 
4490
4449
  var messageRow = dom.createElement('tr');
4450
+ if (unsignedMessage) messageRow.setAttribute('style', 'background-color: red');
4491
4451
  messageRow.AJAR_date = sortDate.value;
4492
4452
  messageRow.AJAR_subject = message;
4493
4453
  var td1 = dom.createElement('td');
@@ -4576,7 +4536,8 @@ function renderMessageRow(channelObject, message, fresh, options, userContext) {
4576
4536
  toolsTD.appendChild(tools);
4577
4537
  });
4578
4538
  return messageRow;
4579
- }
4539
+ } // END OF RENDERMESSAGE
4540
+
4580
4541
  function switchToEditor(messageRow, message, channelObject, userContext) {
4581
4542
  var messageTable = messageRow.parentNode;
4582
4543
  var editRow = renderMessageEditor(channelObject, messageTable, userContext, channelObject.options, (0, _chatLogic.mostRecentVersion)(message));
@@ -5276,13 +5237,11 @@ Object.defineProperty(exports, "__esModule", ({
5276
5237
  value: true
5277
5238
  }));
5278
5239
  exports.SEC = exports.CERT = void 0;
5279
- exports.finishMsg = finishMsg;
5280
5240
  exports.getBlankMsg = getBlankMsg;
5281
5241
  exports.getMsgHash = getMsgHash;
5282
5242
  exports.serializeMsg = serializeMsg;
5283
5243
  exports.signMsg = signMsg;
5284
5244
  exports.utf8Encoder = exports.utf8Decoder = void 0;
5285
- exports.validateMsg = validateMsg;
5286
5245
  exports.verifySignature = verifySignature;
5287
5246
  var _secp256k = __webpack_require__(/*! @noble/curves/secp256k1 */ "./node_modules/@noble/curves/secp256k1.js");
5288
5247
  var _utils = __webpack_require__(/*! @noble/hashes/utils */ "./node_modules/@noble/hashes/utils.js");
@@ -5328,19 +5287,22 @@ function getBlankMsg() {
5328
5287
  id: '',
5329
5288
  created: '',
5330
5289
  dateDeleted: '',
5290
+ // TODO to remove if not used
5331
5291
  content: '',
5332
5292
  maker: '',
5333
- sig: ''
5293
+ sig: '' // TODO to remove if not used
5334
5294
  };
5335
5295
  }
5336
- function finishMsg(t, privateKey) {
5337
- // to update to chat message triples
5338
- var message = t;
5339
- // message.pubkey = getPublicKey(privateKey)
5340
- message.id = getMsgHash(message);
5341
- message.sig = signMsg(message, privateKey);
5342
- return message;
5343
- }
5296
+
5297
+ /* export function finishMsg (t: MsgTemplate, privateKey: string): Message {
5298
+ // to update to chat message triples
5299
+ const message = t as Message
5300
+ // message.pubkey = getPublicKey(privateKey)
5301
+ message.id = getMsgHash(message)
5302
+ message.sig = signMsg(message, privateKey)
5303
+ return message
5304
+ } */
5305
+
5344
5306
  function serializeMsg(msg) {
5345
5307
  // to update to chat messages triples
5346
5308
  /* if (!validateMsg(msg))
@@ -5352,27 +5314,29 @@ function getMsgHash(message) {
5352
5314
  var msgHash = (0, _sha.sha256)(utf8Encoder.encode(serializeMsg(message)));
5353
5315
  return (0, _utils.bytesToHex)(msgHash);
5354
5316
  }
5355
- var isRecord = function isRecord(obj) {
5356
- return obj instanceof Object;
5357
- };
5358
- function validateMsg(message) {
5359
- /* if (!isRecord(message)) return false
5317
+
5318
+ // const isRecord = (obj: unknown): obj is Record<string, unknown> => obj instanceof Object
5319
+
5320
+ /* export function validateMsg<T> (message: T): message is T & UnsignedMsg {
5321
+ if (!isRecord(message)) return false
5360
5322
  if (typeof message.kind !== 'number') return false
5361
5323
  if (typeof message.content !== 'string') return false
5362
5324
  if (typeof message.created_at !== 'number') return false
5363
5325
  if (typeof message.pubkey !== 'string') return false
5364
5326
  if (!message.pubkey.match(/^[a-f0-9]{64}$/)) return false
5365
- if (!Array.isArray(message.tags)) return false
5327
+
5328
+ if (!Array.isArray(message.tags)) return false
5366
5329
  for (let i = 0; i < message.tags.length; i++) {
5367
5330
  let tag = message.tags[i]
5368
5331
  if (!Array.isArray(tag)) return false
5369
5332
  for (let j = 0; j < tag.length; j++) {
5370
5333
  if (typeof tag[j] === 'object') return false
5371
5334
  }
5372
- } */
5335
+ }
5336
+
5337
+ return true
5338
+ } */
5373
5339
 
5374
- return true;
5375
- }
5376
5340
  function verifySignature(sig, message, pubKey) {
5377
5341
  return _secp256k.schnorr.verify(sig, getMsgHash(message), pubKey);
5378
5342
  }
@@ -12583,251 +12547,6 @@ function isLight(x) {
12583
12547
 
12584
12548
  /***/ }),
12585
12549
 
12586
- /***/ "./lib/utils/cryptoKeyHelpers.js":
12587
- /*!***************************************!*\
12588
- !*** ./lib/utils/cryptoKeyHelpers.js ***!
12589
- \***************************************/
12590
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
12591
-
12592
- "use strict";
12593
-
12594
-
12595
- var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js");
12596
- var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/typeof.js");
12597
- Object.defineProperty(exports, "__esModule", ({
12598
- value: true
12599
- }));
12600
- exports.privKeyUrl = void 0;
12601
- exports.privateKeyExists = privateKeyExists;
12602
- exports.pubKeyUrl = void 0;
12603
- exports.publicKeyExists = publicKeyExists;
12604
- var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"));
12605
- var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
12606
- var debug = _interopRequireWildcard(__webpack_require__(/*! ../debug */ "./lib/debug.js"));
12607
- var _signature = __webpack_require__(/*! ../chat/signature */ "./lib/chat/signature.js");
12608
- var _solidLogic = __webpack_require__(/*! solid-logic */ "./node_modules/solid-logic/lib/index.js");
12609
- var ns = _interopRequireWildcard(__webpack_require__(/*! ../ns */ "./lib/ns.js"));
12610
- 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); }
12611
- 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; }
12612
- var getPodRoot = /*#__PURE__*/function () {
12613
- var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(webId) {
12614
- var _podRoot;
12615
- var webIdURL, storages, podRoot, path, _res$headers$get, res;
12616
- return _regenerator["default"].wrap(function _callee$(_context) {
12617
- while (1) switch (_context.prev = _context.next) {
12618
- case 0:
12619
- webIdURL = new URL(webId.uri); // find storages in webId document
12620
- _context.next = 3;
12621
- return _solidLogic.store.fetcher.load(webId.uri);
12622
- case 3:
12623
- storages = _solidLogic.store.each(webId, ns.space('storage'), null, webId.doc());
12624
- if (storages !== null && storages !== void 0 && storages.length) {
12625
- _context.next = 19;
12626
- break;
12627
- }
12628
- // find storage recursively in webId URL
12629
- path = webIdURL.pathname;
12630
- case 6:
12631
- if (!path.length) {
12632
- _context.next = 17;
12633
- break;
12634
- }
12635
- path = path.substring(0, path.lastIndexOf('/'));
12636
- podRoot = _solidLogic.store.sym(webIdURL.origin + path + '/');
12637
- _context.next = 11;
12638
- return _solidLogic.store.fetcher.webOperation('HEAD', podRoot.uri);
12639
- case 11:
12640
- res = _context.sent;
12641
- if (!((_res$headers$get = res.headers.get('link')) !== null && _res$headers$get !== void 0 && _res$headers$get.includes(ns.space('Storage').value))) {
12642
- _context.next = 14;
12643
- break;
12644
- }
12645
- return _context.abrupt("break", 17);
12646
- case 14:
12647
- if (!path) debug.warn("Current user storage not found for\n".concat(webId));
12648
- _context.next = 6;
12649
- break;
12650
- case 17:
12651
- _context.next = 21;
12652
- break;
12653
- case 19:
12654
- // give preference to storage in webId root
12655
- podRoot = storages.find(function (storage) {
12656
- return webIdURL.origin === new URL(storage.value).origin;
12657
- });
12658
- if (!podRoot) podRoot = storages[0];
12659
- case 21:
12660
- return _context.abrupt("return", (_podRoot = podRoot) === null || _podRoot === void 0 ? void 0 : _podRoot.value);
12661
- case 22:
12662
- case "end":
12663
- return _context.stop();
12664
- }
12665
- }, _callee);
12666
- }));
12667
- return function getPodRoot(_x) {
12668
- return _ref.apply(this, arguments);
12669
- };
12670
- }();
12671
- var pubKeyUrl = /*#__PURE__*/function () {
12672
- var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(webId) {
12673
- return _regenerator["default"].wrap(function _callee2$(_context2) {
12674
- while (1) switch (_context2.prev = _context2.next) {
12675
- case 0:
12676
- _context2.prev = 0;
12677
- _context2.next = 3;
12678
- return getPodRoot(webId);
12679
- case 3:
12680
- _context2.t0 = _context2.sent;
12681
- return _context2.abrupt("return", _context2.t0 + 'profile/keys/publicKey.ttl');
12682
- case 7:
12683
- _context2.prev = 7;
12684
- _context2.t1 = _context2["catch"](0);
12685
- throw new Error(_context2.t1);
12686
- case 10:
12687
- case "end":
12688
- return _context2.stop();
12689
- }
12690
- }, _callee2, null, [[0, 7]]);
12691
- }));
12692
- return function pubKeyUrl(_x2) {
12693
- return _ref2.apply(this, arguments);
12694
- };
12695
- }();
12696
- exports.pubKeyUrl = pubKeyUrl;
12697
- function publicKeyExists(_x3) {
12698
- return _publicKeyExists.apply(this, arguments);
12699
- }
12700
- function _publicKeyExists() {
12701
- _publicKeyExists = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(webId) {
12702
- var publicKeyUrl;
12703
- return _regenerator["default"].wrap(function _callee4$(_context4) {
12704
- while (1) switch (_context4.prev = _context4.next) {
12705
- case 0:
12706
- _context4.next = 2;
12707
- return pubKeyUrl(webId);
12708
- case 2:
12709
- publicKeyUrl = _context4.sent;
12710
- _context4.next = 5;
12711
- return keyExists(webId, publicKeyUrl, 'PublicKey');
12712
- case 5:
12713
- return _context4.abrupt("return", _context4.sent);
12714
- case 6:
12715
- case "end":
12716
- return _context4.stop();
12717
- }
12718
- }, _callee4);
12719
- }));
12720
- return _publicKeyExists.apply(this, arguments);
12721
- }
12722
- var privKeyUrl = /*#__PURE__*/function () {
12723
- var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(webId) {
12724
- return _regenerator["default"].wrap(function _callee3$(_context3) {
12725
- while (1) switch (_context3.prev = _context3.next) {
12726
- case 0:
12727
- _context3.prev = 0;
12728
- _context3.next = 3;
12729
- return getPodRoot(webId);
12730
- case 3:
12731
- _context3.t0 = _context3.sent;
12732
- return _context3.abrupt("return", _context3.t0 + 'profile/keys/privateKey.ttl');
12733
- case 7:
12734
- _context3.prev = 7;
12735
- _context3.t1 = _context3["catch"](0);
12736
- throw new Error(_context3.t1);
12737
- case 10:
12738
- case "end":
12739
- return _context3.stop();
12740
- }
12741
- }, _callee3, null, [[0, 7]]);
12742
- }));
12743
- return function privKeyUrl(_x4) {
12744
- return _ref3.apply(this, arguments);
12745
- };
12746
- }();
12747
- exports.privKeyUrl = privKeyUrl;
12748
- function privateKeyExists(_x5) {
12749
- return _privateKeyExists.apply(this, arguments);
12750
- }
12751
- function _privateKeyExists() {
12752
- _privateKeyExists = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(webId) {
12753
- var privateKeyUrl;
12754
- return _regenerator["default"].wrap(function _callee5$(_context5) {
12755
- while (1) switch (_context5.prev = _context5.next) {
12756
- case 0:
12757
- _context5.next = 2;
12758
- return privKeyUrl(webId);
12759
- case 2:
12760
- privateKeyUrl = _context5.sent;
12761
- _context5.next = 5;
12762
- return keyExists(webId, privateKeyUrl, 'PrivateKey');
12763
- case 5:
12764
- return _context5.abrupt("return", _context5.sent);
12765
- case 6:
12766
- case "end":
12767
- return _context5.stop();
12768
- }
12769
- }, _callee5);
12770
- }));
12771
- return _privateKeyExists.apply(this, arguments);
12772
- }
12773
- function keyExists(_x6, _x7, _x8) {
12774
- return _keyExists.apply(this, arguments);
12775
- }
12776
- function _keyExists() {
12777
- _keyExists = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(webId, keyUrl, keyType) {
12778
- var key, _err$response, data, contentType, response;
12779
- return _regenerator["default"].wrap(function _callee6$(_context6) {
12780
- while (1) switch (_context6.prev = _context6.next) {
12781
- case 0:
12782
- _context6.prev = 0;
12783
- _context6.next = 3;
12784
- return _solidLogic.store.fetcher.load(keyUrl);
12785
- case 3:
12786
- key = _solidLogic.store.any(webId, _solidLogic.store.sym(_signature.CERT + keyType));
12787
- return _context6.abrupt("return", key === null || key === void 0 ? void 0 : key.value);
12788
- case 7:
12789
- _context6.prev = 7;
12790
- _context6.t0 = _context6["catch"](0);
12791
- 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)) {
12792
- _context6.next = 24;
12793
- break;
12794
- }
12795
- _context6.prev = 10;
12796
- // create privateKey resource
12797
- data = '';
12798
- contentType = 'text/turtle';
12799
- _context6.next = 15;
12800
- return _solidLogic.store.fetcher.webOperation('PUT', keyUrl, {
12801
- data: data,
12802
- contentType: contentType
12803
- });
12804
- case 15:
12805
- response = _context6.sent;
12806
- _context6.next = 22;
12807
- break;
12808
- case 18:
12809
- _context6.prev = 18;
12810
- _context6.t1 = _context6["catch"](10);
12811
- debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + _context6.t1);
12812
- throw _context6.t1;
12813
- case 22:
12814
- delete _solidLogic.store.fetcher.requested[keyUrl]; // delete cached 404 error
12815
- return _context6.abrupt("return", undefined);
12816
- case 24:
12817
- debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + _context6.t0);
12818
- throw _context6.t0;
12819
- case 26:
12820
- case "end":
12821
- return _context6.stop();
12822
- }
12823
- }, _callee6, null, [[0, 7], [10, 18]]);
12824
- }));
12825
- return _keyExists.apply(this, arguments);
12826
- }
12827
- //# sourceMappingURL=cryptoKeyHelpers.js.map
12828
-
12829
- /***/ }),
12830
-
12831
12550
  /***/ "./lib/utils/headerFooterHelpers.js":
12832
12551
  /*!******************************************!*\
12833
12552
  !*** ./lib/utils/headerFooterHelpers.js ***!
@@ -13546,6 +13265,328 @@ function predParentOf(node) {
13546
13265
 
13547
13266
  /***/ }),
13548
13267
 
13268
+ /***/ "./lib/utils/keyHelpers/accessData.js":
13269
+ /*!********************************************!*\
13270
+ !*** ./lib/utils/keyHelpers/accessData.js ***!
13271
+ \********************************************/
13272
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
13273
+
13274
+ "use strict";
13275
+
13276
+
13277
+ var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js");
13278
+ var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/typeof.js");
13279
+ Object.defineProperty(exports, "__esModule", ({
13280
+ value: true
13281
+ }));
13282
+ exports.getExistingPrivateKey = getExistingPrivateKey;
13283
+ exports.getExistingPublicKey = getExistingPublicKey;
13284
+ exports.getKeyIfExists = getKeyIfExists;
13285
+ exports.pubKeyUrl = exports.privKeyUrl = exports.getPodRoot = void 0;
13286
+ var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"));
13287
+ var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
13288
+ var debug = _interopRequireWildcard(__webpack_require__(/*! ../../debug */ "./lib/debug.js"));
13289
+ var _signature = __webpack_require__(/*! ../../chat/signature */ "./lib/chat/signature.js");
13290
+ var _solidLogic = __webpack_require__(/*! solid-logic */ "./node_modules/solid-logic/lib/index.js");
13291
+ var ns = _interopRequireWildcard(__webpack_require__(/*! ../../ns */ "./lib/ns.js"));
13292
+ 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); }
13293
+ 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; }
13294
+ var getPodRoot = /*#__PURE__*/function () {
13295
+ var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(webId) {
13296
+ var webIdURL, storages, podRoot, path, _res$headers$get, res;
13297
+ return _regenerator["default"].wrap(function _callee$(_context) {
13298
+ while (1) switch (_context.prev = _context.next) {
13299
+ case 0:
13300
+ webIdURL = new URL(webId.uri); // find storages in webId document
13301
+ _context.next = 3;
13302
+ return _solidLogic.store.fetcher.load(webId.uri);
13303
+ case 3:
13304
+ storages = _solidLogic.store.each(webId, ns.space('storage'), null, webId.doc());
13305
+ if (storages !== null && storages !== void 0 && storages.length) {
13306
+ _context.next = 19;
13307
+ break;
13308
+ }
13309
+ // find storage recursively in webId URL
13310
+ path = webIdURL.pathname;
13311
+ case 6:
13312
+ if (!path.length) {
13313
+ _context.next = 17;
13314
+ break;
13315
+ }
13316
+ path = path.substring(0, path.lastIndexOf('/'));
13317
+ podRoot = _solidLogic.store.sym(webIdURL.origin + path + '/');
13318
+ _context.next = 11;
13319
+ return _solidLogic.store.fetcher.webOperation('HEAD', podRoot.uri);
13320
+ case 11:
13321
+ res = _context.sent;
13322
+ if (!((_res$headers$get = res.headers.get('link')) !== null && _res$headers$get !== void 0 && _res$headers$get.includes(ns.space('Storage').value))) {
13323
+ _context.next = 14;
13324
+ break;
13325
+ }
13326
+ return _context.abrupt("break", 17);
13327
+ case 14:
13328
+ if (!path) debug.warn("Current user storage not found for\n".concat(webId));
13329
+ _context.next = 6;
13330
+ break;
13331
+ case 17:
13332
+ _context.next = 21;
13333
+ break;
13334
+ case 19:
13335
+ // give preference to storage in webId root
13336
+ podRoot = storages.find(function (storage) {
13337
+ return webIdURL.origin === new URL(storage.value).origin;
13338
+ });
13339
+ if (!podRoot) podRoot = storages[0];
13340
+ case 21:
13341
+ return _context.abrupt("return", podRoot);
13342
+ case 22:
13343
+ case "end":
13344
+ return _context.stop();
13345
+ }
13346
+ }, _callee);
13347
+ }));
13348
+ return function getPodRoot(_x) {
13349
+ return _ref.apply(this, arguments);
13350
+ };
13351
+ }();
13352
+ exports.getPodRoot = getPodRoot;
13353
+ var pubKeyUrl = /*#__PURE__*/function () {
13354
+ var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(webId) {
13355
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
13356
+ while (1) switch (_context2.prev = _context2.next) {
13357
+ case 0:
13358
+ _context2.prev = 0;
13359
+ _context2.next = 3;
13360
+ return getPodRoot(webId);
13361
+ case 3:
13362
+ _context2.t0 = _context2.sent.value;
13363
+ return _context2.abrupt("return", _context2.t0 + 'profile/keys/publicKey.ttl');
13364
+ case 7:
13365
+ _context2.prev = 7;
13366
+ _context2.t1 = _context2["catch"](0);
13367
+ throw new Error(_context2.t1);
13368
+ case 10:
13369
+ case "end":
13370
+ return _context2.stop();
13371
+ }
13372
+ }, _callee2, null, [[0, 7]]);
13373
+ }));
13374
+ return function pubKeyUrl(_x2) {
13375
+ return _ref2.apply(this, arguments);
13376
+ };
13377
+ }();
13378
+ exports.pubKeyUrl = pubKeyUrl;
13379
+ function getExistingPublicKey(_x3, _x4) {
13380
+ return _getExistingPublicKey.apply(this, arguments);
13381
+ }
13382
+ function _getExistingPublicKey() {
13383
+ _getExistingPublicKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(webId, publicKeyUrl) {
13384
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
13385
+ while (1) switch (_context4.prev = _context4.next) {
13386
+ case 0:
13387
+ _context4.next = 2;
13388
+ return getKeyIfExists(webId, publicKeyUrl, 'PublicKey');
13389
+ case 2:
13390
+ return _context4.abrupt("return", _context4.sent);
13391
+ case 3:
13392
+ case "end":
13393
+ return _context4.stop();
13394
+ }
13395
+ }, _callee4);
13396
+ }));
13397
+ return _getExistingPublicKey.apply(this, arguments);
13398
+ }
13399
+ var privKeyUrl = /*#__PURE__*/function () {
13400
+ var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(webId) {
13401
+ var _store$any, _settings;
13402
+ var settings, _settings2, podRoot;
13403
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
13404
+ while (1) switch (_context3.prev = _context3.next) {
13405
+ case 0:
13406
+ settings = (_store$any = _solidLogic.store.any(webId, ns.space('preferencesFile'), null, webId.doc())) === null || _store$any === void 0 ? void 0 : _store$any.value;
13407
+ settings = (_settings = settings) === null || _settings === void 0 ? void 0 : _settings.split('/').slice(0, -1).join('/');
13408
+ _context3.prev = 2;
13409
+ _context3.next = 5;
13410
+ return getPodRoot(webId);
13411
+ case 5:
13412
+ podRoot = _context3.sent;
13413
+ if ((_settings2 = settings) !== null && _settings2 !== void 0 && _settings2.startsWith(podRoot.value)) {
13414
+ _context3.next = 8;
13415
+ break;
13416
+ }
13417
+ throw new Error("/settings/ is expected to be in ".concat(podRoot.value));
13418
+ case 8:
13419
+ return _context3.abrupt("return", "".concat(settings, "/keys/privateKey.ttl"));
13420
+ case 11:
13421
+ _context3.prev = 11;
13422
+ _context3.t0 = _context3["catch"](2);
13423
+ throw new Error(_context3.t0);
13424
+ case 14:
13425
+ case "end":
13426
+ return _context3.stop();
13427
+ }
13428
+ }, _callee3, null, [[2, 11]]);
13429
+ }));
13430
+ return function privKeyUrl(_x5) {
13431
+ return _ref3.apply(this, arguments);
13432
+ };
13433
+ }();
13434
+ exports.privKeyUrl = privKeyUrl;
13435
+ function getExistingPrivateKey(_x6, _x7) {
13436
+ return _getExistingPrivateKey.apply(this, arguments);
13437
+ }
13438
+ function _getExistingPrivateKey() {
13439
+ _getExistingPrivateKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(webId, privateKeyUrl) {
13440
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
13441
+ while (1) switch (_context5.prev = _context5.next) {
13442
+ case 0:
13443
+ _context5.next = 2;
13444
+ return getKeyIfExists(webId, privateKeyUrl, 'PrivateKey');
13445
+ case 2:
13446
+ return _context5.abrupt("return", _context5.sent);
13447
+ case 3:
13448
+ case "end":
13449
+ return _context5.stop();
13450
+ }
13451
+ }, _callee5);
13452
+ }));
13453
+ return _getExistingPrivateKey.apply(this, arguments);
13454
+ }
13455
+ function getKeyIfExists(_x8, _x9, _x10) {
13456
+ return _getKeyIfExists.apply(this, arguments);
13457
+ }
13458
+ function _getKeyIfExists() {
13459
+ _getKeyIfExists = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(webId, keyUrl, keyType) {
13460
+ var key;
13461
+ return _regenerator["default"].wrap(function _callee6$(_context6) {
13462
+ while (1) switch (_context6.prev = _context6.next) {
13463
+ case 0:
13464
+ _context6.prev = 0;
13465
+ _context6.next = 3;
13466
+ return _solidLogic.store.fetcher.load(keyUrl);
13467
+ case 3:
13468
+ key = _solidLogic.store.any(webId, _solidLogic.store.sym(_signature.CERT + keyType));
13469
+ return _context6.abrupt("return", key === null || key === void 0 ? void 0 : key.value);
13470
+ case 7:
13471
+ _context6.prev = 7;
13472
+ _context6.t0 = _context6["catch"](0);
13473
+ debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + _context6.t0);
13474
+ throw _context6.t0;
13475
+ case 11:
13476
+ case "end":
13477
+ return _context6.stop();
13478
+ }
13479
+ }, _callee6, null, [[0, 7]]);
13480
+ }));
13481
+ return _getKeyIfExists.apply(this, arguments);
13482
+ }
13483
+ //# sourceMappingURL=accessData.js.map
13484
+
13485
+ /***/ }),
13486
+
13487
+ /***/ "./lib/utils/keyHelpers/acl.js":
13488
+ /*!*************************************!*\
13489
+ !*** ./lib/utils/keyHelpers/acl.js ***!
13490
+ \*************************************/
13491
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
13492
+
13493
+ "use strict";
13494
+
13495
+
13496
+ var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js");
13497
+ var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/typeof.js");
13498
+ Object.defineProperty(exports, "__esModule", ({
13499
+ value: true
13500
+ }));
13501
+ exports.keyContainerAclBody = exports.keyAclBody = void 0;
13502
+ exports.setAcl = setAcl;
13503
+ var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"));
13504
+ var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
13505
+ var debug = _interopRequireWildcard(__webpack_require__(/*! ../../debug */ "./lib/debug.js"));
13506
+ var _solidLogic = __webpack_require__(/*! solid-logic */ "./node_modules/solid-logic/lib/index.js");
13507
+ 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); }
13508
+ 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; }
13509
+ /**
13510
+ * set ACL
13511
+ * @param keyDoc
13512
+ * @param aclBody
13513
+ */
13514
+ function setAcl(_x, _x2) {
13515
+ return _setAcl.apply(this, arguments);
13516
+ }
13517
+ /**
13518
+ * key container ACL
13519
+ * @param me
13520
+ * @returns aclBody
13521
+ */
13522
+ function _setAcl() {
13523
+ _setAcl = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(keyDoc, aclBody) {
13524
+ var keyAclDoc, _err$response;
13525
+ return _regenerator["default"].wrap(function _callee$(_context) {
13526
+ while (1) switch (_context.prev = _context.next) {
13527
+ case 0:
13528
+ _context.next = 2;
13529
+ return _solidLogic.store.fetcher.load(keyDoc);
13530
+ case 2:
13531
+ // FIXME: check the Why value on this quad:
13532
+ debug.log(_solidLogic.store.statementsMatching(_solidLogic.store.sym(keyDoc), _solidLogic.store.sym('http://www.iana.org/assignments/link-relations/acl')));
13533
+ keyAclDoc = _solidLogic.store.any(_solidLogic.store.sym(keyDoc), _solidLogic.store.sym('http://www.iana.org/assignments/link-relations/acl'));
13534
+ if (keyAclDoc) {
13535
+ _context.next = 6;
13536
+ break;
13537
+ }
13538
+ throw new Error('Key ACL doc not found!');
13539
+ case 6:
13540
+ _context.prev = 6;
13541
+ _context.next = 9;
13542
+ return _solidLogic.store.fetcher.webOperation('PUT', keyAclDoc.value, {
13543
+ data: aclBody,
13544
+ contentType: 'text/turtle'
13545
+ });
13546
+ case 9:
13547
+ _context.next = 16;
13548
+ break;
13549
+ case 11:
13550
+ _context.prev = 11;
13551
+ _context.t0 = _context["catch"](6);
13552
+ if (!((_context.t0 === null || _context.t0 === void 0 ? void 0 : (_err$response = _context.t0.response) === null || _err$response === void 0 ? void 0 : _err$response.status) !== 404)) {
13553
+ _context.next = 15;
13554
+ break;
13555
+ }
13556
+ throw new Error(_context.t0);
13557
+ case 15:
13558
+ debug.log('delete ' + keyAclDoc.value + ' ' + _context.t0.response.status); // should test 404 and 2xx
13559
+ case 16:
13560
+ case "end":
13561
+ return _context.stop();
13562
+ }
13563
+ }, _callee, null, [[6, 11]]);
13564
+ }));
13565
+ return _setAcl.apply(this, arguments);
13566
+ }
13567
+ var keyContainerAclBody = function keyContainerAclBody(me) {
13568
+ var aclBody = "\n@prefix : <#>.\n@prefix acl: <http://www.w3.org/ns/auth/acl#>.\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix key: <./>.\n\n:ReadWrite\n a acl:Authorization;\n acl:accessTo key:;\n acl:default key:;\n acl:agent <".concat(me, ">;\n acl:mode acl:Read, acl:Write.\n");
13569
+ return aclBody;
13570
+ };
13571
+
13572
+ /**
13573
+ * Read only ACL
13574
+ * @param keyDoc
13575
+ * @param me
13576
+ * @returns aclBody
13577
+ */
13578
+ exports.keyContainerAclBody = keyContainerAclBody;
13579
+ var keyAclBody = function keyAclBody(keyDoc, me) {
13580
+ var keyAgent = 'acl:agentClass foaf:Agent'; // publicKey
13581
+ if (me !== null && me !== void 0 && me.length) keyAgent = "acl:agent <".concat(me, ">"); // privateKey
13582
+ var aclBody = "\n@prefix foaf: <http://xmlns.com/foaf/0.1/>.\n@prefix acl: <http://www.w3.org/ns/auth/acl#>.\n<#Read>\n a acl:Authorization;\n ".concat(keyAgent, ";\n acl:accessTo <").concat(keyDoc.split('/').pop(), ">;\n acl:mode acl:Read.\n");
13583
+ return aclBody;
13584
+ };
13585
+ exports.keyAclBody = keyAclBody;
13586
+ //# sourceMappingURL=acl.js.map
13587
+
13588
+ /***/ }),
13589
+
13549
13590
  /***/ "./lib/utils/label.js":
13550
13591
  /*!****************************!*\
13551
13592
  !*** ./lib/utils/label.js ***!
@@ -13674,8 +13715,8 @@ Object.defineProperty(exports, "__esModule", ({
13674
13715
  }));
13675
13716
  exports.versionInfo = void 0;
13676
13717
  var versionInfo = {
13677
- buildTime: '2023-05-07T18:23:54Z',
13678
- commit: '38005bd7679085e6b3dce878782ac928c0e74ab8',
13718
+ buildTime: '2023-05-22T23:32:51Z',
13719
+ commit: '39fb847ab11fd784295aae69f288118e77f2991e',
13679
13720
  npmInfo: {
13680
13721
  'solid-ui': '2.4.27',
13681
13722
  npm: '8.19.4',
@@ -66491,22 +66532,7 @@ module.exports = JSON.parse('{"application/1d-interleaved-parityfec":{"source":"
66491
66532
  /******/
66492
66533
  /******/ /* webpack/runtime/publicPath */
66493
66534
  /******/ (() => {
66494
- /******/ var scriptUrl;
66495
- /******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + "";
66496
- /******/ var document = __webpack_require__.g.document;
66497
- /******/ if (!scriptUrl && document) {
66498
- /******/ if (document.currentScript)
66499
- /******/ scriptUrl = document.currentScript.src;
66500
- /******/ if (!scriptUrl) {
66501
- /******/ var scripts = document.getElementsByTagName("script");
66502
- /******/ if(scripts.length) scriptUrl = scripts[scripts.length - 1].src
66503
- /******/ }
66504
- /******/ }
66505
- /******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration
66506
- /******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic.
66507
- /******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser");
66508
- /******/ scriptUrl = scriptUrl.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/");
66509
- /******/ __webpack_require__.p = scriptUrl;
66535
+ /******/ __webpack_require__.p = "";
66510
66536
  /******/ })();
66511
66537
  /******/
66512
66538
  /******/ /* webpack/runtime/jsonp chunk loading */