solid-ui 2.5.1 → 2.6.0
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 +4 -0
- package/dist/841.solid-ui.min.js +1 -1
- package/dist/841.solid-ui.min.js.map +1 -1
- package/dist/_2b19.solid-ui.js.map +1 -1
- package/dist/solid-ui.js +42754 -45728
- package/dist/solid-ui.js.map +1 -1
- package/dist/solid-ui.min.js +1 -1
- package/dist/solid-ui.min.js.LICENSE.txt +1 -5
- package/dist/solid-ui.min.js.map +1 -1
- package/lib/acl/access-controller.js +48 -49
- package/lib/acl/access-controller.js.map +1 -1
- package/lib/acl/access-groups.js +40 -40
- package/lib/acl/access-groups.js.map +1 -1
- package/lib/acl/acl-control.js +18 -19
- package/lib/acl/acl-control.js.map +1 -1
- package/lib/acl/acl.js +4 -5
- package/lib/acl/acl.js.map +1 -1
- package/lib/acl/add-agent-buttons.js +51 -52
- package/lib/acl/add-agent-buttons.js.map +1 -1
- package/lib/chat/bookmarks.js +76 -77
- package/lib/chat/bookmarks.js.map +1 -1
- package/lib/chat/chatLogic.js +74 -75
- package/lib/chat/chatLogic.js.map +1 -1
- package/lib/chat/dateFolder.js +66 -67
- package/lib/chat/dateFolder.js.map +1 -1
- package/lib/chat/infinite.js +218 -220
- package/lib/chat/infinite.js.map +1 -1
- package/lib/chat/keys.js +62 -63
- package/lib/chat/keys.js.map +1 -1
- package/lib/chat/message.js +98 -100
- package/lib/chat/message.js.map +1 -1
- package/lib/chat/messageTools.js +99 -100
- package/lib/chat/messageTools.js.map +1 -1
- package/lib/chat/signature.d.ts.map +1 -1
- package/lib/chat/signature.js +0 -1
- package/lib/chat/signature.js.map +1 -1
- package/lib/chat/thread.js +57 -61
- package/lib/chat/thread.js.map +1 -1
- package/lib/create/create.js +1 -2
- package/lib/create/create.js.map +1 -1
- package/lib/folders.js +1 -4
- package/lib/folders.js.map +1 -1
- package/lib/footer/index.d.ts.map +1 -1
- package/lib/footer/index.js +14 -16
- package/lib/footer/index.js.map +1 -1
- package/lib/header/index.js +34 -36
- package/lib/header/index.js.map +1 -1
- package/lib/iconBase.d.ts.map +1 -1
- package/lib/iconBase.js +0 -1
- package/lib/iconBase.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +5 -5
- package/lib/index.js.map +1 -1
- package/lib/log.d.ts +7 -7
- package/lib/log.d.ts.map +1 -1
- package/lib/log.js +2 -2
- package/lib/log.js.map +1 -1
- package/lib/login/login.js +217 -222
- package/lib/login/login.js.map +1 -1
- package/lib/matrix/matrix.js +1 -2
- package/lib/matrix/matrix.js.map +1 -1
- package/lib/matrix/types.js.map +1 -1
- package/lib/media/media-capture.js +3 -4
- package/lib/media/media-capture.js.map +1 -1
- package/lib/messageArea.js +1 -4
- package/lib/messageArea.js.map +1 -1
- package/lib/ns.js +1 -2
- package/lib/ns.js.map +1 -1
- package/lib/pad.js +1 -2
- package/lib/pad.js.map +1 -1
- package/lib/participation.js +1 -2
- package/lib/participation.js.map +1 -1
- package/lib/preferences.js +1 -2
- package/lib/preferences.js.map +1 -1
- package/lib/table.js +1 -2
- package/lib/table.js.map +1 -1
- package/lib/tabs.d.ts.map +1 -1
- package/lib/tabs.js +1 -2
- package/lib/tabs.js.map +1 -1
- package/lib/utils/headerFooterHelpers.d.ts.map +1 -1
- package/lib/utils/headerFooterHelpers.js +36 -36
- package/lib/utils/headerFooterHelpers.js.map +1 -1
- package/lib/utils/index.js +1 -2
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/keyHelpers/accessData.d.ts.map +1 -1
- package/lib/utils/keyHelpers/accessData.js +33 -34
- package/lib/utils/keyHelpers/accessData.js.map +1 -1
- package/lib/utils/keyHelpers/acl.d.ts.map +1 -1
- package/lib/utils/keyHelpers/acl.js +21 -22
- package/lib/utils/keyHelpers/acl.js.map +1 -1
- package/lib/utils/keyHelpers/otherHelpers.d.ts.map +1 -1
- package/lib/utils/keyHelpers/otherHelpers.js +1 -2
- package/lib/utils/keyHelpers/otherHelpers.js.map +1 -1
- package/lib/utils/label.js +1 -2
- package/lib/utils/label.js.map +1 -1
- package/lib/versionInfo.d.ts +4 -3
- package/lib/versionInfo.d.ts.map +1 -1
- package/lib/versionInfo.js +30 -30
- package/lib/versionInfo.js.map +1 -1
- package/lib/widgets/buttons/iconLinks.d.ts.map +1 -1
- package/lib/widgets/buttons/iconLinks.js +2 -2
- package/lib/widgets/buttons/iconLinks.js.map +1 -1
- package/lib/widgets/buttons.d.ts +1 -1
- package/lib/widgets/buttons.d.ts.map +1 -1
- package/lib/widgets/buttons.js +1 -3
- package/lib/widgets/buttons.js.map +1 -1
- package/lib/widgets/dragAndDrop.js +1 -2
- package/lib/widgets/dragAndDrop.js.map +1 -1
- package/lib/widgets/error.js +1 -2
- package/lib/widgets/error.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteBar.js +47 -48
- package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteField.js +38 -39
- package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompletePicker.js +44 -45
- package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
- package/lib/widgets/forms/autocomplete/language.js +23 -24
- package/lib/widgets/forms/autocomplete/language.js.map +1 -1
- package/lib/widgets/forms/autocomplete/publicData.d.ts.map +1 -1
- package/lib/widgets/forms/autocomplete/publicData.js +91 -93
- package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
- package/lib/widgets/forms/basic.js +2 -3
- package/lib/widgets/forms/basic.js.map +1 -1
- package/lib/widgets/forms/comment.js +1 -2
- package/lib/widgets/forms/comment.js.map +1 -1
- package/lib/widgets/forms/fieldParams.js +1 -2
- package/lib/widgets/forms/fieldParams.js.map +1 -1
- package/lib/widgets/forms/formStyle.js +1 -2
- package/lib/widgets/forms/formStyle.js.map +1 -1
- package/lib/widgets/forms.js +79 -80
- package/lib/widgets/forms.js.map +1 -1
- package/lib/widgets/index.js +1 -2
- package/lib/widgets/index.js.map +1 -1
- package/lib/widgets/multiSelect.js +1 -2
- package/lib/widgets/multiSelect.js.map +1 -1
- package/lib/widgets/peoplePicker.js +1 -2
- package/lib/widgets/peoplePicker.js.map +1 -1
- package/lib/widgets/widgetHelpers.d.ts.map +1 -1
- package/lib/widgets/widgetHelpers.js +3 -3
- package/lib/widgets/widgetHelpers.js.map +1 -1
- package/package.json +57 -57
package/lib/chat/chatLogic.js
CHANGED
|
@@ -25,8 +25,7 @@ var $rdf = _interopRequireWildcard(require("rdflib"));
|
|
|
25
25
|
var utils = _interopRequireWildcard(require("../utils"));
|
|
26
26
|
var _signature = require("./signature");
|
|
27
27
|
var _keys = require("./keys");
|
|
28
|
-
function
|
|
29
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
28
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
|
|
30
29
|
/**
|
|
31
30
|
* Contains the [[ChatChannel]] class and logic for Solid Chat
|
|
32
31
|
* @packageDocumentation
|
|
@@ -58,7 +57,7 @@ var ChatChannel = exports.ChatChannel = /*#__PURE__*/function () {
|
|
|
58
57
|
key: "createMessage",
|
|
59
58
|
value: (function () {
|
|
60
59
|
var _createMessage = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(text) {
|
|
61
|
-
return _regenerator["default"].wrap(function
|
|
60
|
+
return _regenerator["default"].wrap(function (_context) {
|
|
62
61
|
while (1) switch (_context.prev = _context.next) {
|
|
63
62
|
case 0:
|
|
64
63
|
return _context.abrupt("return", this.updateMessage(text));
|
|
@@ -87,8 +86,8 @@ var ChatChannel = exports.ChatChannel = /*#__PURE__*/function () {
|
|
|
87
86
|
var deleteIt = arguments.length > 2 ? arguments[2] : undefined;
|
|
88
87
|
var thread = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
89
88
|
return /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
90
|
-
var sts, now, timestamp, dateStamp, chatDocument, message, me, msg, oldMsgMaker, oldMsgMostRecentVersion, oldMsgThread, errMsg, privateKey, sig, _errMsg;
|
|
91
|
-
return _regenerator["default"].wrap(function
|
|
89
|
+
var sts, now, timestamp, dateStamp, chatDocument, message, me, msg, oldMsgMaker, oldMsgMostRecentVersion, oldMsgThread, errMsg, privateKey, sig, _errMsg, _t;
|
|
90
|
+
return _regenerator["default"].wrap(function (_context2) {
|
|
92
91
|
while (1) switch (_context2.prev = _context2.next) {
|
|
93
92
|
case 0:
|
|
94
93
|
sts = [];
|
|
@@ -101,18 +100,18 @@ var ChatChannel = exports.ChatChannel = /*#__PURE__*/function () {
|
|
|
101
100
|
msg = (0, _signature.getBlankMsg)();
|
|
102
101
|
msg.id = message.uri;
|
|
103
102
|
if (!oldMsg) {
|
|
104
|
-
_context2.next =
|
|
103
|
+
_context2.next = 4;
|
|
105
104
|
break;
|
|
106
105
|
}
|
|
107
106
|
// edit message replaces old one
|
|
108
107
|
oldMsgMaker = _solidLogic.store.any(oldMsg, ns.foaf('maker')); // may not be needed here, but needed on READ
|
|
109
108
|
if (!(oldMsgMaker.uri === me.uri)) {
|
|
110
|
-
_context2.next =
|
|
109
|
+
_context2.next = 2;
|
|
111
110
|
break;
|
|
112
111
|
}
|
|
113
|
-
_context2.next =
|
|
112
|
+
_context2.next = 1;
|
|
114
113
|
return mostRecentVersion(oldMsg);
|
|
115
|
-
case
|
|
114
|
+
case 1:
|
|
116
115
|
oldMsgMostRecentVersion = _context2.sent;
|
|
117
116
|
sts.push($rdf.st(oldMsgMostRecentVersion, ns.dct('isReplacedBy'), message, chatDocument));
|
|
118
117
|
// if oldMsg has_reply => add has_reply to message
|
|
@@ -124,65 +123,65 @@ var ChatChannel = exports.ChatChannel = /*#__PURE__*/function () {
|
|
|
124
123
|
// we need to add a specific signature, else anyone can delete a msg ?
|
|
125
124
|
sts.push($rdf.st(message, ns.schema('dateDeleted'), dateStamp, chatDocument));
|
|
126
125
|
}
|
|
127
|
-
_context2.next =
|
|
126
|
+
_context2.next = 3;
|
|
128
127
|
break;
|
|
129
|
-
case
|
|
128
|
+
case 2:
|
|
130
129
|
errMsg = 'Error you cannot delete/edit a message from someone else : \n' + oldMsgMaker.uri;
|
|
131
130
|
debug.warn(errMsg);
|
|
132
131
|
alert(errMsg);
|
|
133
132
|
throw new Error(errMsg);
|
|
134
|
-
case
|
|
135
|
-
_context2.next =
|
|
133
|
+
case 3:
|
|
134
|
+
_context2.next = 5;
|
|
136
135
|
break;
|
|
137
|
-
case
|
|
136
|
+
case 4:
|
|
138
137
|
// link new message to channel
|
|
139
138
|
sts.push($rdf.st(_this.channel, ns.wf('message'), message, chatDocument));
|
|
140
|
-
case
|
|
139
|
+
case 5:
|
|
141
140
|
sts.push($rdf.st(message, ns.sioc('content'), _solidLogic.store.literal(text), chatDocument));
|
|
142
141
|
msg.content = text;
|
|
143
142
|
sts.push($rdf.st(message, ns.dct('created'), dateStamp, chatDocument));
|
|
144
143
|
msg.created = dateStamp.value;
|
|
145
144
|
if (!me) {
|
|
146
|
-
_context2.next =
|
|
145
|
+
_context2.next = 7;
|
|
147
146
|
break;
|
|
148
147
|
}
|
|
149
148
|
sts.push($rdf.st(message, ns.foaf('maker'), me, chatDocument));
|
|
150
149
|
msg.maker = me.uri;
|
|
151
150
|
// privateKey the cached private key of me, cached in store
|
|
152
|
-
_context2.next =
|
|
151
|
+
_context2.next = 6;
|
|
153
152
|
return (0, _keys.getPrivateKey)(me);
|
|
154
|
-
case
|
|
153
|
+
case 6:
|
|
155
154
|
privateKey = _context2.sent;
|
|
156
155
|
// me.uri)
|
|
157
156
|
sig = (0, _signature.signMsg)(msg, privateKey);
|
|
158
157
|
sts.push($rdf.st(message, $rdf.sym("".concat(_signature.SEC, "proofValue")), $rdf.lit(sig), chatDocument));
|
|
159
|
-
case
|
|
158
|
+
case 7:
|
|
160
159
|
if (thread) {
|
|
161
160
|
sts.push($rdf.st(thread, ns.sioc('has_member'), message, chatDocument));
|
|
162
161
|
if (!thread.doc().sameTerm(message.doc())) {
|
|
163
162
|
sts.push($rdf.st(thread, ns.sioc('has_member'), message, thread.doc()));
|
|
164
163
|
}
|
|
165
164
|
}
|
|
166
|
-
_context2.prev =
|
|
167
|
-
_context2.next =
|
|
165
|
+
_context2.prev = 8;
|
|
166
|
+
_context2.next = 9;
|
|
168
167
|
return _solidLogic.store.updater.updateMany([], sts);
|
|
169
|
-
case
|
|
170
|
-
_context2.next =
|
|
168
|
+
case 9:
|
|
169
|
+
_context2.next = 11;
|
|
171
170
|
break;
|
|
172
|
-
case
|
|
173
|
-
_context2.prev =
|
|
174
|
-
|
|
175
|
-
_errMsg = 'Error saving chat message: ' +
|
|
171
|
+
case 10:
|
|
172
|
+
_context2.prev = 10;
|
|
173
|
+
_t = _context2["catch"](8);
|
|
174
|
+
_errMsg = 'Error saving chat message: ' + _t;
|
|
176
175
|
debug.warn(_errMsg);
|
|
177
176
|
alert(_errMsg);
|
|
178
177
|
throw new Error(_errMsg);
|
|
179
|
-
case
|
|
178
|
+
case 11:
|
|
180
179
|
return _context2.abrupt("return", message);
|
|
181
|
-
case
|
|
180
|
+
case 12:
|
|
182
181
|
case "end":
|
|
183
182
|
return _context2.stop();
|
|
184
183
|
}
|
|
185
|
-
}, _callee2, null, [[
|
|
184
|
+
}, _callee2, null, [[8, 10]]);
|
|
186
185
|
})();
|
|
187
186
|
});
|
|
188
187
|
function updateMessage(_x2) {
|
|
@@ -199,7 +198,7 @@ var ChatChannel = exports.ChatChannel = /*#__PURE__*/function () {
|
|
|
199
198
|
key: "deleteMessage",
|
|
200
199
|
value: (function () {
|
|
201
200
|
var _deleteMessage = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(message) {
|
|
202
|
-
return _regenerator["default"].wrap(function
|
|
201
|
+
return _regenerator["default"].wrap(function (_context3) {
|
|
203
202
|
while (1) switch (_context3.prev = _context3.next) {
|
|
204
203
|
case 0:
|
|
205
204
|
return _context3.abrupt("return", this.updateMessage('(message deleted)', message, true));
|
|
@@ -221,25 +220,25 @@ var ChatChannel = exports.ChatChannel = /*#__PURE__*/function () {
|
|
|
221
220
|
value: function () {
|
|
222
221
|
var _createThread = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4(threadRoot) {
|
|
223
222
|
var already, thread, insert;
|
|
224
|
-
return _regenerator["default"].wrap(function
|
|
223
|
+
return _regenerator["default"].wrap(function (_context4) {
|
|
225
224
|
while (1) switch (_context4.prev = _context4.next) {
|
|
226
225
|
case 0:
|
|
227
226
|
already = _solidLogic.store.each(threadRoot, ns.sioc('has_reply'), null, threadRoot.doc()).filter(function (thread) {
|
|
228
227
|
return _solidLogic.store.holds(thread, ns.rdf('type'), ns.sioc('Thread'), thread.doc());
|
|
229
228
|
});
|
|
230
229
|
if (!(already.length > 0)) {
|
|
231
|
-
_context4.next =
|
|
230
|
+
_context4.next = 1;
|
|
232
231
|
break;
|
|
233
232
|
}
|
|
234
233
|
return _context4.abrupt("return", already[0]);
|
|
235
|
-
case
|
|
234
|
+
case 1:
|
|
236
235
|
thread = $rdf.sym(threadRoot.uri + '-thread');
|
|
237
236
|
insert = [$rdf.st(thread, ns.rdf('type'), ns.sioc('Thread'), thread.doc()), $rdf.st(threadRoot, ns.sioc('has_reply'), thread, thread.doc())];
|
|
238
|
-
_context4.next =
|
|
237
|
+
_context4.next = 2;
|
|
239
238
|
return _solidLogic.store.updater.update([], insert);
|
|
240
|
-
case
|
|
239
|
+
case 2:
|
|
241
240
|
return _context4.abrupt("return", thread);
|
|
242
|
-
case
|
|
241
|
+
case 3:
|
|
243
242
|
case "end":
|
|
244
243
|
return _context4.stop();
|
|
245
244
|
}
|
|
@@ -260,57 +259,57 @@ function allVersions(_x5) {
|
|
|
260
259
|
function _allVersions() {
|
|
261
260
|
_allVersions = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5(message) {
|
|
262
261
|
var versions, done, m, prev, next;
|
|
263
|
-
return _regenerator["default"].wrap(function
|
|
262
|
+
return _regenerator["default"].wrap(function (_context5) {
|
|
264
263
|
while (1) switch (_context5.prev = _context5.next) {
|
|
265
264
|
case 0:
|
|
266
265
|
versions = [message];
|
|
267
266
|
done = {};
|
|
268
267
|
done[message.uri] = true;
|
|
269
268
|
m = message;
|
|
270
|
-
case
|
|
269
|
+
case 1:
|
|
271
270
|
if (!true) {
|
|
272
|
-
_context5.next =
|
|
271
|
+
_context5.next = 4;
|
|
273
272
|
break;
|
|
274
273
|
}
|
|
275
274
|
// earlier?
|
|
276
275
|
prev = _solidLogic.store.any(null, ns.dct('isReplacedBy'), m, m.doc());
|
|
277
276
|
if (!(!prev || done[prev.uri])) {
|
|
278
|
-
_context5.next =
|
|
277
|
+
_context5.next = 2;
|
|
279
278
|
break;
|
|
280
279
|
}
|
|
281
|
-
return _context5.abrupt("
|
|
282
|
-
case
|
|
283
|
-
_context5.next =
|
|
280
|
+
return _context5.abrupt("continue", 4);
|
|
281
|
+
case 2:
|
|
282
|
+
_context5.next = 3;
|
|
284
283
|
return _solidLogic.store.fetcher.load(prev);
|
|
285
|
-
case
|
|
284
|
+
case 3:
|
|
286
285
|
versions.unshift(prev);
|
|
287
286
|
done[prev.uri] = true;
|
|
288
287
|
m = prev;
|
|
289
|
-
_context5.next =
|
|
288
|
+
_context5.next = 1;
|
|
290
289
|
break;
|
|
291
|
-
case
|
|
290
|
+
case 4:
|
|
292
291
|
m = message;
|
|
293
|
-
case
|
|
292
|
+
case 5:
|
|
294
293
|
if (!true) {
|
|
295
|
-
_context5.next =
|
|
294
|
+
_context5.next = 7;
|
|
296
295
|
break;
|
|
297
296
|
}
|
|
298
297
|
// later?
|
|
299
298
|
next = _solidLogic.store.any(m, ns.dct('isReplacedBy'), null, m.doc());
|
|
300
299
|
if (!(!next || done[next.uri])) {
|
|
301
|
-
_context5.next =
|
|
300
|
+
_context5.next = 6;
|
|
302
301
|
break;
|
|
303
302
|
}
|
|
304
|
-
return _context5.abrupt("
|
|
305
|
-
case
|
|
303
|
+
return _context5.abrupt("continue", 7);
|
|
304
|
+
case 6:
|
|
306
305
|
versions.push(next);
|
|
307
306
|
done[next.uri] = true;
|
|
308
307
|
m = next;
|
|
309
|
-
_context5.next =
|
|
308
|
+
_context5.next = 5;
|
|
310
309
|
break;
|
|
311
|
-
case
|
|
310
|
+
case 7:
|
|
312
311
|
return _context5.abrupt("return", versions);
|
|
313
|
-
case
|
|
312
|
+
case 8:
|
|
314
313
|
case "end":
|
|
315
314
|
return _context5.stop();
|
|
316
315
|
}
|
|
@@ -324,34 +323,34 @@ function originalVersion(_x6) {
|
|
|
324
323
|
function _originalVersion() {
|
|
325
324
|
_originalVersion = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee6(message) {
|
|
326
325
|
var msg, done;
|
|
327
|
-
return _regenerator["default"].wrap(function
|
|
326
|
+
return _regenerator["default"].wrap(function (_context6) {
|
|
328
327
|
while (1) switch (_context6.prev = _context6.next) {
|
|
329
328
|
case 0:
|
|
330
329
|
msg = message;
|
|
331
330
|
done = {}; // done[message.uri] = true
|
|
332
|
-
case
|
|
331
|
+
case 1:
|
|
333
332
|
if (!msg) {
|
|
334
|
-
_context6.next =
|
|
333
|
+
_context6.next = 4;
|
|
335
334
|
break;
|
|
336
335
|
}
|
|
337
336
|
if (!done[msg.uri]) {
|
|
338
|
-
_context6.next =
|
|
337
|
+
_context6.next = 2;
|
|
339
338
|
break;
|
|
340
339
|
}
|
|
341
340
|
debug.error('originalVersion: verion loop' + message);
|
|
342
341
|
return _context6.abrupt("return", message);
|
|
343
|
-
case
|
|
342
|
+
case 2:
|
|
344
343
|
done[msg.uri] = true;
|
|
345
344
|
message = msg;
|
|
346
|
-
_context6.next =
|
|
345
|
+
_context6.next = 3;
|
|
347
346
|
return _solidLogic.store.fetcher.load(message);
|
|
348
|
-
case
|
|
347
|
+
case 3:
|
|
349
348
|
msg = _solidLogic.store.any(null, ns.dct('isReplacedBy'), message, message.doc());
|
|
350
|
-
_context6.next =
|
|
349
|
+
_context6.next = 1;
|
|
351
350
|
break;
|
|
352
|
-
case
|
|
351
|
+
case 4:
|
|
353
352
|
return _context6.abrupt("return", message);
|
|
354
|
-
case
|
|
353
|
+
case 5:
|
|
355
354
|
case "end":
|
|
356
355
|
return _context6.stop();
|
|
357
356
|
}
|
|
@@ -365,34 +364,34 @@ function mostRecentVersion(_x7) {
|
|
|
365
364
|
function _mostRecentVersion() {
|
|
366
365
|
_mostRecentVersion = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee7(message) {
|
|
367
366
|
var msg, done;
|
|
368
|
-
return _regenerator["default"].wrap(function
|
|
367
|
+
return _regenerator["default"].wrap(function (_context7) {
|
|
369
368
|
while (1) switch (_context7.prev = _context7.next) {
|
|
370
369
|
case 0:
|
|
371
370
|
msg = message;
|
|
372
371
|
done = {};
|
|
373
|
-
case
|
|
372
|
+
case 1:
|
|
374
373
|
if (!msg) {
|
|
375
|
-
_context7.next =
|
|
374
|
+
_context7.next = 4;
|
|
376
375
|
break;
|
|
377
376
|
}
|
|
378
377
|
if (!done[msg.uri]) {
|
|
379
|
-
_context7.next =
|
|
378
|
+
_context7.next = 2;
|
|
380
379
|
break;
|
|
381
380
|
}
|
|
382
381
|
debug.error('mostRecentVersion: verion loop' + message);
|
|
383
382
|
return _context7.abrupt("return", message);
|
|
384
|
-
case
|
|
383
|
+
case 2:
|
|
385
384
|
done[msg.uri] = true;
|
|
386
385
|
message = msg;
|
|
387
|
-
_context7.next =
|
|
386
|
+
_context7.next = 3;
|
|
388
387
|
return _solidLogic.store.fetcher.load(message);
|
|
389
|
-
case
|
|
388
|
+
case 3:
|
|
390
389
|
msg = _solidLogic.store.any(message, ns.dct('isReplacedBy'), null, message.doc());
|
|
391
|
-
_context7.next =
|
|
390
|
+
_context7.next = 1;
|
|
392
391
|
break;
|
|
393
|
-
case
|
|
392
|
+
case 4:
|
|
394
393
|
return _context7.abrupt("return", message);
|
|
395
|
-
case
|
|
394
|
+
case 5:
|
|
396
395
|
case "end":
|
|
397
396
|
return _context7.stop();
|
|
398
397
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatLogic.js","names":["debug","_interopRequireWildcard","require","_dateFolder","_solidLogic","ns","$rdf","utils","_signature","_keys","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ChatChannel","exports","channel","options","_classCallCheck2","channelRoot","doc","dateFolder","DateFolder","div","_createClass2","key","value","_createMessage","_asyncToGenerator2","_regenerator","mark","_callee","text","wrap","_callee$","_context","prev","next","abrupt","updateMessage","stop","createMessage","_x","apply","arguments","_updateMessage","_this","oldMsg","length","undefined","deleteIt","thread","_callee2","sts","now","timestamp","dateStamp","chatDocument","message","me","msg","oldMsgMaker","oldMsgMostRecentVersion","oldMsgThread","errMsg","privateKey","sig","_errMsg","_callee2$","_context2","Date","getTime","term","leafDocumentFromDate","store","sym","uri","authn","currentUser","getBlankMsg","id","any","foaf","mostRecentVersion","sent","push","st","dct","sioc","schema","warn","alert","Error","wf","literal","content","created","maker","getPrivateKey","signMsg","concat","SEC","lit","sameTerm","updater","updateMany","t0","_x2","_deleteMessage","_callee3","_callee3$","_context3","deleteMessage","_x3","_createThread","_callee4","threadRoot","already","insert","_callee4$","_context4","each","filter","holds","rdf","update","createThread","_x4","allVersions","_x5","_allVersions","_callee5","versions","done","m","_callee5$","_context5","fetcher","load","unshift","originalVersion","_x6","_originalVersion","_callee6","_callee6$","_context6","error","_x7","_mostRecentVersion","_callee7","_callee7$","_context7","isDeleted","isReplaced","isHidden","nick","person","s","label"],"sources":["../../src/chat/chatLogic.js"],"sourcesContent":["/**\n * Contains the [[ChatChannel]] class and logic for Solid Chat\n * @packageDocumentation\n */\n\nimport * as debug from '../debug'\nimport { DateFolder } from './dateFolder'\nimport { store, authn } from 'solid-logic'\nimport * as ns from '../ns'\nimport * as $rdf from 'rdflib' // pull in first avoid cross-refs\nimport * as utils from '../utils'\nimport { getBlankMsg, signMsg, SEC } from './signature'\nimport { getPrivateKey } from './keys'\n\n/* The Solid logic for a 'LongChat'\n*/\n/**\n * Common code for a chat (discussion area of messages about something)\n * This version runs over a series of files for different time periods\n *\n * Parameters for the whole chat like its title are stored on\n * index.ttl#this and the chats messages are stored in YYYY/MM/DD/chat.ttl\n *\n */\n\nexport class ChatChannel {\n constructor (channel, options) {\n this.channel = channel\n this.channelRoot = channel.doc()\n this.options = options\n this.dateFolder = new DateFolder(this.channelRoot, 'chat.ttl')\n this.div = null // : HTMLElement\n }\n\n /* Store a new message in the web,\n */\n async createMessage (text) {\n return this.updateMessage(text)\n }\n\n /* Store a new message in the web,\n as a replacement for an existing one.\n The old one iis left, and the two are linked\n */\n async updateMessage (text, oldMsg = null, deleteIt, thread = null) {\n const sts = []\n const now = new Date()\n const timestamp = '' + now.getTime()\n const dateStamp = $rdf.term(now)\n const chatDocument = oldMsg ? oldMsg.doc() : this.dateFolder.leafDocumentFromDate(now)\n const message = store.sym(chatDocument.uri + '#' + 'Msg' + timestamp)\n // const content = store.literal(text)\n\n const me = authn.currentUser() // If already logged on\n\n const msg = getBlankMsg()\n msg.id = message.uri\n if (oldMsg) { // edit message replaces old one\n const oldMsgMaker = store.any(oldMsg, ns.foaf('maker')) // may not be needed here, but needed on READ\n if (oldMsgMaker.uri === me.uri) {\n const oldMsgMostRecentVersion = await mostRecentVersion(oldMsg)\n sts.push($rdf.st(oldMsgMostRecentVersion, ns.dct('isReplacedBy'), message, chatDocument))\n // if oldMsg has_reply => add has_reply to message\n const oldMsgThread = store.any(oldMsgMostRecentVersion, ns.sioc('has_reply'))\n if (oldMsgThread) {\n sts.push($rdf.st(message, ns.sioc('has_reply'), oldMsgThread, chatDocument))\n }\n if (deleteIt) { // we need to add a specific signature, else anyone can delete a msg ?\n sts.push($rdf.st(message, ns.schema('dateDeleted'), dateStamp, chatDocument))\n }\n } else {\n const errMsg = 'Error you cannot delete/edit a message from someone else : \\n' + oldMsgMaker.uri\n debug.warn(errMsg)\n alert(errMsg)\n throw new Error(errMsg)\n }\n } else { // link new message to channel\n sts.push($rdf.st(this.channel, ns.wf('message'), message, chatDocument))\n }\n sts.push(\n $rdf.st(message, ns.sioc('content'), store.literal(text), chatDocument)\n )\n msg.content = text\n\n sts.push(\n $rdf.st(message, ns.dct('created'), dateStamp, chatDocument)\n )\n msg.created = dateStamp.value\n if (me) {\n sts.push($rdf.st(message, ns.foaf('maker'), me, chatDocument))\n msg.maker = me.uri\n // privateKey the cached private key of me, cached in store\n const privateKey = await getPrivateKey(me) // me.uri)\n\n const sig = signMsg(msg, privateKey)\n sts.push($rdf.st(message, $rdf.sym(`${SEC}proofValue`), $rdf.lit(sig), chatDocument))\n }\n if (thread) {\n sts.push($rdf.st(thread, ns.sioc('has_member'), message, chatDocument))\n if (!thread.doc().sameTerm(message.doc())) {\n sts.push($rdf.st(thread, ns.sioc('has_member'), message, thread.doc()))\n }\n }\n\n try {\n await store.updater.updateMany([], sts)\n } catch (err) {\n const errMsg = 'Error saving chat message: ' + err\n debug.warn(errMsg)\n alert(errMsg)\n throw new Error(errMsg)\n }\n return message\n }\n\n /* Mark a message as deleted\n * Wee add a new version of the message,m witha deletion flag (deletion date)\n * so that the deletion can be revoked by adding another non-deleted update\n */\n async deleteMessage (message) {\n return this.updateMessage('(message deleted)', message, true)\n }\n\n // Create a new thread of replies to the thread root message\n // or return one which already exists\n\n async createThread (threadRoot) {\n const already = store.each(threadRoot, ns.sioc('has_reply'), null, threadRoot.doc())\n .filter(thread => store.holds(thread, ns.rdf('type'), ns.sioc('Thread'), thread.doc()))\n if (already.length > 0) return already[0]\n\n const thread = $rdf.sym(threadRoot.uri + '-thread')\n const insert = [\n $rdf.st(thread, ns.rdf('type'), ns.sioc('Thread'), thread.doc()),\n $rdf.st(threadRoot, ns.sioc('has_reply'), thread, thread.doc())\n ]\n await store.updater.update([], insert)\n return thread\n }\n} // class ChatChannel\n\n// ////////// Utility functions\n\n// Have to not loop forever if fed loops\nexport async function allVersions (message) {\n const versions = [message]\n const done = {}\n done[message.uri] = true\n let m = message\n while (true) { // earlier?\n const prev = store.any(null, ns.dct('isReplacedBy'), m, m.doc())\n if (!prev || done[prev.uri]) break\n await store.fetcher.load(prev)\n versions.unshift(prev)\n done[prev.uri] = true\n m = prev\n }\n m = message\n while (true) { // later?\n const next = store.any(m, ns.dct('isReplacedBy'), null, m.doc())\n if (!next || done[next.uri]) break\n versions.push(next)\n done[next.uri] = true\n m = next\n }\n return versions\n}\n\nexport async function originalVersion (message) {\n let msg = message\n const done = {}\n // done[message.uri] = true\n while (msg) {\n if (done[msg.uri]) {\n debug.error('originalVersion: verion loop' + message)\n return message\n }\n done[msg.uri] = true\n message = msg\n await store.fetcher.load(message)\n msg = store.any(null, ns.dct('isReplacedBy'), message, message.doc())\n }\n return message\n}\n\nexport async function mostRecentVersion (message) {\n let msg = message\n const done = {}\n while (msg) {\n if (done[msg.uri]) {\n debug.error('mostRecentVersion: verion loop' + message)\n return message\n }\n done[msg.uri] = true\n message = msg\n await store.fetcher.load(message)\n msg = store.any(message, ns.dct('isReplacedBy'), null, message.doc())\n }\n return message\n}\n\nexport function isDeleted (message) {\n return store.holds(message, ns.schema('dateDeleted'), null, message.doc())\n}\n\nexport function isReplaced (message) {\n return store.holds(message, ns.dct('isReplacedBy'), null, message.doc())\n}\n\nexport function isHidden (message) {\n return this.isDeleted(message) || this.isReplaced(message)\n}\n\n// A Nickname for a person\n\nexport function nick (person) {\n const s = store.any(person, ns.foaf('nick'))\n if (s) return '' + s.value\n return '' + utils.label(person)\n}\n// ends\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"chatLogic.js","names":["debug","_interopRequireWildcard","require","_dateFolder","_solidLogic","ns","$rdf","utils","_signature","_keys","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t2","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ChatChannel","exports","channel","options","_classCallCheck2","channelRoot","doc","dateFolder","DateFolder","div","_createClass2","key","value","_createMessage","_asyncToGenerator2","_regenerator","mark","_callee","text","wrap","_context","prev","next","abrupt","updateMessage","stop","createMessage","_x","apply","arguments","_updateMessage","_this","oldMsg","length","undefined","deleteIt","thread","_callee2","sts","now","timestamp","dateStamp","chatDocument","message","me","msg","oldMsgMaker","oldMsgMostRecentVersion","oldMsgThread","errMsg","privateKey","sig","_errMsg","_t","_context2","Date","getTime","term","leafDocumentFromDate","store","sym","uri","authn","currentUser","getBlankMsg","id","any","foaf","mostRecentVersion","sent","push","st","dct","sioc","schema","warn","alert","Error","wf","literal","content","created","maker","getPrivateKey","signMsg","concat","SEC","lit","sameTerm","updater","updateMany","_x2","_deleteMessage","_callee3","_context3","deleteMessage","_x3","_createThread","_callee4","threadRoot","already","insert","_context4","each","filter","holds","rdf","update","createThread","_x4","allVersions","_x5","_allVersions","_callee5","versions","done","m","_context5","fetcher","load","unshift","originalVersion","_x6","_originalVersion","_callee6","_context6","error","_x7","_mostRecentVersion","_callee7","_context7","isDeleted","isReplaced","isHidden","nick","person","s","label"],"sources":["../../src/chat/chatLogic.js"],"sourcesContent":["/**\n * Contains the [[ChatChannel]] class and logic for Solid Chat\n * @packageDocumentation\n */\n\nimport * as debug from '../debug'\nimport { DateFolder } from './dateFolder'\nimport { store, authn } from 'solid-logic'\nimport * as ns from '../ns'\nimport * as $rdf from 'rdflib' // pull in first avoid cross-refs\nimport * as utils from '../utils'\nimport { getBlankMsg, signMsg, SEC } from './signature'\nimport { getPrivateKey } from './keys'\n\n/* The Solid logic for a 'LongChat'\n*/\n/**\n * Common code for a chat (discussion area of messages about something)\n * This version runs over a series of files for different time periods\n *\n * Parameters for the whole chat like its title are stored on\n * index.ttl#this and the chats messages are stored in YYYY/MM/DD/chat.ttl\n *\n */\n\nexport class ChatChannel {\n constructor (channel, options) {\n this.channel = channel\n this.channelRoot = channel.doc()\n this.options = options\n this.dateFolder = new DateFolder(this.channelRoot, 'chat.ttl')\n this.div = null // : HTMLElement\n }\n\n /* Store a new message in the web,\n */\n async createMessage (text) {\n return this.updateMessage(text)\n }\n\n /* Store a new message in the web,\n as a replacement for an existing one.\n The old one iis left, and the two are linked\n */\n async updateMessage (text, oldMsg = null, deleteIt, thread = null) {\n const sts = []\n const now = new Date()\n const timestamp = '' + now.getTime()\n const dateStamp = $rdf.term(now)\n const chatDocument = oldMsg ? oldMsg.doc() : this.dateFolder.leafDocumentFromDate(now)\n const message = store.sym(chatDocument.uri + '#' + 'Msg' + timestamp)\n // const content = store.literal(text)\n\n const me = authn.currentUser() // If already logged on\n\n const msg = getBlankMsg()\n msg.id = message.uri\n if (oldMsg) { // edit message replaces old one\n const oldMsgMaker = store.any(oldMsg, ns.foaf('maker')) // may not be needed here, but needed on READ\n if (oldMsgMaker.uri === me.uri) {\n const oldMsgMostRecentVersion = await mostRecentVersion(oldMsg)\n sts.push($rdf.st(oldMsgMostRecentVersion, ns.dct('isReplacedBy'), message, chatDocument))\n // if oldMsg has_reply => add has_reply to message\n const oldMsgThread = store.any(oldMsgMostRecentVersion, ns.sioc('has_reply'))\n if (oldMsgThread) {\n sts.push($rdf.st(message, ns.sioc('has_reply'), oldMsgThread, chatDocument))\n }\n if (deleteIt) { // we need to add a specific signature, else anyone can delete a msg ?\n sts.push($rdf.st(message, ns.schema('dateDeleted'), dateStamp, chatDocument))\n }\n } else {\n const errMsg = 'Error you cannot delete/edit a message from someone else : \\n' + oldMsgMaker.uri\n debug.warn(errMsg)\n alert(errMsg)\n throw new Error(errMsg)\n }\n } else { // link new message to channel\n sts.push($rdf.st(this.channel, ns.wf('message'), message, chatDocument))\n }\n sts.push(\n $rdf.st(message, ns.sioc('content'), store.literal(text), chatDocument)\n )\n msg.content = text\n\n sts.push(\n $rdf.st(message, ns.dct('created'), dateStamp, chatDocument)\n )\n msg.created = dateStamp.value\n if (me) {\n sts.push($rdf.st(message, ns.foaf('maker'), me, chatDocument))\n msg.maker = me.uri\n // privateKey the cached private key of me, cached in store\n const privateKey = await getPrivateKey(me) // me.uri)\n\n const sig = signMsg(msg, privateKey)\n sts.push($rdf.st(message, $rdf.sym(`${SEC}proofValue`), $rdf.lit(sig), chatDocument))\n }\n if (thread) {\n sts.push($rdf.st(thread, ns.sioc('has_member'), message, chatDocument))\n if (!thread.doc().sameTerm(message.doc())) {\n sts.push($rdf.st(thread, ns.sioc('has_member'), message, thread.doc()))\n }\n }\n\n try {\n await store.updater.updateMany([], sts)\n } catch (err) {\n const errMsg = 'Error saving chat message: ' + err\n debug.warn(errMsg)\n alert(errMsg)\n throw new Error(errMsg)\n }\n return message\n }\n\n /* Mark a message as deleted\n * Wee add a new version of the message,m witha deletion flag (deletion date)\n * so that the deletion can be revoked by adding another non-deleted update\n */\n async deleteMessage (message) {\n return this.updateMessage('(message deleted)', message, true)\n }\n\n // Create a new thread of replies to the thread root message\n // or return one which already exists\n\n async createThread (threadRoot) {\n const already = store.each(threadRoot, ns.sioc('has_reply'), null, threadRoot.doc())\n .filter(thread => store.holds(thread, ns.rdf('type'), ns.sioc('Thread'), thread.doc()))\n if (already.length > 0) return already[0]\n\n const thread = $rdf.sym(threadRoot.uri + '-thread')\n const insert = [\n $rdf.st(thread, ns.rdf('type'), ns.sioc('Thread'), thread.doc()),\n $rdf.st(threadRoot, ns.sioc('has_reply'), thread, thread.doc())\n ]\n await store.updater.update([], insert)\n return thread\n }\n} // class ChatChannel\n\n// ////////// Utility functions\n\n// Have to not loop forever if fed loops\nexport async function allVersions (message) {\n const versions = [message]\n const done = {}\n done[message.uri] = true\n let m = message\n while (true) { // earlier?\n const prev = store.any(null, ns.dct('isReplacedBy'), m, m.doc())\n if (!prev || done[prev.uri]) break\n await store.fetcher.load(prev)\n versions.unshift(prev)\n done[prev.uri] = true\n m = prev\n }\n m = message\n while (true) { // later?\n const next = store.any(m, ns.dct('isReplacedBy'), null, m.doc())\n if (!next || done[next.uri]) break\n versions.push(next)\n done[next.uri] = true\n m = next\n }\n return versions\n}\n\nexport async function originalVersion (message) {\n let msg = message\n const done = {}\n // done[message.uri] = true\n while (msg) {\n if (done[msg.uri]) {\n debug.error('originalVersion: verion loop' + message)\n return message\n }\n done[msg.uri] = true\n message = msg\n await store.fetcher.load(message)\n msg = store.any(null, ns.dct('isReplacedBy'), message, message.doc())\n }\n return message\n}\n\nexport async function mostRecentVersion (message) {\n let msg = message\n const done = {}\n while (msg) {\n if (done[msg.uri]) {\n debug.error('mostRecentVersion: verion loop' + message)\n return message\n }\n done[msg.uri] = true\n message = msg\n await store.fetcher.load(message)\n msg = store.any(message, ns.dct('isReplacedBy'), null, message.doc())\n }\n return message\n}\n\nexport function isDeleted (message) {\n return store.holds(message, ns.schema('dateDeleted'), null, message.doc())\n}\n\nexport function isReplaced (message) {\n return store.holds(message, ns.dct('isReplacedBy'), null, message.doc())\n}\n\nexport function isHidden (message) {\n return this.isDeleted(message) || this.isReplaced(message)\n}\n\n// A Nickname for a person\n\nexport function nick (person) {\n const s = store.any(person, ns.foaf('nick'))\n if (s) return '' + s.value\n return '' + utils.label(person)\n}\n// ends\n"],"mappings":"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","ignoreList":[]}
|