fetch with signature

This commit is contained in:
Phillip 2023-02-16 22:58:37 +02:00
parent ce442dee1b
commit 8b03d30f9c
7 changed files with 61 additions and 48 deletions

View File

@ -17,9 +17,9 @@
"author": "QORTAL <admin@qortal.org>", "author": "QORTAL <admin@qortal.org>",
"license": "GPL-3.0", "license": "GPL-3.0",
"dependencies": { "dependencies": {
"@hapi/hapi": "21.2.0", "@hapi/hapi": "21.2.1",
"@hapi/inert": "7.0.0", "@hapi/inert": "7.0.0",
"sass": "1.57.1" "sass": "1.58.0"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "7.20.12", "@babel/core": "7.20.12",
@ -58,22 +58,23 @@
"@rollup/plugin-commonjs": "24.0.1", "@rollup/plugin-commonjs": "24.0.1",
"@rollup/plugin-node-resolve": "15.0.1", "@rollup/plugin-node-resolve": "15.0.1",
"@rollup/plugin-replace": "5.0.2", "@rollup/plugin-replace": "5.0.2",
"@rollup/plugin-terser": "0.3.0", "@rollup/plugin-terser": "0.4.0",
"@vaadin/button": "23.3.5", "@vaadin/button": "23.3.7",
"@vaadin/grid": "23.3.5", "@vaadin/grid": "23.3.7",
"@vaadin/icons": "23.3.5", "@vaadin/icons": "23.3.7",
"@vaadin/password-field": "23.3.5", "@vaadin/password-field": "23.3.7",
"@vaadin/tooltip": "23.3.5", "@vaadin/tooltip": "23.3.7",
"asmcrypto.js": "2.3.2", "asmcrypto.js": "2.3.2",
"bcryptjs": "2.4.3", "bcryptjs": "2.4.3",
"epml": "0.3.3", "epml": "0.3.3",
"file-saver": "2.0.5", "file-saver": "2.0.5",
"lit": "2.6.1", "lit": "2.6.1",
"lit-translate": "2.0.1", "lit-translate": "2.0.1",
"localforage": "1.10.0",
"pwa-helpers": "0.9.1", "pwa-helpers": "0.9.1",
"redux": "4.2.0", "redux": "4.2.1",
"redux-thunk": "2.4.2", "redux-thunk": "2.4.2",
"rollup": "3.10.1", "rollup": "3.14.0",
"rollup-plugin-node-globals": "1.4.0", "rollup-plugin-node-globals": "1.4.0",
"rollup-plugin-progress": "1.1.2", "rollup-plugin-progress": "1.1.2",
"rollup-plugin-scss": "3.0.0", "rollup-plugin-scss": "3.0.0",

View File

@ -20,13 +20,14 @@
"@lit-labs/motion": "1.0.3", "@lit-labs/motion": "1.0.3",
"@material/mwc-list": "0.27.0", "@material/mwc-list": "0.27.0",
"@material/mwc-select": "0.27.0", "@material/mwc-select": "0.27.0",
"@tiptap/core": "2.0.0-beta.209", "@tiptap/pm": "2.0.0-beta.212",
"@tiptap/extension-highlight": "2.0.0-beta.209", "@tiptap/core": "2.0.0-beta.212",
"@tiptap/extension-image": "2.0.0-beta.209", "@tiptap/extension-highlight": "2.0.0-beta.212",
"@tiptap/extension-placeholder": "2.0.0-beta.209", "@tiptap/extension-image": "2.0.0-beta.212",
"@tiptap/extension-underline": "2.0.0-beta.209", "@tiptap/extension-placeholder": "2.0.0-beta.212",
"@tiptap/html": "2.0.0-beta.209", "@tiptap/extension-underline": "2.0.0-beta.212",
"@tiptap/starter-kit": "2.0.0-beta.209", "@tiptap/html": "2.0.0-beta.212",
"@tiptap/starter-kit": "2.0.0-beta.212",
"asmcrypto.js": "2.3.2", "asmcrypto.js": "2.3.2",
"compressorjs": "1.1.1", "compressorjs": "1.1.1",
"emoji-picker-js": "https://github.com/Qortal/emoji-picker-js", "emoji-picker-js": "https://github.com/Qortal/emoji-picker-js",
@ -69,19 +70,19 @@
"@rollup/plugin-commonjs": "24.0.1", "@rollup/plugin-commonjs": "24.0.1",
"@rollup/plugin-node-resolve": "15.0.1", "@rollup/plugin-node-resolve": "15.0.1",
"@rollup/plugin-replace": "5.0.2", "@rollup/plugin-replace": "5.0.2",
"@rollup/plugin-terser": "0.3.0", "@rollup/plugin-terser": "0.4.0",
"@vaadin/avatar": "23.3.5", "@vaadin/avatar": "23.3.7",
"@vaadin/button": "23.3.5", "@vaadin/button": "23.3.7",
"@vaadin/grid": "23.3.5", "@vaadin/grid": "23.3.7",
"@vaadin/icons": "23.3.5", "@vaadin/icons": "23.3.7",
"@vaadin/tooltip": "23.3.5", "@vaadin/tooltip": "23.3.7",
"epml": "0.3.3", "epml": "0.3.3",
"file-saver": "2.0.5", "file-saver": "2.0.5",
"highcharts": "10.3.3", "highcharts": "10.3.3",
"html-escaper": "3.0.3", "html-escaper": "3.0.3",
"lit": "2.6.1", "lit": "2.6.1",
"lit-translate": "2.0.1", "lit-translate": "2.0.1",
"rollup": "3.10.1", "rollup": "3.14.0",
"rollup-plugin-node-globals": "1.4.0", "rollup-plugin-node-globals": "1.4.0",
"rollup-plugin-progress": "1.1.2", "rollup-plugin-progress": "1.1.2",
"rollup-plugin-web-worker-loader": "1.6.1", "rollup-plugin-web-worker-loader": "1.6.1",

View File

@ -991,7 +991,7 @@ class ChatPage extends LitElement {
${this.repliedToMessageObj.version.toString() === '1' ? html` ${this.repliedToMessageObj.version.toString() === '1' ? html`
${this.repliedToMessageObj.message} ${this.repliedToMessageObj.message}
` : ''} ` : ''}
${this.repliedToMessageObj.version.toString() === '2' ${+this.repliedToMessageObj.version > 1
? html` ? html`
${unsafeHTML(generateHTML(this.repliedToMessageObj.message, ${unsafeHTML(generateHTML(this.repliedToMessageObj.message,
[ [
@ -2730,7 +2730,7 @@ class ChatPage extends LitElement {
}], }],
isImageDeleted: false, isImageDeleted: false,
repliedTo: '', repliedTo: '',
version: 2 version: 3
}; };
const stringifyMessageObject = JSON.stringify(messageObject); const stringifyMessageObject = JSON.stringify(messageObject);
this.sendMessage(stringifyMessageObject, typeMessage); this.sendMessage(stringifyMessageObject, typeMessage);
@ -2804,7 +2804,7 @@ class ChatPage extends LitElement {
messageText: trimmedMessage, messageText: trimmedMessage,
images: [''], images: [''],
repliedTo: chatReference, repliedTo: chatReference,
version: 2 version: 3
} }
const stringifyMessageObject = JSON.stringify(messageObject); const stringifyMessageObject = JSON.stringify(messageObject);
this.sendMessage(stringifyMessageObject, typeMessage); this.sendMessage(stringifyMessageObject, typeMessage);
@ -2836,7 +2836,7 @@ class ChatPage extends LitElement {
messageText: trimmedMessage, messageText: trimmedMessage,
images: [''], images: [''],
repliedTo: '', repliedTo: '',
version: 2 version: 3
} }
const stringifyMessageObject = JSON.stringify(messageObject) const stringifyMessageObject = JSON.stringify(messageObject)

View File

@ -371,7 +371,8 @@ class MessageTemplate extends LitElement {
let isEdited = false let isEdited = false
try { try {
const parsedMessageObj = JSON.parse(this.messageObj.decodedMessage); const parsedMessageObj = JSON.parse(this.messageObj.decodedMessage);
if(parsedMessageObj.version.toString() === '2'){ console.log({parsedMessageObj}, +parsedMessageObj.version, +parsedMessageObj.version > 1)
if(+parsedMessageObj.version > 1){
messageVersion2 = generateHTML(parsedMessageObj.messageText, [ messageVersion2 = generateHTML(parsedMessageObj.messageText, [
StarterKit, StarterKit,
@ -574,7 +575,7 @@ class MessageTemplate extends LitElement {
${version.toString() === '1' ? html` ${version.toString() === '1' ? html`
${repliedToData.decodedMessage.messageText} ${repliedToData.decodedMessage.messageText}
` : ''} ` : ''}
${version.toString() === '2' ? html` ${+version > 1 ? html`
${unsafeHTML(generateHTML(repliedToData.decodedMessage.messageText, [ ${unsafeHTML(generateHTML(repliedToData.decodedMessage.messageText, [
StarterKit, StarterKit,
Underline, Underline,
@ -627,7 +628,7 @@ class MessageTemplate extends LitElement {
id="messageContent" id="messageContent"
class="message" class="message"
style=${(image && replacedMessage !== "") &&"margin-top: 15px;"}> style=${(image && replacedMessage !== "") &&"margin-top: 15px;"}>
${version.toString() === '2' ? html` ${+version > 1 ? html`
${unsafeHTML(messageVersion2)} ${unsafeHTML(messageVersion2)}
` : ''} ` : ''}
${version.toString() === '1' ? html` ${version.toString() === '1' ? html`

View File

@ -667,7 +667,7 @@ mwc-checkbox::shadow .mdc-checkbox::after, mwc-checkbox::shadow .mdc-checkbox::b
messageText: trimmedMessage, messageText: trimmedMessage,
images: [''], images: [''],
repliedTo: chatReference, repliedTo: chatReference,
version: 2 version: 3
} }
} else if (this.editedMessageObj) { } else if (this.editedMessageObj) {
let message = ""; let message = "";
@ -690,14 +690,14 @@ mwc-checkbox::shadow .mdc-checkbox::after, mwc-checkbox::shadow .mdc-checkbox::b
identifier: '123456' identifier: '123456'
}], }],
repliedTo: '', repliedTo: '',
version: 2 version: 3
}; };
} else { } else {
messageObject = { messageObject = {
messageText: trimmedMessage, messageText: trimmedMessage,
images: [''], images: [''],
repliedTo: '', repliedTo: '',
version: 2 version: 3
}; };
} }

View File

@ -533,7 +533,7 @@ class Chat extends LitElement {
messageText: trimmedMessage, messageText: trimmedMessage,
images: [''], images: [''],
repliedTo: '', repliedTo: '',
version: 2 version: 3
} }
const stringifyMessageObject = JSON.stringify(messageObject) const stringifyMessageObject = JSON.stringify(messageObject)
this.sendMessage(stringifyMessageObject); this.sendMessage(stringifyMessageObject);

View File

@ -50,24 +50,36 @@ export const replaceMessagesEdited = async ({
msgQuery = `&txGroupId=${msg.txGroupId}` msgQuery = `&txGroupId=${msg.txGroupId}`
} }
if (parsedMessageObj.repliedTo) { if (parsedMessageObj.repliedTo) {
const originalReply = await parentEpml.request("apiCall", { console.log({parsedMessageObj})
type: "api", let originalReply
url: `/chat/messages?signature=${parsedMessageObj.repliedTo}&reverse=true${msgQuery}`, if(+parsedMessageObj.version > 2){
}) originalReply = await parentEpml.request("apiCall", {
type: "api",
url: `/chat/message/${parsedMessageObj.repliedTo}`,
})
}
if(+parsedMessageObj.version < 3){
originalReply = await parentEpml.request("apiCall", {
type: "api",
url: `/chat/messages?reference=${parsedMessageObj.repliedTo}&reverse=true${msgQuery}`,
})
}
const response = await parentEpml.request("apiCall", { const response = await parentEpml.request("apiCall", {
type: "api", type: "api",
url: `/chat/messages?chatreference=${parsedMessageObj.repliedTo}&reverse=true${msgQuery}`, url: `/chat/messages?chatreference=${parsedMessageObj.repliedTo}&reverse=true${msgQuery}`,
}) })
const originalReplyMessage = originalReply.timestamp ? originalReply : originalReply.length !== 0 ? originalReply[0] : null
if ( if (
originalReply && originalReplyMessage &&
Array.isArray(originalReply) &&
originalReply.length !== 0 &&
response && response &&
Array.isArray(response) && Array.isArray(response) &&
response.length !== 0 response.length !== 0
) { ) {
const decodeOriginalReply = decodeMessageFunc(originalReply[0], isReceipient, _publicKey) const decodeOriginalReply = decodeMessageFunc(originalReplyMessage, isReceipient, _publicKey)
const decodeUpdatedReply = decodeMessageFunc(response[0], isReceipient, _publicKey) const decodeUpdatedReply = decodeMessageFunc(response[0], isReceipient, _publicKey)
const formattedRepliedToData = { const formattedRepliedToData = {
@ -83,14 +95,12 @@ export const replaceMessagesEdited = async ({
if ( if (
originalReply && originalReplyMessage
Array.isArray(originalReply) &&
originalReply.length !== 0
) { ) {
msgItem = { msgItem = {
...msg, ...msg,
repliedToData: decodeMessageFunc(originalReply[0], isReceipient, _publicKey), repliedToData: decodeMessageFunc(originalReplyMessage, isReceipient, _publicKey),
} }
} }
} }