solid-ui 2.4.27 → 2.4.28-21f105c8

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 (117) hide show
  1. package/README.md +6 -1
  2. package/dist/670.solid-ui.min.js +1 -0
  3. package/dist/805.solid-ui.min.js +3 -0
  4. package/dist/805.solid-ui.min.js.LICENSE.txt +58 -0
  5. package/dist/805.solid-ui.min.js.map +1 -0
  6. package/dist/_2b19.solid-ui.js +14 -0
  7. package/dist/_2b19.solid-ui.js.map +1 -0
  8. package/dist/index.html +1 -9
  9. package/dist/{main.js → solid-ui.js} +9695 -21520
  10. package/dist/solid-ui.js.map +1 -0
  11. package/dist/solid-ui.min.js +3 -0
  12. package/dist/solid-ui.min.js.LICENSE.txt +54 -0
  13. package/dist/solid-ui.min.js.map +1 -0
  14. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js +12134 -0
  15. package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js.map +1 -0
  16. package/lib/acl/access-controller.d.ts +2 -3
  17. package/lib/acl/access-controller.d.ts.map +1 -1
  18. package/lib/acl/access-controller.js +17 -15
  19. package/lib/acl/access-controller.js.map +1 -1
  20. package/lib/acl/access-groups.d.ts.map +1 -1
  21. package/lib/acl/access-groups.js +78 -8
  22. package/lib/acl/access-groups.js.map +1 -1
  23. package/lib/acl/acl-control.d.ts.map +1 -1
  24. package/lib/acl/acl-control.js +10 -11
  25. package/lib/acl/acl-control.js.map +1 -1
  26. package/lib/acl/acl.d.ts +1 -1
  27. package/lib/acl/acl.js +1 -1
  28. package/lib/acl/acl.js.map +1 -1
  29. package/lib/acl/add-agent-buttons.d.ts.map +1 -1
  30. package/lib/acl/add-agent-buttons.js +4 -3
  31. package/lib/acl/add-agent-buttons.js.map +1 -1
  32. package/lib/chat/bookmarks.js +6 -7
  33. package/lib/chat/bookmarks.js.map +1 -1
  34. package/lib/chat/chatLogic.js +288 -67
  35. package/lib/chat/chatLogic.js.map +1 -1
  36. package/lib/chat/dateFolder.js +129 -126
  37. package/lib/chat/dateFolder.js.map +1 -1
  38. package/lib/chat/infinite.js +630 -423
  39. package/lib/chat/infinite.js.map +1 -1
  40. package/lib/chat/keys.d.ts +13 -0
  41. package/lib/chat/keys.d.ts.map +1 -0
  42. package/lib/chat/keys.js +233 -0
  43. package/lib/chat/keys.js.map +1 -0
  44. package/lib/chat/message.js +361 -163
  45. package/lib/chat/message.js.map +1 -1
  46. package/lib/chat/messageTools.js +463 -277
  47. package/lib/chat/messageTools.js.map +1 -1
  48. package/lib/chat/signature.d.ts +24 -0
  49. package/lib/chat/signature.d.ts.map +1 -0
  50. package/lib/chat/signature.js +112 -0
  51. package/lib/chat/signature.js.map +1 -0
  52. package/lib/chat/thread.js +168 -145
  53. package/lib/chat/thread.js.map +1 -1
  54. package/lib/footer/index.d.ts.map +1 -1
  55. package/lib/footer/index.js +5 -1
  56. package/lib/footer/index.js.map +1 -1
  57. package/lib/header/index.d.ts.map +1 -1
  58. package/lib/header/index.js +46 -20
  59. package/lib/header/index.js.map +1 -1
  60. package/lib/log.js +5 -5
  61. package/lib/log.js.map +1 -1
  62. package/lib/login/login.d.ts.map +1 -1
  63. package/lib/login/login.js +63 -38
  64. package/lib/login/login.js.map +1 -1
  65. package/lib/pad.js +4 -1
  66. package/lib/pad.js.map +1 -1
  67. package/lib/participation.js +2 -1
  68. package/lib/participation.js.map +1 -1
  69. package/lib/preferences.js +4 -0
  70. package/lib/preferences.js.map +1 -1
  71. package/lib/style.js +60 -2
  72. package/lib/style.js.map +1 -1
  73. package/lib/utils/headerFooterHelpers.d.ts +0 -4
  74. package/lib/utils/headerFooterHelpers.d.ts.map +1 -1
  75. package/lib/utils/headerFooterHelpers.js +1 -26
  76. package/lib/utils/headerFooterHelpers.js.map +1 -1
  77. package/lib/utils/keyHelpers/accessData.d.ts +9 -0
  78. package/lib/utils/keyHelpers/accessData.d.ts.map +1 -0
  79. package/lib/utils/keyHelpers/accessData.js +190 -0
  80. package/lib/utils/keyHelpers/accessData.js.map +1 -0
  81. package/lib/utils/keyHelpers/acl.d.ts +20 -0
  82. package/lib/utils/keyHelpers/acl.d.ts.map +1 -0
  83. package/lib/utils/keyHelpers/acl.js +93 -0
  84. package/lib/utils/keyHelpers/acl.js.map +1 -0
  85. package/lib/versionInfo.js +6 -6
  86. package/lib/versionInfo.js.map +1 -1
  87. package/lib/widgets/buttons.d.ts.map +1 -1
  88. package/lib/widgets/buttons.js +43 -51
  89. package/lib/widgets/buttons.js.map +1 -1
  90. package/lib/widgets/forms/autocomplete/autocompleteBar.js +8 -1
  91. package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
  92. package/lib/widgets/forms/autocomplete/autocompletePicker.js +8 -3
  93. package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
  94. package/lib/widgets/forms/autocomplete/language.js +5 -0
  95. package/lib/widgets/forms/autocomplete/language.js.map +1 -1
  96. package/lib/widgets/forms.js +12 -5
  97. package/lib/widgets/forms.js.map +1 -1
  98. package/lib/widgets/peoplePicker.js +11 -0
  99. package/lib/widgets/peoplePicker.js.map +1 -1
  100. package/package.json +15 -11
  101. package/dist/main.js.map +0 -1
  102. package/lib/acl/styles.d.ts +0 -90
  103. package/lib/acl/styles.d.ts.map +0 -1
  104. package/lib/acl/styles.js +0 -98
  105. package/lib/acl/styles.js.map +0 -1
  106. package/lib/footer/styleMap.d.ts +0 -8
  107. package/lib/footer/styleMap.d.ts.map +0 -1
  108. package/lib/footer/styleMap.js +0 -15
  109. package/lib/footer/styleMap.js.map +0 -1
  110. package/lib/header/styleMap.d.ts +0 -117
  111. package/lib/header/styleMap.d.ts.map +0 -1
  112. package/lib/header/styleMap.js +0 -139
  113. package/lib/header/styleMap.js.map +0 -1
  114. package/lib/jss/index.d.ts +0 -20
  115. package/lib/jss/index.d.ts.map +0 -1
  116. package/lib/jss/index.js +0 -47
  117. package/lib/jss/index.js.map +0 -1
@@ -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, nor 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('Cannot 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, 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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"}
@@ -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;
@@ -23,6 +24,8 @@ var _solidLogic = require("solid-logic");
23
24
  var ns = _interopRequireWildcard(require("../ns"));
24
25
  var $rdf = _interopRequireWildcard(require("rdflib"));
25
26
  var utils = _interopRequireWildcard(require("../utils"));
27
+ var _signature = require("./signature");
28
+ var _keys = require("./keys");
26
29
  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); }
27
30
  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; }
28
31
  /**
@@ -82,8 +85,9 @@ var ChatChannel = /*#__PURE__*/function () {
82
85
  var _this = this;
83
86
  var oldMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
84
87
  var deleteIt = arguments.length > 2 ? arguments[2] : undefined;
88
+ var thread = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
85
89
  return /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
86
- var sts, now, timestamp, dateStamp, chatDocument, message, me, msg;
90
+ var sts, now, timestamp, dateStamp, chatDocument, message, me, msg, oldMsgMaker, oldMsgMostRecentVersion, oldMsgThread, errMsg, privateKey, sig, _errMsg;
87
91
  return _regenerator["default"].wrap(function _callee2$(_context2) {
88
92
  while (1) switch (_context2.prev = _context2.next) {
89
93
  case 0:
@@ -94,41 +98,91 @@ var ChatChannel = /*#__PURE__*/function () {
94
98
  chatDocument = oldMsg ? oldMsg.doc() : _this.dateFolder.leafDocumentFromDate(now);
95
99
  message = _solidLogic.store.sym(chatDocument.uri + '#' + 'Msg' + timestamp); // const content = store.literal(text)
96
100
  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));
101
+ msg = (0, _signature.getBlankMsg)();
102
+ msg.id = message.uri;
103
+ if (!oldMsg) {
104
+ _context2.next = 27;
105
+ break;
106
106
  }
107
- sts.push($rdf.st(message, ns.sioc('content'), _solidLogic.store.literal(text), chatDocument));
108
- sts.push($rdf.st(message, ns.dct('created'), dateStamp, chatDocument));
109
- if (me) {
110
- sts.push($rdf.st(message, ns.foaf('maker'), me, chatDocument));
107
+ // edit message replaces old one
108
+ oldMsgMaker = _solidLogic.store.any(oldMsg, ns.foaf('maker')); // may not be needed here, but needed on READ
109
+ if (!(oldMsgMaker.uri === me.uri)) {
110
+ _context2.next = 21;
111
+ break;
111
112
  }
112
- _context2.prev = 11;
113
113
  _context2.next = 14;
114
- return _solidLogic.store.updater.update([], sts);
114
+ return mostRecentVersion(oldMsg);
115
115
  case 14:
116
- _context2.next = 22;
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
+ }
123
+ if (deleteIt) {
124
+ // we need to add a specific signature, else anyone can delete a msg ?
125
+ sts.push($rdf.st(message, ns.schema('dateDeleted'), dateStamp, chatDocument));
126
+ }
127
+ _context2.next = 25;
128
+ break;
129
+ case 21:
130
+ errMsg = 'Error you cannot delete/edit a message from someone else : \n' + oldMsgMaker.uri;
131
+ debug.warn(errMsg);
132
+ alert(errMsg);
133
+ throw new Error(errMsg);
134
+ case 25:
135
+ _context2.next = 28;
136
+ break;
137
+ case 27:
138
+ // link new message to channel
139
+ sts.push($rdf.st(_this.channel, ns.wf('message'), message, chatDocument));
140
+ case 28:
141
+ sts.push($rdf.st(message, ns.sioc('content'), _solidLogic.store.literal(text), chatDocument));
142
+ msg.content = text;
143
+ sts.push($rdf.st(message, ns.dct('created'), dateStamp, chatDocument));
144
+ msg.created = dateStamp.value;
145
+ if (!me) {
146
+ _context2.next = 40;
147
+ break;
148
+ }
149
+ sts.push($rdf.st(message, ns.foaf('maker'), me, chatDocument));
150
+ msg.maker = me.uri;
151
+ // privateKey the cached private key of me, cached in store
152
+ _context2.next = 37;
153
+ return (0, _keys.getPrivateKey)(me);
154
+ case 37:
155
+ privateKey = _context2.sent;
156
+ // me.uri)
157
+ sig = (0, _signature.signMsg)(msg, privateKey);
158
+ 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;
117
171
  break;
118
- case 16:
119
- _context2.prev = 16;
120
- _context2.t0 = _context2["catch"](11);
121
- msg = 'Error saving chat message: ' + _context2.t0;
122
- debug.warn(msg);
123
- alert(msg);
124
- throw new Error(msg);
125
- case 22:
172
+ case 46:
173
+ _context2.prev = 46;
174
+ _context2.t0 = _context2["catch"](41);
175
+ _errMsg = 'Error saving chat message: ' + _context2.t0;
176
+ debug.warn(_errMsg);
177
+ alert(_errMsg);
178
+ throw new Error(_errMsg);
179
+ case 52:
126
180
  return _context2.abrupt("return", message);
127
- case 23:
181
+ case 53:
128
182
  case "end":
129
183
  return _context2.stop();
130
184
  }
131
- }, _callee2, null, [[11, 16]]);
185
+ }, _callee2, null, [[41, 46]]);
132
186
  })();
133
187
  });
134
188
  function updateMessage(_x2) {
@@ -158,26 +212,193 @@ var ChatChannel = /*#__PURE__*/function () {
158
212
  return _deleteMessage.apply(this, arguments);
159
213
  }
160
214
  return deleteMessage;
215
+ }() // Create a new thread of replies to the thread root message
216
+ // or return one which already exists
217
+ }, {
218
+ key: "createThread",
219
+ value: function () {
220
+ var _createThread = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(threadRoot) {
221
+ var already, thread, insert;
222
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
223
+ while (1) switch (_context4.prev = _context4.next) {
224
+ case 0:
225
+ already = _solidLogic.store.each(threadRoot, ns.sioc('has_reply'), null, threadRoot.doc()).filter(function (thread) {
226
+ return _solidLogic.store.holds(thread, ns.rdf('type'), ns.sioc('Thread'), thread.doc());
227
+ });
228
+ if (!(already.length > 0)) {
229
+ _context4.next = 3;
230
+ break;
231
+ }
232
+ return _context4.abrupt("return", already[0]);
233
+ case 3:
234
+ thread = $rdf.sym(threadRoot.uri + '-thread');
235
+ insert = [$rdf.st(thread, ns.rdf('type'), ns.sioc('Thread'), thread.doc()), $rdf.st(threadRoot, ns.sioc('has_reply'), thread, thread.doc())];
236
+ _context4.next = 7;
237
+ return _solidLogic.store.updater.update([], insert);
238
+ case 7:
239
+ return _context4.abrupt("return", thread);
240
+ case 8:
241
+ case "end":
242
+ return _context4.stop();
243
+ }
244
+ }, _callee4);
245
+ }));
246
+ function createThread(_x4) {
247
+ return _createThread.apply(this, arguments);
248
+ }
249
+ return createThread;
161
250
  }()
162
251
  }]);
163
252
  return ChatChannel;
164
253
  }(); // class ChatChannel
254
+ // ////////// Utility functions
255
+ // Have to not loop forever if fed loops
165
256
  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;
257
+ function allVersions(_x5) {
258
+ return _allVersions.apply(this, arguments);
173
259
  }
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;
260
+ function _allVersions() {
261
+ _allVersions = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(message) {
262
+ var versions, done, m, prev, next;
263
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
264
+ while (1) switch (_context5.prev = _context5.next) {
265
+ case 0:
266
+ versions = [message];
267
+ done = {};
268
+ done[message.uri] = true;
269
+ m = message;
270
+ case 4:
271
+ if (!true) {
272
+ _context5.next = 15;
273
+ break;
274
+ }
275
+ // earlier?
276
+ prev = _solidLogic.store.any(null, ns.dct('isReplacedBy'), m, m.doc());
277
+ if (!(!prev || done[prev.uri])) {
278
+ _context5.next = 8;
279
+ break;
280
+ }
281
+ return _context5.abrupt("break", 15);
282
+ case 8:
283
+ _context5.next = 10;
284
+ return _solidLogic.store.fetcher.load(prev);
285
+ case 10:
286
+ versions.unshift(prev);
287
+ done[prev.uri] = true;
288
+ m = prev;
289
+ _context5.next = 4;
290
+ break;
291
+ case 15:
292
+ m = message;
293
+ case 16:
294
+ if (!true) {
295
+ _context5.next = 25;
296
+ break;
297
+ }
298
+ // later?
299
+ next = _solidLogic.store.any(m, ns.dct('isReplacedBy'), null, m.doc());
300
+ if (!(!next || done[next.uri])) {
301
+ _context5.next = 20;
302
+ break;
303
+ }
304
+ return _context5.abrupt("break", 25);
305
+ case 20:
306
+ versions.push(next);
307
+ done[next.uri] = true;
308
+ m = next;
309
+ _context5.next = 16;
310
+ break;
311
+ case 25:
312
+ return _context5.abrupt("return", versions);
313
+ case 26:
314
+ case "end":
315
+ return _context5.stop();
316
+ }
317
+ }, _callee5);
318
+ }));
319
+ return _allVersions.apply(this, arguments);
320
+ }
321
+ function originalVersion(_x6) {
322
+ return _originalVersion.apply(this, arguments);
323
+ }
324
+ function _originalVersion() {
325
+ _originalVersion = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(message) {
326
+ var msg, done;
327
+ return _regenerator["default"].wrap(function _callee6$(_context6) {
328
+ while (1) switch (_context6.prev = _context6.next) {
329
+ case 0:
330
+ msg = message;
331
+ done = {}; // done[message.uri] = true
332
+ case 2:
333
+ if (!msg) {
334
+ _context6.next = 13;
335
+ break;
336
+ }
337
+ if (!done[msg.uri]) {
338
+ _context6.next = 6;
339
+ break;
340
+ }
341
+ debug.error('originalVersion: verion loop' + message);
342
+ return _context6.abrupt("return", message);
343
+ case 6:
344
+ done[msg.uri] = true;
345
+ message = msg;
346
+ _context6.next = 10;
347
+ return _solidLogic.store.fetcher.load(message);
348
+ case 10:
349
+ msg = _solidLogic.store.any(null, ns.dct('isReplacedBy'), message, message.doc());
350
+ _context6.next = 2;
351
+ break;
352
+ case 13:
353
+ return _context6.abrupt("return", message);
354
+ case 14:
355
+ case "end":
356
+ return _context6.stop();
357
+ }
358
+ }, _callee6);
359
+ }));
360
+ return _originalVersion.apply(this, arguments);
361
+ }
362
+ function mostRecentVersion(_x7) {
363
+ return _mostRecentVersion.apply(this, arguments);
364
+ }
365
+ function _mostRecentVersion() {
366
+ _mostRecentVersion = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7(message) {
367
+ var msg, done;
368
+ return _regenerator["default"].wrap(function _callee7$(_context7) {
369
+ while (1) switch (_context7.prev = _context7.next) {
370
+ case 0:
371
+ msg = message;
372
+ done = {};
373
+ case 2:
374
+ if (!msg) {
375
+ _context7.next = 13;
376
+ break;
377
+ }
378
+ if (!done[msg.uri]) {
379
+ _context7.next = 6;
380
+ break;
381
+ }
382
+ debug.error('mostRecentVersion: verion loop' + message);
383
+ return _context7.abrupt("return", message);
384
+ case 6:
385
+ done[msg.uri] = true;
386
+ message = msg;
387
+ _context7.next = 10;
388
+ return _solidLogic.store.fetcher.load(message);
389
+ case 10:
390
+ msg = _solidLogic.store.any(message, ns.dct('isReplacedBy'), null, message.doc());
391
+ _context7.next = 2;
392
+ break;
393
+ case 13:
394
+ return _context7.abrupt("return", message);
395
+ case 14:
396
+ case "end":
397
+ return _context7.stop();
398
+ }
399
+ }, _callee7);
400
+ }));
401
+ return _mostRecentVersion.apply(this, arguments);
181
402
  }
182
403
  function isDeleted(message) {
183
404
  return _solidLogic.store.holds(message, ns.schema('dateDeleted'), null, message.doc());
@@ -196,62 +417,62 @@ function nick(person) {
196
417
  if (s) return '' + s.value;
197
418
  return '' + utils.label(person);
198
419
  }
199
- function _createIfNotExists(_x4) {
420
+ function _createIfNotExists(_x8) {
200
421
  return _createIfNotExists2.apply(this, arguments);
201
422
  } // ends
202
423
  function _createIfNotExists2() {
203
424
  _createIfNotExists2 = (0, _asyncToGenerator2["default"])(function (doc) {
204
425
  var contentType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'text/turtle';
205
426
  var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
206
- return /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
427
+ return /*#__PURE__*/_regenerator["default"].mark(function _callee8() {
207
428
  var response;
208
- return _regenerator["default"].wrap(function _callee4$(_context4) {
209
- while (1) switch (_context4.prev = _context4.next) {
429
+ return _regenerator["default"].wrap(function _callee8$(_context8) {
430
+ while (1) switch (_context8.prev = _context8.next) {
210
431
  case 0:
211
- _context4.prev = 0;
212
- _context4.next = 3;
432
+ _context8.prev = 0;
433
+ _context8.next = 3;
213
434
  return _solidLogic.store.fetcher.load(doc);
214
435
  case 3:
215
- response = _context4.sent;
216
- _context4.next = 26;
436
+ response = _context8.sent;
437
+ _context8.next = 26;
217
438
  break;
218
439
  case 6:
219
- _context4.prev = 6;
220
- _context4.t0 = _context4["catch"](0);
221
- if (!(_context4.t0.response.status === 404)) {
222
- _context4.next = 24;
440
+ _context8.prev = 6;
441
+ _context8.t0 = _context8["catch"](0);
442
+ if (!(_context8.t0.response.status === 404)) {
443
+ _context8.next = 24;
223
444
  break;
224
445
  }
225
446
  debug.log('createIfNotExists: doc does NOT exist, will create... ' + doc);
226
- _context4.prev = 10;
227
- _context4.next = 13;
447
+ _context8.prev = 10;
448
+ _context8.next = 13;
228
449
  return _solidLogic.store.fetcher.webOperation('PUT', doc.uri, {
229
450
  data: data,
230
451
  contentType: contentType
231
452
  });
232
453
  case 13:
233
- response = _context4.sent;
234
- _context4.next = 20;
454
+ response = _context8.sent;
455
+ _context8.next = 20;
235
456
  break;
236
457
  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;
458
+ _context8.prev = 16;
459
+ _context8.t1 = _context8["catch"](10);
460
+ debug.log('createIfNotExists doc FAILED: ' + doc + ': ' + _context8.t1);
461
+ throw _context8.t1;
241
462
  case 20:
242
463
  delete _solidLogic.store.fetcher.requested[doc.uri]; // delete cached 404 error
243
464
  // debug.log('createIfNotExists doc created ok ' + doc)
244
- return _context4.abrupt("return", response);
465
+ return _context8.abrupt("return", response);
245
466
  case 24:
246
- debug.log('createIfNotExists doc load error NOT 404: ' + doc + ': ' + _context4.t0);
247
- throw _context4.t0;
467
+ debug.log('createIfNotExists doc load error NOT 404: ' + doc + ': ' + _context8.t0);
468
+ throw _context8.t0;
248
469
  case 26:
249
- return _context4.abrupt("return", response);
470
+ return _context8.abrupt("return", response);
250
471
  case 27:
251
472
  case "end":
252
- return _context4.stop();
473
+ return _context8.stop();
253
474
  }
254
- }, _callee4, null, [[0, 6], [10, 16]]);
475
+ }, _callee8, null, [[0, 6], [10, 16]]);
255
476
  })();
256
477
  });
257
478
  return _createIfNotExists2.apply(this, arguments);