solid-ui 2.4.14-bbf45639-641e6c97 → 2.4.15-alpha

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 (259) hide show
  1. package/LICENSE.md +0 -0
  2. package/README.md +0 -0
  3. package/lib/acl/access-controller.d.ts +0 -0
  4. package/lib/acl/access-controller.d.ts.map +0 -0
  5. package/lib/acl/access-controller.js +0 -0
  6. package/lib/acl/access-controller.js.map +0 -0
  7. package/lib/acl/access-groups.d.ts +0 -0
  8. package/lib/acl/access-groups.d.ts.map +0 -0
  9. package/lib/acl/access-groups.js +0 -0
  10. package/lib/acl/access-groups.js.map +0 -0
  11. package/lib/acl/acl-control.d.ts +0 -0
  12. package/lib/acl/acl-control.d.ts.map +0 -0
  13. package/lib/acl/acl-control.js +0 -0
  14. package/lib/acl/acl-control.js.map +0 -0
  15. package/lib/acl/acl.d.ts +0 -0
  16. package/lib/acl/acl.d.ts.map +0 -0
  17. package/lib/acl/acl.js +0 -0
  18. package/lib/acl/acl.js.map +0 -0
  19. package/lib/acl/add-agent-buttons.d.ts +0 -0
  20. package/lib/acl/add-agent-buttons.d.ts.map +0 -0
  21. package/lib/acl/add-agent-buttons.js +0 -0
  22. package/lib/acl/add-agent-buttons.js.map +0 -0
  23. package/lib/acl/index.d.ts +0 -0
  24. package/lib/acl/index.d.ts.map +0 -0
  25. package/lib/acl/index.js +0 -0
  26. package/lib/acl/index.js.map +0 -0
  27. package/lib/acl/styles.d.ts +0 -0
  28. package/lib/acl/styles.d.ts.map +0 -0
  29. package/lib/acl/styles.js +0 -0
  30. package/lib/acl/styles.js.map +0 -0
  31. package/lib/acl/types.d.ts +0 -0
  32. package/lib/acl/types.d.ts.map +0 -0
  33. package/lib/acl/types.js +0 -0
  34. package/lib/acl/types.js.map +0 -0
  35. package/lib/authn/authSession.d.ts +0 -0
  36. package/lib/authn/authSession.d.ts.map +0 -0
  37. package/lib/authn/authSession.js +0 -0
  38. package/lib/authn/authSession.js.map +0 -0
  39. package/lib/authn/authn.d.ts +0 -0
  40. package/lib/authn/authn.d.ts.map +0 -0
  41. package/lib/authn/authn.js +0 -0
  42. package/lib/authn/authn.js.map +0 -0
  43. package/lib/authn/config-default.js +0 -0
  44. package/lib/authn/config-default.js.map +0 -0
  45. package/lib/authn/index.d.ts +0 -0
  46. package/lib/authn/index.d.ts.map +0 -0
  47. package/lib/authn/index.js +0 -0
  48. package/lib/authn/index.js.map +0 -0
  49. package/lib/authn/signup.js +0 -0
  50. package/lib/authn/signup.js.map +0 -0
  51. package/lib/authn/types.d.ts +0 -0
  52. package/lib/authn/types.d.ts.map +0 -0
  53. package/lib/authn/types.js +0 -0
  54. package/lib/authn/types.js.map +0 -0
  55. package/lib/chat/bookmarks.js +14 -13
  56. package/lib/chat/bookmarks.js.map +1 -1
  57. package/lib/chat/chatLogic.js +340 -0
  58. package/lib/chat/chatLogic.js.map +1 -0
  59. package/lib/chat/dateFolder.js +12 -12
  60. package/lib/chat/dateFolder.js.map +1 -1
  61. package/lib/chat/infinite.js +285 -665
  62. package/lib/chat/infinite.js.map +1 -1
  63. package/lib/chat/message.js +445 -71
  64. package/lib/chat/message.js.map +1 -1
  65. package/lib/chat/messageTools.js +165 -103
  66. package/lib/chat/messageTools.js.map +1 -1
  67. package/lib/chat/thread.js +162 -32
  68. package/lib/chat/thread.js.map +1 -1
  69. package/lib/create/create.d.ts +0 -0
  70. package/lib/create/create.d.ts.map +0 -0
  71. package/lib/create/create.js +0 -0
  72. package/lib/create/create.js.map +0 -0
  73. package/lib/create/index.d.ts +0 -0
  74. package/lib/create/index.d.ts.map +0 -0
  75. package/lib/create/index.js +0 -0
  76. package/lib/create/index.js.map +0 -0
  77. package/lib/create/types.d.ts +0 -0
  78. package/lib/create/types.d.ts.map +0 -0
  79. package/lib/create/types.js +0 -0
  80. package/lib/create/types.js.map +0 -0
  81. package/lib/debug.d.ts +0 -0
  82. package/lib/debug.d.ts.map +0 -0
  83. package/lib/debug.js +0 -0
  84. package/lib/debug.js.map +0 -0
  85. package/lib/folders.js +0 -0
  86. package/lib/folders.js.map +0 -0
  87. package/lib/footer/index.d.ts +0 -0
  88. package/lib/footer/index.d.ts.map +0 -0
  89. package/lib/footer/index.js +0 -0
  90. package/lib/footer/index.js.map +0 -0
  91. package/lib/footer/styleMap.d.ts +0 -0
  92. package/lib/footer/styleMap.d.ts.map +0 -0
  93. package/lib/footer/styleMap.js +0 -0
  94. package/lib/footer/styleMap.js.map +0 -0
  95. package/lib/header/empty-profile.d.ts +0 -0
  96. package/lib/header/empty-profile.d.ts.map +0 -0
  97. package/lib/header/empty-profile.js +0 -0
  98. package/lib/header/empty-profile.js.map +0 -0
  99. package/lib/header/index.d.ts +0 -0
  100. package/lib/header/index.d.ts.map +0 -0
  101. package/lib/header/index.js +0 -0
  102. package/lib/header/index.js.map +0 -0
  103. package/lib/header/styleMap.d.ts +0 -0
  104. package/lib/header/styleMap.d.ts.map +0 -0
  105. package/lib/header/styleMap.js +0 -0
  106. package/lib/header/styleMap.js.map +0 -0
  107. package/lib/iconBase.d.ts +0 -0
  108. package/lib/iconBase.d.ts.map +0 -0
  109. package/lib/iconBase.js +0 -0
  110. package/lib/iconBase.js.map +0 -0
  111. package/lib/icons/solid_logo.d.ts +0 -0
  112. package/lib/icons/solid_logo.d.ts.map +0 -0
  113. package/lib/icons/solid_logo.js +0 -0
  114. package/lib/icons/solid_logo.js.map +0 -0
  115. package/lib/index.d.ts +0 -0
  116. package/lib/index.d.ts.map +0 -0
  117. package/lib/index.js +0 -0
  118. package/lib/index.js.map +0 -0
  119. package/lib/jss/index.d.ts +0 -0
  120. package/lib/jss/index.d.ts.map +0 -0
  121. package/lib/jss/index.js +0 -0
  122. package/lib/jss/index.js.map +0 -0
  123. package/lib/log.d.ts +0 -0
  124. package/lib/log.d.ts.map +0 -0
  125. package/lib/log.js +0 -0
  126. package/lib/log.js.map +0 -0
  127. package/lib/logic.d.ts +0 -0
  128. package/lib/logic.d.ts.map +0 -0
  129. package/lib/logic.js +0 -0
  130. package/lib/logic.js.map +0 -0
  131. package/lib/matrix/index.d.ts +0 -0
  132. package/lib/matrix/index.d.ts.map +0 -0
  133. package/lib/matrix/index.js +0 -0
  134. package/lib/matrix/index.js.map +0 -0
  135. package/lib/matrix/matrix.d.ts +0 -0
  136. package/lib/matrix/matrix.d.ts.map +0 -0
  137. package/lib/matrix/matrix.js +0 -0
  138. package/lib/matrix/matrix.js.map +0 -0
  139. package/lib/matrix/types.d.ts +0 -0
  140. package/lib/matrix/types.d.ts.map +0 -0
  141. package/lib/matrix/types.js +0 -0
  142. package/lib/matrix/types.js.map +0 -0
  143. package/lib/media/index.d.ts +0 -0
  144. package/lib/media/index.d.ts.map +0 -0
  145. package/lib/media/index.js +0 -0
  146. package/lib/media/index.js.map +0 -0
  147. package/lib/media/media-capture.d.ts +0 -0
  148. package/lib/media/media-capture.d.ts.map +0 -0
  149. package/lib/media/media-capture.js +0 -0
  150. package/lib/media/media-capture.js.map +0 -0
  151. package/lib/messageArea.js +0 -0
  152. package/lib/messageArea.js.map +0 -0
  153. package/lib/noun_Camera_1618446_000000.js +0 -0
  154. package/lib/noun_Camera_1618446_000000.js.map +0 -0
  155. package/lib/ns.js +0 -0
  156. package/lib/ns.js.map +0 -0
  157. package/lib/pad.d.ts +0 -0
  158. package/lib/pad.d.ts.map +0 -0
  159. package/lib/pad.js +0 -0
  160. package/lib/pad.js.map +0 -0
  161. package/lib/participation.d.ts +0 -0
  162. package/lib/participation.d.ts.map +0 -0
  163. package/lib/participation.js +0 -0
  164. package/lib/participation.js.map +0 -0
  165. package/lib/preferences.js +0 -0
  166. package/lib/preferences.js.map +0 -0
  167. package/lib/stories/decorators.js +0 -0
  168. package/lib/stories/decorators.js.map +0 -0
  169. package/lib/style.js +0 -0
  170. package/lib/style.js.map +0 -0
  171. package/lib/table.js +0 -0
  172. package/lib/table.js.map +0 -0
  173. package/lib/tabs.d.ts +0 -0
  174. package/lib/tabs.d.ts.map +0 -0
  175. package/lib/tabs.js +0 -0
  176. package/lib/tabs.js.map +0 -0
  177. package/lib/typings.d.js +0 -0
  178. package/lib/typings.d.js.map +0 -0
  179. package/lib/utils/headerFooterHelpers.d.ts +0 -0
  180. package/lib/utils/headerFooterHelpers.d.ts.map +0 -0
  181. package/lib/utils/headerFooterHelpers.js +0 -0
  182. package/lib/utils/headerFooterHelpers.js.map +0 -0
  183. package/lib/utils/index.js +0 -0
  184. package/lib/utils/index.js.map +0 -0
  185. package/lib/utils/label.d.ts +0 -0
  186. package/lib/utils/label.d.ts.map +0 -0
  187. package/lib/utils/label.js +0 -0
  188. package/lib/utils/label.js.map +0 -0
  189. package/lib/versionInfo.d.ts +0 -0
  190. package/lib/versionInfo.d.ts.map +0 -0
  191. package/lib/versionInfo.js +10 -10
  192. package/lib/versionInfo.js.map +1 -1
  193. package/lib/webpack-bundle.js +1408 -993
  194. package/lib/webpack-bundle.js.map +1 -1
  195. package/lib/widgets/buttons/iconLinks.d.ts +0 -0
  196. package/lib/widgets/buttons/iconLinks.d.ts.map +0 -0
  197. package/lib/widgets/buttons/iconLinks.js +0 -0
  198. package/lib/widgets/buttons/iconLinks.js.map +0 -0
  199. package/lib/widgets/buttons.d.ts +0 -0
  200. package/lib/widgets/buttons.d.ts.map +1 -1
  201. package/lib/widgets/buttons.js +8 -1
  202. package/lib/widgets/buttons.js.map +1 -1
  203. package/lib/widgets/dragAndDrop.js +0 -0
  204. package/lib/widgets/dragAndDrop.js.map +0 -0
  205. package/lib/widgets/error.d.ts +0 -0
  206. package/lib/widgets/error.d.ts.map +0 -0
  207. package/lib/widgets/error.js +0 -0
  208. package/lib/widgets/error.js.map +0 -0
  209. package/lib/widgets/forms/autocomplete/autocompleteBar.d.ts +0 -0
  210. package/lib/widgets/forms/autocomplete/autocompleteBar.d.ts.map +0 -0
  211. package/lib/widgets/forms/autocomplete/autocompleteBar.js +0 -0
  212. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +0 -0
  213. package/lib/widgets/forms/autocomplete/autocompleteField.d.ts +0 -0
  214. package/lib/widgets/forms/autocomplete/autocompleteField.d.ts.map +0 -0
  215. package/lib/widgets/forms/autocomplete/autocompleteField.js +0 -0
  216. package/lib/widgets/forms/autocomplete/autocompleteField.js.map +0 -0
  217. package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts +0 -0
  218. package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts.map +0 -0
  219. package/lib/widgets/forms/autocomplete/autocompletePicker.js +0 -0
  220. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +0 -0
  221. package/lib/widgets/forms/autocomplete/language.d.ts +0 -0
  222. package/lib/widgets/forms/autocomplete/language.d.ts.map +0 -0
  223. package/lib/widgets/forms/autocomplete/language.js +0 -0
  224. package/lib/widgets/forms/autocomplete/language.js.map +0 -0
  225. package/lib/widgets/forms/autocomplete/publicData.d.ts +0 -0
  226. package/lib/widgets/forms/autocomplete/publicData.d.ts.map +0 -0
  227. package/lib/widgets/forms/autocomplete/publicData.js +0 -0
  228. package/lib/widgets/forms/autocomplete/publicData.js.map +0 -0
  229. package/lib/widgets/forms/basic.d.ts +0 -0
  230. package/lib/widgets/forms/basic.d.ts.map +0 -0
  231. package/lib/widgets/forms/basic.js +0 -0
  232. package/lib/widgets/forms/basic.js.map +0 -0
  233. package/lib/widgets/forms/comment.d.ts +0 -0
  234. package/lib/widgets/forms/comment.d.ts.map +0 -0
  235. package/lib/widgets/forms/comment.js +0 -0
  236. package/lib/widgets/forms/comment.js.map +0 -0
  237. package/lib/widgets/forms/fieldFunction.d.ts +0 -0
  238. package/lib/widgets/forms/fieldFunction.d.ts.map +0 -0
  239. package/lib/widgets/forms/fieldFunction.js +0 -0
  240. package/lib/widgets/forms/fieldFunction.js.map +0 -0
  241. package/lib/widgets/forms/fieldParams.d.ts +0 -0
  242. package/lib/widgets/forms/fieldParams.d.ts.map +0 -0
  243. package/lib/widgets/forms/fieldParams.js +0 -0
  244. package/lib/widgets/forms/fieldParams.js.map +0 -0
  245. package/lib/widgets/forms/formStyle.d.ts +0 -0
  246. package/lib/widgets/forms/formStyle.d.ts.map +0 -0
  247. package/lib/widgets/forms/formStyle.js +0 -0
  248. package/lib/widgets/forms/formStyle.js.map +0 -0
  249. package/lib/widgets/forms.js +0 -0
  250. package/lib/widgets/forms.js.map +0 -0
  251. package/lib/widgets/index.js +0 -0
  252. package/lib/widgets/index.js.map +0 -0
  253. package/lib/widgets/peoplePicker.js +0 -0
  254. package/lib/widgets/peoplePicker.js.map +0 -0
  255. package/lib/widgets/widgetHelpers.d.ts +0 -0
  256. package/lib/widgets/widgetHelpers.d.ts.map +0 -0
  257. package/lib/widgets/widgetHelpers.js +0 -0
  258. package/lib/widgets/widgetHelpers.js.map +0 -0
  259. package/package.json +3 -3
package/LICENSE.md CHANGED
File without changes
package/README.md CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/lib/acl/acl.d.ts CHANGED
File without changes
File without changes
package/lib/acl/acl.js CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/lib/acl/index.js CHANGED
File without changes
File without changes
File without changes
File without changes
package/lib/acl/styles.js CHANGED
File without changes
File without changes
File without changes
File without changes
package/lib/acl/types.js CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -63,7 +63,6 @@ var UI = {
63
63
  var $rdf = UI.rdf;
64
64
  var BOOK = $rdf.Namespace('http://www.w3.org/2002/01/bookmark#');
65
65
  var BOOKMARK_ICON = 'noun_45961.svg';
66
- var kb = _logic.store;
67
66
  var label = utils.label;
68
67
  var dom = window.document || null;
69
68
  /** Create a resource if it really does not exist
@@ -74,19 +73,20 @@ var dom = window.document || null;
74
73
 
75
74
  function createIfNotExists(doc) {
76
75
  return new Promise(function (resolve, reject) {
77
- kb.fetcher.load(doc).then(function (response) {
78
- debug.log('createIfNotExists doc exists, all good ' + doc); // kb.fetcher.webOperation('HEAD', doc.uri).then(response => {
76
+ _logic.store.fetcher.load(doc).then(function (response) {
77
+ debug.log('createIfNotExists doc exists, all good ' + doc); // store.fetcher.webOperation('HEAD', doc.uri).then(response => {
79
78
 
80
79
  resolve(response);
81
80
  }, function (err) {
82
81
  if (err.response.status === 404) {
83
82
  debug.log('createIfNotExists doc does NOT exist, will create... ' + doc);
84
- kb.fetcher.webOperation('PUT', doc.uri, {
83
+
84
+ _logic.store.fetcher.webOperation('PUT', doc.uri, {
85
85
  data: '',
86
86
  contentType: 'text/turtle'
87
87
  }).then(function (response) {
88
88
  // fetcher.requested[doc.uri] = 'done' // do not need to read ?? but no headers
89
- delete kb.fetcher.requested[doc.uri]; // delete cached 404 error
89
+ delete _logic.store.fetcher.requested[doc.uri]; // delete cached 404 error
90
90
 
91
91
  debug.log('createIfNotExists doc created ok ' + doc);
92
92
  resolve(response);
@@ -105,13 +105,14 @@ function createIfNotExists(doc) {
105
105
 
106
106
  function updatePromise(del, ins) {
107
107
  return new Promise(function (resolve, reject) {
108
- kb.updater.update(del, ins, function (uri, ok, errorBody) {
108
+ _logic.store.updater.update(del, ins, function (uri, ok, errorBody) {
109
109
  if (!ok) {
110
110
  reject(new Error(errorBody));
111
111
  } else {
112
112
  resolve();
113
113
  }
114
114
  }); // callback
115
+
115
116
  }); // promise
116
117
  } // export findBookmarkDocument,
117
118
 
@@ -240,8 +241,8 @@ function _addBookmark() {
240
241
  throw new Error('Must be logged on to add Bookmark');
241
242
 
242
243
  case 4:
243
- author = kb.any(target, ns.foaf('maker'));
244
- title = label(author) + ': ' + kb.anyValue(target, ns.sioc('content')).slice(0, 80); // @@ add chat title too?
244
+ author = _logic.store.any(target, ns.foaf('maker'));
245
+ title = label(author) + ': ' + _logic.store.anyValue(target, ns.sioc('content')).slice(0, 80); // @@ add chat title too?
245
246
 
246
247
  bookmarkDoc = context.bookmarkDocument;
247
248
  bookmark = UI.widgets.newThing(bookmarkDoc, title);
@@ -286,10 +287,10 @@ function _toggleBookmark() {
286
287
  switch (_context3.prev = _context3.next) {
287
288
  case 0:
288
289
  _context3.next = 2;
289
- return kb.fetcher.load(userContext.bookmarkDocument);
290
+ return _logic.store.fetcher.load(userContext.bookmarkDocument);
290
291
 
291
292
  case 2:
292
- bookmarks = kb.each(null, BOOK('recalls'), target, userContext.bookmarkDocument);
293
+ bookmarks = _logic.store.each(null, BOOK('recalls'), target, userContext.bookmarkDocument);
293
294
 
294
295
  if (!bookmarks.length) {
295
296
  _context3.next = 24;
@@ -314,7 +315,7 @@ function _toggleBookmark() {
314
315
 
315
316
  _context3.prev = 8;
316
317
  _context3.next = 11;
317
- return updatePromise(kb.connectedStatements(bookmarks[i]), []);
318
+ return updatePromise(_logic.store.connectedStatements(bookmarks[i]), []);
318
319
 
319
320
  case 11:
320
321
  bookmarkButton.style.backgroundColor = 'white';
@@ -376,10 +377,10 @@ function _renderBookmarksButton() {
376
377
  switch (_context4.prev = _context4.next) {
377
378
  case 0:
378
379
  _context4.next = 2;
379
- return kb.fetcher.load(userContext.bookmarkDocument);
380
+ return _logic.store.fetcher.load(userContext.bookmarkDocument);
380
381
 
381
382
  case 2:
382
- bookmarked = kb.any(null, BOOK('recalls'), bookmarkButton.target, userContext.bookmarkDocument);
383
+ bookmarked = _logic.store.any(null, BOOK('recalls'), bookmarkButton.target, userContext.bookmarkDocument);
383
384
  bookmarkButton.style = UI.style.buttonStyle;
384
385
  if (bookmarked) bookmarkButton.style.backgroundColor = 'yellow';
385
386
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/chat/bookmarks.js"],"names":["UI","authn","icons","ns","media","pad","rdf","store","style","utils","widgets","$rdf","BOOK","Namespace","BOOKMARK_ICON","kb","label","dom","window","document","createIfNotExists","doc","Promise","resolve","reject","fetcher","load","then","response","debug","log","err","status","webOperation","uri","data","contentType","requested","updatePromise","del","ins","updater","update","ok","errorBody","Error","findBookmarkDocument","userContext","theClass","fileTail","isPublic","findAppInstances","instances","length","bookmarkDocument","alert","publicProfile","newBookmarkFile","sym","dir","error","registerInTypeIndex","addBookmark","context","target","title","me","currentUser","author","any","foaf","anyValue","sioc","slice","bookmarkDoc","bookmark","newThing","st","dct","Date","msg","toggleBookmark","bookmarkButton","bookmarks","each","confirm","i","connectedStatements","backgroundColor","renderBookmarksButton","setBookmarkButtonColor","bookmarked","buttonStyle","button","iconBase"],"mappings":"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","sourcesContent":["/**\n * Functions related to chat and bookmarks\n * @packageDocumentation\n */\n\n/* global alert confirm */\nimport { authn } from '../authn/index'\nimport * as debug from '../debug'\nimport { icons } from '../iconBase'\nimport { store } from '../logic'\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'\n\nconst UI = { authn, icons, ns, media, pad, rdf, store, 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 kb = store\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 kb.fetcher.load(doc).then(\n response => {\n debug.log('createIfNotExists doc exists, all good ' + doc)\n // kb.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 kb.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 kb.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 kb.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// export findBookmarkDocument,\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 UI.authn.findAppInstances(userContext, theClass, isPublic) // public -- only look for public links\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 UI.authn.registerInTypeIndex(\n userContext,\n newBookmarkFile,\n theClass,\n true\n ) // public\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 = UI.authn.currentUser() // If already logged on\n if (!me) throw new Error('Must be logged on to add Bookmark')\n\n const author = kb.any(target, ns.foaf('maker'))\n title =\n label(author) + ': ' + kb.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 kb.fetcher.load(userContext.bookmarkDocument)\n const bookmarks = kb.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(kb.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 kb.fetcher.load(userContext.bookmarkDocument)\n const bookmarked = kb.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"],"file":"bookmarks.js"}
1
+ {"version":3,"sources":["../../src/chat/bookmarks.js"],"names":["UI","authn","icons","ns","media","pad","rdf","store","style","utils","widgets","$rdf","BOOK","Namespace","BOOKMARK_ICON","label","dom","window","document","createIfNotExists","doc","Promise","resolve","reject","fetcher","load","then","response","debug","log","err","status","webOperation","uri","data","contentType","requested","updatePromise","del","ins","updater","update","ok","errorBody","Error","findBookmarkDocument","userContext","theClass","fileTail","isPublic","findAppInstances","instances","length","bookmarkDocument","alert","publicProfile","newBookmarkFile","sym","dir","error","registerInTypeIndex","addBookmark","context","target","title","me","currentUser","author","any","foaf","anyValue","sioc","slice","bookmarkDoc","bookmark","newThing","st","dct","Date","msg","toggleBookmark","bookmarkButton","bookmarks","each","confirm","i","connectedStatements","backgroundColor","renderBookmarksButton","setBookmarkButtonColor","bookmarked","buttonStyle","button","iconBase"],"mappings":"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","sourcesContent":["/**\n * Functions related to chat and bookmarks\n * @packageDocumentation\n */\n\n/* global alert confirm */\nimport { authn } from '../authn/index'\nimport * as debug from '../debug'\nimport { icons } from '../iconBase'\nimport { store } from '../logic'\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'\n\nconst UI = { authn, icons, ns, media, pad, rdf, store, 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// export findBookmarkDocument,\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 UI.authn.findAppInstances(userContext, theClass, isPublic) // public -- only look for public links\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 UI.authn.registerInTypeIndex(\n userContext,\n newBookmarkFile,\n theClass,\n true\n ) // public\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 = UI.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"],"file":"bookmarks.js"}
@@ -0,0 +1,340 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.ChatChannel = void 0;
11
+ exports._createIfNotExists = _createIfNotExists;
12
+ exports.isDeleted = isDeleted;
13
+ exports.isHidden = isHidden;
14
+ exports.isReplaced = isReplaced;
15
+ exports.mostRecentVersion = mostRecentVersion;
16
+ exports.nick = nick;
17
+ exports.originalVersion = originalVersion;
18
+
19
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
20
+
21
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
22
+
23
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
24
+
25
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
26
+
27
+ var debug = _interopRequireWildcard(require("../debug"));
28
+
29
+ var _index = require("../authn/index");
30
+
31
+ var _dateFolder = require("./dateFolder");
32
+
33
+ var _logic = require("../logic");
34
+
35
+ var ns = _interopRequireWildcard(require("../ns"));
36
+
37
+ var $rdf = _interopRequireWildcard(require("rdflib"));
38
+
39
+ var utils = _interopRequireWildcard(require("../utils"));
40
+
41
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
42
+
43
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
44
+
45
+ /**
46
+ * Contains the [[ChatChannel]] class and logic for Solid Chat
47
+ * @packageDocumentation
48
+ */
49
+ // pull in first avoid cross-refs
50
+
51
+ /* The Solid logic for a 'LongChat'
52
+ */
53
+
54
+ /**
55
+ * Common code for a chat (discussion area of messages about something)
56
+ * This version runs over a series of files for different time periods
57
+ *
58
+ * Parameters for the whole chat like its title are stored on
59
+ * index.ttl#this and the chats messages are stored in YYYY/MM/DD/chat.ttl
60
+ *
61
+ */
62
+ var ChatChannel = /*#__PURE__*/function () {
63
+ function ChatChannel(channel, options) {
64
+ (0, _classCallCheck2["default"])(this, ChatChannel);
65
+ this.channel = channel;
66
+ this.channelRoot = channel.doc();
67
+ this.options = options;
68
+ this.dateFolder = new _dateFolder.DateFolder(this.channelRoot, 'chat.ttl');
69
+ this.div = null; // : HTMLElement
70
+ }
71
+ /* Store a new message in the web,
72
+ */
73
+
74
+
75
+ (0, _createClass2["default"])(ChatChannel, [{
76
+ key: "createMessage",
77
+ value: function () {
78
+ var _createMessage = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(text) {
79
+ return _regenerator["default"].wrap(function _callee$(_context) {
80
+ while (1) {
81
+ switch (_context.prev = _context.next) {
82
+ case 0:
83
+ return _context.abrupt("return", this.updateMessage(text));
84
+
85
+ case 1:
86
+ case "end":
87
+ return _context.stop();
88
+ }
89
+ }
90
+ }, _callee, this);
91
+ }));
92
+
93
+ function createMessage(_x) {
94
+ return _createMessage.apply(this, arguments);
95
+ }
96
+
97
+ return createMessage;
98
+ }()
99
+ /* Store a new message in the web,
100
+ as a replacement for an existing one.
101
+ The old one iis left, and the two are linked
102
+ */
103
+
104
+ }, {
105
+ key: "updateMessage",
106
+ value: function () {
107
+ var _updateMessage = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(text) {
108
+ var oldMsg,
109
+ deleteIt,
110
+ sts,
111
+ now,
112
+ timestamp,
113
+ dateStamp,
114
+ chatDocument,
115
+ message,
116
+ me,
117
+ msg,
118
+ _args2 = arguments;
119
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
120
+ while (1) {
121
+ switch (_context2.prev = _context2.next) {
122
+ case 0:
123
+ oldMsg = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : null;
124
+ deleteIt = _args2.length > 2 ? _args2[2] : undefined;
125
+ sts = [];
126
+ now = new Date();
127
+ timestamp = '' + now.getTime();
128
+ dateStamp = $rdf.term(now);
129
+ chatDocument = oldMsg ? oldMsg.doc() : this.dateFolder.leafDocumentFromDate(now);
130
+ message = _logic.store.sym(chatDocument.uri + '#' + 'Msg' + timestamp); // const content = store.literal(text)
131
+
132
+ me = _index.authn.currentUser(); // If already logged on
133
+
134
+ if (oldMsg) {
135
+ // edit message replaces old one
136
+ sts.push($rdf.st(mostRecentVersion(oldMsg), ns.dct('isReplacedBy'), message, chatDocument));
137
+
138
+ if (deleteIt) {
139
+ sts.push($rdf.st(message, ns.schema('dateDeleted'), dateStamp, chatDocument));
140
+ }
141
+ } else {
142
+ // link new message to channel
143
+ sts.push($rdf.st(this.channel, ns.wf('message'), message, chatDocument));
144
+ }
145
+
146
+ sts.push($rdf.st(message, ns.sioc('content'), _logic.store.literal(text), chatDocument));
147
+ sts.push($rdf.st(message, ns.dct('created'), dateStamp, chatDocument));
148
+
149
+ if (me) {
150
+ sts.push($rdf.st(message, ns.foaf('maker'), me, chatDocument));
151
+ }
152
+
153
+ _context2.prev = 13;
154
+ _context2.next = 16;
155
+ return _logic.store.updater.update([], sts);
156
+
157
+ case 16:
158
+ _context2.next = 24;
159
+ break;
160
+
161
+ case 18:
162
+ _context2.prev = 18;
163
+ _context2.t0 = _context2["catch"](13);
164
+ msg = 'Error saving chat message: ' + _context2.t0;
165
+ debug.warn(msg);
166
+ alert(msg);
167
+ throw new Error(msg);
168
+
169
+ case 24:
170
+ return _context2.abrupt("return", message);
171
+
172
+ case 25:
173
+ case "end":
174
+ return _context2.stop();
175
+ }
176
+ }
177
+ }, _callee2, this, [[13, 18]]);
178
+ }));
179
+
180
+ function updateMessage(_x2) {
181
+ return _updateMessage.apply(this, arguments);
182
+ }
183
+
184
+ return updateMessage;
185
+ }()
186
+ /* Mark a message as deleted
187
+ * Wee add a new version of the message,m witha deletion flag (deletion date)
188
+ * so that the deletion can be revoked by adding another non-deleted update
189
+ */
190
+
191
+ }, {
192
+ key: "deleteMessage",
193
+ value: function () {
194
+ var _deleteMessage = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(message) {
195
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
196
+ while (1) {
197
+ switch (_context3.prev = _context3.next) {
198
+ case 0:
199
+ return _context3.abrupt("return", this.updateMessage('(message deleted)', message, true));
200
+
201
+ case 1:
202
+ case "end":
203
+ return _context3.stop();
204
+ }
205
+ }
206
+ }, _callee3, this);
207
+ }));
208
+
209
+ function deleteMessage(_x3) {
210
+ return _deleteMessage.apply(this, arguments);
211
+ }
212
+
213
+ return deleteMessage;
214
+ }()
215
+ }]);
216
+ return ChatChannel;
217
+ }(); // class ChatChannel
218
+
219
+
220
+ exports.ChatChannel = ChatChannel;
221
+
222
+ function originalVersion(message) {
223
+ var msg = message;
224
+
225
+ while (msg) {
226
+ message = msg;
227
+ msg = _logic.store.any(null, ns.dct('isReplacedBy'), message, message.doc());
228
+ }
229
+
230
+ return message;
231
+ }
232
+
233
+ function mostRecentVersion(message) {
234
+ var msg = message;
235
+
236
+ while (msg) {
237
+ message = msg;
238
+ msg = _logic.store.any(message, ns.dct('isReplacedBy'), null, message.doc());
239
+ }
240
+
241
+ return message;
242
+ }
243
+
244
+ function isDeleted(message) {
245
+ return _logic.store.holds(message, ns.schema('dateDeleted'), null, message.doc());
246
+ }
247
+
248
+ function isReplaced(message) {
249
+ return _logic.store.holds(message, ns.dct('isReplacedBy'), null, message.doc());
250
+ }
251
+
252
+ function isHidden(message) {
253
+ return this.isDeleted(message) || this.isReplaced(message);
254
+ } // A Nickname for a person
255
+
256
+
257
+ function nick(person) {
258
+ var s = _logic.store.any(person, ns.foaf('nick'));
259
+
260
+ if (s) return '' + s.value;
261
+ return '' + utils.label(person);
262
+ }
263
+
264
+ function _createIfNotExists(_x4) {
265
+ return _createIfNotExists2.apply(this, arguments);
266
+ } // ends
267
+
268
+
269
+ function _createIfNotExists2() {
270
+ _createIfNotExists2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(doc) {
271
+ var contentType,
272
+ data,
273
+ response,
274
+ _args4 = arguments;
275
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
276
+ while (1) {
277
+ switch (_context4.prev = _context4.next) {
278
+ case 0:
279
+ contentType = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : 'text/turtle';
280
+ data = _args4.length > 2 && _args4[2] !== undefined ? _args4[2] : '';
281
+ _context4.prev = 2;
282
+ _context4.next = 5;
283
+ return _logic.store.fetcher.load(doc);
284
+
285
+ case 5:
286
+ response = _context4.sent;
287
+ _context4.next = 28;
288
+ break;
289
+
290
+ case 8:
291
+ _context4.prev = 8;
292
+ _context4.t0 = _context4["catch"](2);
293
+
294
+ if (!(_context4.t0.response.status === 404)) {
295
+ _context4.next = 26;
296
+ break;
297
+ }
298
+
299
+ debug.log('createIfNotExists: doc does NOT exist, will create... ' + doc);
300
+ _context4.prev = 12;
301
+ _context4.next = 15;
302
+ return _logic.store.fetcher.webOperation('PUT', doc.uri, {
303
+ data: data,
304
+ contentType: contentType
305
+ });
306
+
307
+ case 15:
308
+ response = _context4.sent;
309
+ _context4.next = 22;
310
+ break;
311
+
312
+ case 18:
313
+ _context4.prev = 18;
314
+ _context4.t1 = _context4["catch"](12);
315
+ debug.log('createIfNotExists doc FAILED: ' + doc + ': ' + _context4.t1);
316
+ throw _context4.t1;
317
+
318
+ case 22:
319
+ delete _logic.store.fetcher.requested[doc.uri]; // delete cached 404 error
320
+ // debug.log('createIfNotExists doc created ok ' + doc)
321
+
322
+ return _context4.abrupt("return", response);
323
+
324
+ case 26:
325
+ debug.log('createIfNotExists doc load error NOT 404: ' + doc + ': ' + _context4.t0);
326
+ throw _context4.t0;
327
+
328
+ case 28:
329
+ return _context4.abrupt("return", response);
330
+
331
+ case 29:
332
+ case "end":
333
+ return _context4.stop();
334
+ }
335
+ }
336
+ }, _callee4, null, [[2, 8], [12, 18]]);
337
+ }));
338
+ return _createIfNotExists2.apply(this, arguments);
339
+ }
340
+ //# sourceMappingURL=chatLogic.js.map