solid-ui 2.4.30 → 2.4.31-7c0461b3
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.
- package/dist/805.solid-ui.min.js +1 -1
- package/dist/805.solid-ui.min.js.map +1 -1
- package/dist/solid-ui.js +6264 -2826
- package/dist/solid-ui.js.map +1 -1
- package/dist/solid-ui.min.js +1 -1
- package/dist/solid-ui.min.js.LICENSE.txt +1 -1
- package/dist/solid-ui.min.js.map +1 -1
- package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js +1965 -1965
- package/dist/vendors-node_modules_jsonld_lib_jsonld_js.solid-ui.js.map +1 -1
- package/lib/chat/bookmarks.js +6 -7
- package/lib/chat/bookmarks.js.map +1 -1
- package/lib/chat/chatLogic.js +251 -66
- package/lib/chat/chatLogic.js.map +1 -1
- package/lib/chat/dateFolder.js +131 -126
- package/lib/chat/dateFolder.js.map +1 -1
- package/lib/chat/infinite.js +611 -416
- package/lib/chat/infinite.js.map +1 -1
- package/lib/chat/message.js +328 -191
- package/lib/chat/message.js.map +1 -1
- package/lib/chat/messageTools.js +462 -276
- package/lib/chat/messageTools.js.map +1 -1
- package/lib/chat/thread.js +299 -208
- package/lib/chat/thread.js.map +1 -1
- package/lib/login/login.d.ts.map +1 -1
- package/lib/login/login.js +14 -18
- package/lib/login/login.js.map +1 -1
- package/lib/media/media-capture.d.ts +2 -2
- package/lib/media/media-capture.d.ts.map +1 -1
- package/lib/media/media-capture.js +11 -15
- package/lib/media/media-capture.js.map +1 -1
- package/lib/pad.d.ts +2 -2
- package/lib/pad.d.ts.map +1 -1
- package/lib/pad.js +15 -39
- package/lib/pad.js.map +1 -1
- package/lib/participation.d.ts +7 -7
- package/lib/participation.d.ts.map +1 -1
- package/lib/participation.js +26 -24
- package/lib/participation.js.map +1 -1
- package/lib/preferences.js +4 -0
- package/lib/preferences.js.map +1 -1
- package/lib/style.js +93 -85
- package/lib/style.js.map +1 -1
- package/lib/styleConstants.js +35 -0
- package/lib/styleConstants.js.map +1 -0
- package/lib/tabs.d.ts +0 -125
- package/lib/tabs.d.ts.map +1 -1
- package/lib/tabs.js +15 -8
- package/lib/tabs.js.map +1 -1
- package/lib/utils/keyHelpers/accessData.d.ts +2 -2
- package/lib/utils/keyHelpers/accessData.d.ts.map +1 -1
- package/lib/utils/keyHelpers/accessData.js +59 -115
- package/lib/utils/keyHelpers/accessData.js.map +1 -1
- package/lib/utils/keyHelpers/otherHelpers.d.ts +3 -0
- package/lib/utils/keyHelpers/otherHelpers.d.ts.map +1 -0
- package/lib/utils/keyHelpers/otherHelpers.js +22 -0
- package/lib/utils/keyHelpers/otherHelpers.js.map +1 -0
- package/lib/versionInfo.js +3 -3
- package/lib/versionInfo.js.map +1 -1
- package/lib/widgets/dragAndDrop.js +11 -19
- package/lib/widgets/dragAndDrop.js.map +1 -1
- package/lib/widgets/error.d.ts.map +1 -1
- package/lib/widgets/error.js +9 -2
- package/lib/widgets/error.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompletePicker.js +2 -1
- package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
- package/lib/widgets/forms/basic.d.ts.map +1 -1
- package/lib/widgets/forms/basic.js +5 -4
- package/lib/widgets/forms/basic.js.map +1 -1
- package/lib/widgets/forms/fieldParams.js +2 -2
- package/lib/widgets/forms/fieldParams.js.map +1 -1
- package/lib/widgets/forms.js +9 -8
- package/lib/widgets/forms.js.map +1 -1
- package/package.json +5 -5
package/lib/chat/bookmarks.js
CHANGED
|
@@ -28,8 +28,6 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
|
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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","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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"}
|
|
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","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","_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":";;;;;;;;;;;;AAKA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,EAAA,GAAAJ,uBAAA,CAAAC,OAAA;AACA,IAAAI,GAAA,GAAAL,uBAAA,CAAAC,OAAA;AACA,IAAAK,GAAA,GAAAN,uBAAA,CAAAC,OAAA;AACA,IAAAM,KAAA,GAAAP,uBAAA,CAAAC,OAAA;AACA,IAAAO,KAAA,GAAAR,uBAAA,CAAAC,OAAA;AACA,IAAAQ,OAAA,GAAAT,uBAAA,CAAAC,OAAA;AACA,IAAAS,WAAA,GAAAT,OAAA;AACA,IAAAU,MAAA,GAAAV,OAAA;AAAiD,SAAAW,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAb,wBAAAa,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,gBAAAK,OAAA,CAAAL,CAAA,0BAAAA,CAAA,sBAAAA,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,cAAAR,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAfjD;AACA;AACA;AACA;;AAO8B;;AAO9B,IAAMY,EAAE,GAAG;EAAEC,KAAK,EAALA,eAAK;EAAE9B,EAAE,EAAFA,EAAE;EAAE+B,KAAK,EAALA,YAAK;EAAE9B,GAAG,EAAHA,GAAG;EAAEC,GAAG,EAAHA,GAAG;EAAEC,KAAK,EAALA,KAAK;EAAEC,KAAK,EAALA,KAAK;EAAEC,OAAO,EAAPA;AAAQ,CAAC;AAChE,IAAM2B,IAAI,GAAGH,EAAE,CAAC3B,GAAG;AAEnB,IAAM+B,IAAI,GAAGD,IAAI,CAACE,SAAS,CAAC,qCAAqC,CAAC;AAClE,IAAMC,aAAa,GAAG,gBAAgB;AAEtC,IAAMC,KAAK,GAAGhC,KAAK,CAACgC,KAAK;AACzB,IAAMC,GAAG,GAAGC,MAAM,CAACC,QAAQ,IAAI,IAAI;;AAEnC;AACA;AACA;AACA;AACA;AACA,SAASC,iBAAiBA,CAAEC,GAAG,EAAE;EAC/B,OAAO,IAAIC,OAAO,CAAC,UAAUC,OAAO,EAAEC,MAAM,EAAE;IAC5CC,iBAAK,CAACC,OAAO,CAACC,IAAI,CAACN,GAAG,CAAC,CAACO,IAAI,CAC1B,UAAAC,QAAQ,EAAI;MACVtD,KAAK,CAACuD,GAAG,CAAC,yCAAyC,GAAGT,GAAG,CAAC;MAC1D;MACAE,OAAO,CAACM,QAAQ,CAAC;IACnB,CAAC,EACD,UAAAE,GAAG,EAAI;MACL,IAAIA,GAAG,CAACF,QAAQ,CAACG,MAAM,KAAK,GAAG,EAAE;QAC/BzD,KAAK,CAACuD,GAAG,CACP,uDAAuD,GAAGT,GAC5D,CAAC;QAEDI,iBAAK,CAACC,OAAO,CACVO,YAAY,CAAC,KAAK,EAAEZ,GAAG,CAACa,GAAG,EAAE;UAC5BC,IAAI,EAAE,EAAE;UACRC,WAAW,EAAE;QACf,CAAC,CAAC,CACDR,IAAI,CACH,UAAAC,QAAQ,EAAI;UACV;UACA,OAAOJ,iBAAK,CAACC,OAAO,CAACW,SAAS,CAAChB,GAAG,CAACa,GAAG,CAAC,EAAC;UACxC3D,KAAK,CAACuD,GAAG,CAAC,mCAAmC,GAAGT,GAAG,CAAC;UACpDE,OAAO,CAACM,QAAQ,CAAC;QACnB,CAAC,EACD,UAAAE,GAAG,EAAI;UACLxD,KAAK,CAACuD,GAAG,CAAC,gCAAgC,GAAGT,GAAG,GAAG,IAAI,GAAGU,GAAG,CAAC;UAC9DP,MAAM,CAACO,GAAG,CAAC;QACb,CACF,CAAC;MACL,CAAC,MAAM;QACLxD,KAAK,CAACuD,GAAG,CACP,6CAA6C,GAAGT,GAAG,GAAG,IAAI,GAAGU,GAC/D,CAAC;QACDP,MAAM,CAACO,GAAG,CAAC;MACb;IACF,CACF,CAAC;EACH,CAAC,CAAC;AACJ;;AAEA;AACA,SAASO,aAAaA,CAAEC,GAAG,EAAEC,GAAG,EAAE;EAChC,OAAO,IAAIlB,OAAO,CAAC,UAAUC,OAAO,EAAEC,MAAM,EAAE;IAC5CC,iBAAK,CAACgB,OAAO,CAACC,MAAM,CAACH,GAAG,EAAEC,GAAG,EAAE,UAAUN,GAAG,EAAES,EAAE,EAAEC,SAAS,EAAE;MAC3D,IAAI,CAACD,EAAE,EAAE;QACPnB,MAAM,CAAC,IAAIqB,KAAK,CAACD,SAAS,CAAC,CAAC;MAC9B,CAAC,MAAM;QACLrB,OAAO,CAAC,CAAC;MACX;IACF,CAAC,CAAC,EAAC;EACL,CAAC,CAAC,EAAC;AACL;;AAEA;AACA;AACA;AACA;AADA,SAEsBuB,oBAAoBA,CAAAC,EAAA;EAAA,OAAAC,qBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAuC1C;AACA;AADA,SAAAF,sBAAA;EAAAA,qBAAA,OAAAG,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAvCO,SAAAC,QAAqCC,WAAW;IAAA,IAAAC,QAAA,EAAAC,QAAA,EAAAC,QAAA,EAAAC,eAAA;IAAA,OAAAP,YAAA,YAAAQ,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAC/CR,QAAQ,GAAG3C,IAAI,CAAC,UAAU,CAAC;UAC3B4C,QAAQ,GAAG,eAAe;UAC1BC,QAAQ,GAAG,IAAI;UAAAI,QAAA,CAAAE,IAAA;UAAA,OAEf,IAAAC,uBAAgB,EAACV,WAAW,EAAEC,QAAQ,EAAEE,QAAQ,CAAC;QAAA;UAAA,MAEnDH,WAAW,CAACW,SAAS,IAAIX,WAAW,CAACW,SAAS,CAACC,MAAM,GAAG,CAAC;YAAAL,QAAA,CAAAE,IAAA;YAAA;UAAA;UAC3DT,WAAW,CAACa,gBAAgB,GAAGb,WAAW,CAACW,SAAS,CAAC,CAAC,CAAC;UACvD,IAAIX,WAAW,CAACW,SAAS,CAACC,MAAM,GAAG,CAAC,EAAE;YACpC5F,KAAK,CAAC8F,IAAI,CAAC,+BAA+B,GAAGd,WAAW,CAACW,SAAS,CAAC,EAAC;YACpE;UACF;UAACJ,QAAA,CAAAE,IAAA;UAAA;QAAA;UAAA,KAEGT,WAAW,CAACe,aAAa;YAAAR,QAAA,CAAAE,IAAA;YAAA;UAAA;UAC3B;UACML,eAAe,GAAG/C,IAAI,CAAC2D,GAAG,CAC9BhB,WAAW,CAACe,aAAa,CAACE,GAAG,CAAC,CAAC,CAACtC,GAAG,GAAGuB,QACxC,CAAC;UAAAK,QAAA,CAAAC,IAAA;UAECxF,KAAK,CAACuD,GAAG,CAAC,6BAA6B,GAAG6B,eAAe,CAAC;UAAAG,QAAA,CAAAE,IAAA;UAAA,OACpD5C,iBAAiB,CAACuC,eAAe,CAAC;QAAA;UAAAG,QAAA,CAAAE,IAAA;UAAA;QAAA;UAAAF,QAAA,CAAAC,IAAA;UAAAD,QAAA,CAAAW,EAAA,GAAAX,QAAA;UAExCvF,KAAK,CAAC8F,IAAI,CAAC,iCAAiC,GAAAP,QAAA,CAAAW,EAAI,CAAC;UAAA,OAAAX,QAAA,CAAAY,MAAA,WAC1CnB,WAAW;QAAA;UAAAO,QAAA,CAAAE,IAAA;UAAA,OAEd,IAAAW,+BAAmB,EACvBhB,eAAe,EACfJ,WAAW,CAACqB,KAAK,EACjBpB,QACF,CAAC;QAAA;UACDD,WAAW,CAACa,gBAAgB,GAAGT,eAAe;UAAAG,QAAA,CAAAE,IAAA;UAAA;QAAA;UAE9CzF,KAAK,CAAC8F,IAAI,CAAC,6DAA6D,CAAC;QAAA;UAAA,OAAAP,QAAA,CAAAY,MAAA,WAGtEnB,WAAW;QAAA;QAAA;UAAA,OAAAO,QAAA,CAAAe,IAAA;MAAA;IAAA,GAAAvB,OAAA;EAAA,CACnB;EAAA,OAAAN,qBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAKc4B,WAAWA,CAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,YAAA,CAAAhC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAA+B,aAAA;EAAAA,YAAA,OAAA9B,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAA1B,SAAA6B,SAA4BC,OAAO,EAAEC,MAAM;IAAA,IAAAC,KAAA,EAAAC,EAAA,EAAAC,MAAA,EAAAC,WAAA,EAAAC,QAAA,EAAAjD,GAAA,EAAAkD,GAAA;IAAA,OAAAtC,YAAA,YAAAQ,IAAA,UAAA+B,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAA7B,IAAA,GAAA6B,SAAA,CAAA5B,IAAA;QAAA;UACzC;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;UACMqB,KAAK,GAAG,EAAE;UACRC,EAAE,GAAGO,iBAAK,CAACC,WAAW,CAAC,CAAC,EAAC;UAAA,IAC1BR,EAAE;YAAAM,SAAA,CAAA5B,IAAA;YAAA;UAAA;UAAA,MAAQ,IAAInB,KAAK,CAAC,mCAAmC,CAAC;QAAA;UAEvD0C,MAAM,GAAG9D,iBAAK,CAACsE,GAAG,CAACX,MAAM,EAAExG,EAAE,CAACoH,IAAI,CAAC,OAAO,CAAC,CAAC;UAClDX,KAAK,GACHrE,KAAK,CAACuE,MAAM,CAAC,GAAG,IAAI,GAAG9D,iBAAK,CAACwE,QAAQ,CAACb,MAAM,EAAExG,EAAE,CAACsH,IAAI,CAAC,SAAS,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAC;UAC3EX,WAAW,GAAGL,OAAO,CAACf,gBAAgB;UACtCqB,QAAQ,GAAGhF,EAAE,CAACxB,OAAO,CAACmH,QAAQ,CAACZ,WAAW,EAAEH,KAAK,CAAC;UAClD7C,GAAG,GAAG,CACV5B,IAAI,CAACyF,EAAE,CAACb,WAAW,EAAE/E,EAAE,CAAC7B,EAAE,CAAC0H,GAAG,CAAC,YAAY,CAAC,EAAEb,QAAQ,EAAED,WAAW,CAAC,EACpE5E,IAAI,CAACyF,EAAE,CAACZ,QAAQ,EAAEhF,EAAE,CAAC7B,EAAE,CAACE,GAAG,CAAC,MAAM,CAAC,EAAE+B,IAAI,CAAC,UAAU,CAAC,EAAE2E,WAAW,CAAC,EACnE5E,IAAI,CAACyF,EAAE,CAACZ,QAAQ,EAAEhF,EAAE,CAAC7B,EAAE,CAAC0H,GAAG,CAAC,SAAS,CAAC,EAAE,IAAIC,IAAI,CAAC,CAAC,EAAEf,WAAW,CAAC,EAChE5E,IAAI,CAACyF,EAAE,CAACZ,QAAQ,EAAE5E,IAAI,CAAC,SAAS,CAAC,EAAEuE,MAAM,EAAEI,WAAW,CAAC,EACvD5E,IAAI,CAACyF,EAAE,CAACZ,QAAQ,EAAEhF,EAAE,CAAC7B,EAAE,CAACoH,IAAI,CAAC,OAAO,CAAC,EAAEV,EAAE,EAAEE,WAAW,CAAC,EACvD5E,IAAI,CAACyF,EAAE,CAACZ,QAAQ,EAAEhF,EAAE,CAAC7B,EAAE,CAAC0H,GAAG,CAAC,OAAO,CAAC,EAAEjB,KAAK,EAAEG,WAAW,CAAC,CAC1D;UAAAI,SAAA,CAAA7B,IAAA;UAAA6B,SAAA,CAAA5B,IAAA;UAAA,OAEO1B,aAAa,CAAC,EAAE,EAAEE,GAAG,CAAC;QAAA;UAAAoD,SAAA,CAAA5B,IAAA;UAAA;QAAA;UAAA4B,SAAA,CAAA7B,IAAA;UAAA6B,SAAA,CAAAnB,EAAA,GAAAmB,SAAA;UAEtBF,GAAG,GAAG,mBAAmB,GAAAE,SAAA,CAAAnB,EAAI;UACnClG,KAAK,CAAC8F,IAAI,CAACqB,GAAG,CAAC;UAAA,OAAAE,SAAA,CAAAlB,MAAA,WACR,IAAI;QAAA;UAAA,OAAAkB,SAAA,CAAAlB,MAAA,WAENe,QAAQ;QAAA;QAAA;UAAA,OAAAG,SAAA,CAAAf,IAAA;MAAA;IAAA,GAAAK,QAAA;EAAA,CAChB;EAAA,OAAAD,YAAA,CAAAhC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAEqBsD,cAAcA,CAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,eAAA,CAAA3D,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAA0D,gBAAA;EAAAA,eAAA,OAAAzD,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAA7B,SAAAwD,SAA+BtD,WAAW,EAAE6B,MAAM,EAAE0B,cAAc;IAAA,IAAAC,SAAA,EAAAxG,CAAA,EAAAkF,QAAA;IAAA,OAAArC,YAAA,YAAAQ,IAAA,UAAAoD,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAlD,IAAA,GAAAkD,SAAA,CAAAjD,IAAA;QAAA;UAAAiD,SAAA,CAAAjD,IAAA;UAAA,OACjEvC,iBAAK,CAACC,OAAO,CAACC,IAAI,CAAC4B,WAAW,CAACa,gBAAgB,CAAC;QAAA;UAChD2C,SAAS,GAAGtF,iBAAK,CAACyF,IAAI,CAC1B,IAAI,EACJrG,IAAI,CAAC,SAAS,CAAC,EACfuE,MAAM,EACN7B,WAAW,CAACa,gBACd,CAAC;UAAA,KACG2C,SAAS,CAAC5C,MAAM;YAAA8C,SAAA,CAAAjD,IAAA;YAAA;UAAA;UAAA,IAEbmD,OAAO,CAAC,0BAA0B,GAAGJ,SAAS,CAAC5C,MAAM,CAAC;YAAA8C,SAAA,CAAAjD,IAAA;YAAA;UAAA;UAAA,OAAAiD,SAAA,CAAAvC,MAAA;QAAA;UAClDnE,CAAC,GAAG,CAAC;QAAA;UAAA,MAAEA,CAAC,GAAGwG,SAAS,CAAC5C,MAAM;YAAA8C,SAAA,CAAAjD,IAAA;YAAA;UAAA;UAAAiD,SAAA,CAAAlD,IAAA;UAAAkD,SAAA,CAAAjD,IAAA;UAAA,OAE1B1B,aAAa,CAACb,iBAAK,CAAC2F,mBAAmB,CAACL,SAAS,CAACxG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAAA;UAChEuG,cAAc,CAAC/H,KAAK,CAACsI,eAAe,GAAG,OAAO;UAC9C9I,KAAK,CAACuD,GAAG,CAAC,oBAAoB,GAAGiF,SAAS,CAACxG,CAAC,CAAC,CAAC;UAAA0G,SAAA,CAAAjD,IAAA;UAAA;QAAA;UAAAiD,SAAA,CAAAlD,IAAA;UAAAkD,SAAA,CAAAxC,EAAA,GAAAwC,SAAA;UAE9C1I,KAAK,CAAC+I,KAAK,CAAC,uBAAuB,GAAAL,SAAA,CAAAxC,EAAI,CAAC;UACxClG,KAAK,CAAC8F,IAAI,CAAC,yBAAyB,GAAA4C,SAAA,CAAAxC,EAAI,CAAC;QAAA;UAPPlE,CAAC,EAAE;UAAA0G,SAAA,CAAAjD,IAAA;UAAA;QAAA;UAAAiD,SAAA,CAAAjD,IAAA;UAAA;QAAA;UAAAiD,SAAA,CAAAjD,IAAA;UAAA,OAWlBc,WAAW,CAACvB,WAAW,EAAE6B,MAAM,CAAC;QAAA;UAAjDK,QAAQ,GAAAwB,SAAA,CAAAM,IAAA;UACdT,cAAc,CAAC/H,KAAK,CAACsI,eAAe,GAAG,QAAQ;UAC/C9I,KAAK,CAACuD,GAAG,CAAC,kBAAkB,GAAG2D,QAAQ,CAAC;QAAA;QAAA;UAAA,OAAAwB,SAAA,CAAApC,IAAA;MAAA;IAAA,GAAAgC,QAAA;EAAA,CAE3C;EAAA,OAAAD,eAAA,CAAA3D,KAAA,OAAAC,SAAA;AAAA;AAAA,SAEqBsE,qBAAqBA,CAAAC,GAAA,EAAAC,GAAA;EAAA,OAAAC,sBAAA,CAAA1E,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAyE,uBAAA;EAAAA,sBAAA,OAAAxE,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAApC,SAAAuE,SAAsCrE,WAAW,EAAE6B,MAAM;IAAA,IAC/CyC,sBAAsB,EAAAC,uBAAA,EAAAhB,cAAA;IAAA,OAAA1D,YAAA,YAAAQ,IAAA,UAAAmE,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAjE,IAAA,GAAAiE,SAAA,CAAAhE,IAAA;QAAA;UAAA8D,uBAAA,YAAAG,uBAAA;YAAAH,uBAAA,OAAA3E,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAArC,SAAA6E,SAAuCpB,cAAc;cAAA,IAAAqB,UAAA;cAAA,OAAA/E,YAAA,YAAAQ,IAAA,UAAAwE,UAAAC,SAAA;gBAAA,kBAAAA,SAAA,CAAAtE,IAAA,GAAAsE,SAAA,CAAArE,IAAA;kBAAA;oBAAAqE,SAAA,CAAArE,IAAA;oBAAA,OAC7CvC,iBAAK,CAACC,OAAO,CAACC,IAAI,CAAC4B,WAAW,CAACa,gBAAgB,CAAC;kBAAA;oBAChD+D,UAAU,GAAG1G,iBAAK,CAACsE,GAAG,CAC1B,IAAI,EACJlF,IAAI,CAAC,SAAS,CAAC,EACfiG,cAAc,CAAC1B,MAAM,EACrB7B,WAAW,CAACa,gBACd,CAAC;oBACD0C,cAAc,CAAC/H,KAAK,GAAG0B,EAAE,CAAC1B,KAAK,CAACuJ,WAAW;oBAC3C,IAAIH,UAAU,EAAErB,cAAc,CAAC/H,KAAK,CAACsI,eAAe,GAAG,QAAQ;kBAAA;kBAAA;oBAAA,OAAAgB,SAAA,CAAAxD,IAAA;gBAAA;cAAA,GAAAqD,QAAA;YAAA,CAChE;YAAA,OAAAJ,uBAAA,CAAA7E,KAAA,OAAAC,SAAA;UAAA;UAVc2E,sBAAsB,YAAAU,sBAAAC,GAAA;YAAA,OAAAV,uBAAA,CAAA7E,KAAA,OAAAC,SAAA;UAAA;UAAA,KAajCK,WAAW,CAACa,gBAAgB;YAAA4D,SAAA,CAAAhE,IAAA;YAAA;UAAA;UAC9B8C,cAAc,GAAGrG,EAAE,CAACxB,OAAO,CAACwJ,MAAM,CAChCxH,GAAG,EACHR,EAAE,CAACC,KAAK,CAACgI,QAAQ,GAAG3H,aAAa,EACjCC,KAAK,CAACH,IAAI,CAAC,UAAU,CAAC,CAAC,EACvB,YAAM;YACJ2F,cAAc,CAACjD,WAAW,EAAE6B,MAAM,EAAE0B,cAAc,CAAC;UACrD,CACF,CAAC;UACDA,cAAc,CAAC1B,MAAM,GAAGA,MAAM;UAAA4C,SAAA,CAAAhE,IAAA;UAAA,OACxB6D,sBAAsB,CAACf,cAAc,CAAC;QAAA;UAAA,OAAAkB,SAAA,CAAAtD,MAAA,WACrCoC,cAAc;QAAA;QAAA;UAAA,OAAAkB,SAAA,CAAAnD,IAAA;MAAA;IAAA,GAAA+C,QAAA;EAAA,CAExB;EAAA,OAAAD,sBAAA,CAAA1E,KAAA,OAAAC,SAAA;AAAA"}
|
package/lib/chat/chatLogic.js
CHANGED
|
@@ -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;
|
|
@@ -85,8 +86,9 @@ var ChatChannel = exports.ChatChannel = /*#__PURE__*/function () {
|
|
|
85
86
|
var _this = this;
|
|
86
87
|
var oldMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
87
88
|
var deleteIt = arguments.length > 2 ? arguments[2] : undefined;
|
|
89
|
+
var thread = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
88
90
|
return /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
89
|
-
var sts, now, timestamp, dateStamp, chatDocument, message, me, msg, oldMsgMaker, errMsg, privateKey, sig, _errMsg;
|
|
91
|
+
var sts, now, timestamp, dateStamp, chatDocument, message, me, msg, oldMsgMaker, oldMsgMostRecentVersion, oldMsgThread, errMsg, privateKey, sig, _errMsg;
|
|
90
92
|
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
91
93
|
while (1) switch (_context2.prev = _context2.next) {
|
|
92
94
|
case 0:
|
|
@@ -100,73 +102,88 @@ var ChatChannel = exports.ChatChannel = /*#__PURE__*/function () {
|
|
|
100
102
|
msg = (0, _signature.getBlankMsg)();
|
|
101
103
|
msg.id = message.uri;
|
|
102
104
|
if (!oldMsg) {
|
|
103
|
-
_context2.next =
|
|
105
|
+
_context2.next = 27;
|
|
104
106
|
break;
|
|
105
107
|
}
|
|
106
108
|
// edit message replaces old one
|
|
107
109
|
oldMsgMaker = _solidLogic.store.any(oldMsg, ns.foaf('maker')); // may not be needed here, but needed on READ
|
|
108
110
|
if (!(oldMsgMaker.uri === me.uri)) {
|
|
109
|
-
_context2.next =
|
|
111
|
+
_context2.next = 21;
|
|
110
112
|
break;
|
|
111
113
|
}
|
|
112
|
-
|
|
114
|
+
_context2.next = 14;
|
|
115
|
+
return mostRecentVersion(oldMsg);
|
|
116
|
+
case 14:
|
|
117
|
+
oldMsgMostRecentVersion = _context2.sent;
|
|
118
|
+
sts.push($rdf.st(oldMsgMostRecentVersion, ns.dct('isReplacedBy'), message, chatDocument));
|
|
119
|
+
// if oldMsg has_reply => add has_reply to message
|
|
120
|
+
oldMsgThread = _solidLogic.store.any(oldMsgMostRecentVersion, ns.sioc('has_reply'));
|
|
121
|
+
if (oldMsgThread) {
|
|
122
|
+
sts.push($rdf.st(message, ns.sioc('has_reply'), oldMsgThread, chatDocument));
|
|
123
|
+
}
|
|
113
124
|
if (deleteIt) {
|
|
114
125
|
// we need to add a specific signature, else anyone can delete a msg ?
|
|
115
126
|
sts.push($rdf.st(message, ns.schema('dateDeleted'), dateStamp, chatDocument));
|
|
116
127
|
}
|
|
117
|
-
_context2.next =
|
|
128
|
+
_context2.next = 25;
|
|
118
129
|
break;
|
|
119
|
-
case
|
|
130
|
+
case 21:
|
|
120
131
|
errMsg = 'Error you cannot delete/edit a message from someone else : \n' + oldMsgMaker.uri;
|
|
121
132
|
debug.warn(errMsg);
|
|
122
133
|
alert(errMsg);
|
|
123
134
|
throw new Error(errMsg);
|
|
124
|
-
case
|
|
125
|
-
_context2.next =
|
|
135
|
+
case 25:
|
|
136
|
+
_context2.next = 28;
|
|
126
137
|
break;
|
|
127
|
-
case
|
|
138
|
+
case 27:
|
|
128
139
|
// link new message to channel
|
|
129
140
|
sts.push($rdf.st(_this.channel, ns.wf('message'), message, chatDocument));
|
|
130
|
-
case
|
|
141
|
+
case 28:
|
|
131
142
|
sts.push($rdf.st(message, ns.sioc('content'), _solidLogic.store.literal(text), chatDocument));
|
|
132
143
|
msg.content = text;
|
|
133
144
|
sts.push($rdf.st(message, ns.dct('created'), dateStamp, chatDocument));
|
|
134
145
|
msg.created = dateStamp.value;
|
|
135
146
|
if (!me) {
|
|
136
|
-
_context2.next =
|
|
147
|
+
_context2.next = 40;
|
|
137
148
|
break;
|
|
138
149
|
}
|
|
139
150
|
sts.push($rdf.st(message, ns.foaf('maker'), me, chatDocument));
|
|
140
151
|
msg.maker = me.uri;
|
|
141
152
|
// privateKey the cached private key of me, cached in store
|
|
142
|
-
_context2.next =
|
|
153
|
+
_context2.next = 37;
|
|
143
154
|
return (0, _keys.getPrivateKey)(me);
|
|
144
|
-
case
|
|
155
|
+
case 37:
|
|
145
156
|
privateKey = _context2.sent;
|
|
146
157
|
// me.uri)
|
|
147
158
|
sig = (0, _signature.signMsg)(msg, privateKey);
|
|
148
159
|
sts.push($rdf.st(message, $rdf.sym("".concat(_signature.SEC, "proofValue")), $rdf.lit(sig), chatDocument));
|
|
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;
|
|
155
|
-
break;
|
|
156
160
|
case 40:
|
|
157
|
-
|
|
158
|
-
|
|
161
|
+
if (thread) {
|
|
162
|
+
sts.push($rdf.st(thread, ns.sioc('has_member'), message, chatDocument));
|
|
163
|
+
if (!thread.doc().sameTerm(message.doc())) {
|
|
164
|
+
sts.push($rdf.st(thread, ns.sioc('has_member'), message, thread.doc()));
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
_context2.prev = 41;
|
|
168
|
+
_context2.next = 44;
|
|
169
|
+
return _solidLogic.store.updater.updateMany([], sts);
|
|
170
|
+
case 44:
|
|
171
|
+
_context2.next = 52;
|
|
172
|
+
break;
|
|
173
|
+
case 46:
|
|
174
|
+
_context2.prev = 46;
|
|
175
|
+
_context2.t0 = _context2["catch"](41);
|
|
159
176
|
_errMsg = 'Error saving chat message: ' + _context2.t0;
|
|
160
177
|
debug.warn(_errMsg);
|
|
161
178
|
alert(_errMsg);
|
|
162
179
|
throw new Error(_errMsg);
|
|
163
|
-
case
|
|
180
|
+
case 52:
|
|
164
181
|
return _context2.abrupt("return", message);
|
|
165
|
-
case
|
|
182
|
+
case 53:
|
|
166
183
|
case "end":
|
|
167
184
|
return _context2.stop();
|
|
168
185
|
}
|
|
169
|
-
}, _callee2, null, [[
|
|
186
|
+
}, _callee2, null, [[41, 46]]);
|
|
170
187
|
})();
|
|
171
188
|
});
|
|
172
189
|
function updateMessage(_x2) {
|
|
@@ -197,25 +214,193 @@ var ChatChannel = exports.ChatChannel = /*#__PURE__*/function () {
|
|
|
197
214
|
return _deleteMessage.apply(this, arguments);
|
|
198
215
|
}
|
|
199
216
|
return deleteMessage;
|
|
200
|
-
}()
|
|
217
|
+
}() // Create a new thread of replies to the thread root message
|
|
218
|
+
// or return one which already exists
|
|
219
|
+
)
|
|
220
|
+
}, {
|
|
221
|
+
key: "createThread",
|
|
222
|
+
value: function () {
|
|
223
|
+
var _createThread = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(threadRoot) {
|
|
224
|
+
var already, thread, insert;
|
|
225
|
+
return _regenerator["default"].wrap(function _callee4$(_context4) {
|
|
226
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
227
|
+
case 0:
|
|
228
|
+
already = _solidLogic.store.each(threadRoot, ns.sioc('has_reply'), null, threadRoot.doc()).filter(function (thread) {
|
|
229
|
+
return _solidLogic.store.holds(thread, ns.rdf('type'), ns.sioc('Thread'), thread.doc());
|
|
230
|
+
});
|
|
231
|
+
if (!(already.length > 0)) {
|
|
232
|
+
_context4.next = 3;
|
|
233
|
+
break;
|
|
234
|
+
}
|
|
235
|
+
return _context4.abrupt("return", already[0]);
|
|
236
|
+
case 3:
|
|
237
|
+
thread = $rdf.sym(threadRoot.uri + '-thread');
|
|
238
|
+
insert = [$rdf.st(thread, ns.rdf('type'), ns.sioc('Thread'), thread.doc()), $rdf.st(threadRoot, ns.sioc('has_reply'), thread, thread.doc())];
|
|
239
|
+
_context4.next = 7;
|
|
240
|
+
return _solidLogic.store.updater.update([], insert);
|
|
241
|
+
case 7:
|
|
242
|
+
return _context4.abrupt("return", thread);
|
|
243
|
+
case 8:
|
|
244
|
+
case "end":
|
|
245
|
+
return _context4.stop();
|
|
246
|
+
}
|
|
247
|
+
}, _callee4);
|
|
248
|
+
}));
|
|
249
|
+
function createThread(_x4) {
|
|
250
|
+
return _createThread.apply(this, arguments);
|
|
251
|
+
}
|
|
252
|
+
return createThread;
|
|
253
|
+
}()
|
|
201
254
|
}]);
|
|
202
255
|
return ChatChannel;
|
|
203
256
|
}(); // class ChatChannel
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
msg = _solidLogic.store.any(null, ns.dct('isReplacedBy'), message, message.doc());
|
|
209
|
-
}
|
|
210
|
-
return message;
|
|
257
|
+
// ////////// Utility functions
|
|
258
|
+
// Have to not loop forever if fed loops
|
|
259
|
+
function allVersions(_x5) {
|
|
260
|
+
return _allVersions.apply(this, arguments);
|
|
211
261
|
}
|
|
212
|
-
function
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
262
|
+
function _allVersions() {
|
|
263
|
+
_allVersions = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(message) {
|
|
264
|
+
var versions, done, m, prev, next;
|
|
265
|
+
return _regenerator["default"].wrap(function _callee5$(_context5) {
|
|
266
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
267
|
+
case 0:
|
|
268
|
+
versions = [message];
|
|
269
|
+
done = {};
|
|
270
|
+
done[message.uri] = true;
|
|
271
|
+
m = message;
|
|
272
|
+
case 4:
|
|
273
|
+
if (!true) {
|
|
274
|
+
_context5.next = 15;
|
|
275
|
+
break;
|
|
276
|
+
}
|
|
277
|
+
// earlier?
|
|
278
|
+
prev = _solidLogic.store.any(null, ns.dct('isReplacedBy'), m, m.doc());
|
|
279
|
+
if (!(!prev || done[prev.uri])) {
|
|
280
|
+
_context5.next = 8;
|
|
281
|
+
break;
|
|
282
|
+
}
|
|
283
|
+
return _context5.abrupt("break", 15);
|
|
284
|
+
case 8:
|
|
285
|
+
_context5.next = 10;
|
|
286
|
+
return _solidLogic.store.fetcher.load(prev);
|
|
287
|
+
case 10:
|
|
288
|
+
versions.unshift(prev);
|
|
289
|
+
done[prev.uri] = true;
|
|
290
|
+
m = prev;
|
|
291
|
+
_context5.next = 4;
|
|
292
|
+
break;
|
|
293
|
+
case 15:
|
|
294
|
+
m = message;
|
|
295
|
+
case 16:
|
|
296
|
+
if (!true) {
|
|
297
|
+
_context5.next = 25;
|
|
298
|
+
break;
|
|
299
|
+
}
|
|
300
|
+
// later?
|
|
301
|
+
next = _solidLogic.store.any(m, ns.dct('isReplacedBy'), null, m.doc());
|
|
302
|
+
if (!(!next || done[next.uri])) {
|
|
303
|
+
_context5.next = 20;
|
|
304
|
+
break;
|
|
305
|
+
}
|
|
306
|
+
return _context5.abrupt("break", 25);
|
|
307
|
+
case 20:
|
|
308
|
+
versions.push(next);
|
|
309
|
+
done[next.uri] = true;
|
|
310
|
+
m = next;
|
|
311
|
+
_context5.next = 16;
|
|
312
|
+
break;
|
|
313
|
+
case 25:
|
|
314
|
+
return _context5.abrupt("return", versions);
|
|
315
|
+
case 26:
|
|
316
|
+
case "end":
|
|
317
|
+
return _context5.stop();
|
|
318
|
+
}
|
|
319
|
+
}, _callee5);
|
|
320
|
+
}));
|
|
321
|
+
return _allVersions.apply(this, arguments);
|
|
322
|
+
}
|
|
323
|
+
function originalVersion(_x6) {
|
|
324
|
+
return _originalVersion.apply(this, arguments);
|
|
325
|
+
}
|
|
326
|
+
function _originalVersion() {
|
|
327
|
+
_originalVersion = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(message) {
|
|
328
|
+
var msg, done;
|
|
329
|
+
return _regenerator["default"].wrap(function _callee6$(_context6) {
|
|
330
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
331
|
+
case 0:
|
|
332
|
+
msg = message;
|
|
333
|
+
done = {}; // done[message.uri] = true
|
|
334
|
+
case 2:
|
|
335
|
+
if (!msg) {
|
|
336
|
+
_context6.next = 13;
|
|
337
|
+
break;
|
|
338
|
+
}
|
|
339
|
+
if (!done[msg.uri]) {
|
|
340
|
+
_context6.next = 6;
|
|
341
|
+
break;
|
|
342
|
+
}
|
|
343
|
+
debug.error('originalVersion: verion loop' + message);
|
|
344
|
+
return _context6.abrupt("return", message);
|
|
345
|
+
case 6:
|
|
346
|
+
done[msg.uri] = true;
|
|
347
|
+
message = msg;
|
|
348
|
+
_context6.next = 10;
|
|
349
|
+
return _solidLogic.store.fetcher.load(message);
|
|
350
|
+
case 10:
|
|
351
|
+
msg = _solidLogic.store.any(null, ns.dct('isReplacedBy'), message, message.doc());
|
|
352
|
+
_context6.next = 2;
|
|
353
|
+
break;
|
|
354
|
+
case 13:
|
|
355
|
+
return _context6.abrupt("return", message);
|
|
356
|
+
case 14:
|
|
357
|
+
case "end":
|
|
358
|
+
return _context6.stop();
|
|
359
|
+
}
|
|
360
|
+
}, _callee6);
|
|
361
|
+
}));
|
|
362
|
+
return _originalVersion.apply(this, arguments);
|
|
363
|
+
}
|
|
364
|
+
function mostRecentVersion(_x7) {
|
|
365
|
+
return _mostRecentVersion.apply(this, arguments);
|
|
366
|
+
}
|
|
367
|
+
function _mostRecentVersion() {
|
|
368
|
+
_mostRecentVersion = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7(message) {
|
|
369
|
+
var msg, done;
|
|
370
|
+
return _regenerator["default"].wrap(function _callee7$(_context7) {
|
|
371
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
372
|
+
case 0:
|
|
373
|
+
msg = message;
|
|
374
|
+
done = {};
|
|
375
|
+
case 2:
|
|
376
|
+
if (!msg) {
|
|
377
|
+
_context7.next = 13;
|
|
378
|
+
break;
|
|
379
|
+
}
|
|
380
|
+
if (!done[msg.uri]) {
|
|
381
|
+
_context7.next = 6;
|
|
382
|
+
break;
|
|
383
|
+
}
|
|
384
|
+
debug.error('mostRecentVersion: verion loop' + message);
|
|
385
|
+
return _context7.abrupt("return", message);
|
|
386
|
+
case 6:
|
|
387
|
+
done[msg.uri] = true;
|
|
388
|
+
message = msg;
|
|
389
|
+
_context7.next = 10;
|
|
390
|
+
return _solidLogic.store.fetcher.load(message);
|
|
391
|
+
case 10:
|
|
392
|
+
msg = _solidLogic.store.any(message, ns.dct('isReplacedBy'), null, message.doc());
|
|
393
|
+
_context7.next = 2;
|
|
394
|
+
break;
|
|
395
|
+
case 13:
|
|
396
|
+
return _context7.abrupt("return", message);
|
|
397
|
+
case 14:
|
|
398
|
+
case "end":
|
|
399
|
+
return _context7.stop();
|
|
400
|
+
}
|
|
401
|
+
}, _callee7);
|
|
402
|
+
}));
|
|
403
|
+
return _mostRecentVersion.apply(this, arguments);
|
|
219
404
|
}
|
|
220
405
|
function isDeleted(message) {
|
|
221
406
|
return _solidLogic.store.holds(message, ns.schema('dateDeleted'), null, message.doc());
|
|
@@ -234,62 +419,62 @@ function nick(person) {
|
|
|
234
419
|
if (s) return '' + s.value;
|
|
235
420
|
return '' + utils.label(person);
|
|
236
421
|
}
|
|
237
|
-
function _createIfNotExists(
|
|
422
|
+
function _createIfNotExists(_x8) {
|
|
238
423
|
return _createIfNotExists2.apply(this, arguments);
|
|
239
424
|
} // ends
|
|
240
425
|
function _createIfNotExists2() {
|
|
241
426
|
_createIfNotExists2 = (0, _asyncToGenerator2["default"])(function (doc) {
|
|
242
427
|
var contentType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'text/turtle';
|
|
243
428
|
var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
|
244
|
-
return /*#__PURE__*/_regenerator["default"].mark(function
|
|
429
|
+
return /*#__PURE__*/_regenerator["default"].mark(function _callee8() {
|
|
245
430
|
var response;
|
|
246
|
-
return _regenerator["default"].wrap(function
|
|
247
|
-
while (1) switch (
|
|
431
|
+
return _regenerator["default"].wrap(function _callee8$(_context8) {
|
|
432
|
+
while (1) switch (_context8.prev = _context8.next) {
|
|
248
433
|
case 0:
|
|
249
|
-
|
|
250
|
-
|
|
434
|
+
_context8.prev = 0;
|
|
435
|
+
_context8.next = 3;
|
|
251
436
|
return _solidLogic.store.fetcher.load(doc);
|
|
252
437
|
case 3:
|
|
253
|
-
response =
|
|
254
|
-
|
|
438
|
+
response = _context8.sent;
|
|
439
|
+
_context8.next = 26;
|
|
255
440
|
break;
|
|
256
441
|
case 6:
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
if (!(
|
|
260
|
-
|
|
442
|
+
_context8.prev = 6;
|
|
443
|
+
_context8.t0 = _context8["catch"](0);
|
|
444
|
+
if (!(_context8.t0.response.status === 404)) {
|
|
445
|
+
_context8.next = 24;
|
|
261
446
|
break;
|
|
262
447
|
}
|
|
263
448
|
debug.log('createIfNotExists: doc does NOT exist, will create... ' + doc);
|
|
264
|
-
|
|
265
|
-
|
|
449
|
+
_context8.prev = 10;
|
|
450
|
+
_context8.next = 13;
|
|
266
451
|
return _solidLogic.store.fetcher.webOperation('PUT', doc.uri, {
|
|
267
452
|
data: data,
|
|
268
453
|
contentType: contentType
|
|
269
454
|
});
|
|
270
455
|
case 13:
|
|
271
|
-
response =
|
|
272
|
-
|
|
456
|
+
response = _context8.sent;
|
|
457
|
+
_context8.next = 20;
|
|
273
458
|
break;
|
|
274
459
|
case 16:
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
debug.log('createIfNotExists doc FAILED: ' + doc + ': ' +
|
|
278
|
-
throw
|
|
460
|
+
_context8.prev = 16;
|
|
461
|
+
_context8.t1 = _context8["catch"](10);
|
|
462
|
+
debug.log('createIfNotExists doc FAILED: ' + doc + ': ' + _context8.t1);
|
|
463
|
+
throw _context8.t1;
|
|
279
464
|
case 20:
|
|
280
465
|
delete _solidLogic.store.fetcher.requested[doc.uri]; // delete cached 404 error
|
|
281
466
|
// debug.log('createIfNotExists doc created ok ' + doc)
|
|
282
|
-
return
|
|
467
|
+
return _context8.abrupt("return", response);
|
|
283
468
|
case 24:
|
|
284
|
-
debug.log('createIfNotExists doc load error NOT 404: ' + doc + ': ' +
|
|
285
|
-
throw
|
|
469
|
+
debug.log('createIfNotExists doc load error NOT 404: ' + doc + ': ' + _context8.t0);
|
|
470
|
+
throw _context8.t0;
|
|
286
471
|
case 26:
|
|
287
|
-
return
|
|
472
|
+
return _context8.abrupt("return", response);
|
|
288
473
|
case 27:
|
|
289
474
|
case "end":
|
|
290
|
-
return
|
|
475
|
+
return _context8.stop();
|
|
291
476
|
}
|
|
292
|
-
},
|
|
477
|
+
}, _callee8, null, [[0, 6], [10, 16]]);
|
|
293
478
|
})();
|
|
294
479
|
});
|
|
295
480
|
return _createIfNotExists2.apply(this, arguments);
|