solid-ui 2.4.30-f0d40afb → 2.4.31-13dc2247
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 +6109 -2703
- 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/preferences.js +4 -0
- package/lib/preferences.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/package.json +5 -5
package/lib/chat/thread.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thread.js","names":["_iconBase","require","_solidLogic","_index","ns","_interopRequireWildcard","login","pad","$rdf","style","utils","widgets","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","UI","icons","media","thread","dom","kb","subject","messageStore","options","store","doc","WF","Namespace","DCT","newestFirst","messageBodyStyle","div","createElement","messageTable","me","updater","anchor","text","term","uri","setAttribute","addEventListener","openHrefInOutlineMode","textContent","mention","message","pre","appendChild","createTextNode","announce","log","warn","error","newMessageForm","form","lhs","middle","rhs","AJAR_date","sendMessage","field","disabled","_appendMsg","appendMsg","value","dateStamp","sts","sendComplete","success","body","errorMessageBlock","bindings","literal","renderMessage","update","sendButton","turnOnInput","creatorAndDate","innerHTML","rows","keyCode","altKey","button","iconBase","buttonStyle","context","ensureLoggedIn","then","fieldValue","oldMsg","arguments","length","undefined","now","Date","timestamp","getTime","sym","push","Statement","mostRecentVersion","wf","msgBody","concat","nick","sioc","foaf","person","s","any","label","td1","creator","date","nickAnchor","fetcher","nowOrWhenFetched","_ok","_body","syncMessages","about","displayed","ele","ele2","firstChild","nextSibling","AJAR_subject","messages","each","stored","forEach","m","addMessage","removeChild","msg","statementsMatching","_deleteMessage","_ref","_asyncToGenerator2","_regenerator","mark","_callee","deletions","wrap","_callee$","_context","prev","next","connectedStatements","sent","ok","stop","_x","apply","fresh","content","dateString","tr","done","insertBefore","shortDate","td2","td3","delButton","_event","cancelButton","sureButton","_appendMsg2","query","Query","v","vs","x","vars","variable","pat","add","dct","doneQuery","refresh"],"sources":["../../src/chat/thread.js"],"sourcesContent":["/**\n * Contains the [[thread]] function\n * @packageDocumentation\n */\n\nimport { icons } from '../iconBase'\nimport { store } from 'solid-logic'\nimport { media } from '../media/index'\nimport * as ns from '../ns'\nimport * as login from '../login/login'\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 = { icons, ns, media, pad, style, utils, widgets }\n\n/**\n * HTML component for a chat thread\n */\nexport function thread (dom, kb, subject, messageStore, options) {\n kb = kb || store\n messageStore = messageStore.doc() // No hash\n const ns = UI.ns\n const WF = $rdf.Namespace('http://www.w3.org/2005/01/wf/flow#')\n const DCT = $rdf.Namespace('http://purl.org/dc/terms/')\n\n options = options || {}\n\n const newestFirst = !!options.newestFirst\n\n const messageBodyStyle =\n 'white-space: pre-wrap; width: 90%; font-size:100%; border: 0.07em solid #eee; padding: .2em 0.5em; margin: 0.1em 1em 0.1em 1em;'\n // 'font-size: 100%; margin: 0.1em 1em 0.1em 1em; background-color: white; white-space: pre-wrap; padding: 0.1em;'\n\n const div = dom.createElement('div')\n // eslint-disable-next-line prefer-const\n let messageTable // Shared by initial build and addMessageFromBindings\n\n let me\n\n const updater = store.updater\n\n const anchor = function (text, term) {\n // If there is no link return an element anyway\n const a = dom.createElement('a')\n if (term && term.uri) {\n a.setAttribute('href', term.uri)\n a.addEventListener('click', UI.widgets.openHrefInOutlineMode, true)\n a.setAttribute('style', 'color: #3B5998; text-decoration: none; ') // font-weight: bold\n }\n a.textContent = text\n return a\n }\n\n const mention = function mention (message, style) {\n const pre = dom.createElement('pre')\n pre.setAttribute('style', style || 'color: grey')\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n return pre\n }\n\n const announce = {\n log: function (message) {\n mention(message, 'color: #111;')\n },\n warn: function (message) {\n mention(message, 'color: #880;')\n },\n error: function (message) {\n mention(message, 'color: #800;')\n }\n }\n\n /**\n * Form for a new message\n */\n const newMessageForm = function () {\n const form = dom.createElement('tr')\n const lhs = dom.createElement('td')\n const middle = dom.createElement('td')\n const rhs = dom.createElement('td')\n form.appendChild(lhs)\n form.appendChild(middle)\n form.appendChild(rhs)\n form.AJAR_date = '9999-01-01T00:00:00Z' // ISO format for field sort\n\n const sendMessage = function () {\n // titlefield.setAttribute('class','pendingedit')\n // titlefield.disabled = true\n field.setAttribute('class', 'pendingedit')\n field.disabled = true\n const { message, dateStamp, sts } = appendMsg(field.value)\n\n const sendComplete = function (uri, success, body) {\n if (!success) {\n form.appendChild(\n UI.widgets.errorMessageBlock(dom, 'Error writing message: ' + body)\n )\n } else {\n const bindings = {\n '?msg': message,\n '?content': store.literal(field.value),\n '?date': dateStamp,\n '?creator': me\n }\n renderMessage(bindings, false) // not green\n\n field.value = '' // clear from out for reuse\n field.setAttribute('class', '')\n field.disabled = false\n }\n }\n updater.update([], sts, sendComplete)\n }\n form.appendChild(dom.createElement('br'))\n\n let field, sendButton\n const turnOnInput = function () {\n creatorAndDate(lhs, me, '', null)\n\n field = dom.createElement('textarea')\n middle.innerHTML = ''\n middle.appendChild(field)\n field.rows = 3\n // field.cols = 40\n field.setAttribute('style', messageBodyStyle + 'background-color: #eef;')\n\n field.addEventListener(\n 'keyup',\n function (e) {\n // User preference?\n if (e.keyCode === 13) {\n if (!e.altKey) {\n // Alt-Enter just adds a new line\n sendMessage()\n }\n }\n },\n false\n )\n\n rhs.innerHTML = ''\n sendButton = UI.widgets.button(\n dom,\n UI.icons.iconBase + 'noun_383448.svg',\n 'Send'\n )\n sendButton.setAttribute('style', UI.style.buttonStyle + 'float: right;')\n sendButton.addEventListener('click', sendMessage, false)\n rhs.appendChild(sendButton)\n }\n\n const context = { div: middle, dom }\n login.ensureLoggedIn(context).then(context => {\n me = context.me\n turnOnInput()\n })\n\n return form\n }\n\n /* const sendMessage = function (oldMsg, options) { // alain\n // titlefield.setAttribute('class','pendingedit')\n // titlefield.disabled = true\n field.setAttribute('class', 'pendingedit')\n field.disabled = true\n const sts = []\n const now = new Date()\n const timestamp = '' + now.getTime()\n const dateStamp = $rdf.term(now)\n // http://www.w3schools.com/jsref/jsref_obj_date.asp\n const message = store.sym(messageStore.uri + '#' + 'Msg' + timestamp)\n\n if (options === 'edit' || options === 'delete') {\n sts.push(\n new $rdf.Statement(mostRecentVersion(oldMsg), DCT('isReplacedBy'), message, messageStore)\n )\n } else {\n sts.push(\n new $rdf.Statement(subject, ns.wf('message'), message, messageStore)\n )\n }\n // sts.push(new $rdf.Statement(message, ns.dc('title'), store.literal(titlefield.value), messageStore))\n const msgBody = options !== 'delete' ? field.value : `message deleted\\nby ${nick(me)}`\n sts.push(\n new $rdf.Statement(\n message,\n ns.sioc('content'),\n store.literal(msgBody),\n messageStore\n )\n )\n sts.push(\n new $rdf.Statement(message, DCT('created'), dateStamp, messageStore)\n )\n if (me) {\n sts.push(\n new $rdf.Statement(message, ns.foaf('maker'), me, messageStore)\n )\n }\n\n const sendComplete = function (uri, success, body) {\n if (!success) {\n form.appendChild(\n UI.widgets.errorMessageBlock(dom, 'Error writing message: ' + body)\n )\n } else {\n const bindings = {\n '?msg': message,\n '?content': store.literal(field.value),\n '?date': dateStamp,\n '?creator': me\n }\n renderMessage(bindings, false) // not green\n\n field.value = '' // clear from out for reuse\n field.setAttribute('class', '')\n field.disabled = false\n }\n }\n updater.update([], sts, sendComplete)\n } */\n\n const appendMsg = function (fieldValue, oldMsg = {}, options = '') { // alain\n const sts = []\n const now = new Date()\n const timestamp = '' + now.getTime()\n const dateStamp = $rdf.term(now)\n // http://www.w3schools.com/jsref/jsref_obj_date.asp\n const message = store.sym(messageStore.uri + '#' + 'Msg' + timestamp)\n\n if (options === 'edit' || options === 'delete') {\n sts.push(\n new $rdf.Statement(mostRecentVersion(oldMsg), DCT('isReplacedBy'), message, messageStore)\n )\n } else {\n sts.push(\n new $rdf.Statement(subject, ns.wf('message'), message, messageStore)\n )\n }\n // sts.push(new $rdf.Statement(message, ns.dc('title'), store.literal(titlefield.value), messageStore))\n const msgBody = options !== 'delete' ? fieldValue : `message deleted\\nby ${nick(me)}`\n sts.push(\n new $rdf.Statement(\n message,\n ns.sioc('content'),\n store.literal(msgBody),\n messageStore\n )\n )\n sts.push(\n new $rdf.Statement(message, DCT('created'), dateStamp, messageStore)\n )\n if (me) {\n sts.push(\n new $rdf.Statement(message, ns.foaf('maker'), me, messageStore)\n )\n }\n return { message, dateStamp, sts }\n }\n\n function nick (person) {\n const s = store.any(person, UI.ns.foaf('nick'))\n if (s) return '' + s.value\n return '' + utils.label(person)\n }\n\n function creatorAndDate (td1, creator, date, message) {\n const nickAnchor = td1.appendChild(anchor(nick(creator), creator))\n if (creator.uri) {\n store.fetcher.nowOrWhenFetched(creator.doc(), undefined, function (\n _ok,\n _body\n ) {\n nickAnchor.textContent = nick(creator)\n })\n }\n td1.appendChild(dom.createElement('br'))\n td1.appendChild(anchor(date, message))\n }\n\n // ///////////////////////////////////////////////////////////////////////\n\n function syncMessages (about, messageTable) {\n const displayed = {}\n let ele, ele2\n for (ele = messageTable.firstChild; ele; ele = ele.nextSibling) {\n if (ele.AJAR_subject) {\n displayed[ele.AJAR_subject.uri] = true\n }\n }\n const messages = store.each(about, ns.wf('message'))\n const stored = {}\n messages.forEach(function (m) {\n stored[m.uri] = true\n if (!displayed[m.uri]) {\n addMessage(m)\n }\n })\n\n // eslint-disable-next-line space-in-parens\n for (ele = messageTable.firstChild; ele; ) {\n ele2 = ele.nextSibling\n if (ele.AJAR_subject && !stored[ele.AJAR_subject.uri]) {\n messageTable.removeChild(ele)\n }\n ele = ele2\n }\n }\n\n const mostRecentVersion = function (message) {\n let msg = message\n // const listMsg = []\n while (msg) {\n // listMsg.push(msg)\n msg = store.statementsMatching(message, DCT('isReplacedBy'))\n }\n return msg\n }\n\n const _deleteMessage = async function (message) { // alain: must delete message and all linked with isReplacedBy\n // alain: check that me is not the author and ask for confirmation.\n const deletions = await store.connectedStatements(message, messageStore)\n updater.update(deletions, [], function (uri, ok, body) {\n if (!ok) {\n announce.error('Cant delete messages:' + body)\n } else {\n syncMessages(subject, messageTable)\n }\n })\n }\n\n const addMessage = function (message) {\n const bindings = {\n '?msg': message,\n '?creator': store.any(message, ns.foaf('maker')),\n '?date': store.any(message, DCT('created')),\n '?content': store.any(message, ns.sioc('content'))\n }\n renderMessage(bindings, true) // fresh from elsewhere\n }\n\n const renderMessage = function (bindings, fresh) {\n const creator = bindings['?creator']\n const message = bindings['?msg']\n const date = bindings['?date']\n const content = bindings['?content']\n\n const dateString = date.value\n const tr = dom.createElement('tr')\n tr.AJAR_date = dateString\n tr.AJAR_subject = message\n\n let done = false\n for (let ele = messageTable.firstChild; ; ele = ele.nextSibling) {\n if (!ele) {\n // empty\n break\n }\n if (\n (dateString > ele.AJAR_date && newestFirst) ||\n (dateString < ele.AJAR_date && !newestFirst)\n ) {\n messageTable.insertBefore(tr, ele)\n done = true\n break\n }\n }\n if (!done) {\n messageTable.appendChild(tr)\n }\n\n const td1 = dom.createElement('td')\n tr.appendChild(td1)\n creatorAndDate(td1, creator, UI.widgets.shortDate(dateString), message)\n\n const td2 = dom.createElement('td')\n tr.appendChild(td2)\n const pre = dom.createElement('p')\n pre.setAttribute(\n 'style',\n messageBodyStyle +\n (fresh ? 'background-color: #e8ffe8;' : 'background-color: #white;')\n )\n td2.appendChild(pre)\n pre.textContent = content.value\n\n const td3 = dom.createElement('td')\n tr.appendChild(td3)\n\n const delButton = dom.createElement('button')\n td3.appendChild(delButton)\n delButton.textContent = '-'\n\n tr.setAttribute('class', 'hoverControl') // See tabbedtab.css (sigh global CSS)\n delButton.setAttribute('class', 'hoverControlHide')\n delButton.setAttribute('style', 'color: red;')\n delButton.addEventListener(\n 'click',\n function (_event) {\n td3.removeChild(delButton) // Ask -- are you sure?\n const cancelButton = dom.createElement('button')\n cancelButton.textContent = 'cancel'\n td3.appendChild(cancelButton).addEventListener(\n 'click',\n function (_event) {\n td3.removeChild(sureButton)\n td3.removeChild(cancelButton)\n td3.appendChild(delButton)\n },\n false\n )\n const sureButton = dom.createElement('button')\n sureButton.textContent = 'Delete message'\n td3.appendChild(sureButton).addEventListener(\n 'click',\n function (_event) { // alain test for delete or edit depending on me = maker\n td3.removeChild(sureButton)\n td3.removeChild(cancelButton)\n // deleteMessage(message) // alain or sendMessage(message, 'delete' or 'edit') //alain\n if (me.value === store.any(message, ns.foaf('maker')).value) {\n const { sts } = appendMsg() // alain\n updater.update([], sts)\n }\n },\n false\n )\n },\n false\n )\n }\n\n // Messages with date, author etc\n\n messageTable = dom.createElement('table')\n messageTable.fresh = false\n div.appendChild(messageTable)\n messageTable.setAttribute('style', 'width: 100%;') // fill that div!\n\n const tr = newMessageForm()\n if (newestFirst) {\n messageTable.insertBefore(tr, messageTable.firstChild) // If newestFirst\n } else {\n messageTable.appendChild(tr) // not newestFirst\n }\n\n let query\n // Do this with a live query to pull in messages from web\n if (options.query) {\n query = options.query\n } else {\n query = new $rdf.Query('Messages')\n const v = {} // semicolon needed\n const vs = ['msg', 'date', 'creator', 'content']\n vs.forEach(function (x) {\n query.vars.push((v[x] = $rdf.variable(x)))\n })\n query.pat.add(subject, WF('message'), v.msg)\n query.pat.add(v.msg, ns.dct('created'), v.date)\n query.pat.add(v.msg, ns.foaf('maker'), v.creator)\n query.pat.add(v.msg, ns.sioc('content'), v.content)\n }\n\n function doneQuery () {\n messageTable.fresh = true // any new are fresh and so will be greenish\n }\n store.query(query, renderMessage, undefined, doneQuery)\n div.refresh = function () {\n syncMessages(subject, messageTable)\n }\n // syncMessages(subject, messageTable) // no the query will do this async\n return div\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"thread.js","names":["_iconBase","require","_solidLogic","_index","ns","_interopRequireWildcard","login","pad","$rdf","style","utils","widgets","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","UI","icons","media","thread","dom","kb","subject","messageStore","options","store","doc","WF","Namespace","DCT","newestFirst","messageBodyStyle","div","createElement","messageTable","me","updater","anchor","text","term","uri","setAttribute","addEventListener","openHrefInOutlineMode","textContent","mention","message","pre","appendChild","createTextNode","announce","log","warn","error","newMessageForm","form","lhs","middle","rhs","AJAR_date","sendMessage","_ref","_asyncToGenerator2","_regenerator","mark","_callee2","_yield$appendMsg","dateStamp","sts","sendComplete","wrap","_callee2$","_context2","prev","next","field","disabled","appendMsg","value","sent","_ref2","_callee","success","body","bindings","_callee$","_context","errorMessageBlock","literal","renderMessage","stop","_x","_x2","_x3","apply","arguments","updateMany","sendButton","turnOnInput","creatorAndDate","innerHTML","rows","_ref3","_callee3","_callee3$","_context3","keyCode","altKey","_x4","button","iconBase","buttonStyle","context","ensureLoggedIn","then","_ref4","fieldValue","oldMsg","length","undefined","_callee4","now","timestamp","msgBody","_callee4$","_context4","Date","getTime","sym","t0","t1","Statement","mostRecentVersion","t2","t3","t4","t5","t6","push","wf","concat","nick","sioc","foaf","abrupt","_x5","person","s","any","label","td1","creator","date","nickAnchor","fetcher","nowOrWhenFetched","_ok","_body","syncMessages","about","displayed","ele","ele2","firstChild","nextSibling","AJAR_subject","messages","each","stored","forEach","m","addMessage","removeChild","msg","statementsMatching","_deleteMessage","_ref5","_callee5","deletions","_callee5$","_context5","connectedStatements","ok","_x6","_ref6","_callee6","_callee6$","_context6","_x7","_ref7","_callee9","fresh","content","dateString","tr","done","td2","td3","delButton","_callee9$","_context9","insertBefore","shortDate","_ref8","_callee8","_event","cancelButton","sureButton","_callee8$","_context8","_ref9","_callee7","_yield$appendMsg2","_callee7$","_context7","_x11","_x10","_x8","_x9","query","Query","v","vs","x","vars","variable","pat","add","dct","doneQuery","refresh"],"sources":["../../src/chat/thread.js"],"sourcesContent":["/**\n * Contains the [[thread]] function\n * @packageDocumentation\n */\n\nimport { icons } from '../iconBase'\nimport { store } from 'solid-logic'\nimport { media } from '../media/index'\nimport * as ns from '../ns'\nimport * as login from '../login/login'\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 = { icons, ns, media, pad, style, utils, widgets }\n\n/**\n * HTML component for a chat thread\n */\nexport function thread (dom, kb, subject, messageStore, options) {\n kb = kb || store\n messageStore = messageStore.doc() // No hash\n const ns = UI.ns\n const WF = $rdf.Namespace('http://www.w3.org/2005/01/wf/flow#')\n const DCT = $rdf.Namespace('http://purl.org/dc/terms/')\n\n options = options || {}\n\n const newestFirst = !!options.newestFirst\n\n const messageBodyStyle =\n 'white-space: pre-wrap; width: 90%; font-size:100%; border: 0.07em solid #eee; padding: .2em 0.5em; margin: 0.1em 1em 0.1em 1em;'\n // 'font-size: 100%; margin: 0.1em 1em 0.1em 1em; background-color: white; white-space: pre-wrap; padding: 0.1em;'\n\n const div = dom.createElement('div')\n // eslint-disable-next-line prefer-const\n let messageTable\n\n let me\n\n const updater = store.updater\n\n const anchor = function (text, term) {\n // If there is no link return an element anyway\n const a = dom.createElement('a')\n if (term && term.uri) {\n a.setAttribute('href', term.uri)\n a.addEventListener('click', UI.widgets.openHrefInOutlineMode, true)\n a.setAttribute('style', 'color: #3B5998; text-decoration: none; ') // font-weight: bold\n }\n a.textContent = text\n return a\n }\n\n const mention = function mention (message, style) {\n const pre = dom.createElement('pre')\n pre.setAttribute('style', style || 'color: grey')\n div.appendChild(pre)\n pre.appendChild(dom.createTextNode(message))\n return pre\n }\n\n const announce = {\n log: function (message) {\n mention(message, 'color: #111;')\n },\n warn: function (message) {\n mention(message, 'color: #880;')\n },\n error: function (message) {\n mention(message, 'color: #800;')\n }\n }\n\n /**\n * Form for a new message\n */\n const newMessageForm = function () {\n const form = dom.createElement('tr')\n const lhs = dom.createElement('td')\n const middle = dom.createElement('td')\n const rhs = dom.createElement('td')\n form.appendChild(lhs)\n form.appendChild(middle)\n form.appendChild(rhs)\n form.AJAR_date = '9999-01-01T00:00:00Z' // ISO format for field sort\n\n const sendMessage = async function () {\n // titlefield.setAttribute('class','pendingedit')\n // titlefield.disabled = true\n field.setAttribute('class', 'pendingedit')\n field.disabled = true\n const { message, dateStamp, sts } = await appendMsg(field.value)\n\n const sendComplete = async function (uri, success, body) {\n if (!success) {\n form.appendChild(\n UI.widgets.errorMessageBlock(dom, 'Error writing message: ' + body)\n )\n } else {\n const bindings = {\n '?msg': message,\n '?content': store.literal(field.value),\n '?date': dateStamp,\n '?creator': me\n }\n renderMessage(bindings, false) // not green\n\n field.value = '' // clear from out for reuse\n field.setAttribute('class', '')\n field.disabled = false\n }\n }\n await updater.updateMany([], sts, sendComplete)\n }\n form.appendChild(dom.createElement('br'))\n\n let field, sendButton\n const turnOnInput = function () {\n creatorAndDate(lhs, me, '', null)\n\n field = dom.createElement('textarea')\n middle.innerHTML = ''\n middle.appendChild(field)\n field.rows = 3\n // field.cols = 40\n field.setAttribute('style', messageBodyStyle + 'background-color: #eef;')\n\n field.addEventListener(\n 'keyup',\n async function (e) {\n // User preference?\n if (e.keyCode === 13) {\n if (!e.altKey) {\n // Alt-Enter just adds a new line\n await sendMessage()\n }\n }\n },\n false\n )\n\n rhs.innerHTML = ''\n sendButton = UI.widgets.button(\n dom,\n UI.icons.iconBase + 'noun_383448.svg',\n 'Send'\n )\n sendButton.setAttribute('style', UI.style.buttonStyle + 'float: right;')\n sendButton.addEventListener('click', sendMessage, false)\n rhs.appendChild(sendButton)\n }\n\n const context = { div: middle, dom }\n login.ensureLoggedIn(context).then(context => {\n me = context.me\n turnOnInput()\n })\n\n return form\n }\n\n const appendMsg = async function (fieldValue, oldMsg = {}, options = '') { // alain\n const sts = []\n const now = new Date()\n const timestamp = '' + now.getTime()\n const dateStamp = $rdf.term(now)\n // http://www.w3schools.com/jsref/jsref_obj_date.asp\n const message = store.sym(messageStore.uri + '#' + 'Msg' + timestamp)\n\n if (options === 'edit' || options === 'delete') {\n sts.push(\n new $rdf.Statement(await mostRecentVersion(oldMsg), DCT('isReplacedBy'), message, messageStore)\n )\n } else {\n sts.push(\n new $rdf.Statement(subject, ns.wf('message'), message, messageStore)\n )\n }\n // sts.push(new $rdf.Statement(message, ns.dc('title'), store.literal(titlefield.value), messageStore))\n const msgBody = options !== 'delete' ? fieldValue : `message deleted\\nby ${nick(me)}`\n sts.push(\n new $rdf.Statement(\n message,\n ns.sioc('content'),\n store.literal(msgBody),\n messageStore\n )\n )\n sts.push(\n new $rdf.Statement(message, DCT('created'), dateStamp, messageStore)\n )\n if (me) {\n sts.push(\n new $rdf.Statement(message, ns.foaf('maker'), me, messageStore)\n )\n }\n return { message, dateStamp, sts }\n }\n\n function nick (person) {\n const s = store.any(person, UI.ns.foaf('nick'))\n if (s) return '' + s.value\n return '' + utils.label(person)\n }\n\n function creatorAndDate (td1, creator, date, message) {\n const nickAnchor = td1.appendChild(anchor(nick(creator), creator))\n if (creator.uri) {\n store.fetcher.nowOrWhenFetched(creator.doc(), undefined, function (\n _ok,\n _body\n ) {\n nickAnchor.textContent = nick(creator)\n })\n }\n td1.appendChild(dom.createElement('br'))\n td1.appendChild(anchor(date, message))\n }\n\n // ///////////////////////////////////////////////////////////////////////\n\n function syncMessages (about, messageTable) {\n const displayed = {}\n let ele, ele2\n for (ele = messageTable.firstChild; ele; ele = ele.nextSibling) {\n if (ele.AJAR_subject) {\n displayed[ele.AJAR_subject.uri] = true\n }\n }\n const messages = store.each(about, ns.wf('message'))\n const stored = {}\n messages.forEach(function (m) {\n stored[m.uri] = true\n if (!displayed[m.uri]) {\n addMessage(m)\n }\n })\n\n // eslint-disable-next-line space-in-parens\n for (ele = messageTable.firstChild; ele; ) {\n ele2 = ele.nextSibling\n if (ele.AJAR_subject && !stored[ele.AJAR_subject.uri]) {\n messageTable.removeChild(ele)\n }\n ele = ele2\n }\n }\n\n const mostRecentVersion = function (message) {\n let msg = message\n // const listMsg = []\n while (msg) {\n message = msg\n // listMsg.push(msg)\n msg = store.statementsMatching(message, DCT('isReplacedBy'))\n }\n return message\n }\n\n const _deleteMessage = async function (message) { // alain: must delete message and all linked with isReplacedBy\n // alain: check that me is not the author and ask for confirmation.\n const deletions = await store.connectedStatements(message, messageStore)\n await updater.updateMany(deletions, [], function (uri, ok, body) {\n if (!ok) {\n announce.error('Cant delete messages:' + body)\n } else {\n syncMessages(subject, messageTable)\n }\n })\n }\n\n const addMessage = async function (message) {\n const bindings = {\n '?msg': message,\n '?creator': store.any(message, ns.foaf('maker')),\n '?date': store.any(message, DCT('created')),\n '?content': store.any(message, ns.sioc('content'))\n }\n await renderMessage(bindings, true) // fresh from elsewhere\n }\n\n const renderMessage = async function (bindings, fresh) {\n const creator = bindings['?creator']\n const message = bindings['?msg']\n const date = bindings['?date']\n const content = bindings['?content']\n\n const dateString = date.value\n const tr = dom.createElement('tr')\n tr.AJAR_date = dateString\n tr.AJAR_subject = message\n\n let done = false\n for (let ele = messageTable.firstChild; ; ele = ele.nextSibling) {\n if (!ele) {\n // empty\n break\n }\n if (\n (dateString > ele.AJAR_date && newestFirst) ||\n (dateString < ele.AJAR_date && !newestFirst)\n ) {\n messageTable.insertBefore(tr, ele)\n done = true\n break\n }\n }\n if (!done) {\n messageTable.appendChild(tr)\n }\n\n const td1 = dom.createElement('td')\n tr.appendChild(td1)\n creatorAndDate(td1, creator, UI.widgets.shortDate(dateString), message)\n\n const td2 = dom.createElement('td')\n tr.appendChild(td2)\n const pre = dom.createElement('p')\n pre.setAttribute(\n 'style',\n messageBodyStyle +\n (fresh ? 'background-color: #e8ffe8;' : 'background-color: #white;')\n )\n td2.appendChild(pre)\n pre.textContent = content.value\n\n const td3 = dom.createElement('td')\n tr.appendChild(td3)\n\n const delButton = dom.createElement('button')\n td3.appendChild(delButton)\n delButton.textContent = '-'\n\n tr.setAttribute('class', 'hoverControl') // See tabbedtab.css (sigh global CSS)\n delButton.setAttribute('class', 'hoverControlHide')\n delButton.setAttribute('style', 'color: red;')\n delButton.addEventListener(\n 'click',\n async function (_event) {\n td3.removeChild(delButton) // Ask -- are you sure?\n const cancelButton = dom.createElement('button')\n cancelButton.textContent = 'cancel'\n td3.appendChild(cancelButton).addEventListener(\n 'click',\n function (_event) {\n td3.removeChild(sureButton)\n td3.removeChild(cancelButton)\n td3.appendChild(delButton)\n },\n false\n )\n const sureButton = dom.createElement('button')\n sureButton.textContent = 'Delete message'\n td3.appendChild(sureButton).addEventListener(\n 'click',\n async function (_event) { // alain: test for delete or edit depending on me = maker\n td3.removeChild(sureButton)\n td3.removeChild(cancelButton)\n // deleteMessage(message) // alain or sendMessage(message, 'delete' or 'edit') //alain\n if (me.value === store.any(message, ns.foaf('maker')).value) {\n const { sts } = await appendMsg() // alain\n await updater.updateMany([], sts) // alain\n }\n },\n false\n )\n },\n false\n )\n }\n\n // Messages with date, author etc\n\n messageTable = dom.createElement('table')\n messageTable.fresh = false\n div.appendChild(messageTable)\n messageTable.setAttribute('style', 'width: 100%;') // fill that div!\n\n const tr = newMessageForm()\n if (newestFirst) {\n messageTable.insertBefore(tr, messageTable.firstChild) // If newestFirst\n } else {\n messageTable.appendChild(tr) // not newestFirst\n }\n\n let query\n // Do this with a live query to pull in messages from web\n if (options.query) {\n query = options.query\n } else {\n query = new $rdf.Query('Messages')\n const v = {} // semicolon needed\n const vs = ['msg', 'date', 'creator', 'content']\n vs.forEach(function (x) {\n query.vars.push((v[x] = $rdf.variable(x)))\n })\n query.pat.add(subject, WF('message'), v.msg)\n query.pat.add(v.msg, ns.dct('created'), v.date)\n query.pat.add(v.msg, ns.foaf('maker'), v.creator)\n query.pat.add(v.msg, ns.sioc('content'), v.content)\n }\n\n function doneQuery () {\n messageTable.fresh = true // any new are fresh and so will be greenish\n }\n store.query(query, renderMessage, undefined, doneQuery)\n div.refresh = function () {\n syncMessages(subject, messageTable)\n }\n // syncMessages(subject, messageTable) // no the query will do this async\n return div\n}\n"],"mappings":"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"}
|
package/lib/preferences.js
CHANGED
|
@@ -58,6 +58,10 @@ function recordSharedPreferences(subject, context) {
|
|
|
58
58
|
return new Promise(function (resolve, reject) {
|
|
59
59
|
var sharedPreferences = kb.any(subject, ns.ui('sharedPreferences'));
|
|
60
60
|
if (!sharedPreferences) {
|
|
61
|
+
if (!kb.updater.editable(subject.doc())) {
|
|
62
|
+
debug.log(" Cant make shared preferences, may not change ".concat(subject.doc));
|
|
63
|
+
resolve(context);
|
|
64
|
+
}
|
|
61
65
|
var sp = $rdf.sym(subject.doc().uri + '#SharedPreferences');
|
|
62
66
|
var ins = [$rdf.st(subject, ns.ui('sharedPreferences'), sp, subject.doc())];
|
|
63
67
|
debug.log('Creating shared preferences ' + sp);
|
package/lib/preferences.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preferences.js","names":["$rdf","_interopRequireWildcard","require","_solidLogic","debug","_login","ns","participation","widgets","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","kb","store","value","exports","k","v","log","Error","recordSharedPreferences","subject","context","Promise","resolve","reject","sharedPreferences","any","ui","sp","sym","doc","uri","ins","st","updater","update","ok","errorMessage","recordPersonalDefaults","theClass","ensureLoadedPreferences","then","preferencesFile","preferencesFileError","regs","each","solid","prefs","reg","length","forEach","personalDefaults","newThing","rdf","push","errm","err","renderPreferencesForm","preferencesForm","prefContainer","dom","createElement","participationObject","me","heading","text","appendChild","textContent","noun","appendForm","mes","complain","errorMessageBlock","toJS","term","datatype","equals","xsd","Date","Number","getPreferencesForClass","predicates","results","pred","v1"],"sources":["../src/preferences.js"],"sourcesContent":["// Solid-UI preferences\n// =====================\n//\n\nimport * as $rdf from 'rdflib' // pull in first avoid cross-refs\nimport { store } from 'solid-logic'\nimport * as debug from './debug'\nimport { ensureLoadedPreferences } from './login/login'\nimport * as ns from './ns'\nimport * as participation from './participation' // @ts-ignore\nimport * as widgets from './widgets'\n\nconst kb = store\n\n// This was tabulator . preferences in the tabulator\n// Is this functionality used anywhere?\n//\n\n// used for storing user name\n// @@ Deprocate these functions. They were used for\n// communication around the tabulator functionality about the user session\n\nexport const value = []\nexport function get (k) {\n return value[k]\n}\n\nexport function set (k, v) {\n if (typeof v !== 'string') {\n debug.log('Non-string value of preference ' + k + ': ' + v)\n throw new Error('Non-string value of preference ' + k + ': ' + v)\n }\n this.value[k] = v\n}\n\n// In a solid world, Preferences are stored in the web\n//\n// Make an RDF node for recording the common view preferences for any object\n// (maybe make it in a separate file?)\nexport function recordSharedPreferences (subject, context) {\n return new Promise(function (resolve, reject) {\n const sharedPreferences = kb.any(subject, ns.ui('sharedPreferences'))\n if (!sharedPreferences) {\n const sp = $rdf.sym(subject.doc().uri + '#SharedPreferences')\n const ins = [\n $rdf.st(subject, ns.ui('sharedPreferences'), sp, subject.doc())\n ]\n debug.log('Creating shared preferences ' + sp)\n kb.updater.update([], ins, function (uri, ok, errorMessage) {\n if (!ok) {\n reject(new Error('Error creating shared prefs: ' + errorMessage))\n } else {\n context.sharedPreferences = sp\n resolve(context)\n }\n })\n } else {\n context.sharedPreferences = sharedPreferences\n resolve(context)\n }\n })\n}\n\n// Construct a personal defaults node in the preferences file for a given class of object\n//\nexport function recordPersonalDefaults (theClass, context) {\n return new Promise(function (resolve, reject) {\n ensureLoadedPreferences(context).then(\n context => {\n if (!context.preferencesFile) {\n debug.log(\n 'Not doing private class preferences as no access to preferences file. ' +\n context.preferencesFileError\n )\n return\n }\n const regs = kb.each(\n null,\n ns.solid('forClass'),\n theClass,\n context.preferencesFile\n )\n let ins = []\n let prefs\n let reg\n if (regs.length) {\n // Use existing node if we can\n regs.forEach(r => {\n prefs = prefs || kb.any(r, ns.solid('personalDefaults'))\n })\n if (prefs) {\n context.personalDefaults = prefs // Found one\n resolve(context)\n return\n } else {\n prefs = widgets.newThing(context.preferencesFile)\n reg = regs[0]\n }\n } else {\n // no regs fo class\n reg = widgets.newThing(context.preferencesFile)\n ins = [\n $rdf.st(\n reg,\n ns.rdf('type'),\n ns.solid('TypeRegistration'),\n context.preferencesFile\n ),\n $rdf.st(reg, ns.solid('forClass'), theClass, context.preferencesFile)\n ]\n }\n prefs = widgets.newThing(context.preferencesFile)\n ins.push(\n $rdf.st(\n reg,\n ns.solid('personalDefaults'),\n prefs,\n context.preferencesFile\n )\n )\n kb.updater.update([], ins, function (uri, ok, errm) {\n if (!ok) {\n reject(new Error('Setting preferences for ' + theClass + ': ' + errm))\n } else {\n context.personalDefaults = prefs\n resolve(context)\n }\n })\n },\n err => {\n reject(err)\n }\n )\n })\n}\n\nexport function renderPreferencesForm (subject, theClass, preferencesForm, context) {\n const prefContainer = context.dom.createElement('div')\n participation.participationObject(subject, subject.doc(), context.me).then(\n participation => {\n const dom = context.dom\n function heading (text) {\n prefContainer.appendChild(dom.createElement('h5')).textContent = text\n }\n heading('My view of this ' + context.noun)\n widgets.appendForm(\n dom,\n prefContainer,\n {},\n participation,\n preferencesForm,\n subject.doc(),\n (ok, mes) => {\n if (!ok) widgets.complain(context, mes)\n }\n )\n\n heading(\"Everyone's view of this \" + context.noun)\n recordSharedPreferences(subject, context).then(context => {\n const sharedPreferences = context.sharedPreferences\n widgets.appendForm(\n dom,\n prefContainer,\n {},\n sharedPreferences,\n preferencesForm,\n subject.doc(),\n (ok, mes) => {\n if (!ok) widgets.complain(context, mes)\n }\n )\n\n heading('My default view of any ' + context.noun)\n recordPersonalDefaults(theClass, context).then(\n context => {\n widgets.appendForm(\n dom,\n prefContainer,\n {},\n context.personalDefaults,\n preferencesForm,\n context.preferencesFile,\n (ok, mes) => {\n if (!ok) widgets.complain(context, mes)\n }\n )\n },\n err => {\n widgets.complain(context, err)\n }\n )\n })\n },\n err => {\n // parp object fails\n prefContainer.appendChild(widgets.errorMessageBlock(context.dom, err))\n }\n )\n return prefContainer\n}\n\n// This should be part of rdflib.js ad part of the RDFJS Standard!!\n\nfunction toJS (term) {\n if (!term.datatype) return term // Objects remain objects\n if (term.datatype.equals(ns.xsd('boolean'))) {\n return term.value === '1'\n }\n if (\n term.datatype.equals(ns.xsd('dateTime')) ||\n term.datatype.equals(ns.xsd('date'))\n ) {\n return new Date(term.value)\n }\n if (\n term.datatype.equals(ns.xsd('integer')) ||\n term.datatype.equals(ns.xsd('float')) ||\n term.datatype.equals(ns.xsd('decimal'))\n ) {\n return Number(term.value)\n }\n return term.value\n}\n\n// This is the function which acuakly reads and combines the preferences\n//\n// @@ make it much more tolerant of missing buts of prefernces\nexport function getPreferencesForClass (subject, theClass, predicates, context) {\n return new Promise(function (resolve, reject) {\n recordSharedPreferences(subject, context).then(context => {\n const sharedPreferences = context.sharedPreferences\n if (context.me) {\n participation\n .participationObject(subject, subject.doc(), context.me)\n .then(participation => {\n recordPersonalDefaults(theClass, context).then(context => {\n const results = []\n const personalDefaults = context.personalDefaults\n predicates.forEach(pred => {\n // Order of preference: My settings on object, Global settings on object, my settings on class\n const v1 =\n kb.any(participation, pred) ||\n kb.any(sharedPreferences, pred) ||\n kb.any(personalDefaults, pred)\n if (v1) {\n results[pred.uri] = toJS(v1)\n }\n })\n resolve(results)\n }, reject)\n }, reject)\n } else {\n // no user defined, just use common prefs\n const results = []\n predicates.forEach(pred => {\n const v1 = kb.any(sharedPreferences, pred)\n if (v1) {\n results[pred.uri] = toJS(v1)\n }\n })\n resolve(results)\n }\n })\n })\n}\n\n// ends\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"preferences.js","names":["$rdf","_interopRequireWildcard","require","_solidLogic","debug","_login","ns","participation","widgets","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","kb","store","value","exports","k","v","log","Error","recordSharedPreferences","subject","context","Promise","resolve","reject","sharedPreferences","any","ui","updater","editable","doc","concat","sp","sym","uri","ins","st","update","ok","errorMessage","recordPersonalDefaults","theClass","ensureLoadedPreferences","then","preferencesFile","preferencesFileError","regs","each","solid","prefs","reg","length","forEach","personalDefaults","newThing","rdf","push","errm","err","renderPreferencesForm","preferencesForm","prefContainer","dom","createElement","participationObject","me","heading","text","appendChild","textContent","noun","appendForm","mes","complain","errorMessageBlock","toJS","term","datatype","equals","xsd","Date","Number","getPreferencesForClass","predicates","results","pred","v1"],"sources":["../src/preferences.js"],"sourcesContent":["// Solid-UI preferences\n// =====================\n//\n\nimport * as $rdf from 'rdflib' // pull in first avoid cross-refs\nimport { store } from 'solid-logic'\nimport * as debug from './debug'\nimport { ensureLoadedPreferences } from './login/login'\nimport * as ns from './ns'\nimport * as participation from './participation' // @ts-ignore\nimport * as widgets from './widgets'\n\nconst kb = store\n\n// This was tabulator . preferences in the tabulator\n// Is this functionality used anywhere?\n//\n\n// used for storing user name\n// @@ Deprocate these functions. They were used for\n// communication around the tabulator functionality about the user session\n\nexport const value = []\nexport function get (k) {\n return value[k]\n}\n\nexport function set (k, v) {\n if (typeof v !== 'string') {\n debug.log('Non-string value of preference ' + k + ': ' + v)\n throw new Error('Non-string value of preference ' + k + ': ' + v)\n }\n this.value[k] = v\n}\n\n// In a solid world, Preferences are stored in the web\n//\n// Make an RDF node for recording the common view preferences for any object\n// (maybe make it in a separate file?)\nexport function recordSharedPreferences (subject, context) {\n return new Promise(function (resolve, reject) {\n const sharedPreferences = kb.any(subject, ns.ui('sharedPreferences'))\n if (!sharedPreferences) {\n if (!kb.updater.editable(subject.doc())) {\n debug.log(` Cant make shared preferences, may not change ${subject.doc}`)\n resolve(context)\n }\n const sp = $rdf.sym(subject.doc().uri + '#SharedPreferences')\n const ins = [\n $rdf.st(subject, ns.ui('sharedPreferences'), sp, subject.doc())\n ]\n debug.log('Creating shared preferences ' + sp)\n kb.updater.update([], ins, function (uri, ok, errorMessage) {\n if (!ok) {\n reject(new Error('Error creating shared prefs: ' + errorMessage))\n } else {\n context.sharedPreferences = sp\n resolve(context)\n }\n })\n } else {\n context.sharedPreferences = sharedPreferences\n resolve(context)\n }\n })\n}\n\n// Construct a personal defaults node in the preferences file for a given class of object\n//\nexport function recordPersonalDefaults (theClass, context) {\n return new Promise(function (resolve, reject) {\n ensureLoadedPreferences(context).then(\n context => {\n if (!context.preferencesFile) {\n debug.log(\n 'Not doing private class preferences as no access to preferences file. ' +\n context.preferencesFileError\n )\n return\n }\n const regs = kb.each(\n null,\n ns.solid('forClass'),\n theClass,\n context.preferencesFile\n )\n let ins = []\n let prefs\n let reg\n if (regs.length) {\n // Use existing node if we can\n regs.forEach(r => {\n prefs = prefs || kb.any(r, ns.solid('personalDefaults'))\n })\n if (prefs) {\n context.personalDefaults = prefs // Found one\n resolve(context)\n return\n } else {\n prefs = widgets.newThing(context.preferencesFile)\n reg = regs[0]\n }\n } else {\n // no regs fo class\n reg = widgets.newThing(context.preferencesFile)\n ins = [\n $rdf.st(\n reg,\n ns.rdf('type'),\n ns.solid('TypeRegistration'),\n context.preferencesFile\n ),\n $rdf.st(reg, ns.solid('forClass'), theClass, context.preferencesFile)\n ]\n }\n prefs = widgets.newThing(context.preferencesFile)\n ins.push(\n $rdf.st(\n reg,\n ns.solid('personalDefaults'),\n prefs,\n context.preferencesFile\n )\n )\n kb.updater.update([], ins, function (uri, ok, errm) {\n if (!ok) {\n reject(new Error('Setting preferences for ' + theClass + ': ' + errm))\n } else {\n context.personalDefaults = prefs\n resolve(context)\n }\n })\n },\n err => {\n reject(err)\n }\n )\n })\n}\n\nexport function renderPreferencesForm (subject, theClass, preferencesForm, context) {\n const prefContainer = context.dom.createElement('div')\n participation.participationObject(subject, subject.doc(), context.me).then(\n participation => {\n const dom = context.dom\n function heading (text) {\n prefContainer.appendChild(dom.createElement('h5')).textContent = text\n }\n heading('My view of this ' + context.noun)\n widgets.appendForm(\n dom,\n prefContainer,\n {},\n participation,\n preferencesForm,\n subject.doc(),\n (ok, mes) => {\n if (!ok) widgets.complain(context, mes)\n }\n )\n\n heading(\"Everyone's view of this \" + context.noun)\n recordSharedPreferences(subject, context).then(context => {\n const sharedPreferences = context.sharedPreferences\n widgets.appendForm(\n dom,\n prefContainer,\n {},\n sharedPreferences,\n preferencesForm,\n subject.doc(),\n (ok, mes) => {\n if (!ok) widgets.complain(context, mes)\n }\n )\n\n heading('My default view of any ' + context.noun)\n recordPersonalDefaults(theClass, context).then(\n context => {\n widgets.appendForm(\n dom,\n prefContainer,\n {},\n context.personalDefaults,\n preferencesForm,\n context.preferencesFile,\n (ok, mes) => {\n if (!ok) widgets.complain(context, mes)\n }\n )\n },\n err => {\n widgets.complain(context, err)\n }\n )\n })\n },\n err => {\n // parp object fails\n prefContainer.appendChild(widgets.errorMessageBlock(context.dom, err))\n }\n )\n return prefContainer\n}\n\n// This should be part of rdflib.js ad part of the RDFJS Standard!!\n\nfunction toJS (term) {\n if (!term.datatype) return term // Objects remain objects\n if (term.datatype.equals(ns.xsd('boolean'))) {\n return term.value === '1'\n }\n if (\n term.datatype.equals(ns.xsd('dateTime')) ||\n term.datatype.equals(ns.xsd('date'))\n ) {\n return new Date(term.value)\n }\n if (\n term.datatype.equals(ns.xsd('integer')) ||\n term.datatype.equals(ns.xsd('float')) ||\n term.datatype.equals(ns.xsd('decimal'))\n ) {\n return Number(term.value)\n }\n return term.value\n}\n\n// This is the function which acuakly reads and combines the preferences\n//\n// @@ make it much more tolerant of missing buts of prefernces\nexport function getPreferencesForClass (subject, theClass, predicates, context) {\n return new Promise(function (resolve, reject) {\n recordSharedPreferences(subject, context).then(context => {\n const sharedPreferences = context.sharedPreferences\n if (context.me) {\n participation\n .participationObject(subject, subject.doc(), context.me)\n .then(participation => {\n recordPersonalDefaults(theClass, context).then(context => {\n const results = []\n const personalDefaults = context.personalDefaults\n predicates.forEach(pred => {\n // Order of preference: My settings on object, Global settings on object, my settings on class\n const v1 =\n kb.any(participation, pred) ||\n kb.any(sharedPreferences, pred) ||\n kb.any(personalDefaults, pred)\n if (v1) {\n results[pred.uri] = toJS(v1)\n }\n })\n resolve(results)\n }, reject)\n }, reject)\n } else {\n // no user defined, just use common prefs\n const results = []\n predicates.forEach(pred => {\n const v1 = kb.any(sharedPreferences, pred)\n if (v1) {\n results[pred.uri] = toJS(v1)\n }\n })\n resolve(results)\n }\n })\n })\n}\n\n// ends\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { NamedNode } from 'rdflib';
|
|
2
|
-
export declare const pubKeyUrl: (webId: NamedNode) =>
|
|
2
|
+
export declare const pubKeyUrl: (webId: NamedNode) => any;
|
|
3
|
+
export declare const privKeyUrl: (webId: NamedNode) => any;
|
|
3
4
|
export declare function getExistingPublicKey(webId: NamedNode, publicKeyUrl: string): Promise<string | undefined>;
|
|
4
|
-
export declare const privKeyUrl: (webId: NamedNode) => Promise<string>;
|
|
5
5
|
export declare function getExistingPrivateKey(webId: NamedNode, privateKeyUrl: string): Promise<string | undefined>;
|
|
6
6
|
type KeyType = 'publicKey' | 'privateKey';
|
|
7
7
|
export declare function getKeyIfExists(webId: NamedNode, keyUrl: string, keyType: KeyType): Promise<string | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessData.d.ts","sourceRoot":"","sources":["../../../src/utils/keyHelpers/accessData.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"accessData.d.ts","sourceRoot":"","sources":["../../../src/utils/keyHelpers/accessData.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAGlC,eAAO,MAAM,SAAS,UAAW,SAAS,QASzC,CAAA;AAED,eAAO,MAAM,UAAU,UAAW,SAAS,QAS1C,CAAA;AAED,wBAAsB,oBAAoB,CAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,+BAGjF;AAED,wBAAsB,qBAAqB,CAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,+BAGnF;AAED,KAAK,OAAO,GAAG,WAAW,GAAG,YAAY,CAAA;AAEzC,wBAAsB,cAAc,CAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,+BA2BvF"}
|
|
@@ -14,174 +14,118 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
|
|
|
14
14
|
var debug = _interopRequireWildcard(require("../../debug"));
|
|
15
15
|
var _solidLogic = require("solid-logic");
|
|
16
16
|
var ns = _interopRequireWildcard(require("../../ns"));
|
|
17
|
+
var _otherHelpers = require("./otherHelpers");
|
|
17
18
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
18
19
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
// find storage recursively in webId URL
|
|
27
|
-
let path = webIdURL.pathname
|
|
28
|
-
while (path.length) {
|
|
29
|
-
path = path.substring(0, path.lastIndexOf('/'))
|
|
30
|
-
podRoot = store.sym(webIdURL.origin + path + '/')
|
|
31
|
-
const res = await store.fetcher.webOperation('HEAD', podRoot.uri)
|
|
32
|
-
if (res.headers.get('link')?.includes(ns.space('Storage').value)) break
|
|
33
|
-
if (!path) debug.warn(`Current user storage not found for\n${webId}`)
|
|
34
|
-
}
|
|
35
|
-
} else {
|
|
36
|
-
// give preference to storage in webId root
|
|
37
|
-
podRoot = storages.find((storage) => webIdURL.origin === new URL(storage.value).origin) as NamedNode
|
|
38
|
-
if (!podRoot) podRoot = storages[0] as NamedNode
|
|
20
|
+
var pubKeyUrl = exports.pubKeyUrl = function pubKeyUrl(webId) {
|
|
21
|
+
var url;
|
|
22
|
+
try {
|
|
23
|
+
var root = (0, _otherHelpers.getRootIfPreferencesExist)(webId);
|
|
24
|
+
url = "".concat(root, "/profile/keys/publicKey.ttl");
|
|
25
|
+
} catch (err) {
|
|
26
|
+
debug.error(err);
|
|
39
27
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
if (parentSettings) {
|
|
54
|
-
_context.next = 4;
|
|
55
|
-
break;
|
|
56
|
-
}
|
|
57
|
-
throw new Error("prefererencesFile is expected to exist in ".concat(webId.doc));
|
|
58
|
-
case 4:
|
|
59
|
-
return _context.abrupt("return", "".concat(parentSettings, "/profile/keys/publicKey.ttl"));
|
|
60
|
-
case 5:
|
|
61
|
-
case "end":
|
|
62
|
-
return _context.stop();
|
|
63
|
-
}
|
|
64
|
-
}, _callee);
|
|
65
|
-
}));
|
|
66
|
-
return function pubKeyUrl(_x) {
|
|
67
|
-
return _ref.apply(this, arguments);
|
|
68
|
-
};
|
|
69
|
-
}();
|
|
70
|
-
function getExistingPublicKey(_x2, _x3) {
|
|
28
|
+
return url;
|
|
29
|
+
};
|
|
30
|
+
var privKeyUrl = exports.privKeyUrl = function privKeyUrl(webId) {
|
|
31
|
+
var url;
|
|
32
|
+
try {
|
|
33
|
+
var root = (0, _otherHelpers.getRootIfPreferencesExist)(webId);
|
|
34
|
+
url = "".concat(root, "/keys/privateKey.ttl");
|
|
35
|
+
} catch (err) {
|
|
36
|
+
debug.error(err);
|
|
37
|
+
}
|
|
38
|
+
return url;
|
|
39
|
+
};
|
|
40
|
+
function getExistingPublicKey(_x, _x2) {
|
|
71
41
|
return _getExistingPublicKey.apply(this, arguments);
|
|
72
42
|
}
|
|
73
43
|
function _getExistingPublicKey() {
|
|
74
|
-
_getExistingPublicKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
75
|
-
return _regenerator["default"].wrap(function
|
|
76
|
-
while (1) switch (
|
|
44
|
+
_getExistingPublicKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(webId, publicKeyUrl) {
|
|
45
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
46
|
+
while (1) switch (_context.prev = _context.next) {
|
|
77
47
|
case 0:
|
|
78
|
-
|
|
48
|
+
_context.next = 2;
|
|
79
49
|
return getKeyIfExists(webId, publicKeyUrl, 'publicKey');
|
|
80
50
|
case 2:
|
|
81
|
-
return
|
|
51
|
+
return _context.abrupt("return", _context.sent);
|
|
82
52
|
case 3:
|
|
83
53
|
case "end":
|
|
84
|
-
return
|
|
54
|
+
return _context.stop();
|
|
85
55
|
}
|
|
86
|
-
},
|
|
56
|
+
}, _callee);
|
|
87
57
|
}));
|
|
88
58
|
return _getExistingPublicKey.apply(this, arguments);
|
|
89
59
|
}
|
|
90
|
-
|
|
91
|
-
var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(webId) {
|
|
92
|
-
var _store$any2, _settings;
|
|
93
|
-
var settings;
|
|
94
|
-
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
95
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
96
|
-
case 0:
|
|
97
|
-
settings = (_store$any2 = _solidLogic.store.any(webId, ns.space('preferencesFile'), null, webId.doc())) === null || _store$any2 === void 0 ? void 0 : _store$any2.value;
|
|
98
|
-
settings = (_settings = settings) === null || _settings === void 0 ? void 0 : _settings.split('/').slice(0, -1).join('/');
|
|
99
|
-
if (settings) {
|
|
100
|
-
_context2.next = 4;
|
|
101
|
-
break;
|
|
102
|
-
}
|
|
103
|
-
throw new Error("prefererencesFile is expected to exist in ".concat(webId.doc));
|
|
104
|
-
case 4:
|
|
105
|
-
return _context2.abrupt("return", "".concat(settings, "/keys/privateKey.ttl"));
|
|
106
|
-
case 5:
|
|
107
|
-
case "end":
|
|
108
|
-
return _context2.stop();
|
|
109
|
-
}
|
|
110
|
-
}, _callee2);
|
|
111
|
-
}));
|
|
112
|
-
return function privKeyUrl(_x4) {
|
|
113
|
-
return _ref2.apply(this, arguments);
|
|
114
|
-
};
|
|
115
|
-
}();
|
|
116
|
-
function getExistingPrivateKey(_x5, _x6) {
|
|
60
|
+
function getExistingPrivateKey(_x3, _x4) {
|
|
117
61
|
return _getExistingPrivateKey.apply(this, arguments);
|
|
118
62
|
}
|
|
119
63
|
function _getExistingPrivateKey() {
|
|
120
|
-
_getExistingPrivateKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
121
|
-
return _regenerator["default"].wrap(function
|
|
122
|
-
while (1) switch (
|
|
64
|
+
_getExistingPrivateKey = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(webId, privateKeyUrl) {
|
|
65
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
66
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
123
67
|
case 0:
|
|
124
|
-
|
|
68
|
+
_context2.next = 2;
|
|
125
69
|
return getKeyIfExists(webId, privateKeyUrl, 'privateKey');
|
|
126
70
|
case 2:
|
|
127
|
-
return
|
|
71
|
+
return _context2.abrupt("return", _context2.sent);
|
|
128
72
|
case 3:
|
|
129
73
|
case "end":
|
|
130
|
-
return
|
|
74
|
+
return _context2.stop();
|
|
131
75
|
}
|
|
132
|
-
},
|
|
76
|
+
}, _callee2);
|
|
133
77
|
}));
|
|
134
78
|
return _getExistingPrivateKey.apply(this, arguments);
|
|
135
79
|
}
|
|
136
|
-
function getKeyIfExists(
|
|
80
|
+
function getKeyIfExists(_x5, _x6, _x7) {
|
|
137
81
|
return _getKeyIfExists.apply(this, arguments);
|
|
138
82
|
}
|
|
139
83
|
function _getKeyIfExists() {
|
|
140
|
-
_getKeyIfExists = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
84
|
+
_getKeyIfExists = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(webId, keyUrl, keyType) {
|
|
141
85
|
var key;
|
|
142
|
-
return _regenerator["default"].wrap(function
|
|
143
|
-
while (1) switch (
|
|
86
|
+
return _regenerator["default"].wrap(function _callee3$(_context3) {
|
|
87
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
144
88
|
case 0:
|
|
145
|
-
|
|
146
|
-
|
|
89
|
+
_context3.prev = 0;
|
|
90
|
+
_context3.next = 3;
|
|
147
91
|
return _solidLogic.store.fetcher.load(keyUrl);
|
|
148
92
|
case 3:
|
|
149
93
|
key = _solidLogic.store.any(webId, ns.solid(keyType)); // store.sym(CERT + keyType))
|
|
150
|
-
return
|
|
94
|
+
return _context3.abrupt("return", key === null || key === void 0 ? void 0 : key.value);
|
|
151
95
|
case 7:
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
if (!(
|
|
155
|
-
|
|
96
|
+
_context3.prev = 7;
|
|
97
|
+
_context3.t0 = _context3["catch"](0);
|
|
98
|
+
if (!(_context3.t0.response.status === 404)) {
|
|
99
|
+
_context3.next = 24;
|
|
156
100
|
break;
|
|
157
101
|
}
|
|
158
102
|
debug.log('createIfNotExists: doc does NOT exist, will create... ' + keyUrl);
|
|
159
|
-
|
|
160
|
-
|
|
103
|
+
_context3.prev = 11;
|
|
104
|
+
_context3.next = 14;
|
|
161
105
|
return _solidLogic.store.fetcher.webOperation('PUT', keyUrl, {
|
|
162
106
|
data: '',
|
|
163
107
|
contentType: 'text/turtle'
|
|
164
108
|
});
|
|
165
109
|
case 14:
|
|
166
|
-
|
|
110
|
+
_context3.next = 20;
|
|
167
111
|
break;
|
|
168
112
|
case 16:
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' +
|
|
172
|
-
throw
|
|
113
|
+
_context3.prev = 16;
|
|
114
|
+
_context3.t1 = _context3["catch"](11);
|
|
115
|
+
debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + _context3.t1);
|
|
116
|
+
throw _context3.t1;
|
|
173
117
|
case 20:
|
|
174
118
|
delete _solidLogic.store.fetcher.requested[keyUrl]; // delete cached 404 error
|
|
175
119
|
// debug.log('createIfNotExists doc created ok ' + doc)
|
|
176
|
-
return
|
|
120
|
+
return _context3.abrupt("return", undefined);
|
|
177
121
|
case 24:
|
|
178
|
-
debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' +
|
|
179
|
-
throw
|
|
122
|
+
debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + _context3.t0);
|
|
123
|
+
throw _context3.t0;
|
|
180
124
|
case 26:
|
|
181
125
|
case "end":
|
|
182
|
-
return
|
|
126
|
+
return _context3.stop();
|
|
183
127
|
}
|
|
184
|
-
},
|
|
128
|
+
}, _callee3, null, [[0, 7], [11, 16]]);
|
|
185
129
|
}));
|
|
186
130
|
return _getKeyIfExists.apply(this, arguments);
|
|
187
131
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessData.js","names":["debug","_interopRequireWildcard","require","_solidLogic","ns","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","pubKeyUrl","exports","_ref","_asyncToGenerator2","_regenerator","mark","_callee","webId","_store$any","_parentSettings","parentSettings","wrap","_callee$","_context","prev","next","store","any","space","doc","value","split","slice","join","Error","concat","abrupt","stop","_x","apply","arguments","getExistingPublicKey","_x2","_x3","_getExistingPublicKey","_callee3","publicKeyUrl","_callee3$","_context3","getKeyIfExists","sent","privKeyUrl","_ref2","_callee2","_store$any2","_settings","settings","_callee2$","_context2","_x4","getExistingPrivateKey","_x5","_x6","_getExistingPrivateKey","_callee4","privateKeyUrl","_callee4$","_context4","_x7","_x8","_x9","_getKeyIfExists","_callee5","keyUrl","keyType","key","_callee5$","_context5","fetcher","load","solid","t0","response","status","log","webOperation","data","contentType","t1","requested","undefined"],"sources":["../../../src/utils/keyHelpers/accessData.ts"],"sourcesContent":["import * as debug from '../../debug'\nimport { store } from 'solid-logic'\nimport * as ns from '../../ns'\nimport { NamedNode } from 'rdflib'\n\n/* export const getPodRoot = async (webId: NamedNode) => {\n const webIdURL = new URL(webId.uri)\n // find storages in webId document\n await store.fetcher.load(webId.uri)\n const storages = store.each(webId, ns.space('storage'), null, webId.doc())\n var podRoot: NamedNode | undefined\n if (!storages?.length) {\n // find storage recursively in webId URL\n let path = webIdURL.pathname\n while (path.length) {\n path = path.substring(0, path.lastIndexOf('/'))\n podRoot = store.sym(webIdURL.origin + path + '/')\n const res = await store.fetcher.webOperation('HEAD', podRoot.uri)\n if (res.headers.get('link')?.includes(ns.space('Storage').value)) break\n if (!path) debug.warn(`Current user storage not found for\\n${webId}`)\n }\n } else {\n // give preference to storage in webId root\n podRoot = storages.find((storage) => webIdURL.origin === new URL(storage.value).origin) as NamedNode\n if (!podRoot) podRoot = storages[0] as NamedNode\n }\n\n return podRoot as NamedNode\n} */\n\nexport const pubKeyUrl = async (webId: NamedNode) => {\n let parentSettings = store.any(webId, ns.space('preferencesFile'), null, webId.doc())?.value\n parentSettings = parentSettings?.split('/').slice(0, -2).join('/')\n if (!parentSettings) throw new Error(`prefererencesFile is expected to exist in ${webId.doc}`)\n return `${parentSettings}/profile/keys/publicKey.ttl`\n /* try {\n return (await getPodRoot(webId)).value + 'profile/keys/publicKey.ttl'\n } catch (err) { throw new Error(err) } */\n}\n\nexport async function getExistingPublicKey (webId: NamedNode, publicKeyUrl: string) {\n // find publickey\n return await getKeyIfExists(webId, publicKeyUrl, 'publicKey')\n}\n\nexport const privKeyUrl = async (webId: NamedNode) => {\n let settings = store.any(webId, ns.space('preferencesFile'), null, webId.doc())?.value\n settings = settings?.split('/').slice(0, -1).join('/')\n if (!settings) throw new Error(`prefererencesFile is expected to exist in ${webId.doc}`)\n return `${settings}/keys/privateKey.ttl`\n /* try {\n const podRoot = await getPodRoot(webId)\n if (!settings?.startsWith(podRoot.value)) throw new Error(`/settings/ is expected to be in ${podRoot.value}`)\n return `${settings}/keys/privateKey.ttl`\n } catch (err) { throw new Error(err) } */\n}\n\nexport async function getExistingPrivateKey (webId: NamedNode, privateKeyUrl: string) {\n // find privateKey\n return await getKeyIfExists(webId, privateKeyUrl, 'privateKey')\n}\n\ntype KeyType = 'publicKey' | 'privateKey'\n\nexport async function getKeyIfExists (webId: NamedNode, keyUrl: string, keyType: KeyType) {\n try {\n await store.fetcher.load(keyUrl)\n const key = store.any(webId, ns.solid(keyType)) // store.sym(CERT + keyType))\n return key?.value // as NamedNode\n } catch (err) {\n if (err.response.status === 404) {\n debug.log(\n 'createIfNotExists: doc does NOT exist, will create... ' + keyUrl\n )\n try {\n await store.fetcher.webOperation('PUT', keyUrl, {\n data: '',\n contentType: 'text/turtle'\n })\n } catch (err) {\n debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + err)\n throw err\n }\n delete store.fetcher.requested[keyUrl] // delete cached 404 error\n // debug.log('createIfNotExists doc created ok ' + doc)\n return undefined // response\n } else {\n debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + err)\n throw err\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"accessData.js","names":["debug","_interopRequireWildcard","require","_solidLogic","ns","_otherHelpers","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","_typeof","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","pubKeyUrl","exports","webId","url","root","getRootIfPreferencesExist","concat","err","error","privKeyUrl","getExistingPublicKey","_x","_x2","_getExistingPublicKey","apply","arguments","_asyncToGenerator2","_regenerator","mark","_callee","publicKeyUrl","wrap","_callee$","_context","prev","next","getKeyIfExists","abrupt","sent","stop","getExistingPrivateKey","_x3","_x4","_getExistingPrivateKey","_callee2","privateKeyUrl","_callee2$","_context2","_x5","_x6","_x7","_getKeyIfExists","_callee3","keyUrl","keyType","key","_callee3$","_context3","store","fetcher","load","any","solid","value","t0","response","status","log","webOperation","data","contentType","t1","requested","undefined"],"sources":["../../../src/utils/keyHelpers/accessData.ts"],"sourcesContent":["import * as debug from '../../debug'\nimport { store } from 'solid-logic'\nimport * as ns from '../../ns'\nimport { NamedNode } from 'rdflib'\nimport { getRootIfPreferencesExist } from './otherHelpers'\n\nexport const pubKeyUrl = (webId: NamedNode) => {\n let url\n try {\n const root = getRootIfPreferencesExist(webId)\n url = `${root}/profile/keys/publicKey.ttl`\n } catch (err) {\n debug.error(err)\n }\n return url\n}\n\nexport const privKeyUrl = (webId: NamedNode) => {\n let url\n try {\n const root = getRootIfPreferencesExist(webId)\n url = `${root}/keys/privateKey.ttl`\n } catch (err) {\n debug.error(err)\n }\n return url\n}\n\nexport async function getExistingPublicKey (webId: NamedNode, publicKeyUrl: string) {\n // find publickey\n return await getKeyIfExists(webId, publicKeyUrl, 'publicKey')\n}\n\nexport async function getExistingPrivateKey (webId: NamedNode, privateKeyUrl: string) {\n // find privateKey\n return await getKeyIfExists(webId, privateKeyUrl, 'privateKey')\n}\n\ntype KeyType = 'publicKey' | 'privateKey'\n\nexport async function getKeyIfExists (webId: NamedNode, keyUrl: string, keyType: KeyType) {\n try {\n await store.fetcher.load(keyUrl)\n const key = store.any(webId, ns.solid(keyType)) // store.sym(CERT + keyType))\n return key?.value // as NamedNode\n } catch (err) {\n if (err.response.status === 404) {\n debug.log(\n 'createIfNotExists: doc does NOT exist, will create... ' + keyUrl\n )\n try {\n await store.fetcher.webOperation('PUT', keyUrl, {\n data: '',\n contentType: 'text/turtle'\n })\n } catch (err) {\n debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + err)\n throw err\n }\n delete store.fetcher.requested[keyUrl] // delete cached 404 error\n // debug.log('createIfNotExists doc created ok ' + doc)\n return undefined // response\n } else {\n debug.log('createIfNotExists doc FAILED: ' + keyUrl + ': ' + err)\n throw err\n }\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otherHelpers.d.ts","sourceRoot":"","sources":["../../../src/utils/keyHelpers/otherHelpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAIlC,eAAO,MAAM,yBAAyB,UAAW,SAAS,WAKzD,CAAA"}
|