solid-ui 2.4.28-a414b470 → 2.4.28-df3d9431
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/solid-ui.js +248 -318
- package/dist/solid-ui.js.map +1 -1
- package/dist/solid-ui.min.js +1 -1
- package/dist/solid-ui.min.js.map +1 -1
- package/lib/chat/keys.d.ts +3 -0
- package/lib/chat/keys.d.ts.map +1 -1
- package/lib/chat/keys.js +124 -80
- package/lib/chat/keys.js.map +1 -1
- package/lib/chat/message.js +35 -35
- package/lib/chat/message.js.map +1 -1
- package/lib/chat/signature.d.ts +0 -2
- package/lib/chat/signature.d.ts.map +1 -1
- package/lib/chat/signature.js +1 -70
- package/lib/chat/signature.js.map +1 -1
- package/lib/style.js +2 -0
- package/lib/style.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 +51 -131
- 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 +23 -0
- package/lib/utils/keyHelpers/otherHelpers.js.map +1 -0
- package/lib/versionInfo.js +2 -2
- package/lib/versionInfo.js.map +1 -1
- package/package.json +3 -1
package/lib/chat/message.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","names":["_infinite","require","_messageTools","_bookmarks","_chatLogic","debug","_interopRequireWildcard","_iconBase","_solidLogic","_login","_index","ns","pad","style","utils","widgets","_signature","_keys","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","F","s","n","done","value","e","_e2","f","TypeError","normalCompletion","didErr","err","step","next","_e3","minLen","_arrayLikeToArray","toString","slice","constructor","name","from","test","arr","len","arr2","dom","window","document","messageBodyStyle","label","elementForImageURI","imageUri","options","img","createElement","height","inlineImageHeightEms","trim","setAttribute","anchor","appendChild","makeDraggable","$rdf","text","term","a","uri","addEventListener","openHrefInOutlineMode","textContent","nickname","person","store","any","foaf","creatorAndDate","td1","creator","date","message","nickAnchor","fetcher","nowOrWhenFetched","doc","undefined","_ok","_body","creatorAndDateHorizontal","dateBit","fontSize","marginLeft","renderMessageRow","_x","_x2","_x3","_x4","_x5","_renderMessageRow","_asyncToGenerator2","_regenerator","mark","_callee9","channelObject","fresh","userContext","unsignedMessage","colorizeByAuthor","latestVersion","latestVersionCreator","msgId","content","versions","replies","thread","straightReplies","_iterator2","_step2","reply","signature","msg","originalMessage","edited","sortDate","messageRow","bothDates","td2","isURI","para","isImage","_img","anc","bgcolor","getBgColor","strip","td3","toolsButton","wrap","_callee9$","_context10","prev","_getBgColor","dct","mostRecentVersion","sent","log","sioc","allVersions","join","map","version","each","flat","holds","rdf","concat","SEC","getBlankMsg","id","created","maker","warn","getPublicKey","then","publicKey","regex","match","verifySignature","originalVersion","sameTerm","the","AJAR_date","AJAR_subject","authorDateOnLeft","setImage","shortDate","expandImagesInline","href","lightColorHash","sentimentStripLinked","children","button","icons","iconBase","_ref4","_callee8","_event","toolsTR","tools","toolsTD","_callee8$","_context9","toolTR","parentNode","removeChild","abrupt","messageToolbar","chatOptions","nextSibling","parentElement","insertBefore","stop","_x20","showThread","_e","switchToEditor","_x6","_x7","_x8","_x9","_switchToEditor","_callee10","messageTable","editRow","_callee10$","_context11","t0","renderMessageEditor","t1","t2","t3","t4","t5","originalRow","visibility","revertEditing","messageEditor","handleFieldInput","_x10","_handleFieldInput","_callee5","_callee5$","_context6","sendMessage","field","_x11","_x12","_sendMessage","_callee7","fromMainField","sendComplete","_sendComplete","statusArea","_callee7$","_context8","_sendComplete3","_callee6","_text2","oldRow","_callee6$","_context7","insertMessageIntoTable","backgroundColor","disabled","scrollIntoView","newestFirst","focus","select","_sendComplete2","_x18","_x19","updateMessage","errorMessageBlock","droppedFileHandler","files","base","chatDocument","dir","uploadFiles","_ref","_callee","theFile","destURI","_callee$","_context2","_x13","_x14","droppedURIHandler","_ref2","_callee2","uris","_iterator","_step","_callee2$","_context3","finish","_x15","turnOnInput","getImageDoc","imageDoc","Date","now","tookPicture","_x16","_tookPicture","_callee4","_callee4$","_context5","menuButton","menuHandler","buttonStyle","rhs","me","authn","currentUser","menuOptions","div","newBase","event","chatChannel","lhs","middle","innerHTML","rows","anyValue","_ref3","_callee3","_callee3$","_context4","code","shiftKey","shiftEnterSendsMessage","_x17","makeDropTarget","sendButton","sendIcon","cancelButton","dateFolder","leafDocumentFromDate","media","cameraButton","recordParticipation","channel","context","ensureLoggedIn","assign","findBookmarkDocument","_context"],"sources":["../../src/chat/message.js"],"sourcesContent":["/** UI code for individual messages: display them, edit them\n *\n * @packageDocumentation\n */\n\n/* global $rdf */\nimport { insertMessageIntoTable } from './infinite'\nimport { messageToolbar, sentimentStripLinked } from './messageTools'\nimport { findBookmarkDocument } from './bookmarks'\nimport { mostRecentVersion, originalVersion, allVersions } from './chatLogic'\nimport * as debug from '../debug'\nimport { icons } from '../iconBase'\nimport { store, authn } from 'solid-logic'\nimport { ensureLoggedIn } from '../login/login'\nimport { media } from '../media/index'\nimport * as ns from '../ns'\nimport * as pad from '../pad'\nimport * as style from '../style'\nimport * as utils from '../utils'\nimport * as widgets from '../widgets'\nimport { getBlankMsg, verifySignature, SEC } from './signature'\nimport { getPublicKey } from './keys'\n\nconst dom = window.document\nconst messageBodyStyle = style.messageBodyStyle\n\nconst label = utils.label\n\n/**\n * elementForImageURI\n * HTML component for an image\n * @param imageUri\n * @param options { inlineImageHeightEms }\n * @returns HTMLAnchorElement For Image\n */\nexport function elementForImageURI (imageUri, options) {\n const img = dom.createElement('img')\n let height = '10'\n if (options.inlineImageHeightEms) {\n height = ('' + options.inlineImageHeightEms).trim()\n }\n img.setAttribute(\n 'style',\n 'max-height: ' + height + 'em; border-radius: 1em; margin: 0.7em;'\n )\n // widgets.makeDropTarget(img, handleURIsDroppedOnMugshot, droppedFileHandler)\n if (imageUri) img.setAttribute('src', imageUri)\n const anchor = dom.createElement('a')\n anchor.setAttribute('href', imageUri)\n anchor.setAttribute('target', 'images')\n anchor.appendChild(img)\n widgets.makeDraggable(img, $rdf.sym(imageUri))\n return anchor\n}\n\nconst 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', 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\nfunction nickname (person) {\n const s = store.any(person, ns.foaf('nick'))\n if (s) return '' + s.value\n return '' + label(person)\n}\n\n/**\n * creatorAndDate\n * Displays creator and date for a chat message\n * inside the `td1` element\n * @param td1\n * @param creator\n * @param date\n * @param message\n * @returns HTMLAnchorElement For Image\n */\nexport function creatorAndDate (td1, creator, date, message) {\n const nickAnchor = td1.appendChild(anchor(nickname(creator), creator))\n if (creator.uri) {\n store.fetcher.nowOrWhenFetched(creator.doc(), undefined, function (\n _ok,\n _body\n ) {\n nickAnchor.textContent = nickname(creator)\n })\n }\n td1.appendChild(dom.createElement('br'))\n td1.appendChild(anchor(date, message))\n}\n\n/**\n * creatorAndDateHorizontal\n * Horizontally displays creator and date for a chat message\n * inside the `td1` element\n * @param td1\n * @param creator\n * @param date\n * @param message\n * @returns HTMLAnchorElement For Image\n */\nexport function creatorAndDateHorizontal (td1, creator, date, message) {\n const nickAnchor = td1.appendChild(anchor(label(creator), creator))\n if (creator.uri) {\n store.fetcher.nowOrWhenFetched(creator.doc(), undefined, function (\n _ok,\n _body\n ) {\n nickAnchor.textContent = nickname(creator)\n })\n }\n const dateBit = td1.appendChild(anchor(date, message))\n dateBit.style.fontSize = '80%'\n dateBit.style.marginLeft = '1em'\n td1.appendChild(dom.createElement('br'))\n}\n\n/**\n * renderMessageRow\n * Renders a chat message, read-only mode\n * @param channelObject\n * @param message\n * @param fresh\n * @param options\n * @param userContext\n * @returns Message Row HTML Table Element\n */\nexport async function renderMessageRow (channelObject, message, fresh, options, userContext) {\n let unsignedMessage = false\n const colorizeByAuthor =\n options.colorizeByAuthor === '1' || options.colorizeByAuthor === true\n\n // const id = store.any(latestVersion, ns.sioc('id'))\n // const replies = store.each(latestVersion, ns.sioc('has_reply'))\n\n const creator = store.any(message, ns.foaf('maker'))\n const date = store.any(message, ns.dct('created'))\n const latestVersion = await mostRecentVersion(message)\n debug.log('@@@@ alain mostRecentVersion')\n debug.log(message)\n debug.log(latestVersion)\n const latestVersionCreator = store.any(latestVersion, ns.foaf('maker'))\n\n // use latest content if same owner, else use original\n // this is may be too strict. Should we find latest valid version if any ?\n debug.log('@@@@ alain creator')\n debug.log(creator)\n debug.log(latestVersionCreator)\n const msgId = creator.uri === latestVersionCreator?.uri ? latestVersion : message\n const content = store.any(msgId, ns.sioc('content'))\n\n const versions = await allVersions(msgId)\n if (versions.length > 1) {\n debug.log('renderMessageRow versions: ', versions.join(', '))\n }\n // be tolerant in accepting replies on any version of a message\n const replies = versions.map(version => store.each(version, ns.sioc('has_reply'))).flat()\n\n let thread = null\n const straightReplies = []\n for (const reply of replies) {\n if (store.holds(reply, ns.rdf('type'), ns.sioc('Thread'))) {\n thread = reply\n debug.log('renderMessageRow: found thread: ' + thread)\n } else {\n straightReplies.push(reply)\n }\n }\n if (straightReplies.length > 1) {\n debug.log('renderMessageRow: found normal replies: ', straightReplies)\n }\n debug.log('@@@@ is thread')\n if (!thread) {\n // thread = store.any(message, ns.sioc('has_reply'))\n thread = store.any(null, ns.sioc('has_member'), message)\n }\n // get signature\n const signature = store.any(msgId, $rdf.sym(`${SEC}proofValue`))\n\n // set proof message object\n const msg = getBlankMsg()\n msg.id = msgId.uri\n msg.created = store.any(msgId, ns.dct('created')).value\n msg.content = content.value\n msg.maker = creator.uri\n\n // verify signature\n if (!signature?.value) { // unsigned message\n unsignedMessage = true\n debug.warn(msgId.uri + ' is unsigned') // TODO replace with UI (colored message ?)\n } else { // signed message, get public key and check signature\n getPublicKey(creator).then(publicKey => {\n debug.log(creator.uri + '\\n' + msg.created + '\\n' + msg.id + '\\n' + publicKey)\n if (!publicKey) {\n debug.warn('message is signed but ' + creator.uri + ' is missing publicKey')\n }\n // check that publicKey is a valid hex string\n const regex = /[0-9A-Fa-f]{6}/g\n if (!publicKey?.match(regex)) debug.warn('invalid publicKey hex string\\n' + creator.uri + '\\n' + publicKey)\n // verify signature\n else if (signature?.value && !verifySignature(signature?.value, msg, publicKey)) debug.warn('invalid signature\\n' + msg.id)\n })\n }\n\n const originalMessage = await originalVersion(message)\n const edited = !message.sameTerm(originalMessage)\n // @@ load it first @@ Or display the new data at the old date.\n // @@@ kludge!\n const sortDate = store.the(originalMessage, ns.dct('created'), null, originalMessage.doc()) || store.the(message, ns.dct('created'), null, message.doc())\n // In message\n\n const messageRow = dom.createElement('tr')\n if (unsignedMessage) messageRow.setAttribute('style', 'background-color: red')\n messageRow.AJAR_date = sortDate.value\n messageRow.AJAR_subject = message\n\n const td1 = dom.createElement('td')\n messageRow.appendChild(td1)\n if (!options.authorDateOnLeft) {\n const img = dom.createElement('img')\n img.setAttribute(\n 'style',\n 'max-height: 2.5em; max-width: 2.5em; border-radius: 0.5em; margin: auto;'\n )\n widgets.setImage(img, creator)\n td1.appendChild(img)\n } else {\n creatorAndDate(td1, creator, widgets.shortDate(sortDate.value), message)\n }\n let bothDates = widgets.shortDate(sortDate.value)\n if (edited) {\n bothDates += ' ... ' + widgets.shortDate(date.value)\n }\n\n // Render the content ot the message itself\n const td2 = messageRow.appendChild(dom.createElement('td'))\n\n if (!options.authorDateOnLeft) {\n creatorAndDateHorizontal(\n td2,\n creator,\n bothDates, // widgets.shortDate(dateString)\n message\n )\n }\n const text = content ? content.value.trim() : '??? no content?'\n const isURI = /^https?:\\/[^ <>]*$/i.test(text)\n let para = null\n if (isURI) {\n const isImage = /\\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(text) // @@ Should use content-type not URI\n if (isImage && options.expandImagesInline) {\n const img = elementForImageURI(text, options)\n td2.appendChild(img)\n } else {\n // Link but not Image\n const anc = td2.appendChild(dom.createElement('a'))\n para = anc.appendChild(dom.createElement('p'))\n anc.href = text\n para.textContent = text\n td2.appendChild(anc)\n }\n } else {\n // text\n para = dom.createElement('p')\n td2.appendChild(para)\n para.textContent = text\n }\n if (para) {\n const bgcolor = colorizeByAuthor\n ? pad.lightColorHash(creator)\n : getBgColor(fresh)\n para.setAttribute(\n 'style',\n messageBodyStyle + 'background-color: ' + bgcolor + ';'\n )\n }\n\n function getBgColor (fresh) {\n return fresh ? '#e8ffe8' : 'white'\n }\n\n // Sentiment strip\n const strip = await sentimentStripLinked(message, message.doc())\n if (strip.children.length) {\n td2.appendChild(dom.createElement('br'))\n td2.appendChild(strip)\n }\n\n // Message tool bar button\n const td3 = dom.createElement('td')\n messageRow.appendChild(td3)\n const toolsButton = widgets.button(\n dom,\n icons.iconBase + 'noun_243787.svg',\n '...'\n )\n td3.appendChild(toolsButton)\n toolsButton.addEventListener('click', async function (_event) {\n if (messageRow.toolTR) {\n // already got a toolbar? Toogle\n messageRow.parentNode.removeChild(messageRow.toolTR)\n delete messageRow.toolTR\n return\n }\n const toolsTR = dom.createElement('tr')\n const tools = await messageToolbar(message, messageRow, { ...userContext, chatOptions: options }, channelObject)\n tools.style =\n 'border: 0.05em solid #888; border-radius: 0 0 0.7em 0.7em; border-top: 0; height:3.5em; background-color: #fff;' // @@ fix\n if (messageRow.nextSibling) {\n messageRow.parentElement.insertBefore(toolsTR, messageRow.nextSibling)\n } else {\n messageRow.parentElement.appendChild(toolsTR)\n }\n messageRow.toolTR = toolsTR\n toolsTR.appendChild(dom.createElement('td')) // left\n const toolsTD = toolsTR.appendChild(dom.createElement('td'))\n toolsTR.appendChild(dom.createElement('td')) // right\n toolsTD.appendChild(tools)\n })\n if (thread && options.showThread) {\n debug.log(' message has thread ' + thread)\n td3.appendChild(widgets.button(\n dom,\n icons.iconBase + 'noun_1180164.svg', // right arrow .. @@ think of stg better\n 'see thread',\n _e => {\n debug.log('@@@@ Calling showThread thread ' + thread)\n options.showThread(thread, options)\n }\n ))\n }\n return messageRow\n} // END OF RENDERMESSAGE\n\nexport async function switchToEditor (messageRow, message, channelObject, userContext) {\n const messageTable = messageRow.parentNode\n const editRow = renderMessageEditor(channelObject, messageTable, userContext,\n channelObject.options, await mostRecentVersion(message))\n messageTable.insertBefore(editRow, messageRow)\n editRow.originalRow = messageRow\n messageRow.style.visibility = 'hidden' // Hide the original message. unhide if user cancels edit\n}\n/* Control for a new message -- or editing an old message ***************\n *\n */\nexport function renderMessageEditor (channelObject, messageTable, userContext, options, originalMessage) {\n function revertEditing (messageEditor) {\n messageEditor.originalRow.style.visibility = 'visible' // restore read-only version\n messageEditor.parentNode.removeChild(messageEditor)\n }\n\n async function handleFieldInput (_event) {\n await sendMessage(field.value, true)\n }\n\n async function sendMessage (text, fromMainField) {\n async function sendComplete (message, _text2) {\n // const dateStamp = store.any(message, ns.dct('created'), null, message.doc())\n // const content = $rdf.literal(text2)\n await insertMessageIntoTable(channelObject, messageTable, message, false, options, userContext) // not green\n\n if (originalMessage) { // editing another message\n const oldRow = messageEditor.originalRow\n // oldRow.style.display = '' // restore read-only version, re-attack\n if (oldRow.parentNode) {\n oldRow.parentNode.removeChild(oldRow) // No longer needed old version\n } else {\n debug.warn('No parentNode on old message ' + oldRow.textContent)\n oldRow.style.backgroundColor = '#fee'\n oldRow.style.visibility = 'hidden' // @@ FIX THIS AND REMOVE FROM DOM INSTEAD\n }\n messageEditor.parentNode.removeChild(messageEditor) // no longer need editor\n } else {\n if (fromMainField) {\n field.value = '' // clear from out for reuse\n field.setAttribute('style', messageBodyStyle)\n field.disabled = false\n field.scrollIntoView(options.newestFirst) // allign bottom (top)\n field.focus() // Start typing next line immediately\n field.select()\n }\n }\n // await channelObject.div.refresh() // Add new day if nec @@ add back\n }\n\n // const me = authn.currentUser() // Must be logged on or wuld have got login button\n if (fromMainField) {\n field.setAttribute('style', messageBodyStyle + 'color: #bbb;') // pendingedit\n field.disabled = true\n }\n\n let message\n try {\n message = await channelObject.updateMessage(text, originalMessage, null, options.thread)\n } catch (err) {\n const statusArea = userContext.statusArea || messageEditor\n statusArea.appendChild(\n widgets.errorMessageBlock(dom, 'Error writing message: ' + err)\n )\n return\n }\n await sendComplete(message, text)\n } // sendMessage\n\n // DRAG AND DROP\n function droppedFileHandler (files) {\n const base = messageTable.chatDocument.dir().uri\n widgets.uploadFiles(\n store.fetcher,\n files,\n base + 'Files',\n base + 'Pictures',\n async function (theFile, destURI) {\n // @@@@@@ Wait for each if several\n await sendMessage(destURI)\n }\n )\n }\n\n // When a set of URIs are dropped on the field\n const droppedURIHandler = async function (uris) {\n for (const uri of uris) {\n await sendMessage(uri)\n }\n }\n\n // When we are actually logged on\n function turnOnInput () {\n function getImageDoc () {\n imageDoc = $rdf.sym(\n chatDocument.dir().uri + 'Image_' + Date.now() + '.png'\n )\n return imageDoc\n }\n\n async function tookPicture (imageDoc) {\n if (imageDoc) {\n await sendMessage(imageDoc.uri)\n }\n }\n\n // Body of turnOnInput\n\n let menuButton\n if (options.menuHandler) {\n const menuButton = widgets.button(\n dom, icons.iconBase + 'noun_243787.svg', 'More')\n menuButton.setAttribute('style', style.buttonStyle + 'float: right;')\n // menuButton.addEventListener('click', _event => sendMessage(), false) (done in turnoninput)\n rhs.appendChild(menuButton)\n }\n\n if (options.menuHandler && menuButton) {\n const me = authn.currentUser()\n const menuOptions = {\n me,\n dom,\n div: null, // @@ was: div\n newBase: messageTable.chatDocument.dir().uri\n }\n menuButton.addEventListener(\n 'click',\n event => {\n options.menuHandler(event, channelObject.chatChannel, menuOptions)\n },\n false\n )\n }\n\n const me = authn.currentUser() // If already logged on\n creatorAndDate(lhs, me, '', null)\n\n field = dom.createElement('textarea')\n middle.innerHTML = ''\n middle.appendChild(field)\n field.rows = 3\n if (originalMessage) {\n field.value = store.anyValue(originalMessage, ns.sioc('content'), null, originalMessage.doc())\n }\n // field.cols = 40\n field.setAttribute('style', messageBodyStyle + 'background-color: #eef;')\n\n // Trap the Enter BEFORE it is used ti make a newline\n\n field.addEventListener(\n 'keydown',\n async function (e) {\n // User preference?\n if (e.code === 'Enter') {\n // if (e.keyCode === 13) { // deprocated https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode\n if ((!e.shiftKey && !options.shiftEnterSendsMessage) || (e.shiftKey && options.shiftEnterSendsMessage)) {\n // Shift-Enter just adds a new line\n // (note alt-enter doesn't add newline anyway on my setup - so have to use shift.\n await handleFieldInput(e)\n }\n }\n },\n false\n )\n\n widgets.makeDropTarget(field, droppedURIHandler, droppedFileHandler)\n\n rhs.innerHTML = ''\n\n sendButton = widgets.button(dom, sendIcon, 'Send')\n sendButton.style.float = 'right'\n sendButton.addEventListener('click', _event => handleFieldInput(), false)\n rhs.appendChild(sendButton)\n\n if (originalMessage) { // Are we editing another message?\n const cancelButton = rhs.appendChild(widgets.cancelButton(dom))\n cancelButton.style.float = 'left'\n // cancelButton.firstChild.style.opacity = '0.3' // moved to buttons\n cancelButton.addEventListener('click', _event => revertEditing(messageEditor), false)\n rhs.appendChild(cancelButton)\n }\n\n const chatDocument = channelObject.dateFolder.leafDocumentFromDate(new Date())\n let imageDoc\n\n middle.appendChild(\n media.cameraButton(dom, store, getImageDoc, tookPicture)\n )\n\n pad.recordParticipation(channelObject.channel, channelObject.channel.doc()) // participation =\n } // turn on inpuut\n\n // Body of renderMessageEditor\n\n let sortDate, sendIcon\n if (originalMessage) {\n sortDate = store.anyValue(originalMessage, ns.dct('created'), null, originalMessage.doc())\n // text = store.anyValue(originalMessage, ns.sioc('content'), null, originalMessage.doc())\n sendIcon = icons.iconBase + 'noun_1180158.svg' // Green check\n // cancelIcon = icons.iconBase + 'noun_1180156.svg' // Black cross\n } else {\n sendIcon = icons.iconBase + 'noun_383448.svg'\n sortDate = '9999-01-01T00:00:00Z' // ISO format for field sort\n // text = ''\n }\n const messageEditor = dom.createElement('tr')\n const lhs = dom.createElement('td')\n const middle = dom.createElement('td')\n const rhs = dom.createElement('td')\n messageEditor.appendChild(lhs)\n messageEditor.appendChild(middle)\n messageEditor.appendChild(rhs)\n messageEditor.AJAR_date = sortDate\n // messageEditor.appendChild(dom.createElement('br'))\n\n let field, sendButton\n const context = { div: middle, dom }\n\n ensureLoggedIn(context).then(context => {\n // me = context.me\n turnOnInput()\n Object.assign(context, userContext)\n findBookmarkDocument(context).then(_context => {\n // debug.log('Bookmark file: ' + context.bookmarkDocument)\n })\n })\n\n return messageEditor\n} // renderMessageEditor\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"message.js","names":["_infinite","require","_messageTools","_bookmarks","_chatLogic","debug","_interopRequireWildcard","_iconBase","_solidLogic","_login","_index","ns","pad","style","utils","widgets","_signature","_keys","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","F","s","n","done","value","e","_e2","f","TypeError","normalCompletion","didErr","err","step","next","_e3","minLen","_arrayLikeToArray","toString","slice","constructor","name","from","test","arr","len","arr2","dom","window","document","messageBodyStyle","label","elementForImageURI","imageUri","options","img","createElement","height","inlineImageHeightEms","trim","setAttribute","anchor","appendChild","makeDraggable","$rdf","text","term","a","uri","addEventListener","openHrefInOutlineMode","textContent","nickname","person","store","any","foaf","creatorAndDate","td1","creator","date","message","nickAnchor","fetcher","nowOrWhenFetched","doc","undefined","_ok","_body","creatorAndDateHorizontal","dateBit","fontSize","marginLeft","renderMessageRow","_x","_x2","_x3","_x4","_x5","_renderMessageRow","_asyncToGenerator2","_regenerator","mark","_callee9","channelObject","fresh","userContext","colorizeByAuthor","latestVersion","latestVersionCreator","msgId","content","versions","replies","thread","straightReplies","_iterator2","_step2","reply","signature","msg","messageRow","publicKey","regex","validSignature","validPublicKeyHexString","originalMessage","edited","sortDate","bothDates","td2","isURI","para","isImage","_img","anc","bgcolor","getBgColor","strip","td3","toolsButton","wrap","_callee9$","_context10","prev","_getBgColor","dct","mostRecentVersion","sent","log","sioc","allVersions","join","map","version","each","flat","holds","rdf","concat","SEC","getBlankMsg","id","created","maker","textInputBackgroundColorHighlight","getPublicKey","warn","verifySignature","match","textInputBackgroundColorError","originalVersion","sameTerm","the","AJAR_date","AJAR_subject","authorDateOnLeft","setImage","shortDate","expandImagesInline","href","lightColorHash","sentimentStripLinked","children","button","icons","iconBase","_ref4","_callee8","_event","toolsTR","tools","toolsTD","_callee8$","_context9","toolTR","parentNode","removeChild","abrupt","messageToolbar","chatOptions","nextSibling","parentElement","insertBefore","stop","_x20","showThread","_e","switchToEditor","_x6","_x7","_x8","_x9","_switchToEditor","_callee10","messageTable","editRow","_callee10$","_context11","t0","renderMessageEditor","t1","t2","t3","t4","t5","originalRow","visibility","revertEditing","messageEditor","handleFieldInput","_x10","_handleFieldInput","_callee5","_callee5$","_context6","sendMessage","field","_x11","_x12","_sendMessage","_callee7","fromMainField","sendComplete","_sendComplete","statusArea","_callee7$","_context8","_sendComplete3","_callee6","_text2","oldRow","_callee6$","_context7","insertMessageIntoTable","backgroundColor","disabled","scrollIntoView","newestFirst","focus","select","_sendComplete2","_x18","_x19","updateMessage","errorMessageBlock","droppedFileHandler","files","base","chatDocument","dir","uploadFiles","_ref","_callee","theFile","destURI","_callee$","_context2","_x13","_x14","droppedURIHandler","_ref2","_callee2","uris","_iterator","_step","_callee2$","_context3","finish","_x15","turnOnInput","getImageDoc","imageDoc","Date","now","tookPicture","_x16","_tookPicture","_callee4","_callee4$","_context5","menuButton","menuHandler","buttonStyle","rhs","me","authn","currentUser","menuOptions","div","newBase","event","chatChannel","lhs","middle","innerHTML","rows","anyValue","_ref3","_callee3","_callee3$","_context4","code","shiftKey","shiftEnterSendsMessage","_x17","makeDropTarget","sendButton","sendIcon","cancelButton","dateFolder","leafDocumentFromDate","media","cameraButton","recordParticipation","channel","context","ensureLoggedIn","then","assign","findBookmarkDocument","_context"],"sources":["../../src/chat/message.js"],"sourcesContent":["/** UI code for individual messages: display them, edit them\n *\n * @packageDocumentation\n */\n\n/* global $rdf */\nimport { insertMessageIntoTable } from './infinite'\nimport { messageToolbar, sentimentStripLinked } from './messageTools'\nimport { findBookmarkDocument } from './bookmarks'\nimport { mostRecentVersion, originalVersion, allVersions } from './chatLogic'\nimport * as debug from '../debug'\nimport { icons } from '../iconBase'\nimport { store, authn } from 'solid-logic'\nimport { ensureLoggedIn } from '../login/login'\nimport { media } from '../media/index'\nimport * as ns from '../ns'\nimport * as pad from '../pad'\nimport * as style from '../style'\nimport * as utils from '../utils'\nimport * as widgets from '../widgets'\nimport { getBlankMsg, verifySignature, SEC } from './signature'\nimport { getPublicKey } from './keys'\n\nconst dom = window.document\nconst messageBodyStyle = style.messageBodyStyle\n\nconst label = utils.label\n\n/**\n * elementForImageURI\n * HTML component for an image\n * @param imageUri\n * @param options { inlineImageHeightEms }\n * @returns HTMLAnchorElement For Image\n */\nexport function elementForImageURI (imageUri, options) {\n const img = dom.createElement('img')\n let height = '10'\n if (options.inlineImageHeightEms) {\n height = ('' + options.inlineImageHeightEms).trim()\n }\n img.setAttribute(\n 'style',\n 'max-height: ' + height + 'em; border-radius: 1em; margin: 0.7em;'\n )\n // widgets.makeDropTarget(img, handleURIsDroppedOnMugshot, droppedFileHandler)\n if (imageUri) img.setAttribute('src', imageUri)\n const anchor = dom.createElement('a')\n anchor.setAttribute('href', imageUri)\n anchor.setAttribute('target', 'images')\n anchor.appendChild(img)\n widgets.makeDraggable(img, $rdf.sym(imageUri))\n return anchor\n}\n\nconst 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', 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\nfunction nickname (person) {\n const s = store.any(person, ns.foaf('nick'))\n if (s) return '' + s.value\n return '' + label(person)\n}\n\n/**\n * creatorAndDate\n * Displays creator and date for a chat message\n * inside the `td1` element\n * @param td1\n * @param creator\n * @param date\n * @param message\n * @returns HTMLAnchorElement For Image\n */\nexport function creatorAndDate (td1, creator, date, message) {\n const nickAnchor = td1.appendChild(anchor(nickname(creator), creator))\n if (creator.uri) {\n store.fetcher.nowOrWhenFetched(creator.doc(), undefined, function (\n _ok,\n _body\n ) {\n nickAnchor.textContent = nickname(creator)\n })\n }\n td1.appendChild(dom.createElement('br'))\n td1.appendChild(anchor(date, message))\n}\n\n/**\n * creatorAndDateHorizontal\n * Horizontally displays creator and date for a chat message\n * inside the `td1` element\n * @param td1\n * @param creator\n * @param date\n * @param message\n * @returns HTMLAnchorElement For Image\n */\nexport function creatorAndDateHorizontal (td1, creator, date, message) {\n const nickAnchor = td1.appendChild(anchor(label(creator), creator))\n if (creator.uri) {\n store.fetcher.nowOrWhenFetched(creator.doc(), undefined, function (\n _ok,\n _body\n ) {\n nickAnchor.textContent = nickname(creator)\n })\n }\n const dateBit = td1.appendChild(anchor(date, message))\n dateBit.style.fontSize = '80%'\n dateBit.style.marginLeft = '1em'\n td1.appendChild(dom.createElement('br'))\n}\n\n/**\n * renderMessageRow\n * Renders a chat message, read-only mode\n * @param channelObject\n * @param message\n * @param fresh\n * @param options\n * @param userContext\n * @returns Message Row HTML Table Element\n */\nexport async function renderMessageRow (channelObject, message, fresh, options, userContext) {\n const colorizeByAuthor =\n options.colorizeByAuthor === '1' || options.colorizeByAuthor === true\n\n const creator = store.any(message, ns.foaf('maker'))\n const date = store.any(message, ns.dct('created'))\n const latestVersion = await mostRecentVersion(message)\n debug.log(message)\n debug.log(latestVersion)\n const latestVersionCreator = store.any(latestVersion, ns.foaf('maker'))\n\n // use latest content if same owner, else use original\n // this is may be too strict. Should we find latest valid version if any ?\n debug.log('@@@@ alain creator')\n debug.log(creator)\n debug.log(latestVersionCreator)\n const msgId = creator.uri === latestVersionCreator?.uri ? latestVersion : message\n const content = store.any(msgId, ns.sioc('content'))\n\n const versions = await allVersions(msgId)\n if (versions.length > 1) {\n debug.log('renderMessageRow versions: ', versions.join(', '))\n }\n // be tolerant in accepting replies on any version of a message\n const replies = versions.map(version => store.each(version, ns.sioc('has_reply'))).flat()\n\n let thread = null\n const straightReplies = []\n for (const reply of replies) {\n if (store.holds(reply, ns.rdf('type'), ns.sioc('Thread'))) {\n thread = reply\n debug.log('renderMessageRow: found thread: ' + thread)\n } else {\n straightReplies.push(reply)\n }\n }\n if (straightReplies.length > 1) {\n debug.log('renderMessageRow: found normal replies: ', straightReplies)\n }\n debug.log('@@@@ is thread')\n if (!thread) {\n // thread = store.any(message, ns.sioc('has_reply'))\n thread = store.any(null, ns.sioc('has_member'), message)\n }\n // get signature\n const signature = store.any(msgId, $rdf.sym(`${SEC}proofValue`))\n\n // set proof message object\n const msg = getBlankMsg()\n msg.id = msgId.uri\n msg.created = store.any(msgId, ns.dct('created')).value\n msg.content = content.value\n msg.maker = creator.uri\n\n const messageRow = dom.createElement('tr')\n // verify signature\n if (!signature?.value) { // unsigned message\n messageRow.setAttribute('style', style.textInputBackgroundColorHighlight)\n } else { // signed message, get public key and check signature\n const publicKey = await getPublicKey(creator)\n debug.log(creator.uri + '\\n' + msg.created + '\\n' + msg.id + '\\n' + publicKey)\n if (!publicKey) {\n debug.warn('message is signed but ' + creator.uri + ' is missing publicKey')\n }\n // check that publicKey is a valid hex string\n const regex = /[0-9A-Fa-f]{6}/g\n const validSignature = verifySignature(signature?.value, msg, publicKey)\n const validPublicKeyHexString = publicKey?.match(regex)\n if (!validPublicKeyHexString) debug.warn('invalid publicKey hex string\\n' + creator.uri + '\\n' + publicKey)\n else if (signature?.value && !validSignature) debug.warn('invalid signature\\n' + msg.id)\n if (!validSignature || !validPublicKeyHexString) messageRow.setAttribute('style', style.textInputBackgroundColorError)\n }\n\n const originalMessage = await originalVersion(message)\n const edited = !message.sameTerm(originalMessage)\n // @@ load it first @@ Or display the new data at the old date.\n // @@@ kludge!\n const sortDate = store.the(originalMessage, ns.dct('created'), null, originalMessage.doc()) || store.the(message, ns.dct('created'), null, message.doc())\n // In message\n\n messageRow.AJAR_date = sortDate.value\n messageRow.AJAR_subject = message\n\n const td1 = dom.createElement('td')\n messageRow.appendChild(td1)\n if (!options.authorDateOnLeft) {\n const img = dom.createElement('img')\n img.setAttribute(\n 'style',\n 'max-height: 2.5em; max-width: 2.5em; border-radius: 0.5em; margin: auto;'\n )\n widgets.setImage(img, creator)\n td1.appendChild(img)\n } else {\n creatorAndDate(td1, creator, widgets.shortDate(sortDate.value), message)\n }\n let bothDates = widgets.shortDate(sortDate.value)\n if (edited) {\n bothDates += ' ... ' + widgets.shortDate(date.value)\n }\n\n // Render the content ot the message itself\n const td2 = messageRow.appendChild(dom.createElement('td'))\n\n if (!options.authorDateOnLeft) {\n creatorAndDateHorizontal(\n td2,\n creator,\n bothDates, // widgets.shortDate(dateString)\n message\n )\n }\n const text = content ? content.value.trim() : '??? no content?'\n const isURI = /^https?:\\/[^ <>]*$/i.test(text)\n let para = null\n if (isURI) {\n const isImage = /\\.(gif|jpg|jpeg|tiff|png|svg)$/i.test(text) // @@ Should use content-type not URI\n if (isImage && options.expandImagesInline) {\n const img = elementForImageURI(text, options)\n td2.appendChild(img)\n } else {\n // Link but not Image\n const anc = td2.appendChild(dom.createElement('a'))\n para = anc.appendChild(dom.createElement('p'))\n anc.href = text\n para.textContent = text\n td2.appendChild(anc)\n }\n } else {\n // text\n para = dom.createElement('p')\n td2.appendChild(para)\n para.textContent = text\n }\n if (para) {\n const bgcolor = colorizeByAuthor\n ? pad.lightColorHash(creator)\n : getBgColor(fresh)\n para.setAttribute(\n 'style',\n messageBodyStyle + 'background-color: ' + bgcolor + ';'\n )\n }\n\n function getBgColor (fresh) {\n return fresh ? '#e8ffe8' : 'white'\n }\n\n // Sentiment strip\n const strip = await sentimentStripLinked(message, message.doc())\n if (strip.children.length) {\n td2.appendChild(dom.createElement('br'))\n td2.appendChild(strip)\n }\n\n // Message tool bar button\n const td3 = dom.createElement('td')\n messageRow.appendChild(td3)\n const toolsButton = widgets.button(\n dom,\n icons.iconBase + 'noun_243787.svg',\n '...'\n )\n td3.appendChild(toolsButton)\n toolsButton.addEventListener('click', async function (_event) {\n if (messageRow.toolTR) {\n // already got a toolbar? Toogle\n messageRow.parentNode.removeChild(messageRow.toolTR)\n delete messageRow.toolTR\n return\n }\n const toolsTR = dom.createElement('tr')\n const tools = await messageToolbar(message, messageRow, { ...userContext, chatOptions: options }, channelObject)\n tools.style =\n 'border: 0.05em solid #888; border-radius: 0 0 0.7em 0.7em; border-top: 0; height:3.5em; background-color: #fff;' // @@ fix\n if (messageRow.nextSibling) {\n messageRow.parentElement.insertBefore(toolsTR, messageRow.nextSibling)\n } else {\n messageRow.parentElement.appendChild(toolsTR)\n }\n messageRow.toolTR = toolsTR\n toolsTR.appendChild(dom.createElement('td')) // left\n const toolsTD = toolsTR.appendChild(dom.createElement('td'))\n toolsTR.appendChild(dom.createElement('td')) // right\n toolsTD.appendChild(tools)\n })\n if (thread && options.showThread) {\n debug.log(' message has thread ' + thread)\n td3.appendChild(widgets.button(\n dom,\n icons.iconBase + 'noun_1180164.svg', // right arrow .. @@ think of stg better\n 'see thread',\n _e => {\n debug.log('@@@@ Calling showThread thread ' + thread)\n options.showThread(thread, options)\n }\n ))\n }\n return messageRow\n} // END OF RENDERMESSAGE\n\nexport async function switchToEditor (messageRow, message, channelObject, userContext) {\n const messageTable = messageRow.parentNode\n const editRow = renderMessageEditor(channelObject, messageTable, userContext,\n channelObject.options, await mostRecentVersion(message))\n messageTable.insertBefore(editRow, messageRow)\n editRow.originalRow = messageRow\n messageRow.style.visibility = 'hidden' // Hide the original message. unhide if user cancels edit\n}\n/* Control for a new message -- or editing an old message ***************\n *\n */\nexport function renderMessageEditor (channelObject, messageTable, userContext, options, originalMessage) {\n function revertEditing (messageEditor) {\n messageEditor.originalRow.style.visibility = 'visible' // restore read-only version\n messageEditor.parentNode.removeChild(messageEditor)\n }\n\n async function handleFieldInput (_event) {\n await sendMessage(field.value, true)\n }\n\n async function sendMessage (text, fromMainField) {\n async function sendComplete (message, _text2) {\n // const dateStamp = store.any(message, ns.dct('created'), null, message.doc())\n // const content = $rdf.literal(text2)\n await insertMessageIntoTable(channelObject, messageTable, message, false, options, userContext) // not green\n\n if (originalMessage) { // editing another message\n const oldRow = messageEditor.originalRow\n // oldRow.style.display = '' // restore read-only version, re-attack\n if (oldRow.parentNode) {\n oldRow.parentNode.removeChild(oldRow) // No longer needed old version\n } else {\n debug.warn('No parentNode on old message ' + oldRow.textContent)\n oldRow.style.backgroundColor = '#fee'\n oldRow.style.visibility = 'hidden' // @@ FIX THIS AND REMOVE FROM DOM INSTEAD\n }\n messageEditor.parentNode.removeChild(messageEditor) // no longer need editor\n } else {\n if (fromMainField) {\n field.value = '' // clear from out for reuse\n field.setAttribute('style', messageBodyStyle)\n field.disabled = false\n field.scrollIntoView(options.newestFirst) // allign bottom (top)\n field.focus() // Start typing next line immediately\n field.select()\n }\n }\n // await channelObject.div.refresh() // Add new day if nec @@ add back\n }\n\n // const me = authn.currentUser() // Must be logged on or wuld have got login button\n if (fromMainField) {\n field.setAttribute('style', messageBodyStyle + 'color: #bbb;') // pendingedit\n field.disabled = true\n }\n\n let message\n try {\n message = await channelObject.updateMessage(text, originalMessage, null, options.thread)\n } catch (err) {\n const statusArea = userContext.statusArea || messageEditor\n statusArea.appendChild(\n widgets.errorMessageBlock(dom, 'Error writing message: ' + err)\n )\n return\n }\n await sendComplete(message, text)\n } // sendMessage\n\n // DRAG AND DROP\n function droppedFileHandler (files) {\n const base = messageTable.chatDocument.dir().uri\n widgets.uploadFiles(\n store.fetcher,\n files,\n base + 'Files',\n base + 'Pictures',\n async function (theFile, destURI) {\n // @@@@@@ Wait for each if several\n await sendMessage(destURI)\n }\n )\n }\n\n // When a set of URIs are dropped on the field\n const droppedURIHandler = async function (uris) {\n for (const uri of uris) {\n await sendMessage(uri)\n }\n }\n\n // When we are actually logged on\n function turnOnInput () {\n function getImageDoc () {\n imageDoc = $rdf.sym(\n chatDocument.dir().uri + 'Image_' + Date.now() + '.png'\n )\n return imageDoc\n }\n\n async function tookPicture (imageDoc) {\n if (imageDoc) {\n await sendMessage(imageDoc.uri)\n }\n }\n\n // Body of turnOnInput\n\n let menuButton\n if (options.menuHandler) {\n const menuButton = widgets.button(\n dom, icons.iconBase + 'noun_243787.svg', 'More')\n menuButton.setAttribute('style', style.buttonStyle + 'float: right;')\n // menuButton.addEventListener('click', _event => sendMessage(), false) (done in turnoninput)\n rhs.appendChild(menuButton)\n }\n\n if (options.menuHandler && menuButton) {\n const me = authn.currentUser()\n const menuOptions = {\n me,\n dom,\n div: null, // @@ was: div\n newBase: messageTable.chatDocument.dir().uri\n }\n menuButton.addEventListener(\n 'click',\n event => {\n options.menuHandler(event, channelObject.chatChannel, menuOptions)\n },\n false\n )\n }\n\n const me = authn.currentUser() // If already logged on\n creatorAndDate(lhs, me, '', null)\n\n field = dom.createElement('textarea')\n middle.innerHTML = ''\n middle.appendChild(field)\n field.rows = 3\n if (originalMessage) {\n field.value = store.anyValue(originalMessage, ns.sioc('content'), null, originalMessage.doc())\n }\n // field.cols = 40\n field.setAttribute('style', messageBodyStyle + 'background-color: #eef;')\n\n // Trap the Enter BEFORE it is used ti make a newline\n\n field.addEventListener(\n 'keydown',\n async function (e) {\n // User preference?\n if (e.code === 'Enter') {\n // if (e.keyCode === 13) { // deprocated https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode\n if ((!e.shiftKey && !options.shiftEnterSendsMessage) || (e.shiftKey && options.shiftEnterSendsMessage)) {\n // Shift-Enter just adds a new line\n // (note alt-enter doesn't add newline anyway on my setup - so have to use shift.\n await handleFieldInput(e)\n }\n }\n },\n false\n )\n\n widgets.makeDropTarget(field, droppedURIHandler, droppedFileHandler)\n\n rhs.innerHTML = ''\n\n sendButton = widgets.button(dom, sendIcon, 'Send')\n sendButton.style.float = 'right'\n sendButton.addEventListener('click', _event => handleFieldInput(), false)\n rhs.appendChild(sendButton)\n\n if (originalMessage) { // Are we editing another message?\n const cancelButton = rhs.appendChild(widgets.cancelButton(dom))\n cancelButton.style.float = 'left'\n // cancelButton.firstChild.style.opacity = '0.3' // moved to buttons\n cancelButton.addEventListener('click', _event => revertEditing(messageEditor), false)\n rhs.appendChild(cancelButton)\n }\n\n const chatDocument = channelObject.dateFolder.leafDocumentFromDate(new Date())\n let imageDoc\n\n middle.appendChild(\n media.cameraButton(dom, store, getImageDoc, tookPicture)\n )\n\n pad.recordParticipation(channelObject.channel, channelObject.channel.doc()) // participation =\n } // turn on inpuut\n\n // Body of renderMessageEditor\n\n let sortDate, sendIcon\n if (originalMessage) {\n sortDate = store.anyValue(originalMessage, ns.dct('created'), null, originalMessage.doc())\n // text = store.anyValue(originalMessage, ns.sioc('content'), null, originalMessage.doc())\n sendIcon = icons.iconBase + 'noun_1180158.svg' // Green check\n // cancelIcon = icons.iconBase + 'noun_1180156.svg' // Black cross\n } else {\n sendIcon = icons.iconBase + 'noun_383448.svg'\n sortDate = '9999-01-01T00:00:00Z' // ISO format for field sort\n // text = ''\n }\n const messageEditor = dom.createElement('tr')\n const lhs = dom.createElement('td')\n const middle = dom.createElement('td')\n const rhs = dom.createElement('td')\n messageEditor.appendChild(lhs)\n messageEditor.appendChild(middle)\n messageEditor.appendChild(rhs)\n messageEditor.AJAR_date = sortDate\n // messageEditor.appendChild(dom.createElement('br'))\n\n let field, sendButton\n const context = { div: middle, dom }\n\n ensureLoggedIn(context).then(context => {\n // me = context.me\n turnOnInput()\n Object.assign(context, userContext)\n findBookmarkDocument(context).then(_context => {\n // debug.log('Bookmark file: ' + context.bookmarkDocument)\n })\n })\n\n return messageEditor\n} // renderMessageEditor\n"],"mappings":"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"}
|
package/lib/chat/signature.d.ts
CHANGED
|
@@ -4,10 +4,8 @@ export declare const SEC = "https://w3id.org/security#";
|
|
|
4
4
|
export type MsgTemplate = {
|
|
5
5
|
id: string;
|
|
6
6
|
created: string;
|
|
7
|
-
dateDeleted: string;
|
|
8
7
|
content: string;
|
|
9
8
|
maker: string;
|
|
10
|
-
sig: string;
|
|
11
9
|
};
|
|
12
10
|
export type UnsignedMsg = MsgTemplate & {
|
|
13
11
|
pubkey: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../src/chat/signature.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../../src/chat/signature.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,aAA2B,CAAA;AACnD,eAAO,MAAM,WAAW,aAAoB,CAAA;AAE5C,eAAO,MAAM,GAAG,+BAA+B,CAAA;AAE/C,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG;IACtC,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG;IAClC,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,wBAAgB,WAAW,IAAK,WAAW,CAO1C;AAED,wBAAgB,YAAY,CAAE,GAAG,EAAE,WAAW,GAAG,MAAM,CAEtD;AAED,wBAAgB,UAAU,CAAE,OAAO,EAAE,WAAW,UAG/C;AAED,wBAAgB,eAAe,CAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAMvF;AAED,wBAAgB,OAAO,CAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAIlE"}
|
package/lib/chat/signature.js
CHANGED
|
@@ -13,96 +13,27 @@ exports.verifySignature = verifySignature;
|
|
|
13
13
|
var _secp256k = require("@noble/curves/secp256k1");
|
|
14
14
|
var _utils = require("@noble/hashes/utils");
|
|
15
15
|
var _sha = require("@noble/hashes/sha256");
|
|
16
|
-
// import {utf8Encoder} from './utils'
|
|
17
|
-
// import { getPublicKey } from './keys'
|
|
18
|
-
|
|
19
16
|
var utf8Decoder = new TextDecoder('utf-8');
|
|
20
17
|
exports.utf8Decoder = utf8Decoder;
|
|
21
18
|
var utf8Encoder = new TextEncoder();
|
|
22
19
|
exports.utf8Encoder = utf8Encoder;
|
|
23
20
|
var SEC = 'https://w3id.org/security#'; // Proof, VerificationMethod
|
|
24
|
-
// export const CERT = 'http://www.w3.org/ns/auth/cert#' // PrivateKey, PublicKey, key
|
|
25
|
-
|
|
26
|
-
/* eslint-disable no-unused-vars */
|
|
27
|
-
/* export enum Kind {
|
|
28
|
-
Metadata = 0,
|
|
29
|
-
Text = 1,
|
|
30
|
-
RecommendRelay = 2,
|
|
31
|
-
Contacts = 3,
|
|
32
|
-
EncryptedDirectMessage = 4,
|
|
33
|
-
EventDeletion = 5,
|
|
34
|
-
Reaction = 7,
|
|
35
|
-
BadgeAward = 8,
|
|
36
|
-
ChannelCreation = 40,
|
|
37
|
-
ChannelMetadata = 41,
|
|
38
|
-
ChannelMessage = 42,
|
|
39
|
-
ChannelHideMessage = 43,
|
|
40
|
-
ChannelMuteUser = 44,
|
|
41
|
-
Report = 1984,
|
|
42
|
-
ZapRequest = 9734,
|
|
43
|
-
Zap = 9735,
|
|
44
|
-
RelayList = 10002,
|
|
45
|
-
ClientAuth = 22242,
|
|
46
|
-
BadgeDefinition = 30008,
|
|
47
|
-
ProfileBadge = 30009,
|
|
48
|
-
Article = 30023
|
|
49
|
-
} */
|
|
50
21
|
exports.SEC = SEC;
|
|
51
22
|
function getBlankMsg() {
|
|
52
23
|
return {
|
|
53
24
|
id: '',
|
|
54
25
|
created: '',
|
|
55
|
-
dateDeleted: '',
|
|
56
|
-
// TODO to remove if not used
|
|
57
26
|
content: '',
|
|
58
|
-
maker: ''
|
|
59
|
-
sig: '' // TODO to remove if not used
|
|
27
|
+
maker: ''
|
|
60
28
|
};
|
|
61
29
|
}
|
|
62
|
-
|
|
63
|
-
/* export function finishMsg (t: MsgTemplate, privateKey: string): Message {
|
|
64
|
-
// to update to chat message triples
|
|
65
|
-
const message = t as Message
|
|
66
|
-
// message.pubkey = getPublicKey(privateKey)
|
|
67
|
-
message.id = getMsgHash(message)
|
|
68
|
-
message.sig = signMsg(message, privateKey)
|
|
69
|
-
return message
|
|
70
|
-
} */
|
|
71
|
-
|
|
72
30
|
function serializeMsg(msg) {
|
|
73
|
-
// to update to chat messages triples
|
|
74
|
-
/* if (!validateMsg(msg))
|
|
75
|
-
throw new Error("can't serialize message with wrong or missing properties") */
|
|
76
|
-
|
|
77
31
|
return JSON.stringify(msg);
|
|
78
32
|
}
|
|
79
33
|
function getMsgHash(message) {
|
|
80
34
|
var msgHash = (0, _sha.sha256)(utf8Encoder.encode(serializeMsg(message)));
|
|
81
35
|
return (0, _utils.bytesToHex)(msgHash);
|
|
82
36
|
}
|
|
83
|
-
|
|
84
|
-
// const isRecord = (obj: unknown): obj is Record<string, unknown> => obj instanceof Object
|
|
85
|
-
|
|
86
|
-
/* export function validateMsg<T> (message: T): message is T & UnsignedMsg {
|
|
87
|
-
if (!isRecord(message)) return false
|
|
88
|
-
if (typeof message.kind !== 'number') return false
|
|
89
|
-
if (typeof message.content !== 'string') return false
|
|
90
|
-
if (typeof message.created_at !== 'number') return false
|
|
91
|
-
if (typeof message.pubkey !== 'string') return false
|
|
92
|
-
if (!message.pubkey.match(/^[a-f0-9]{64}$/)) return false
|
|
93
|
-
|
|
94
|
-
if (!Array.isArray(message.tags)) return false
|
|
95
|
-
for (let i = 0; i < message.tags.length; i++) {
|
|
96
|
-
let tag = message.tags[i]
|
|
97
|
-
if (!Array.isArray(tag)) return false
|
|
98
|
-
for (let j = 0; j < tag.length; j++) {
|
|
99
|
-
if (typeof tag[j] === 'object') return false
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
return true
|
|
104
|
-
} */
|
|
105
|
-
|
|
106
37
|
function verifySignature(sig, message, pubKey) {
|
|
107
38
|
return _secp256k.schnorr.verify(sig, getMsgHash(message), pubKey);
|
|
108
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature.js","names":["_secp256k","require","_utils","_sha","utf8Decoder","TextDecoder","exports","utf8Encoder","TextEncoder","SEC","getBlankMsg","id","created","
|
|
1
|
+
{"version":3,"file":"signature.js","names":["_secp256k","require","_utils","_sha","utf8Decoder","TextDecoder","exports","utf8Encoder","TextEncoder","SEC","getBlankMsg","id","created","content","maker","serializeMsg","msg","JSON","stringify","getMsgHash","message","msgHash","sha256","encode","bytesToHex","verifySignature","sig","pubKey","schnorr","verify","signMsg","key","sign"],"sources":["../../src/chat/signature.ts"],"sourcesContent":["import { schnorr } from '@noble/curves/secp256k1'\r\nimport { bytesToHex } from '@noble/hashes/utils'\r\nimport { sha256 } from '@noble/hashes/sha256'\r\n\r\nexport const utf8Decoder = new TextDecoder('utf-8')\r\nexport const utf8Encoder = new TextEncoder()\r\n\r\nexport const SEC = 'https://w3id.org/security#' // Proof, VerificationMethod\r\n\r\nexport type MsgTemplate = {\r\n id: string\r\n created: string\r\n content: string\r\n maker: string\r\n}\r\n\r\nexport type UnsignedMsg = MsgTemplate & {\r\n pubkey: string\r\n}\r\n\r\nexport type Message = UnsignedMsg & {\r\n id: string\r\n sig: string\r\n}\r\n\r\nexport function getBlankMsg (): MsgTemplate {\r\n return {\r\n id: '',\r\n created: '',\r\n content: '',\r\n maker: ''\r\n }\r\n}\r\n\r\nexport function serializeMsg (msg: UnsignedMsg): string {\r\n return JSON.stringify(msg)\r\n}\r\n\r\nexport function getMsgHash (message: UnsignedMsg) {\r\n const msgHash = sha256(utf8Encoder.encode(serializeMsg(message)))\r\n return bytesToHex(msgHash)\r\n}\r\n\r\nexport function verifySignature (sig: string, message: Message, pubKey: string): boolean {\r\n return schnorr.verify(\r\n sig,\r\n getMsgHash(message),\r\n pubKey\r\n )\r\n}\r\n\r\nexport function signMsg (message: UnsignedMsg, key: string): string {\r\n return bytesToHex(\r\n schnorr.sign(getMsgHash(message), key)\r\n )\r\n}\r\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;AAEO,IAAMG,WAAW,GAAG,IAAIC,WAAW,CAAC,OAAO,CAAC;AAAAC,OAAA,CAAAF,WAAA,GAAAA,WAAA;AAC5C,IAAMG,WAAW,GAAG,IAAIC,WAAW,EAAE;AAAAF,OAAA,CAAAC,WAAA,GAAAA,WAAA;AAErC,IAAME,GAAG,GAAG,4BAA4B,EAAC;AAAAH,OAAA,CAAAG,GAAA,GAAAA,GAAA;AAkBzC,SAASC,WAAWA,CAAA,EAAiB;EAC1C,OAAO;IACLC,EAAE,EAAE,EAAE;IACNC,OAAO,EAAE,EAAE;IACXC,OAAO,EAAE,EAAE;IACXC,KAAK,EAAE;EACT,CAAC;AACH;AAEO,SAASC,YAAYA,CAAEC,GAAgB,EAAU;EACtD,OAAOC,IAAI,CAACC,SAAS,CAACF,GAAG,CAAC;AAC5B;AAEO,SAASG,UAAUA,CAAEC,OAAoB,EAAE;EAChD,IAAMC,OAAO,GAAG,IAAAC,WAAM,EAACf,WAAW,CAACgB,MAAM,CAACR,YAAY,CAACK,OAAO,CAAC,CAAC,CAAC;EACjE,OAAO,IAAAI,iBAAU,EAACH,OAAO,CAAC;AAC5B;AAEO,SAASI,eAAeA,CAAEC,GAAW,EAAEN,OAAgB,EAAEO,MAAc,EAAW;EACvF,OAAOC,iBAAO,CAACC,MAAM,CACnBH,GAAG,EACHP,UAAU,CAACC,OAAO,CAAC,EACnBO,MAAM,CACP;AACH;AAEO,SAASG,OAAOA,CAAEV,OAAoB,EAAEW,GAAW,EAAU;EAClE,OAAO,IAAAP,iBAAU,EACfI,iBAAO,CAACI,IAAI,CAACb,UAAU,CAACC,OAAO,CAAC,EAAEW,GAAG,CAAC,CACvC;AACH"}
|
package/lib/style.js
CHANGED
|
@@ -77,6 +77,8 @@ var style = {
|
|
|
77
77
|
formFieldNameBoxStyle: "padding: 0.3em; vertical-align: middle; width:".concat(formFieldNameBoxWidth, ";"),
|
|
78
78
|
textInputBackgroundColor: '#eef',
|
|
79
79
|
textInputBackgroundColorUneditable: '#fff',
|
|
80
|
+
textInputBackgroundColorError: 'background-color: #fee;',
|
|
81
|
+
textInputBackgroundColorHighlight: 'background-color: #fdeadc;',
|
|
80
82
|
textInputColor: '#000',
|
|
81
83
|
textInputColorPending: '#888',
|
|
82
84
|
multilineTextInputStyle: 'font-size:100%; white-space: pre-wrap; background-color: #eef;' + ' border: 0.07em solid gray; padding: 1em 0.5em; margin: 1em 1em;',
|
package/lib/style.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.js","names":["formBorderColor","lowProfileLinkColor","formFieldNameBoxWidth","style","checkboxStyle","checkboxInputStyle","fieldLabelStyle","formSelectSTyle","textInputStyle","textInputStyleUneditable","textInputSize","buttonStyle","commentStyle","iconStyle","smallButtonStyle","classIconStyle","confirmPopupStyle","tabBorderRadius","messageBodyStyle","pendingeditModifier","highlightColor","personaBarStyle","searchInputStyle","autocompleteRowStyle","signInButtonStyle","heading1Style","heading2Style","heading3Style","heading4Style","formHeadingColor","formHeadingStyle","formTextInput","formGroupStyle","concat","formFieldLabelStyle","formFieldNameBoxStyle","textInputBackgroundColor","textInputBackgroundColorUneditable","textInputColor","textInputColorPending","multilineTextInputStyle","renderAsDivStyle","imageDivStyle","linkDivStyle","aclControlBoxContainer","aclControlBoxHeader","aclControlBoxStatus","aclControlBoxStatusRevealed","aclGroupContent","accessGroupList","accessGroupListItem","defaultsController","defaultsControllerNotice","bigButton","group","group1","group2","group3","group5","group9","group13","trustedAppAddApplicationsTable","trustedAppCancelButton","trustedAppControllerI","temporaryStatusInit","temporaryStatusEnd","headerUserMenuLink","headerUserMenuLinkHover","headerUserMenuTrigger","headerUserMenuTriggerImg","headerUserMenuButton","headerUserMenuButtonHover","headerUserMenuList","headerUserMenuListDisplay","headerUserMenuNavigationMenu","headerUserMenuNavigationMenuNotDisplayed","headerUserMenuListItem","headerUserMenuPhoto","headerBanner","headerBannerLink","headerBannerRightMenu","headerBannerLogin","allChildrenVisible","headerBannerLoginInput","headerBannerUserMenu","headerBannerHelpMenu","headerBannerIcon","footer","primaryButton","primaryButtonHover","primaryButtonNoBorder","primaryButtonNoBorderHover","secondaryButton","secondaryButtonHover","secondaryButtonNoBorder","secondaryButtonNoBorderHover","exports","setStyle","ele","styleName","module"],"sources":["../src/style.js"],"sourcesContent":["// Common readable consistent stylesheet\n// to avoid using style sheets which are document-global\n// and make programmable style toggling with selection, drag over, etc easier\n\n// These must all end with semicolon so they can be appended to.\n\nconst formBorderColor = '#888888' // Mid-grey\nconst lowProfileLinkColor = '#3B5998' // Grey-blue, e.g., for field labels linking to ontology\nconst formFieldNameBoxWidth = '8em' // The fixed amount to get form fields to line up\n// The latter we put in when switching awy from using tables. Getting allignment between\n// fields in different groups though is hard problem.\n\nexport const style = { // styleModule\n\n checkboxStyle: 'color: black; font-size: 100%; padding-left: 0.5 em; padding-right: 0.5 em;',\n checkboxInputStyle: 'font-size: 150%; height: 1.2em; width: 1.2em; background-color: #eef; border-radius:0.2em; margin: 0.1em',\n\n fieldLabelStyle: 'color: #3B5998; text-decoration: none;',\n formSelectSTyle:\n 'background-color: #eef; padding: 0.5em; border: .05em solid #88c; border-radius:0.2em; font-size: 100%; margin:0.4em;',\n textInputStyle:\n 'background-color: #eef; padding: 0.5em; border: .05em solid #88c; border-radius:0.2em; font-size: 100%; margin:0.4em;',\n textInputStyleUneditable: // Color difference only\n 'background-color: white; padding: 0.5em; border: .05em solid white; border-radius:0.2em; font-size: 100%; margin:0.4em;',\n textInputSize: 20, // Default text input size in characters roughly\n buttonStyle:\n 'background-color: #fff; padding: 0.7em; border: .01em solid white; border-radius:0.2em; font-size: 100%; margin: 0.3em;', // 'background-color: #eef;\n commentStyle: 'padding: 0.7em; border: none; font-size: 100%; white-space: pre-wrap;',\n iconStyle: 'width: 3em; height: 3em; margin: 0.1em; border-radius: 1em;',\n smallButtonStyle: 'margin: 0.2em; width: 1em; height:1em;',\n classIconStyle: 'width: 3em; height: 3em; margin: 0.1em; border-radius: 0.2em; border: 0.1em solid green; padding: 0.2em; background-color: #efe;', // combine with buttonStyle\n confirmPopupStyle: 'padding: 0.7em; border-radius: 0.2em; border: 0.1em solid orange; background-color: white; box-shadow: 0.5em 0.9em #888;',\n tabBorderRadius: '0.2em',\n messageBodyStyle:\n 'white-space: pre-wrap; width: 99%; font-size:100%; border: 0.07em solid #eee; border-radius:0.2em; padding: .3em 0.5em; margin: 0.1em;',\n pendingeditModifier: 'color: #bbb;',\n highlightColor: '#7C4DFF', // Solid lavendar https://design.inrupt.com/atomic-core/?cat=Core\n\n // Contacts\n personaBarStyle: 'width: 100%; height: 4em; background-color: #eee; vertical-align: middle;',\n searchInputStyle: 'border: 0.1em solid #444; border-radius: 0.2em; width: 100%; font-size: 100%; padding: 0.1em 0.6em; margin 0.2em;',\n autocompleteRowStyle: 'border: 0.2em solid straw;',\n\n // Login buttons\n signInButtonStyle: 'padding: 1em; border-radius:0.2em; font-size: 100%;', // was 0.5em radius\n\n // Forms\n heading1Style: 'font-size: 180%; font-weight: bold; color: #888888; padding: 0.5em; margin: 0.7em 0.0m;', // originally was brown; now grey\n heading2Style: 'font-size: 130%; font-weight: bold; color: #888888; padding: 0.4em; margin: 0.7em 0.0em;', // originally was brown; now grey\n heading3Style: 'font-size: 120%; font-weight: bold; color: #888888; padding: 0.3em; margin: 0.7em 0.0em;', // For example, in large forms or before a small form\n heading4Style: 'font-size: 110%; font-weight: bold; color: #888888; padding: 0.2em; margin: 0.7em 0.0em;', // Lowest level used by default in small things\n\n formBorderColor, // originally was brown; now grey\n formHeadingColor: '#888888', // originally was brown; now grey\n formHeadingStyle: 'font-size: 110%; font-weight: bold; color: #888888; padding: 0.2em; margin: 0.7em 0.0em;', // originally was brown; now grey\n formTextInput: 'font-size: 100%; margin: 0.1em; padding: 0.1em;', // originally used this\n formGroupStyle: [`padding-left: 0em; border: 0.0em solid ${formBorderColor}; border-radius: 0.2em;`, // weight 0\n `padding-left: 2em; border: 0.05em solid ${formBorderColor}; border-radius: 0.2em;`,\n `padding-left: 2em; border: 0.1em solid ${formBorderColor}; border-radius: 0.2em;`,\n `padding-left: 2em; border: 0.2em solid ${formBorderColor}; border-radius: 0.2em;` // @@ pink\n ],\n\n formFieldLabelStyle: `'color: ${lowProfileLinkColor}; text-decoration: none;'`,\n formFieldNameBoxWidth,\n formFieldNameBoxStyle: `padding: 0.3em; vertical-align: middle; width:${formFieldNameBoxWidth};`,\n textInputBackgroundColor: '#eef',\n textInputBackgroundColorUneditable: '#fff',\n textInputColor: '#000',\n textInputColorPending: '#888',\n multilineTextInputStyle: 'font-size:100%; white-space: pre-wrap; background-color: #eef;' +\n ' border: 0.07em solid gray; padding: 1em 0.5em; margin: 1em 1em;',\n\n // Buttons\n renderAsDivStyle: 'display: flex; align-items: center; justify-content: space-between; height: 2.5em; padding: 1em;',\n imageDivStyle: 'width:2.5em; padding:0.5em; height: 2.5em;',\n linkDivStyle: 'width:2em; padding:0.5em; height: 4em;',\n\n // ACL\n aclControlBoxContainer: 'margin: 1em',\n aclControlBoxHeader: 'font-size: 120%; margin: 0 0 1rem',\n aclControlBoxStatus: 'display: none; margin: 1rem 0',\n aclControlBoxStatusRevealed: 'display: block',\n aclGroupContent: 'maxWidth: 650',\n accessGroupList: 'display: grid; grid-template-columns: 1fr; margin: 1em; width: 100%',\n accessGroupListItem: 'display: grid; grid-template-columns: 100px auto 30%',\n defaultsController: 'display: flex',\n defaultsControllerNotice: 'color: #888; flexGrow: 1; fontSize: 80%',\n bigButton: 'background-color: white; border: 0.1em solid #888; border-radius: 0.3em; max-width: 50%; padding-bottom: 1em; padding-top: 1em',\n group: 'color: #888',\n group1: 'color: green',\n group2: 'color: #cc0',\n group3: 'color: orange',\n group5: 'color: red',\n group9: 'color: blue',\n group13: 'color: purple',\n\n trustedAppAddApplicationsTable: 'background-color: #eee',\n trustedAppCancelButton: 'float: right',\n trustedAppControllerI: 'border-color: orange; borderRadius: 1em; borderWidth: 0.1em',\n temporaryStatusInit: 'background: green',\n temporaryStatusEnd: 'background: transparent; transition: background 5s linear',\n\n // header\n headerUserMenuLink: 'background: none; border: 0; color: black; cursor: pointer; display: block; font-family: Arial; font-size: 1em; text-align: left; padding: 1em; width: 100%; text-decoration: none',\n headerUserMenuLinkHover: 'background: none; border: 0; color: black; cursor: pointer; display: block; font-family: Arial; font-size: 1em; text-align: left; padding: 1em; width: 100%; text-decoration: none; background-image: linear-gradient(to right, #7C4DFF 0%, #18A9E6 50%, #01C9EA 100%)',\n headerUserMenuTrigger: 'background: none; border: 0; cursor: pointer; width: 60px; height: 60px',\n headerUserMenuTriggerImg: 'border-radius: 50%; height: 56px; width: 28px !important',\n headerUserMenuButton: 'background: none; border: 0; color: black; cursor: pointer; display: block; font-family: Arial; font-size: 1em; text-align: left; padding: 1em; width: 100%',\n headerUserMenuButtonHover: 'background: none; border: 0; color: black; cursor: pointer; display: block; font-family: Arial; font-size: 1em; text-align: left; padding: 1em; width: 100%; background-image: linear-gradient(to right, #7C4DFF 0%, #18A9E6 50%, #01C9EA 100%)',\n headerUserMenuList: 'list-style: none; margin: 0; padding: 0',\n headerUserMenuListDisplay: 'list-style: none; margin: 0; padding: 0; display:true',\n headerUserMenuNavigationMenu: 'background: white; border: solid 1px #000000; border-right: 0; position: absolute; right: 0; top: 60px; width: 200px; z-index: 1; display: true',\n headerUserMenuNavigationMenuNotDisplayed: 'background: white; border: solid 1px #000000; border-right: 0; position: absolute; right: 0; top: 60px; width: 200px; z-index: 1; display: none',\n headerUserMenuListItem: 'border-bottom: solid 1px #000000',\n headerUserMenuPhoto: 'border-radius: 50%; background-position: center; background-repeat: no-repeat; background-size: cover; height: 50px; width: 50px',\n headerBanner: 'box-shadow: 0px 1px 4px #000000; display: flex; justify-content: space-between; padding: 0 1.5em; margin-bottom: 4px',\n headerBannerLink: 'display: block',\n headerBannerRightMenu: 'display: flex',\n headerBannerLogin: 'margin-left: auto',\n allChildrenVisible: 'display:true',\n headerBannerLoginInput: 'margin: 0.75em 0 0.75em 0.5em !important; padding: 0.5em !important',\n headerBannerUserMenu: 'border-left: solid 1px #000000; margin-left: auto',\n headerBannerHelpMenu: 'border-left: solid 1px #000000; margin.left: auto',\n headerBannerIcon: 'background-size: 65px 60px !important; height: 60px !important; width: 65px !important', // may just be 65px round($icon-size * 352 / 322);\n\n // footer\n footer: 'border-top: solid 1px $divider-color; font-size: 0.9em; padding: 0.5em 1.5em',\n\n // buttons\n primaryButton: 'background-color: #7c4dff; color: #ffffff; font-family: Raleway, Roboto, sans-serif; border-radius: 0.25em; border-color: #7c4dff; border: 1px solid; cursor: pointer; font-size: .8em;text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none',\n\n primaryButtonHover: 'background-color: #9f7dff; color: #ffffff; font-family: Raleway, Roboto, sans-serif;border-radius: 0.25em; border-color: #7c4dff; border: 1px solid; cursor: pointer; font-size: .8em;text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none; transition: 0.25s all ease-in-out',\n\n primaryButtonNoBorder: 'background-color: #ffffff; color: #7c4dff; font-family: Raleway, Roboto, sans-serif;border-radius: 0.25em; border-color: #7c4dff; border: 1px solid; cursor: pointer; font-size: .8em;text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none',\n\n primaryButtonNoBorderHover: 'background-color: #7c4dff; color: #ffffff; font-family: Raleway, Roboto, sans-serif; border-radius: 0.25em; border-color: #7c4dff; border: 1px solid; cursor: pointer; font-size: .8em; text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none; transition: 0.25s all ease-in-out',\n\n secondaryButton: 'background-color: #01c9ea; color: #ffffff; font-family: Raleway, Roboto, sans-serif;border-radius: 0.25em; border-color: #01c9ea; border: 1px solid; cursor: pointer; font-size: .8em;text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none',\n\n secondaryButtonHover: 'background-color: #37cde6; color: #ffffff; font-family: Raleway, Roboto, sans-serif;border-radius: 0.25em; border-color: #7c4dff; border: 1px solid; cursor: pointer; font-size: .8em;text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none; transition: 0.25s all ease-in-out',\n\n secondaryButtonNoBorder: 'background-color: #ffffff; color: #01c9ea; font-family: Raleway, Roboto, sans-serif; border-radius: 0.25em; border-color: #01c9ea; border: 1px solid; cursor: pointer; font-size: .8em; text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none',\n\n secondaryButtonNoBorderHover: 'background-color: #01c9ea; color: #ffffff; font-family: Raleway, Roboto, sans-serif; border-radius: 0.25em; border-color: #01c9ea; border: 1px solid; cursor: pointer; font-size: .8em; text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none; transition: 0.25s all ease-in-out'\n\n}\n\nstyle.setStyle = function setStyle (ele, styleName) {\n ele.style = style[styleName]\n}\n\nmodule.exports = style // @@ No way to do this in ESM\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"style.js","names":["formBorderColor","lowProfileLinkColor","formFieldNameBoxWidth","style","checkboxStyle","checkboxInputStyle","fieldLabelStyle","formSelectSTyle","textInputStyle","textInputStyleUneditable","textInputSize","buttonStyle","commentStyle","iconStyle","smallButtonStyle","classIconStyle","confirmPopupStyle","tabBorderRadius","messageBodyStyle","pendingeditModifier","highlightColor","personaBarStyle","searchInputStyle","autocompleteRowStyle","signInButtonStyle","heading1Style","heading2Style","heading3Style","heading4Style","formHeadingColor","formHeadingStyle","formTextInput","formGroupStyle","concat","formFieldLabelStyle","formFieldNameBoxStyle","textInputBackgroundColor","textInputBackgroundColorUneditable","textInputBackgroundColorError","textInputBackgroundColorHighlight","textInputColor","textInputColorPending","multilineTextInputStyle","renderAsDivStyle","imageDivStyle","linkDivStyle","aclControlBoxContainer","aclControlBoxHeader","aclControlBoxStatus","aclControlBoxStatusRevealed","aclGroupContent","accessGroupList","accessGroupListItem","defaultsController","defaultsControllerNotice","bigButton","group","group1","group2","group3","group5","group9","group13","trustedAppAddApplicationsTable","trustedAppCancelButton","trustedAppControllerI","temporaryStatusInit","temporaryStatusEnd","headerUserMenuLink","headerUserMenuLinkHover","headerUserMenuTrigger","headerUserMenuTriggerImg","headerUserMenuButton","headerUserMenuButtonHover","headerUserMenuList","headerUserMenuListDisplay","headerUserMenuNavigationMenu","headerUserMenuNavigationMenuNotDisplayed","headerUserMenuListItem","headerUserMenuPhoto","headerBanner","headerBannerLink","headerBannerRightMenu","headerBannerLogin","allChildrenVisible","headerBannerLoginInput","headerBannerUserMenu","headerBannerHelpMenu","headerBannerIcon","footer","primaryButton","primaryButtonHover","primaryButtonNoBorder","primaryButtonNoBorderHover","secondaryButton","secondaryButtonHover","secondaryButtonNoBorder","secondaryButtonNoBorderHover","exports","setStyle","ele","styleName","module"],"sources":["../src/style.js"],"sourcesContent":["// Common readable consistent stylesheet\n// to avoid using style sheets which are document-global\n// and make programmable style toggling with selection, drag over, etc easier\n\n// These must all end with semicolon so they can be appended to.\n\nconst formBorderColor = '#888888' // Mid-grey\nconst lowProfileLinkColor = '#3B5998' // Grey-blue, e.g., for field labels linking to ontology\nconst formFieldNameBoxWidth = '8em' // The fixed amount to get form fields to line up\n// The latter we put in when switching awy from using tables. Getting allignment between\n// fields in different groups though is hard problem.\n\nexport const style = { // styleModule\n\n checkboxStyle: 'color: black; font-size: 100%; padding-left: 0.5 em; padding-right: 0.5 em;',\n checkboxInputStyle: 'font-size: 150%; height: 1.2em; width: 1.2em; background-color: #eef; border-radius:0.2em; margin: 0.1em',\n\n fieldLabelStyle: 'color: #3B5998; text-decoration: none;',\n formSelectSTyle:\n 'background-color: #eef; padding: 0.5em; border: .05em solid #88c; border-radius:0.2em; font-size: 100%; margin:0.4em;',\n textInputStyle:\n 'background-color: #eef; padding: 0.5em; border: .05em solid #88c; border-radius:0.2em; font-size: 100%; margin:0.4em;',\n textInputStyleUneditable: // Color difference only\n 'background-color: white; padding: 0.5em; border: .05em solid white; border-radius:0.2em; font-size: 100%; margin:0.4em;',\n textInputSize: 20, // Default text input size in characters roughly\n buttonStyle:\n 'background-color: #fff; padding: 0.7em; border: .01em solid white; border-radius:0.2em; font-size: 100%; margin: 0.3em;', // 'background-color: #eef;\n commentStyle: 'padding: 0.7em; border: none; font-size: 100%; white-space: pre-wrap;',\n iconStyle: 'width: 3em; height: 3em; margin: 0.1em; border-radius: 1em;',\n smallButtonStyle: 'margin: 0.2em; width: 1em; height:1em;',\n classIconStyle: 'width: 3em; height: 3em; margin: 0.1em; border-radius: 0.2em; border: 0.1em solid green; padding: 0.2em; background-color: #efe;', // combine with buttonStyle\n confirmPopupStyle: 'padding: 0.7em; border-radius: 0.2em; border: 0.1em solid orange; background-color: white; box-shadow: 0.5em 0.9em #888;',\n tabBorderRadius: '0.2em',\n messageBodyStyle:\n 'white-space: pre-wrap; width: 99%; font-size:100%; border: 0.07em solid #eee; border-radius:0.2em; padding: .3em 0.5em; margin: 0.1em;',\n pendingeditModifier: 'color: #bbb;',\n highlightColor: '#7C4DFF', // Solid lavendar https://design.inrupt.com/atomic-core/?cat=Core\n\n // Contacts\n personaBarStyle: 'width: 100%; height: 4em; background-color: #eee; vertical-align: middle;',\n searchInputStyle: 'border: 0.1em solid #444; border-radius: 0.2em; width: 100%; font-size: 100%; padding: 0.1em 0.6em; margin 0.2em;',\n autocompleteRowStyle: 'border: 0.2em solid straw;',\n\n // Login buttons\n signInButtonStyle: 'padding: 1em; border-radius:0.2em; font-size: 100%;', // was 0.5em radius\n\n // Forms\n heading1Style: 'font-size: 180%; font-weight: bold; color: #888888; padding: 0.5em; margin: 0.7em 0.0m;', // originally was brown; now grey\n heading2Style: 'font-size: 130%; font-weight: bold; color: #888888; padding: 0.4em; margin: 0.7em 0.0em;', // originally was brown; now grey\n heading3Style: 'font-size: 120%; font-weight: bold; color: #888888; padding: 0.3em; margin: 0.7em 0.0em;', // For example, in large forms or before a small form\n heading4Style: 'font-size: 110%; font-weight: bold; color: #888888; padding: 0.2em; margin: 0.7em 0.0em;', // Lowest level used by default in small things\n\n formBorderColor, // originally was brown; now grey\n formHeadingColor: '#888888', // originally was brown; now grey\n formHeadingStyle: 'font-size: 110%; font-weight: bold; color: #888888; padding: 0.2em; margin: 0.7em 0.0em;', // originally was brown; now grey\n formTextInput: 'font-size: 100%; margin: 0.1em; padding: 0.1em;', // originally used this\n formGroupStyle: [`padding-left: 0em; border: 0.0em solid ${formBorderColor}; border-radius: 0.2em;`, // weight 0\n `padding-left: 2em; border: 0.05em solid ${formBorderColor}; border-radius: 0.2em;`,\n `padding-left: 2em; border: 0.1em solid ${formBorderColor}; border-radius: 0.2em;`,\n `padding-left: 2em; border: 0.2em solid ${formBorderColor}; border-radius: 0.2em;` // @@ pink\n ],\n\n formFieldLabelStyle: `'color: ${lowProfileLinkColor}; text-decoration: none;'`,\n formFieldNameBoxWidth,\n formFieldNameBoxStyle: `padding: 0.3em; vertical-align: middle; width:${formFieldNameBoxWidth};`,\n textInputBackgroundColor: '#eef',\n textInputBackgroundColorUneditable: '#fff',\n textInputBackgroundColorError: 'background-color: #fee;',\n textInputBackgroundColorHighlight: 'background-color: #fdeadc;',\n textInputColor: '#000',\n textInputColorPending: '#888',\n multilineTextInputStyle: 'font-size:100%; white-space: pre-wrap; background-color: #eef;' +\n ' border: 0.07em solid gray; padding: 1em 0.5em; margin: 1em 1em;',\n\n // Buttons\n renderAsDivStyle: 'display: flex; align-items: center; justify-content: space-between; height: 2.5em; padding: 1em;',\n imageDivStyle: 'width:2.5em; padding:0.5em; height: 2.5em;',\n linkDivStyle: 'width:2em; padding:0.5em; height: 4em;',\n\n // ACL\n aclControlBoxContainer: 'margin: 1em',\n aclControlBoxHeader: 'font-size: 120%; margin: 0 0 1rem',\n aclControlBoxStatus: 'display: none; margin: 1rem 0',\n aclControlBoxStatusRevealed: 'display: block',\n aclGroupContent: 'maxWidth: 650',\n accessGroupList: 'display: grid; grid-template-columns: 1fr; margin: 1em; width: 100%',\n accessGroupListItem: 'display: grid; grid-template-columns: 100px auto 30%',\n defaultsController: 'display: flex',\n defaultsControllerNotice: 'color: #888; flexGrow: 1; fontSize: 80%',\n bigButton: 'background-color: white; border: 0.1em solid #888; border-radius: 0.3em; max-width: 50%; padding-bottom: 1em; padding-top: 1em',\n group: 'color: #888',\n group1: 'color: green',\n group2: 'color: #cc0',\n group3: 'color: orange',\n group5: 'color: red',\n group9: 'color: blue',\n group13: 'color: purple',\n\n trustedAppAddApplicationsTable: 'background-color: #eee',\n trustedAppCancelButton: 'float: right',\n trustedAppControllerI: 'border-color: orange; borderRadius: 1em; borderWidth: 0.1em',\n temporaryStatusInit: 'background: green',\n temporaryStatusEnd: 'background: transparent; transition: background 5s linear',\n\n // header\n headerUserMenuLink: 'background: none; border: 0; color: black; cursor: pointer; display: block; font-family: Arial; font-size: 1em; text-align: left; padding: 1em; width: 100%; text-decoration: none',\n headerUserMenuLinkHover: 'background: none; border: 0; color: black; cursor: pointer; display: block; font-family: Arial; font-size: 1em; text-align: left; padding: 1em; width: 100%; text-decoration: none; background-image: linear-gradient(to right, #7C4DFF 0%, #18A9E6 50%, #01C9EA 100%)',\n headerUserMenuTrigger: 'background: none; border: 0; cursor: pointer; width: 60px; height: 60px',\n headerUserMenuTriggerImg: 'border-radius: 50%; height: 56px; width: 28px !important',\n headerUserMenuButton: 'background: none; border: 0; color: black; cursor: pointer; display: block; font-family: Arial; font-size: 1em; text-align: left; padding: 1em; width: 100%',\n headerUserMenuButtonHover: 'background: none; border: 0; color: black; cursor: pointer; display: block; font-family: Arial; font-size: 1em; text-align: left; padding: 1em; width: 100%; background-image: linear-gradient(to right, #7C4DFF 0%, #18A9E6 50%, #01C9EA 100%)',\n headerUserMenuList: 'list-style: none; margin: 0; padding: 0',\n headerUserMenuListDisplay: 'list-style: none; margin: 0; padding: 0; display:true',\n headerUserMenuNavigationMenu: 'background: white; border: solid 1px #000000; border-right: 0; position: absolute; right: 0; top: 60px; width: 200px; z-index: 1; display: true',\n headerUserMenuNavigationMenuNotDisplayed: 'background: white; border: solid 1px #000000; border-right: 0; position: absolute; right: 0; top: 60px; width: 200px; z-index: 1; display: none',\n headerUserMenuListItem: 'border-bottom: solid 1px #000000',\n headerUserMenuPhoto: 'border-radius: 50%; background-position: center; background-repeat: no-repeat; background-size: cover; height: 50px; width: 50px',\n headerBanner: 'box-shadow: 0px 1px 4px #000000; display: flex; justify-content: space-between; padding: 0 1.5em; margin-bottom: 4px',\n headerBannerLink: 'display: block',\n headerBannerRightMenu: 'display: flex',\n headerBannerLogin: 'margin-left: auto',\n allChildrenVisible: 'display:true',\n headerBannerLoginInput: 'margin: 0.75em 0 0.75em 0.5em !important; padding: 0.5em !important',\n headerBannerUserMenu: 'border-left: solid 1px #000000; margin-left: auto',\n headerBannerHelpMenu: 'border-left: solid 1px #000000; margin.left: auto',\n headerBannerIcon: 'background-size: 65px 60px !important; height: 60px !important; width: 65px !important', // may just be 65px round($icon-size * 352 / 322);\n\n // footer\n footer: 'border-top: solid 1px $divider-color; font-size: 0.9em; padding: 0.5em 1.5em',\n\n // buttons\n primaryButton: 'background-color: #7c4dff; color: #ffffff; font-family: Raleway, Roboto, sans-serif; border-radius: 0.25em; border-color: #7c4dff; border: 1px solid; cursor: pointer; font-size: .8em;text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none',\n\n primaryButtonHover: 'background-color: #9f7dff; color: #ffffff; font-family: Raleway, Roboto, sans-serif;border-radius: 0.25em; border-color: #7c4dff; border: 1px solid; cursor: pointer; font-size: .8em;text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none; transition: 0.25s all ease-in-out',\n\n primaryButtonNoBorder: 'background-color: #ffffff; color: #7c4dff; font-family: Raleway, Roboto, sans-serif;border-radius: 0.25em; border-color: #7c4dff; border: 1px solid; cursor: pointer; font-size: .8em;text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none',\n\n primaryButtonNoBorderHover: 'background-color: #7c4dff; color: #ffffff; font-family: Raleway, Roboto, sans-serif; border-radius: 0.25em; border-color: #7c4dff; border: 1px solid; cursor: pointer; font-size: .8em; text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none; transition: 0.25s all ease-in-out',\n\n secondaryButton: 'background-color: #01c9ea; color: #ffffff; font-family: Raleway, Roboto, sans-serif;border-radius: 0.25em; border-color: #01c9ea; border: 1px solid; cursor: pointer; font-size: .8em;text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none',\n\n secondaryButtonHover: 'background-color: #37cde6; color: #ffffff; font-family: Raleway, Roboto, sans-serif;border-radius: 0.25em; border-color: #7c4dff; border: 1px solid; cursor: pointer; font-size: .8em;text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none; transition: 0.25s all ease-in-out',\n\n secondaryButtonNoBorder: 'background-color: #ffffff; color: #01c9ea; font-family: Raleway, Roboto, sans-serif; border-radius: 0.25em; border-color: #01c9ea; border: 1px solid; cursor: pointer; font-size: .8em; text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none',\n\n secondaryButtonNoBorderHover: 'background-color: #01c9ea; color: #ffffff; font-family: Raleway, Roboto, sans-serif; border-radius: 0.25em; border-color: #01c9ea; border: 1px solid; cursor: pointer; font-size: .8em; text-decoration: none; padding: 0.5em 4em; transition: 0.25s all ease-in-out; outline: none; transition: 0.25s all ease-in-out'\n\n}\n\nstyle.setStyle = function setStyle (ele, styleName) {\n ele.style = style[styleName]\n}\n\nmodule.exports = style // @@ No way to do this in ESM\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,+BAEjF;AAED,wBAAsB,qBAAqB,CAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,+BAEnF;AAED,KAAK,OAAO,GAAG,WAAW,GAAG,YAAY,CAAA;AAEzC,wBAAsB,cAAc,CAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,+BASvF"}
|