solid-ui 2.4.26 → 2.4.27-13192548

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.
@@ -28,8 +28,6 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
28
28
  * @packageDocumentation
29
29
  */
30
30
 
31
- /* global alert confirm */
32
-
33
31
  // pull in first avoid cross-refs
34
32
 
35
33
  var UI = {
@@ -122,7 +120,8 @@ function _findBookmarkDocument() {
122
120
  }
123
121
  userContext.bookmarkDocument = userContext.instances[0];
124
122
  if (userContext.instances.length > 1) {
125
- alert('More than one bookmark file! ' + userContext.instances);
123
+ debug.warn('More than one bookmark file! ' + userContext.instances); // @@ todo - deal with > 1
124
+ // Note: should pick up community bookmarks as well
126
125
  }
127
126
  _context.next = 28;
128
127
  break;
@@ -143,7 +142,7 @@ function _findBookmarkDocument() {
143
142
  case 18:
144
143
  _context.prev = 18;
145
144
  _context.t0 = _context["catch"](12);
146
- alert.error("Can't make fresh bookmark file:" + _context.t0);
145
+ debug.warn("Can't make fresh bookmark file:" + _context.t0);
147
146
  return _context.abrupt("return", userContext);
148
147
  case 22:
149
148
  _context.next = 24;
@@ -153,7 +152,7 @@ function _findBookmarkDocument() {
153
152
  _context.next = 28;
154
153
  break;
155
154
  case 27:
156
- alert('You seem to have no bookmark file and not even a profile file.');
155
+ debug.warn('You seem to have no bookmark file and not even a profile file.');
157
156
  case 28:
158
157
  return _context.abrupt("return", userContext);
159
158
  case 29:
@@ -208,7 +207,7 @@ function _addBookmark() {
208
207
  _context2.prev = 14;
209
208
  _context2.t0 = _context2["catch"](9);
210
209
  msg = 'Making bookmark: ' + _context2.t0;
211
- alert.error(msg);
210
+ debug.warn(msg);
212
211
  return _context2.abrupt("return", null);
213
212
  case 19:
214
213
  return _context2.abrupt("return", bookmark);
@@ -261,7 +260,7 @@ function _toggleBookmark() {
261
260
  _context3.prev = 15;
262
261
  _context3.t0 = _context3["catch"](8);
263
262
  debug.error('Cant delete bookmark:' + _context3.t0);
264
- alert('Cant delete bookmark:' + _context3.t0);
263
+ debug.warn('Cant delete bookmark:' + _context3.t0);
265
264
  case 19:
266
265
  i++;
267
266
  _context3.next = 7;
@@ -1 +1 @@
1
- {"version":3,"file":"bookmarks.js","names":["debug","_interopRequireWildcard","require","_iconBase","_index","ns","pad","rdf","style","utils","widgets","_solidLogic","_login","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","UI","icons","media","$rdf","BOOK","Namespace","BOOKMARK_ICON","label","dom","window","document","createIfNotExists","doc","Promise","resolve","reject","store","fetcher","load","then","response","log","err","status","webOperation","uri","data","contentType","requested","updatePromise","del","ins","updater","update","ok","errorBody","Error","findBookmarkDocument","_x","_findBookmarkDocument","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee","userContext","theClass","fileTail","isPublic","newBookmarkFile","wrap","_callee$","_context","prev","next","findAppInstances","instances","length","bookmarkDocument","alert","publicProfile","sym","dir","t0","error","abrupt","registerInTypeIndex","index","stop","addBookmark","_x2","_x3","_addBookmark","_callee2","context","target","title","me","author","bookmarkDoc","bookmark","msg","_callee2$","_context2","authn","currentUser","any","foaf","anyValue","sioc","slice","newThing","st","dct","Date","toggleBookmark","_x4","_x5","_x6","_toggleBookmark","_callee3","bookmarkButton","bookmarks","i","_callee3$","_context3","each","confirm","connectedStatements","backgroundColor","sent","renderBookmarksButton","_x7","_x8","_renderBookmarksButton","_callee5","setBookmarkButtonColor","_setBookmarkButtonColor","_callee5$","_context5","_setBookmarkButtonCol2","_callee4","bookmarked","_callee4$","_context4","buttonStyle","_setBookmarkButtonCol","_x9","button","iconBase"],"sources":["../../src/chat/bookmarks.js"],"sourcesContent":["/**\n * Functions related to chat and bookmarks\n * @packageDocumentation\n */\n\n/* global alert confirm */\nimport * as debug from '../debug'\nimport { icons } from '../iconBase'\nimport { media } from '../media/index'\nimport * as ns from '../ns'\nimport * as pad from '../pad'\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\nimport * as style from '../style'\nimport * as utils from '../utils'\nimport * as widgets from '../widgets'\nimport { store, registerInTypeIndex, authn } from 'solid-logic'\nimport { findAppInstances } from '../login/login'\n\nconst UI = { icons, ns, media, pad, rdf, style, utils, widgets }\nconst $rdf = UI.rdf\n\nconst BOOK = $rdf.Namespace('http://www.w3.org/2002/01/bookmark#')\nconst BOOKMARK_ICON = 'noun_45961.svg'\n\nconst label = utils.label\nconst dom = window.document || null\n\n/** Create a resource if it really does not exist\n * Be absolutely sure something does not exist before creating a new empty file\n * as otherwise existing could be deleted.\n * @param doc {NamedNode} - The resource\n */\nfunction createIfNotExists (doc) {\n return new Promise(function (resolve, reject) {\n store.fetcher.load(doc).then(\n response => {\n debug.log('createIfNotExists doc exists, all good ' + doc)\n // store.fetcher.webOperation('HEAD', doc.uri).then(response => {\n resolve(response)\n },\n err => {\n if (err.response.status === 404) {\n debug.log(\n 'createIfNotExists doc does NOT exist, will create... ' + doc\n )\n\n store.fetcher\n .webOperation('PUT', doc.uri, {\n data: '',\n contentType: 'text/turtle'\n })\n .then(\n response => {\n // fetcher.requested[doc.uri] = 'done' // do not need to read ?? but no headers\n delete store.fetcher.requested[doc.uri] // delete cached 404 error\n debug.log('createIfNotExists doc created ok ' + doc)\n resolve(response)\n },\n err => {\n debug.log('createIfNotExists doc FAILED: ' + doc + ': ' + err)\n reject(err)\n }\n )\n } else {\n debug.log(\n 'createIfNotExists doc load error NOT 404: ' + doc + ': ' + err\n )\n reject(err)\n }\n }\n )\n })\n}\n\n// @@@@ use the one in rdflib.js when it is avaiable and delete this\nfunction updatePromise (del, ins) {\n return new Promise(function (resolve, reject) {\n store.updater.update(del, ins, function (uri, ok, errorBody) {\n if (!ok) {\n reject(new Error(errorBody))\n } else {\n resolve()\n }\n }) // callback\n }) // promise\n}\n\n/* Bookmarking\n */\n/** Find a user's bookmarks\n */\nexport async function findBookmarkDocument (userContext) {\n const theClass = BOOK('Bookmark')\n const fileTail = 'bookmarks.ttl'\n const isPublic = true\n\n await findAppInstances(userContext, theClass, isPublic) // public -- only look for public links\n\n if (userContext.instances && userContext.instances.length > 0) {\n userContext.bookmarkDocument = userContext.instances[0]\n if (userContext.instances.length > 1) {\n alert('More than one bookmark file! ' + userContext.instances)\n }\n } else {\n if (userContext.publicProfile) {\n // publicProfile or preferencesFile\n const newBookmarkFile = $rdf.sym(\n userContext.publicProfile.dir().uri + fileTail\n )\n try {\n debug.log('Creating new bookmark file ' + newBookmarkFile)\n await createIfNotExists(newBookmarkFile)\n } catch (e) {\n alert.error(\"Can't make fresh bookmark file:\" + e)\n return userContext\n }\n await registerInTypeIndex(\n newBookmarkFile,\n userContext.index,\n theClass\n )\n userContext.bookmarkDocument = newBookmarkFile\n } else {\n alert('You seem to have no bookmark file and not even a profile file.')\n }\n }\n return userContext\n}\n\n/** Add a bookmark\n */\n\nasync function addBookmark (context, target) {\n /* like\n @prefix terms: <http://purl.org/dc/terms/>.\n @prefix bookm: <http://www.w3.org/2002/01/bookmark#>.\n @prefix n0: <http://xmlns.com/foaf/0.1/>.\n <> terms:references <#0.5534145389246576>.\n <#0.5534145389246576>\n a bookm:Bookmark;\n terms:created \"2019-01-26T20:26:44.374Z\"^^XML:dateTime;\n terms:title \"Herons\";\n bookm:recalls wiki:Heron;\n n0:maker c:me.\n */\n let title = ''\n const me = authn.currentUser() // If already logged on\n if (!me) throw new Error('Must be logged on to add Bookmark')\n\n const author = store.any(target, ns.foaf('maker'))\n title =\n label(author) + ': ' + store.anyValue(target, ns.sioc('content')).slice(0, 80) // @@ add chat title too?\n const bookmarkDoc = context.bookmarkDocument\n const bookmark = UI.widgets.newThing(bookmarkDoc, title)\n const ins = [\n $rdf.st(bookmarkDoc, UI.ns.dct('references'), bookmark, bookmarkDoc),\n $rdf.st(bookmark, UI.ns.rdf('type'), BOOK('Bookmark'), bookmarkDoc),\n $rdf.st(bookmark, UI.ns.dct('created'), new Date(), bookmarkDoc),\n $rdf.st(bookmark, BOOK('recalls'), target, bookmarkDoc),\n $rdf.st(bookmark, UI.ns.foaf('maker'), me, bookmarkDoc),\n $rdf.st(bookmark, UI.ns.dct('title'), title, bookmarkDoc)\n ]\n try {\n await updatePromise([], ins) // 20190118A\n } catch (e) {\n const msg = 'Making bookmark: ' + e\n alert.error(msg)\n return null\n }\n return bookmark\n}\n\nexport async function toggleBookmark (userContext, target, bookmarkButton) {\n await store.fetcher.load(userContext.bookmarkDocument)\n const bookmarks = store.each(\n null,\n BOOK('recalls'),\n target,\n userContext.bookmarkDocument\n )\n if (bookmarks.length) {\n // delete\n if (!confirm('Delete bookmark on this?' + bookmarks.length)) return\n for (let i = 0; i < bookmarks.length; i++) {\n try {\n await updatePromise(store.connectedStatements(bookmarks[i]), [])\n bookmarkButton.style.backgroundColor = 'white'\n debug.log('Bookmark deleted: ' + bookmarks[i])\n } catch (e) {\n debug.error('Cant delete bookmark:' + e)\n alert('Cant delete bookmark:' + e)\n }\n }\n } else {\n const bookmark = await addBookmark(userContext, target)\n bookmarkButton.style.backgroundColor = 'yellow'\n debug.log('Bookmark added: ' + bookmark)\n }\n}\n\nexport async function renderBookmarksButton (userContext, target) {\n async function setBookmarkButtonColor (bookmarkButton) {\n await store.fetcher.load(userContext.bookmarkDocument)\n const bookmarked = store.any(\n null,\n BOOK('recalls'),\n bookmarkButton.target,\n userContext.bookmarkDocument\n )\n bookmarkButton.style = UI.style.buttonStyle\n if (bookmarked) bookmarkButton.style.backgroundColor = 'yellow'\n }\n\n let bookmarkButton\n if (userContext.bookmarkDocument) {\n bookmarkButton = UI.widgets.button(\n dom,\n UI.icons.iconBase + BOOKMARK_ICON,\n label(BOOK('Bookmark')),\n () => {\n toggleBookmark(userContext, target, bookmarkButton)\n }\n )\n bookmarkButton.target = target\n await setBookmarkButtonColor(bookmarkButton)\n return bookmarkButton\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"bookmarks.js","names":["debug","_interopRequireWildcard","require","_iconBase","_index","ns","pad","rdf","style","utils","widgets","_solidLogic","_login","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","UI","icons","media","$rdf","BOOK","Namespace","BOOKMARK_ICON","label","dom","window","document","createIfNotExists","doc","Promise","resolve","reject","store","fetcher","load","then","response","log","err","status","webOperation","uri","data","contentType","requested","updatePromise","del","ins","updater","update","ok","errorBody","Error","findBookmarkDocument","_x","_findBookmarkDocument","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee","userContext","theClass","fileTail","isPublic","newBookmarkFile","wrap","_callee$","_context","prev","next","findAppInstances","instances","length","bookmarkDocument","warn","publicProfile","sym","dir","t0","abrupt","registerInTypeIndex","index","stop","addBookmark","_x2","_x3","_addBookmark","_callee2","context","target","title","me","author","bookmarkDoc","bookmark","msg","_callee2$","_context2","authn","currentUser","any","foaf","anyValue","sioc","slice","newThing","st","dct","Date","toggleBookmark","_x4","_x5","_x6","_toggleBookmark","_callee3","bookmarkButton","bookmarks","i","_callee3$","_context3","each","confirm","connectedStatements","backgroundColor","error","sent","renderBookmarksButton","_x7","_x8","_renderBookmarksButton","_callee5","setBookmarkButtonColor","_setBookmarkButtonColor","_callee5$","_context5","_setBookmarkButtonCol2","_callee4","bookmarked","_callee4$","_context4","buttonStyle","_setBookmarkButtonCol","_x9","button","iconBase"],"sources":["../../src/chat/bookmarks.js"],"sourcesContent":["/**\n * Functions related to chat and bookmarks\n * @packageDocumentation\n */\n\nimport * as debug from '../debug'\nimport { icons } from '../iconBase'\nimport { media } from '../media/index'\nimport * as ns from '../ns'\nimport * as pad from '../pad'\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\nimport * as style from '../style'\nimport * as utils from '../utils'\nimport * as widgets from '../widgets'\nimport { store, registerInTypeIndex, authn } from 'solid-logic'\nimport { findAppInstances } from '../login/login'\n\nconst UI = { icons, ns, media, pad, rdf, style, utils, widgets }\nconst $rdf = UI.rdf\n\nconst BOOK = $rdf.Namespace('http://www.w3.org/2002/01/bookmark#')\nconst BOOKMARK_ICON = 'noun_45961.svg'\n\nconst label = utils.label\nconst dom = window.document || null\n\n/** Create a resource if it really does not exist\n * Be absolutely sure something does not exist before creating a new empty file\n * as otherwise existing could be deleted.\n * @param doc {NamedNode} - The resource\n */\nfunction createIfNotExists (doc) {\n return new Promise(function (resolve, reject) {\n store.fetcher.load(doc).then(\n response => {\n debug.log('createIfNotExists doc exists, all good ' + doc)\n // store.fetcher.webOperation('HEAD', doc.uri).then(response => {\n resolve(response)\n },\n err => {\n if (err.response.status === 404) {\n debug.log(\n 'createIfNotExists doc does NOT exist, will create... ' + doc\n )\n\n store.fetcher\n .webOperation('PUT', doc.uri, {\n data: '',\n contentType: 'text/turtle'\n })\n .then(\n response => {\n // fetcher.requested[doc.uri] = 'done' // do not need to read ?? but no headers\n delete store.fetcher.requested[doc.uri] // delete cached 404 error\n debug.log('createIfNotExists doc created ok ' + doc)\n resolve(response)\n },\n err => {\n debug.log('createIfNotExists doc FAILED: ' + doc + ': ' + err)\n reject(err)\n }\n )\n } else {\n debug.log(\n 'createIfNotExists doc load error NOT 404: ' + doc + ': ' + err\n )\n reject(err)\n }\n }\n )\n })\n}\n\n// @@@@ use the one in rdflib.js when it is avaiable and delete this\nfunction updatePromise (del, ins) {\n return new Promise(function (resolve, reject) {\n store.updater.update(del, ins, function (uri, ok, errorBody) {\n if (!ok) {\n reject(new Error(errorBody))\n } else {\n resolve()\n }\n }) // callback\n }) // promise\n}\n\n/* Bookmarking\n */\n/** Find a user's bookmarks\n */\nexport async function findBookmarkDocument (userContext) {\n const theClass = BOOK('Bookmark')\n const fileTail = 'bookmarks.ttl'\n const isPublic = true\n\n await findAppInstances(userContext, theClass, isPublic) // public -- only look for public links\n\n if (userContext.instances && userContext.instances.length > 0) {\n userContext.bookmarkDocument = userContext.instances[0]\n if (userContext.instances.length > 1) {\n debug.warn('More than one bookmark file! ' + userContext.instances) // @@ todo - deal with > 1\n // Note: should pick up community bookmarks as well\n }\n } else {\n if (userContext.publicProfile) {\n // publicProfile or preferencesFile\n const newBookmarkFile = $rdf.sym(\n userContext.publicProfile.dir().uri + fileTail\n )\n try {\n debug.log('Creating new bookmark file ' + newBookmarkFile)\n await createIfNotExists(newBookmarkFile)\n } catch (e) {\n debug.warn(\"Can't make fresh bookmark file:\" + e)\n return userContext\n }\n await registerInTypeIndex(\n newBookmarkFile,\n userContext.index,\n theClass\n )\n userContext.bookmarkDocument = newBookmarkFile\n } else {\n debug.warn('You seem to have no bookmark file and not even a profile file.')\n }\n }\n return userContext\n}\n\n/** Add a bookmark\n */\n\nasync function addBookmark (context, target) {\n /* like\n @prefix terms: <http://purl.org/dc/terms/>.\n @prefix bookm: <http://www.w3.org/2002/01/bookmark#>.\n @prefix n0: <http://xmlns.com/foaf/0.1/>.\n <> terms:references <#0.5534145389246576>.\n <#0.5534145389246576>\n a bookm:Bookmark;\n terms:created \"2019-01-26T20:26:44.374Z\"^^XML:dateTime;\n terms:title \"Herons\";\n bookm:recalls wiki:Heron;\n n0:maker c:me.\n */\n let title = ''\n const me = authn.currentUser() // If already logged on\n if (!me) throw new Error('Must be logged on to add Bookmark')\n\n const author = store.any(target, ns.foaf('maker'))\n title =\n label(author) + ': ' + store.anyValue(target, ns.sioc('content')).slice(0, 80) // @@ add chat title too?\n const bookmarkDoc = context.bookmarkDocument\n const bookmark = UI.widgets.newThing(bookmarkDoc, title)\n const ins = [\n $rdf.st(bookmarkDoc, UI.ns.dct('references'), bookmark, bookmarkDoc),\n $rdf.st(bookmark, UI.ns.rdf('type'), BOOK('Bookmark'), bookmarkDoc),\n $rdf.st(bookmark, UI.ns.dct('created'), new Date(), bookmarkDoc),\n $rdf.st(bookmark, BOOK('recalls'), target, bookmarkDoc),\n $rdf.st(bookmark, UI.ns.foaf('maker'), me, bookmarkDoc),\n $rdf.st(bookmark, UI.ns.dct('title'), title, bookmarkDoc)\n ]\n try {\n await updatePromise([], ins) // 20190118A\n } catch (e) {\n const msg = 'Making bookmark: ' + e\n debug.warn(msg)\n return null\n }\n return bookmark\n}\n\nexport async function toggleBookmark (userContext, target, bookmarkButton) {\n await store.fetcher.load(userContext.bookmarkDocument)\n const bookmarks = store.each(\n null,\n BOOK('recalls'),\n target,\n userContext.bookmarkDocument\n )\n if (bookmarks.length) {\n // delete\n if (!confirm('Delete bookmark on this?' + bookmarks.length)) return\n for (let i = 0; i < bookmarks.length; i++) {\n try {\n await updatePromise(store.connectedStatements(bookmarks[i]), [])\n bookmarkButton.style.backgroundColor = 'white'\n debug.log('Bookmark deleted: ' + bookmarks[i])\n } catch (e) {\n debug.error('Cant delete bookmark:' + e)\n debug.warn('Cant delete bookmark:' + e)\n }\n }\n } else {\n const bookmark = await addBookmark(userContext, target)\n bookmarkButton.style.backgroundColor = 'yellow'\n debug.log('Bookmark added: ' + bookmark)\n }\n}\n\nexport async function renderBookmarksButton (userContext, target) {\n async function setBookmarkButtonColor (bookmarkButton) {\n await store.fetcher.load(userContext.bookmarkDocument)\n const bookmarked = store.any(\n null,\n BOOK('recalls'),\n bookmarkButton.target,\n userContext.bookmarkDocument\n )\n bookmarkButton.style = UI.style.buttonStyle\n if (bookmarked) bookmarkButton.style.backgroundColor = 'yellow'\n }\n\n let bookmarkButton\n if (userContext.bookmarkDocument) {\n bookmarkButton = UI.widgets.button(\n dom,\n UI.icons.iconBase + BOOKMARK_ICON,\n label(BOOK('Bookmark')),\n () => {\n toggleBookmark(userContext, target, bookmarkButton)\n }\n )\n bookmarkButton.target = target\n await setBookmarkButtonColor(bookmarkButton)\n return bookmarkButton\n }\n}\n"],"mappings":"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"}
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.ChatChannel = void 0;
9
9
  exports._createIfNotExists = _createIfNotExists;
10
+ exports.allVersions = allVersions;
10
11
  exports.isDeleted = isDeleted;
11
12
  exports.isHidden = isHidden;
12
13
  exports.isReplaced = isReplaced;
@@ -82,6 +83,7 @@ var ChatChannel = /*#__PURE__*/function () {
82
83
  var _this = this;
83
84
  var oldMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
84
85
  var deleteIt = arguments.length > 2 ? arguments[2] : undefined;
86
+ var thread = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
85
87
  return /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
86
88
  var sts, now, timestamp, dateStamp, chatDocument, message, me, msg;
87
89
  return _regenerator["default"].wrap(function _callee2$(_context2) {
@@ -94,41 +96,61 @@ var ChatChannel = /*#__PURE__*/function () {
94
96
  chatDocument = oldMsg ? oldMsg.doc() : _this.dateFolder.leafDocumentFromDate(now);
95
97
  message = _solidLogic.store.sym(chatDocument.uri + '#' + 'Msg' + timestamp); // const content = store.literal(text)
96
98
  me = _solidLogic.authn.currentUser(); // If already logged on
97
- if (oldMsg) {
98
- // edit message replaces old one
99
- sts.push($rdf.st(mostRecentVersion(oldMsg), ns.dct('isReplacedBy'), message, chatDocument));
100
- if (deleteIt) {
101
- sts.push($rdf.st(message, ns.schema('dateDeleted'), dateStamp, chatDocument));
102
- }
103
- } else {
104
- // link new message to channel
105
- sts.push($rdf.st(_this.channel, ns.wf('message'), message, chatDocument));
99
+ if (!oldMsg) {
100
+ _context2.next = 21;
101
+ break;
102
+ }
103
+ _context2.t0 = sts;
104
+ _context2.t1 = $rdf;
105
+ _context2.next = 12;
106
+ return mostRecentVersion(oldMsg);
107
+ case 12:
108
+ _context2.t2 = _context2.sent;
109
+ _context2.t3 = ns.dct('isReplacedBy');
110
+ _context2.t4 = message;
111
+ _context2.t5 = chatDocument;
112
+ _context2.t6 = _context2.t1.st.call(_context2.t1, _context2.t2, _context2.t3, _context2.t4, _context2.t5);
113
+ _context2.t0.push.call(_context2.t0, _context2.t6);
114
+ if (deleteIt) {
115
+ sts.push($rdf.st(message, ns.schema('dateDeleted'), dateStamp, chatDocument));
106
116
  }
117
+ _context2.next = 22;
118
+ break;
119
+ case 21:
120
+ // link new message to channel
121
+ sts.push($rdf.st(_this.channel, ns.wf('message'), message, chatDocument));
122
+ case 22:
107
123
  sts.push($rdf.st(message, ns.sioc('content'), _solidLogic.store.literal(text), chatDocument));
108
124
  sts.push($rdf.st(message, ns.dct('created'), dateStamp, chatDocument));
109
125
  if (me) {
110
126
  sts.push($rdf.st(message, ns.foaf('maker'), me, chatDocument));
111
127
  }
112
- _context2.prev = 11;
113
- _context2.next = 14;
114
- return _solidLogic.store.updater.update([], sts);
115
- case 14:
116
- _context2.next = 22;
128
+ if (thread) {
129
+ sts.push($rdf.st(thread, ns.sioc('has_member'), message, chatDocument));
130
+ if (!thread.doc().sameTerm(message.doc())) {
131
+ sts.push($rdf.st(thread, ns.sioc('has_member'), message, thread.doc()));
132
+ }
133
+ }
134
+ _context2.prev = 26;
135
+ _context2.next = 29;
136
+ return _solidLogic.store.updater.updateMany([], sts);
137
+ case 29:
138
+ _context2.next = 37;
117
139
  break;
118
- case 16:
119
- _context2.prev = 16;
120
- _context2.t0 = _context2["catch"](11);
121
- msg = 'Error saving chat message: ' + _context2.t0;
140
+ case 31:
141
+ _context2.prev = 31;
142
+ _context2.t7 = _context2["catch"](26);
143
+ msg = 'Error saving chat message: ' + _context2.t7;
122
144
  debug.warn(msg);
123
145
  alert(msg);
124
146
  throw new Error(msg);
125
- case 22:
147
+ case 37:
126
148
  return _context2.abrupt("return", message);
127
- case 23:
149
+ case 38:
128
150
  case "end":
129
151
  return _context2.stop();
130
152
  }
131
- }, _callee2, null, [[11, 16]]);
153
+ }, _callee2, null, [[26, 31]]);
132
154
  })();
133
155
  });
134
156
  function updateMessage(_x2) {
@@ -158,26 +180,193 @@ var ChatChannel = /*#__PURE__*/function () {
158
180
  return _deleteMessage.apply(this, arguments);
159
181
  }
160
182
  return deleteMessage;
183
+ }() // Create a new thread of replies to the thread root message
184
+ // or returns one which already exists
185
+ }, {
186
+ key: "createThread",
187
+ value: function () {
188
+ var _createThread = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(threadRoot) {
189
+ var already, thread, insert;
190
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
191
+ while (1) switch (_context4.prev = _context4.next) {
192
+ case 0:
193
+ already = _solidLogic.store.each(threadRoot, ns.sioc('has_reply'), null, threadRoot.doc()).filter(function (thread) {
194
+ return _solidLogic.store.holds(thread, ns.rdf('type'), ns.sioc('Thread'), thread.doc());
195
+ });
196
+ if (!(already.length > 0)) {
197
+ _context4.next = 3;
198
+ break;
199
+ }
200
+ return _context4.abrupt("return", already[0]);
201
+ case 3:
202
+ thread = $rdf.sym(threadRoot.uri + '-thread');
203
+ insert = [$rdf.st(thread, ns.rdf('type'), ns.sioc('Thread'), thread.doc()), $rdf.st(threadRoot, ns.sioc('has_reply'), thread, thread.doc())];
204
+ _context4.next = 7;
205
+ return _solidLogic.store.updater.update([], insert);
206
+ case 7:
207
+ return _context4.abrupt("return", thread);
208
+ case 8:
209
+ case "end":
210
+ return _context4.stop();
211
+ }
212
+ }, _callee4);
213
+ }));
214
+ function createThread(_x4) {
215
+ return _createThread.apply(this, arguments);
216
+ }
217
+ return createThread;
161
218
  }()
162
219
  }]);
163
220
  return ChatChannel;
164
221
  }(); // class ChatChannel
222
+ // ////////// Utility functions
223
+ // Have to not loop forever if fed loops
165
224
  exports.ChatChannel = ChatChannel;
166
- function originalVersion(message) {
167
- var msg = message;
168
- while (msg) {
169
- message = msg;
170
- msg = _solidLogic.store.any(null, ns.dct('isReplacedBy'), message, message.doc());
171
- }
172
- return message;
225
+ function allVersions(_x5) {
226
+ return _allVersions.apply(this, arguments);
173
227
  }
174
- function mostRecentVersion(message) {
175
- var msg = message;
176
- while (msg) {
177
- message = msg;
178
- msg = _solidLogic.store.any(message, ns.dct('isReplacedBy'), null, message.doc());
179
- }
180
- return message;
228
+ function _allVersions() {
229
+ _allVersions = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(message) {
230
+ var versions, done, m, prev, next;
231
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
232
+ while (1) switch (_context5.prev = _context5.next) {
233
+ case 0:
234
+ versions = [message];
235
+ done = {};
236
+ done[message.ur] = true;
237
+ m = message;
238
+ case 4:
239
+ if (!true) {
240
+ _context5.next = 15;
241
+ break;
242
+ }
243
+ // earlier?
244
+ prev = _solidLogic.store.any(null, ns.dct('isReplacedBy'), m, m.doc());
245
+ if (!(!prev || done[prev.uri])) {
246
+ _context5.next = 8;
247
+ break;
248
+ }
249
+ return _context5.abrupt("break", 15);
250
+ case 8:
251
+ _context5.next = 10;
252
+ return _solidLogic.store.fetcher.load(prev);
253
+ case 10:
254
+ versions.unshift(prev);
255
+ done[prev.uri] = true;
256
+ m = prev;
257
+ _context5.next = 4;
258
+ break;
259
+ case 15:
260
+ m = message;
261
+ case 16:
262
+ if (!true) {
263
+ _context5.next = 25;
264
+ break;
265
+ }
266
+ // later?
267
+ next = _solidLogic.store.any(m, ns.dct('isReplacedBy'), null, m.doc());
268
+ if (!(!next || done[next.uri])) {
269
+ _context5.next = 20;
270
+ break;
271
+ }
272
+ return _context5.abrupt("break", 25);
273
+ case 20:
274
+ versions.push(next);
275
+ done[next.uri] = true;
276
+ m = next;
277
+ _context5.next = 16;
278
+ break;
279
+ case 25:
280
+ return _context5.abrupt("return", versions);
281
+ case 26:
282
+ case "end":
283
+ return _context5.stop();
284
+ }
285
+ }, _callee5);
286
+ }));
287
+ return _allVersions.apply(this, arguments);
288
+ }
289
+ function originalVersion(_x6) {
290
+ return _originalVersion.apply(this, arguments);
291
+ }
292
+ function _originalVersion() {
293
+ _originalVersion = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(message) {
294
+ var msg, done;
295
+ return _regenerator["default"].wrap(function _callee6$(_context6) {
296
+ while (1) switch (_context6.prev = _context6.next) {
297
+ case 0:
298
+ msg = message;
299
+ done = {}; // done[message.ur] = true
300
+ case 2:
301
+ if (!msg) {
302
+ _context6.next = 13;
303
+ break;
304
+ }
305
+ if (!done[msg.uri]) {
306
+ _context6.next = 6;
307
+ break;
308
+ }
309
+ debug.error('originalVersion: verion loop' + message);
310
+ return _context6.abrupt("return", message);
311
+ case 6:
312
+ done[msg.uri] = true;
313
+ message = msg;
314
+ _context6.next = 10;
315
+ return _solidLogic.store.fetcher.load(message);
316
+ case 10:
317
+ msg = _solidLogic.store.any(null, ns.dct('isReplacedBy'), message, message.doc());
318
+ _context6.next = 2;
319
+ break;
320
+ case 13:
321
+ return _context6.abrupt("return", message);
322
+ case 14:
323
+ case "end":
324
+ return _context6.stop();
325
+ }
326
+ }, _callee6);
327
+ }));
328
+ return _originalVersion.apply(this, arguments);
329
+ }
330
+ function mostRecentVersion(_x7) {
331
+ return _mostRecentVersion.apply(this, arguments);
332
+ }
333
+ function _mostRecentVersion() {
334
+ _mostRecentVersion = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7(message) {
335
+ var msg, done;
336
+ return _regenerator["default"].wrap(function _callee7$(_context7) {
337
+ while (1) switch (_context7.prev = _context7.next) {
338
+ case 0:
339
+ msg = message;
340
+ done = {};
341
+ case 2:
342
+ if (!msg) {
343
+ _context7.next = 13;
344
+ break;
345
+ }
346
+ if (!done[msg.uri]) {
347
+ _context7.next = 6;
348
+ break;
349
+ }
350
+ debug.error('mostRecentVersion: verion loop' + message);
351
+ return _context7.abrupt("return", message);
352
+ case 6:
353
+ done[msg.uri] = true;
354
+ message = msg;
355
+ _context7.next = 10;
356
+ return _solidLogic.store.fetcher.load(message);
357
+ case 10:
358
+ msg = _solidLogic.store.any(message, ns.dct('isReplacedBy'), null, message.doc());
359
+ _context7.next = 2;
360
+ break;
361
+ case 13:
362
+ return _context7.abrupt("return", message);
363
+ case 14:
364
+ case "end":
365
+ return _context7.stop();
366
+ }
367
+ }, _callee7);
368
+ }));
369
+ return _mostRecentVersion.apply(this, arguments);
181
370
  }
182
371
  function isDeleted(message) {
183
372
  return _solidLogic.store.holds(message, ns.schema('dateDeleted'), null, message.doc());
@@ -196,62 +385,62 @@ function nick(person) {
196
385
  if (s) return '' + s.value;
197
386
  return '' + utils.label(person);
198
387
  }
199
- function _createIfNotExists(_x4) {
388
+ function _createIfNotExists(_x8) {
200
389
  return _createIfNotExists2.apply(this, arguments);
201
390
  } // ends
202
391
  function _createIfNotExists2() {
203
392
  _createIfNotExists2 = (0, _asyncToGenerator2["default"])(function (doc) {
204
393
  var contentType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'text/turtle';
205
394
  var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
206
- return /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
395
+ return /*#__PURE__*/_regenerator["default"].mark(function _callee8() {
207
396
  var response;
208
- return _regenerator["default"].wrap(function _callee4$(_context4) {
209
- while (1) switch (_context4.prev = _context4.next) {
397
+ return _regenerator["default"].wrap(function _callee8$(_context8) {
398
+ while (1) switch (_context8.prev = _context8.next) {
210
399
  case 0:
211
- _context4.prev = 0;
212
- _context4.next = 3;
400
+ _context8.prev = 0;
401
+ _context8.next = 3;
213
402
  return _solidLogic.store.fetcher.load(doc);
214
403
  case 3:
215
- response = _context4.sent;
216
- _context4.next = 26;
404
+ response = _context8.sent;
405
+ _context8.next = 26;
217
406
  break;
218
407
  case 6:
219
- _context4.prev = 6;
220
- _context4.t0 = _context4["catch"](0);
221
- if (!(_context4.t0.response.status === 404)) {
222
- _context4.next = 24;
408
+ _context8.prev = 6;
409
+ _context8.t0 = _context8["catch"](0);
410
+ if (!(_context8.t0.response.status === 404)) {
411
+ _context8.next = 24;
223
412
  break;
224
413
  }
225
414
  debug.log('createIfNotExists: doc does NOT exist, will create... ' + doc);
226
- _context4.prev = 10;
227
- _context4.next = 13;
415
+ _context8.prev = 10;
416
+ _context8.next = 13;
228
417
  return _solidLogic.store.fetcher.webOperation('PUT', doc.uri, {
229
418
  data: data,
230
419
  contentType: contentType
231
420
  });
232
421
  case 13:
233
- response = _context4.sent;
234
- _context4.next = 20;
422
+ response = _context8.sent;
423
+ _context8.next = 20;
235
424
  break;
236
425
  case 16:
237
- _context4.prev = 16;
238
- _context4.t1 = _context4["catch"](10);
239
- debug.log('createIfNotExists doc FAILED: ' + doc + ': ' + _context4.t1);
240
- throw _context4.t1;
426
+ _context8.prev = 16;
427
+ _context8.t1 = _context8["catch"](10);
428
+ debug.log('createIfNotExists doc FAILED: ' + doc + ': ' + _context8.t1);
429
+ throw _context8.t1;
241
430
  case 20:
242
431
  delete _solidLogic.store.fetcher.requested[doc.uri]; // delete cached 404 error
243
432
  // debug.log('createIfNotExists doc created ok ' + doc)
244
- return _context4.abrupt("return", response);
433
+ return _context8.abrupt("return", response);
245
434
  case 24:
246
- debug.log('createIfNotExists doc load error NOT 404: ' + doc + ': ' + _context4.t0);
247
- throw _context4.t0;
435
+ debug.log('createIfNotExists doc load error NOT 404: ' + doc + ': ' + _context8.t0);
436
+ throw _context8.t0;
248
437
  case 26:
249
- return _context4.abrupt("return", response);
438
+ return _context8.abrupt("return", response);
250
439
  case 27:
251
440
  case "end":
252
- return _context4.stop();
441
+ return _context8.stop();
253
442
  }
254
- }, _callee4, null, [[0, 6], [10, 16]]);
443
+ }, _callee8, null, [[0, 6], [10, 16]]);
255
444
  })();
256
445
  });
257
446
  return _createIfNotExists2.apply(this, arguments);