solid-ui 2.4.27-4ef6eeb2 → 2.4.27-52d7fdb7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/solid-ui.js +528 -489
- 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 +14 -22
- package/lib/chat/chatLogic.js.map +1 -1
- package/lib/chat/keys.d.ts +8 -1
- package/lib/chat/keys.d.ts.map +1 -1
- package/lib/chat/keys.js +102 -167
- package/lib/chat/keys.js.map +1 -1
- package/lib/chat/message.js +38 -13
- package/lib/chat/message.js.map +1 -1
- package/lib/chat/signature.d.ts +0 -3
- package/lib/chat/signature.d.ts.map +1 -1
- package/lib/chat/signature.js +26 -24
- package/lib/chat/signature.js.map +1 -1
- package/lib/utils/keyHelpers/accessData.d.ts +10 -0
- package/lib/utils/keyHelpers/accessData.d.ts.map +1 -0
- package/lib/utils/{cryptoKeyHelpers.js → keyHelpers/accessData.js} +67 -70
- package/lib/utils/keyHelpers/accessData.js.map +1 -0
- package/lib/utils/keyHelpers/acl.d.ts +20 -0
- package/lib/utils/keyHelpers/acl.d.ts.map +1 -0
- package/lib/utils/keyHelpers/acl.js +93 -0
- package/lib/utils/keyHelpers/acl.js.map +1 -0
- package/lib/versionInfo.js +2 -2
- package/lib/versionInfo.js.map +1 -1
- package/package.json +1 -1
- package/lib/utils/cryptoKeyHelpers.d.ts +0 -6
- package/lib/utils/cryptoKeyHelpers.d.ts.map +0 -1
- package/lib/utils/cryptoKeyHelpers.js.map +0 -1
|
@@ -5,21 +5,19 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.
|
|
9
|
-
exports.
|
|
10
|
-
exports.
|
|
11
|
-
exports.
|
|
8
|
+
exports.getExistingPrivateKey = getExistingPrivateKey;
|
|
9
|
+
exports.getExistingPublicKey = getExistingPublicKey;
|
|
10
|
+
exports.getKeyIfExists = getKeyIfExists;
|
|
11
|
+
exports.pubKeyUrl = exports.privKeyUrl = exports.getPodRoot = void 0;
|
|
12
12
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
13
13
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
14
|
-
var debug = _interopRequireWildcard(require("
|
|
15
|
-
var _signature = require("../chat/signature");
|
|
14
|
+
var debug = _interopRequireWildcard(require("../../debug"));
|
|
16
15
|
var _solidLogic = require("solid-logic");
|
|
17
|
-
var ns = _interopRequireWildcard(require("
|
|
16
|
+
var ns = _interopRequireWildcard(require("../../ns"));
|
|
18
17
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
19
18
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
20
19
|
var getPodRoot = /*#__PURE__*/function () {
|
|
21
20
|
var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(webId) {
|
|
22
|
-
var _podRoot;
|
|
23
21
|
var webIdURL, storages, podRoot, path, _res$headers$get, res;
|
|
24
22
|
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
25
23
|
while (1) switch (_context.prev = _context.next) {
|
|
@@ -65,7 +63,7 @@ var getPodRoot = /*#__PURE__*/function () {
|
|
|
65
63
|
});
|
|
66
64
|
if (!podRoot) podRoot = storages[0];
|
|
67
65
|
case 21:
|
|
68
|
-
return _context.abrupt("return",
|
|
66
|
+
return _context.abrupt("return", podRoot);
|
|
69
67
|
case 22:
|
|
70
68
|
case "end":
|
|
71
69
|
return _context.stop();
|
|
@@ -76,6 +74,7 @@ var getPodRoot = /*#__PURE__*/function () {
|
|
|
76
74
|
return _ref.apply(this, arguments);
|
|
77
75
|
};
|
|
78
76
|
}();
|
|
77
|
+
exports.getPodRoot = getPodRoot;
|
|
79
78
|
var pubKeyUrl = /*#__PURE__*/function () {
|
|
80
79
|
var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(webId) {
|
|
81
80
|
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
@@ -85,7 +84,7 @@ var pubKeyUrl = /*#__PURE__*/function () {
|
|
|
85
84
|
_context2.next = 3;
|
|
86
85
|
return getPodRoot(webId);
|
|
87
86
|
case 3:
|
|
88
|
-
_context2.t0 = _context2.sent;
|
|
87
|
+
_context2.t0 = _context2.sent.value;
|
|
89
88
|
return _context2.abrupt("return", _context2.t0 + 'profile/keys/publicKey.ttl');
|
|
90
89
|
case 7:
|
|
91
90
|
_context2.prev = 7;
|
|
@@ -102,88 +101,88 @@ var pubKeyUrl = /*#__PURE__*/function () {
|
|
|
102
101
|
};
|
|
103
102
|
}();
|
|
104
103
|
exports.pubKeyUrl = pubKeyUrl;
|
|
105
|
-
function
|
|
106
|
-
return
|
|
104
|
+
function getExistingPublicKey(_x3, _x4) {
|
|
105
|
+
return _getExistingPublicKey.apply(this, arguments);
|
|
107
106
|
}
|
|
108
|
-
function
|
|
109
|
-
|
|
110
|
-
var publicKeyUrl;
|
|
107
|
+
function _getExistingPublicKey() {
|
|
108
|
+
_getExistingPublicKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(webId, publicKeyUrl) {
|
|
111
109
|
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
112
110
|
while (1) switch (_context4.prev = _context4.next) {
|
|
113
111
|
case 0:
|
|
114
112
|
_context4.next = 2;
|
|
115
|
-
return
|
|
113
|
+
return getKeyIfExists(webId, publicKeyUrl, 'publicKey');
|
|
116
114
|
case 2:
|
|
117
|
-
publicKeyUrl = _context4.sent;
|
|
118
|
-
_context4.next = 5;
|
|
119
|
-
return keyExists(webId, publicKeyUrl, 'PublicKey');
|
|
120
|
-
case 5:
|
|
121
115
|
return _context4.abrupt("return", _context4.sent);
|
|
122
|
-
case
|
|
116
|
+
case 3:
|
|
123
117
|
case "end":
|
|
124
118
|
return _context4.stop();
|
|
125
119
|
}
|
|
126
120
|
}, _callee4);
|
|
127
121
|
}));
|
|
128
|
-
return
|
|
122
|
+
return _getExistingPublicKey.apply(this, arguments);
|
|
129
123
|
}
|
|
130
124
|
var privKeyUrl = /*#__PURE__*/function () {
|
|
131
125
|
var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(webId) {
|
|
126
|
+
var _store$any, _settings;
|
|
127
|
+
var settings, _settings2, podRoot;
|
|
132
128
|
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
133
129
|
while (1) switch (_context3.prev = _context3.next) {
|
|
134
130
|
case 0:
|
|
135
|
-
|
|
136
|
-
|
|
131
|
+
settings = (_store$any = _solidLogic.store.any(webId, ns.space('preferencesFile'), null, webId.doc())) === null || _store$any === void 0 ? void 0 : _store$any.value;
|
|
132
|
+
settings = (_settings = settings) === null || _settings === void 0 ? void 0 : _settings.split('/').slice(0, -1).join('/');
|
|
133
|
+
_context3.prev = 2;
|
|
134
|
+
_context3.next = 5;
|
|
137
135
|
return getPodRoot(webId);
|
|
138
|
-
case
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
throw new Error(
|
|
145
|
-
case
|
|
136
|
+
case 5:
|
|
137
|
+
podRoot = _context3.sent;
|
|
138
|
+
if ((_settings2 = settings) !== null && _settings2 !== void 0 && _settings2.startsWith(podRoot.value)) {
|
|
139
|
+
_context3.next = 8;
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
throw new Error("/settings/ is expected to be in ".concat(podRoot.value));
|
|
143
|
+
case 8:
|
|
144
|
+
return _context3.abrupt("return", "".concat(settings, "/keys/privateKey.ttl"));
|
|
145
|
+
case 11:
|
|
146
|
+
_context3.prev = 11;
|
|
147
|
+
_context3.t0 = _context3["catch"](2);
|
|
148
|
+
throw new Error(_context3.t0);
|
|
149
|
+
case 14:
|
|
146
150
|
case "end":
|
|
147
151
|
return _context3.stop();
|
|
148
152
|
}
|
|
149
|
-
}, _callee3, null, [[
|
|
153
|
+
}, _callee3, null, [[2, 11]]);
|
|
150
154
|
}));
|
|
151
|
-
return function privKeyUrl(
|
|
155
|
+
return function privKeyUrl(_x5) {
|
|
152
156
|
return _ref3.apply(this, arguments);
|
|
153
157
|
};
|
|
154
158
|
}();
|
|
155
159
|
exports.privKeyUrl = privKeyUrl;
|
|
156
|
-
function
|
|
157
|
-
return
|
|
160
|
+
function getExistingPrivateKey(_x6, _x7) {
|
|
161
|
+
return _getExistingPrivateKey.apply(this, arguments);
|
|
158
162
|
}
|
|
159
|
-
function
|
|
160
|
-
|
|
161
|
-
var privateKeyUrl;
|
|
163
|
+
function _getExistingPrivateKey() {
|
|
164
|
+
_getExistingPrivateKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(webId, privateKeyUrl) {
|
|
162
165
|
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
163
166
|
while (1) switch (_context5.prev = _context5.next) {
|
|
164
167
|
case 0:
|
|
165
168
|
_context5.next = 2;
|
|
166
|
-
return
|
|
169
|
+
return getKeyIfExists(webId, privateKeyUrl, 'privateKey');
|
|
167
170
|
case 2:
|
|
168
|
-
privateKeyUrl = _context5.sent;
|
|
169
|
-
_context5.next = 5;
|
|
170
|
-
return keyExists(webId, privateKeyUrl, 'PrivateKey');
|
|
171
|
-
case 5:
|
|
172
171
|
return _context5.abrupt("return", _context5.sent);
|
|
173
|
-
case
|
|
172
|
+
case 3:
|
|
174
173
|
case "end":
|
|
175
174
|
return _context5.stop();
|
|
176
175
|
}
|
|
177
176
|
}, _callee5);
|
|
178
177
|
}));
|
|
179
|
-
return
|
|
178
|
+
return _getExistingPrivateKey.apply(this, arguments);
|
|
180
179
|
}
|
|
181
|
-
function
|
|
182
|
-
return
|
|
180
|
+
function getKeyIfExists(_x8, _x9, _x10) {
|
|
181
|
+
return _getKeyIfExists.apply(this, arguments);
|
|
183
182
|
}
|
|
184
|
-
function
|
|
185
|
-
|
|
186
|
-
var key
|
|
183
|
+
function _getKeyIfExists() {
|
|
184
|
+
_getKeyIfExists = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(webId, keyUrl, keyType) {
|
|
185
|
+
var key;
|
|
187
186
|
return _regenerator["default"].wrap(function _callee6$(_context6) {
|
|
188
187
|
while (1) switch (_context6.prev = _context6.next) {
|
|
189
188
|
case 0:
|
|
@@ -191,35 +190,33 @@ function _keyExists() {
|
|
|
191
190
|
_context6.next = 3;
|
|
192
191
|
return _solidLogic.store.fetcher.load(keyUrl);
|
|
193
192
|
case 3:
|
|
194
|
-
key = _solidLogic.store.any(webId,
|
|
193
|
+
key = _solidLogic.store.any(webId, ns.solid(keyType)); // store.sym(CERT + keyType))
|
|
195
194
|
return _context6.abrupt("return", key === null || key === void 0 ? void 0 : key.value);
|
|
196
195
|
case 7:
|
|
197
196
|
_context6.prev = 7;
|
|
198
197
|
_context6.t0 = _context6["catch"](0);
|
|
199
|
-
if (!(
|
|
198
|
+
if (!(_context6.t0.response.status === 404)) {
|
|
200
199
|
_context6.next = 24;
|
|
201
200
|
break;
|
|
202
201
|
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
contentType = 'text/turtle';
|
|
207
|
-
_context6.next = 15;
|
|
202
|
+
debug.log('createIfNotExists: doc does NOT exist, will create... ' + keyUrl);
|
|
203
|
+
_context6.prev = 11;
|
|
204
|
+
_context6.next = 14;
|
|
208
205
|
return _solidLogic.store.fetcher.webOperation('PUT', keyUrl, {
|
|
209
|
-
data:
|
|
210
|
-
contentType:
|
|
206
|
+
data: '',
|
|
207
|
+
contentType: 'text/turtle'
|
|
211
208
|
});
|
|
212
|
-
case
|
|
213
|
-
|
|
214
|
-
_context6.next = 22;
|
|
209
|
+
case 14:
|
|
210
|
+
_context6.next = 20;
|
|
215
211
|
break;
|
|
216
|
-
case
|
|
217
|
-
_context6.prev =
|
|
218
|
-
_context6.t1 = _context6["catch"](
|
|
212
|
+
case 16:
|
|
213
|
+
_context6.prev = 16;
|
|
214
|
+
_context6.t1 = _context6["catch"](11);
|
|
219
215
|
debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + _context6.t1);
|
|
220
216
|
throw _context6.t1;
|
|
221
|
-
case
|
|
217
|
+
case 20:
|
|
222
218
|
delete _solidLogic.store.fetcher.requested[keyUrl]; // delete cached 404 error
|
|
219
|
+
// debug.log('createIfNotExists doc created ok ' + doc)
|
|
223
220
|
return _context6.abrupt("return", undefined);
|
|
224
221
|
case 24:
|
|
225
222
|
debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + _context6.t0);
|
|
@@ -228,8 +225,8 @@ function _keyExists() {
|
|
|
228
225
|
case "end":
|
|
229
226
|
return _context6.stop();
|
|
230
227
|
}
|
|
231
|
-
}, _callee6, null, [[0, 7], [
|
|
228
|
+
}, _callee6, null, [[0, 7], [11, 16]]);
|
|
232
229
|
}));
|
|
233
|
-
return
|
|
230
|
+
return _getKeyIfExists.apply(this, arguments);
|
|
234
231
|
}
|
|
235
|
-
//# sourceMappingURL=
|
|
232
|
+
//# sourceMappingURL=accessData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accessData.js","names":["debug","_interopRequireWildcard","require","_solidLogic","ns","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","getPodRoot","_ref","_asyncToGenerator2","_regenerator","mark","_callee","webId","webIdURL","storages","podRoot","path","_res$headers$get","res","wrap","_callee$","_context","prev","next","URL","uri","store","fetcher","load","each","space","doc","length","pathname","substring","lastIndexOf","sym","origin","webOperation","sent","headers","includes","value","abrupt","warn","concat","find","storage","stop","_x","apply","arguments","exports","pubKeyUrl","_ref2","_callee2","_callee2$","_context2","t0","t1","Error","_x2","getExistingPublicKey","_x3","_x4","_getExistingPublicKey","_callee4","publicKeyUrl","_callee4$","_context4","getKeyIfExists","privKeyUrl","_ref3","_callee3","_store$any","_settings","settings","_settings2","_callee3$","_context3","any","split","slice","join","startsWith","_x5","getExistingPrivateKey","_x6","_x7","_getExistingPrivateKey","_callee5","privateKeyUrl","_callee5$","_context5","_x8","_x9","_x10","_getKeyIfExists","_callee6","keyUrl","keyType","_callee6$","_context6","solid","response","status","log","data","contentType","requested","undefined"],"sources":["../../../src/utils/keyHelpers/accessData.ts"],"sourcesContent":["import * as debug from '../../debug'\nimport { store } from 'solid-logic'\nimport * as ns from '../../ns'\nimport { NamedNode } from 'rdflib'\n\nexport const getPodRoot = async (webId: NamedNode) => {\n const webIdURL = new URL(webId.uri)\n // find storages in webId document\n await store.fetcher.load(webId.uri)\n const storages = store.each(webId, ns.space('storage'), null, webId.doc())\n var podRoot: NamedNode | undefined\n if (!storages?.length) {\n // find storage recursively in webId URL\n let path = webIdURL.pathname\n while (path.length) {\n path = path.substring(0, path.lastIndexOf('/'))\n podRoot = store.sym(webIdURL.origin + path + '/')\n const res = await store.fetcher.webOperation('HEAD', podRoot.uri)\n if (res.headers.get('link')?.includes(ns.space('Storage').value)) break\n if (!path) debug.warn(`Current user storage not found for\\n${webId}`)\n }\n } else {\n // give preference to storage in webId root\n podRoot = storages.find((storage) => webIdURL.origin === new URL(storage.value).origin) as NamedNode\n if (!podRoot) podRoot = storages[0] as NamedNode\n }\n return podRoot as NamedNode\n}\n\nexport const pubKeyUrl = async (webId: NamedNode) => {\n try {\n return (await getPodRoot(webId)).value + 'profile/keys/publicKey.ttl'\n } catch (err) { throw new Error(err) }\n}\n\nexport async function getExistingPublicKey (webId: NamedNode, publicKeyUrl: string) {\n // find publickey\n return await getKeyIfExists(webId, publicKeyUrl, 'publicKey')\n}\n\nexport const privKeyUrl = async (webId: NamedNode) => {\n let settings = store.any(webId, ns.space('preferencesFile'), null, webId.doc())?.value\n settings = settings?.split('/').slice(0, -1).join('/')\n try {\n const podRoot = await getPodRoot(webId)\n if (!settings?.startsWith(podRoot.value)) throw new Error(`/settings/ is expected to be in ${podRoot.value}`)\n return `${settings}/keys/privateKey.ttl`\n } catch (err) { throw new Error(err) }\n}\n\nexport async function getExistingPrivateKey (webId: NamedNode, privateKeyUrl: string) {\n // find privateKey\n return await getKeyIfExists(webId, privateKeyUrl, 'privateKey')\n}\n\ntype KeyType = 'publicKey' | 'privateKey'\n\nexport async function getKeyIfExists (webId: NamedNode, keyUrl: string, keyType: KeyType) {\n try {\n await store.fetcher.load(keyUrl)\n const key = store.any(webId, ns.solid(keyType)) // store.sym(CERT + keyType))\n return key?.value // as NamedNode\n } catch (err) {\n if (err.response.status === 404) {\n debug.log(\n 'createIfNotExists: doc does NOT exist, will create... ' + keyUrl\n )\n try {\n await store.fetcher.webOperation('PUT', keyUrl, {\n data: '',\n contentType: 'text/turtle'\n })\n } catch (err) {\n debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + err)\n throw err\n }\n delete store.fetcher.requested[keyUrl] // delete cached 404 error\n // debug.log('createIfNotExists doc created ok ' + doc)\n return undefined // response\n } else {\n debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + err)\n throw err\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* set ACL
|
|
3
|
+
* @param keyDoc
|
|
4
|
+
* @param aclBody
|
|
5
|
+
*/
|
|
6
|
+
export declare function setAcl(keyDoc: string, aclBody: string): Promise<void>;
|
|
7
|
+
/**
|
|
8
|
+
* key container ACL
|
|
9
|
+
* @param me
|
|
10
|
+
* @returns aclBody
|
|
11
|
+
*/
|
|
12
|
+
export declare const keyContainerAclBody: (me: string) => string;
|
|
13
|
+
/**
|
|
14
|
+
* Read only ACL
|
|
15
|
+
* @param keyDoc
|
|
16
|
+
* @param me
|
|
17
|
+
* @returns aclBody
|
|
18
|
+
*/
|
|
19
|
+
export declare const keyAclBody: (keyDoc: any, me: any) => string;
|
|
20
|
+
//# sourceMappingURL=acl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acl.d.ts","sourceRoot":"","sources":["../../../src/utils/keyHelpers/acl.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAsB,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAsB5D;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,OAAQ,MAAM,WAe7C,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,kCAatB,CAAA"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.keyContainerAclBody = exports.keyAclBody = void 0;
|
|
9
|
+
exports.setAcl = setAcl;
|
|
10
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
12
|
+
var debug = _interopRequireWildcard(require("../../debug"));
|
|
13
|
+
var _solidLogic = require("solid-logic");
|
|
14
|
+
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); }
|
|
15
|
+
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; }
|
|
16
|
+
/**
|
|
17
|
+
* set ACL
|
|
18
|
+
* @param keyDoc
|
|
19
|
+
* @param aclBody
|
|
20
|
+
*/
|
|
21
|
+
function setAcl(_x, _x2) {
|
|
22
|
+
return _setAcl.apply(this, arguments);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* key container ACL
|
|
26
|
+
* @param me
|
|
27
|
+
* @returns aclBody
|
|
28
|
+
*/
|
|
29
|
+
function _setAcl() {
|
|
30
|
+
_setAcl = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(keyDoc, aclBody) {
|
|
31
|
+
var keyAclDoc, _err$response;
|
|
32
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
33
|
+
while (1) switch (_context.prev = _context.next) {
|
|
34
|
+
case 0:
|
|
35
|
+
_context.next = 2;
|
|
36
|
+
return _solidLogic.store.fetcher.load(keyDoc);
|
|
37
|
+
case 2:
|
|
38
|
+
// FIXME: check the Why value on this quad:
|
|
39
|
+
debug.log(_solidLogic.store.statementsMatching(_solidLogic.store.sym(keyDoc), _solidLogic.store.sym('http://www.iana.org/assignments/link-relations/acl')));
|
|
40
|
+
keyAclDoc = _solidLogic.store.any(_solidLogic.store.sym(keyDoc), _solidLogic.store.sym('http://www.iana.org/assignments/link-relations/acl'));
|
|
41
|
+
if (keyAclDoc) {
|
|
42
|
+
_context.next = 6;
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
throw new Error('Key ACL doc not found!');
|
|
46
|
+
case 6:
|
|
47
|
+
_context.prev = 6;
|
|
48
|
+
_context.next = 9;
|
|
49
|
+
return _solidLogic.store.fetcher.webOperation('PUT', keyAclDoc.value, {
|
|
50
|
+
data: aclBody,
|
|
51
|
+
contentType: 'text/turtle'
|
|
52
|
+
});
|
|
53
|
+
case 9:
|
|
54
|
+
_context.next = 16;
|
|
55
|
+
break;
|
|
56
|
+
case 11:
|
|
57
|
+
_context.prev = 11;
|
|
58
|
+
_context.t0 = _context["catch"](6);
|
|
59
|
+
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)) {
|
|
60
|
+
_context.next = 15;
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
throw new Error(_context.t0);
|
|
64
|
+
case 15:
|
|
65
|
+
debug.log('delete ' + keyAclDoc.value + ' ' + _context.t0.response.status); // should test 404 and 2xx
|
|
66
|
+
case 16:
|
|
67
|
+
case "end":
|
|
68
|
+
return _context.stop();
|
|
69
|
+
}
|
|
70
|
+
}, _callee, null, [[6, 11]]);
|
|
71
|
+
}));
|
|
72
|
+
return _setAcl.apply(this, arguments);
|
|
73
|
+
}
|
|
74
|
+
var keyContainerAclBody = function keyContainerAclBody(me) {
|
|
75
|
+
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");
|
|
76
|
+
return aclBody;
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Read only ACL
|
|
81
|
+
* @param keyDoc
|
|
82
|
+
* @param me
|
|
83
|
+
* @returns aclBody
|
|
84
|
+
*/
|
|
85
|
+
exports.keyContainerAclBody = keyContainerAclBody;
|
|
86
|
+
var keyAclBody = function keyAclBody(keyDoc, me) {
|
|
87
|
+
var keyAgent = 'acl:agentClass foaf:Agent'; // publicKey
|
|
88
|
+
if (me !== null && me !== void 0 && me.length) keyAgent = "acl:agent <".concat(me, ">"); // privateKey
|
|
89
|
+
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");
|
|
90
|
+
return aclBody;
|
|
91
|
+
};
|
|
92
|
+
exports.keyAclBody = keyAclBody;
|
|
93
|
+
//# sourceMappingURL=acl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acl.js","names":["debug","_interopRequireWildcard","require","_solidLogic","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","setAcl","_x","_x2","_setAcl","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee","keyDoc","aclBody","keyAclDoc","_err$response","wrap","_callee$","_context","prev","next","store","fetcher","load","log","statementsMatching","sym","any","Error","webOperation","value","data","contentType","t0","response","status","stop","keyContainerAclBody","me","concat","exports","keyAclBody","keyAgent","length","split","pop"],"sources":["../../../src/utils/keyHelpers/acl.ts"],"sourcesContent":["import * as debug from '../../debug'\nimport { store } from 'solid-logic'\n\n/**\n * set ACL\n * @param keyDoc\n * @param aclBody\n */\nexport async function setAcl (keyDoc: string, aclBody: string) {\n // Some servers don't present a Link http response header\n // if the container doesn't exist yet, refetch the resource\n\n await store.fetcher.load(keyDoc)\n\n // FIXME: check the Why value on this quad:\n debug.log(store.statementsMatching(store.sym(keyDoc), store.sym('http://www.iana.org/assignments/link-relations/acl')))\n const keyAclDoc = store.any(store.sym(keyDoc), store.sym('http://www.iana.org/assignments/link-relations/acl'))\n if (!keyAclDoc) {\n throw new Error('Key ACL doc not found!')\n }\n\n try {\n await store.fetcher.webOperation('PUT', keyAclDoc.value, {\n data: aclBody,\n contentType: 'text/turtle'\n })\n } catch (err) {\n if (err?.response?.status !== 404) { throw new Error(err) }\n debug.log('delete ' + keyAclDoc.value + ' ' + err.response.status) // should test 404 and 2xx\n }\n}\n\n/**\n * key container ACL\n * @param me\n * @returns aclBody\n */\nexport const keyContainerAclBody = (me: string) => {\n const 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 <${me}>;\n acl:mode acl:Read, acl:Write.\n`\n return aclBody\n}\n\n/**\n * Read only ACL\n * @param keyDoc\n * @param me\n * @returns aclBody\n */\nexport const keyAclBody = (keyDoc, me) => {\n let keyAgent = 'acl:agentClass foaf:Agent' // publicKey\n if (me?.length) keyAgent = `acl:agent <${me}>` // privateKey\n const 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 ${keyAgent};\n acl:accessTo <${keyDoc.split('/').pop()}>;\n acl:mode acl:Read.\n`\n return aclBody\n}\n"],"mappings":"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"}
|
package/lib/versionInfo.js
CHANGED
|
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.versionInfo = void 0;
|
|
7
7
|
var versionInfo = {
|
|
8
|
-
buildTime: '2023-05-
|
|
9
|
-
commit: '
|
|
8
|
+
buildTime: '2023-05-24T23:47:16Z',
|
|
9
|
+
commit: '52d7fdb725a76c09c5562ad5156a586dec6c9734',
|
|
10
10
|
npmInfo: {
|
|
11
11
|
'solid-ui': '2.4.27',
|
|
12
12
|
npm: '8.19.4',
|
package/lib/versionInfo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versionInfo.js","names":["versionInfo","buildTime","commit","npmInfo","npm","node","v8","uv","zlib","brotli","ares","modules","nghttp2","napi","llhttp","openssl","cldr","icu","tz","unicode","ngtcp2","nghttp3","exports"],"sources":["../src/versionInfo.ts"],"sourcesContent":["export const versionInfo = {\n buildTime: '2023-05-
|
|
1
|
+
{"version":3,"file":"versionInfo.js","names":["versionInfo","buildTime","commit","npmInfo","npm","node","v8","uv","zlib","brotli","ares","modules","nghttp2","napi","llhttp","openssl","cldr","icu","tz","unicode","ngtcp2","nghttp3","exports"],"sources":["../src/versionInfo.ts"],"sourcesContent":["export const versionInfo = {\n buildTime: '2023-05-24T23:47:16Z',\n commit: '52d7fdb725a76c09c5562ad5156a586dec6c9734',\n npmInfo:\n{\n 'solid-ui': '2.4.27',\n npm: '8.19.4',\n node: '16.20.0',\n v8: '9.4.146.26-node.26',\n uv: '1.43.0',\n zlib: '1.2.11',\n brotli: '1.0.9',\n ares: '1.19.0',\n modules: '93',\n nghttp2: '1.47.0',\n napi: '8',\n llhttp: '6.0.10',\n openssl: '1.1.1t+quic',\n cldr: '41.0',\n icu: '71.1',\n tz: '2022f',\n unicode: '14.0',\n ngtcp2: '0.8.1',\n nghttp3: '0.7.0'\n}\n}\n"],"mappings":";;;;;;AAAO,IAAMA,WAAW,GAAG;EACzBC,SAAS,EAAE,sBAAsB;EACjCC,MAAM,EAAE,0CAA0C;EAClDC,OAAO,EACT;IACE,UAAU,EAAE,QAAQ;IACpBC,GAAG,EAAE,QAAQ;IACbC,IAAI,EAAE,SAAS;IACfC,EAAE,EAAE,oBAAoB;IACxBC,EAAE,EAAE,QAAQ;IACZC,IAAI,EAAE,QAAQ;IACdC,MAAM,EAAE,OAAO;IACfC,IAAI,EAAE,QAAQ;IACdC,OAAO,EAAE,IAAI;IACbC,OAAO,EAAE,QAAQ;IACjBC,IAAI,EAAE,GAAG;IACTC,MAAM,EAAE,QAAQ;IAChBC,OAAO,EAAE,aAAa;IACtBC,IAAI,EAAE,MAAM;IACZC,GAAG,EAAE,MAAM;IACXC,EAAE,EAAE,OAAO;IACXC,OAAO,EAAE,MAAM;IACfC,MAAM,EAAE,OAAO;IACfC,OAAO,EAAE;EACX;AACA,CAAC;AAAAC,OAAA,CAAAtB,WAAA,GAAAA,WAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { NamedNode } from 'rdflib';
|
|
2
|
-
export declare const pubKeyUrl: (webId: NamedNode) => Promise<string>;
|
|
3
|
-
export declare function publicKeyExists(webId: NamedNode): Promise<string | undefined>;
|
|
4
|
-
export declare const privKeyUrl: (webId: NamedNode) => Promise<string>;
|
|
5
|
-
export declare function privateKeyExists(webId: NamedNode): Promise<string | undefined>;
|
|
6
|
-
//# sourceMappingURL=cryptoKeyHelpers.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cryptoKeyHelpers.d.ts","sourceRoot":"","sources":["../../src/utils/cryptoKeyHelpers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AA0BlC,eAAO,MAAM,SAAS,UAAiB,SAAS,oBAI/C,CAAA;AAED,wBAAsB,eAAe,CAAE,KAAK,EAAE,SAAS,+BAItD;AAED,eAAO,MAAM,UAAU,UAAiB,SAAS,oBAIhD,CAAA;AAED,wBAAsB,gBAAgB,CAAE,KAAK,EAAE,SAAS,+BAIvD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cryptoKeyHelpers.js","names":["debug","_interopRequireWildcard","require","_signature","_solidLogic","ns","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","getPodRoot","_ref","_asyncToGenerator2","_regenerator","mark","_callee","webId","_podRoot","webIdURL","storages","podRoot","path","_res$headers$get","res","wrap","_callee$","_context","prev","next","URL","uri","store","fetcher","load","each","space","doc","length","pathname","substring","lastIndexOf","sym","origin","webOperation","sent","headers","includes","value","abrupt","warn","concat","find","storage","stop","_x","apply","arguments","pubKeyUrl","_ref2","_callee2","_callee2$","_context2","t0","t1","Error","_x2","exports","publicKeyExists","_x3","_publicKeyExists","_callee4","publicKeyUrl","_callee4$","_context4","keyExists","privKeyUrl","_ref3","_callee3","_callee3$","_context3","_x4","privateKeyExists","_x5","_privateKeyExists","_callee5","privateKeyUrl","_callee5$","_context5","_x6","_x7","_x8","_keyExists","_callee6","keyUrl","keyType","_err$response","data","contentType","response","_callee6$","_context6","any","CERT","status","log","requested","undefined"],"sources":["../../src/utils/cryptoKeyHelpers.ts"],"sourcesContent":["import * as debug from '../debug'\nimport { CERT } from '../chat/signature'\nimport { store } from 'solid-logic'\nimport * as ns from '../ns'\nimport { NamedNode } from 'rdflib'\n\nconst getPodRoot = async (webId: NamedNode) => {\n const webIdURL = new URL(webId.uri)\n // find storages in webId document\n await store.fetcher.load(webId.uri)\n const storages = store.each(webId, ns.space('storage'), null, webId.doc())\n var podRoot: NamedNode | undefined\n if (!storages?.length) {\n // find storage recursively in webId URL\n let path = webIdURL.pathname\n while (path.length) {\n path = path.substring(0, path.lastIndexOf('/'))\n podRoot = store.sym(webIdURL.origin + path + '/')\n const res = await store.fetcher.webOperation('HEAD', podRoot.uri)\n if (res.headers.get('link')?.includes(ns.space('Storage').value)) break\n if (!path) debug.warn(`Current user storage not found for\\n${webId}`)\n }\n } else {\n // give preference to storage in webId root\n podRoot = storages.find((storage) => webIdURL.origin === new URL(storage.value).origin) as NamedNode\n if (!podRoot) podRoot = storages[0] as NamedNode\n }\n return podRoot?.value\n}\n\nexport const pubKeyUrl = async (webId: NamedNode) => {\n try {\n return await getPodRoot(webId) + 'profile/keys/publicKey.ttl'\n } catch (err) { throw new Error(err) }\n}\n\nexport async function publicKeyExists (webId: NamedNode) {\n // find publickey\n const publicKeyUrl = await pubKeyUrl(webId)\n return await keyExists(webId, publicKeyUrl, 'PublicKey')\n}\n\nexport const privKeyUrl = async (webId: NamedNode) => {\n try {\n return await getPodRoot(webId) + 'profile/keys/privateKey.ttl'\n } catch (err) { throw new Error(err) }\n}\n\nexport async function privateKeyExists (webId: NamedNode) {\n // find privateKey\n const privateKeyUrl = await privKeyUrl(webId)\n return await keyExists(webId, privateKeyUrl, 'PrivateKey')\n}\n\ntype KeyType = 'PublicKey' | 'PrivateKey'\n\nasync function keyExists (webId: NamedNode, keyUrl: string, keyType: KeyType) {\n try {\n await store.fetcher.load(keyUrl)\n const key = store.any(webId, store.sym(CERT + keyType))\n return key?.value // as NamedNode\n } catch (err) {\n if (err?.response?.status === 404) { // If PATCH on some server do not all create intermediate containers\n try {\n // create privateKey resource\n const data = ''\n const contentType = 'text/turtle'\n const response = await store.fetcher.webOperation('PUT', keyUrl, {\n data,\n contentType\n })\n } catch (err) {\n debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + err)\n throw err\n }\n delete store.fetcher.requested[keyUrl] // delete cached 404 error\n return undefined\n }\n debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + err)\n throw err\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,EAAA,GAAAJ,uBAAA,CAAAC,OAAA;AAA2B,SAAAI,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAN,wBAAAU,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAE,OAAA,CAAAF,GAAA,yBAAAA,GAAA,uCAAAA,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,cAAAN,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAG3B,IAAMW,UAAU;EAAA,IAAAC,IAAA,OAAAC,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAAG,SAAAC,QAAOC,KAAgB;IAAA,IAAAC,QAAA;IAAA,IAAAC,QAAA,EAAAC,QAAA,EAAAC,OAAA,EAAAC,IAAA,EAAAC,gBAAA,EAAAC,GAAA;IAAA,OAAAV,YAAA,YAAAW,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAClCV,QAAQ,GAAG,IAAIW,GAAG,CAACb,KAAK,CAACc,GAAG,CAAC,EACnC;UAAAJ,QAAA,CAAAE,IAAA;UAAA,OACMG,iBAAK,CAACC,OAAO,CAACC,IAAI,CAACjB,KAAK,CAACc,GAAG,CAAC;QAAA;UAC7BX,QAAQ,GAAGY,iBAAK,CAACG,IAAI,CAAClB,KAAK,EAAE7B,EAAE,CAACgD,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,EAAEnB,KAAK,CAACoB,GAAG,EAAE,CAAC;UAAA,IAErEjB,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAEkB,MAAM;YAAAX,QAAA,CAAAE,IAAA;YAAA;UAAA;UACnB;UACIP,IAAI,GAAGH,QAAQ,CAACoB,QAAQ;QAAA;UAAA,KACrBjB,IAAI,CAACgB,MAAM;YAAAX,QAAA,CAAAE,IAAA;YAAA;UAAA;UAChBP,IAAI,GAAGA,IAAI,CAACkB,SAAS,CAAC,CAAC,EAAElB,IAAI,CAACmB,WAAW,CAAC,GAAG,CAAC,CAAC;UAC/CpB,OAAO,GAAGW,iBAAK,CAACU,GAAG,CAACvB,QAAQ,CAACwB,MAAM,GAAGrB,IAAI,GAAG,GAAG,CAAC;UAAAK,QAAA,CAAAE,IAAA;UAAA,OAC/BG,iBAAK,CAACC,OAAO,CAACW,YAAY,CAAC,MAAM,EAAEvB,OAAO,CAACU,GAAG,CAAC;QAAA;UAA3DP,GAAG,GAAAG,QAAA,CAAAkB,IAAA;UAAA,OAAAtB,gBAAA,GACLC,GAAG,CAACsB,OAAO,CAAC/C,GAAG,CAAC,MAAM,CAAC,cAAAwB,gBAAA,eAAvBA,gBAAA,CAAyBwB,QAAQ,CAAC3D,EAAE,CAACgD,KAAK,CAAC,SAAS,CAAC,CAACY,KAAK,CAAC;YAAArB,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAA,OAAAF,QAAA,CAAAsB,MAAA;QAAA;UAChE,IAAI,CAAC3B,IAAI,EAAEvC,KAAK,CAACmE,IAAI,wCAAAC,MAAA,CAAwClC,KAAK,EAAG;UAAAU,QAAA,CAAAE,IAAA;UAAA;QAAA;UAAAF,QAAA,CAAAE,IAAA;UAAA;QAAA;UAGvE;UACAR,OAAO,GAAGD,QAAQ,CAACgC,IAAI,CAAC,UAACC,OAAO;YAAA,OAAKlC,QAAQ,CAACwB,MAAM,KAAK,IAAIb,GAAG,CAACuB,OAAO,CAACL,KAAK,CAAC,CAACL,MAAM;UAAA,EAAc;UACpG,IAAI,CAACtB,OAAO,EAAEA,OAAO,GAAGD,QAAQ,CAAC,CAAC,CAAc;QAAA;UAAA,OAAAO,QAAA,CAAAsB,MAAA,YAAA/B,QAAA,GAE3CG,OAAO,cAAAH,QAAA,uBAAPA,QAAA,CAAS8B,KAAK;QAAA;QAAA;UAAA,OAAArB,QAAA,CAAA2B,IAAA;MAAA;IAAA,GAAAtC,OAAA;EAAA,CACtB;EAAA,gBAtBKL,UAAUA,CAAA4C,EAAA;IAAA,OAAA3C,IAAA,CAAA4C,KAAA,OAAAC,SAAA;EAAA;AAAA,GAsBf;AAEM,IAAMC,SAAS;EAAA,IAAAC,KAAA,OAAA9C,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAAG,SAAA6C,SAAO3C,KAAgB;IAAA,OAAAH,YAAA,YAAAW,IAAA,UAAAoC,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAlC,IAAA,GAAAkC,SAAA,CAAAjC,IAAA;QAAA;UAAAiC,SAAA,CAAAlC,IAAA;UAAAkC,SAAA,CAAAjC,IAAA;UAAA,OAE/BlB,UAAU,CAACM,KAAK,CAAC;QAAA;UAAA6C,SAAA,CAAAC,EAAA,GAAAD,SAAA,CAAAjB,IAAA;UAAA,OAAAiB,SAAA,CAAAb,MAAA,WAAAa,SAAA,CAAAC,EAAA,GAAG,4BAA4B;QAAA;UAAAD,SAAA,CAAAlC,IAAA;UAAAkC,SAAA,CAAAE,EAAA,GAAAF,SAAA;UAAA,MACzC,IAAIG,KAAK,CAAAH,SAAA,CAAAE,EAAA,CAAK;QAAA;QAAA;UAAA,OAAAF,SAAA,CAAAR,IAAA;MAAA;IAAA,GAAAM,QAAA;EAAA,CACrC;EAAA,gBAJYF,SAASA,CAAAQ,GAAA;IAAA,OAAAP,KAAA,CAAAH,KAAA,OAAAC,SAAA;EAAA;AAAA,GAIrB;AAAAU,OAAA,CAAAT,SAAA,GAAAA,SAAA;AAAA,SAEqBU,eAAeA,CAAAC,GAAA;EAAA,OAAAC,gBAAA,CAAAd,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAa,iBAAA;EAAAA,gBAAA,OAAAzD,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAA9B,SAAAwD,SAAgCtD,KAAgB;IAAA,IAAAuD,YAAA;IAAA,OAAA1D,YAAA,YAAAW,IAAA,UAAAgD,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAA9C,IAAA,GAAA8C,SAAA,CAAA7C,IAAA;QAAA;UAAA6C,SAAA,CAAA7C,IAAA;UAAA,OAE1B6B,SAAS,CAACzC,KAAK,CAAC;QAAA;UAArCuD,YAAY,GAAAE,SAAA,CAAA7B,IAAA;UAAA6B,SAAA,CAAA7C,IAAA;UAAA,OACL8C,SAAS,CAAC1D,KAAK,EAAEuD,YAAY,EAAE,WAAW,CAAC;QAAA;UAAA,OAAAE,SAAA,CAAAzB,MAAA,WAAAyB,SAAA,CAAA7B,IAAA;QAAA;QAAA;UAAA,OAAA6B,SAAA,CAAApB,IAAA;MAAA;IAAA,GAAAiB,QAAA;EAAA,CACzD;EAAA,OAAAD,gBAAA,CAAAd,KAAA,OAAAC,SAAA;AAAA;AAEM,IAAMmB,UAAU;EAAA,IAAAC,KAAA,OAAAhE,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAAG,SAAA+D,SAAO7D,KAAgB;IAAA,OAAAH,YAAA,YAAAW,IAAA,UAAAsD,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAApD,IAAA,GAAAoD,SAAA,CAAAnD,IAAA;QAAA;UAAAmD,SAAA,CAAApD,IAAA;UAAAoD,SAAA,CAAAnD,IAAA;UAAA,OAEhClB,UAAU,CAACM,KAAK,CAAC;QAAA;UAAA+D,SAAA,CAAAjB,EAAA,GAAAiB,SAAA,CAAAnC,IAAA;UAAA,OAAAmC,SAAA,CAAA/B,MAAA,WAAA+B,SAAA,CAAAjB,EAAA,GAAG,6BAA6B;QAAA;UAAAiB,SAAA,CAAApD,IAAA;UAAAoD,SAAA,CAAAhB,EAAA,GAAAgB,SAAA;UAAA,MAC1C,IAAIf,KAAK,CAAAe,SAAA,CAAAhB,EAAA,CAAK;QAAA;QAAA;UAAA,OAAAgB,SAAA,CAAA1B,IAAA;MAAA;IAAA,GAAAwB,QAAA;EAAA,CACrC;EAAA,gBAJYF,UAAUA,CAAAK,GAAA;IAAA,OAAAJ,KAAA,CAAArB,KAAA,OAAAC,SAAA;EAAA;AAAA,GAItB;AAAAU,OAAA,CAAAS,UAAA,GAAAA,UAAA;AAAA,SAEqBM,gBAAgBA,CAAAC,GAAA;EAAA,OAAAC,iBAAA,CAAA5B,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAA2B,kBAAA;EAAAA,iBAAA,OAAAvE,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAA/B,SAAAsE,SAAiCpE,KAAgB;IAAA,IAAAqE,aAAA;IAAA,OAAAxE,YAAA,YAAAW,IAAA,UAAA8D,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAA5D,IAAA,GAAA4D,SAAA,CAAA3D,IAAA;QAAA;UAAA2D,SAAA,CAAA3D,IAAA;UAAA,OAE1B+C,UAAU,CAAC3D,KAAK,CAAC;QAAA;UAAvCqE,aAAa,GAAAE,SAAA,CAAA3C,IAAA;UAAA2C,SAAA,CAAA3D,IAAA;UAAA,OACN8C,SAAS,CAAC1D,KAAK,EAAEqE,aAAa,EAAE,YAAY,CAAC;QAAA;UAAA,OAAAE,SAAA,CAAAvC,MAAA,WAAAuC,SAAA,CAAA3C,IAAA;QAAA;QAAA;UAAA,OAAA2C,SAAA,CAAAlC,IAAA;MAAA;IAAA,GAAA+B,QAAA;EAAA,CAC3D;EAAA,OAAAD,iBAAA,CAAA5B,KAAA,OAAAC,SAAA;AAAA;AAAA,SAIckB,SAASA,CAAAc,GAAA,EAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,UAAA,CAAApC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAmC,WAAA;EAAAA,UAAA,OAAA/E,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAAxB,SAAA8E,SAA0B5E,KAAgB,EAAE6E,MAAc,EAAEC,OAAgB;IAAA,IAAA1F,GAAA,EAAA2F,aAAA,EAAAC,IAAA,EAAAC,WAAA,EAAAC,QAAA;IAAA,OAAArF,YAAA,YAAAW,IAAA,UAAA2E,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAzE,IAAA,GAAAyE,SAAA,CAAAxE,IAAA;QAAA;UAAAwE,SAAA,CAAAzE,IAAA;UAAAyE,SAAA,CAAAxE,IAAA;UAAA,OAElEG,iBAAK,CAACC,OAAO,CAACC,IAAI,CAAC4D,MAAM,CAAC;QAAA;UAC1BzF,GAAG,GAAG2B,iBAAK,CAACsE,GAAG,CAACrF,KAAK,EAAEe,iBAAK,CAACU,GAAG,CAAC6D,eAAI,GAAGR,OAAO,CAAC,CAAC;UAAA,OAAAM,SAAA,CAAApD,MAAA,WAChD5C,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAE2C,KAAK;QAAA;UAAAqD,SAAA,CAAAzE,IAAA;UAAAyE,SAAA,CAAAtC,EAAA,GAAAsC,SAAA;UAAA,MAEb,CAAAA,SAAA,CAAAtC,EAAA,aAAAsC,SAAA,CAAAtC,EAAA,wBAAAiC,aAAA,GAAAK,SAAA,CAAAtC,EAAA,CAAKoC,QAAQ,cAAAH,aAAA,uBAAbA,aAAA,CAAeQ,MAAM,MAAK,GAAG;YAAAH,SAAA,CAAAxE,IAAA;YAAA;UAAA;UAAAwE,SAAA,CAAAzE,IAAA;UAE7B;UACMqE,IAAI,GAAG,EAAE;UACTC,WAAW,GAAG,aAAa;UAAAG,SAAA,CAAAxE,IAAA;UAAA,OACVG,iBAAK,CAACC,OAAO,CAACW,YAAY,CAAC,KAAK,EAAEkD,MAAM,EAAE;YAC/DG,IAAI,EAAJA,IAAI;YACJC,WAAW,EAAXA;UACF,CAAC,CAAC;QAAA;UAHIC,QAAQ,GAAAE,SAAA,CAAAxD,IAAA;UAAAwD,SAAA,CAAAxE,IAAA;UAAA;QAAA;UAAAwE,SAAA,CAAAzE,IAAA;UAAAyE,SAAA,CAAArC,EAAA,GAAAqC,SAAA;UAKdtH,KAAK,CAAC0H,GAAG,CAAC,gCAAgC,GAAGX,MAAM,GAAG,IAAI,GAAAO,SAAA,CAAArC,EAAM,CAAC;UAAA,MAAAqC,SAAA,CAAArC,EAAA;QAAA;UAGnE,OAAOhC,iBAAK,CAACC,OAAO,CAACyE,SAAS,CAACZ,MAAM,CAAC,EAAC;UAAA,OAAAO,SAAA,CAAApD,MAAA,WAChC0D,SAAS;QAAA;UAElB5H,KAAK,CAAC0H,GAAG,CAAC,gCAAgC,GAAGX,MAAM,GAAG,IAAI,GAAAO,SAAA,CAAAtC,EAAM,CAAC;UAAA,MAAAsC,SAAA,CAAAtC,EAAA;QAAA;QAAA;UAAA,OAAAsC,SAAA,CAAA/C,IAAA;MAAA;IAAA,GAAAuC,QAAA;EAAA,CAGpE;EAAA,OAAAD,UAAA,CAAApC,KAAA,OAAAC,SAAA;AAAA"}
|