solid-ui 2.4.27-20175fe3 → 2.4.27-226c29c4
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 +642 -305
- 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 +182 -111
- package/lib/chat/keys.js.map +1 -1
- package/lib/chat/message.js +22 -15
- 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 +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/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,140 +4053,209 @@ 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
|
-
debug.warn(url.href) */
|
|
4065
|
-
_solidLogic.store.fetcher.load(url.href);
|
|
4066
|
-
var publicKey = _solidLogic.store.any(_solidLogic.store.sym(webId), _solidLogic.store.sym(_signature.CERT + 'PublicKey'));
|
|
4067
|
-
return publicKey === null || publicKey === void 0 ? void 0 : publicKey.value; // as NamedNode
|
|
4068
|
-
}
|
|
4069
|
-
|
|
4070
|
-
var privKeyUrl = function privKeyUrl(webId) {
|
|
4071
|
-
var url = new URL(webId);
|
|
4072
|
-
var privateKeyUrl = url.protocol + '//' + url.host + '/profile/privateKey.ttl';
|
|
4073
|
-
return privateKeyUrl;
|
|
4074
|
-
};
|
|
4075
|
-
function privateKeyExists(_x) {
|
|
4076
|
-
return _privateKeyExists.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);
|
|
4077
4066
|
}
|
|
4078
|
-
function
|
|
4079
|
-
|
|
4080
|
-
var
|
|
4081
|
-
return _regenerator["default"].wrap(function
|
|
4082
|
-
while (1) switch (
|
|
4067
|
+
function _getPublicKey() {
|
|
4068
|
+
_getPublicKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(webId) {
|
|
4069
|
+
var publicKeyDoc, key;
|
|
4070
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
4071
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
4083
4072
|
case 0:
|
|
4084
|
-
|
|
4085
|
-
|
|
4086
|
-
|
|
4087
|
-
|
|
4088
|
-
|
|
4089
|
-
|
|
4090
|
-
|
|
4091
|
-
|
|
4092
|
-
|
|
4093
|
-
return
|
|
4094
|
-
case
|
|
4095
|
-
|
|
4096
|
-
|
|
4097
|
-
|
|
4098
|
-
|
|
4099
|
-
|
|
4100
|
-
|
|
4101
|
-
|
|
4102
|
-
// create privateKey resource
|
|
4103
|
-
data = '';
|
|
4104
|
-
contentType = 'text/ttl';
|
|
4105
|
-
_context.next = 15;
|
|
4106
|
-
return _solidLogic.store.fetcher.webOperation('PUT', privateKeyUrl, {
|
|
4107
|
-
data: data,
|
|
4108
|
-
contentType: contentType
|
|
4109
|
-
});
|
|
4073
|
+
_context2.next = 2;
|
|
4074
|
+
return _solidLogic.store.fetcher.load(webId);
|
|
4075
|
+
case 2:
|
|
4076
|
+
_context2.next = 4;
|
|
4077
|
+
return (0, _accessData.pubKeyUrl)(webId);
|
|
4078
|
+
case 4:
|
|
4079
|
+
publicKeyDoc = _context2.sent;
|
|
4080
|
+
_context2.prev = 5;
|
|
4081
|
+
_context2.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 _context2.abrupt("return", key === null || key === void 0 ? void 0 : key.value);
|
|
4087
|
+
case 12:
|
|
4088
|
+
_context2.prev = 12;
|
|
4089
|
+
_context2.t0 = _context2["catch"](5);
|
|
4090
|
+
return _context2.abrupt("return", undefined);
|
|
4110
4091
|
case 15:
|
|
4111
|
-
response = _context.sent;
|
|
4112
|
-
_context.next = 22;
|
|
4113
|
-
break;
|
|
4114
|
-
case 18:
|
|
4115
|
-
_context.prev = 18;
|
|
4116
|
-
_context.t1 = _context["catch"](10);
|
|
4117
|
-
debug.log('createIfNotExists doc FAILED: ' + privateKeyUrl + ': ' + _context.t1);
|
|
4118
|
-
throw _context.t1;
|
|
4119
|
-
case 22:
|
|
4120
|
-
delete _solidLogic.store.fetcher.requested[privateKeyUrl]; // delete cached 404 error
|
|
4121
|
-
return _context.abrupt("return", undefined);
|
|
4122
|
-
case 24:
|
|
4123
|
-
debug.log('createIfNotExists doc FAILED: ' + privateKeyUrl + ': ' + _context.t0);
|
|
4124
|
-
throw _context.t0;
|
|
4125
|
-
case 26:
|
|
4126
4092
|
case "end":
|
|
4127
|
-
return
|
|
4093
|
+
return _context2.stop();
|
|
4128
4094
|
}
|
|
4129
|
-
},
|
|
4095
|
+
}, _callee2, null, [[5, 12]]);
|
|
4130
4096
|
}));
|
|
4131
|
-
return
|
|
4097
|
+
return _getPublicKey.apply(this, arguments);
|
|
4132
4098
|
}
|
|
4133
4099
|
function getPrivateKey(_x2) {
|
|
4134
4100
|
return _getPrivateKey.apply(this, arguments);
|
|
4135
4101
|
}
|
|
4136
4102
|
function _getPrivateKey() {
|
|
4137
|
-
_getPrivateKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
4138
|
-
var
|
|
4139
|
-
return _regenerator["default"].wrap(function
|
|
4140
|
-
while (1) switch (
|
|
4103
|
+
_getPrivateKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(webId) {
|
|
4104
|
+
var publicKeyDoc, privateKeyDoc, publicKey, privateKey, validPublicKey, del, add, newPublicKey, keyContainer;
|
|
4105
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
4106
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
4141
4107
|
case 0:
|
|
4142
|
-
|
|
4143
|
-
|
|
4144
|
-
|
|
4145
|
-
|
|
4146
|
-
|
|
4147
|
-
|
|
4148
|
-
|
|
4149
|
-
|
|
4150
|
-
|
|
4151
|
-
|
|
4152
|
-
|
|
4153
|
-
|
|
4154
|
-
|
|
4155
|
-
|
|
4156
|
-
|
|
4157
|
-
|
|
4158
|
-
|
|
4159
|
-
|
|
4160
|
-
|
|
4161
|
-
//
|
|
4162
|
-
|
|
4163
|
-
|
|
4108
|
+
_context3.next = 2;
|
|
4109
|
+
return _solidLogic.store.fetcher.load(webId);
|
|
4110
|
+
case 2:
|
|
4111
|
+
_context3.next = 4;
|
|
4112
|
+
return (0, _accessData.pubKeyUrl)(webId);
|
|
4113
|
+
case 4:
|
|
4114
|
+
publicKeyDoc = _context3.sent;
|
|
4115
|
+
_context3.next = 7;
|
|
4116
|
+
return (0, _accessData.privKeyUrl)(webId);
|
|
4117
|
+
case 7:
|
|
4118
|
+
privateKeyDoc = _context3.sent;
|
|
4119
|
+
_context3.next = 10;
|
|
4120
|
+
return (0, _accessData.getExistingPublicKey)(webId, publicKeyDoc);
|
|
4121
|
+
case 10:
|
|
4122
|
+
publicKey = _context3.sent;
|
|
4123
|
+
_context3.next = 13;
|
|
4124
|
+
return (0, _accessData.getExistingPrivateKey)(webId, privateKeyDoc);
|
|
4125
|
+
case 13:
|
|
4126
|
+
privateKey = _context3.sent;
|
|
4127
|
+
// is publicKey valid ?
|
|
4128
|
+
validPublicKey = true;
|
|
4129
|
+
if (privateKey && publicKey !== generatePublicKey(privateKey)) {
|
|
4130
|
+
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;
|
|
4131
|
+
}
|
|
4132
|
+
|
|
4133
|
+
// create key pair or repair publicKey
|
|
4134
|
+
if (!(!privateKey || !publicKey || !validPublicKey)) {
|
|
4135
|
+
_context3.next = 34;
|
|
4164
4136
|
break;
|
|
4165
4137
|
}
|
|
4166
4138
|
del = [];
|
|
4167
|
-
add = [];
|
|
4168
|
-
if (privateKey)
|
|
4169
|
-
|
|
4139
|
+
add = []; // if (privateKey) del.push($rdf.st(webId, store.sym(CERT + 'PrivateKey'), $rdf.lit(privateKey), store.sym(privateKeyDoc)))
|
|
4140
|
+
if (privateKey) {
|
|
4141
|
+
_context3.next = 24;
|
|
4142
|
+
break;
|
|
4143
|
+
}
|
|
4144
|
+
// add = []
|
|
4170
4145
|
privateKey = generatePrivateKey();
|
|
4171
|
-
|
|
4172
|
-
|
|
4173
|
-
|
|
4174
|
-
|
|
4175
|
-
|
|
4176
|
-
|
|
4177
|
-
|
|
4178
|
-
|
|
4179
|
-
|
|
4180
|
-
|
|
4146
|
+
add = [$rdf.st(webId, _solidLogic.store.sym(_signature.CERT + 'PrivateKey'), $rdf.literal(privateKey), _solidLogic.store.sym(privateKeyDoc))];
|
|
4147
|
+
_context3.next = 24;
|
|
4148
|
+
return saveKey(privateKeyDoc, [], add, webId.uri);
|
|
4149
|
+
case 24:
|
|
4150
|
+
if (!(!publicKey || !validPublicKey)) {
|
|
4151
|
+
_context3.next = 31;
|
|
4152
|
+
break;
|
|
4153
|
+
}
|
|
4154
|
+
del = [];
|
|
4155
|
+
// delete invalid public key
|
|
4156
|
+
if (publicKey) {
|
|
4157
|
+
del = [$rdf.st(webId, _solidLogic.store.sym(_signature.CERT + 'PublicKey'), $rdf.lit(publicKey), _solidLogic.store.sym(publicKeyDoc))];
|
|
4158
|
+
debug.log(del);
|
|
4159
|
+
}
|
|
4160
|
+
// update new valid key
|
|
4161
|
+
newPublicKey = generatePublicKey(privateKey);
|
|
4162
|
+
add = [$rdf.st(webId, _solidLogic.store.sym(_signature.CERT + 'PublicKey'), $rdf.literal(newPublicKey), _solidLogic.store.sym(publicKeyDoc))];
|
|
4163
|
+
_context3.next = 31;
|
|
4164
|
+
return saveKey(publicKeyDoc, del, add);
|
|
4165
|
+
case 31:
|
|
4166
|
+
keyContainer = privateKeyDoc.substring(0, privateKeyDoc.lastIndexOf('/') + 1);
|
|
4167
|
+
_context3.next = 34;
|
|
4168
|
+
return (0, _acl.setAcl)(keyContainer, (0, _acl.keyContainerAclBody)(webId.uri));
|
|
4169
|
+
case 34:
|
|
4170
|
+
return _context3.abrupt("return", privateKey);
|
|
4171
|
+
case 35:
|
|
4181
4172
|
case "end":
|
|
4182
|
-
return
|
|
4173
|
+
return _context3.stop();
|
|
4183
4174
|
}
|
|
4184
|
-
},
|
|
4175
|
+
}, _callee3);
|
|
4185
4176
|
}));
|
|
4186
4177
|
return _getPrivateKey.apply(this, arguments);
|
|
4187
4178
|
}
|
|
4179
|
+
var deleteKey = /*#__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) {
|
|
4184
|
+
case 0:
|
|
4185
|
+
_context.next = 2;
|
|
4186
|
+
return _solidLogic.store.fetcher.load(keyDoc);
|
|
4187
|
+
case 2:
|
|
4188
|
+
keyAclDoc = _solidLogic.store.any(_solidLogic.store.sym(keyDoc), _solidLogic.store.sym('http://www.iana.org/assignments/link-relations/acl'));
|
|
4189
|
+
if (!keyAclDoc) {
|
|
4190
|
+
_context.next = 16;
|
|
4191
|
+
break;
|
|
4192
|
+
}
|
|
4193
|
+
_context.prev = 4;
|
|
4194
|
+
_context.next = 7;
|
|
4195
|
+
return _solidLogic.store.fetcher.webOperation('DELETE', keyAclDoc.value);
|
|
4196
|
+
case 7:
|
|
4197
|
+
response = _context.sent;
|
|
4198
|
+
// this may fail if webId is not an owner
|
|
4199
|
+
debug.log('delete ' + keyAclDoc.value + ' ' + response.status); // should test 404 and 2xx
|
|
4200
|
+
_context.next = 16;
|
|
4201
|
+
break;
|
|
4202
|
+
case 11:
|
|
4203
|
+
_context.prev = 11;
|
|
4204
|
+
_context.t0 = _context["catch"](4);
|
|
4205
|
+
if (!(_context.t0.response.status !== 404)) {
|
|
4206
|
+
_context.next = 15;
|
|
4207
|
+
break;
|
|
4208
|
+
}
|
|
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:
|
|
4213
|
+
case "end":
|
|
4214
|
+
return _context.stop();
|
|
4215
|
+
}
|
|
4216
|
+
}, _callee, null, [[4, 11]]);
|
|
4217
|
+
}));
|
|
4218
|
+
return function deleteKey(_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) {
|
|
4229
|
+
return _saveKey.apply(this, arguments);
|
|
4230
|
+
}
|
|
4231
|
+
function _saveKey() {
|
|
4232
|
+
_saveKey = (0, _asyncToGenerator2["default"])(function (keyDoc, del, add) {
|
|
4233
|
+
var me = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
|
|
4234
|
+
return /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
|
|
4235
|
+
var aclBody;
|
|
4236
|
+
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
4237
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
4238
|
+
case 0:
|
|
4239
|
+
_context4.next = 2;
|
|
4240
|
+
return deleteKey(keyDoc);
|
|
4241
|
+
case 2:
|
|
4242
|
+
_context4.next = 4;
|
|
4243
|
+
return _solidLogic.store.updater.updateMany(del, add);
|
|
4244
|
+
case 4:
|
|
4245
|
+
// or a promise store.updater.update ?
|
|
4246
|
+
// create READ only ACL
|
|
4247
|
+
aclBody = (0, _acl.keyAclBody)(keyDoc, me);
|
|
4248
|
+
_context4.next = 7;
|
|
4249
|
+
return (0, _acl.setAcl)(keyDoc, aclBody);
|
|
4250
|
+
case 7:
|
|
4251
|
+
case "end":
|
|
4252
|
+
return _context4.stop();
|
|
4253
|
+
}
|
|
4254
|
+
}, _callee4);
|
|
4255
|
+
})();
|
|
4256
|
+
});
|
|
4257
|
+
return _saveKey.apply(this, arguments);
|
|
4258
|
+
}
|
|
4188
4259
|
//# sourceMappingURL=keys.js.map
|
|
4189
4260
|
|
|
4190
4261
|
/***/ }),
|
|
@@ -4314,30 +4385,37 @@ function renderMessageRow(channelObject, message, fresh, options, userContext) {
|
|
|
4314
4385
|
var date = _solidLogic.store.any(message, ns.dct('created'));
|
|
4315
4386
|
var latestVersion = (0, _chatLogic.mostRecentVersion)(message);
|
|
4316
4387
|
var latestVersionCreator = _solidLogic.store.any(latestVersion, ns.foaf('maker'));
|
|
4388
|
+
|
|
4317
4389
|
// use latest content if same owner, else use original
|
|
4318
|
-
var msgId = creator === latestVersionCreator ? latestVersion : message;
|
|
4390
|
+
var msgId = creator.uri === latestVersionCreator.uri ? latestVersion : message;
|
|
4319
4391
|
var content = _solidLogic.store.any(msgId, ns.sioc('content'));
|
|
4320
4392
|
var signature = _solidLogic.store.any(msgId, $rdf.sym("".concat(_signature.SEC, "Proof")));
|
|
4321
|
-
debug.log('alain ' + (signature === null || signature === void 0 ? void 0 : signature.value));
|
|
4322
4393
|
|
|
4323
|
-
//
|
|
4394
|
+
// set message object
|
|
4324
4395
|
var msg = (0, _signature.getBlankMsg)();
|
|
4325
4396
|
msg.id = msgId.uri;
|
|
4326
4397
|
msg.created = _solidLogic.store.any(msgId, ns.dct('created')).value;
|
|
4327
4398
|
msg.content = content.value;
|
|
4328
4399
|
msg.maker = creator.uri;
|
|
4329
|
-
|
|
4330
|
-
|
|
4331
|
-
|
|
4332
|
-
|
|
4333
|
-
|
|
4334
|
-
|
|
4335
|
-
|
|
4336
|
-
|
|
4337
|
-
|
|
4338
|
-
|
|
4339
|
-
|
|
4340
|
-
|
|
4400
|
+
|
|
4401
|
+
// unsigned message
|
|
4402
|
+
if (!(signature !== null && signature !== void 0 && signature.value)) debug.warn(msgId.uri + ' is unsigned'); // TODO replace with UI (colored message ?)
|
|
4403
|
+
|
|
4404
|
+
// signed message, get public key and check signature
|
|
4405
|
+
else {
|
|
4406
|
+
(0, _keys.getPublicKey)(creator).then(function (publicKey) {
|
|
4407
|
+
debug.log(creator.uri + '\n' + msg.created + '\n' + msg.id + '\n' + publicKey);
|
|
4408
|
+
if (!publicKey) {
|
|
4409
|
+
// TODO try to recreate the publicKey
|
|
4410
|
+
// if(me.uri === creator.uri) await getPrivateKey(creator)
|
|
4411
|
+
debug.warn('message is signed but ' + creator.uri + ' is missing publicKey');
|
|
4412
|
+
}
|
|
4413
|
+
// check that publicKey is a valid hex string
|
|
4414
|
+
var regex = /[0-9A-Fa-f]{6}/g;
|
|
4415
|
+
if (!(publicKey !== null && publicKey !== void 0 && publicKey.match(regex))) debug.warn('invalid publicKey hex string\n' + creator.uri + '\n' + publicKey);
|
|
4416
|
+
// verify signature
|
|
4417
|
+
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);
|
|
4418
|
+
});
|
|
4341
4419
|
}
|
|
4342
4420
|
var originalMessage = (0, _chatLogic.originalVersion)(message);
|
|
4343
4421
|
var edited = !message.sameTerm(originalMessage);
|
|
@@ -5132,13 +5210,11 @@ Object.defineProperty(exports, "__esModule", ({
|
|
|
5132
5210
|
value: true
|
|
5133
5211
|
}));
|
|
5134
5212
|
exports.SEC = exports.CERT = void 0;
|
|
5135
|
-
exports.finishMsg = finishMsg;
|
|
5136
5213
|
exports.getBlankMsg = getBlankMsg;
|
|
5137
5214
|
exports.getMsgHash = getMsgHash;
|
|
5138
5215
|
exports.serializeMsg = serializeMsg;
|
|
5139
5216
|
exports.signMsg = signMsg;
|
|
5140
5217
|
exports.utf8Encoder = exports.utf8Decoder = void 0;
|
|
5141
|
-
exports.validateMsg = validateMsg;
|
|
5142
5218
|
exports.verifySignature = verifySignature;
|
|
5143
5219
|
var _secp256k = __webpack_require__(/*! @noble/curves/secp256k1 */ "./node_modules/@noble/curves/secp256k1.js");
|
|
5144
5220
|
var _utils = __webpack_require__(/*! @noble/hashes/utils */ "./node_modules/@noble/hashes/utils.js");
|
|
@@ -5184,19 +5260,22 @@ function getBlankMsg() {
|
|
|
5184
5260
|
id: '',
|
|
5185
5261
|
created: '',
|
|
5186
5262
|
dateDeleted: '',
|
|
5263
|
+
// TODO to remove if not used
|
|
5187
5264
|
content: '',
|
|
5188
5265
|
maker: '',
|
|
5189
|
-
sig: ''
|
|
5266
|
+
sig: '' // TODO to remove if not used
|
|
5190
5267
|
};
|
|
5191
5268
|
}
|
|
5192
|
-
|
|
5193
|
-
|
|
5194
|
-
|
|
5195
|
-
|
|
5196
|
-
message.
|
|
5197
|
-
message.
|
|
5198
|
-
|
|
5199
|
-
|
|
5269
|
+
|
|
5270
|
+
/* export function finishMsg (t: MsgTemplate, privateKey: string): Message {
|
|
5271
|
+
// to update to chat message triples
|
|
5272
|
+
const message = t as Message
|
|
5273
|
+
// message.pubkey = getPublicKey(privateKey)
|
|
5274
|
+
message.id = getMsgHash(message)
|
|
5275
|
+
message.sig = signMsg(message, privateKey)
|
|
5276
|
+
return message
|
|
5277
|
+
} */
|
|
5278
|
+
|
|
5200
5279
|
function serializeMsg(msg) {
|
|
5201
5280
|
// to update to chat messages triples
|
|
5202
5281
|
/* if (!validateMsg(msg))
|
|
@@ -5208,27 +5287,29 @@ function getMsgHash(message) {
|
|
|
5208
5287
|
var msgHash = (0, _sha.sha256)(utf8Encoder.encode(serializeMsg(message)));
|
|
5209
5288
|
return (0, _utils.bytesToHex)(msgHash);
|
|
5210
5289
|
}
|
|
5211
|
-
|
|
5212
|
-
|
|
5213
|
-
|
|
5214
|
-
function validateMsg(message) {
|
|
5215
|
-
|
|
5290
|
+
|
|
5291
|
+
// const isRecord = (obj: unknown): obj is Record<string, unknown> => obj instanceof Object
|
|
5292
|
+
|
|
5293
|
+
/* export function validateMsg<T> (message: T): message is T & UnsignedMsg {
|
|
5294
|
+
if (!isRecord(message)) return false
|
|
5216
5295
|
if (typeof message.kind !== 'number') return false
|
|
5217
5296
|
if (typeof message.content !== 'string') return false
|
|
5218
5297
|
if (typeof message.created_at !== 'number') return false
|
|
5219
5298
|
if (typeof message.pubkey !== 'string') return false
|
|
5220
5299
|
if (!message.pubkey.match(/^[a-f0-9]{64}$/)) return false
|
|
5221
|
-
|
|
5300
|
+
|
|
5301
|
+
if (!Array.isArray(message.tags)) return false
|
|
5222
5302
|
for (let i = 0; i < message.tags.length; i++) {
|
|
5223
5303
|
let tag = message.tags[i]
|
|
5224
5304
|
if (!Array.isArray(tag)) return false
|
|
5225
5305
|
for (let j = 0; j < tag.length; j++) {
|
|
5226
5306
|
if (typeof tag[j] === 'object') return false
|
|
5227
5307
|
}
|
|
5228
|
-
}
|
|
5308
|
+
}
|
|
5309
|
+
|
|
5310
|
+
return true
|
|
5311
|
+
} */
|
|
5229
5312
|
|
|
5230
|
-
return true;
|
|
5231
|
-
}
|
|
5232
5313
|
function verifySignature(sig, message, pubKey) {
|
|
5233
5314
|
return _secp256k.schnorr.verify(sig, getMsgHash(message), pubKey);
|
|
5234
5315
|
}
|
|
@@ -13157,6 +13238,345 @@ function predParentOf(node) {
|
|
|
13157
13238
|
|
|
13158
13239
|
/***/ }),
|
|
13159
13240
|
|
|
13241
|
+
/***/ "./lib/utils/keyHelpers/accessData.js":
|
|
13242
|
+
/*!********************************************!*\
|
|
13243
|
+
!*** ./lib/utils/keyHelpers/accessData.js ***!
|
|
13244
|
+
\********************************************/
|
|
13245
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
13246
|
+
|
|
13247
|
+
"use strict";
|
|
13248
|
+
|
|
13249
|
+
|
|
13250
|
+
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js");
|
|
13251
|
+
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/typeof.js");
|
|
13252
|
+
Object.defineProperty(exports, "__esModule", ({
|
|
13253
|
+
value: true
|
|
13254
|
+
}));
|
|
13255
|
+
exports.getExistingPrivateKey = getExistingPrivateKey;
|
|
13256
|
+
exports.getExistingPublicKey = getExistingPublicKey;
|
|
13257
|
+
exports.getKeyIfExists = getKeyIfExists;
|
|
13258
|
+
exports.pubKeyUrl = exports.privKeyUrl = exports.getPodRoot = void 0;
|
|
13259
|
+
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"));
|
|
13260
|
+
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
|
|
13261
|
+
var debug = _interopRequireWildcard(__webpack_require__(/*! ../../debug */ "./lib/debug.js"));
|
|
13262
|
+
var _signature = __webpack_require__(/*! ../../chat/signature */ "./lib/chat/signature.js");
|
|
13263
|
+
var _solidLogic = __webpack_require__(/*! solid-logic */ "./node_modules/solid-logic/lib/index.js");
|
|
13264
|
+
var ns = _interopRequireWildcard(__webpack_require__(/*! ../../ns */ "./lib/ns.js"));
|
|
13265
|
+
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); }
|
|
13266
|
+
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; }
|
|
13267
|
+
var getPodRoot = /*#__PURE__*/function () {
|
|
13268
|
+
var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(webId) {
|
|
13269
|
+
var _podRoot;
|
|
13270
|
+
var webIdURL, storages, podRoot, path, _res$headers$get, res;
|
|
13271
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
13272
|
+
while (1) switch (_context.prev = _context.next) {
|
|
13273
|
+
case 0:
|
|
13274
|
+
webIdURL = new URL(webId.uri); // find storages in webId document
|
|
13275
|
+
_context.next = 3;
|
|
13276
|
+
return _solidLogic.store.fetcher.load(webId.uri);
|
|
13277
|
+
case 3:
|
|
13278
|
+
storages = _solidLogic.store.each(webId, ns.space('storage'), null, webId.doc());
|
|
13279
|
+
if (storages !== null && storages !== void 0 && storages.length) {
|
|
13280
|
+
_context.next = 19;
|
|
13281
|
+
break;
|
|
13282
|
+
}
|
|
13283
|
+
// find storage recursively in webId URL
|
|
13284
|
+
path = webIdURL.pathname;
|
|
13285
|
+
case 6:
|
|
13286
|
+
if (!path.length) {
|
|
13287
|
+
_context.next = 17;
|
|
13288
|
+
break;
|
|
13289
|
+
}
|
|
13290
|
+
path = path.substring(0, path.lastIndexOf('/'));
|
|
13291
|
+
podRoot = _solidLogic.store.sym(webIdURL.origin + path + '/');
|
|
13292
|
+
_context.next = 11;
|
|
13293
|
+
return _solidLogic.store.fetcher.webOperation('HEAD', podRoot.uri);
|
|
13294
|
+
case 11:
|
|
13295
|
+
res = _context.sent;
|
|
13296
|
+
if (!((_res$headers$get = res.headers.get('link')) !== null && _res$headers$get !== void 0 && _res$headers$get.includes(ns.space('Storage').value))) {
|
|
13297
|
+
_context.next = 14;
|
|
13298
|
+
break;
|
|
13299
|
+
}
|
|
13300
|
+
return _context.abrupt("break", 17);
|
|
13301
|
+
case 14:
|
|
13302
|
+
if (!path) debug.warn("Current user storage not found for\n".concat(webId));
|
|
13303
|
+
_context.next = 6;
|
|
13304
|
+
break;
|
|
13305
|
+
case 17:
|
|
13306
|
+
_context.next = 21;
|
|
13307
|
+
break;
|
|
13308
|
+
case 19:
|
|
13309
|
+
// give preference to storage in webId root
|
|
13310
|
+
podRoot = storages.find(function (storage) {
|
|
13311
|
+
return webIdURL.origin === new URL(storage.value).origin;
|
|
13312
|
+
});
|
|
13313
|
+
if (!podRoot) podRoot = storages[0];
|
|
13314
|
+
case 21:
|
|
13315
|
+
return _context.abrupt("return", (_podRoot = podRoot) === null || _podRoot === void 0 ? void 0 : _podRoot.value);
|
|
13316
|
+
case 22:
|
|
13317
|
+
case "end":
|
|
13318
|
+
return _context.stop();
|
|
13319
|
+
}
|
|
13320
|
+
}, _callee);
|
|
13321
|
+
}));
|
|
13322
|
+
return function getPodRoot(_x) {
|
|
13323
|
+
return _ref.apply(this, arguments);
|
|
13324
|
+
};
|
|
13325
|
+
}();
|
|
13326
|
+
exports.getPodRoot = getPodRoot;
|
|
13327
|
+
var pubKeyUrl = /*#__PURE__*/function () {
|
|
13328
|
+
var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(webId) {
|
|
13329
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
13330
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
13331
|
+
case 0:
|
|
13332
|
+
_context2.prev = 0;
|
|
13333
|
+
_context2.next = 3;
|
|
13334
|
+
return getPodRoot(webId);
|
|
13335
|
+
case 3:
|
|
13336
|
+
_context2.t0 = _context2.sent;
|
|
13337
|
+
return _context2.abrupt("return", _context2.t0 + 'profile/keys/publicKey.ttl');
|
|
13338
|
+
case 7:
|
|
13339
|
+
_context2.prev = 7;
|
|
13340
|
+
_context2.t1 = _context2["catch"](0);
|
|
13341
|
+
throw new Error(_context2.t1);
|
|
13342
|
+
case 10:
|
|
13343
|
+
case "end":
|
|
13344
|
+
return _context2.stop();
|
|
13345
|
+
}
|
|
13346
|
+
}, _callee2, null, [[0, 7]]);
|
|
13347
|
+
}));
|
|
13348
|
+
return function pubKeyUrl(_x2) {
|
|
13349
|
+
return _ref2.apply(this, arguments);
|
|
13350
|
+
};
|
|
13351
|
+
}();
|
|
13352
|
+
exports.pubKeyUrl = pubKeyUrl;
|
|
13353
|
+
function getExistingPublicKey(_x3, _x4) {
|
|
13354
|
+
return _getExistingPublicKey.apply(this, arguments);
|
|
13355
|
+
}
|
|
13356
|
+
function _getExistingPublicKey() {
|
|
13357
|
+
_getExistingPublicKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(webId, publicKeyUrl) {
|
|
13358
|
+
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
13359
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
13360
|
+
case 0:
|
|
13361
|
+
_context4.next = 2;
|
|
13362
|
+
return getKeyIfExists(webId, publicKeyUrl, 'PublicKey');
|
|
13363
|
+
case 2:
|
|
13364
|
+
return _context4.abrupt("return", _context4.sent);
|
|
13365
|
+
case 3:
|
|
13366
|
+
case "end":
|
|
13367
|
+
return _context4.stop();
|
|
13368
|
+
}
|
|
13369
|
+
}, _callee4);
|
|
13370
|
+
}));
|
|
13371
|
+
return _getExistingPublicKey.apply(this, arguments);
|
|
13372
|
+
}
|
|
13373
|
+
var privKeyUrl = /*#__PURE__*/function () {
|
|
13374
|
+
var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(webId) {
|
|
13375
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
13376
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
13377
|
+
case 0:
|
|
13378
|
+
_context3.prev = 0;
|
|
13379
|
+
_context3.next = 3;
|
|
13380
|
+
return getPodRoot(webId);
|
|
13381
|
+
case 3:
|
|
13382
|
+
_context3.t0 = _context3.sent;
|
|
13383
|
+
return _context3.abrupt("return", _context3.t0 + 'profile/keys/privateKey.ttl');
|
|
13384
|
+
case 7:
|
|
13385
|
+
_context3.prev = 7;
|
|
13386
|
+
_context3.t1 = _context3["catch"](0);
|
|
13387
|
+
throw new Error(_context3.t1);
|
|
13388
|
+
case 10:
|
|
13389
|
+
case "end":
|
|
13390
|
+
return _context3.stop();
|
|
13391
|
+
}
|
|
13392
|
+
}, _callee3, null, [[0, 7]]);
|
|
13393
|
+
}));
|
|
13394
|
+
return function privKeyUrl(_x5) {
|
|
13395
|
+
return _ref3.apply(this, arguments);
|
|
13396
|
+
};
|
|
13397
|
+
}();
|
|
13398
|
+
exports.privKeyUrl = privKeyUrl;
|
|
13399
|
+
function getExistingPrivateKey(_x6, _x7) {
|
|
13400
|
+
return _getExistingPrivateKey.apply(this, arguments);
|
|
13401
|
+
}
|
|
13402
|
+
function _getExistingPrivateKey() {
|
|
13403
|
+
_getExistingPrivateKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(webId, privateKeyUrl) {
|
|
13404
|
+
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
13405
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
13406
|
+
case 0:
|
|
13407
|
+
_context5.next = 2;
|
|
13408
|
+
return getKeyIfExists(webId, privateKeyUrl, 'PrivateKey');
|
|
13409
|
+
case 2:
|
|
13410
|
+
return _context5.abrupt("return", _context5.sent);
|
|
13411
|
+
case 3:
|
|
13412
|
+
case "end":
|
|
13413
|
+
return _context5.stop();
|
|
13414
|
+
}
|
|
13415
|
+
}, _callee5);
|
|
13416
|
+
}));
|
|
13417
|
+
return _getExistingPrivateKey.apply(this, arguments);
|
|
13418
|
+
}
|
|
13419
|
+
function getKeyIfExists(_x8, _x9, _x10) {
|
|
13420
|
+
return _getKeyIfExists.apply(this, arguments);
|
|
13421
|
+
}
|
|
13422
|
+
function _getKeyIfExists() {
|
|
13423
|
+
_getKeyIfExists = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(webId, keyUrl, keyType) {
|
|
13424
|
+
var key, _err$response, data, contentType, response;
|
|
13425
|
+
return _regenerator["default"].wrap(function _callee6$(_context6) {
|
|
13426
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
13427
|
+
case 0:
|
|
13428
|
+
_context6.prev = 0;
|
|
13429
|
+
_context6.next = 3;
|
|
13430
|
+
return _solidLogic.store.fetcher.load(keyUrl);
|
|
13431
|
+
case 3:
|
|
13432
|
+
key = _solidLogic.store.any(webId, _solidLogic.store.sym(_signature.CERT + keyType));
|
|
13433
|
+
return _context6.abrupt("return", key === null || key === void 0 ? void 0 : key.value);
|
|
13434
|
+
case 7:
|
|
13435
|
+
_context6.prev = 7;
|
|
13436
|
+
_context6.t0 = _context6["catch"](0);
|
|
13437
|
+
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)) {
|
|
13438
|
+
_context6.next = 24;
|
|
13439
|
+
break;
|
|
13440
|
+
}
|
|
13441
|
+
_context6.prev = 10;
|
|
13442
|
+
// create resource
|
|
13443
|
+
data = '';
|
|
13444
|
+
contentType = 'text/turtle';
|
|
13445
|
+
_context6.next = 15;
|
|
13446
|
+
return _solidLogic.store.fetcher.webOperation('PUT', keyUrl, {
|
|
13447
|
+
data: data,
|
|
13448
|
+
contentType: contentType
|
|
13449
|
+
});
|
|
13450
|
+
case 15:
|
|
13451
|
+
response = _context6.sent;
|
|
13452
|
+
_context6.next = 22;
|
|
13453
|
+
break;
|
|
13454
|
+
case 18:
|
|
13455
|
+
_context6.prev = 18;
|
|
13456
|
+
_context6.t1 = _context6["catch"](10);
|
|
13457
|
+
debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + _context6.t1);
|
|
13458
|
+
throw _context6.t1;
|
|
13459
|
+
case 22:
|
|
13460
|
+
delete _solidLogic.store.fetcher.requested[keyUrl]; // delete cached 404 error
|
|
13461
|
+
return _context6.abrupt("return", undefined);
|
|
13462
|
+
case 24:
|
|
13463
|
+
debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + _context6.t0);
|
|
13464
|
+
throw _context6.t0;
|
|
13465
|
+
case 26:
|
|
13466
|
+
case "end":
|
|
13467
|
+
return _context6.stop();
|
|
13468
|
+
}
|
|
13469
|
+
}, _callee6, null, [[0, 7], [10, 18]]);
|
|
13470
|
+
}));
|
|
13471
|
+
return _getKeyIfExists.apply(this, arguments);
|
|
13472
|
+
}
|
|
13473
|
+
//# sourceMappingURL=accessData.js.map
|
|
13474
|
+
|
|
13475
|
+
/***/ }),
|
|
13476
|
+
|
|
13477
|
+
/***/ "./lib/utils/keyHelpers/acl.js":
|
|
13478
|
+
/*!*************************************!*\
|
|
13479
|
+
!*** ./lib/utils/keyHelpers/acl.js ***!
|
|
13480
|
+
\*************************************/
|
|
13481
|
+
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
13482
|
+
|
|
13483
|
+
"use strict";
|
|
13484
|
+
|
|
13485
|
+
|
|
13486
|
+
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "./node_modules/@babel/runtime/helpers/interopRequireDefault.js");
|
|
13487
|
+
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "./node_modules/@babel/runtime/helpers/typeof.js");
|
|
13488
|
+
Object.defineProperty(exports, "__esModule", ({
|
|
13489
|
+
value: true
|
|
13490
|
+
}));
|
|
13491
|
+
exports.keyContainerAclBody = exports.keyAclBody = void 0;
|
|
13492
|
+
exports.setAcl = setAcl;
|
|
13493
|
+
var _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ "./node_modules/@babel/runtime/regenerator/index.js"));
|
|
13494
|
+
var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ "./node_modules/@babel/runtime/helpers/asyncToGenerator.js"));
|
|
13495
|
+
var debug = _interopRequireWildcard(__webpack_require__(/*! ../../debug */ "./lib/debug.js"));
|
|
13496
|
+
var _solidLogic = __webpack_require__(/*! solid-logic */ "./node_modules/solid-logic/lib/index.js");
|
|
13497
|
+
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); }
|
|
13498
|
+
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; }
|
|
13499
|
+
/**
|
|
13500
|
+
* set ACL
|
|
13501
|
+
* @param keyDoc
|
|
13502
|
+
* @param aclBody
|
|
13503
|
+
*/
|
|
13504
|
+
function setAcl(_x, _x2) {
|
|
13505
|
+
return _setAcl.apply(this, arguments);
|
|
13506
|
+
}
|
|
13507
|
+
/**
|
|
13508
|
+
* key container ACL
|
|
13509
|
+
* @param me
|
|
13510
|
+
* @returns aclBody
|
|
13511
|
+
*/
|
|
13512
|
+
function _setAcl() {
|
|
13513
|
+
_setAcl = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(keyDoc, aclBody) {
|
|
13514
|
+
var keyAclDoc, _err$response;
|
|
13515
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
13516
|
+
while (1) switch (_context.prev = _context.next) {
|
|
13517
|
+
case 0:
|
|
13518
|
+
_context.next = 2;
|
|
13519
|
+
return _solidLogic.store.fetcher.load(keyDoc);
|
|
13520
|
+
case 2:
|
|
13521
|
+
// FIXME: check the Why value on this quad:
|
|
13522
|
+
debug.log(_solidLogic.store.statementsMatching(_solidLogic.store.sym(keyDoc), _solidLogic.store.sym('http://www.iana.org/assignments/link-relations/acl')));
|
|
13523
|
+
keyAclDoc = _solidLogic.store.any(_solidLogic.store.sym(keyDoc), _solidLogic.store.sym('http://www.iana.org/assignments/link-relations/acl'));
|
|
13524
|
+
if (keyAclDoc) {
|
|
13525
|
+
_context.next = 6;
|
|
13526
|
+
break;
|
|
13527
|
+
}
|
|
13528
|
+
throw new Error('Key ACL doc not found!');
|
|
13529
|
+
case 6:
|
|
13530
|
+
_context.prev = 6;
|
|
13531
|
+
_context.next = 9;
|
|
13532
|
+
return _solidLogic.store.fetcher.webOperation('PUT', keyAclDoc.value, {
|
|
13533
|
+
data: aclBody,
|
|
13534
|
+
contentType: 'text/turtle'
|
|
13535
|
+
});
|
|
13536
|
+
case 9:
|
|
13537
|
+
_context.next = 16;
|
|
13538
|
+
break;
|
|
13539
|
+
case 11:
|
|
13540
|
+
_context.prev = 11;
|
|
13541
|
+
_context.t0 = _context["catch"](6);
|
|
13542
|
+
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)) {
|
|
13543
|
+
_context.next = 15;
|
|
13544
|
+
break;
|
|
13545
|
+
}
|
|
13546
|
+
throw new Error(_context.t0);
|
|
13547
|
+
case 15:
|
|
13548
|
+
debug.log('delete ' + keyAclDoc.value + ' ' + _context.t0.response.status); // should test 404 and 2xx
|
|
13549
|
+
case 16:
|
|
13550
|
+
case "end":
|
|
13551
|
+
return _context.stop();
|
|
13552
|
+
}
|
|
13553
|
+
}, _callee, null, [[6, 11]]);
|
|
13554
|
+
}));
|
|
13555
|
+
return _setAcl.apply(this, arguments);
|
|
13556
|
+
}
|
|
13557
|
+
var keyContainerAclBody = function keyContainerAclBody(me) {
|
|
13558
|
+
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");
|
|
13559
|
+
return aclBody;
|
|
13560
|
+
};
|
|
13561
|
+
|
|
13562
|
+
/**
|
|
13563
|
+
* Read only ACL
|
|
13564
|
+
* @param keyDoc
|
|
13565
|
+
* @param me
|
|
13566
|
+
* @returns aclBody
|
|
13567
|
+
*/
|
|
13568
|
+
exports.keyContainerAclBody = keyContainerAclBody;
|
|
13569
|
+
var keyAclBody = function keyAclBody(keyDoc, me) {
|
|
13570
|
+
var keyAgent = 'acl:agentClass foaf:Agent'; // publicKey
|
|
13571
|
+
if (me !== null && me !== void 0 && me.length) keyAgent = "acl:agent <".concat(me, ">"); // privateKey
|
|
13572
|
+
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");
|
|
13573
|
+
return aclBody;
|
|
13574
|
+
};
|
|
13575
|
+
exports.keyAclBody = keyAclBody;
|
|
13576
|
+
//# sourceMappingURL=acl.js.map
|
|
13577
|
+
|
|
13578
|
+
/***/ }),
|
|
13579
|
+
|
|
13160
13580
|
/***/ "./lib/utils/label.js":
|
|
13161
13581
|
/*!****************************!*\
|
|
13162
13582
|
!*** ./lib/utils/label.js ***!
|
|
@@ -13285,8 +13705,8 @@ Object.defineProperty(exports, "__esModule", ({
|
|
|
13285
13705
|
}));
|
|
13286
13706
|
exports.versionInfo = void 0;
|
|
13287
13707
|
var versionInfo = {
|
|
13288
|
-
buildTime: '2023-
|
|
13289
|
-
commit: '
|
|
13708
|
+
buildTime: '2023-05-17T23:41:53Z',
|
|
13709
|
+
commit: '226c29c43189fb84fa6f3dc8a3bb81b871ba3ad9',
|
|
13290
13710
|
npmInfo: {
|
|
13291
13711
|
'solid-ui': '2.4.27',
|
|
13292
13712
|
npm: '8.19.4',
|
|
@@ -61972,14 +62392,17 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
61972
62392
|
/* harmony export */ "createRemoteJWKSet": () => (/* binding */ createRemoteJWKSet)
|
|
61973
62393
|
/* harmony export */ });
|
|
61974
62394
|
/* 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");
|
|
61975
|
-
/* harmony import */ var
|
|
61976
|
-
/* harmony import */ var
|
|
61977
|
-
/* harmony import */ var _local_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./local.js */ "./node_modules/jose/dist/browser/jwks/local.js");
|
|
61978
|
-
|
|
62395
|
+
/* harmony import */ var _util_errors_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/errors.js */ "./node_modules/jose/dist/browser/util/errors.js");
|
|
62396
|
+
/* harmony import */ var _local_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./local.js */ "./node_modules/jose/dist/browser/jwks/local.js");
|
|
61979
62397
|
|
|
61980
62398
|
|
|
61981
62399
|
|
|
61982
|
-
|
|
62400
|
+
function isCloudflareWorkers() {
|
|
62401
|
+
return (typeof WebSocketPair !== 'undefined' ||
|
|
62402
|
+
(typeof navigator !== 'undefined' && navigator.userAgent === 'Cloudflare-Workers') ||
|
|
62403
|
+
(typeof EdgeRuntime !== 'undefined' && EdgeRuntime === 'vercel'));
|
|
62404
|
+
}
|
|
62405
|
+
class RemoteJWKSet extends _local_js__WEBPACK_IMPORTED_MODULE_2__.LocalJWKSet {
|
|
61983
62406
|
constructor(url, options) {
|
|
61984
62407
|
super({ keys: [] });
|
|
61985
62408
|
this._jwks = undefined;
|
|
@@ -62012,7 +62435,7 @@ class RemoteJWKSet extends _local_js__WEBPACK_IMPORTED_MODULE_3__.LocalJWKSet {
|
|
|
62012
62435
|
return await super.getKey(protectedHeader, token);
|
|
62013
62436
|
}
|
|
62014
62437
|
catch (err) {
|
|
62015
|
-
if (err instanceof
|
|
62438
|
+
if (err instanceof _util_errors_js__WEBPACK_IMPORTED_MODULE_1__.JWKSNoMatchingKey) {
|
|
62016
62439
|
if (this.coolingDown() === false) {
|
|
62017
62440
|
await this.reload();
|
|
62018
62441
|
return super.getKey(protectedHeader, token);
|
|
@@ -62022,13 +62445,13 @@ class RemoteJWKSet extends _local_js__WEBPACK_IMPORTED_MODULE_3__.LocalJWKSet {
|
|
|
62022
62445
|
}
|
|
62023
62446
|
}
|
|
62024
62447
|
async reload() {
|
|
62025
|
-
if (this._pendingFetch &&
|
|
62448
|
+
if (this._pendingFetch && isCloudflareWorkers()) {
|
|
62026
62449
|
this._pendingFetch = undefined;
|
|
62027
62450
|
}
|
|
62028
62451
|
this._pendingFetch || (this._pendingFetch = (0,_runtime_fetch_jwks_js__WEBPACK_IMPORTED_MODULE_0__["default"])(this._url, this._timeoutDuration, this._options)
|
|
62029
62452
|
.then((json) => {
|
|
62030
|
-
if (!(0,
|
|
62031
|
-
throw new
|
|
62453
|
+
if (!(0,_local_js__WEBPACK_IMPORTED_MODULE_2__.isJWKSLike)(json)) {
|
|
62454
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_1__.JWKSInvalid('JSON Web Key Set malformed');
|
|
62032
62455
|
}
|
|
62033
62456
|
this._jwks = { keys: json.keys };
|
|
62034
62457
|
this._jwksTimestamp = Date.now();
|
|
@@ -63216,8 +63639,6 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
63216
63639
|
/* harmony export */ "checkEncCryptoKey": () => (/* binding */ checkEncCryptoKey),
|
|
63217
63640
|
/* harmony export */ "checkSigCryptoKey": () => (/* binding */ checkSigCryptoKey)
|
|
63218
63641
|
/* harmony export */ });
|
|
63219
|
-
/* harmony import */ var _runtime_env_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../runtime/env.js */ "./node_modules/jose/dist/browser/runtime/env.js");
|
|
63220
|
-
|
|
63221
63642
|
function unusable(name, prop = 'algorithm.name') {
|
|
63222
63643
|
return new TypeError(`CryptoKey does not support this operation, its ${prop} must be ${name}`);
|
|
63223
63644
|
}
|
|
@@ -63292,11 +63713,6 @@ function checkSigCryptoKey(key, alg, ...usages) {
|
|
|
63292
63713
|
}
|
|
63293
63714
|
case 'EdDSA': {
|
|
63294
63715
|
if (key.algorithm.name !== 'Ed25519' && key.algorithm.name !== 'Ed448') {
|
|
63295
|
-
if ((0,_runtime_env_js__WEBPACK_IMPORTED_MODULE_0__.isCloudflareWorkers)()) {
|
|
63296
|
-
if (isAlgorithm(key.algorithm, 'NODE-ED25519'))
|
|
63297
|
-
break;
|
|
63298
|
-
throw unusable('Ed25519, Ed448, or NODE-ED25519');
|
|
63299
|
-
}
|
|
63300
63716
|
throw unusable('Ed25519 or Ed448');
|
|
63301
63717
|
}
|
|
63302
63718
|
break;
|
|
@@ -64127,14 +64543,12 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
64127
64543
|
/* harmony export */ "toPKCS8": () => (/* binding */ toPKCS8),
|
|
64128
64544
|
/* harmony export */ "toSPKI": () => (/* binding */ toSPKI)
|
|
64129
64545
|
/* harmony export */ });
|
|
64130
|
-
/* harmony import */ var
|
|
64131
|
-
/* harmony import */ var
|
|
64132
|
-
/* harmony import */ var
|
|
64133
|
-
/* harmony import */ var
|
|
64134
|
-
/* harmony import */ var
|
|
64135
|
-
/* harmony import */ var
|
|
64136
|
-
/* 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");
|
|
64137
|
-
|
|
64546
|
+
/* harmony import */ var _webcrypto_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./webcrypto.js */ "./node_modules/jose/dist/browser/runtime/webcrypto.js");
|
|
64547
|
+
/* 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");
|
|
64548
|
+
/* harmony import */ var _base64url_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./base64url.js */ "./node_modules/jose/dist/browser/runtime/base64url.js");
|
|
64549
|
+
/* 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");
|
|
64550
|
+
/* harmony import */ var _util_errors_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/errors.js */ "./node_modules/jose/dist/browser/util/errors.js");
|
|
64551
|
+
/* 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");
|
|
64138
64552
|
|
|
64139
64553
|
|
|
64140
64554
|
|
|
@@ -64142,8 +64556,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
64142
64556
|
|
|
64143
64557
|
|
|
64144
64558
|
const genericExport = async (keyType, keyFormat, key) => {
|
|
64145
|
-
if (!(0,
|
|
64146
|
-
throw new TypeError((0,
|
|
64559
|
+
if (!(0,_webcrypto_js__WEBPACK_IMPORTED_MODULE_0__.isCryptoKey)(key)) {
|
|
64560
|
+
throw new TypeError((0,_lib_invalid_key_input_js__WEBPACK_IMPORTED_MODULE_1__["default"])(key, ..._is_key_like_js__WEBPACK_IMPORTED_MODULE_5__.types));
|
|
64147
64561
|
}
|
|
64148
64562
|
if (!key.extractable) {
|
|
64149
64563
|
throw new TypeError('CryptoKey is not extractable');
|
|
@@ -64151,7 +64565,7 @@ const genericExport = async (keyType, keyFormat, key) => {
|
|
|
64151
64565
|
if (key.type !== keyType) {
|
|
64152
64566
|
throw new TypeError(`key is not a ${keyType} key`);
|
|
64153
64567
|
}
|
|
64154
|
-
return (0,
|
|
64568
|
+
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`);
|
|
64155
64569
|
};
|
|
64156
64570
|
const toSPKI = (key) => {
|
|
64157
64571
|
return genericExport('public', 'spki', key);
|
|
@@ -64189,11 +64603,11 @@ const getNamedCurve = (keyData) => {
|
|
|
64189
64603
|
case findOid(keyData, [0x2b, 0x65, 0x71]):
|
|
64190
64604
|
return 'Ed448';
|
|
64191
64605
|
default:
|
|
64192
|
-
throw new
|
|
64606
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_4__.JOSENotSupported('Invalid or unsupported EC Key Curve or OKP Key Sub Type');
|
|
64193
64607
|
}
|
|
64194
64608
|
};
|
|
64195
64609
|
const genericImport = async (replace, keyFormat, pem, alg, options) => {
|
|
64196
|
-
var _a
|
|
64610
|
+
var _a;
|
|
64197
64611
|
let algorithm;
|
|
64198
64612
|
let keyUsages;
|
|
64199
64613
|
const keyData = new Uint8Array(atob(pem.replace(replace, ''))
|
|
@@ -64249,20 +64663,9 @@ const genericImport = async (replace, keyFormat, pem, alg, options) => {
|
|
|
64249
64663
|
keyUsages = isPublic ? ['verify'] : ['sign'];
|
|
64250
64664
|
break;
|
|
64251
64665
|
default:
|
|
64252
|
-
throw new
|
|
64253
|
-
}
|
|
64254
|
-
try {
|
|
64255
|
-
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);
|
|
64256
|
-
}
|
|
64257
|
-
catch (err) {
|
|
64258
|
-
if (algorithm.name === 'Ed25519' &&
|
|
64259
|
-
(err === null || err === void 0 ? void 0 : err.name) === 'NotSupportedError' &&
|
|
64260
|
-
(0,_env_js__WEBPACK_IMPORTED_MODULE_0__.isCloudflareWorkers)()) {
|
|
64261
|
-
algorithm = { name: 'NODE-ED25519', namedCurve: 'NODE-ED25519' };
|
|
64262
|
-
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);
|
|
64263
|
-
}
|
|
64264
|
-
throw err;
|
|
64666
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_4__.JOSENotSupported('Invalid or unsupported "alg" (Algorithm) value');
|
|
64265
64667
|
}
|
|
64668
|
+
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);
|
|
64266
64669
|
};
|
|
64267
64670
|
const fromPKCS8 = (pem, alg, options) => {
|
|
64268
64671
|
return genericImport(/(?:-----(?:BEGIN|END) PRIVATE KEY-----|\s)/g, 'pkcs8', pem, alg, options);
|
|
@@ -64331,12 +64734,12 @@ function parseElement(bytes) {
|
|
|
64331
64734
|
}
|
|
64332
64735
|
function spkiFromX509(buf) {
|
|
64333
64736
|
const tbsCertificate = getElement(getElement(parseElement(buf).contents)[0].contents);
|
|
64334
|
-
return (0,
|
|
64737
|
+
return (0,_base64url_js__WEBPACK_IMPORTED_MODULE_2__.encodeBase64)(tbsCertificate[tbsCertificate[0].raw[0] === 0xa0 ? 6 : 5].raw);
|
|
64335
64738
|
}
|
|
64336
64739
|
function getSPKI(x509) {
|
|
64337
64740
|
const pem = x509.replace(/(?:-----(?:BEGIN|END) CERTIFICATE-----|\s)/g, '');
|
|
64338
|
-
const raw = (0,
|
|
64339
|
-
return (0,
|
|
64741
|
+
const raw = (0,_base64url_js__WEBPACK_IMPORTED_MODULE_2__.decodeBase64)(pem);
|
|
64742
|
+
return (0,_lib_format_pem_js__WEBPACK_IMPORTED_MODULE_3__["default"])(spkiFromX509(raw), 'PUBLIC KEY');
|
|
64340
64743
|
}
|
|
64341
64744
|
const fromX509 = (pem, alg, options) => {
|
|
64342
64745
|
let spki;
|
|
@@ -64764,26 +65167,6 @@ const encrypt = async (enc, plaintext, cek, iv, aad) => {
|
|
|
64764
65167
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (encrypt);
|
|
64765
65168
|
|
|
64766
65169
|
|
|
64767
|
-
/***/ }),
|
|
64768
|
-
|
|
64769
|
-
/***/ "./node_modules/jose/dist/browser/runtime/env.js":
|
|
64770
|
-
/*!*******************************************************!*\
|
|
64771
|
-
!*** ./node_modules/jose/dist/browser/runtime/env.js ***!
|
|
64772
|
-
\*******************************************************/
|
|
64773
|
-
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
64774
|
-
|
|
64775
|
-
"use strict";
|
|
64776
|
-
__webpack_require__.r(__webpack_exports__);
|
|
64777
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
64778
|
-
/* harmony export */ "isCloudflareWorkers": () => (/* binding */ isCloudflareWorkers)
|
|
64779
|
-
/* harmony export */ });
|
|
64780
|
-
function isCloudflareWorkers() {
|
|
64781
|
-
return (typeof WebSocketPair !== 'undefined' ||
|
|
64782
|
-
(typeof navigator !== 'undefined' && navigator.userAgent === 'Cloudflare-Workers') ||
|
|
64783
|
-
(typeof EdgeRuntime !== 'undefined' && EdgeRuntime === 'vercel'));
|
|
64784
|
-
}
|
|
64785
|
-
|
|
64786
|
-
|
|
64787
65170
|
/***/ }),
|
|
64788
65171
|
|
|
64789
65172
|
/***/ "./node_modules/jose/dist/browser/runtime/fetch_jwks.js":
|
|
@@ -64848,11 +65231,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
64848
65231
|
/* harmony export */ "generateKeyPair": () => (/* binding */ generateKeyPair),
|
|
64849
65232
|
/* harmony export */ "generateSecret": () => (/* binding */ generateSecret)
|
|
64850
65233
|
/* harmony export */ });
|
|
64851
|
-
/* harmony import */ var
|
|
64852
|
-
/* harmony import */ var
|
|
64853
|
-
/* harmony import */ var
|
|
64854
|
-
/* harmony import */ var _random_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./random.js */ "./node_modules/jose/dist/browser/runtime/random.js");
|
|
64855
|
-
|
|
65234
|
+
/* harmony import */ var _webcrypto_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./webcrypto.js */ "./node_modules/jose/dist/browser/runtime/webcrypto.js");
|
|
65235
|
+
/* harmony import */ var _util_errors_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/errors.js */ "./node_modules/jose/dist/browser/util/errors.js");
|
|
65236
|
+
/* harmony import */ var _random_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./random.js */ "./node_modules/jose/dist/browser/runtime/random.js");
|
|
64856
65237
|
|
|
64857
65238
|
|
|
64858
65239
|
|
|
@@ -64873,7 +65254,7 @@ async function generateSecret(alg, options) {
|
|
|
64873
65254
|
case 'A192CBC-HS384':
|
|
64874
65255
|
case 'A256CBC-HS512':
|
|
64875
65256
|
length = parseInt(alg.slice(-3), 10);
|
|
64876
|
-
return (0,
|
|
65257
|
+
return (0,_random_js__WEBPACK_IMPORTED_MODULE_2__["default"])(new Uint8Array(length >> 3));
|
|
64877
65258
|
case 'A128KW':
|
|
64878
65259
|
case 'A192KW':
|
|
64879
65260
|
case 'A256KW':
|
|
@@ -64892,20 +65273,20 @@ async function generateSecret(alg, options) {
|
|
|
64892
65273
|
keyUsages = ['encrypt', 'decrypt'];
|
|
64893
65274
|
break;
|
|
64894
65275
|
default:
|
|
64895
|
-
throw new
|
|
65276
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_1__.JOSENotSupported('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
|
|
64896
65277
|
}
|
|
64897
|
-
return
|
|
65278
|
+
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);
|
|
64898
65279
|
}
|
|
64899
65280
|
function getModulusLengthOption(options) {
|
|
64900
65281
|
var _a;
|
|
64901
65282
|
const modulusLength = (_a = options === null || options === void 0 ? void 0 : options.modulusLength) !== null && _a !== void 0 ? _a : 2048;
|
|
64902
65283
|
if (typeof modulusLength !== 'number' || modulusLength < 2048) {
|
|
64903
|
-
throw new
|
|
65284
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_1__.JOSENotSupported('Invalid or unsupported modulusLength option provided, 2048 bits or larger keys must be used');
|
|
64904
65285
|
}
|
|
64905
65286
|
return modulusLength;
|
|
64906
65287
|
}
|
|
64907
65288
|
async function generateKeyPair(alg, options) {
|
|
64908
|
-
var _a, _b, _c
|
|
65289
|
+
var _a, _b, _c;
|
|
64909
65290
|
let algorithm;
|
|
64910
65291
|
let keyUsages;
|
|
64911
65292
|
switch (alg) {
|
|
@@ -64964,7 +65345,7 @@ async function generateKeyPair(alg, options) {
|
|
|
64964
65345
|
algorithm = { name: crv };
|
|
64965
65346
|
break;
|
|
64966
65347
|
default:
|
|
64967
|
-
throw new
|
|
65348
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_1__.JOSENotSupported('Invalid or unsupported crv option provided');
|
|
64968
65349
|
}
|
|
64969
65350
|
break;
|
|
64970
65351
|
case 'ECDH-ES':
|
|
@@ -64985,25 +65366,14 @@ async function generateKeyPair(alg, options) {
|
|
|
64985
65366
|
algorithm = { name: crv };
|
|
64986
65367
|
break;
|
|
64987
65368
|
default:
|
|
64988
|
-
throw new
|
|
65369
|
+
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');
|
|
64989
65370
|
}
|
|
64990
65371
|
break;
|
|
64991
65372
|
}
|
|
64992
65373
|
default:
|
|
64993
|
-
throw new
|
|
64994
|
-
}
|
|
64995
|
-
try {
|
|
64996
|
-
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));
|
|
64997
|
-
}
|
|
64998
|
-
catch (err) {
|
|
64999
|
-
if (algorithm.name === 'Ed25519' &&
|
|
65000
|
-
(err === null || err === void 0 ? void 0 : err.name) === 'NotSupportedError' &&
|
|
65001
|
-
(0,_env_js__WEBPACK_IMPORTED_MODULE_0__.isCloudflareWorkers)()) {
|
|
65002
|
-
algorithm = { name: 'NODE-ED25519', namedCurve: 'NODE-ED25519' };
|
|
65003
|
-
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));
|
|
65004
|
-
}
|
|
65005
|
-
throw err;
|
|
65374
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_1__.JOSENotSupported('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
|
|
65006
65375
|
}
|
|
65376
|
+
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));
|
|
65007
65377
|
}
|
|
65008
65378
|
|
|
65009
65379
|
|
|
@@ -65078,11 +65448,9 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
65078
65448
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
65079
65449
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
65080
65450
|
/* harmony export */ });
|
|
65081
|
-
/* harmony import */ var
|
|
65082
|
-
/* harmony import */ var
|
|
65083
|
-
/* harmony import */ var
|
|
65084
|
-
/* harmony import */ var _base64url_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./base64url.js */ "./node_modules/jose/dist/browser/runtime/base64url.js");
|
|
65085
|
-
|
|
65451
|
+
/* harmony import */ var _webcrypto_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./webcrypto.js */ "./node_modules/jose/dist/browser/runtime/webcrypto.js");
|
|
65452
|
+
/* harmony import */ var _util_errors_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/errors.js */ "./node_modules/jose/dist/browser/util/errors.js");
|
|
65453
|
+
/* harmony import */ var _base64url_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./base64url.js */ "./node_modules/jose/dist/browser/runtime/base64url.js");
|
|
65086
65454
|
|
|
65087
65455
|
|
|
65088
65456
|
|
|
@@ -65101,7 +65469,7 @@ function subtleMapping(jwk) {
|
|
|
65101
65469
|
case 'A128CBC-HS256':
|
|
65102
65470
|
case 'A192CBC-HS384':
|
|
65103
65471
|
case 'A256CBC-HS512':
|
|
65104
|
-
throw new
|
|
65472
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_1__.JOSENotSupported(`${jwk.alg} keys cannot be imported as CryptoKey instances`);
|
|
65105
65473
|
case 'A128GCM':
|
|
65106
65474
|
case 'A192GCM':
|
|
65107
65475
|
case 'A256GCM':
|
|
@@ -65124,7 +65492,7 @@ function subtleMapping(jwk) {
|
|
|
65124
65492
|
keyUsages = ['deriveBits'];
|
|
65125
65493
|
break;
|
|
65126
65494
|
default:
|
|
65127
|
-
throw new
|
|
65495
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_1__.JOSENotSupported('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
|
|
65128
65496
|
}
|
|
65129
65497
|
break;
|
|
65130
65498
|
}
|
|
@@ -65153,7 +65521,7 @@ function subtleMapping(jwk) {
|
|
|
65153
65521
|
keyUsages = jwk.d ? ['decrypt', 'unwrapKey'] : ['encrypt', 'wrapKey'];
|
|
65154
65522
|
break;
|
|
65155
65523
|
default:
|
|
65156
|
-
throw new
|
|
65524
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_1__.JOSENotSupported('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
|
|
65157
65525
|
}
|
|
65158
65526
|
break;
|
|
65159
65527
|
}
|
|
@@ -65179,7 +65547,7 @@ function subtleMapping(jwk) {
|
|
|
65179
65547
|
keyUsages = jwk.d ? ['deriveBits'] : [];
|
|
65180
65548
|
break;
|
|
65181
65549
|
default:
|
|
65182
|
-
throw new
|
|
65550
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_1__.JOSENotSupported('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
|
|
65183
65551
|
}
|
|
65184
65552
|
break;
|
|
65185
65553
|
}
|
|
@@ -65197,12 +65565,12 @@ function subtleMapping(jwk) {
|
|
|
65197
65565
|
keyUsages = jwk.d ? ['deriveBits'] : [];
|
|
65198
65566
|
break;
|
|
65199
65567
|
default:
|
|
65200
|
-
throw new
|
|
65568
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_1__.JOSENotSupported('Invalid or unsupported JWK "alg" (Algorithm) Parameter value');
|
|
65201
65569
|
}
|
|
65202
65570
|
break;
|
|
65203
65571
|
}
|
|
65204
65572
|
default:
|
|
65205
|
-
throw new
|
|
65573
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_1__.JOSENotSupported('Invalid or unsupported JWK "kty" (Key Type) Parameter value');
|
|
65206
65574
|
}
|
|
65207
65575
|
return { algorithm, keyUsages };
|
|
65208
65576
|
}
|
|
@@ -65218,23 +65586,12 @@ const parse = async (jwk) => {
|
|
|
65218
65586
|
(_b = jwk.key_ops) !== null && _b !== void 0 ? _b : keyUsages,
|
|
65219
65587
|
];
|
|
65220
65588
|
if (algorithm.name === 'PBKDF2') {
|
|
65221
|
-
return
|
|
65589
|
+
return _webcrypto_js__WEBPACK_IMPORTED_MODULE_0__["default"].subtle.importKey('raw', (0,_base64url_js__WEBPACK_IMPORTED_MODULE_2__.decode)(jwk.k), ...rest);
|
|
65222
65590
|
}
|
|
65223
65591
|
const keyData = { ...jwk };
|
|
65224
65592
|
delete keyData.alg;
|
|
65225
65593
|
delete keyData.use;
|
|
65226
|
-
|
|
65227
|
-
return await _webcrypto_js__WEBPACK_IMPORTED_MODULE_1__["default"].subtle.importKey('jwk', keyData, ...rest);
|
|
65228
|
-
}
|
|
65229
|
-
catch (err) {
|
|
65230
|
-
if (algorithm.name === 'Ed25519' &&
|
|
65231
|
-
(err === null || err === void 0 ? void 0 : err.name) === 'NotSupportedError' &&
|
|
65232
|
-
(0,_env_js__WEBPACK_IMPORTED_MODULE_0__.isCloudflareWorkers)()) {
|
|
65233
|
-
rest[0] = { name: 'NODE-ED25519', namedCurve: 'NODE-ED25519' };
|
|
65234
|
-
return await _webcrypto_js__WEBPACK_IMPORTED_MODULE_1__["default"].subtle.importKey('jwk', keyData, ...rest);
|
|
65235
|
-
}
|
|
65236
|
-
throw err;
|
|
65237
|
-
}
|
|
65594
|
+
return _webcrypto_js__WEBPACK_IMPORTED_MODULE_0__["default"].subtle.importKey('jwk', keyData, ...rest);
|
|
65238
65595
|
};
|
|
65239
65596
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (parse);
|
|
65240
65597
|
|
|
@@ -65476,9 +65833,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
65476
65833
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
65477
65834
|
/* harmony export */ "default": () => (/* binding */ subtleDsa)
|
|
65478
65835
|
/* harmony export */ });
|
|
65479
|
-
/* harmony import */ var
|
|
65480
|
-
/* harmony import */ var _util_errors_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/errors.js */ "./node_modules/jose/dist/browser/util/errors.js");
|
|
65481
|
-
|
|
65836
|
+
/* harmony import */ var _util_errors_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/errors.js */ "./node_modules/jose/dist/browser/util/errors.js");
|
|
65482
65837
|
|
|
65483
65838
|
function subtleDsa(alg, algorithm) {
|
|
65484
65839
|
const hash = `SHA-${alg.slice(-3)}`;
|
|
@@ -65500,12 +65855,9 @@ function subtleDsa(alg, algorithm) {
|
|
|
65500
65855
|
case 'ES512':
|
|
65501
65856
|
return { hash, name: 'ECDSA', namedCurve: algorithm.namedCurve };
|
|
65502
65857
|
case 'EdDSA':
|
|
65503
|
-
if ((0,_env_js__WEBPACK_IMPORTED_MODULE_0__.isCloudflareWorkers)() && algorithm.name === 'NODE-ED25519') {
|
|
65504
|
-
return { name: 'NODE-ED25519', namedCurve: 'NODE-ED25519' };
|
|
65505
|
-
}
|
|
65506
65858
|
return { name: algorithm.name };
|
|
65507
65859
|
default:
|
|
65508
|
-
throw new
|
|
65860
|
+
throw new _util_errors_js__WEBPACK_IMPORTED_MODULE_0__.JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);
|
|
65509
65861
|
}
|
|
65510
65862
|
}
|
|
65511
65863
|
|
|
@@ -66170,22 +66522,7 @@ module.exports = JSON.parse('{"application/1d-interleaved-parityfec":{"source":"
|
|
|
66170
66522
|
/******/
|
|
66171
66523
|
/******/ /* webpack/runtime/publicPath */
|
|
66172
66524
|
/******/ (() => {
|
|
66173
|
-
/******/
|
|
66174
|
-
/******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + "";
|
|
66175
|
-
/******/ var document = __webpack_require__.g.document;
|
|
66176
|
-
/******/ if (!scriptUrl && document) {
|
|
66177
|
-
/******/ if (document.currentScript)
|
|
66178
|
-
/******/ scriptUrl = document.currentScript.src;
|
|
66179
|
-
/******/ if (!scriptUrl) {
|
|
66180
|
-
/******/ var scripts = document.getElementsByTagName("script");
|
|
66181
|
-
/******/ if(scripts.length) scriptUrl = scripts[scripts.length - 1].src
|
|
66182
|
-
/******/ }
|
|
66183
|
-
/******/ }
|
|
66184
|
-
/******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration
|
|
66185
|
-
/******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic.
|
|
66186
|
-
/******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser");
|
|
66187
|
-
/******/ scriptUrl = scriptUrl.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/");
|
|
66188
|
-
/******/ __webpack_require__.p = scriptUrl;
|
|
66525
|
+
/******/ __webpack_require__.p = "";
|
|
66189
66526
|
/******/ })();
|
|
66190
66527
|
/******/
|
|
66191
66528
|
/******/ /* webpack/runtime/jsonp chunk loading */
|