solid-ui 2.4.32-8d90d955 → 2.4.32-9d930db7

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 (49) hide show
  1. package/dist/{320.solid-ui.min.js → 670.solid-ui.min.js} +1 -1
  2. package/dist/805.solid-ui.min.js +3 -0
  3. package/dist/805.solid-ui.min.js.map +1 -0
  4. package/dist/solid-ui.js +1509 -2226
  5. package/dist/solid-ui.js.map +1 -1
  6. package/dist/solid-ui.min.js +1 -1
  7. package/dist/solid-ui.min.js.map +1 -1
  8. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js +1 -1
  9. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js.map +1 -1
  10. package/lib/chat/bookmarks.js +42 -7
  11. package/lib/chat/bookmarks.js.map +1 -1
  12. package/lib/chat/chatLogic.js +101 -226
  13. package/lib/chat/chatLogic.js.map +1 -1
  14. package/lib/chat/dateFolder.js +136 -139
  15. package/lib/chat/dateFolder.js.map +1 -1
  16. package/lib/chat/infinite.js +432 -618
  17. package/lib/chat/infinite.js.map +1 -1
  18. package/lib/chat/keys.js +3 -3
  19. package/lib/chat/keys.js.map +1 -1
  20. package/lib/chat/message.js +191 -323
  21. package/lib/chat/message.js.map +1 -1
  22. package/lib/chat/messageTools.js +276 -459
  23. package/lib/chat/messageTools.js.map +1 -1
  24. package/lib/chat/thread.js +208 -299
  25. package/lib/chat/thread.js.map +1 -1
  26. package/lib/pad.js +8 -6
  27. package/lib/pad.js.map +1 -1
  28. package/lib/participation.js +6 -5
  29. package/lib/participation.js.map +1 -1
  30. package/lib/preferences.js +0 -4
  31. package/lib/preferences.js.map +1 -1
  32. package/lib/tabs.js +10 -7
  33. package/lib/tabs.js.map +1 -1
  34. package/lib/utils/keyHelpers/accessData.d.ts +2 -2
  35. package/lib/utils/keyHelpers/accessData.d.ts.map +1 -1
  36. package/lib/utils/keyHelpers/accessData.js +115 -59
  37. package/lib/utils/keyHelpers/accessData.js.map +1 -1
  38. package/lib/utils/keyHelpers/acl.js +14 -14
  39. package/lib/utils/keyHelpers/acl.js.map +1 -1
  40. package/lib/versionInfo.js +2 -2
  41. package/lib/versionInfo.js.map +1 -1
  42. package/package.json +2 -3
  43. package/dist/376.solid-ui.min.js +0 -3
  44. package/dist/376.solid-ui.min.js.map +0 -1
  45. package/lib/utils/keyHelpers/otherHelpers.d.ts +0 -3
  46. package/lib/utils/keyHelpers/otherHelpers.d.ts.map +0 -1
  47. package/lib/utils/keyHelpers/otherHelpers.js +0 -22
  48. package/lib/utils/keyHelpers/otherHelpers.js.map +0 -1
  49. /package/dist/{376.solid-ui.min.js.LICENSE.txt → 805.solid-ui.min.js.LICENSE.txt} +0 -0
@@ -28,6 +28,8 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
28
28
  * @packageDocumentation
29
29
  */
30
30
 
31
+ /* global alert confirm */
32
+
31
33
  // pull in first avoid cross-refs
32
34
 
33
35
  var UI = {
@@ -46,6 +48,40 @@ var BOOKMARK_ICON = 'noun_45961.svg';
46
48
  var label = utils.label;
47
49
  var dom = window.document || null;
48
50
 
51
+ /** Create a resource if it really does not exist
52
+ * Be absolutely sure something does not exist before creating a new empty file
53
+ * as otherwise existing could be deleted.
54
+ * @param doc {NamedNode} - The resource
55
+ */
56
+ function createIfNotExists(doc) {
57
+ return new Promise(function (resolve, reject) {
58
+ _solidLogic.store.fetcher.load(doc).then(function (response) {
59
+ debug.log('createIfNotExists doc exists, all good ' + doc);
60
+ // store.fetcher.webOperation('HEAD', doc.uri).then(response => {
61
+ resolve(response);
62
+ }, function (err) {
63
+ if (err.response.status === 404) {
64
+ debug.log('createIfNotExists doc does NOT exist, will create... ' + doc);
65
+ _solidLogic.store.fetcher.webOperation('PUT', doc.uri, {
66
+ data: '',
67
+ contentType: 'text/turtle'
68
+ }).then(function (response) {
69
+ // fetcher.requested[doc.uri] = 'done' // do not need to read ?? but no headers
70
+ delete _solidLogic.store.fetcher.requested[doc.uri]; // delete cached 404 error
71
+ debug.log('createIfNotExists doc created ok ' + doc);
72
+ resolve(response);
73
+ }, function (err) {
74
+ debug.log('createIfNotExists doc FAILED: ' + doc + ': ' + err);
75
+ reject(err);
76
+ });
77
+ } else {
78
+ debug.log('createIfNotExists doc load error NOT 404: ' + doc + ': ' + err);
79
+ reject(err);
80
+ }
81
+ });
82
+ });
83
+ }
84
+
49
85
  // @@@@ use the one in rdflib.js when it is avaiable and delete this
50
86
  function updatePromise(del, ins) {
51
87
  return new Promise(function (resolve, reject) {
@@ -86,8 +122,7 @@ function _findBookmarkDocument() {
86
122
  }
87
123
  userContext.bookmarkDocument = userContext.instances[0];
88
124
  if (userContext.instances.length > 1) {
89
- debug.warn('More than one bookmark file! ' + userContext.instances); // @@ todo - deal with > 1
90
- // Note: should pick up community bookmarks as well
125
+ alert('More than one bookmark file! ' + userContext.instances);
91
126
  }
92
127
  _context.next = 28;
93
128
  break;
@@ -101,14 +136,14 @@ function _findBookmarkDocument() {
101
136
  _context.prev = 12;
102
137
  debug.log('Creating new bookmark file ' + newBookmarkFile);
103
138
  _context.next = 16;
104
- return _solidLogic.store.fetcher.createIfNotExists(newBookmarkFile);
139
+ return createIfNotExists(newBookmarkFile);
105
140
  case 16:
106
141
  _context.next = 22;
107
142
  break;
108
143
  case 18:
109
144
  _context.prev = 18;
110
145
  _context.t0 = _context["catch"](12);
111
- debug.warn("Can't make fresh bookmark file:" + _context.t0);
146
+ alert.error("Can't make fresh bookmark file:" + _context.t0);
112
147
  return _context.abrupt("return", userContext);
113
148
  case 22:
114
149
  _context.next = 24;
@@ -118,7 +153,7 @@ function _findBookmarkDocument() {
118
153
  _context.next = 28;
119
154
  break;
120
155
  case 27:
121
- debug.warn('You seem to have no bookmark file, nor even a profile file!');
156
+ alert('You seem to have no bookmark file and not even a profile file.');
122
157
  case 28:
123
158
  return _context.abrupt("return", userContext);
124
159
  case 29:
@@ -173,7 +208,7 @@ function _addBookmark() {
173
208
  _context2.prev = 14;
174
209
  _context2.t0 = _context2["catch"](9);
175
210
  msg = 'Making bookmark: ' + _context2.t0;
176
- debug.warn(msg);
211
+ alert.error(msg);
177
212
  return _context2.abrupt("return", null);
178
213
  case 19:
179
214
  return _context2.abrupt("return", bookmark);
@@ -226,7 +261,7 @@ function _toggleBookmark() {
226
261
  _context3.prev = 15;
227
262
  _context3.t0 = _context3["catch"](8);
228
263
  debug.error('Cant delete bookmark:' + _context3.t0);
229
- debug.warn('Cannot delete bookmark:' + _context3.t0);
264
+ alert('Cant delete bookmark:' + _context3.t0);
230
265
  case 19:
231
266
  i++;
232
267
  _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","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","UI","icons","media","$rdf","BOOK","Namespace","BOOKMARK_ICON","label","dom","window","document","updatePromise","del","ins","Promise","resolve","reject","store","updater","update","uri","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","log","fetcher","createIfNotExists","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","_callee3$","_context3","load","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// @@@@ 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 store.fetcher.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, nor 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('Cannot 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","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","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","_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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"}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.ChatChannel = void 0;
9
- exports.allVersions = allVersions;
9
+ exports._createIfNotExists = _createIfNotExists;
10
10
  exports.isDeleted = isDeleted;
11
11
  exports.isHidden = isHidden;
12
12
  exports.isReplaced = isReplaced;
@@ -85,9 +85,8 @@ var ChatChannel = exports.ChatChannel = /*#__PURE__*/function () {
85
85
  var _this = this;
86
86
  var oldMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
87
87
  var deleteIt = arguments.length > 2 ? arguments[2] : undefined;
88
- 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;
89
+ var sts, now, timestamp, dateStamp, chatDocument, message, me, msg, oldMsgMaker, errMsg, privateKey, sig, _errMsg;
91
90
  return _regenerator["default"].wrap(function _callee2$(_context2) {
92
91
  while (1) switch (_context2.prev = _context2.next) {
93
92
  case 0:
@@ -101,88 +100,73 @@ 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 = 22;
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 = 16;
111
110
  break;
112
111
  }
113
- _context2.next = 14;
114
- return mostRecentVersion(oldMsg);
115
- case 14:
116
- oldMsgMostRecentVersion = _context2.sent;
117
- sts.push($rdf.st(oldMsgMostRecentVersion, ns.dct('isReplacedBy'), message, chatDocument));
118
- // if oldMsg has_reply => add has_reply to message
119
- oldMsgThread = _solidLogic.store.any(oldMsgMostRecentVersion, ns.sioc('has_reply'));
120
- if (oldMsgThread) {
121
- sts.push($rdf.st(message, ns.sioc('has_reply'), oldMsgThread, chatDocument));
122
- }
112
+ sts.push($rdf.st(mostRecentVersion(oldMsg), ns.dct('isReplacedBy'), message, chatDocument));
123
113
  if (deleteIt) {
124
114
  // we need to add a specific signature, else anyone can delete a msg ?
125
115
  sts.push($rdf.st(message, ns.schema('dateDeleted'), dateStamp, chatDocument));
126
116
  }
127
- _context2.next = 25;
117
+ _context2.next = 20;
128
118
  break;
129
- case 21:
119
+ case 16:
130
120
  errMsg = 'Error you cannot delete/edit a message from someone else : \n' + oldMsgMaker.uri;
131
121
  debug.warn(errMsg);
132
122
  alert(errMsg);
133
123
  throw new Error(errMsg);
134
- case 25:
135
- _context2.next = 28;
124
+ case 20:
125
+ _context2.next = 23;
136
126
  break;
137
- case 27:
127
+ case 22:
138
128
  // link new message to channel
139
129
  sts.push($rdf.st(_this.channel, ns.wf('message'), message, chatDocument));
140
- case 28:
130
+ case 23:
141
131
  sts.push($rdf.st(message, ns.sioc('content'), _solidLogic.store.literal(text), chatDocument));
142
132
  msg.content = text;
143
133
  sts.push($rdf.st(message, ns.dct('created'), dateStamp, chatDocument));
144
134
  msg.created = dateStamp.value;
145
135
  if (!me) {
146
- _context2.next = 40;
136
+ _context2.next = 35;
147
137
  break;
148
138
  }
149
139
  sts.push($rdf.st(message, ns.foaf('maker'), me, chatDocument));
150
140
  msg.maker = me.uri;
151
141
  // privateKey the cached private key of me, cached in store
152
- _context2.next = 37;
142
+ _context2.next = 32;
153
143
  return (0, _keys.getPrivateKey)(me);
154
- case 37:
144
+ case 32:
155
145
  privateKey = _context2.sent;
156
146
  // me.uri)
157
147
  sig = (0, _signature.signMsg)(msg, privateKey);
158
148
  sts.push($rdf.st(message, $rdf.sym("".concat(_signature.SEC, "proofValue")), $rdf.lit(sig), chatDocument));
159
- case 40:
160
- if (thread) {
161
- sts.push($rdf.st(thread, ns.sioc('has_member'), message, chatDocument));
162
- if (!thread.doc().sameTerm(message.doc())) {
163
- sts.push($rdf.st(thread, ns.sioc('has_member'), message, thread.doc()));
164
- }
165
- }
166
- _context2.prev = 41;
167
- _context2.next = 44;
168
- return _solidLogic.store.updater.updateMany([], sts);
169
- case 44:
170
- _context2.next = 52;
149
+ case 35:
150
+ _context2.prev = 35;
151
+ _context2.next = 38;
152
+ return _solidLogic.store.updater.update([], sts);
153
+ case 38:
154
+ _context2.next = 46;
171
155
  break;
172
- case 46:
173
- _context2.prev = 46;
174
- _context2.t0 = _context2["catch"](41);
156
+ case 40:
157
+ _context2.prev = 40;
158
+ _context2.t0 = _context2["catch"](35);
175
159
  _errMsg = 'Error saving chat message: ' + _context2.t0;
176
160
  debug.warn(_errMsg);
177
161
  alert(_errMsg);
178
162
  throw new Error(_errMsg);
179
- case 52:
163
+ case 46:
180
164
  return _context2.abrupt("return", message);
181
- case 53:
165
+ case 47:
182
166
  case "end":
183
167
  return _context2.stop();
184
168
  }
185
- }, _callee2, null, [[41, 46]]);
169
+ }, _callee2, null, [[35, 40]]);
186
170
  })();
187
171
  });
188
172
  function updateMessage(_x2) {
@@ -213,193 +197,25 @@ var ChatChannel = exports.ChatChannel = /*#__PURE__*/function () {
213
197
  return _deleteMessage.apply(this, arguments);
214
198
  }
215
199
  return deleteMessage;
216
- }() // Create a new thread of replies to the thread root message
217
- // or return one which already exists
218
- )
219
- }, {
220
- key: "createThread",
221
- value: function () {
222
- var _createThread = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(threadRoot) {
223
- var already, thread, insert;
224
- return _regenerator["default"].wrap(function _callee4$(_context4) {
225
- while (1) switch (_context4.prev = _context4.next) {
226
- case 0:
227
- already = _solidLogic.store.each(threadRoot, ns.sioc('has_reply'), null, threadRoot.doc()).filter(function (thread) {
228
- return _solidLogic.store.holds(thread, ns.rdf('type'), ns.sioc('Thread'), thread.doc());
229
- });
230
- if (!(already.length > 0)) {
231
- _context4.next = 3;
232
- break;
233
- }
234
- return _context4.abrupt("return", already[0]);
235
- case 3:
236
- thread = $rdf.sym(threadRoot.uri + '-thread');
237
- 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;
239
- return _solidLogic.store.updater.update([], insert);
240
- case 7:
241
- return _context4.abrupt("return", thread);
242
- case 8:
243
- case "end":
244
- return _context4.stop();
245
- }
246
- }, _callee4);
247
- }));
248
- function createThread(_x4) {
249
- return _createThread.apply(this, arguments);
250
- }
251
- return createThread;
252
- }()
200
+ }())
253
201
  }]);
254
202
  return ChatChannel;
255
203
  }(); // class ChatChannel
256
- // ////////// Utility functions
257
- // Have to not loop forever if fed loops
258
- function allVersions(_x5) {
259
- return _allVersions.apply(this, arguments);
260
- }
261
- function _allVersions() {
262
- _allVersions = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(message) {
263
- var versions, done, m, prev, next;
264
- return _regenerator["default"].wrap(function _callee5$(_context5) {
265
- while (1) switch (_context5.prev = _context5.next) {
266
- case 0:
267
- versions = [message];
268
- done = {};
269
- done[message.uri] = true;
270
- m = message;
271
- case 4:
272
- if (!true) {
273
- _context5.next = 15;
274
- break;
275
- }
276
- // earlier?
277
- prev = _solidLogic.store.any(null, ns.dct('isReplacedBy'), m, m.doc());
278
- if (!(!prev || done[prev.uri])) {
279
- _context5.next = 8;
280
- break;
281
- }
282
- return _context5.abrupt("break", 15);
283
- case 8:
284
- _context5.next = 10;
285
- return _solidLogic.store.fetcher.load(prev);
286
- case 10:
287
- versions.unshift(prev);
288
- done[prev.uri] = true;
289
- m = prev;
290
- _context5.next = 4;
291
- break;
292
- case 15:
293
- m = message;
294
- case 16:
295
- if (!true) {
296
- _context5.next = 25;
297
- break;
298
- }
299
- // later?
300
- next = _solidLogic.store.any(m, ns.dct('isReplacedBy'), null, m.doc());
301
- if (!(!next || done[next.uri])) {
302
- _context5.next = 20;
303
- break;
304
- }
305
- return _context5.abrupt("break", 25);
306
- case 20:
307
- versions.push(next);
308
- done[next.uri] = true;
309
- m = next;
310
- _context5.next = 16;
311
- break;
312
- case 25:
313
- return _context5.abrupt("return", versions);
314
- case 26:
315
- case "end":
316
- return _context5.stop();
317
- }
318
- }, _callee5);
319
- }));
320
- return _allVersions.apply(this, arguments);
321
- }
322
- function originalVersion(_x6) {
323
- return _originalVersion.apply(this, arguments);
324
- }
325
- function _originalVersion() {
326
- _originalVersion = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(message) {
327
- var msg, done;
328
- return _regenerator["default"].wrap(function _callee6$(_context6) {
329
- while (1) switch (_context6.prev = _context6.next) {
330
- case 0:
331
- msg = message;
332
- done = {}; // done[message.uri] = true
333
- case 2:
334
- if (!msg) {
335
- _context6.next = 13;
336
- break;
337
- }
338
- if (!done[msg.uri]) {
339
- _context6.next = 6;
340
- break;
341
- }
342
- debug.error('originalVersion: verion loop' + message);
343
- return _context6.abrupt("return", message);
344
- case 6:
345
- done[msg.uri] = true;
346
- message = msg;
347
- _context6.next = 10;
348
- return _solidLogic.store.fetcher.load(message);
349
- case 10:
350
- msg = _solidLogic.store.any(null, ns.dct('isReplacedBy'), message, message.doc());
351
- _context6.next = 2;
352
- break;
353
- case 13:
354
- return _context6.abrupt("return", message);
355
- case 14:
356
- case "end":
357
- return _context6.stop();
358
- }
359
- }, _callee6);
360
- }));
361
- return _originalVersion.apply(this, arguments);
362
- }
363
- function mostRecentVersion(_x7) {
364
- return _mostRecentVersion.apply(this, arguments);
204
+ function originalVersion(message) {
205
+ var msg = message;
206
+ while (msg) {
207
+ message = msg;
208
+ msg = _solidLogic.store.any(null, ns.dct('isReplacedBy'), message, message.doc());
209
+ }
210
+ return message;
365
211
  }
366
- function _mostRecentVersion() {
367
- _mostRecentVersion = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7(message) {
368
- var msg, done;
369
- return _regenerator["default"].wrap(function _callee7$(_context7) {
370
- while (1) switch (_context7.prev = _context7.next) {
371
- case 0:
372
- msg = message;
373
- done = {};
374
- case 2:
375
- if (!msg) {
376
- _context7.next = 13;
377
- break;
378
- }
379
- if (!done[msg.uri]) {
380
- _context7.next = 6;
381
- break;
382
- }
383
- debug.error('mostRecentVersion: verion loop' + message);
384
- return _context7.abrupt("return", message);
385
- case 6:
386
- done[msg.uri] = true;
387
- message = msg;
388
- _context7.next = 10;
389
- return _solidLogic.store.fetcher.load(message);
390
- case 10:
391
- msg = _solidLogic.store.any(message, ns.dct('isReplacedBy'), null, message.doc());
392
- _context7.next = 2;
393
- break;
394
- case 13:
395
- return _context7.abrupt("return", message);
396
- case 14:
397
- case "end":
398
- return _context7.stop();
399
- }
400
- }, _callee7);
401
- }));
402
- return _mostRecentVersion.apply(this, arguments);
212
+ function mostRecentVersion(message) {
213
+ var msg = message;
214
+ while (msg) {
215
+ message = msg;
216
+ msg = _solidLogic.store.any(message, ns.dct('isReplacedBy'), null, message.doc());
217
+ }
218
+ return message;
403
219
  }
404
220
  function isDeleted(message) {
405
221
  return _solidLogic.store.holds(message, ns.schema('dateDeleted'), null, message.doc());
@@ -418,5 +234,64 @@ function nick(person) {
418
234
  if (s) return '' + s.value;
419
235
  return '' + utils.label(person);
420
236
  }
421
- // ends
237
+ function _createIfNotExists(_x4) {
238
+ return _createIfNotExists2.apply(this, arguments);
239
+ } // ends
240
+ function _createIfNotExists2() {
241
+ _createIfNotExists2 = (0, _asyncToGenerator2["default"])(function (doc) {
242
+ var contentType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'text/turtle';
243
+ var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
244
+ return /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
245
+ var response;
246
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
247
+ while (1) switch (_context4.prev = _context4.next) {
248
+ case 0:
249
+ _context4.prev = 0;
250
+ _context4.next = 3;
251
+ return _solidLogic.store.fetcher.load(doc);
252
+ case 3:
253
+ response = _context4.sent;
254
+ _context4.next = 26;
255
+ break;
256
+ case 6:
257
+ _context4.prev = 6;
258
+ _context4.t0 = _context4["catch"](0);
259
+ if (!(_context4.t0.response.status === 404)) {
260
+ _context4.next = 24;
261
+ break;
262
+ }
263
+ debug.log('createIfNotExists: doc does NOT exist, will create... ' + doc);
264
+ _context4.prev = 10;
265
+ _context4.next = 13;
266
+ return _solidLogic.store.fetcher.webOperation('PUT', doc.uri, {
267
+ data: data,
268
+ contentType: contentType
269
+ });
270
+ case 13:
271
+ response = _context4.sent;
272
+ _context4.next = 20;
273
+ break;
274
+ case 16:
275
+ _context4.prev = 16;
276
+ _context4.t1 = _context4["catch"](10);
277
+ debug.log('createIfNotExists doc FAILED: ' + doc + ': ' + _context4.t1);
278
+ throw _context4.t1;
279
+ case 20:
280
+ delete _solidLogic.store.fetcher.requested[doc.uri]; // delete cached 404 error
281
+ // debug.log('createIfNotExists doc created ok ' + doc)
282
+ return _context4.abrupt("return", response);
283
+ case 24:
284
+ debug.log('createIfNotExists doc load error NOT 404: ' + doc + ': ' + _context4.t0);
285
+ throw _context4.t0;
286
+ case 26:
287
+ return _context4.abrupt("return", response);
288
+ case 27:
289
+ case "end":
290
+ return _context4.stop();
291
+ }
292
+ }, _callee4, null, [[0, 6], [10, 16]]);
293
+ })();
294
+ });
295
+ return _createIfNotExists2.apply(this, arguments);
296
+ }
422
297
  //# sourceMappingURL=chatLogic.js.map