solid-ui 2.4.26-029ae1f9 → 2.4.26-068520ea

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.
@@ -220,60 +220,65 @@ var ChatChannel = /*#__PURE__*/function () {
220
220
  return ChatChannel;
221
221
  }(); // class ChatChannel
222
222
  // ////////// Utility functions
223
+ // Have to not loop forever if fed loops
223
224
  exports.ChatChannel = ChatChannel;
224
225
  function allVersions(_x5) {
225
226
  return _allVersions.apply(this, arguments);
226
227
  }
227
228
  function _allVersions() {
228
229
  _allVersions = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(message) {
229
- var versions, m, prev, next;
230
+ var versions, done, m, prev, next;
230
231
  return _regenerator["default"].wrap(function _callee5$(_context5) {
231
232
  while (1) switch (_context5.prev = _context5.next) {
232
233
  case 0:
233
234
  versions = [message];
235
+ done = {};
236
+ done[message.ur] = true;
234
237
  m = message;
235
- case 2:
238
+ case 4:
236
239
  if (!true) {
237
- _context5.next = 12;
240
+ _context5.next = 15;
238
241
  break;
239
242
  }
240
243
  // earlier?
241
244
  prev = _solidLogic.store.any(null, ns.dct('isReplacedBy'), m, m.doc());
242
- if (prev) {
243
- _context5.next = 6;
245
+ if (!(!prev || done[prev.uri])) {
246
+ _context5.next = 8;
244
247
  break;
245
248
  }
246
- return _context5.abrupt("break", 12);
247
- case 6:
248
- _context5.next = 8;
249
- return _solidLogic.store.fetcher.load(prev);
249
+ return _context5.abrupt("break", 15);
250
250
  case 8:
251
+ _context5.next = 10;
252
+ return _solidLogic.store.fetcher.load(prev);
253
+ case 10:
251
254
  versions.unshift(prev);
255
+ done[prev.uri] = true;
252
256
  m = prev;
253
- _context5.next = 2;
257
+ _context5.next = 4;
254
258
  break;
255
- case 12:
259
+ case 15:
256
260
  m = message;
257
- case 13:
261
+ case 16:
258
262
  if (!true) {
259
- _context5.next = 21;
263
+ _context5.next = 25;
260
264
  break;
261
265
  }
262
266
  // later?
263
267
  next = _solidLogic.store.any(m, ns.dct('isReplacedBy'), null, m.doc());
264
- if (next) {
265
- _context5.next = 17;
268
+ if (!(!next || done[next.uri])) {
269
+ _context5.next = 20;
266
270
  break;
267
271
  }
268
- return _context5.abrupt("break", 21);
269
- case 17:
272
+ return _context5.abrupt("break", 25);
273
+ case 20:
270
274
  versions.push(next);
275
+ done[next.uri] = true;
271
276
  m = next;
272
- _context5.next = 13;
277
+ _context5.next = 16;
273
278
  break;
274
- case 21:
279
+ case 25:
275
280
  return _context5.abrupt("return", versions);
276
- case 22:
281
+ case 26:
277
282
  case "end":
278
283
  return _context5.stop();
279
284
  }
@@ -286,26 +291,35 @@ function originalVersion(_x6) {
286
291
  }
287
292
  function _originalVersion() {
288
293
  _originalVersion = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(message) {
289
- var msg;
294
+ var msg, done;
290
295
  return _regenerator["default"].wrap(function _callee6$(_context6) {
291
296
  while (1) switch (_context6.prev = _context6.next) {
292
297
  case 0:
293
298
  msg = message;
294
- case 1:
299
+ done = {}; // done[message.ur] = true
300
+ case 2:
295
301
  if (!msg) {
296
- _context6.next = 8;
302
+ _context6.next = 13;
303
+ break;
304
+ }
305
+ if (!done[msg.uri]) {
306
+ _context6.next = 6;
297
307
  break;
298
308
  }
309
+ debug.error('originalVersion: verion loop' + message);
310
+ return _context6.abrupt("return", message);
311
+ case 6:
312
+ done[msg.uri] = true;
299
313
  message = msg;
300
- _context6.next = 5;
314
+ _context6.next = 10;
301
315
  return _solidLogic.store.fetcher.load(message);
302
- case 5:
303
- msg = _solidLogic.store.any(null, ns.dct('isReplacedBy'), message, message.doc()); // @@@ may need to load doc
304
- _context6.next = 1;
316
+ case 10:
317
+ msg = _solidLogic.store.any(null, ns.dct('isReplacedBy'), message, message.doc());
318
+ _context6.next = 2;
305
319
  break;
306
- case 8:
320
+ case 13:
307
321
  return _context6.abrupt("return", message);
308
- case 9:
322
+ case 14:
309
323
  case "end":
310
324
  return _context6.stop();
311
325
  }
@@ -318,26 +332,35 @@ function mostRecentVersion(_x7) {
318
332
  }
319
333
  function _mostRecentVersion() {
320
334
  _mostRecentVersion = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7(message) {
321
- var msg;
335
+ var msg, done;
322
336
  return _regenerator["default"].wrap(function _callee7$(_context7) {
323
337
  while (1) switch (_context7.prev = _context7.next) {
324
338
  case 0:
325
339
  msg = message;
326
- case 1:
340
+ done = {};
341
+ case 2:
327
342
  if (!msg) {
328
- _context7.next = 8;
343
+ _context7.next = 13;
344
+ break;
345
+ }
346
+ if (!done[msg.uri]) {
347
+ _context7.next = 6;
329
348
  break;
330
349
  }
350
+ debug.error('mostRecentVersion: verion loop' + message);
351
+ return _context7.abrupt("return", message);
352
+ case 6:
353
+ done[msg.uri] = true;
331
354
  message = msg;
332
- _context7.next = 5;
355
+ _context7.next = 10;
333
356
  return _solidLogic.store.fetcher.load(message);
334
- case 5:
357
+ case 10:
335
358
  msg = _solidLogic.store.any(message, ns.dct('isReplacedBy'), null, message.doc());
336
- _context7.next = 1;
359
+ _context7.next = 2;
337
360
  break;
338
- case 8:
361
+ case 13:
339
362
  return _context7.abrupt("return", message);
340
- case 9:
363
+ case 14:
341
364
  case "end":
342
365
  return _context7.stop();
343
366
  }
@@ -1 +1 @@
1
- {"version":3,"file":"chatLogic.js","names":["debug","_interopRequireWildcard","require","_dateFolder","_solidLogic","ns","$rdf","utils","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ChatChannel","channel","options","_classCallCheck2","channelRoot","doc","dateFolder","DateFolder","div","_createClass2","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","_callee2$","_context2","Date","getTime","term","leafDocumentFromDate","store","sym","uri","authn","currentUser","t0","t1","mostRecentVersion","t2","sent","t3","dct","t4","t5","t6","st","push","schema","wf","sioc","literal","foaf","sameTerm","updater","updateMany","t7","warn","alert","Error","_x2","_deleteMessage","_callee3","_callee3$","_context3","deleteMessage","_x3","_createThread","_callee4","threadRoot","already","insert","_callee4$","_context4","each","filter","holds","rdf","update","createThread","_x4","exports","allVersions","_x5","_allVersions","_callee5","versions","m","_callee5$","_context5","any","fetcher","load","unshift","originalVersion","_x6","_originalVersion","_callee6","_callee6$","_context6","_x7","_mostRecentVersion","_callee7","_callee7$","_context7","isDeleted","isReplaced","isHidden","nick","person","s","label","_createIfNotExists","_x8","_createIfNotExists2","contentType","data","_callee8","response","_callee8$","_context8","status","log","webOperation","requested"],"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'\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 if (oldMsg) { // edit message replaces old one\n sts.push($rdf.st(await mostRecentVersion(oldMsg), ns.dct('isReplacedBy'), message, chatDocument))\n if (deleteIt) {\n sts.push($rdf.st(message, ns.schema('dateDeleted'), dateStamp, chatDocument))\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 sts.push(\n $rdf.st(message, ns.dct('created'), dateStamp, chatDocument)\n )\n if (me) {\n sts.push($rdf.st(message, ns.foaf('maker'), me, 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 try {\n await store.updater.updateMany([], sts)\n } catch (err) {\n const msg = 'Error saving chat message: ' + err\n debug.warn(msg)\n alert(msg)\n throw new Error(msg)\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 returns 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\nexport async function allVersions (message) {\n const versions = [message]\n let m = message\n while (true) { // earlier?\n const prev = store.any(null, ns.dct('isReplacedBy'), m, m.doc())\n if (!prev) break\n await store.fetcher.load(prev)\n versions.unshift(prev)\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) break\n versions.push(next)\n m = next\n }\n return versions\n}\n\nexport async function originalVersion (message) {\n let msg = message\n while (msg) {\n message = msg\n await store.fetcher.load(message)\n msg = store.any(null, ns.dct('isReplacedBy'), message, message.doc()) // @@@ may need to load doc\n }\n return message\n}\n\nexport async function mostRecentVersion (message) {\n let msg = message\n while (msg) {\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\nexport async function _createIfNotExists (doc, contentType = 'text/turtle', data = '') {\n let response\n try {\n response = await store.fetcher.load(doc)\n } catch (err) {\n if (err.response.status === 404) {\n debug.log(\n 'createIfNotExists: doc does NOT exist, will create... ' + doc\n )\n try {\n response = await store.fetcher.webOperation('PUT', doc.uri, {\n data,\n contentType\n })\n } catch (err) {\n debug.log('createIfNotExists doc FAILED: ' + doc + ': ' + err)\n throw err\n }\n delete store.fetcher.requested[doc.uri] // delete cached 404 error\n // debug.log('createIfNotExists doc created ok ' + doc)\n return response\n } else {\n debug.log(\n 'createIfNotExists doc load error NOT 404: ' + doc + ': ' + err\n )\n throw err\n }\n }\n // debug.log('createIfNotExists: doc exists, all good: ' + doc)\n return response\n}\n// ends\n"],"mappings":"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"}
1
+ {"version":3,"file":"chatLogic.js","names":["debug","_interopRequireWildcard","require","_dateFolder","_solidLogic","ns","$rdf","utils","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ChatChannel","channel","options","_classCallCheck2","channelRoot","doc","dateFolder","DateFolder","div","_createClass2","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","_callee2$","_context2","Date","getTime","term","leafDocumentFromDate","store","sym","uri","authn","currentUser","t0","t1","mostRecentVersion","t2","sent","t3","dct","t4","t5","t6","st","push","schema","wf","sioc","literal","foaf","sameTerm","updater","updateMany","t7","warn","alert","Error","_x2","_deleteMessage","_callee3","_callee3$","_context3","deleteMessage","_x3","_createThread","_callee4","threadRoot","already","insert","_callee4$","_context4","each","filter","holds","rdf","update","createThread","_x4","exports","allVersions","_x5","_allVersions","_callee5","versions","done","m","_callee5$","_context5","ur","any","fetcher","load","unshift","originalVersion","_x6","_originalVersion","_callee6","_callee6$","_context6","error","_x7","_mostRecentVersion","_callee7","_callee7$","_context7","isDeleted","isReplaced","isHidden","nick","person","s","label","_createIfNotExists","_x8","_createIfNotExists2","contentType","data","_callee8","response","_callee8$","_context8","status","log","webOperation","requested"],"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'\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 if (oldMsg) { // edit message replaces old one\n sts.push($rdf.st(await mostRecentVersion(oldMsg), ns.dct('isReplacedBy'), message, chatDocument))\n if (deleteIt) {\n sts.push($rdf.st(message, ns.schema('dateDeleted'), dateStamp, chatDocument))\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 sts.push(\n $rdf.st(message, ns.dct('created'), dateStamp, chatDocument)\n )\n if (me) {\n sts.push($rdf.st(message, ns.foaf('maker'), me, 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 try {\n await store.updater.updateMany([], sts)\n } catch (err) {\n const msg = 'Error saving chat message: ' + err\n debug.warn(msg)\n alert(msg)\n throw new Error(msg)\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 returns 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.ur] = 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.ur] = 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\nexport async function _createIfNotExists (doc, contentType = 'text/turtle', data = '') {\n let response\n try {\n response = await store.fetcher.load(doc)\n } catch (err) {\n if (err.response.status === 404) {\n debug.log(\n 'createIfNotExists: doc does NOT exist, will create... ' + doc\n )\n try {\n response = await store.fetcher.webOperation('PUT', doc.uri, {\n data,\n contentType\n })\n } catch (err) {\n debug.log('createIfNotExists doc FAILED: ' + doc + ': ' + err)\n throw err\n }\n delete store.fetcher.requested[doc.uri] // delete cached 404 error\n // debug.log('createIfNotExists doc created ok ' + doc)\n return response\n } else {\n debug.log(\n 'createIfNotExists doc load error NOT 404: ' + doc + ': ' + err\n )\n throw err\n }\n }\n // debug.log('createIfNotExists: doc exists, all good: ' + doc)\n return response\n}\n// ends\n"],"mappings":"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"}