solid-ui 2.4.27-9f7a01da → 2.4.27-a1b9ed49
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 +6 -1
- package/dist/solid-ui.js +631 -316
- 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 +18 -18
- package/lib/chat/chatLogic.js.map +1 -1
- package/lib/chat/keys.d.ts +10 -2
- package/lib/chat/keys.d.ts.map +1 -1
- package/lib/chat/keys.js +166 -126
- package/lib/chat/keys.js.map +1 -1
- package/lib/chat/message.js +21 -28
- 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/keyHelpers/accessData.js +226 -0
- 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 +101 -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/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,46 +2703,46 @@ 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));
|
|
2710
2710
|
msg.maker = me.uri;
|
|
2711
2711
|
// privateKey the cached private key of me, cached in store
|
|
2712
2712
|
_context2.next = 32;
|
|
2713
|
-
return (0, _keys.getPrivateKey)(me
|
|
2713
|
+
return (0, _keys.getPrivateKey)(me);
|
|
2714
2714
|
case 32:
|
|
2715
2715
|
privateKey = _context2.sent;
|
|
2716
|
+
// me.uri)
|
|
2716
2717
|
// const privateKey0 = 'a11bc5d2eee6cdb3b37f5473a712cad905ccfb13fb2ccdbf1be0a1ac4fdc7d2a'
|
|
2717
|
-
// const pubKey0 = '023a9da707bee1302f66083c9d95673ff969b41607a66f52686fa774d64ceb87'
|
|
2718
|
-
pubKey =
|
|
2719
|
-
|
|
2720
|
-
/* 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
|
|
2721
2721
|
debug.warn('sig ' + sig)
|
|
2722
2722
|
debug.warn('verifySign ' + verify)
|
|
2723
2723
|
debug.warn(msg) */
|
|
2724
2724
|
sts.push($rdf.st(message, $rdf.sym("".concat(_signature.SEC, "Proof")), $rdf.lit(sig), chatDocument));
|
|
2725
|
-
case
|
|
2726
|
-
_context2.prev =
|
|
2727
|
-
_context2.next =
|
|
2725
|
+
case 35:
|
|
2726
|
+
_context2.prev = 35;
|
|
2727
|
+
_context2.next = 38;
|
|
2728
2728
|
return _solidLogic.store.updater.update([], sts);
|
|
2729
|
-
case
|
|
2730
|
-
_context2.next =
|
|
2729
|
+
case 38:
|
|
2730
|
+
_context2.next = 46;
|
|
2731
2731
|
break;
|
|
2732
|
-
case
|
|
2733
|
-
_context2.prev =
|
|
2734
|
-
_context2.t0 = _context2["catch"](
|
|
2732
|
+
case 40:
|
|
2733
|
+
_context2.prev = 40;
|
|
2734
|
+
_context2.t0 = _context2["catch"](35);
|
|
2735
2735
|
_errMsg = 'Error saving chat message: ' + _context2.t0;
|
|
2736
2736
|
debug.warn(_errMsg);
|
|
2737
2737
|
alert(_errMsg);
|
|
2738
2738
|
throw new Error(_errMsg);
|
|
2739
|
-
case
|
|
2739
|
+
case 46:
|
|
2740
2740
|
return _context2.abrupt("return", message);
|
|
2741
|
-
case
|
|
2741
|
+
case 47:
|
|
2742
2742
|
case "end":
|
|
2743
2743
|
return _context2.stop();
|
|
2744
2744
|
}
|
|
2745
|
-
}, _callee2, null, [[
|
|
2745
|
+
}, _callee2, null, [[35, 40]]);
|
|
2746
2746
|
})();
|
|
2747
2747
|
});
|
|
2748
2748
|
function updateMessage(_x2) {
|
|
@@ -4043,6 +4043,8 @@ var _utils = __webpack_require__(/*! @noble/hashes/utils */ "./node_modules/@nob
|
|
|
4043
4043
|
var _signature = __webpack_require__(/*! ./signature */ "./lib/chat/signature.js");
|
|
4044
4044
|
var _solidLogic = __webpack_require__(/*! solid-logic */ "./node_modules/solid-logic/lib/index.js");
|
|
4045
4045
|
var $rdf = _interopRequireWildcard(__webpack_require__(/*! rdflib */ "./node_modules/rdflib/esm/index.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");
|
|
4046
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); }
|
|
4047
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; }
|
|
4048
4050
|
function generatePrivateKey() {
|
|
@@ -4051,161 +4053,199 @@ function generatePrivateKey() {
|
|
|
4051
4053
|
function generatePublicKey(privateKey) {
|
|
4052
4054
|
return (0, _utils.bytesToHex)(_secp256k.schnorr.getPublicKey(privateKey));
|
|
4053
4055
|
}
|
|
4054
|
-
|
|
4055
|
-
|
|
4056
|
-
|
|
4057
|
-
|
|
4058
|
-
|
|
4059
|
-
|
|
4060
|
-
|
|
4061
|
-
|
|
4062
|
-
|
|
4063
|
-
|
|
4064
|
-
return _publicKeyExists.apply(this, arguments);
|
|
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
|
+
*/
|
|
4064
|
+
function getPublicKey(_x) {
|
|
4065
|
+
return _getPublicKey.apply(this, arguments);
|
|
4065
4066
|
}
|
|
4066
|
-
function
|
|
4067
|
-
|
|
4068
|
-
var
|
|
4067
|
+
function _getPublicKey() {
|
|
4068
|
+
_getPublicKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(webId) {
|
|
4069
|
+
var publicKeyDoc, key;
|
|
4069
4070
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
4070
4071
|
while (1) switch (_context.prev = _context.next) {
|
|
4071
4072
|
case 0:
|
|
4072
4073
|
_context.next = 2;
|
|
4073
|
-
return _solidLogic.store.fetcher.load(
|
|
4074
|
+
return _solidLogic.store.fetcher.load(webId);
|
|
4074
4075
|
case 2:
|
|
4075
|
-
|
|
4076
|
-
|
|
4077
|
-
return _context.abrupt("return", publicKey === null || publicKey === void 0 ? void 0 : publicKey.value);
|
|
4076
|
+
_context.next = 4;
|
|
4077
|
+
return (0, _accessData.pubKeyUrl)(webId);
|
|
4078
4078
|
case 4:
|
|
4079
|
+
publicKeyDoc = _context.sent;
|
|
4080
|
+
_context.prev = 5;
|
|
4081
|
+
_context.next = 8;
|
|
4082
|
+
return _solidLogic.store.fetcher.load(publicKeyDoc);
|
|
4083
|
+
case 8:
|
|
4084
|
+
// url.href)
|
|
4085
|
+
key = _solidLogic.store.any(webId, _solidLogic.store.sym(_signature.CERT + 'PublicKey'));
|
|
4086
|
+
return _context.abrupt("return", key === null || key === void 0 ? void 0 : key.value);
|
|
4087
|
+
case 12:
|
|
4088
|
+
_context.prev = 12;
|
|
4089
|
+
_context.t0 = _context["catch"](5);
|
|
4090
|
+
return _context.abrupt("return", undefined);
|
|
4091
|
+
case 15:
|
|
4079
4092
|
case "end":
|
|
4080
4093
|
return _context.stop();
|
|
4081
4094
|
}
|
|
4082
|
-
}, _callee);
|
|
4095
|
+
}, _callee, null, [[5, 12]]);
|
|
4083
4096
|
}));
|
|
4084
|
-
return
|
|
4097
|
+
return _getPublicKey.apply(this, arguments);
|
|
4085
4098
|
}
|
|
4086
|
-
|
|
4087
|
-
|
|
4088
|
-
var privateKeyUrl = url.origin + '/profile/keys/privateKey.ttl';
|
|
4089
|
-
return privateKeyUrl;
|
|
4090
|
-
};
|
|
4091
|
-
function privateKeyExists(_x2) {
|
|
4092
|
-
return _privateKeyExists.apply(this, arguments);
|
|
4099
|
+
function getPrivateKey(_x2) {
|
|
4100
|
+
return _getPrivateKey.apply(this, arguments);
|
|
4093
4101
|
}
|
|
4094
|
-
|
|
4095
|
-
|
|
4096
|
-
|
|
4102
|
+
/**
|
|
4103
|
+
* delete acl if keydoc exists
|
|
4104
|
+
* create/edit keyDoc
|
|
4105
|
+
* set keyDoc acl
|
|
4106
|
+
*/
|
|
4107
|
+
function _getPrivateKey() {
|
|
4108
|
+
_getPrivateKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(webId) {
|
|
4109
|
+
var publicKeyDoc, privateKeyDoc, publicKey, privateKey, validPublicKey, del, add, newPublicKey, keyContainer;
|
|
4097
4110
|
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
4098
4111
|
while (1) switch (_context2.prev = _context2.next) {
|
|
4099
4112
|
case 0:
|
|
4100
|
-
|
|
4101
|
-
|
|
4102
|
-
|
|
4103
|
-
/* debug.warn('Alain privateKeyExists')
|
|
4104
|
-
debug.warn(webId)
|
|
4105
|
-
debug.warn(privateKeyUrl) */
|
|
4106
|
-
_context2.prev = 1;
|
|
4113
|
+
_context2.next = 2;
|
|
4114
|
+
return _solidLogic.store.fetcher.load(webId);
|
|
4115
|
+
case 2:
|
|
4107
4116
|
_context2.next = 4;
|
|
4108
|
-
return
|
|
4117
|
+
return (0, _accessData.pubKeyUrl)(webId);
|
|
4109
4118
|
case 4:
|
|
4110
|
-
|
|
4111
|
-
|
|
4112
|
-
|
|
4113
|
-
_context2.prev = 8;
|
|
4114
|
-
_context2.t0 = _context2["catch"](1);
|
|
4115
|
-
if (!((_context2.t0 === null || _context2.t0 === void 0 ? void 0 : (_err$response = _context2.t0.response) === null || _err$response === void 0 ? void 0 : _err$response.status) === 404)) {
|
|
4116
|
-
_context2.next = 25;
|
|
4117
|
-
break;
|
|
4118
|
-
}
|
|
4119
|
-
_context2.prev = 11;
|
|
4120
|
-
// create privateKey resource
|
|
4121
|
-
data = '';
|
|
4122
|
-
contentType = 'text/ttl';
|
|
4123
|
-
_context2.next = 16;
|
|
4124
|
-
return _solidLogic.store.fetcher.webOperation('PUT', privateKeyUrl, {
|
|
4125
|
-
data: data,
|
|
4126
|
-
contentType: contentType
|
|
4127
|
-
});
|
|
4128
|
-
case 16:
|
|
4129
|
-
response = _context2.sent;
|
|
4130
|
-
_context2.next = 23;
|
|
4131
|
-
break;
|
|
4132
|
-
case 19:
|
|
4133
|
-
_context2.prev = 19;
|
|
4134
|
-
_context2.t1 = _context2["catch"](11);
|
|
4135
|
-
debug.log('createIfNotExists doc FAILED: ' + privateKeyUrl + ': ' + _context2.t1);
|
|
4136
|
-
throw _context2.t1;
|
|
4137
|
-
case 23:
|
|
4138
|
-
delete _solidLogic.store.fetcher.requested[privateKeyUrl]; // delete cached 404 error
|
|
4139
|
-
return _context2.abrupt("return", undefined);
|
|
4140
|
-
case 25:
|
|
4141
|
-
debug.log('createIfNotExists doc FAILED: ' + privateKeyUrl + ': ' + _context2.t0);
|
|
4142
|
-
throw _context2.t0;
|
|
4143
|
-
case 27:
|
|
4144
|
-
case "end":
|
|
4145
|
-
return _context2.stop();
|
|
4146
|
-
}
|
|
4147
|
-
}, _callee2, null, [[1, 8], [11, 19]]);
|
|
4148
|
-
}));
|
|
4149
|
-
return _privateKeyExists.apply(this, arguments);
|
|
4150
|
-
}
|
|
4151
|
-
function getPrivateKey(_x3) {
|
|
4152
|
-
return _getPrivateKey.apply(this, arguments);
|
|
4153
|
-
}
|
|
4154
|
-
function _getPrivateKey() {
|
|
4155
|
-
_getPrivateKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(webId) {
|
|
4156
|
-
var publicKeyUrl, privateKeyUrl, publicKey, privateKey, del, add;
|
|
4157
|
-
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
4158
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
4159
|
-
case 0:
|
|
4160
|
-
/* const url = new URL(webId)
|
|
4161
|
-
url.hash = '' */
|
|
4162
|
-
/* const privateKeyUrl = url.protocol + '//' + url.host + '/profile/privateKey.ttl' */
|
|
4163
|
-
publicKeyUrl = pubKeyUrl(webId);
|
|
4164
|
-
privateKeyUrl = privKeyUrl(webId); // find publickey
|
|
4165
|
-
_context3.next = 4;
|
|
4166
|
-
return publicKeyExists(webId);
|
|
4167
|
-
case 4:
|
|
4168
|
-
publicKey = _context3.sent;
|
|
4169
|
-
_context3.next = 7;
|
|
4170
|
-
return privateKeyExists(webId);
|
|
4119
|
+
publicKeyDoc = _context2.sent;
|
|
4120
|
+
_context2.next = 7;
|
|
4121
|
+
return (0, _accessData.privKeyUrl)(webId);
|
|
4171
4122
|
case 7:
|
|
4172
|
-
|
|
4173
|
-
|
|
4174
|
-
|
|
4175
|
-
|
|
4176
|
-
|
|
4177
|
-
|
|
4178
|
-
|
|
4179
|
-
|
|
4180
|
-
|
|
4181
|
-
|
|
4182
|
-
|
|
4183
|
-
if (
|
|
4184
|
-
|
|
4123
|
+
privateKeyDoc = _context2.sent;
|
|
4124
|
+
_context2.next = 10;
|
|
4125
|
+
return (0, _accessData.getExistingPublicKey)(webId, publicKeyDoc);
|
|
4126
|
+
case 10:
|
|
4127
|
+
publicKey = _context2.sent;
|
|
4128
|
+
_context2.next = 13;
|
|
4129
|
+
return (0, _accessData.getExistingPrivateKey)(webId, privateKeyDoc);
|
|
4130
|
+
case 13:
|
|
4131
|
+
privateKey = _context2.sent;
|
|
4132
|
+
// is publicKey valid ?
|
|
4133
|
+
validPublicKey = true;
|
|
4134
|
+
if (privateKey && publicKey !== generatePublicKey(privateKey)) {
|
|
4135
|
+
if (confirm('This is strange the publicKey is not valid for\n' + (webId === null || webId === void 0 ? void 0 : webId.uri) + '\'shall we repair keeping the private key ?')) validPublicKey = false;
|
|
4136
|
+
}
|
|
4137
|
+
|
|
4138
|
+
// create key pair or repair publicKey
|
|
4139
|
+
if (!(!privateKey || !publicKey || !validPublicKey)) {
|
|
4140
|
+
_context2.next = 34;
|
|
4185
4141
|
break;
|
|
4186
4142
|
}
|
|
4187
4143
|
del = [];
|
|
4188
|
-
add = [];
|
|
4189
|
-
if (privateKey)
|
|
4190
|
-
|
|
4144
|
+
add = []; // if (privateKey) del.push($rdf.st(webId, store.sym(CERT + 'PrivateKey'), $rdf.lit(privateKey), store.sym(privateKeyDoc)))
|
|
4145
|
+
if (privateKey) {
|
|
4146
|
+
_context2.next = 24;
|
|
4147
|
+
break;
|
|
4148
|
+
}
|
|
4149
|
+
// add = []
|
|
4191
4150
|
privateKey = generatePrivateKey();
|
|
4192
|
-
|
|
4193
|
-
|
|
4194
|
-
|
|
4195
|
-
|
|
4196
|
-
|
|
4197
|
-
|
|
4198
|
-
|
|
4199
|
-
|
|
4200
|
-
|
|
4201
|
-
|
|
4151
|
+
add = [$rdf.st(webId, _solidLogic.store.sym(_signature.CERT + 'PrivateKey'), $rdf.literal(privateKey), _solidLogic.store.sym(privateKeyDoc))];
|
|
4152
|
+
_context2.next = 24;
|
|
4153
|
+
return saveKey(privateKeyDoc, [], add, webId.uri);
|
|
4154
|
+
case 24:
|
|
4155
|
+
if (!(!publicKey || !validPublicKey)) {
|
|
4156
|
+
_context2.next = 31;
|
|
4157
|
+
break;
|
|
4158
|
+
}
|
|
4159
|
+
del = [];
|
|
4160
|
+
// delete invalid public key
|
|
4161
|
+
if (publicKey) {
|
|
4162
|
+
del = [$rdf.st(webId, _solidLogic.store.sym(_signature.CERT + 'PublicKey'), $rdf.lit(publicKey), _solidLogic.store.sym(publicKeyDoc))];
|
|
4163
|
+
debug.log(del);
|
|
4164
|
+
}
|
|
4165
|
+
// update new valid key
|
|
4166
|
+
newPublicKey = generatePublicKey(privateKey);
|
|
4167
|
+
add = [$rdf.st(webId, _solidLogic.store.sym(_signature.CERT + 'PublicKey'), $rdf.literal(newPublicKey), _solidLogic.store.sym(publicKeyDoc))];
|
|
4168
|
+
_context2.next = 31;
|
|
4169
|
+
return saveKey(publicKeyDoc, del, add);
|
|
4170
|
+
case 31:
|
|
4171
|
+
keyContainer = privateKeyDoc.substring(0, privateKeyDoc.lastIndexOf('/') + 1);
|
|
4172
|
+
_context2.next = 34;
|
|
4173
|
+
return (0, _acl.setAcl)(keyContainer, (0, _acl.keyContainerAclBody)(webId.uri));
|
|
4174
|
+
case 34:
|
|
4175
|
+
return _context2.abrupt("return", privateKey);
|
|
4176
|
+
case 35:
|
|
4202
4177
|
case "end":
|
|
4203
|
-
return
|
|
4178
|
+
return _context2.stop();
|
|
4204
4179
|
}
|
|
4205
|
-
},
|
|
4180
|
+
}, _callee2);
|
|
4206
4181
|
}));
|
|
4207
4182
|
return _getPrivateKey.apply(this, arguments);
|
|
4208
4183
|
}
|
|
4184
|
+
function saveKey(_x3, _x4, _x5) {
|
|
4185
|
+
return _saveKey.apply(this, arguments);
|
|
4186
|
+
}
|
|
4187
|
+
function _saveKey() {
|
|
4188
|
+
_saveKey = (0, _asyncToGenerator2["default"])(function (keyDoc, del, add) {
|
|
4189
|
+
var me = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
|
|
4190
|
+
return /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
|
|
4191
|
+
var keyAclDoc, response, aclBody;
|
|
4192
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
4193
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
4194
|
+
case 0:
|
|
4195
|
+
_context3.next = 2;
|
|
4196
|
+
return _solidLogic.store.fetcher.load(keyDoc);
|
|
4197
|
+
case 2:
|
|
4198
|
+
_context3.prev = 2;
|
|
4199
|
+
// get keyAcldoc
|
|
4200
|
+
keyAclDoc = _solidLogic.store.any(_solidLogic.store.sym(keyDoc), _solidLogic.store.sym('http://www.iana.org/assignments/link-relations/acl'));
|
|
4201
|
+
if (!keyAclDoc) {
|
|
4202
|
+
_context3.next = 17;
|
|
4203
|
+
break;
|
|
4204
|
+
}
|
|
4205
|
+
_context3.prev = 5;
|
|
4206
|
+
_context3.next = 8;
|
|
4207
|
+
return _solidLogic.store.fetcher.webOperation('DELETE', keyAclDoc.value);
|
|
4208
|
+
case 8:
|
|
4209
|
+
response = _context3.sent;
|
|
4210
|
+
// this may fail if webId is not an owner
|
|
4211
|
+
debug.log('delete ' + keyAclDoc.value + ' ' + response.status); // should test 404 and 2xx
|
|
4212
|
+
_context3.next = 17;
|
|
4213
|
+
break;
|
|
4214
|
+
case 12:
|
|
4215
|
+
_context3.prev = 12;
|
|
4216
|
+
_context3.t0 = _context3["catch"](5);
|
|
4217
|
+
if (!(_context3.t0.response.status !== 404)) {
|
|
4218
|
+
_context3.next = 16;
|
|
4219
|
+
break;
|
|
4220
|
+
}
|
|
4221
|
+
throw new Error(_context3.t0);
|
|
4222
|
+
case 16:
|
|
4223
|
+
debug.log('delete ' + keyAclDoc.value + ' ' + _context3.t0.response.status); // should test 404 and 2xx
|
|
4224
|
+
case 17:
|
|
4225
|
+
_context3.next = 19;
|
|
4226
|
+
return _solidLogic.store.updater.updateMany(del, add);
|
|
4227
|
+
case 19:
|
|
4228
|
+
// or a promise store.updater.update ?
|
|
4229
|
+
// create READ only ACL
|
|
4230
|
+
aclBody = (0, _acl.keyAclBody)(keyDoc, me);
|
|
4231
|
+
_context3.next = 22;
|
|
4232
|
+
return (0, _acl.setAcl)(keyDoc, aclBody);
|
|
4233
|
+
case 22:
|
|
4234
|
+
_context3.next = 27;
|
|
4235
|
+
break;
|
|
4236
|
+
case 24:
|
|
4237
|
+
_context3.prev = 24;
|
|
4238
|
+
_context3.t1 = _context3["catch"](2);
|
|
4239
|
+
throw new Error(_context3.t1);
|
|
4240
|
+
case 27:
|
|
4241
|
+
case "end":
|
|
4242
|
+
return _context3.stop();
|
|
4243
|
+
}
|
|
4244
|
+
}, _callee3, null, [[2, 24], [5, 12]]);
|
|
4245
|
+
})();
|
|
4246
|
+
});
|
|
4247
|
+
return _saveKey.apply(this, arguments);
|
|
4248
|
+
}
|
|
4209
4249
|
//# sourceMappingURL=keys.js.map
|
|
4210
4250
|
|
|
4211
4251
|
/***/ }),
|
|
@@ -4335,44 +4375,37 @@ function renderMessageRow(channelObject, message, fresh, options, userContext) {
|
|
|
4335
4375
|
var date = _solidLogic.store.any(message, ns.dct('created'));
|
|
4336
4376
|
var latestVersion = (0, _chatLogic.mostRecentVersion)(message);
|
|
4337
4377
|
var latestVersionCreator = _solidLogic.store.any(latestVersion, ns.foaf('maker'));
|
|
4378
|
+
|
|
4338
4379
|
// use latest content if same owner, else use original
|
|
4339
4380
|
var msgId = creator.uri === latestVersionCreator.uri ? latestVersion : message;
|
|
4340
4381
|
var content = _solidLogic.store.any(msgId, ns.sioc('content'));
|
|
4341
4382
|
var signature = _solidLogic.store.any(msgId, $rdf.sym("".concat(_signature.SEC, "Proof")));
|
|
4342
|
-
debug.log('alain ' + (signature === null || signature === void 0 ? void 0 : signature.value));
|
|
4343
4383
|
|
|
4344
|
-
//
|
|
4384
|
+
// set message object
|
|
4345
4385
|
var msg = (0, _signature.getBlankMsg)();
|
|
4346
4386
|
msg.id = msgId.uri;
|
|
4347
4387
|
msg.created = _solidLogic.store.any(msgId, ns.dct('created')).value;
|
|
4348
4388
|
msg.content = content.value;
|
|
4349
4389
|
msg.maker = creator.uri;
|
|
4350
|
-
|
|
4351
|
-
|
|
4352
|
-
|
|
4353
|
-
|
|
4354
|
-
|
|
4355
|
-
|
|
4356
|
-
|
|
4357
|
-
|
|
4358
|
-
|
|
4359
|
-
|
|
4360
|
-
|
|
4361
|
-
|
|
4362
|
-
|
|
4363
|
-
|
|
4364
|
-
|
|
4365
|
-
|
|
4366
|
-
|
|
4367
|
-
|
|
4368
|
-
|
|
4369
|
-
const privKey0 = getPrivateKey(creator.uri) // alain to remove
|
|
4370
|
-
// unsigned messages should be signaled as unsecured
|
|
4371
|
-
debug.warn(msg)
|
|
4372
|
-
debug.warn(signature?.value) */
|
|
4373
|
-
if (signature !== null && signature !== void 0 && signature.value && !(0, _signature.verifySignature)(signature.value, msg, pubKey)) throw new Error('invalid signature');
|
|
4374
|
-
} catch (err) {
|
|
4375
|
-
debug.log(err);
|
|
4390
|
+
|
|
4391
|
+
// unsigned message
|
|
4392
|
+
if (!(signature !== null && signature !== void 0 && signature.value)) debug.warn(msgId.uri + ' is unsigned'); // TODO replace with UI (colored message ?)
|
|
4393
|
+
|
|
4394
|
+
// signed message, get public key and check signature
|
|
4395
|
+
else {
|
|
4396
|
+
(0, _keys.getPublicKey)(creator).then(function (publicKey) {
|
|
4397
|
+
debug.log(creator.uri + '\n' + msg.created + '\n' + msg.id + '\n' + publicKey);
|
|
4398
|
+
if (!publicKey) {
|
|
4399
|
+
// TODO try to recreate the publicKey
|
|
4400
|
+
// if(me.uri === creator.uri) await getPrivateKey(creator)
|
|
4401
|
+
debug.warn('message is signed but ' + creator.uri + ' is missing publicKey');
|
|
4402
|
+
}
|
|
4403
|
+
// check that publicKey is a valid hex string
|
|
4404
|
+
var regex = /[0-9A-Fa-f]{6}/g;
|
|
4405
|
+
if (!(publicKey !== null && publicKey !== void 0 && publicKey.match(regex))) debug.warn('invalid publicKey hex string\n' + creator.uri + '\n' + publicKey);
|
|
4406
|
+
// verify signature
|
|
4407
|
+
else if (signature !== null && signature !== void 0 && signature.value && !(0, _signature.verifySignature)(signature === null || signature === void 0 ? void 0 : signature.value, msg, publicKey)) debug.warn('invalid signature\n' + msg.id);
|
|
4408
|
+
});
|
|
4376
4409
|
}
|
|
4377
4410
|
var originalMessage = (0, _chatLogic.originalVersion)(message);
|
|
4378
4411
|
var edited = !message.sameTerm(originalMessage);
|
|
@@ -5167,13 +5200,11 @@ Object.defineProperty(exports, "__esModule", ({
|
|
|
5167
5200
|
value: true
|
|
5168
5201
|
}));
|
|
5169
5202
|
exports.SEC = exports.CERT = void 0;
|
|
5170
|
-
exports.finishMsg = finishMsg;
|
|
5171
5203
|
exports.getBlankMsg = getBlankMsg;
|
|
5172
5204
|
exports.getMsgHash = getMsgHash;
|
|
5173
5205
|
exports.serializeMsg = serializeMsg;
|
|
5174
5206
|
exports.signMsg = signMsg;
|
|
5175
5207
|
exports.utf8Encoder = exports.utf8Decoder = void 0;
|
|
5176
|
-
exports.validateMsg = validateMsg;
|
|
5177
5208
|
exports.verifySignature = verifySignature;
|
|
5178
5209
|
var _secp256k = __webpack_require__(/*! @noble/curves/secp256k1 */ "./node_modules/@noble/curves/secp256k1.js");
|
|
5179
5210
|
var _utils = __webpack_require__(/*! @noble/hashes/utils */ "./node_modules/@noble/hashes/utils.js");
|
|
@@ -5219,19 +5250,22 @@ function getBlankMsg() {
|
|
|
5219
5250
|
id: '',
|
|
5220
5251
|
created: '',
|
|
5221
5252
|
dateDeleted: '',
|
|
5253
|
+
// TODO to remove if not used
|
|
5222
5254
|
content: '',
|
|
5223
5255
|
maker: '',
|
|
5224
|
-
sig: ''
|
|
5256
|
+
sig: '' // TODO to remove if not used
|
|
5225
5257
|
};
|
|
5226
5258
|
}
|
|
5227
|
-
|
|
5228
|
-
|
|
5229
|
-
|
|
5230
|
-
|
|
5231
|
-
message.
|
|
5232
|
-
message.
|
|
5233
|
-
|
|
5234
|
-
|
|
5259
|
+
|
|
5260
|
+
/* export function finishMsg (t: MsgTemplate, privateKey: string): Message {
|
|
5261
|
+
// to update to chat message triples
|
|
5262
|
+
const message = t as Message
|
|
5263
|
+
// message.pubkey = getPublicKey(privateKey)
|
|
5264
|
+
message.id = getMsgHash(message)
|
|
5265
|
+
message.sig = signMsg(message, privateKey)
|
|
5266
|
+
return message
|
|
5267
|
+
} */
|
|
5268
|
+
|
|
5235
5269
|
function serializeMsg(msg) {
|
|
5236
5270
|
// to update to chat messages triples
|
|
5237
5271
|
/* if (!validateMsg(msg))
|
|
@@ -5243,27 +5277,29 @@ function getMsgHash(message) {
|
|
|
5243
5277
|
var msgHash = (0, _sha.sha256)(utf8Encoder.encode(serializeMsg(message)));
|
|
5244
5278
|
return (0, _utils.bytesToHex)(msgHash);
|
|
5245
5279
|
}
|
|
5246
|
-
|
|
5247
|
-
|
|
5248
|
-
|
|
5249
|
-
function validateMsg(message) {
|
|
5250
|
-
|
|
5280
|
+
|
|
5281
|
+
// const isRecord = (obj: unknown): obj is Record<string, unknown> => obj instanceof Object
|
|
5282
|
+
|
|
5283
|
+
/* export function validateMsg<T> (message: T): message is T & UnsignedMsg {
|
|
5284
|
+
if (!isRecord(message)) return false
|
|
5251
5285
|
if (typeof message.kind !== 'number') return false
|
|
5252
5286
|
if (typeof message.content !== 'string') return false
|
|
5253
5287
|
if (typeof message.created_at !== 'number') return false
|
|
5254
5288
|
if (typeof message.pubkey !== 'string') return false
|
|
5255
5289
|
if (!message.pubkey.match(/^[a-f0-9]{64}$/)) return false
|
|
5256
|
-
|
|
5290
|
+
|
|
5291
|
+
if (!Array.isArray(message.tags)) return false
|
|
5257
5292
|
for (let i = 0; i < message.tags.length; i++) {
|
|
5258
5293
|
let tag = message.tags[i]
|
|
5259
5294
|
if (!Array.isArray(tag)) return false
|
|
5260
5295
|
for (let j = 0; j < tag.length; j++) {
|
|
5261
5296
|
if (typeof tag[j] === 'object') return false
|
|
5262
5297
|
}
|
|
5263
|
-
}
|
|
5298
|
+
}
|
|
5299
|
+
|
|
5300
|
+
return true
|
|
5301
|
+
} */
|
|
5264
5302
|
|
|
5265
|
-
return true;
|
|
5266
|
-
}
|
|
5267
5303
|
function verifySignature(sig, message, pubKey) {
|
|
5268
5304
|
return _secp256k.schnorr.verify(sig, getMsgHash(message), pubKey);
|
|
5269
5305
|
}
|
|
@@ -13192,6 +13228,353 @@ function predParentOf(node) {
|
|
|
13192
13228
|
|
|
13193
13229
|
/***/ }),
|
|
13194
13230
|
|
|
13231
|
+
/***/ "./lib/utils/keyHelpers/accessData.js":
|
|
13232
|
+
/*!********************************************!*\
|
|
13233
|
+
!*** ./lib/utils/keyHelpers/accessData.js ***!
|
|
13234
|
+
\********************************************/
|
|
13235
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
13236
|
+
|
|
13237
|
+
"use strict";
|
|
13238
|
+
|
|
13239
|
+
|
|
13240
|
+
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js");
|
|
13241
|
+
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/typeof.js");
|
|
13242
|
+
Object.defineProperty(exports, "__esModule", ({
|
|
13243
|
+
value: true
|
|
13244
|
+
}));
|
|
13245
|
+
exports.getExistingPrivateKey = getExistingPrivateKey;
|
|
13246
|
+
exports.getExistingPublicKey = getExistingPublicKey;
|
|
13247
|
+
exports.getKeyIfExists = getKeyIfExists;
|
|
13248
|
+
exports.pubKeyUrl = exports.privKeyUrl = exports.getPodRoot = void 0;
|
|
13249
|
+
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"));
|
|
13250
|
+
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
|
|
13251
|
+
var debug = _interopRequireWildcard(__webpack_require__(/*! ../../debug */ "./lib/debug.js"));
|
|
13252
|
+
var _signature = __webpack_require__(/*! ../../chat/signature */ "./lib/chat/signature.js");
|
|
13253
|
+
var _solidLogic = __webpack_require__(/*! solid-logic */ "./node_modules/solid-logic/lib/index.js");
|
|
13254
|
+
var ns = _interopRequireWildcard(__webpack_require__(/*! ../../ns */ "./lib/ns.js"));
|
|
13255
|
+
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); }
|
|
13256
|
+
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; }
|
|
13257
|
+
var getPodRoot = /*#__PURE__*/function () {
|
|
13258
|
+
var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(webId) {
|
|
13259
|
+
var _podRoot;
|
|
13260
|
+
var webIdURL, storages, podRoot, path, _res$headers$get, res;
|
|
13261
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
13262
|
+
while (1) switch (_context.prev = _context.next) {
|
|
13263
|
+
case 0:
|
|
13264
|
+
webIdURL = new URL(webId.uri); // find storages in webId document
|
|
13265
|
+
_context.next = 3;
|
|
13266
|
+
return _solidLogic.store.fetcher.load(webId.uri);
|
|
13267
|
+
case 3:
|
|
13268
|
+
storages = _solidLogic.store.each(webId, ns.space('storage'), null, webId.doc());
|
|
13269
|
+
if (storages !== null && storages !== void 0 && storages.length) {
|
|
13270
|
+
_context.next = 19;
|
|
13271
|
+
break;
|
|
13272
|
+
}
|
|
13273
|
+
// find storage recursively in webId URL
|
|
13274
|
+
path = webIdURL.pathname;
|
|
13275
|
+
case 6:
|
|
13276
|
+
if (!path.length) {
|
|
13277
|
+
_context.next = 17;
|
|
13278
|
+
break;
|
|
13279
|
+
}
|
|
13280
|
+
path = path.substring(0, path.lastIndexOf('/'));
|
|
13281
|
+
podRoot = _solidLogic.store.sym(webIdURL.origin + path + '/');
|
|
13282
|
+
_context.next = 11;
|
|
13283
|
+
return _solidLogic.store.fetcher.webOperation('HEAD', podRoot.uri);
|
|
13284
|
+
case 11:
|
|
13285
|
+
res = _context.sent;
|
|
13286
|
+
if (!((_res$headers$get = res.headers.get('link')) !== null && _res$headers$get !== void 0 && _res$headers$get.includes(ns.space('Storage').value))) {
|
|
13287
|
+
_context.next = 14;
|
|
13288
|
+
break;
|
|
13289
|
+
}
|
|
13290
|
+
return _context.abrupt("break", 17);
|
|
13291
|
+
case 14:
|
|
13292
|
+
if (!path) debug.warn("Current user storage not found for\n".concat(webId));
|
|
13293
|
+
_context.next = 6;
|
|
13294
|
+
break;
|
|
13295
|
+
case 17:
|
|
13296
|
+
_context.next = 21;
|
|
13297
|
+
break;
|
|
13298
|
+
case 19:
|
|
13299
|
+
// give preference to storage in webId root
|
|
13300
|
+
podRoot = storages.find(function (storage) {
|
|
13301
|
+
return webIdURL.origin === new URL(storage.value).origin;
|
|
13302
|
+
});
|
|
13303
|
+
if (!podRoot) podRoot = storages[0];
|
|
13304
|
+
case 21:
|
|
13305
|
+
return _context.abrupt("return", (_podRoot = podRoot) === null || _podRoot === void 0 ? void 0 : _podRoot.value);
|
|
13306
|
+
case 22:
|
|
13307
|
+
case "end":
|
|
13308
|
+
return _context.stop();
|
|
13309
|
+
}
|
|
13310
|
+
}, _callee);
|
|
13311
|
+
}));
|
|
13312
|
+
return function getPodRoot(_x) {
|
|
13313
|
+
return _ref.apply(this, arguments);
|
|
13314
|
+
};
|
|
13315
|
+
}();
|
|
13316
|
+
exports.getPodRoot = getPodRoot;
|
|
13317
|
+
var pubKeyUrl = /*#__PURE__*/function () {
|
|
13318
|
+
var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(webId) {
|
|
13319
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
13320
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
13321
|
+
case 0:
|
|
13322
|
+
_context2.prev = 0;
|
|
13323
|
+
_context2.next = 3;
|
|
13324
|
+
return getPodRoot(webId);
|
|
13325
|
+
case 3:
|
|
13326
|
+
_context2.t0 = _context2.sent;
|
|
13327
|
+
return _context2.abrupt("return", _context2.t0 + 'profile/keys/publicKey.ttl');
|
|
13328
|
+
case 7:
|
|
13329
|
+
_context2.prev = 7;
|
|
13330
|
+
_context2.t1 = _context2["catch"](0);
|
|
13331
|
+
throw new Error(_context2.t1);
|
|
13332
|
+
case 10:
|
|
13333
|
+
case "end":
|
|
13334
|
+
return _context2.stop();
|
|
13335
|
+
}
|
|
13336
|
+
}, _callee2, null, [[0, 7]]);
|
|
13337
|
+
}));
|
|
13338
|
+
return function pubKeyUrl(_x2) {
|
|
13339
|
+
return _ref2.apply(this, arguments);
|
|
13340
|
+
};
|
|
13341
|
+
}();
|
|
13342
|
+
exports.pubKeyUrl = pubKeyUrl;
|
|
13343
|
+
function getExistingPublicKey(_x3, _x4) {
|
|
13344
|
+
return _getExistingPublicKey.apply(this, arguments);
|
|
13345
|
+
}
|
|
13346
|
+
function _getExistingPublicKey() {
|
|
13347
|
+
_getExistingPublicKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(webId, publicKeyUrl) {
|
|
13348
|
+
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
13349
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
13350
|
+
case 0:
|
|
13351
|
+
_context4.next = 2;
|
|
13352
|
+
return getKeyIfExists(webId, publicKeyUrl, 'PublicKey');
|
|
13353
|
+
case 2:
|
|
13354
|
+
return _context4.abrupt("return", _context4.sent);
|
|
13355
|
+
case 3:
|
|
13356
|
+
case "end":
|
|
13357
|
+
return _context4.stop();
|
|
13358
|
+
}
|
|
13359
|
+
}, _callee4);
|
|
13360
|
+
}));
|
|
13361
|
+
return _getExistingPublicKey.apply(this, arguments);
|
|
13362
|
+
}
|
|
13363
|
+
var privKeyUrl = /*#__PURE__*/function () {
|
|
13364
|
+
var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(webId) {
|
|
13365
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
13366
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
13367
|
+
case 0:
|
|
13368
|
+
_context3.prev = 0;
|
|
13369
|
+
_context3.next = 3;
|
|
13370
|
+
return getPodRoot(webId);
|
|
13371
|
+
case 3:
|
|
13372
|
+
_context3.t0 = _context3.sent;
|
|
13373
|
+
return _context3.abrupt("return", _context3.t0 + 'profile/keys/privateKey.ttl');
|
|
13374
|
+
case 7:
|
|
13375
|
+
_context3.prev = 7;
|
|
13376
|
+
_context3.t1 = _context3["catch"](0);
|
|
13377
|
+
throw new Error(_context3.t1);
|
|
13378
|
+
case 10:
|
|
13379
|
+
case "end":
|
|
13380
|
+
return _context3.stop();
|
|
13381
|
+
}
|
|
13382
|
+
}, _callee3, null, [[0, 7]]);
|
|
13383
|
+
}));
|
|
13384
|
+
return function privKeyUrl(_x5) {
|
|
13385
|
+
return _ref3.apply(this, arguments);
|
|
13386
|
+
};
|
|
13387
|
+
}();
|
|
13388
|
+
exports.privKeyUrl = privKeyUrl;
|
|
13389
|
+
function getExistingPrivateKey(_x6, _x7) {
|
|
13390
|
+
return _getExistingPrivateKey.apply(this, arguments);
|
|
13391
|
+
}
|
|
13392
|
+
function _getExistingPrivateKey() {
|
|
13393
|
+
_getExistingPrivateKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(webId, privateKeyUrl) {
|
|
13394
|
+
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
13395
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
13396
|
+
case 0:
|
|
13397
|
+
_context5.next = 2;
|
|
13398
|
+
return getKeyIfExists(webId, privateKeyUrl, 'PrivateKey');
|
|
13399
|
+
case 2:
|
|
13400
|
+
return _context5.abrupt("return", _context5.sent);
|
|
13401
|
+
case 3:
|
|
13402
|
+
case "end":
|
|
13403
|
+
return _context5.stop();
|
|
13404
|
+
}
|
|
13405
|
+
}, _callee5);
|
|
13406
|
+
}));
|
|
13407
|
+
return _getExistingPrivateKey.apply(this, arguments);
|
|
13408
|
+
}
|
|
13409
|
+
function getKeyIfExists(_x8, _x9, _x10) {
|
|
13410
|
+
return _getKeyIfExists.apply(this, arguments);
|
|
13411
|
+
}
|
|
13412
|
+
function _getKeyIfExists() {
|
|
13413
|
+
_getKeyIfExists = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(webId, keyUrl, keyType) {
|
|
13414
|
+
var key, _err$response, data, contentType, response;
|
|
13415
|
+
return _regenerator["default"].wrap(function _callee6$(_context6) {
|
|
13416
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
13417
|
+
case 0:
|
|
13418
|
+
_context6.prev = 0;
|
|
13419
|
+
_context6.next = 3;
|
|
13420
|
+
return _solidLogic.store.fetcher.load(keyUrl);
|
|
13421
|
+
case 3:
|
|
13422
|
+
key = _solidLogic.store.any(webId, _solidLogic.store.sym(_signature.CERT + keyType));
|
|
13423
|
+
return _context6.abrupt("return", key === null || key === void 0 ? void 0 : key.value);
|
|
13424
|
+
case 7:
|
|
13425
|
+
_context6.prev = 7;
|
|
13426
|
+
_context6.t0 = _context6["catch"](0);
|
|
13427
|
+
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)) {
|
|
13428
|
+
_context6.next = 24;
|
|
13429
|
+
break;
|
|
13430
|
+
}
|
|
13431
|
+
_context6.prev = 10;
|
|
13432
|
+
// create resource
|
|
13433
|
+
data = '';
|
|
13434
|
+
contentType = 'text/turtle';
|
|
13435
|
+
_context6.next = 15;
|
|
13436
|
+
return _solidLogic.store.fetcher.webOperation('PUT', keyUrl, {
|
|
13437
|
+
data: data,
|
|
13438
|
+
contentType: contentType
|
|
13439
|
+
});
|
|
13440
|
+
case 15:
|
|
13441
|
+
response = _context6.sent;
|
|
13442
|
+
_context6.next = 22;
|
|
13443
|
+
break;
|
|
13444
|
+
case 18:
|
|
13445
|
+
_context6.prev = 18;
|
|
13446
|
+
_context6.t1 = _context6["catch"](10);
|
|
13447
|
+
debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + _context6.t1);
|
|
13448
|
+
throw _context6.t1;
|
|
13449
|
+
case 22:
|
|
13450
|
+
delete _solidLogic.store.fetcher.requested[keyUrl]; // delete cached 404 error
|
|
13451
|
+
return _context6.abrupt("return", undefined);
|
|
13452
|
+
case 24:
|
|
13453
|
+
debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + _context6.t0);
|
|
13454
|
+
throw _context6.t0;
|
|
13455
|
+
case 26:
|
|
13456
|
+
case "end":
|
|
13457
|
+
return _context6.stop();
|
|
13458
|
+
}
|
|
13459
|
+
}, _callee6, null, [[0, 7], [10, 18]]);
|
|
13460
|
+
}));
|
|
13461
|
+
return _getKeyIfExists.apply(this, arguments);
|
|
13462
|
+
}
|
|
13463
|
+
//# sourceMappingURL=accessData.js.map
|
|
13464
|
+
|
|
13465
|
+
/***/ }),
|
|
13466
|
+
|
|
13467
|
+
/***/ "./lib/utils/keyHelpers/acl.js":
|
|
13468
|
+
/*!*************************************!*\
|
|
13469
|
+
!*** ./lib/utils/keyHelpers/acl.js ***!
|
|
13470
|
+
\*************************************/
|
|
13471
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
13472
|
+
|
|
13473
|
+
"use strict";
|
|
13474
|
+
|
|
13475
|
+
|
|
13476
|
+
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js");
|
|
13477
|
+
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/typeof.js");
|
|
13478
|
+
Object.defineProperty(exports, "__esModule", ({
|
|
13479
|
+
value: true
|
|
13480
|
+
}));
|
|
13481
|
+
exports.keyContainerAclBody = exports.keyAclBody = void 0;
|
|
13482
|
+
exports.setAcl = setAcl;
|
|
13483
|
+
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"));
|
|
13484
|
+
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
|
|
13485
|
+
var debug = _interopRequireWildcard(__webpack_require__(/*! ../../debug */ "./lib/debug.js"));
|
|
13486
|
+
var _solidLogic = __webpack_require__(/*! solid-logic */ "./node_modules/solid-logic/lib/index.js");
|
|
13487
|
+
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); }
|
|
13488
|
+
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; }
|
|
13489
|
+
/**
|
|
13490
|
+
* set ACL
|
|
13491
|
+
* @param keyDoc
|
|
13492
|
+
* @param aclBody
|
|
13493
|
+
*/
|
|
13494
|
+
function setAcl(_x, _x2) {
|
|
13495
|
+
return _setAcl.apply(this, arguments);
|
|
13496
|
+
}
|
|
13497
|
+
/**
|
|
13498
|
+
* key container ACL
|
|
13499
|
+
* @param me
|
|
13500
|
+
* @returns aclBody
|
|
13501
|
+
*/
|
|
13502
|
+
function _setAcl() {
|
|
13503
|
+
_setAcl = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(keyDoc, aclBody) {
|
|
13504
|
+
var keyAclDoc, response, aclResponse;
|
|
13505
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
13506
|
+
while (1) switch (_context.prev = _context.next) {
|
|
13507
|
+
case 0:
|
|
13508
|
+
_context.next = 2;
|
|
13509
|
+
return _solidLogic.store.fetcher.load(keyDoc);
|
|
13510
|
+
case 2:
|
|
13511
|
+
// FIXME: check the Why value on this quad:
|
|
13512
|
+
debug.log(_solidLogic.store.statementsMatching(_solidLogic.store.sym(keyDoc), _solidLogic.store.sym('http://www.iana.org/assignments/link-relations/acl')));
|
|
13513
|
+
keyAclDoc = _solidLogic.store.any(_solidLogic.store.sym(keyDoc), _solidLogic.store.sym('http://www.iana.org/assignments/link-relations/acl'));
|
|
13514
|
+
if (keyAclDoc) {
|
|
13515
|
+
_context.next = 6;
|
|
13516
|
+
break;
|
|
13517
|
+
}
|
|
13518
|
+
throw new Error('Key ACL doc not found!');
|
|
13519
|
+
case 6:
|
|
13520
|
+
_context.prev = 6;
|
|
13521
|
+
_context.next = 9;
|
|
13522
|
+
return _solidLogic.store.fetcher.webOperation('DELETE', keyAclDoc.value);
|
|
13523
|
+
case 9:
|
|
13524
|
+
response = _context.sent;
|
|
13525
|
+
// this may fail if webId is not an owner
|
|
13526
|
+
debug.log('delete ' + keyAclDoc.value + ' ' + response.status); // should test 404 and 2xx
|
|
13527
|
+
_context.next = 18;
|
|
13528
|
+
break;
|
|
13529
|
+
case 13:
|
|
13530
|
+
_context.prev = 13;
|
|
13531
|
+
_context.t0 = _context["catch"](6);
|
|
13532
|
+
if (!(_context.t0.response.status !== 404)) {
|
|
13533
|
+
_context.next = 17;
|
|
13534
|
+
break;
|
|
13535
|
+
}
|
|
13536
|
+
throw new Error(_context.t0);
|
|
13537
|
+
case 17:
|
|
13538
|
+
debug.log('delete ' + keyAclDoc.value + ' ' + _context.t0.response.status); // should test 404 and 2xx
|
|
13539
|
+
case 18:
|
|
13540
|
+
_context.next = 20;
|
|
13541
|
+
return _solidLogic.store.fetcher.webOperation('PUT', keyAclDoc.value, {
|
|
13542
|
+
data: aclBody,
|
|
13543
|
+
contentType: 'text/turtle'
|
|
13544
|
+
});
|
|
13545
|
+
case 20:
|
|
13546
|
+
aclResponse = _context.sent;
|
|
13547
|
+
case 21:
|
|
13548
|
+
case "end":
|
|
13549
|
+
return _context.stop();
|
|
13550
|
+
}
|
|
13551
|
+
}, _callee, null, [[6, 13]]);
|
|
13552
|
+
}));
|
|
13553
|
+
return _setAcl.apply(this, arguments);
|
|
13554
|
+
}
|
|
13555
|
+
var keyContainerAclBody = function keyContainerAclBody(me) {
|
|
13556
|
+
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");
|
|
13557
|
+
return aclBody;
|
|
13558
|
+
};
|
|
13559
|
+
|
|
13560
|
+
/**
|
|
13561
|
+
* Read only ACL
|
|
13562
|
+
* @param keyDoc
|
|
13563
|
+
* @param me
|
|
13564
|
+
* @returns aclBody
|
|
13565
|
+
*/
|
|
13566
|
+
exports.keyContainerAclBody = keyContainerAclBody;
|
|
13567
|
+
var keyAclBody = function keyAclBody(keyDoc, me) {
|
|
13568
|
+
var keyAgent = 'acl:agentClass foaf:Agent'; // publicKey
|
|
13569
|
+
if (me !== null && me !== void 0 && me.length) keyAgent = "acl:agent <".concat(me, ">"); // privateKey
|
|
13570
|
+
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");
|
|
13571
|
+
return aclBody;
|
|
13572
|
+
};
|
|
13573
|
+
exports.keyAclBody = keyAclBody;
|
|
13574
|
+
//# sourceMappingURL=acl.js.map
|
|
13575
|
+
|
|
13576
|
+
/***/ }),
|
|
13577
|
+
|
|
13195
13578
|
/***/ "./lib/utils/label.js":
|
|
13196
13579
|
/*!****************************!*\
|
|
13197
13580
|
!*** ./lib/utils/label.js ***!
|
|
@@ -13320,8 +13703,8 @@ Object.defineProperty(exports, "__esModule", ({
|
|
|
13320
13703
|
}));
|
|
13321
13704
|
exports.versionInfo = void 0;
|
|
13322
13705
|
var versionInfo = {
|
|
13323
|
-
buildTime: '2023-
|
|
13324
|
-
commit: '
|
|
13706
|
+
buildTime: '2023-05-10T20:40:26Z',
|
|
13707
|
+
commit: 'a1b9ed499fb4a952fea53802444f51b325c4ed6d',
|
|
13325
13708
|
npmInfo: {
|
|
13326
13709
|
'solid-ui': '2.4.27',
|
|
13327
13710
|
npm: '8.19.4',
|
|
@@ -62007,14 +62390,17 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
62007
62390
|
/* harmony export */ "createRemoteJWKSet": () => (/* binding */ createRemoteJWKSet)
|
|
62008
62391
|
/* harmony export */ });
|
|
62009
62392
|
/* harmony import */ var _runtime_fetch_jwks_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../runtime/fetch_jwks.js */ "./node_modules/jose/dist/browser/runtime/fetch_jwks.js");
|
|
62010
|
-
/* harmony import */ var
|
|
62011
|
-
/* harmony import */ var
|
|
62012
|
-
/* harmony import */ var _local_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./local.js */ "./node_modules/jose/dist/browser/jwks/local.js");
|
|
62013
|
-
|
|
62393
|
+
/* harmony import */ var _util_errors_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/errors.js */ "./node_modules/jose/dist/browser/util/errors.js");
|
|
62394
|
+
/* harmony import */ var _local_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./local.js */ "./node_modules/jose/dist/browser/jwks/local.js");
|
|
62014
62395
|
|
|
62015
62396
|
|
|
62016
62397
|
|
|
62017
|
-
|
|
62398
|
+
function isCloudflareWorkers() {
|
|
62399
|
+
return (typeof WebSocketPair !== 'undefined' ||
|
|
62400
|
+
(typeof navigator !== 'undefined' && navigator.userAgent === 'Cloudflare-Workers') ||
|
|
62401
|
+
(typeof EdgeRuntime !== 'undefined' && EdgeRuntime === 'vercel'));
|
|
62402
|
+
}
|
|
62403
|
+
class RemoteJWKSet extends _local_js__WEBPACK_IMPORTED_MODULE_2__.LocalJWKSet {
|
|
62018
62404
|
constructor(url, options) {
|
|
62019
62405
|
super({ keys: [] });
|
|
62020
62406
|
this._jwks = undefined;
|
|
@@ -62047,7 +62433,7 @@ class RemoteJWKSet extends _local_js__WEBPACK_IMPORTED_MODULE_3__.LocalJWKSet {
|
|
|
62047
62433
|
return await super.getKey(protectedHeader, token);
|
|
62048
62434
|
}
|
|
62049
62435
|
catch (err) {
|
|
62050
|
-
if (err instanceof
|
|
62436
|
+
if (err instanceof _util_errors_js__WEBPACK_IMPORTED_MODULE_1__.JWKSNoMatchingKey) {
|
|
62051
62437
|
if (this.coolingDown() === false) {
|
|
62052
62438
|
await this.reload();
|
|
62053
62439
|
return super.getKey(protectedHeader, token);
|
|
@@ -62057,13 +62443,13 @@ class RemoteJWKSet extends _local_js__WEBPACK_IMPORTED_MODULE_3__.LocalJWKSet {
|
|
|
62057
62443
|
}
|
|
62058
62444
|
}
|
|
62059
62445
|
async reload() {
|
|
62060
|
-
if (this._pendingFetch &&
|
|
62446
|
+
if (this._pendingFetch && isCloudflareWorkers()) {
|
|
62061
62447
|
this._pendingFetch = undefined;
|
|
62062
62448
|
}
|
|
62063
62449
|
this._pendingFetch || (this._pendingFetch = (0,_runtime_fetch_jwks_js__WEBPACK_IMPORTED_MODULE_0__["default"])(this._url, this._timeoutDuration, this._options)
|
|
62064
62450
|
.then((json) => {
|
|
62065
|
-
if (!(0,
|
|
62066
|
-
throw new
|
|
62451
|
+
if (!(0,_local_js__WEBPACK_IMPORTED_MODULE_2__.isJWKSLike)(json)) {
|
|
62452
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_1__.JWKSInvalid('JSON Web Key Set malformed');
|
|
62067
62453
|
}
|
|
62068
62454
|
this._jwks = { keys: json.keys };
|
|
62069
62455
|
this._jwksTimestamp = Date.now();
|
|
@@ -63251,8 +63637,6 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
63251
63637
|
/* harmony export */ "checkEncCryptoKey": () => (/* binding */ checkEncCryptoKey),
|
|
63252
63638
|
/* harmony export */ "checkSigCryptoKey": () => (/* binding */ checkSigCryptoKey)
|
|
63253
63639
|
/* harmony export */ });
|
|
63254
|
-
/* harmony import */ var _runtime_env_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../runtime/env.js */ "./node_modules/jose/dist/browser/runtime/env.js");
|
|
63255
|
-
|
|
63256
63640
|
function unusable(name, prop = 'algorithm.name') {
|
|
63257
63641
|
return new TypeError(`CryptoKey does not support this operation, its ${prop} must be ${name}`);
|
|
63258
63642
|
}
|
|
@@ -63327,11 +63711,6 @@ function checkSigCryptoKey(key, alg, ...usages) {
|
|
|
63327
63711
|
}
|
|
63328
63712
|
case 'EdDSA': {
|
|
63329
63713
|
if (key.algorithm.name !== 'Ed25519' && key.algorithm.name !== 'Ed448') {
|
|
63330
|
-
if ((0,_runtime_env_js__WEBPACK_IMPORTED_MODULE_0__.isCloudflareWorkers)()) {
|
|
63331
|
-
if (isAlgorithm(key.algorithm, 'NODE-ED25519'))
|
|
63332
|
-
break;
|
|
63333
|
-
throw unusable('Ed25519, Ed448, or NODE-ED25519');
|
|
63334
|
-
}
|
|
63335
63714
|
throw unusable('Ed25519 or Ed448');
|
|
63336
63715
|
}
|
|
63337
63716
|
break;
|
|
@@ -64162,14 +64541,12 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
64162
64541
|
/* harmony export */ "toPKCS8": () => (/* binding */ toPKCS8),
|
|
64163
64542
|
/* harmony export */ "toSPKI": () => (/* binding */ toSPKI)
|
|
64164
64543
|
/* harmony export */ });
|
|
64165
|
-
/* harmony import */ var
|
|
64166
|
-
/* harmony import */ var
|
|
64167
|
-
/* harmony import */ var
|
|
64168
|
-
/* harmony import */ var
|
|
64169
|
-
/* harmony import */ var
|
|
64170
|
-
/* harmony import */ var
|
|
64171
|
-
/* harmony import */ var _is_key_like_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./is_key_like.js */ "./node_modules/jose/dist/browser/runtime/is_key_like.js");
|
|
64172
|
-
|
|
64544
|
+
/* harmony import */ var _webcrypto_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./webcrypto.js */ "./node_modules/jose/dist/browser/runtime/webcrypto.js");
|
|
64545
|
+
/* harmony import */ var _lib_invalid_key_input_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../lib/invalid_key_input.js */ "./node_modules/jose/dist/browser/lib/invalid_key_input.js");
|
|
64546
|
+
/* harmony import */ var _base64url_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./base64url.js */ "./node_modules/jose/dist/browser/runtime/base64url.js");
|
|
64547
|
+
/* harmony import */ var _lib_format_pem_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../lib/format_pem.js */ "./node_modules/jose/dist/browser/lib/format_pem.js");
|
|
64548
|
+
/* harmony import */ var _util_errors_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/errors.js */ "./node_modules/jose/dist/browser/util/errors.js");
|
|
64549
|
+
/* harmony import */ var _is_key_like_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./is_key_like.js */ "./node_modules/jose/dist/browser/runtime/is_key_like.js");
|
|
64173
64550
|
|
|
64174
64551
|
|
|
64175
64552
|
|
|
@@ -64177,8 +64554,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
64177
64554
|
|
|
64178
64555
|
|
|
64179
64556
|
const genericExport = async (keyType, keyFormat, key) => {
|
|
64180
|
-
if (!(0,
|
|
64181
|
-
throw new TypeError((0,
|
|
64557
|
+
if (!(0,_webcrypto_js__WEBPACK_IMPORTED_MODULE_0__.isCryptoKey)(key)) {
|
|
64558
|
+
throw new TypeError((0,_lib_invalid_key_input_js__WEBPACK_IMPORTED_MODULE_1__["default"])(key, ..._is_key_like_js__WEBPACK_IMPORTED_MODULE_5__.types));
|
|
64182
64559
|
}
|
|
64183
64560
|
if (!key.extractable) {
|
|
64184
64561
|
throw new TypeError('CryptoKey is not extractable');
|
|
@@ -64186,7 +64563,7 @@ const genericExport = async (keyType, keyFormat, key) => {
|
|
|
64186
64563
|
if (key.type !== keyType) {
|
|
64187
64564
|
throw new TypeError(`key is not a ${keyType} key`);
|
|
64188
64565
|
}
|
|
64189
|
-
return (0,
|
|
64566
|
+
return (0,_lib_format_pem_js__WEBPACK_IMPORTED_MODULE_3__["default"])((0,_base64url_js__WEBPACK_IMPORTED_MODULE_2__.encodeBase64)(new Uint8Array(await _webcrypto_js__WEBPACK_IMPORTED_MODULE_0__["default"].subtle.exportKey(keyFormat, key))), `${keyType.toUpperCase()} KEY`);
|
|
64190
64567
|
};
|
|
64191
64568
|
const toSPKI = (key) => {
|
|
64192
64569
|
return genericExport('public', 'spki', key);
|
|
@@ -64224,11 +64601,11 @@ const getNamedCurve = (keyData) => {
|
|
|
64224
64601
|
case findOid(keyData, [0x2b, 0x65, 0x71]):
|
|
64225
64602
|
return 'Ed448';
|
|
64226
64603
|
default:
|
|
64227
|
-
throw new
|
|
64604
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_4__.JOSENotSupported('Invalid or unsupported EC Key Curve or OKP Key Sub Type');
|
|
64228
64605
|
}
|
|
64229
64606
|
};
|
|
64230
64607
|
const genericImport = async (replace, keyFormat, pem, alg, options) => {
|
|
64231
|
-
var _a
|
|
64608
|
+
var _a;
|
|
64232
64609
|
let algorithm;
|
|
64233
64610
|
let keyUsages;
|
|
64234
64611
|
const keyData = new Uint8Array(atob(pem.replace(replace, ''))
|
|
@@ -64284,20 +64661,9 @@ const genericImport = async (replace, keyFormat, pem, alg, options) => {
|
|
|
64284
64661
|
keyUsages = isPublic ? ['verify'] : ['sign'];
|
|
64285
64662
|
break;
|
|
64286
64663
|
default:
|
|
64287
|
-
throw new
|
|
64288
|
-
}
|
|
64289
|
-
try {
|
|
64290
|
-
return await _webcrypto_js__WEBPACK_IMPORTED_MODULE_1__["default"].subtle.importKey(keyFormat, keyData, algorithm, (_a = options === null || options === void 0 ? void 0 : options.extractable) !== null && _a !== void 0 ? _a : false, keyUsages);
|
|
64291
|
-
}
|
|
64292
|
-
catch (err) {
|
|
64293
|
-
if (algorithm.name === 'Ed25519' &&
|
|
64294
|
-
(err === null || err === void 0 ? void 0 : err.name) === 'NotSupportedError' &&
|
|
64295
|
-
(0,_env_js__WEBPACK_IMPORTED_MODULE_0__.isCloudflareWorkers)()) {
|
|
64296
|
-
algorithm = { name: 'NODE-ED25519', namedCurve: 'NODE-ED25519' };
|
|
64297
|
-
return await _webcrypto_js__WEBPACK_IMPORTED_MODULE_1__["default"].subtle.importKey(keyFormat, keyData, algorithm, (_b = options === null || options === void 0 ? void 0 : options.extractable) !== null && _b !== void 0 ? _b : false, keyUsages);
|
|
64298
|
-
}
|
|
64299
|
-
throw err;
|
|
64664
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_4__.JOSENotSupported('Invalid or unsupported "alg" (Algorithm) value');
|
|
64300
64665
|
}
|
|
64666
|
+
return _webcrypto_js__WEBPACK_IMPORTED_MODULE_0__["default"].subtle.importKey(keyFormat, keyData, algorithm, (_a = options === null || options === void 0 ? void 0 : options.extractable) !== null && _a !== void 0 ? _a : false, keyUsages);
|
|
64301
64667
|
};
|
|
64302
64668
|
const fromPKCS8 = (pem, alg, options) => {
|
|
64303
64669
|
return genericImport(/(?:-----(?:BEGIN|END) PRIVATE KEY-----|\s)/g, 'pkcs8', pem, alg, options);
|
|
@@ -64366,12 +64732,12 @@ function parseElement(bytes) {
|
|
|
64366
64732
|
}
|
|
64367
64733
|
function spkiFromX509(buf) {
|
|
64368
64734
|
const tbsCertificate = getElement(getElement(parseElement(buf).contents)[0].contents);
|
|
64369
|
-
return (0,
|
|
64735
|
+
return (0,_base64url_js__WEBPACK_IMPORTED_MODULE_2__.encodeBase64)(tbsCertificate[tbsCertificate[0].raw[0] === 0xa0 ? 6 : 5].raw);
|
|
64370
64736
|
}
|
|
64371
64737
|
function getSPKI(x509) {
|
|
64372
64738
|
const pem = x509.replace(/(?:-----(?:BEGIN|END) CERTIFICATE-----|\s)/g, '');
|
|
64373
|
-
const raw = (0,
|
|
64374
|
-
return (0,
|
|
64739
|
+
const raw = (0,_base64url_js__WEBPACK_IMPORTED_MODULE_2__.decodeBase64)(pem);
|
|
64740
|
+
return (0,_lib_format_pem_js__WEBPACK_IMPORTED_MODULE_3__["default"])(spkiFromX509(raw), 'PUBLIC KEY');
|
|
64375
64741
|
}
|
|
64376
64742
|
const fromX509 = (pem, alg, options) => {
|
|
64377
64743
|
let spki;
|
|
@@ -64799,26 +65165,6 @@ const encrypt = async (enc, plaintext, cek, iv, aad) => {
|
|
|
64799
65165
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (encrypt);
|
|
64800
65166
|
|
|
64801
65167
|
|
|
64802
|
-
/***/ }),
|
|
64803
|
-
|
|
64804
|
-
/***/ "./node_modules/jose/dist/browser/runtime/env.js":
|
|
64805
|
-
/*!*******************************************************!*\
|
|
64806
|
-
!*** ./node_modules/jose/dist/browser/runtime/env.js ***!
|
|
64807
|
-
\*******************************************************/
|
|
64808
|
-
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
64809
|
-
|
|
64810
|
-
"use strict";
|
|
64811
|
-
__webpack_require__.r(__webpack_exports__);
|
|
64812
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
64813
|
-
/* harmony export */ "isCloudflareWorkers": () => (/* binding */ isCloudflareWorkers)
|
|
64814
|
-
/* harmony export */ });
|
|
64815
|
-
function isCloudflareWorkers() {
|
|
64816
|
-
return (typeof WebSocketPair !== 'undefined' ||
|
|
64817
|
-
(typeof navigator !== 'undefined' && navigator.userAgent === 'Cloudflare-Workers') ||
|
|
64818
|
-
(typeof EdgeRuntime !== 'undefined' && EdgeRuntime === 'vercel'));
|
|
64819
|
-
}
|
|
64820
|
-
|
|
64821
|
-
|
|
64822
65168
|
/***/ }),
|
|
64823
65169
|
|
|
64824
65170
|
/***/ "./node_modules/jose/dist/browser/runtime/fetch_jwks.js":
|
|
@@ -64883,11 +65229,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
64883
65229
|
/* harmony export */ "generateKeyPair": () => (/* binding */ generateKeyPair),
|
|
64884
65230
|
/* harmony export */ "generateSecret": () => (/* binding */ generateSecret)
|
|
64885
65231
|
/* harmony export */ });
|
|
64886
|
-
/* harmony import */ var
|
|
64887
|
-
/* harmony import */ var
|
|
64888
|
-
/* harmony import */ var
|
|
64889
|
-
/* harmony import */ var _random_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./random.js */ "./node_modules/jose/dist/browser/runtime/random.js");
|
|
64890
|
-
|
|
65232
|
+
/* harmony import */ var _webcrypto_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./webcrypto.js */ "./node_modules/jose/dist/browser/runtime/webcrypto.js");
|
|
65233
|
+
/* harmony import */ var _util_errors_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/errors.js */ "./node_modules/jose/dist/browser/util/errors.js");
|
|
65234
|
+
/* harmony import */ var _random_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./random.js */ "./node_modules/jose/dist/browser/runtime/random.js");
|
|
64891
65235
|
|
|
64892
65236
|
|
|
64893
65237
|
|
|
@@ -64908,7 +65252,7 @@ async function generateSecret(alg, options) {
|
|
|
64908
65252
|
case 'A192CBC-HS384':
|
|
64909
65253
|
case 'A256CBC-HS512':
|
|
64910
65254
|
length = parseInt(alg.slice(-3), 10);
|
|
64911
|
-
return (0,
|
|
65255
|
+
return (0,_random_js__WEBPACK_IMPORTED_MODULE_2__["default"])(new Uint8Array(length >> 3));
|
|
64912
65256
|
case 'A128KW':
|
|
64913
65257
|
case 'A192KW':
|
|
64914
65258
|
case 'A256KW':
|
|
@@ -64927,20 +65271,20 @@ async function generateSecret(alg, options) {
|
|
|
64927
65271
|
keyUsages = ['encrypt', 'decrypt'];
|
|
64928
65272
|
break;
|
|
64929
65273
|
default:
|
|
64930
|
-
throw new
|
|
65274
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_1__.JOSENotSupported('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
|
|
64931
65275
|
}
|
|
64932
|
-
return
|
|
65276
|
+
return _webcrypto_js__WEBPACK_IMPORTED_MODULE_0__["default"].subtle.generateKey(algorithm, (_a = options === null || options === void 0 ? void 0 : options.extractable) !== null && _a !== void 0 ? _a : false, keyUsages);
|
|
64933
65277
|
}
|
|
64934
65278
|
function getModulusLengthOption(options) {
|
|
64935
65279
|
var _a;
|
|
64936
65280
|
const modulusLength = (_a = options === null || options === void 0 ? void 0 : options.modulusLength) !== null && _a !== void 0 ? _a : 2048;
|
|
64937
65281
|
if (typeof modulusLength !== 'number' || modulusLength < 2048) {
|
|
64938
|
-
throw new
|
|
65282
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_1__.JOSENotSupported('Invalid or unsupported modulusLength option provided, 2048 bits or larger keys must be used');
|
|
64939
65283
|
}
|
|
64940
65284
|
return modulusLength;
|
|
64941
65285
|
}
|
|
64942
65286
|
async function generateKeyPair(alg, options) {
|
|
64943
|
-
var _a, _b, _c
|
|
65287
|
+
var _a, _b, _c;
|
|
64944
65288
|
let algorithm;
|
|
64945
65289
|
let keyUsages;
|
|
64946
65290
|
switch (alg) {
|
|
@@ -64999,7 +65343,7 @@ async function generateKeyPair(alg, options) {
|
|
|
64999
65343
|
algorithm = { name: crv };
|
|
65000
65344
|
break;
|
|
65001
65345
|
default:
|
|
65002
|
-
throw new
|
|
65346
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_1__.JOSENotSupported('Invalid or unsupported crv option provided');
|
|
65003
65347
|
}
|
|
65004
65348
|
break;
|
|
65005
65349
|
case 'ECDH-ES':
|
|
@@ -65020,25 +65364,14 @@ async function generateKeyPair(alg, options) {
|
|
|
65020
65364
|
algorithm = { name: crv };
|
|
65021
65365
|
break;
|
|
65022
65366
|
default:
|
|
65023
|
-
throw new
|
|
65367
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_1__.JOSENotSupported('Invalid or unsupported crv option provided, supported values are P-256, P-384, P-521, X25519, and X448');
|
|
65024
65368
|
}
|
|
65025
65369
|
break;
|
|
65026
65370
|
}
|
|
65027
65371
|
default:
|
|
65028
|
-
throw new
|
|
65029
|
-
}
|
|
65030
|
-
try {
|
|
65031
|
-
return (await _webcrypto_js__WEBPACK_IMPORTED_MODULE_1__["default"].subtle.generateKey(algorithm, (_c = options === null || options === void 0 ? void 0 : options.extractable) !== null && _c !== void 0 ? _c : false, keyUsages));
|
|
65032
|
-
}
|
|
65033
|
-
catch (err) {
|
|
65034
|
-
if (algorithm.name === 'Ed25519' &&
|
|
65035
|
-
(err === null || err === void 0 ? void 0 : err.name) === 'NotSupportedError' &&
|
|
65036
|
-
(0,_env_js__WEBPACK_IMPORTED_MODULE_0__.isCloudflareWorkers)()) {
|
|
65037
|
-
algorithm = { name: 'NODE-ED25519', namedCurve: 'NODE-ED25519' };
|
|
65038
|
-
return (await _webcrypto_js__WEBPACK_IMPORTED_MODULE_1__["default"].subtle.generateKey(algorithm, (_d = options === null || options === void 0 ? void 0 : options.extractable) !== null && _d !== void 0 ? _d : false, keyUsages));
|
|
65039
|
-
}
|
|
65040
|
-
throw err;
|
|
65372
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_1__.JOSENotSupported('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
|
|
65041
65373
|
}
|
|
65374
|
+
return (_webcrypto_js__WEBPACK_IMPORTED_MODULE_0__["default"].subtle.generateKey(algorithm, (_c = options === null || options === void 0 ? void 0 : options.extractable) !== null && _c !== void 0 ? _c : false, keyUsages));
|
|
65042
65375
|
}
|
|
65043
65376
|
|
|
65044
65377
|
|
|
@@ -65113,11 +65446,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
65113
65446
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
65114
65447
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
65115
65448
|
/* harmony export */ });
|
|
65116
|
-
/* harmony import */ var
|
|
65117
|
-
/* harmony import */ var
|
|
65118
|
-
/* harmony import */ var
|
|
65119
|
-
/* harmony import */ var _base64url_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./base64url.js */ "./node_modules/jose/dist/browser/runtime/base64url.js");
|
|
65120
|
-
|
|
65449
|
+
/* harmony import */ var _webcrypto_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./webcrypto.js */ "./node_modules/jose/dist/browser/runtime/webcrypto.js");
|
|
65450
|
+
/* harmony import */ var _util_errors_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/errors.js */ "./node_modules/jose/dist/browser/util/errors.js");
|
|
65451
|
+
/* harmony import */ var _base64url_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./base64url.js */ "./node_modules/jose/dist/browser/runtime/base64url.js");
|
|
65121
65452
|
|
|
65122
65453
|
|
|
65123
65454
|
|
|
@@ -65136,7 +65467,7 @@ function subtleMapping(jwk) {
|
|
|
65136
65467
|
case 'A128CBC-HS256':
|
|
65137
65468
|
case 'A192CBC-HS384':
|
|
65138
65469
|
case 'A256CBC-HS512':
|
|
65139
|
-
throw new
|
|
65470
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_1__.JOSENotSupported(`${jwk.alg} keys cannot be imported as CryptoKey instances`);
|
|
65140
65471
|
case 'A128GCM':
|
|
65141
65472
|
case 'A192GCM':
|
|
65142
65473
|
case 'A256GCM':
|
|
@@ -65159,7 +65490,7 @@ function subtleMapping(jwk) {
|
|
|
65159
65490
|
keyUsages = ['deriveBits'];
|
|
65160
65491
|
break;
|
|
65161
65492
|
default:
|
|
65162
|
-
throw new
|
|
65493
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_1__.JOSENotSupported('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
|
|
65163
65494
|
}
|
|
65164
65495
|
break;
|
|
65165
65496
|
}
|
|
@@ -65188,7 +65519,7 @@ function subtleMapping(jwk) {
|
|
|
65188
65519
|
keyUsages = jwk.d ? ['decrypt', 'unwrapKey'] : ['encrypt', 'wrapKey'];
|
|
65189
65520
|
break;
|
|
65190
65521
|
default:
|
|
65191
|
-
throw new
|
|
65522
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_1__.JOSENotSupported('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
|
|
65192
65523
|
}
|
|
65193
65524
|
break;
|
|
65194
65525
|
}
|
|
@@ -65214,7 +65545,7 @@ function subtleMapping(jwk) {
|
|
|
65214
65545
|
keyUsages = jwk.d ? ['deriveBits'] : [];
|
|
65215
65546
|
break;
|
|
65216
65547
|
default:
|
|
65217
|
-
throw new
|
|
65548
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_1__.JOSENotSupported('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
|
|
65218
65549
|
}
|
|
65219
65550
|
break;
|
|
65220
65551
|
}
|
|
@@ -65232,12 +65563,12 @@ function subtleMapping(jwk) {
|
|
|
65232
65563
|
keyUsages = jwk.d ? ['deriveBits'] : [];
|
|
65233
65564
|
break;
|
|
65234
65565
|
default:
|
|
65235
|
-
throw new
|
|
65566
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_1__.JOSENotSupported('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
|
|
65236
65567
|
}
|
|
65237
65568
|
break;
|
|
65238
65569
|
}
|
|
65239
65570
|
default:
|
|
65240
|
-
throw new
|
|
65571
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_1__.JOSENotSupported('Invalid or unsupported JWK "kty" (Key Type) Parameter value');
|
|
65241
65572
|
}
|
|
65242
65573
|
return { algorithm, keyUsages };
|
|
65243
65574
|
}
|
|
@@ -65253,23 +65584,12 @@ const parse = async (jwk) => {
|
|
|
65253
65584
|
(_b = jwk.key_ops) !== null && _b !== void 0 ? _b : keyUsages,
|
|
65254
65585
|
];
|
|
65255
65586
|
if (algorithm.name === 'PBKDF2') {
|
|
65256
|
-
return
|
|
65587
|
+
return _webcrypto_js__WEBPACK_IMPORTED_MODULE_0__["default"].subtle.importKey('raw', (0,_base64url_js__WEBPACK_IMPORTED_MODULE_2__.decode)(jwk.k), ...rest);
|
|
65257
65588
|
}
|
|
65258
65589
|
const keyData = { ...jwk };
|
|
65259
65590
|
delete keyData.alg;
|
|
65260
65591
|
delete keyData.use;
|
|
65261
|
-
|
|
65262
|
-
return await _webcrypto_js__WEBPACK_IMPORTED_MODULE_1__["default"].subtle.importKey('jwk', keyData, ...rest);
|
|
65263
|
-
}
|
|
65264
|
-
catch (err) {
|
|
65265
|
-
if (algorithm.name === 'Ed25519' &&
|
|
65266
|
-
(err === null || err === void 0 ? void 0 : err.name) === 'NotSupportedError' &&
|
|
65267
|
-
(0,_env_js__WEBPACK_IMPORTED_MODULE_0__.isCloudflareWorkers)()) {
|
|
65268
|
-
rest[0] = { name: 'NODE-ED25519', namedCurve: 'NODE-ED25519' };
|
|
65269
|
-
return await _webcrypto_js__WEBPACK_IMPORTED_MODULE_1__["default"].subtle.importKey('jwk', keyData, ...rest);
|
|
65270
|
-
}
|
|
65271
|
-
throw err;
|
|
65272
|
-
}
|
|
65592
|
+
return _webcrypto_js__WEBPACK_IMPORTED_MODULE_0__["default"].subtle.importKey('jwk', keyData, ...rest);
|
|
65273
65593
|
};
|
|
65274
65594
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (parse);
|
|
65275
65595
|
|
|
@@ -65511,9 +65831,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
65511
65831
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
65512
65832
|
/* harmony export */ "default": () => (/* binding */ subtleDsa)
|
|
65513
65833
|
/* harmony export */ });
|
|
65514
|
-
/* harmony import */ var
|
|
65515
|
-
/* harmony import */ var _util_errors_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/errors.js */ "./node_modules/jose/dist/browser/util/errors.js");
|
|
65516
|
-
|
|
65834
|
+
/* harmony import */ var _util_errors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/errors.js */ "./node_modules/jose/dist/browser/util/errors.js");
|
|
65517
65835
|
|
|
65518
65836
|
function subtleDsa(alg, algorithm) {
|
|
65519
65837
|
const hash = `SHA-${alg.slice(-3)}`;
|
|
@@ -65535,12 +65853,9 @@ function subtleDsa(alg, algorithm) {
|
|
|
65535
65853
|
case 'ES512':
|
|
65536
65854
|
return { hash, name: 'ECDSA', namedCurve: algorithm.namedCurve };
|
|
65537
65855
|
case 'EdDSA':
|
|
65538
|
-
if ((0,_env_js__WEBPACK_IMPORTED_MODULE_0__.isCloudflareWorkers)() && algorithm.name === 'NODE-ED25519') {
|
|
65539
|
-
return { name: 'NODE-ED25519', namedCurve: 'NODE-ED25519' };
|
|
65540
|
-
}
|
|
65541
65856
|
return { name: algorithm.name };
|
|
65542
65857
|
default:
|
|
65543
|
-
throw new
|
|
65858
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_0__.JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);
|
|
65544
65859
|
}
|
|
65545
65860
|
}
|
|
65546
65861
|
|