solid-ui 2.4.27-38005bd7 → 2.4.27-3d362e60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/solid-ui.js +582 -517
- package/dist/solid-ui.js.map +1 -1
- package/dist/solid-ui.min.js +1 -1
- package/dist/solid-ui.min.js.map +1 -1
- package/lib/chat/chatLogic.js +16 -17
- package/lib/chat/chatLogic.js.map +1 -1
- package/lib/chat/keys.d.ts +7 -0
- package/lib/chat/keys.d.ts.map +1 -1
- package/lib/chat/keys.js +95 -160
- package/lib/chat/keys.js.map +1 -1
- package/lib/chat/message.js +36 -9
- package/lib/chat/message.js.map +1 -1
- package/lib/chat/signature.d.ts +0 -2
- package/lib/chat/signature.d.ts.map +1 -1
- package/lib/chat/signature.js +23 -20
- package/lib/chat/signature.js.map +1 -1
- package/lib/utils/keyHelpers/accessData.d.ts +10 -0
- package/lib/utils/keyHelpers/accessData.d.ts.map +1 -0
- package/lib/utils/{cryptoKeyHelpers.js → keyHelpers/accessData.js} +67 -69
- package/lib/utils/keyHelpers/accessData.js.map +1 -0
- package/lib/utils/keyHelpers/acl.d.ts +20 -0
- package/lib/utils/keyHelpers/acl.d.ts.map +1 -0
- package/lib/utils/keyHelpers/acl.js +93 -0
- package/lib/utils/keyHelpers/acl.js.map +1 -0
- package/lib/versionInfo.js +2 -2
- package/lib/versionInfo.js.map +1 -1
- package/package.json +1 -1
- package/lib/utils/cryptoKeyHelpers.d.ts +0 -6
- package/lib/utils/cryptoKeyHelpers.d.ts.map +0 -1
- package/lib/utils/cryptoKeyHelpers.js.map +0 -1
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,
|
|
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 =
|
|
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 =
|
|
2720
|
-
|
|
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
|
|
2727
|
-
_context2.prev =
|
|
2728
|
-
_context2.next =
|
|
2725
|
+
case 35:
|
|
2726
|
+
_context2.prev = 35;
|
|
2727
|
+
_context2.next = 38;
|
|
2729
2728
|
return _solidLogic.store.updater.update([], sts);
|
|
2730
|
-
case
|
|
2731
|
-
_context2.next =
|
|
2729
|
+
case 38:
|
|
2730
|
+
_context2.next = 46;
|
|
2732
2731
|
break;
|
|
2733
|
-
case
|
|
2734
|
-
_context2.prev =
|
|
2735
|
-
_context2.t0 = _context2["catch"](
|
|
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
|
|
2739
|
+
case 46:
|
|
2741
2740
|
return _context2.abrupt("return", message);
|
|
2742
|
-
case
|
|
2741
|
+
case 47:
|
|
2743
2742
|
case "end":
|
|
2744
2743
|
return _context2.stop();
|
|
2745
2744
|
}
|
|
2746
|
-
}, _callee2, null, [[
|
|
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
|
|
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
|
|
4068
|
+
_getPublicKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(webId) {
|
|
4061
4069
|
var publicKeyDoc, key;
|
|
4062
|
-
return _regenerator["default"].wrap(function
|
|
4063
|
-
while (1) switch (
|
|
4070
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
4071
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
4064
4072
|
case 0:
|
|
4065
|
-
|
|
4073
|
+
_context2.next = 2;
|
|
4066
4074
|
return _solidLogic.store.fetcher.load(webId);
|
|
4067
4075
|
case 2:
|
|
4068
|
-
|
|
4069
|
-
return (0,
|
|
4076
|
+
_context2.next = 4;
|
|
4077
|
+
return (0, _accessData.pubKeyUrl)(webId);
|
|
4070
4078
|
case 4:
|
|
4071
|
-
publicKeyDoc =
|
|
4072
|
-
|
|
4073
|
-
|
|
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
|
|
4086
|
+
return _context2.abrupt("return", key === null || key === void 0 ? void 0 : key.value);
|
|
4079
4087
|
case 12:
|
|
4080
|
-
|
|
4081
|
-
|
|
4082
|
-
return
|
|
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
|
|
4093
|
+
return _context2.stop();
|
|
4086
4094
|
}
|
|
4087
|
-
},
|
|
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
|
|
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
|
|
4103
|
-
while (1) switch (
|
|
4105
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
4106
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
4104
4107
|
case 0:
|
|
4105
|
-
|
|
4108
|
+
_context3.next = 2;
|
|
4106
4109
|
return _solidLogic.store.fetcher.load(webId);
|
|
4107
4110
|
case 2:
|
|
4108
|
-
|
|
4109
|
-
return (0,
|
|
4111
|
+
_context3.next = 4;
|
|
4112
|
+
return (0, _accessData.pubKeyUrl)(webId);
|
|
4110
4113
|
case 4:
|
|
4111
|
-
publicKeyDoc =
|
|
4112
|
-
|
|
4113
|
-
return (0,
|
|
4114
|
+
publicKeyDoc = _context3.sent;
|
|
4115
|
+
_context3.next = 7;
|
|
4116
|
+
return (0, _accessData.privKeyUrl)(webId);
|
|
4114
4117
|
case 7:
|
|
4115
|
-
privateKeyDoc =
|
|
4116
|
-
|
|
4117
|
-
return (0,
|
|
4118
|
+
privateKeyDoc = _context3.sent;
|
|
4119
|
+
_context3.next = 10;
|
|
4120
|
+
return (0, _accessData.getExistingPublicKey)(webId, publicKeyDoc);
|
|
4118
4121
|
case 10:
|
|
4119
|
-
publicKey =
|
|
4120
|
-
|
|
4121
|
-
return (0,
|
|
4122
|
+
publicKey = _context3.sent;
|
|
4123
|
+
_context3.next = 13;
|
|
4124
|
+
return (0, _accessData.getExistingPrivateKey)(webId, privateKeyDoc);
|
|
4122
4125
|
case 13:
|
|
4123
|
-
privateKey =
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
4147
|
+
_context3.next = 24;
|
|
4145
4148
|
return saveKey(privateKeyDoc, [], add, webId.uri);
|
|
4146
4149
|
case 24:
|
|
4147
4150
|
if (!(!publicKey || !validPublicKey)) {
|
|
4148
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
4170
|
+
return _context3.abrupt("return", privateKey);
|
|
4168
4171
|
case 35:
|
|
4169
4172
|
case "end":
|
|
4170
|
-
return
|
|
4173
|
+
return _context3.stop();
|
|
4171
4174
|
}
|
|
4172
|
-
},
|
|
4175
|
+
}, _callee3);
|
|
4173
4176
|
}));
|
|
4174
4177
|
return _getPrivateKey.apply(this, arguments);
|
|
4175
4178
|
}
|
|
4176
|
-
var
|
|
4177
|
-
var
|
|
4178
|
-
|
|
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
|
-
|
|
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
|
-
|
|
4189
|
+
if (!keyAclDoc) {
|
|
4190
|
+
_context.next = 16;
|
|
4221
4191
|
break;
|
|
4222
4192
|
}
|
|
4223
|
-
|
|
4224
|
-
|
|
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
|
|
4229
|
-
response =
|
|
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
|
-
|
|
4200
|
+
_context.next = 16;
|
|
4233
4201
|
break;
|
|
4234
|
-
case
|
|
4235
|
-
|
|
4236
|
-
|
|
4237
|
-
if (!(
|
|
4238
|
-
|
|
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(
|
|
4242
|
-
case
|
|
4243
|
-
debug.log('delete ' + keyAclDoc.value + ' ' +
|
|
4244
|
-
case
|
|
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
|
|
4214
|
+
return _context.stop();
|
|
4255
4215
|
}
|
|
4256
|
-
},
|
|
4216
|
+
}, _callee, null, [[4, 11]]);
|
|
4257
4217
|
}));
|
|
4258
|
-
return
|
|
4259
|
-
|
|
4260
|
-
|
|
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
|
|
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
|
|
4240
|
+
return deleteKeyAcl(keyDoc);
|
|
4273
4241
|
case 2:
|
|
4274
|
-
_context4.
|
|
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
|
|
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 =
|
|
4308
|
-
return setAcl(keyDoc, aclBody);
|
|
4309
|
-
case
|
|
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
|
|
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
|
|
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(
|
|
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 =
|
|
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 =
|
|
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))
|
|
4469
|
-
|
|
4470
|
-
|
|
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
|
-
|
|
5337
|
-
|
|
5338
|
-
|
|
5339
|
-
|
|
5340
|
-
message.
|
|
5341
|
-
message.
|
|
5342
|
-
|
|
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
|
-
|
|
5356
|
-
|
|
5357
|
-
|
|
5358
|
-
function validateMsg(message) {
|
|
5359
|
-
|
|
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
|
-
|
|
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,336 +12547,91 @@ function isLight(x) {
|
|
|
12583
12547
|
|
|
12584
12548
|
/***/ }),
|
|
12585
12549
|
|
|
12586
|
-
/***/ "./lib/utils/
|
|
12587
|
-
|
|
12588
|
-
!*** ./lib/utils/
|
|
12589
|
-
|
|
12550
|
+
/***/ "./lib/utils/headerFooterHelpers.js":
|
|
12551
|
+
/*!******************************************!*\
|
|
12552
|
+
!*** ./lib/utils/headerFooterHelpers.js ***!
|
|
12553
|
+
\******************************************/
|
|
12590
12554
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
12591
12555
|
|
|
12592
12556
|
"use strict";
|
|
12593
12557
|
|
|
12594
12558
|
|
|
12595
12559
|
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
12560
|
Object.defineProperty(exports, "__esModule", ({
|
|
12598
12561
|
value: true
|
|
12599
12562
|
}));
|
|
12600
|
-
exports.
|
|
12601
|
-
exports.
|
|
12602
|
-
exports.
|
|
12603
|
-
exports.
|
|
12563
|
+
exports.getName = getName;
|
|
12564
|
+
exports.getPod = getPod;
|
|
12565
|
+
exports.getPodOwner = getPodOwner;
|
|
12566
|
+
exports.throttle = throttle;
|
|
12604
12567
|
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"));
|
|
12605
12568
|
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
|
|
12606
|
-
var
|
|
12607
|
-
var
|
|
12608
|
-
|
|
12609
|
-
|
|
12610
|
-
|
|
12611
|
-
|
|
12612
|
-
|
|
12613
|
-
|
|
12614
|
-
|
|
12615
|
-
|
|
12569
|
+
var _rdflib = __webpack_require__(/*! rdflib */ "./node_modules/rdflib/esm/index.js");
|
|
12570
|
+
var _ = __webpack_require__(/*! .. */ "./lib/index.js");
|
|
12571
|
+
/*
|
|
12572
|
+
Copied from mashlib/src/global/metadata.ts
|
|
12573
|
+
*/
|
|
12574
|
+
|
|
12575
|
+
/**
|
|
12576
|
+
* @ignore exporting this only for the unit test
|
|
12577
|
+
*/
|
|
12578
|
+
function getPod() {
|
|
12579
|
+
// @@ TODO: This is given that mashlib runs on NSS - might need to change when we want it to run on other Pod servers
|
|
12580
|
+
return (0, _rdflib.sym)(document.location.origin).site();
|
|
12581
|
+
}
|
|
12582
|
+
/**
|
|
12583
|
+
*/
|
|
12584
|
+
function getPodOwner(_x, _x2) {
|
|
12585
|
+
return _getPodOwner.apply(this, arguments);
|
|
12586
|
+
}
|
|
12587
|
+
/**
|
|
12588
|
+
* @ignore exporting this only for the unit test
|
|
12589
|
+
*/
|
|
12590
|
+
function _getPodOwner() {
|
|
12591
|
+
_getPodOwner = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(pod, store) {
|
|
12592
|
+
var response, containerTurtle, podOwner, guess;
|
|
12616
12593
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
12617
12594
|
while (1) switch (_context.prev = _context.next) {
|
|
12618
12595
|
case 0:
|
|
12619
|
-
|
|
12620
|
-
|
|
12621
|
-
|
|
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;
|
|
12596
|
+
_context.prev = 0;
|
|
12597
|
+
if (store.any(pod, null, _.ns.ldp('Container'), pod)) {
|
|
12598
|
+
_context.next = 7;
|
|
12626
12599
|
break;
|
|
12627
12600
|
}
|
|
12628
|
-
|
|
12629
|
-
|
|
12630
|
-
|
|
12631
|
-
|
|
12632
|
-
|
|
12601
|
+
_context.next = 4;
|
|
12602
|
+
return store.fetcher.webOperation('GET', pod.uri, store.fetcher.initFetchOptions(pod.uri, {
|
|
12603
|
+
headers: {
|
|
12604
|
+
accept: 'text/turtle'
|
|
12605
|
+
}
|
|
12606
|
+
}));
|
|
12607
|
+
case 4:
|
|
12608
|
+
response = _context.sent;
|
|
12609
|
+
containerTurtle = response.responseText;
|
|
12610
|
+
(0, _rdflib.parse)(containerTurtle, store, pod.uri, 'text/turtle');
|
|
12611
|
+
case 7:
|
|
12612
|
+
_context.next = 13;
|
|
12613
|
+
break;
|
|
12614
|
+
case 9:
|
|
12615
|
+
_context.prev = 9;
|
|
12616
|
+
_context.t0 = _context["catch"](0);
|
|
12617
|
+
console.error('Error loading pod ' + pod + ': ' + _context.t0);
|
|
12618
|
+
return _context.abrupt("return", null);
|
|
12619
|
+
case 13:
|
|
12620
|
+
if (store.holds(pod, _.ns.rdf('type'), _.ns.space('Storage'), pod)) {
|
|
12621
|
+
_context.next = 16;
|
|
12633
12622
|
break;
|
|
12634
12623
|
}
|
|
12635
|
-
|
|
12636
|
-
|
|
12637
|
-
|
|
12638
|
-
|
|
12639
|
-
|
|
12640
|
-
|
|
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;
|
|
12624
|
+
console.warn('Pod ' + pod + ' does not declare itself as a space:Storage');
|
|
12625
|
+
return _context.abrupt("return", null);
|
|
12626
|
+
case 16:
|
|
12627
|
+
podOwner = store.any(pod, _.ns.solid('owner'), null, pod) || store.any(null, _.ns.space('storage'), pod, pod);
|
|
12628
|
+
if (!podOwner) {
|
|
12629
|
+
_context.next = 31;
|
|
12643
12630
|
break;
|
|
12644
12631
|
}
|
|
12645
|
-
|
|
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:
|
|
12632
|
+
_context.prev = 18;
|
|
12651
12633
|
_context.next = 21;
|
|
12652
|
-
|
|
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
|
-
/***/ "./lib/utils/headerFooterHelpers.js":
|
|
12832
|
-
/*!******************************************!*\
|
|
12833
|
-
!*** ./lib/utils/headerFooterHelpers.js ***!
|
|
12834
|
-
\******************************************/
|
|
12835
|
-
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
12836
|
-
|
|
12837
|
-
"use strict";
|
|
12838
|
-
|
|
12839
|
-
|
|
12840
|
-
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js");
|
|
12841
|
-
Object.defineProperty(exports, "__esModule", ({
|
|
12842
|
-
value: true
|
|
12843
|
-
}));
|
|
12844
|
-
exports.getName = getName;
|
|
12845
|
-
exports.getPod = getPod;
|
|
12846
|
-
exports.getPodOwner = getPodOwner;
|
|
12847
|
-
exports.throttle = throttle;
|
|
12848
|
-
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"));
|
|
12849
|
-
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
|
|
12850
|
-
var _rdflib = __webpack_require__(/*! rdflib */ "./node_modules/rdflib/esm/index.js");
|
|
12851
|
-
var _ = __webpack_require__(/*! .. */ "./lib/index.js");
|
|
12852
|
-
/*
|
|
12853
|
-
Copied from mashlib/src/global/metadata.ts
|
|
12854
|
-
*/
|
|
12855
|
-
|
|
12856
|
-
/**
|
|
12857
|
-
* @ignore exporting this only for the unit test
|
|
12858
|
-
*/
|
|
12859
|
-
function getPod() {
|
|
12860
|
-
// @@ TODO: This is given that mashlib runs on NSS - might need to change when we want it to run on other Pod servers
|
|
12861
|
-
return (0, _rdflib.sym)(document.location.origin).site();
|
|
12862
|
-
}
|
|
12863
|
-
/**
|
|
12864
|
-
*/
|
|
12865
|
-
function getPodOwner(_x, _x2) {
|
|
12866
|
-
return _getPodOwner.apply(this, arguments);
|
|
12867
|
-
}
|
|
12868
|
-
/**
|
|
12869
|
-
* @ignore exporting this only for the unit test
|
|
12870
|
-
*/
|
|
12871
|
-
function _getPodOwner() {
|
|
12872
|
-
_getPodOwner = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(pod, store) {
|
|
12873
|
-
var response, containerTurtle, podOwner, guess;
|
|
12874
|
-
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
12875
|
-
while (1) switch (_context.prev = _context.next) {
|
|
12876
|
-
case 0:
|
|
12877
|
-
_context.prev = 0;
|
|
12878
|
-
if (store.any(pod, null, _.ns.ldp('Container'), pod)) {
|
|
12879
|
-
_context.next = 7;
|
|
12880
|
-
break;
|
|
12881
|
-
}
|
|
12882
|
-
_context.next = 4;
|
|
12883
|
-
return store.fetcher.webOperation('GET', pod.uri, store.fetcher.initFetchOptions(pod.uri, {
|
|
12884
|
-
headers: {
|
|
12885
|
-
accept: 'text/turtle'
|
|
12886
|
-
}
|
|
12887
|
-
}));
|
|
12888
|
-
case 4:
|
|
12889
|
-
response = _context.sent;
|
|
12890
|
-
containerTurtle = response.responseText;
|
|
12891
|
-
(0, _rdflib.parse)(containerTurtle, store, pod.uri, 'text/turtle');
|
|
12892
|
-
case 7:
|
|
12893
|
-
_context.next = 13;
|
|
12894
|
-
break;
|
|
12895
|
-
case 9:
|
|
12896
|
-
_context.prev = 9;
|
|
12897
|
-
_context.t0 = _context["catch"](0);
|
|
12898
|
-
console.error('Error loading pod ' + pod + ': ' + _context.t0);
|
|
12899
|
-
return _context.abrupt("return", null);
|
|
12900
|
-
case 13:
|
|
12901
|
-
if (store.holds(pod, _.ns.rdf('type'), _.ns.space('Storage'), pod)) {
|
|
12902
|
-
_context.next = 16;
|
|
12903
|
-
break;
|
|
12904
|
-
}
|
|
12905
|
-
console.warn('Pod ' + pod + ' does not declare itself as a space:Storage');
|
|
12906
|
-
return _context.abrupt("return", null);
|
|
12907
|
-
case 16:
|
|
12908
|
-
podOwner = store.any(pod, _.ns.solid('owner'), null, pod) || store.any(null, _.ns.space('storage'), pod, pod);
|
|
12909
|
-
if (!podOwner) {
|
|
12910
|
-
_context.next = 31;
|
|
12911
|
-
break;
|
|
12912
|
-
}
|
|
12913
|
-
_context.prev = 18;
|
|
12914
|
-
_context.next = 21;
|
|
12915
|
-
return store.fetcher.load(podOwner.doc());
|
|
12634
|
+
return store.fetcher.load(podOwner.doc());
|
|
12916
12635
|
case 21:
|
|
12917
12636
|
_context.next = 27;
|
|
12918
12637
|
break;
|
|
@@ -13546,6 +13265,352 @@ 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
|
+
if (!(_context6.t0.response.status === 404)) {
|
|
13474
|
+
_context6.next = 24;
|
|
13475
|
+
break;
|
|
13476
|
+
}
|
|
13477
|
+
debug.log('createIfNotExists: doc does NOT exist, will create... ' + keyUrl);
|
|
13478
|
+
_context6.prev = 11;
|
|
13479
|
+
_context6.next = 14;
|
|
13480
|
+
return _solidLogic.store.fetcher.webOperation('PUT', keyUrl, {
|
|
13481
|
+
data: '',
|
|
13482
|
+
contentType: 'text/turtle'
|
|
13483
|
+
});
|
|
13484
|
+
case 14:
|
|
13485
|
+
_context6.next = 20;
|
|
13486
|
+
break;
|
|
13487
|
+
case 16:
|
|
13488
|
+
_context6.prev = 16;
|
|
13489
|
+
_context6.t1 = _context6["catch"](11);
|
|
13490
|
+
debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + _context6.t1);
|
|
13491
|
+
throw _context6.t1;
|
|
13492
|
+
case 20:
|
|
13493
|
+
delete _solidLogic.store.fetcher.requested[keyUrl]; // delete cached 404 error
|
|
13494
|
+
// debug.log('createIfNotExists doc created ok ' + doc)
|
|
13495
|
+
return _context6.abrupt("return", undefined);
|
|
13496
|
+
case 24:
|
|
13497
|
+
debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + _context6.t0);
|
|
13498
|
+
throw _context6.t0;
|
|
13499
|
+
case 26:
|
|
13500
|
+
case "end":
|
|
13501
|
+
return _context6.stop();
|
|
13502
|
+
}
|
|
13503
|
+
}, _callee6, null, [[0, 7], [11, 16]]);
|
|
13504
|
+
}));
|
|
13505
|
+
return _getKeyIfExists.apply(this, arguments);
|
|
13506
|
+
}
|
|
13507
|
+
//# sourceMappingURL=accessData.js.map
|
|
13508
|
+
|
|
13509
|
+
/***/ }),
|
|
13510
|
+
|
|
13511
|
+
/***/ "./lib/utils/keyHelpers/acl.js":
|
|
13512
|
+
/*!*************************************!*\
|
|
13513
|
+
!*** ./lib/utils/keyHelpers/acl.js ***!
|
|
13514
|
+
\*************************************/
|
|
13515
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
13516
|
+
|
|
13517
|
+
"use strict";
|
|
13518
|
+
|
|
13519
|
+
|
|
13520
|
+
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js");
|
|
13521
|
+
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/typeof.js");
|
|
13522
|
+
Object.defineProperty(exports, "__esModule", ({
|
|
13523
|
+
value: true
|
|
13524
|
+
}));
|
|
13525
|
+
exports.keyContainerAclBody = exports.keyAclBody = void 0;
|
|
13526
|
+
exports.setAcl = setAcl;
|
|
13527
|
+
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"));
|
|
13528
|
+
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
|
|
13529
|
+
var debug = _interopRequireWildcard(__webpack_require__(/*! ../../debug */ "./lib/debug.js"));
|
|
13530
|
+
var _solidLogic = __webpack_require__(/*! solid-logic */ "./node_modules/solid-logic/lib/index.js");
|
|
13531
|
+
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); }
|
|
13532
|
+
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; }
|
|
13533
|
+
/**
|
|
13534
|
+
* set ACL
|
|
13535
|
+
* @param keyDoc
|
|
13536
|
+
* @param aclBody
|
|
13537
|
+
*/
|
|
13538
|
+
function setAcl(_x, _x2) {
|
|
13539
|
+
return _setAcl.apply(this, arguments);
|
|
13540
|
+
}
|
|
13541
|
+
/**
|
|
13542
|
+
* key container ACL
|
|
13543
|
+
* @param me
|
|
13544
|
+
* @returns aclBody
|
|
13545
|
+
*/
|
|
13546
|
+
function _setAcl() {
|
|
13547
|
+
_setAcl = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(keyDoc, aclBody) {
|
|
13548
|
+
var keyAclDoc, _err$response;
|
|
13549
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
13550
|
+
while (1) switch (_context.prev = _context.next) {
|
|
13551
|
+
case 0:
|
|
13552
|
+
_context.next = 2;
|
|
13553
|
+
return _solidLogic.store.fetcher.load(keyDoc);
|
|
13554
|
+
case 2:
|
|
13555
|
+
// FIXME: check the Why value on this quad:
|
|
13556
|
+
debug.log(_solidLogic.store.statementsMatching(_solidLogic.store.sym(keyDoc), _solidLogic.store.sym('http://www.iana.org/assignments/link-relations/acl')));
|
|
13557
|
+
keyAclDoc = _solidLogic.store.any(_solidLogic.store.sym(keyDoc), _solidLogic.store.sym('http://www.iana.org/assignments/link-relations/acl'));
|
|
13558
|
+
if (keyAclDoc) {
|
|
13559
|
+
_context.next = 6;
|
|
13560
|
+
break;
|
|
13561
|
+
}
|
|
13562
|
+
throw new Error('Key ACL doc not found!');
|
|
13563
|
+
case 6:
|
|
13564
|
+
_context.prev = 6;
|
|
13565
|
+
_context.next = 9;
|
|
13566
|
+
return _solidLogic.store.fetcher.webOperation('PUT', keyAclDoc.value, {
|
|
13567
|
+
data: aclBody,
|
|
13568
|
+
contentType: 'text/turtle'
|
|
13569
|
+
});
|
|
13570
|
+
case 9:
|
|
13571
|
+
_context.next = 16;
|
|
13572
|
+
break;
|
|
13573
|
+
case 11:
|
|
13574
|
+
_context.prev = 11;
|
|
13575
|
+
_context.t0 = _context["catch"](6);
|
|
13576
|
+
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)) {
|
|
13577
|
+
_context.next = 15;
|
|
13578
|
+
break;
|
|
13579
|
+
}
|
|
13580
|
+
throw new Error(_context.t0);
|
|
13581
|
+
case 15:
|
|
13582
|
+
debug.log('delete ' + keyAclDoc.value + ' ' + _context.t0.response.status); // should test 404 and 2xx
|
|
13583
|
+
case 16:
|
|
13584
|
+
case "end":
|
|
13585
|
+
return _context.stop();
|
|
13586
|
+
}
|
|
13587
|
+
}, _callee, null, [[6, 11]]);
|
|
13588
|
+
}));
|
|
13589
|
+
return _setAcl.apply(this, arguments);
|
|
13590
|
+
}
|
|
13591
|
+
var keyContainerAclBody = function keyContainerAclBody(me) {
|
|
13592
|
+
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");
|
|
13593
|
+
return aclBody;
|
|
13594
|
+
};
|
|
13595
|
+
|
|
13596
|
+
/**
|
|
13597
|
+
* Read only ACL
|
|
13598
|
+
* @param keyDoc
|
|
13599
|
+
* @param me
|
|
13600
|
+
* @returns aclBody
|
|
13601
|
+
*/
|
|
13602
|
+
exports.keyContainerAclBody = keyContainerAclBody;
|
|
13603
|
+
var keyAclBody = function keyAclBody(keyDoc, me) {
|
|
13604
|
+
var keyAgent = 'acl:agentClass foaf:Agent'; // publicKey
|
|
13605
|
+
if (me !== null && me !== void 0 && me.length) keyAgent = "acl:agent <".concat(me, ">"); // privateKey
|
|
13606
|
+
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");
|
|
13607
|
+
return aclBody;
|
|
13608
|
+
};
|
|
13609
|
+
exports.keyAclBody = keyAclBody;
|
|
13610
|
+
//# sourceMappingURL=acl.js.map
|
|
13611
|
+
|
|
13612
|
+
/***/ }),
|
|
13613
|
+
|
|
13549
13614
|
/***/ "./lib/utils/label.js":
|
|
13550
13615
|
/*!****************************!*\
|
|
13551
13616
|
!*** ./lib/utils/label.js ***!
|
|
@@ -13674,8 +13739,8 @@ Object.defineProperty(exports, "__esModule", ({
|
|
|
13674
13739
|
}));
|
|
13675
13740
|
exports.versionInfo = void 0;
|
|
13676
13741
|
var versionInfo = {
|
|
13677
|
-
buildTime: '2023-05-
|
|
13678
|
-
commit: '
|
|
13742
|
+
buildTime: '2023-05-24T15:04:26Z',
|
|
13743
|
+
commit: '3d362e600d53ca3e74f700d72d653e9051b1f1d8',
|
|
13679
13744
|
npmInfo: {
|
|
13680
13745
|
'solid-ui': '2.4.27',
|
|
13681
13746
|
npm: '8.19.4',
|