solid-ui 2.4.18 → 2.4.19
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/README.md +3 -2
- package/lib/acl/acl.d.ts.map +1 -1
- package/lib/acl/acl.js +2 -4
- package/lib/acl/acl.js.map +1 -1
- package/lib/acl/add-agent-buttons.d.ts.map +1 -1
- package/lib/acl/add-agent-buttons.js +5 -5
- package/lib/acl/add-agent-buttons.js.map +1 -1
- package/lib/chat/bookmarks.js +20 -22
- package/lib/chat/bookmarks.js.map +1 -1
- package/lib/chat/chatLogic.js +13 -15
- package/lib/chat/chatLogic.js.map +1 -1
- package/lib/chat/dateFolder.js +10 -10
- package/lib/chat/dateFolder.js.map +1 -1
- package/lib/chat/infinite.js +14 -16
- package/lib/chat/infinite.js.map +1 -1
- package/lib/chat/message.js +19 -23
- package/lib/chat/message.js.map +1 -1
- package/lib/chat/messageTools.js +16 -21
- package/lib/chat/messageTools.js.map +1 -1
- package/lib/chat/thread.js +24 -24
- package/lib/chat/thread.js.map +1 -1
- package/lib/create/create.d.ts.map +1 -1
- package/lib/create/create.js +9 -9
- package/lib/create/create.js.map +1 -1
- package/lib/folders.js +2 -6
- package/lib/folders.js.map +1 -1
- package/lib/footer/index.js +4 -4
- package/lib/footer/index.js.map +1 -1
- package/lib/header/index.d.ts.map +1 -1
- package/lib/header/index.js +11 -8
- package/lib/header/index.js.map +1 -1
- package/lib/index.d.ts +4 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +30 -28
- package/lib/index.js.map +1 -1
- package/lib/login/login.d.ts +130 -0
- package/lib/login/login.d.ts.map +1 -0
- package/lib/login/login.js +1415 -0
- package/lib/login/login.js.map +1 -0
- package/lib/matrix/matrix.js +2 -2
- package/lib/matrix/matrix.js.map +1 -1
- package/lib/messageArea.js +9 -10
- package/lib/messageArea.js.map +1 -1
- package/lib/pad.js +2 -2
- package/lib/pad.js.map +1 -1
- package/lib/participation.d.ts.map +1 -1
- package/lib/participation.js +4 -5
- package/lib/participation.js.map +1 -1
- package/lib/preferences.js +8 -8
- package/lib/preferences.js.map +1 -1
- package/lib/{authn → signup}/config-default.js +0 -0
- package/lib/signup/config-default.js.map +1 -0
- package/lib/{authn → signup}/signup.js +0 -0
- package/lib/signup/signup.js.map +1 -0
- package/lib/table.js +2 -3
- package/lib/table.js.map +1 -1
- package/lib/tabs.js +3 -3
- package/lib/tabs.js.map +1 -1
- package/lib/utils/index.js +6 -6
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/label.js +4 -5
- package/lib/utils/label.js.map +1 -1
- package/lib/versionInfo.js +2 -2
- package/lib/versionInfo.js.map +1 -1
- package/lib/webpack-bundle.js +8230 -24429
- package/lib/webpack-bundle.js.map +1 -1
- package/lib/widgets/buttons.js +16 -16
- package/lib/widgets/buttons.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteBar.js +2 -2
- package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteField.js +2 -2
- package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompletePicker.js +2 -2
- package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
- package/lib/widgets/forms/autocomplete/language.d.ts.map +1 -1
- package/lib/widgets/forms/autocomplete/language.js +7 -10
- package/lib/widgets/forms/autocomplete/language.js.map +1 -1
- package/lib/widgets/forms/autocomplete/publicData.d.ts +1 -1
- package/lib/widgets/forms/autocomplete/publicData.d.ts.map +1 -1
- package/lib/widgets/forms/autocomplete/publicData.js +15 -16
- package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
- package/lib/widgets/forms/basic.d.ts +1 -1
- package/lib/widgets/forms/basic.d.ts.map +1 -1
- package/lib/widgets/forms/basic.js +2 -2
- package/lib/widgets/forms/basic.js.map +1 -1
- package/lib/widgets/forms/comment.d.ts +1 -1
- package/lib/widgets/forms/comment.js +3 -3
- package/lib/widgets/forms/comment.js.map +1 -1
- package/lib/widgets/forms/fieldFunction.js +2 -2
- package/lib/widgets/forms/fieldFunction.js.map +1 -1
- package/lib/widgets/forms/formStyle.js +3 -3
- package/lib/widgets/forms/formStyle.js.map +1 -1
- package/lib/widgets/forms.js +10 -10
- package/lib/widgets/forms.js.map +1 -1
- package/lib/widgets/peoplePicker.js +2 -2
- package/lib/widgets/peoplePicker.js.map +1 -1
- package/package.json +12 -4
- package/lib/authn/authSession.d.ts +0 -4
- package/lib/authn/authSession.d.ts.map +0 -1
- package/lib/authn/authSession.js +0 -25
- package/lib/authn/authSession.js.map +0 -1
- package/lib/authn/authn.d.ts +0 -193
- package/lib/authn/authn.d.ts.map +0 -1
- package/lib/authn/authn.js +0 -2238
- package/lib/authn/authn.js.map +0 -1
- package/lib/authn/config-default.js.map +0 -1
- package/lib/authn/index.d.ts +0 -35
- package/lib/authn/index.d.ts.map +0 -1
- package/lib/authn/index.js +0 -44
- package/lib/authn/index.js.map +0 -1
- package/lib/authn/signup.js.map +0 -1
- package/lib/authn/types.d.ts +0 -25
- package/lib/authn/types.d.ts.map +0 -1
- package/lib/authn/types.js +0 -6
- package/lib/authn/types.js.map +0 -1
- package/lib/logic.d.ts +0 -8
- package/lib/logic.d.ts.map +0 -1
- package/lib/logic.js +0 -79
- package/lib/logic.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/chat/bookmarks.js"],"names":["UI","authn","icons","ns","media","pad","rdf","store","style","utils","widgets","$rdf","BOOK","Namespace","BOOKMARK_ICON","label","dom","window","document","createIfNotExists","doc","Promise","resolve","reject","fetcher","load","then","response","debug","log","err","status","webOperation","uri","data","contentType","requested","updatePromise","del","ins","updater","update","ok","errorBody","Error","findBookmarkDocument","userContext","theClass","fileTail","isPublic","findAppInstances","instances","length","bookmarkDocument","alert","publicProfile","newBookmarkFile","sym","dir","error","registerInTypeIndex","addBookmark","context","target","title","me","currentUser","author","any","foaf","anyValue","sioc","slice","bookmarkDoc","bookmark","newThing","st","dct","Date","msg","toggleBookmark","bookmarkButton","bookmarks","each","confirm","i","connectedStatements","backgroundColor","renderBookmarksButton","setBookmarkButtonColor","bookmarked","buttonStyle","button","iconBase"],"mappings":"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","sourcesContent":["/**\n * Functions related to chat and bookmarks\n * @packageDocumentation\n */\n\n/* global alert confirm */\nimport { authn } from '../authn/index'\nimport * as debug from '../debug'\nimport { icons } from '../iconBase'\nimport { store } from '../logic'\nimport { media } from '../media/index'\nimport * as ns from '../ns'\nimport * as pad from '../pad'\nimport * as rdf from 'rdflib' // pull in first avoid cross-refs\nimport * as style from '../style'\nimport * as utils from '../utils'\nimport * as widgets from '../widgets'\n\nconst UI = { authn, icons, ns, media, pad, rdf, store, style, utils, widgets }\nconst $rdf = UI.rdf\n\nconst BOOK = $rdf.Namespace('http://www.w3.org/2002/01/bookmark#')\nconst BOOKMARK_ICON = 'noun_45961.svg'\n\nconst label = utils.label\nconst dom = window.document || null\n\n/** Create a resource if it really does not exist\n * Be absolutely sure something does not exist before creating a new empty file\n * as otherwise existing could be deleted.\n * @param doc {NamedNode} - The resource\n */\nfunction createIfNotExists (doc) {\n return new Promise(function (resolve, reject) {\n store.fetcher.load(doc).then(\n response => {\n debug.log('createIfNotExists doc exists, all good ' + doc)\n // store.fetcher.webOperation('HEAD', doc.uri).then(response => {\n resolve(response)\n },\n err => {\n if (err.response.status === 404) {\n debug.log(\n 'createIfNotExists doc does NOT exist, will create... ' + doc\n )\n\n store.fetcher\n .webOperation('PUT', doc.uri, {\n data: '',\n contentType: 'text/turtle'\n })\n .then(\n response => {\n // fetcher.requested[doc.uri] = 'done' // do not need to read ?? but no headers\n delete store.fetcher.requested[doc.uri] // delete cached 404 error\n debug.log('createIfNotExists doc created ok ' + doc)\n resolve(response)\n },\n err => {\n debug.log('createIfNotExists doc FAILED: ' + doc + ': ' + err)\n reject(err)\n }\n )\n } else {\n debug.log(\n 'createIfNotExists doc load error NOT 404: ' + doc + ': ' + err\n )\n reject(err)\n }\n }\n )\n })\n}\n\n// @@@@ use the one in rdflib.js when it is avaiable and delete this\nfunction updatePromise (del, ins) {\n return new Promise(function (resolve, reject) {\n store.updater.update(del, ins, function (uri, ok, errorBody) {\n if (!ok) {\n reject(new Error(errorBody))\n } else {\n resolve()\n }\n }) // callback\n }) // promise\n}\n\n// export findBookmarkDocument,\n\n/* Bookmarking\n */\n/** Find a user's bookmarks\n */\nexport async function findBookmarkDocument (userContext) {\n const theClass = BOOK('Bookmark')\n const fileTail = 'bookmarks.ttl'\n const isPublic = true\n\n await UI.authn.findAppInstances(userContext, theClass, isPublic) // public -- only look for public links\n if (userContext.instances && userContext.instances.length > 0) {\n userContext.bookmarkDocument = userContext.instances[0]\n if (userContext.instances.length > 1) {\n alert('More than one bookmark file! ' + userContext.instances)\n }\n } else {\n if (userContext.publicProfile) {\n // publicProfile or preferencesFile\n const newBookmarkFile = $rdf.sym(\n userContext.publicProfile.dir().uri + fileTail\n )\n try {\n debug.log('Creating new bookmark file ' + newBookmarkFile)\n await createIfNotExists(newBookmarkFile)\n } catch (e) {\n alert.error(\"Can't make fresh bookmark file:\" + e)\n return userContext\n }\n await UI.authn.registerInTypeIndex(\n userContext,\n newBookmarkFile,\n theClass,\n true\n ) // public\n userContext.bookmarkDocument = newBookmarkFile\n } else {\n alert('You seem to have no bookmark file and not even a profile file.')\n }\n }\n return userContext\n}\n\n/** Add a bookmark\n */\n\nasync function addBookmark (context, target) {\n /* like\n @prefix terms: <http://purl.org/dc/terms/>.\n @prefix bookm: <http://www.w3.org/2002/01/bookmark#>.\n @prefix n0: <http://xmlns.com/foaf/0.1/>.\n <> terms:references <#0.5534145389246576>.\n <#0.5534145389246576>\n a bookm:Bookmark;\n terms:created \"2019-01-26T20:26:44.374Z\"^^XML:dateTime;\n terms:title \"Herons\";\n bookm:recalls wiki:Heron;\n n0:maker c:me.\n */\n let title = ''\n const me = UI.authn.currentUser() // If already logged on\n if (!me) throw new Error('Must be logged on to add Bookmark')\n\n const author = store.any(target, ns.foaf('maker'))\n title =\n label(author) + ': ' + store.anyValue(target, ns.sioc('content')).slice(0, 80) // @@ add chat title too?\n const bookmarkDoc = context.bookmarkDocument\n const bookmark = UI.widgets.newThing(bookmarkDoc, title)\n const ins = [\n $rdf.st(bookmarkDoc, UI.ns.dct('references'), bookmark, bookmarkDoc),\n $rdf.st(bookmark, UI.ns.rdf('type'), BOOK('Bookmark'), bookmarkDoc),\n $rdf.st(bookmark, UI.ns.dct('created'), new Date(), bookmarkDoc),\n $rdf.st(bookmark, BOOK('recalls'), target, bookmarkDoc),\n $rdf.st(bookmark, UI.ns.foaf('maker'), me, bookmarkDoc),\n $rdf.st(bookmark, UI.ns.dct('title'), title, bookmarkDoc)\n ]\n try {\n await updatePromise([], ins) // 20190118A\n } catch (e) {\n const msg = 'Making bookmark: ' + e\n alert.error(msg)\n return null\n }\n return bookmark\n}\n\nexport async function toggleBookmark (userContext, target, bookmarkButton) {\n await store.fetcher.load(userContext.bookmarkDocument)\n const bookmarks = store.each(\n null,\n BOOK('recalls'),\n target,\n userContext.bookmarkDocument\n )\n if (bookmarks.length) {\n // delete\n if (!confirm('Delete bookmark on this?' + bookmarks.length)) return\n for (let i = 0; i < bookmarks.length; i++) {\n try {\n await updatePromise(store.connectedStatements(bookmarks[i]), [])\n bookmarkButton.style.backgroundColor = 'white'\n debug.log('Bookmark deleted: ' + bookmarks[i])\n } catch (e) {\n debug.error('Cant delete bookmark:' + e)\n alert('Cant delete bookmark:' + e)\n }\n }\n } else {\n const bookmark = await addBookmark(userContext, target)\n bookmarkButton.style.backgroundColor = 'yellow'\n debug.log('Bookmark added: ' + bookmark)\n }\n}\n\nexport async function renderBookmarksButton (userContext, target) {\n async function setBookmarkButtonColor (bookmarkButton) {\n await store.fetcher.load(userContext.bookmarkDocument)\n const bookmarked = store.any(\n null,\n BOOK('recalls'),\n bookmarkButton.target,\n userContext.bookmarkDocument\n )\n bookmarkButton.style = UI.style.buttonStyle\n if (bookmarked) bookmarkButton.style.backgroundColor = 'yellow'\n }\n\n let bookmarkButton\n if (userContext.bookmarkDocument) {\n bookmarkButton = UI.widgets.button(\n dom,\n UI.icons.iconBase + BOOKMARK_ICON,\n label(BOOK('Bookmark')),\n () => {\n toggleBookmark(userContext, target, bookmarkButton)\n }\n )\n bookmarkButton.target = target\n await setBookmarkButtonColor(bookmarkButton)\n return bookmarkButton\n }\n}\n"],"file":"bookmarks.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/chat/bookmarks.js"],"names":["UI","icons","ns","media","pad","rdf","style","utils","widgets","$rdf","BOOK","Namespace","BOOKMARK_ICON","label","dom","window","document","createIfNotExists","doc","Promise","resolve","reject","store","fetcher","load","then","response","debug","log","err","status","webOperation","uri","data","contentType","requested","updatePromise","del","ins","updater","update","ok","errorBody","Error","findBookmarkDocument","userContext","theClass","fileTail","isPublic","instances","length","bookmarkDocument","alert","publicProfile","newBookmarkFile","sym","dir","error","addBookmark","context","target","title","me","authn","currentUser","author","any","foaf","anyValue","sioc","slice","bookmarkDoc","bookmark","newThing","st","dct","Date","msg","toggleBookmark","bookmarkButton","bookmarks","each","confirm","i","connectedStatements","backgroundColor","renderBookmarksButton","setBookmarkButtonColor","bookmarked","buttonStyle","button","iconBase"],"mappings":"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","sourcesContent":["/**\n * Functions related to chat and bookmarks\n * @packageDocumentation\n */\n\n/* global alert confirm */\nimport * 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// export findBookmarkDocument,\n\n/* Bookmarking\n */\n/** Find a user's bookmarks\n */\nexport async function findBookmarkDocument (userContext) {\n const theClass = BOOK('Bookmark')\n const fileTail = 'bookmarks.ttl'\n const isPublic = true\n\n await findAppInstances(userContext, theClass, isPublic) // public -- only look for public links\n if (userContext.instances && userContext.instances.length > 0) {\n userContext.bookmarkDocument = userContext.instances[0]\n if (userContext.instances.length > 1) {\n alert('More than one bookmark file! ' + userContext.instances)\n }\n } else {\n if (userContext.publicProfile) {\n // publicProfile or preferencesFile\n const newBookmarkFile = $rdf.sym(\n userContext.publicProfile.dir().uri + fileTail\n )\n try {\n debug.log('Creating new bookmark file ' + newBookmarkFile)\n await createIfNotExists(newBookmarkFile)\n } catch (e) {\n alert.error(\"Can't make fresh bookmark file:\" + e)\n return userContext\n }\n await registerInTypeIndex(\n userContext,\n newBookmarkFile,\n theClass,\n true\n ) // public\n userContext.bookmarkDocument = newBookmarkFile\n } else {\n alert('You seem to have no bookmark file and not even a profile file.')\n }\n }\n return userContext\n}\n\n/** Add a bookmark\n */\n\nasync function addBookmark (context, target) {\n /* like\n @prefix terms: <http://purl.org/dc/terms/>.\n @prefix bookm: <http://www.w3.org/2002/01/bookmark#>.\n @prefix n0: <http://xmlns.com/foaf/0.1/>.\n <> terms:references <#0.5534145389246576>.\n <#0.5534145389246576>\n a bookm:Bookmark;\n terms:created \"2019-01-26T20:26:44.374Z\"^^XML:dateTime;\n terms:title \"Herons\";\n bookm:recalls wiki:Heron;\n n0:maker c:me.\n */\n let title = ''\n const me = authn.currentUser() // If already logged on\n if (!me) throw new Error('Must be logged on to add Bookmark')\n\n const author = store.any(target, ns.foaf('maker'))\n title =\n label(author) + ': ' + store.anyValue(target, ns.sioc('content')).slice(0, 80) // @@ add chat title too?\n const bookmarkDoc = context.bookmarkDocument\n const bookmark = UI.widgets.newThing(bookmarkDoc, title)\n const ins = [\n $rdf.st(bookmarkDoc, UI.ns.dct('references'), bookmark, bookmarkDoc),\n $rdf.st(bookmark, UI.ns.rdf('type'), BOOK('Bookmark'), bookmarkDoc),\n $rdf.st(bookmark, UI.ns.dct('created'), new Date(), bookmarkDoc),\n $rdf.st(bookmark, BOOK('recalls'), target, bookmarkDoc),\n $rdf.st(bookmark, UI.ns.foaf('maker'), me, bookmarkDoc),\n $rdf.st(bookmark, UI.ns.dct('title'), title, bookmarkDoc)\n ]\n try {\n await updatePromise([], ins) // 20190118A\n } catch (e) {\n const msg = 'Making bookmark: ' + e\n alert.error(msg)\n return null\n }\n return bookmark\n}\n\nexport async function toggleBookmark (userContext, target, bookmarkButton) {\n await store.fetcher.load(userContext.bookmarkDocument)\n const bookmarks = store.each(\n null,\n BOOK('recalls'),\n target,\n userContext.bookmarkDocument\n )\n if (bookmarks.length) {\n // delete\n if (!confirm('Delete bookmark on this?' + bookmarks.length)) return\n for (let i = 0; i < bookmarks.length; i++) {\n try {\n await updatePromise(store.connectedStatements(bookmarks[i]), [])\n bookmarkButton.style.backgroundColor = 'white'\n debug.log('Bookmark deleted: ' + bookmarks[i])\n } catch (e) {\n debug.error('Cant delete bookmark:' + e)\n alert('Cant delete bookmark:' + e)\n }\n }\n } else {\n const bookmark = await addBookmark(userContext, target)\n bookmarkButton.style.backgroundColor = 'yellow'\n debug.log('Bookmark added: ' + bookmark)\n }\n}\n\nexport async function renderBookmarksButton (userContext, target) {\n async function setBookmarkButtonColor (bookmarkButton) {\n await store.fetcher.load(userContext.bookmarkDocument)\n const bookmarked = store.any(\n null,\n BOOK('recalls'),\n bookmarkButton.target,\n userContext.bookmarkDocument\n )\n bookmarkButton.style = UI.style.buttonStyle\n if (bookmarked) bookmarkButton.style.backgroundColor = 'yellow'\n }\n\n let bookmarkButton\n if (userContext.bookmarkDocument) {\n bookmarkButton = UI.widgets.button(\n dom,\n UI.icons.iconBase + BOOKMARK_ICON,\n label(BOOK('Bookmark')),\n () => {\n toggleBookmark(userContext, target, bookmarkButton)\n }\n )\n bookmarkButton.target = target\n await setBookmarkButtonColor(bookmarkButton)\n return bookmarkButton\n }\n}\n"],"file":"bookmarks.js"}
|
package/lib/chat/chatLogic.js
CHANGED
|
@@ -26,11 +26,9 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
|
|
|
26
26
|
|
|
27
27
|
var debug = _interopRequireWildcard(require("../debug"));
|
|
28
28
|
|
|
29
|
-
var _index = require("../authn/index");
|
|
30
|
-
|
|
31
29
|
var _dateFolder = require("./dateFolder");
|
|
32
30
|
|
|
33
|
-
var
|
|
31
|
+
var _solidLogic = require("solid-logic");
|
|
34
32
|
|
|
35
33
|
var ns = _interopRequireWildcard(require("../ns"));
|
|
36
34
|
|
|
@@ -127,9 +125,9 @@ var ChatChannel = /*#__PURE__*/function () {
|
|
|
127
125
|
timestamp = '' + now.getTime();
|
|
128
126
|
dateStamp = $rdf.term(now);
|
|
129
127
|
chatDocument = oldMsg ? oldMsg.doc() : this.dateFolder.leafDocumentFromDate(now);
|
|
130
|
-
message =
|
|
128
|
+
message = _solidLogic.store.sym(chatDocument.uri + '#' + 'Msg' + timestamp); // const content = store.literal(text)
|
|
131
129
|
|
|
132
|
-
me =
|
|
130
|
+
me = _solidLogic.authn.currentUser(); // If already logged on
|
|
133
131
|
|
|
134
132
|
if (oldMsg) {
|
|
135
133
|
// edit message replaces old one
|
|
@@ -143,7 +141,7 @@ var ChatChannel = /*#__PURE__*/function () {
|
|
|
143
141
|
sts.push($rdf.st(this.channel, ns.wf('message'), message, chatDocument));
|
|
144
142
|
}
|
|
145
143
|
|
|
146
|
-
sts.push($rdf.st(message, ns.sioc('content'),
|
|
144
|
+
sts.push($rdf.st(message, ns.sioc('content'), _solidLogic.store.literal(text), chatDocument));
|
|
147
145
|
sts.push($rdf.st(message, ns.dct('created'), dateStamp, chatDocument));
|
|
148
146
|
|
|
149
147
|
if (me) {
|
|
@@ -152,7 +150,7 @@ var ChatChannel = /*#__PURE__*/function () {
|
|
|
152
150
|
|
|
153
151
|
_context2.prev = 13;
|
|
154
152
|
_context2.next = 16;
|
|
155
|
-
return
|
|
153
|
+
return _solidLogic.store.updater.update([], sts);
|
|
156
154
|
|
|
157
155
|
case 16:
|
|
158
156
|
_context2.next = 24;
|
|
@@ -224,7 +222,7 @@ function originalVersion(message) {
|
|
|
224
222
|
|
|
225
223
|
while (msg) {
|
|
226
224
|
message = msg;
|
|
227
|
-
msg =
|
|
225
|
+
msg = _solidLogic.store.any(null, ns.dct('isReplacedBy'), message, message.doc());
|
|
228
226
|
}
|
|
229
227
|
|
|
230
228
|
return message;
|
|
@@ -235,18 +233,18 @@ function mostRecentVersion(message) {
|
|
|
235
233
|
|
|
236
234
|
while (msg) {
|
|
237
235
|
message = msg;
|
|
238
|
-
msg =
|
|
236
|
+
msg = _solidLogic.store.any(message, ns.dct('isReplacedBy'), null, message.doc());
|
|
239
237
|
}
|
|
240
238
|
|
|
241
239
|
return message;
|
|
242
240
|
}
|
|
243
241
|
|
|
244
242
|
function isDeleted(message) {
|
|
245
|
-
return
|
|
243
|
+
return _solidLogic.store.holds(message, ns.schema('dateDeleted'), null, message.doc());
|
|
246
244
|
}
|
|
247
245
|
|
|
248
246
|
function isReplaced(message) {
|
|
249
|
-
return
|
|
247
|
+
return _solidLogic.store.holds(message, ns.dct('isReplacedBy'), null, message.doc());
|
|
250
248
|
}
|
|
251
249
|
|
|
252
250
|
function isHidden(message) {
|
|
@@ -255,7 +253,7 @@ function isHidden(message) {
|
|
|
255
253
|
|
|
256
254
|
|
|
257
255
|
function nick(person) {
|
|
258
|
-
var s =
|
|
256
|
+
var s = _solidLogic.store.any(person, ns.foaf('nick'));
|
|
259
257
|
|
|
260
258
|
if (s) return '' + s.value;
|
|
261
259
|
return '' + utils.label(person);
|
|
@@ -280,7 +278,7 @@ function _createIfNotExists2() {
|
|
|
280
278
|
data = _args4.length > 2 && _args4[2] !== undefined ? _args4[2] : '';
|
|
281
279
|
_context4.prev = 2;
|
|
282
280
|
_context4.next = 5;
|
|
283
|
-
return
|
|
281
|
+
return _solidLogic.store.fetcher.load(doc);
|
|
284
282
|
|
|
285
283
|
case 5:
|
|
286
284
|
response = _context4.sent;
|
|
@@ -299,7 +297,7 @@ function _createIfNotExists2() {
|
|
|
299
297
|
debug.log('createIfNotExists: doc does NOT exist, will create... ' + doc);
|
|
300
298
|
_context4.prev = 12;
|
|
301
299
|
_context4.next = 15;
|
|
302
|
-
return
|
|
300
|
+
return _solidLogic.store.fetcher.webOperation('PUT', doc.uri, {
|
|
303
301
|
data: data,
|
|
304
302
|
contentType: contentType
|
|
305
303
|
});
|
|
@@ -316,7 +314,7 @@ function _createIfNotExists2() {
|
|
|
316
314
|
throw _context4.t1;
|
|
317
315
|
|
|
318
316
|
case 22:
|
|
319
|
-
delete
|
|
317
|
+
delete _solidLogic.store.fetcher.requested[doc.uri]; // delete cached 404 error
|
|
320
318
|
// debug.log('createIfNotExists doc created ok ' + doc)
|
|
321
319
|
|
|
322
320
|
return _context4.abrupt("return", response);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/chat/chatLogic.js"],"names":["ChatChannel","channel","options","channelRoot","doc","dateFolder","DateFolder","div","text","updateMessage","oldMsg","deleteIt","sts","now","Date","timestamp","getTime","dateStamp","$rdf","term","chatDocument","leafDocumentFromDate","message","store","sym","uri","me","authn","currentUser","push","st","mostRecentVersion","ns","dct","schema","wf","sioc","literal","foaf","updater","update","msg","debug","warn","alert","Error","originalVersion","any","isDeleted","holds","isReplaced","isHidden","nick","person","s","value","utils","label","_createIfNotExists","contentType","data","fetcher","load","response","status","log","webOperation","requested"],"mappings":"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","sourcesContent":["/**\n * Contains the [[ChatChannel]] class and logic for Solid Chat\n * @packageDocumentation\n */\n\nimport * as debug from '../debug'\nimport { authn } from '../authn/index'\nimport { DateFolder } from './dateFolder'\nimport { store } from '../logic'\nimport * as ns from '../ns'\nimport * as $rdf from 'rdflib' // pull in first avoid cross-refs\nimport * as utils from '../utils'\n\n/* The Solid logic for a 'LongChat'\n*/\n/**\n * Common code for a chat (discussion area of messages about something)\n * This version runs over a series of files for different time periods\n *\n * Parameters for the whole chat like its title are stored on\n * index.ttl#this and the chats messages are stored in YYYY/MM/DD/chat.ttl\n *\n */\n\nexport class ChatChannel {\n constructor (channel, options) {\n this.channel = channel\n this.channelRoot = channel.doc()\n this.options = options\n this.dateFolder = new DateFolder(this.channelRoot, 'chat.ttl')\n this.div = null // : HTMLElement\n }\n\n /* Store a new message in the web,\n */\n async createMessage (text) {\n return this.updateMessage(text)\n }\n\n /* Store a new message in the web,\n as a replacement for an existing one.\n The old one iis left, and the two are linked\n */\n async updateMessage (text, oldMsg = null, deleteIt) {\n const sts = []\n const now = new Date()\n const timestamp = '' + now.getTime()\n const dateStamp = $rdf.term(now)\n const chatDocument = oldMsg ? oldMsg.doc() : this.dateFolder.leafDocumentFromDate(now)\n const message = store.sym(chatDocument.uri + '#' + 'Msg' + timestamp)\n // const content = store.literal(text)\n\n const me = authn.currentUser() // If already logged on\n\n if (oldMsg) { // edit message replaces old one\n sts.push($rdf.st(mostRecentVersion(oldMsg), ns.dct('isReplacedBy'), message, chatDocument))\n if (deleteIt) {\n sts.push($rdf.st(message, ns.schema('dateDeleted'), dateStamp, chatDocument))\n }\n } else { // link new message to channel\n sts.push($rdf.st(this.channel, ns.wf('message'), message, chatDocument))\n }\n sts.push(\n $rdf.st(message, ns.sioc('content'), store.literal(text), chatDocument)\n )\n sts.push(\n $rdf.st(message, ns.dct('created'), dateStamp, chatDocument)\n )\n if (me) {\n sts.push($rdf.st(message, ns.foaf('maker'), me, chatDocument))\n }\n try {\n await store.updater.update([], sts)\n } catch (err) {\n const msg = 'Error saving chat message: ' + err\n debug.warn(msg)\n alert(msg)\n throw new Error(msg)\n }\n return message\n }\n\n /* Mark a message as deleted\n * Wee add a new version of the message,m witha deletion flag (deletion date)\n * so that the deletion can be revoked by adding another non-deleted update\n */\n async deleteMessage (message) {\n return this.updateMessage('(message deleted)', message, true)\n }\n} // class ChatChannel\n\nexport function originalVersion (message) {\n let msg = message\n while (msg) {\n message = msg\n msg = store.any(null, ns.dct('isReplacedBy'), message, message.doc())\n }\n return message\n}\n\nexport function mostRecentVersion (message) {\n let msg = message\n while (msg) {\n message = msg\n msg = store.any(message, ns.dct('isReplacedBy'), null, message.doc())\n }\n return message\n}\n\nexport function isDeleted (message) {\n return store.holds(message, ns.schema('dateDeleted'), null, message.doc())\n}\n\nexport function isReplaced (message) {\n return store.holds(message, ns.dct('isReplacedBy'), null, message.doc())\n}\n\nexport function isHidden (message) {\n return this.isDeleted(message) || this.isReplaced(message)\n}\n\n// A Nickname for a person\n\nexport function nick (person) {\n const s = store.any(person, ns.foaf('nick'))\n if (s) return '' + s.value\n return '' + utils.label(person)\n}\n\nexport async function _createIfNotExists (doc, contentType = 'text/turtle', data = '') {\n let response\n try {\n response = await store.fetcher.load(doc)\n } catch (err) {\n if (err.response.status === 404) {\n debug.log(\n 'createIfNotExists: doc does NOT exist, will create... ' + doc\n )\n try {\n response = await store.fetcher.webOperation('PUT', doc.uri, {\n data,\n contentType\n })\n } catch (err) {\n debug.log('createIfNotExists doc FAILED: ' + doc + ': ' + err)\n throw err\n }\n delete store.fetcher.requested[doc.uri] // delete cached 404 error\n // debug.log('createIfNotExists doc created ok ' + doc)\n return response\n } else {\n debug.log(\n 'createIfNotExists doc load error NOT 404: ' + doc + ': ' + err\n )\n throw err\n }\n }\n // debug.log('createIfNotExists: doc exists, all good: ' + doc)\n return response\n}\n// ends\n"],"file":"chatLogic.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/chat/chatLogic.js"],"names":["ChatChannel","channel","options","channelRoot","doc","dateFolder","DateFolder","div","text","updateMessage","oldMsg","deleteIt","sts","now","Date","timestamp","getTime","dateStamp","$rdf","term","chatDocument","leafDocumentFromDate","message","store","sym","uri","me","authn","currentUser","push","st","mostRecentVersion","ns","dct","schema","wf","sioc","literal","foaf","updater","update","msg","debug","warn","alert","Error","originalVersion","any","isDeleted","holds","isReplaced","isHidden","nick","person","s","value","utils","label","_createIfNotExists","contentType","data","fetcher","load","response","status","log","webOperation","requested"],"mappings":"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","sourcesContent":["/**\n * Contains the [[ChatChannel]] class and logic for Solid Chat\n * @packageDocumentation\n */\n\nimport * as debug from '../debug'\nimport { DateFolder } from './dateFolder'\nimport { store, authn } from 'solid-logic'\nimport * as ns from '../ns'\nimport * as $rdf from 'rdflib' // pull in first avoid cross-refs\nimport * as utils from '../utils'\n\n/* The Solid logic for a 'LongChat'\n*/\n/**\n * Common code for a chat (discussion area of messages about something)\n * This version runs over a series of files for different time periods\n *\n * Parameters for the whole chat like its title are stored on\n * index.ttl#this and the chats messages are stored in YYYY/MM/DD/chat.ttl\n *\n */\n\nexport class ChatChannel {\n constructor (channel, options) {\n this.channel = channel\n this.channelRoot = channel.doc()\n this.options = options\n this.dateFolder = new DateFolder(this.channelRoot, 'chat.ttl')\n this.div = null // : HTMLElement\n }\n\n /* Store a new message in the web,\n */\n async createMessage (text) {\n return this.updateMessage(text)\n }\n\n /* Store a new message in the web,\n as a replacement for an existing one.\n The old one iis left, and the two are linked\n */\n async updateMessage (text, oldMsg = null, deleteIt) {\n const sts = []\n const now = new Date()\n const timestamp = '' + now.getTime()\n const dateStamp = $rdf.term(now)\n const chatDocument = oldMsg ? oldMsg.doc() : this.dateFolder.leafDocumentFromDate(now)\n const message = store.sym(chatDocument.uri + '#' + 'Msg' + timestamp)\n // const content = store.literal(text)\n\n const me = authn.currentUser() // If already logged on\n\n if (oldMsg) { // edit message replaces old one\n sts.push($rdf.st(mostRecentVersion(oldMsg), ns.dct('isReplacedBy'), message, chatDocument))\n if (deleteIt) {\n sts.push($rdf.st(message, ns.schema('dateDeleted'), dateStamp, chatDocument))\n }\n } else { // link new message to channel\n sts.push($rdf.st(this.channel, ns.wf('message'), message, chatDocument))\n }\n sts.push(\n $rdf.st(message, ns.sioc('content'), store.literal(text), chatDocument)\n )\n sts.push(\n $rdf.st(message, ns.dct('created'), dateStamp, chatDocument)\n )\n if (me) {\n sts.push($rdf.st(message, ns.foaf('maker'), me, chatDocument))\n }\n try {\n await store.updater.update([], sts)\n } catch (err) {\n const msg = 'Error saving chat message: ' + err\n debug.warn(msg)\n alert(msg)\n throw new Error(msg)\n }\n return message\n }\n\n /* Mark a message as deleted\n * Wee add a new version of the message,m witha deletion flag (deletion date)\n * so that the deletion can be revoked by adding another non-deleted update\n */\n async deleteMessage (message) {\n return this.updateMessage('(message deleted)', message, true)\n }\n} // class ChatChannel\n\nexport function originalVersion (message) {\n let msg = message\n while (msg) {\n message = msg\n msg = store.any(null, ns.dct('isReplacedBy'), message, message.doc())\n }\n return message\n}\n\nexport function mostRecentVersion (message) {\n let msg = message\n while (msg) {\n message = msg\n msg = store.any(message, ns.dct('isReplacedBy'), null, message.doc())\n }\n return message\n}\n\nexport function isDeleted (message) {\n return store.holds(message, ns.schema('dateDeleted'), null, message.doc())\n}\n\nexport function isReplaced (message) {\n return store.holds(message, ns.dct('isReplacedBy'), null, message.doc())\n}\n\nexport function isHidden (message) {\n return this.isDeleted(message) || this.isReplaced(message)\n}\n\n// A Nickname for a person\n\nexport function nick (person) {\n const s = store.any(person, ns.foaf('nick'))\n if (s) return '' + s.value\n return '' + utils.label(person)\n}\n\nexport async function _createIfNotExists (doc, contentType = 'text/turtle', data = '') {\n let response\n try {\n response = await store.fetcher.load(doc)\n } catch (err) {\n if (err.response.status === 404) {\n debug.log(\n 'createIfNotExists: doc does NOT exist, will create... ' + doc\n )\n try {\n response = await store.fetcher.webOperation('PUT', doc.uri, {\n data,\n contentType\n })\n } catch (err) {\n debug.log('createIfNotExists doc FAILED: ' + doc + ': ' + err)\n throw err\n }\n delete store.fetcher.requested[doc.uri] // delete cached 404 error\n // debug.log('createIfNotExists doc created ok ' + doc)\n return response\n } else {\n debug.log(\n 'createIfNotExists doc load error NOT 404: ' + doc + ': ' + err\n )\n throw err\n }\n }\n // debug.log('createIfNotExists: doc exists, all good: ' + doc)\n return response\n}\n// ends\n"],"file":"chatLogic.js"}
|
package/lib/chat/dateFolder.js
CHANGED
|
@@ -19,7 +19,7 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
|
|
|
19
19
|
|
|
20
20
|
var debug = _interopRequireWildcard(require("../debug"));
|
|
21
21
|
|
|
22
|
-
var
|
|
22
|
+
var _solidLogic = require("solid-logic");
|
|
23
23
|
|
|
24
24
|
var ns = _interopRequireWildcard(require("../ns"));
|
|
25
25
|
|
|
@@ -62,7 +62,7 @@ var DateFolder = /*#__PURE__*/function () {
|
|
|
62
62
|
var path = isoDate.split('T')[0].replace(/-/g, '/'); // Like "2018/05/07"
|
|
63
63
|
|
|
64
64
|
path = this.root.dir().uri + path + '/' + this.leafFileName;
|
|
65
|
-
return
|
|
65
|
+
return _solidLogic.store.sym(path);
|
|
66
66
|
}
|
|
67
67
|
/* Generate a date object from the leaf file name
|
|
68
68
|
*/
|
|
@@ -124,12 +124,12 @@ var DateFolder = /*#__PURE__*/function () {
|
|
|
124
124
|
}
|
|
125
125
|
|
|
126
126
|
_folder = siblings.pop();
|
|
127
|
-
leafDocument =
|
|
127
|
+
leafDocument = _solidLogic.store.sym(_folder.uri + thisDateFolder.leafFileName);
|
|
128
128
|
_context.next = 10;
|
|
129
|
-
return
|
|
129
|
+
return _solidLogic.store.fetcher.load(leafDocument);
|
|
130
130
|
|
|
131
131
|
case 10:
|
|
132
|
-
if (!(
|
|
132
|
+
if (!(_solidLogic.store.statementsMatching(null, ns.dct('created'), null, leafDocument).length > 0)) {
|
|
133
133
|
_context.next = 12;
|
|
134
134
|
break;
|
|
135
135
|
}
|
|
@@ -173,10 +173,10 @@ var DateFolder = /*#__PURE__*/function () {
|
|
|
173
173
|
// debug.log(' previousPeriod level' + level + ' file ' + file)
|
|
174
174
|
parent = file.dir();
|
|
175
175
|
_context2.next = 7;
|
|
176
|
-
return
|
|
176
|
+
return _solidLogic.store.fetcher.load(parent);
|
|
177
177
|
|
|
178
178
|
case 7:
|
|
179
|
-
siblings =
|
|
179
|
+
siblings = _solidLogic.store.each(parent, ns.ldp('contains'));
|
|
180
180
|
siblings = siblings.filter(younger);
|
|
181
181
|
_context2.next = 11;
|
|
182
182
|
return lastNonEmpty(siblings);
|
|
@@ -215,10 +215,10 @@ var DateFolder = /*#__PURE__*/function () {
|
|
|
215
215
|
|
|
216
216
|
case 21:
|
|
217
217
|
_context2.next = 23;
|
|
218
|
-
return
|
|
218
|
+
return _solidLogic.store.fetcher.load(uncle);
|
|
219
219
|
|
|
220
220
|
case 23:
|
|
221
|
-
cousins =
|
|
221
|
+
cousins = _solidLogic.store.each(uncle, ns.ldp('contains'));
|
|
222
222
|
_context2.next = 26;
|
|
223
223
|
return lastNonEmpty(cousins);
|
|
224
224
|
|
|
@@ -254,7 +254,7 @@ var DateFolder = /*#__PURE__*/function () {
|
|
|
254
254
|
break;
|
|
255
255
|
}
|
|
256
256
|
|
|
257
|
-
doc =
|
|
257
|
+
doc = _solidLogic.store.sym(found.uri + this.leafFileName);
|
|
258
258
|
return _context3.abrupt("return", this.dateFromLeafDocument(doc));
|
|
259
259
|
|
|
260
260
|
case 10:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/chat/dateFolder.js"],"names":["DateFolder","rootThing","leafFileName","membershipProperty","root","rootFolder","dir","ns","wf","date","isoDate","toISOString","path","split","replace","uri","store","sym","doc","head","length","str","slice","Date","debug","log","backwards","previousPeriod","file","level","younger","suitable","lastNonEmpty","siblings","filter","sort","reverse","pop","folder","leafDocument","thisDateFolder","fetcher","load","statementsMatching","dct","x","tail","includes","parent","each","ldp","uncle","cousins","result","leafDocumentFromDate","found","dateFromLeafDocument","earliestSubfolder","folderFetcher","requested","force","kids","folderStore","Error","$rdf","graph","Fetcher","y","month","d","leafObjects","msg","trace","sortMe","map","leafObject","any"],"mappings":"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","sourcesContent":["/**\n * Contains the [[DateFolder]] class\n * This tracks data stored in dated folders and sub-folders\n *\n */\n\nimport * as debug from '../debug'\nimport { store } from '../logic'\n\nimport * as ns from '../ns'\nimport * as $rdf from 'rdflib' // pull in first avoid cross-refs\n\n/**\n * Track back through the YYYY/MM/DD tree to find the previous/next day\n */\nexport class DateFolder {\n constructor (rootThing, leafFileName, membershipProperty) {\n this.root = rootThing\n this.rootFolder = rootThing.dir()\n this.leafFileName = leafFileName || 'index.ttl' // typically chat.ttl\n this.membershipProperty = membershipProperty || ns.wf('leafObject')\n }\n\n /* Generate the leaf document (rdf object) from date\n * @returns: <NamedNode> - document\n */\n leafDocumentFromDate (date) {\n // debug.log('incoming date: ' + date)\n const isoDate = date.toISOString() // Like \"2018-05-07T17:42:46.576Z\"\n let path = isoDate.split('T')[0].replace(/-/g, '/') // Like \"2018/05/07\"\n path = this.root.dir().uri + path + '/' + this.leafFileName\n return store.sym(path)\n }\n\n /* Generate a date object from the leaf file name\n */\n dateFromLeafDocument (doc) {\n const head = this.rootFolder.uri.length\n const str = doc.uri.slice(head, head + 10).replace(/\\//g, '-')\n // let date = new Date(str + 'Z') // GMT - but fails in FF - invalid format :-(\n const date = new Date(str) // not explicitly UTC but is assumed so in spec\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse\n debug.log('Date for ' + doc + ':' + date.toISOString())\n return date\n }\n\n async loadPrevious (date, backwards) {\n const thisDateFolder = this\n async function previousPeriod (file, level) {\n function younger (x) {\n if (backwards ? x.uri >= file.uri : x.uri <= file.uri) return false // later than we want or same -- looking for different\n return true\n }\n function suitable (x) {\n const tail = x.uri\n .slice(0, -1)\n .split('/')\n .slice(-1)[0]\n if (!'0123456789'.includes(tail[0])) return false // not numeric\n return true\n }\n\n async function lastNonEmpty (siblings) {\n siblings = siblings.filter(suitable)\n siblings.sort() // chronological order\n if (!backwards) siblings.reverse()\n if (level !== 3) return siblings.pop() // only length chck final leverl\n while (siblings.length) {\n const folder = siblings.pop()\n const leafDocument = store.sym(folder.uri + thisDateFolder.leafFileName)\n await store.fetcher.load(leafDocument)\n // files can have seealso links. skip ones with no leafObjects with a date\n if (\n store.statementsMatching(null, ns.dct('created'), null, leafDocument)\n .length > 0\n ) {\n return folder\n }\n }\n return null\n }\n // debug.log(' previousPeriod level' + level + ' file ' + file)\n const parent = file.dir()\n await store.fetcher.load(parent)\n let siblings = store.each(parent, ns.ldp('contains'))\n siblings = siblings.filter(younger)\n const folder = await lastNonEmpty(siblings)\n if (folder) return folder\n\n if (level === 0) return null // 3:day, 2:month, 1: year 0: no\n\n const uncle = await previousPeriod(parent, level - 1)\n if (!uncle) return null // reached first ever\n await store.fetcher.load(uncle)\n const cousins = store.each(uncle, ns.ldp('contains'))\n const result = await lastNonEmpty(cousins)\n return result\n } // previousPeriod\n\n const folder = this.leafDocumentFromDate(date).dir()\n const found = await previousPeriod(folder, 3)\n if (found) {\n const doc = store.sym(found.uri + this.leafFileName)\n return this.dateFromLeafDocument(doc)\n }\n return null\n } // loadPrevious\n\n async firstLeaf (backwards) {\n // backwards -> last leafObject\n const folderStore = $rdf.graph()\n const folderFetcher = new $rdf.Fetcher(folderStore)\n async function earliestSubfolder (parent) {\n function suitable (x) {\n const tail = x.uri\n .slice(0, -1)\n .split('/')\n .slice(-1)[0]\n if (!'0123456789'.includes(tail[0])) return false // not numeric\n return true\n }\n debug.log(' parent ' + parent)\n delete folderFetcher.requested[parent.uri]\n // try {\n await folderFetcher.load(parent, { force: true }) // Force fetch as will have changed\n // }catch (err) {\n // }\n\n let kids = folderStore.each(parent, ns.ldp('contains'))\n kids = kids.filter(suitable)\n if (kids.length === 0) {\n throw new Error(' @@@ No children to parent2 ' + parent)\n }\n\n kids.sort()\n if (backwards) kids.reverse()\n return kids[0]\n }\n const y = await earliestSubfolder(this.root.dir())\n const month = await earliestSubfolder(y)\n const d = await earliestSubfolder(month)\n const leafDocument = $rdf.sym(d.uri + 'chat.ttl')\n await folderFetcher.load(leafDocument)\n const leafObjects = folderStore.each(\n this.root,\n this.membershipProperty,\n null,\n leafDocument\n )\n if (leafObjects.length === 0) {\n const msg =\n ' INCONSISTENCY -- no chat leafObject in file ' + leafDocument\n debug.trace(msg)\n throw new Error(msg)\n }\n const sortMe = leafObjects.map(leafObject => [\n folderStore.any(leafObject, ns.dct('created')),\n leafObject\n ])\n sortMe.sort()\n if (backwards) sortMe.reverse()\n debug.log(\n (backwards ? 'Latest' : 'Earliest') + ' leafObject is ' + sortMe[0][1]\n )\n return sortMe[0][1]\n } // firstleafObject\n} // class\n"],"file":"dateFolder.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/chat/dateFolder.js"],"names":["DateFolder","rootThing","leafFileName","membershipProperty","root","rootFolder","dir","ns","wf","date","isoDate","toISOString","path","split","replace","uri","store","sym","doc","head","length","str","slice","Date","debug","log","backwards","previousPeriod","file","level","younger","suitable","lastNonEmpty","siblings","filter","sort","reverse","pop","folder","leafDocument","thisDateFolder","fetcher","load","statementsMatching","dct","x","tail","includes","parent","each","ldp","uncle","cousins","result","leafDocumentFromDate","found","dateFromLeafDocument","earliestSubfolder","folderFetcher","requested","force","kids","folderStore","Error","$rdf","graph","Fetcher","y","month","d","leafObjects","msg","trace","sortMe","map","leafObject","any"],"mappings":"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","sourcesContent":["/**\n * Contains the [[DateFolder]] class\n * This tracks data stored in dated folders and sub-folders\n *\n */\n\nimport * as debug from '../debug'\nimport { store } from 'solid-logic'\n\nimport * as ns from '../ns'\nimport * as $rdf from 'rdflib' // pull in first avoid cross-refs\n\n/**\n * Track back through the YYYY/MM/DD tree to find the previous/next day\n */\nexport class DateFolder {\n constructor (rootThing, leafFileName, membershipProperty) {\n this.root = rootThing\n this.rootFolder = rootThing.dir()\n this.leafFileName = leafFileName || 'index.ttl' // typically chat.ttl\n this.membershipProperty = membershipProperty || ns.wf('leafObject')\n }\n\n /* Generate the leaf document (rdf object) from date\n * @returns: <NamedNode> - document\n */\n leafDocumentFromDate (date) {\n // debug.log('incoming date: ' + date)\n const isoDate = date.toISOString() // Like \"2018-05-07T17:42:46.576Z\"\n let path = isoDate.split('T')[0].replace(/-/g, '/') // Like \"2018/05/07\"\n path = this.root.dir().uri + path + '/' + this.leafFileName\n return store.sym(path)\n }\n\n /* Generate a date object from the leaf file name\n */\n dateFromLeafDocument (doc) {\n const head = this.rootFolder.uri.length\n const str = doc.uri.slice(head, head + 10).replace(/\\//g, '-')\n // let date = new Date(str + 'Z') // GMT - but fails in FF - invalid format :-(\n const date = new Date(str) // not explicitly UTC but is assumed so in spec\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse\n debug.log('Date for ' + doc + ':' + date.toISOString())\n return date\n }\n\n async loadPrevious (date, backwards) {\n const thisDateFolder = this\n async function previousPeriod (file, level) {\n function younger (x) {\n if (backwards ? x.uri >= file.uri : x.uri <= file.uri) return false // later than we want or same -- looking for different\n return true\n }\n function suitable (x) {\n const tail = x.uri\n .slice(0, -1)\n .split('/')\n .slice(-1)[0]\n if (!'0123456789'.includes(tail[0])) return false // not numeric\n return true\n }\n\n async function lastNonEmpty (siblings) {\n siblings = siblings.filter(suitable)\n siblings.sort() // chronological order\n if (!backwards) siblings.reverse()\n if (level !== 3) return siblings.pop() // only length chck final leverl\n while (siblings.length) {\n const folder = siblings.pop()\n const leafDocument = store.sym(folder.uri + thisDateFolder.leafFileName)\n await store.fetcher.load(leafDocument)\n // files can have seealso links. skip ones with no leafObjects with a date\n if (\n store.statementsMatching(null, ns.dct('created'), null, leafDocument)\n .length > 0\n ) {\n return folder\n }\n }\n return null\n }\n // debug.log(' previousPeriod level' + level + ' file ' + file)\n const parent = file.dir()\n await store.fetcher.load(parent)\n let siblings = store.each(parent, ns.ldp('contains'))\n siblings = siblings.filter(younger)\n const folder = await lastNonEmpty(siblings)\n if (folder) return folder\n\n if (level === 0) return null // 3:day, 2:month, 1: year 0: no\n\n const uncle = await previousPeriod(parent, level - 1)\n if (!uncle) return null // reached first ever\n await store.fetcher.load(uncle)\n const cousins = store.each(uncle, ns.ldp('contains'))\n const result = await lastNonEmpty(cousins)\n return result\n } // previousPeriod\n\n const folder = this.leafDocumentFromDate(date).dir()\n const found = await previousPeriod(folder, 3)\n if (found) {\n const doc = store.sym(found.uri + this.leafFileName)\n return this.dateFromLeafDocument(doc)\n }\n return null\n } // loadPrevious\n\n async firstLeaf (backwards) {\n // backwards -> last leafObject\n const folderStore = $rdf.graph()\n const folderFetcher = new $rdf.Fetcher(folderStore)\n async function earliestSubfolder (parent) {\n function suitable (x) {\n const tail = x.uri\n .slice(0, -1)\n .split('/')\n .slice(-1)[0]\n if (!'0123456789'.includes(tail[0])) return false // not numeric\n return true\n }\n debug.log(' parent ' + parent)\n delete folderFetcher.requested[parent.uri]\n // try {\n await folderFetcher.load(parent, { force: true }) // Force fetch as will have changed\n // }catch (err) {\n // }\n\n let kids = folderStore.each(parent, ns.ldp('contains'))\n kids = kids.filter(suitable)\n if (kids.length === 0) {\n throw new Error(' @@@ No children to parent2 ' + parent)\n }\n\n kids.sort()\n if (backwards) kids.reverse()\n return kids[0]\n }\n const y = await earliestSubfolder(this.root.dir())\n const month = await earliestSubfolder(y)\n const d = await earliestSubfolder(month)\n const leafDocument = $rdf.sym(d.uri + 'chat.ttl')\n await folderFetcher.load(leafDocument)\n const leafObjects = folderStore.each(\n this.root,\n this.membershipProperty,\n null,\n leafDocument\n )\n if (leafObjects.length === 0) {\n const msg =\n ' INCONSISTENCY -- no chat leafObject in file ' + leafDocument\n debug.trace(msg)\n throw new Error(msg)\n }\n const sortMe = leafObjects.map(leafObject => [\n folderStore.any(leafObject, ns.dct('created')),\n leafObject\n ])\n sortMe.sort()\n if (backwards) sortMe.reverse()\n debug.log(\n (backwards ? 'Latest' : 'Earliest') + ' leafObject is ' + sortMe[0][1]\n )\n return sortMe[0][1]\n } // firstleafObject\n} // class\n"],"file":"dateFolder.js"}
|
package/lib/chat/infinite.js
CHANGED
|
@@ -15,22 +15,22 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
|
|
|
15
15
|
|
|
16
16
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
17
17
|
|
|
18
|
+
var $rdf = _interopRequireWildcard(require("rdflib"));
|
|
19
|
+
|
|
20
|
+
var _solidLogic = require("solid-logic");
|
|
21
|
+
|
|
18
22
|
var debug = _interopRequireWildcard(require("../debug"));
|
|
19
23
|
|
|
20
24
|
var _iconBase = require("../iconBase");
|
|
21
25
|
|
|
22
|
-
var _logic = require("../logic");
|
|
23
|
-
|
|
24
26
|
var ns = _interopRequireWildcard(require("../ns"));
|
|
25
27
|
|
|
28
|
+
var widgets = _interopRequireWildcard(require("../widgets"));
|
|
29
|
+
|
|
26
30
|
var _chatLogic = require("./chatLogic");
|
|
27
31
|
|
|
28
32
|
var _message = require("./message");
|
|
29
33
|
|
|
30
|
-
var $rdf = _interopRequireWildcard(require("rdflib"));
|
|
31
|
-
|
|
32
|
-
var widgets = _interopRequireWildcard(require("../widgets"));
|
|
33
|
-
|
|
34
34
|
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); }
|
|
35
35
|
|
|
36
36
|
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; }
|
|
@@ -39,14 +39,12 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
39
39
|
* Contains the [[infiniteMessageArea]] class
|
|
40
40
|
* @packageDocumentation
|
|
41
41
|
*/
|
|
42
|
-
// import { authn } from '../authn/index'
|
|
43
|
-
// import { media } from '../media/index'
|
|
44
|
-
// import * as pad from '../pad'
|
|
45
|
-
// import { DateFolder } from './dateFolder'
|
|
46
42
|
// import { findBookmarkDocument } from './bookmarks'
|
|
47
43
|
// pull in first avoid cross-refs
|
|
48
44
|
// import * as style from '../style'
|
|
49
45
|
// import * as utils from '../utils'
|
|
46
|
+
// import * as pad from '../pad'
|
|
47
|
+
// import { DateFolder } from './dateFolder'
|
|
50
48
|
// const UI = { authn, icons, ns, media, pad, $rdf, store, style, utils, widgets }
|
|
51
49
|
function desktopNotification(str) {
|
|
52
50
|
// Let's check if the browser supports notifications
|
|
@@ -379,7 +377,7 @@ function _infiniteMessageArea() {
|
|
|
379
377
|
}, _callee8);
|
|
380
378
|
})); // The short chat version the live update listening is done in the pane but we do it in the widget @@
|
|
381
379
|
|
|
382
|
-
|
|
380
|
+
_solidLogic.store.updater.addDownstreamChangeListener(chatDocument, div.refresh); // Live update
|
|
383
381
|
|
|
384
382
|
|
|
385
383
|
liveMessageTable = messageTable;
|
|
@@ -427,11 +425,11 @@ function _infiniteMessageArea() {
|
|
|
427
425
|
|
|
428
426
|
case 6:
|
|
429
427
|
// Adding a link in the document will ping listeners to add the new block too
|
|
430
|
-
if (!
|
|
428
|
+
if (!_solidLogic.store.holds(oldChatDocument, ns.rdfs('seeAlso'), newChatDocument, oldChatDocument)) {
|
|
431
429
|
sts = [$rdf.st(oldChatDocument, ns.rdfs('seeAlso'), newChatDocument, oldChatDocument)];
|
|
432
430
|
|
|
433
431
|
try {
|
|
434
|
-
|
|
432
|
+
_solidLogic.store.updater.update([], sts);
|
|
435
433
|
} catch (err) {
|
|
436
434
|
alert('Unable to link old chat file to new one:' + err);
|
|
437
435
|
}
|
|
@@ -713,7 +711,7 @@ function _infiniteMessageArea() {
|
|
|
713
711
|
}
|
|
714
712
|
}
|
|
715
713
|
|
|
716
|
-
var sts =
|
|
714
|
+
var sts = _solidLogic.store.statementsMatching(null, ns.wf('message'), null, chatDocument);
|
|
717
715
|
|
|
718
716
|
if (!live && sts.length === 0) {// not todays
|
|
719
717
|
// no need buttomns at the moment
|
|
@@ -740,7 +738,7 @@ function _infiniteMessageArea() {
|
|
|
740
738
|
chatDocument = dateFolder.leafDocumentFromDate(date);
|
|
741
739
|
_context6.prev = 2;
|
|
742
740
|
_context6.next = 5;
|
|
743
|
-
return
|
|
741
|
+
return _solidLogic.store.fetcher.load(chatDocument);
|
|
744
742
|
|
|
745
743
|
case 5:
|
|
746
744
|
_context6.next = 19;
|
|
@@ -896,7 +894,7 @@ function _infiniteMessageArea() {
|
|
|
896
894
|
}
|
|
897
895
|
}
|
|
898
896
|
|
|
899
|
-
var messages =
|
|
897
|
+
var messages = _solidLogic.store.statementsMatching(about, ns.wf('message'), null, messageTable.chatDocument).map(function (st) {
|
|
900
898
|
return st.object;
|
|
901
899
|
});
|
|
902
900
|
|