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.
Files changed (143) hide show
  1. package/README.md +4 -0
  2. package/dist/841.solid-ui.min.js +1 -1
  3. package/dist/841.solid-ui.min.js.map +1 -1
  4. package/dist/_2b19.solid-ui.js.map +1 -1
  5. package/dist/solid-ui.js +42754 -45728
  6. package/dist/solid-ui.js.map +1 -1
  7. package/dist/solid-ui.min.js +1 -1
  8. package/dist/solid-ui.min.js.LICENSE.txt +1 -5
  9. package/dist/solid-ui.min.js.map +1 -1
  10. package/lib/acl/access-controller.js +48 -49
  11. package/lib/acl/access-controller.js.map +1 -1
  12. package/lib/acl/access-groups.js +40 -40
  13. package/lib/acl/access-groups.js.map +1 -1
  14. package/lib/acl/acl-control.js +18 -19
  15. package/lib/acl/acl-control.js.map +1 -1
  16. package/lib/acl/acl.js +4 -5
  17. package/lib/acl/acl.js.map +1 -1
  18. package/lib/acl/add-agent-buttons.js +51 -52
  19. package/lib/acl/add-agent-buttons.js.map +1 -1
  20. package/lib/chat/bookmarks.js +76 -77
  21. package/lib/chat/bookmarks.js.map +1 -1
  22. package/lib/chat/chatLogic.js +74 -75
  23. package/lib/chat/chatLogic.js.map +1 -1
  24. package/lib/chat/dateFolder.js +66 -67
  25. package/lib/chat/dateFolder.js.map +1 -1
  26. package/lib/chat/infinite.js +218 -220
  27. package/lib/chat/infinite.js.map +1 -1
  28. package/lib/chat/keys.js +62 -63
  29. package/lib/chat/keys.js.map +1 -1
  30. package/lib/chat/message.js +98 -100
  31. package/lib/chat/message.js.map +1 -1
  32. package/lib/chat/messageTools.js +99 -100
  33. package/lib/chat/messageTools.js.map +1 -1
  34. package/lib/chat/signature.d.ts.map +1 -1
  35. package/lib/chat/signature.js +0 -1
  36. package/lib/chat/signature.js.map +1 -1
  37. package/lib/chat/thread.js +57 -61
  38. package/lib/chat/thread.js.map +1 -1
  39. package/lib/create/create.js +1 -2
  40. package/lib/create/create.js.map +1 -1
  41. package/lib/folders.js +1 -4
  42. package/lib/folders.js.map +1 -1
  43. package/lib/footer/index.d.ts.map +1 -1
  44. package/lib/footer/index.js +14 -16
  45. package/lib/footer/index.js.map +1 -1
  46. package/lib/header/index.js +34 -36
  47. package/lib/header/index.js.map +1 -1
  48. package/lib/iconBase.d.ts.map +1 -1
  49. package/lib/iconBase.js +0 -1
  50. package/lib/iconBase.js.map +1 -1
  51. package/lib/index.d.ts +1 -1
  52. package/lib/index.d.ts.map +1 -1
  53. package/lib/index.js +5 -5
  54. package/lib/index.js.map +1 -1
  55. package/lib/log.d.ts +7 -7
  56. package/lib/log.d.ts.map +1 -1
  57. package/lib/log.js +2 -2
  58. package/lib/log.js.map +1 -1
  59. package/lib/login/login.js +217 -222
  60. package/lib/login/login.js.map +1 -1
  61. package/lib/matrix/matrix.js +1 -2
  62. package/lib/matrix/matrix.js.map +1 -1
  63. package/lib/matrix/types.js.map +1 -1
  64. package/lib/media/media-capture.js +3 -4
  65. package/lib/media/media-capture.js.map +1 -1
  66. package/lib/messageArea.js +1 -4
  67. package/lib/messageArea.js.map +1 -1
  68. package/lib/ns.js +1 -2
  69. package/lib/ns.js.map +1 -1
  70. package/lib/pad.js +1 -2
  71. package/lib/pad.js.map +1 -1
  72. package/lib/participation.js +1 -2
  73. package/lib/participation.js.map +1 -1
  74. package/lib/preferences.js +1 -2
  75. package/lib/preferences.js.map +1 -1
  76. package/lib/table.js +1 -2
  77. package/lib/table.js.map +1 -1
  78. package/lib/tabs.d.ts.map +1 -1
  79. package/lib/tabs.js +1 -2
  80. package/lib/tabs.js.map +1 -1
  81. package/lib/utils/headerFooterHelpers.d.ts.map +1 -1
  82. package/lib/utils/headerFooterHelpers.js +36 -36
  83. package/lib/utils/headerFooterHelpers.js.map +1 -1
  84. package/lib/utils/index.js +1 -2
  85. package/lib/utils/index.js.map +1 -1
  86. package/lib/utils/keyHelpers/accessData.d.ts.map +1 -1
  87. package/lib/utils/keyHelpers/accessData.js +33 -34
  88. package/lib/utils/keyHelpers/accessData.js.map +1 -1
  89. package/lib/utils/keyHelpers/acl.d.ts.map +1 -1
  90. package/lib/utils/keyHelpers/acl.js +21 -22
  91. package/lib/utils/keyHelpers/acl.js.map +1 -1
  92. package/lib/utils/keyHelpers/otherHelpers.d.ts.map +1 -1
  93. package/lib/utils/keyHelpers/otherHelpers.js +1 -2
  94. package/lib/utils/keyHelpers/otherHelpers.js.map +1 -1
  95. package/lib/utils/label.js +1 -2
  96. package/lib/utils/label.js.map +1 -1
  97. package/lib/versionInfo.d.ts +4 -3
  98. package/lib/versionInfo.d.ts.map +1 -1
  99. package/lib/versionInfo.js +30 -30
  100. package/lib/versionInfo.js.map +1 -1
  101. package/lib/widgets/buttons/iconLinks.d.ts.map +1 -1
  102. package/lib/widgets/buttons/iconLinks.js +2 -2
  103. package/lib/widgets/buttons/iconLinks.js.map +1 -1
  104. package/lib/widgets/buttons.d.ts +1 -1
  105. package/lib/widgets/buttons.d.ts.map +1 -1
  106. package/lib/widgets/buttons.js +1 -3
  107. package/lib/widgets/buttons.js.map +1 -1
  108. package/lib/widgets/dragAndDrop.js +1 -2
  109. package/lib/widgets/dragAndDrop.js.map +1 -1
  110. package/lib/widgets/error.js +1 -2
  111. package/lib/widgets/error.js.map +1 -1
  112. package/lib/widgets/forms/autocomplete/autocompleteBar.js +47 -48
  113. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
  114. package/lib/widgets/forms/autocomplete/autocompleteField.js +38 -39
  115. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
  116. package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts.map +1 -1
  117. package/lib/widgets/forms/autocomplete/autocompletePicker.js +44 -45
  118. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
  119. package/lib/widgets/forms/autocomplete/language.js +23 -24
  120. package/lib/widgets/forms/autocomplete/language.js.map +1 -1
  121. package/lib/widgets/forms/autocomplete/publicData.d.ts.map +1 -1
  122. package/lib/widgets/forms/autocomplete/publicData.js +91 -93
  123. package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
  124. package/lib/widgets/forms/basic.js +2 -3
  125. package/lib/widgets/forms/basic.js.map +1 -1
  126. package/lib/widgets/forms/comment.js +1 -2
  127. package/lib/widgets/forms/comment.js.map +1 -1
  128. package/lib/widgets/forms/fieldParams.js +1 -2
  129. package/lib/widgets/forms/fieldParams.js.map +1 -1
  130. package/lib/widgets/forms/formStyle.js +1 -2
  131. package/lib/widgets/forms/formStyle.js.map +1 -1
  132. package/lib/widgets/forms.js +79 -80
  133. package/lib/widgets/forms.js.map +1 -1
  134. package/lib/widgets/index.js +1 -2
  135. package/lib/widgets/index.js.map +1 -1
  136. package/lib/widgets/multiSelect.js +1 -2
  137. package/lib/widgets/multiSelect.js.map +1 -1
  138. package/lib/widgets/peoplePicker.js +1 -2
  139. package/lib/widgets/peoplePicker.js.map +1 -1
  140. package/lib/widgets/widgetHelpers.d.ts.map +1 -1
  141. package/lib/widgets/widgetHelpers.js +3 -3
  142. package/lib/widgets/widgetHelpers.js.map +1 -1
  143. package/package.json +57 -57
@@ -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 _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
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 _callee$(_context) {
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 _callee2$(_context2) {
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 = 27;
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 = 21;
109
+ _context2.next = 2;
111
110
  break;
112
111
  }
113
- _context2.next = 14;
112
+ _context2.next = 1;
114
113
  return mostRecentVersion(oldMsg);
115
- case 14:
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 = 25;
126
+ _context2.next = 3;
128
127
  break;
129
- case 21:
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 25:
135
- _context2.next = 28;
133
+ case 3:
134
+ _context2.next = 5;
136
135
  break;
137
- case 27:
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 28:
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 = 40;
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 = 37;
151
+ _context2.next = 6;
153
152
  return (0, _keys.getPrivateKey)(me);
154
- case 37:
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 40:
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 = 41;
167
- _context2.next = 44;
165
+ _context2.prev = 8;
166
+ _context2.next = 9;
168
167
  return _solidLogic.store.updater.updateMany([], sts);
169
- case 44:
170
- _context2.next = 52;
168
+ case 9:
169
+ _context2.next = 11;
171
170
  break;
172
- case 46:
173
- _context2.prev = 46;
174
- _context2.t0 = _context2["catch"](41);
175
- _errMsg = 'Error saving chat message: ' + _context2.t0;
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 52:
178
+ case 11:
180
179
  return _context2.abrupt("return", message);
181
- case 53:
180
+ case 12:
182
181
  case "end":
183
182
  return _context2.stop();
184
183
  }
185
- }, _callee2, null, [[41, 46]]);
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 _callee3$(_context3) {
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 _callee4$(_context4) {
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 = 3;
230
+ _context4.next = 1;
232
231
  break;
233
232
  }
234
233
  return _context4.abrupt("return", already[0]);
235
- case 3:
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 = 7;
237
+ _context4.next = 2;
239
238
  return _solidLogic.store.updater.update([], insert);
240
- case 7:
239
+ case 2:
241
240
  return _context4.abrupt("return", thread);
242
- case 8:
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 _callee5$(_context5) {
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 4:
269
+ case 1:
271
270
  if (!true) {
272
- _context5.next = 15;
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 = 8;
277
+ _context5.next = 2;
279
278
  break;
280
279
  }
281
- return _context5.abrupt("break", 15);
282
- case 8:
283
- _context5.next = 10;
280
+ return _context5.abrupt("continue", 4);
281
+ case 2:
282
+ _context5.next = 3;
284
283
  return _solidLogic.store.fetcher.load(prev);
285
- case 10:
284
+ case 3:
286
285
  versions.unshift(prev);
287
286
  done[prev.uri] = true;
288
287
  m = prev;
289
- _context5.next = 4;
288
+ _context5.next = 1;
290
289
  break;
291
- case 15:
290
+ case 4:
292
291
  m = message;
293
- case 16:
292
+ case 5:
294
293
  if (!true) {
295
- _context5.next = 25;
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 = 20;
300
+ _context5.next = 6;
302
301
  break;
303
302
  }
304
- return _context5.abrupt("break", 25);
305
- case 20:
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 = 16;
308
+ _context5.next = 5;
310
309
  break;
311
- case 25:
310
+ case 7:
312
311
  return _context5.abrupt("return", versions);
313
- case 26:
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 _callee6$(_context6) {
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 2:
331
+ case 1:
333
332
  if (!msg) {
334
- _context6.next = 13;
333
+ _context6.next = 4;
335
334
  break;
336
335
  }
337
336
  if (!done[msg.uri]) {
338
- _context6.next = 6;
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 6:
342
+ case 2:
344
343
  done[msg.uri] = true;
345
344
  message = msg;
346
- _context6.next = 10;
345
+ _context6.next = 3;
347
346
  return _solidLogic.store.fetcher.load(message);
348
- case 10:
347
+ case 3:
349
348
  msg = _solidLogic.store.any(null, ns.dct('isReplacedBy'), message, message.doc());
350
- _context6.next = 2;
349
+ _context6.next = 1;
351
350
  break;
352
- case 13:
351
+ case 4:
353
352
  return _context6.abrupt("return", message);
354
- case 14:
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 _callee7$(_context7) {
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 2:
372
+ case 1:
374
373
  if (!msg) {
375
- _context7.next = 13;
374
+ _context7.next = 4;
376
375
  break;
377
376
  }
378
377
  if (!done[msg.uri]) {
379
- _context7.next = 6;
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 6:
383
+ case 2:
385
384
  done[msg.uri] = true;
386
385
  message = msg;
387
- _context7.next = 10;
386
+ _context7.next = 3;
388
387
  return _solidLogic.store.fetcher.load(message);
389
- case 10:
388
+ case 3:
390
389
  msg = _solidLogic.store.any(message, ns.dct('isReplacedBy'), null, message.doc());
391
- _context7.next = 2;
390
+ _context7.next = 1;
392
391
  break;
393
- case 13:
392
+ case 4:
394
393
  return _context7.abrupt("return", message);
395
- case 14:
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":[]}