mirror of
https://github.com/Qortal/qortal-ui.git
synced 2025-02-21 22:55:48 +00:00
Merge branch 'Qortal:master' into master
This commit is contained in:
commit
1ded359b7a
@ -1417,6 +1417,7 @@
|
||||
"mpchange83": "ABGELEHNT",
|
||||
"mpchange84": "FEHLER",
|
||||
"mpchange85": "ERFOLGREICH",
|
||||
"mpchange86": "Immer automatisches Abrufen des Wallet-Guthabens zulassen"
|
||||
"mpchange86": "Immer automatisches Abrufen des Wallet-Guthabens zulassen",
|
||||
"mpchange87": "Bitte geben Sie die Gruppen-ID ein"
|
||||
}
|
||||
}
|
||||
|
@ -1417,6 +1417,7 @@
|
||||
"mpchange83": "RECHAZADO",
|
||||
"mpchange84": "ERROR",
|
||||
"mpchange85": "ÉXITO",
|
||||
"mpchange86": "Permitir siempre obtener el saldo de la billetera automáticamente"
|
||||
"mpchange86": "Permitir siempre obtener el saldo de la billetera automáticamente",
|
||||
"mpchange87": "Por favor, introduzca el ID del grupo"
|
||||
}
|
||||
}
|
||||
|
@ -1417,6 +1417,7 @@
|
||||
"mpchange83": "DECLINED",
|
||||
"mpchange84": "FAILURE",
|
||||
"mpchange85": "EDU",
|
||||
"mpchange86": "Luba alati rahakoti saldo automaatne hankimine"
|
||||
"mpchange86": "Luba alati rahakoti saldo automaatne hankimine",
|
||||
"mpchange87": "Palun sisestage grupi ID"
|
||||
}
|
||||
}
|
||||
|
@ -1417,6 +1417,7 @@
|
||||
"mpchange83": "hylätty",
|
||||
"mpchange84": "FAILURE",
|
||||
"mpchange85": "SUCCESS",
|
||||
"mpchange86": "Salli aina saada lompakon saldo automaattisesti"
|
||||
"mpchange86": "Salli aina saada lompakon saldo automaattisesti",
|
||||
"mpchange87": "Anna ryhmän tunnus"
|
||||
}
|
||||
}
|
||||
|
@ -1417,6 +1417,7 @@
|
||||
"mpchange83": "REFUSÉ",
|
||||
"mpchange84": "ÉCHEC",
|
||||
"mpchange85": "SUCCÈS",
|
||||
"mpchange86": "Toujours autoriser l'obtention automatique du solde du portefeuille"
|
||||
"mpchange86": "Toujours autoriser l'obtention automatique du solde du portefeuille",
|
||||
"mpchange87": "Veuillez saisir l'ID du groupe"
|
||||
}
|
||||
}
|
||||
|
@ -1417,6 +1417,7 @@
|
||||
"mpchange83": "अस्वीकृत",
|
||||
"mpchange84": "विफल",
|
||||
"mpchange85": "सफल",
|
||||
"mpchange86": "हमेशा वॉलेट बैलेंस को स्वचालित रूप से प्राप्त करने की अनुमति दें"
|
||||
"mpchange86": "हमेशा वॉलेट बैलेंस को स्वचालित रूप से प्राप्त करने की अनुमति दें",
|
||||
"mpchange87": "कृपया ग्रुप आईडी दर्ज करें"
|
||||
}
|
||||
}
|
||||
|
@ -1417,6 +1417,7 @@
|
||||
"mpchange83": "ODBIJENO",
|
||||
"mpchange84": "GREŠKA",
|
||||
"mpchange85": "USPJEH",
|
||||
"mpchange86": "Uvijek dopusti automatsko dobivanje stanja novčanika"
|
||||
"mpchange86": "Uvijek dopusti automatsko dobivanje stanja novčanika",
|
||||
"mpchange87": "Molimo unesite ID grupe"
|
||||
}
|
||||
}
|
||||
|
@ -1417,6 +1417,7 @@
|
||||
"mpchange83": "Elutasítva",
|
||||
"mpchange84": "FAILURE",
|
||||
"mpchange85": "SIKER",
|
||||
"mpchange86": "Mindig engedélyezze a pénztárcaegyenleg automatikus lekérését"
|
||||
"mpchange86": "Mindig engedélyezze a pénztárcaegyenleg automatikus lekérését",
|
||||
"mpchange87": "Kérjük, adja meg a csoport azonosítóját"
|
||||
}
|
||||
}
|
||||
|
@ -1417,6 +1417,7 @@
|
||||
"mpchange83": "RIFIUTATO",
|
||||
"mpchange84": "FALLITO",
|
||||
"mpchange85": "RIUSCITO",
|
||||
"mpchange86": "Consenti sempre di ottenere automaticamente il saldo del portafoglio"
|
||||
"mpchange86": "Consenti sempre di ottenere automaticamente il saldo del portafoglio",
|
||||
"mpchange87": "Inserisci l'ID del gruppo"
|
||||
}
|
||||
}
|
||||
|
@ -1417,6 +1417,7 @@
|
||||
"mpchange83": "拒否されました",
|
||||
"mpchange84": "失敗",
|
||||
"mpchange85": "成功",
|
||||
"mpchange86": "ウォレット残高の自動取得を常に許可する"
|
||||
"mpchange86": "ウォレット残高の自動取得を常に許可する",
|
||||
"mpchange87": "グループ ID を入力してください"
|
||||
}
|
||||
}
|
||||
|
@ -1417,6 +1417,7 @@
|
||||
"mpchange83": "거부됨",
|
||||
"mpchange84": "실패",
|
||||
"mpchange85": "성공",
|
||||
"mpchange86": "항상 지갑 잔액을 자동으로 가져오도록 허용"
|
||||
"mpchange86": "항상 지갑 잔액을 자동으로 가져오도록 허용",
|
||||
"mpchange87": "그룹 ID를 입력하세요"
|
||||
}
|
||||
}
|
||||
|
@ -1417,6 +1417,7 @@
|
||||
"mpchange83": "GEWEIGERD",
|
||||
"mpchange84": "MISLUKT",
|
||||
"mpchange85": "SUCCES",
|
||||
"mpchange86": "Altijd toestaan om automatisch saldo in portemonnee op te halen"
|
||||
"mpchange86": "Altijd toestaan om automatisch saldo in portemonnee op te halen",
|
||||
"mpchange87": "Voer de groeps-ID in"
|
||||
}
|
||||
}
|
||||
|
@ -1417,6 +1417,7 @@
|
||||
"mpchange83": "AVSLAGT",
|
||||
"mpchange84": "FEIL",
|
||||
"mpchange85": "SUKSESS",
|
||||
"mpchange86": "Tillat alltid få lommeboksaldo automatisk"
|
||||
"mpchange86": "Tillat alltid få lommeboksaldo automatisk",
|
||||
"mpchange87": "Vennligst skriv inn gruppe-ID"
|
||||
}
|
||||
}
|
||||
|
@ -1417,6 +1417,7 @@
|
||||
"mpchange83": "ODRZUCONE",
|
||||
"mpchange84": "NIEPOWODZENIE",
|
||||
"mpchange85": "POWODZENIE",
|
||||
"mpchange86": "Zawsze zezwalaj na automatyczne pobieranie salda portfela"
|
||||
"mpchange86": "Zawsze zezwalaj na automatyczne pobieranie salda portfela",
|
||||
"mpchange87": "Wprowadź identyfikator grupy"
|
||||
}
|
||||
}
|
||||
|
@ -1417,6 +1417,7 @@
|
||||
"mpchange83": "RECLINADO",
|
||||
"mpchange84": "FALHA",
|
||||
"mpchange85": "SUCESSO",
|
||||
"mpchange86": "Permitir sempre obter saldo da carteira automaticamente"
|
||||
"mpchange86": "Permitir sempre obter saldo da carteira automaticamente",
|
||||
"mpchange87": "Por favor introduza o ID do grupo"
|
||||
}
|
||||
}
|
||||
|
@ -1417,6 +1417,7 @@
|
||||
"mpchange83": "RESFUS",
|
||||
"mpchange84": "Eșec",
|
||||
"mpchange85": "SUCCES",
|
||||
"mpchange86": "Permiteți întotdeauna obținerea automată a soldului portofelului"
|
||||
"mpchange86": "Permiteți întotdeauna obținerea automată a soldului portofelului",
|
||||
"mpchange87": "Vă rugăm să introduceți ID-ul grupului"
|
||||
}
|
||||
}
|
||||
|
@ -1417,6 +1417,7 @@
|
||||
"mpchange83": "ODBIJENO",
|
||||
"mpchange84": "GREŠKA",
|
||||
"mpchange85": "USPEH",
|
||||
"mpchange86": "Uvek dozvoli automatsko dobijanje stanja novčanika"
|
||||
"mpchange86": "Uvek dozvoli automatsko dobijanje stanja novčanika",
|
||||
"mpchange87": "Unesite ID grupe"
|
||||
}
|
||||
}
|
||||
|
@ -1417,6 +1417,7 @@
|
||||
"mpchange83": "ОТКЛОНЕНО",
|
||||
"mpchange84": "НЕУДАЧА",
|
||||
"mpchange85": "УСПЕШНО",
|
||||
"mpchange86": "Всегда разрешать автоматически получать баланс кошелька"
|
||||
"mpchange86": "Всегда разрешать автоматически получать баланс кошелька",
|
||||
"mpchange87": "Пожалуйста, введите идентификатор группы"
|
||||
}
|
||||
}
|
||||
|
@ -1417,6 +1417,7 @@
|
||||
"mpchange83": "DECLINED",
|
||||
"mpchange84": "FAILURE",
|
||||
"mpchange85": "SUCCESS",
|
||||
"mpchange86": "Always allow get wallet balance automatically"
|
||||
"mpchange86": "Always allow get wallet balance automatically",
|
||||
"mpchange87": "Please Enter The Group ID"
|
||||
}
|
||||
}
|
||||
|
@ -1417,6 +1417,7 @@
|
||||
"mpchange83": "拒绝",
|
||||
"mpchange84": "失败",
|
||||
"mpchange85": "成功",
|
||||
"mpchange86": "始终允许自动获取钱包余额"
|
||||
"mpchange86": "始终允许自动获取钱包余额",
|
||||
"mpchange87": "请输入群组ID"
|
||||
}
|
||||
}
|
||||
|
@ -1417,6 +1417,7 @@
|
||||
"mpchange83": "拒絕",
|
||||
"mpchange84": "失敗",
|
||||
"mpchange85": "成功",
|
||||
"mpchange86": "隨時允許自動取得錢包餘額"
|
||||
"mpchange86": "隨時允許自動取得錢包餘額",
|
||||
"mpchange87": "請輸入群組 ID"
|
||||
}
|
||||
}
|
||||
|
@ -4,10 +4,25 @@ import {
|
||||
uint8ArrayToObject,
|
||||
decryptSingle
|
||||
} from '../../../plugins/plugins/core/components/GroupEncryption.js'
|
||||
import {
|
||||
extensionToPointer,
|
||||
encodedToChar,
|
||||
embedToString,
|
||||
parseQortalLink
|
||||
} from '../../../plugins/plugins/core/components/qdn-action-constants.js'
|
||||
|
||||
const Base64Message = {}
|
||||
|
||||
Base64Message.decode = function (string, keys, ref) {
|
||||
let repliedToStr = ''
|
||||
let hubSpecialId = ''
|
||||
let hubMessageStr = ''
|
||||
let newMessageObject = ''
|
||||
let reactionStr = ''
|
||||
let messageUseEmbed = {}
|
||||
let editStr = false
|
||||
let embedFileStr = '"images":[""]'
|
||||
|
||||
const binaryString = atob(string)
|
||||
const binaryLength = binaryString.length
|
||||
const bytes = new Uint8Array(binaryLength)
|
||||
@ -28,66 +43,49 @@ Base64Message.decode = function (string, keys, ref) {
|
||||
return decodedString
|
||||
}
|
||||
} else {
|
||||
let repliedToStr = ''
|
||||
let messageStr = ''
|
||||
let hubString = ''
|
||||
|
||||
const res = decryptSingle(string, keys, false)
|
||||
|
||||
if (res === 'noKey' || res === 'decryptionFailed') {
|
||||
return '{"messageText":{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"This message could not be decrypted"}]}]},"images":[""],"repliedTo":"","version":3}'
|
||||
return '{"specialId":"","message":"<p>This message could not be decrypted</p>","repliedTo":"","isEdited":false,"isFromHub":true,"version": 3}'
|
||||
}
|
||||
|
||||
const decryptToUnit8Array = base64ToUint8Array(res)
|
||||
const responseData = uint8ArrayToObject(decryptToUnit8Array)
|
||||
|
||||
if (responseData.type === "notification") {
|
||||
const messageStrRaw = responseData.data.message
|
||||
messageStr = messageStrRaw.trim()
|
||||
}
|
||||
|
||||
if (ref !== "noref") {
|
||||
if (responseData.type === "reaction") {
|
||||
repliedToStr = ref
|
||||
messageStr = responseData.content
|
||||
}
|
||||
}
|
||||
|
||||
if (responseData.hasOwnProperty('message') && typeof responseData['message'] === 'string' && responseData['message'].length) {
|
||||
const messageRep = responseData.message
|
||||
const messageRep1 = messageRep.split('"').join('<upvote>')
|
||||
const messageRep2 = messageRep1.split('</p><p></p><p></p><p></p><p>').join('"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"text","text":"')
|
||||
const messageRep3 = messageRep2.split('</p><p></p><p></p><p>').join('"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"text","text":"')
|
||||
const messageRep4 = messageRep3.split('</p><p></p><p>').join('"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"text","text":"')
|
||||
const messageRep5 = messageRep4.replace('</p><p>', '')
|
||||
const messageRep6 = messageRep5.replace('<p></p>', '')
|
||||
const messageRep7 = messageRep6.replace('<p>', '')
|
||||
const messageRep8 = messageRep7.replace('<br></p>', '')
|
||||
const messageRep9 = messageRep8.replace('</p>', '')
|
||||
const messageRep10 = messageRep9.trim()
|
||||
const messageRep11 = messageRep10.split('<br><br><br><br>').join('"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"text","text":"')
|
||||
const messageRep12 = messageRep11.split('<br><br><br>').join('"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"text","text":"')
|
||||
const messageRep13 = messageRep12.split('<br><br>').join('"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"text","text":"')
|
||||
const messageRep14 = messageRep13.split('<br>').join('"},{"type":"hardBreak"},{"type":"text","text":"')
|
||||
messageStr = messageRep14
|
||||
if (responseData.type === "edit") {
|
||||
editStr = true
|
||||
}
|
||||
|
||||
if (responseData.repliedTo) {
|
||||
repliedToStr = responseData.repliedTo
|
||||
}
|
||||
|
||||
if (responseData.type === "edit") {
|
||||
hubString = '{"messageText":{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"' + messageStr + '"}]}]},"images":[""],"repliedTo":"' + repliedToStr + '","version":3,"isEdited":true}'
|
||||
} else if (responseData.type === "reaction") {
|
||||
hubString = '{"messageText":{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"' + messageStr + '"}]}]},"images":[""],"repliedTo":"' + repliedToStr + '","version":3,"isReaction":true}'
|
||||
} else {
|
||||
hubString = '{"messageText":{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"' + messageStr + '"}]}]},"images":[""],"repliedTo":"' + repliedToStr + '","version":3}'
|
||||
if (responseData.specialId) {
|
||||
hubSpecialId = responseData.specialId
|
||||
}
|
||||
|
||||
const preparedString = hubString.split('<upvote>').join('\\"')
|
||||
const finalString = preparedString.replace(/<\/?[^>]+(>|$)/g, '')
|
||||
if (responseData.type === "notification") {
|
||||
hubMessageStr = responseData.data.message
|
||||
} else if (ref !== "noref" && responseData.type === "reaction") {
|
||||
reactionStr = '"isReaction":true,'
|
||||
repliedToStr = ref
|
||||
hubMessageStr = responseData.content
|
||||
} else if (responseData.message.includes('qortal://use-embed/')) {
|
||||
const useEmbed1 = extensionToPointer(responseData.message)
|
||||
const useEmbed2 = /<newpointer>(.*?)<\/newpointer>/g.exec(useEmbed1)
|
||||
const useEmbed3 = encodedToChar(useEmbed2[1])
|
||||
messageUseEmbed = parseQortalLink(useEmbed3)
|
||||
embedFileStr = embedToString(messageUseEmbed)
|
||||
hubMessageStr = responseData.message.split(useEmbed2[1]).join('')
|
||||
} else {
|
||||
hubMessageStr = responseData.message
|
||||
}
|
||||
|
||||
return finalString
|
||||
const hubMessageFinal = hubMessageStr.split('"').join('"')
|
||||
|
||||
newMessageObject = '{"specialId":"' + hubSpecialId + '","message":"' + hubMessageFinal + '",' + embedFileStr + ',"repliedTo":"' + repliedToStr + '","isEdited":' + editStr + ',"isFromHub":true,' + reactionStr + '"version": 3}'
|
||||
|
||||
return newMessageObject
|
||||
}
|
||||
}
|
||||
|
||||
|
244
package-lock.json
generated
244
package-lock.json
generated
@ -53,7 +53,7 @@
|
||||
"xhr2": "0.2.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "7.26.7",
|
||||
"@babel/core": "7.26.8",
|
||||
"@electron/packager": "18.3.6",
|
||||
"@material/mwc-button": "0.27.0",
|
||||
"@material/mwc-checkbox": "0.27.0",
|
||||
@ -107,7 +107,7 @@
|
||||
"@vaadin/tooltip": "24.2.9",
|
||||
"@zip.js/zip.js": "2.7.57",
|
||||
"axios": "1.7.9",
|
||||
"electron": "34.1.0",
|
||||
"electron": "34.1.1",
|
||||
"electron-builder": "25.1.8",
|
||||
"epml": "0.3.3",
|
||||
"file-saver": "2.0.5",
|
||||
@ -119,7 +119,7 @@
|
||||
"pwa-helpers": "0.9.1",
|
||||
"redux": "5.0.1",
|
||||
"redux-thunk": "3.1.0",
|
||||
"rollup": "4.34.4",
|
||||
"rollup": "4.34.6",
|
||||
"rollup-plugin-node-globals": "1.4.0",
|
||||
"rollup-plugin-progress": "1.1.2",
|
||||
"rollup-plugin-scss": "3.0.0",
|
||||
@ -169,22 +169,23 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/core": {
|
||||
"version": "7.26.7",
|
||||
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.7.tgz",
|
||||
"integrity": "sha512-SRijHmF0PSPgLIBYlWnG0hyeJLwXE2CgpsXaMOrtt2yp9/86ALw6oUlj9KYuZ0JN07T4eBMVIW4li/9S1j2BGA==",
|
||||
"version": "7.26.8",
|
||||
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.8.tgz",
|
||||
"integrity": "sha512-l+lkXCHS6tQEc5oUpK28xBOZ6+HwaH7YwoYQbLFiYb4nS2/l1tKnZEtEWkD0GuiYdvArf9qBS0XlQGXzPMsNqQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@ampproject/remapping": "^2.2.0",
|
||||
"@babel/code-frame": "^7.26.2",
|
||||
"@babel/generator": "^7.26.5",
|
||||
"@babel/generator": "^7.26.8",
|
||||
"@babel/helper-compilation-targets": "^7.26.5",
|
||||
"@babel/helper-module-transforms": "^7.26.0",
|
||||
"@babel/helpers": "^7.26.7",
|
||||
"@babel/parser": "^7.26.7",
|
||||
"@babel/template": "^7.25.9",
|
||||
"@babel/traverse": "^7.26.7",
|
||||
"@babel/types": "^7.26.7",
|
||||
"@babel/parser": "^7.26.8",
|
||||
"@babel/template": "^7.26.8",
|
||||
"@babel/traverse": "^7.26.8",
|
||||
"@babel/types": "^7.26.8",
|
||||
"@types/gensync": "^1.0.0",
|
||||
"convert-source-map": "^2.0.0",
|
||||
"debug": "^4.1.0",
|
||||
"gensync": "^1.0.0-beta.2",
|
||||
@ -200,14 +201,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/generator": {
|
||||
"version": "7.26.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz",
|
||||
"integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==",
|
||||
"version": "7.26.8",
|
||||
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.8.tgz",
|
||||
"integrity": "sha512-ef383X5++iZHWAXX0SXQR6ZyQhw/0KtTkrTz61WXRhFM6dhpHulO/RJz79L8S6ugZHJkOOkUrUdxgdF2YiPFnA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.26.5",
|
||||
"@babel/types": "^7.26.5",
|
||||
"@babel/parser": "^7.26.8",
|
||||
"@babel/types": "^7.26.8",
|
||||
"@jridgewell/gen-mapping": "^0.3.5",
|
||||
"@jridgewell/trace-mapping": "^0.3.25",
|
||||
"jsesc": "^3.0.2"
|
||||
@ -310,13 +311,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/parser": {
|
||||
"version": "7.26.7",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.7.tgz",
|
||||
"integrity": "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==",
|
||||
"version": "7.26.8",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.8.tgz",
|
||||
"integrity": "sha512-TZIQ25pkSoaKEYYaHbbxkfL36GNsQ6iFiBbeuzAkLnXayKR1yP1zFe+NxuZWWsUyvt8icPU9CCq0sgWGXR1GEw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/types": "^7.26.7"
|
||||
"@babel/types": "^7.26.8"
|
||||
},
|
||||
"bin": {
|
||||
"parser": "bin/babel-parser.js"
|
||||
@ -326,32 +327,32 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/template": {
|
||||
"version": "7.25.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz",
|
||||
"integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==",
|
||||
"version": "7.26.8",
|
||||
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.8.tgz",
|
||||
"integrity": "sha512-iNKaX3ZebKIsCvJ+0jd6embf+Aulaa3vNBqZ41kM7iTWjx5qzWKXGHiJUW3+nTpQ18SG11hdF8OAzKrpXkb96Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/code-frame": "^7.25.9",
|
||||
"@babel/parser": "^7.25.9",
|
||||
"@babel/types": "^7.25.9"
|
||||
"@babel/code-frame": "^7.26.2",
|
||||
"@babel/parser": "^7.26.8",
|
||||
"@babel/types": "^7.26.8"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/traverse": {
|
||||
"version": "7.26.7",
|
||||
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.7.tgz",
|
||||
"integrity": "sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA==",
|
||||
"version": "7.26.8",
|
||||
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.8.tgz",
|
||||
"integrity": "sha512-nic9tRkjYH0oB2dzr/JoGIm+4Q6SuYeLEiIiZDwBscRMYFJ+tMAz98fuel9ZnbXViA2I0HVSSRRK8DW5fjXStA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/code-frame": "^7.26.2",
|
||||
"@babel/generator": "^7.26.5",
|
||||
"@babel/parser": "^7.26.7",
|
||||
"@babel/template": "^7.25.9",
|
||||
"@babel/types": "^7.26.7",
|
||||
"@babel/generator": "^7.26.8",
|
||||
"@babel/parser": "^7.26.8",
|
||||
"@babel/template": "^7.26.8",
|
||||
"@babel/types": "^7.26.8",
|
||||
"debug": "^4.3.1",
|
||||
"globals": "^11.1.0"
|
||||
},
|
||||
@ -360,9 +361,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/types": {
|
||||
"version": "7.26.7",
|
||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.7.tgz",
|
||||
"integrity": "sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==",
|
||||
"version": "7.26.8",
|
||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.8.tgz",
|
||||
"integrity": "sha512-eUuWapzEGWFEpHFxgEaBG8e3n6S8L3MSu0oda755rOfabWPnh0Our1AozNFVUxGFIhbKgd1ksprsoDGMinTOTA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@ -3069,9 +3070,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@rollup/rollup-android-arm-eabi": {
|
||||
"version": "4.34.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.4.tgz",
|
||||
"integrity": "sha512-gGi5adZWvjtJU7Axs//CWaQbQd/vGy8KGcnEaCWiyCqxWYDxwIlAHFuSe6Guoxtd0SRvSfVTDMPd5H+4KE2kKA==",
|
||||
"version": "4.34.6",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.34.6.tgz",
|
||||
"integrity": "sha512-+GcCXtOQoWuC7hhX1P00LqjjIiS/iOouHXhMdiDSnq/1DGTox4SpUvO52Xm+div6+106r+TcvOeo/cxvyEyTgg==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
@ -3083,9 +3084,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-android-arm64": {
|
||||
"version": "4.34.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.4.tgz",
|
||||
"integrity": "sha512-1aRlh1gqtF7vNPMnlf1vJKk72Yshw5zknR/ZAVh7zycRAGF2XBMVDAHmFQz/Zws5k++nux3LOq/Ejj1WrDR6xg==",
|
||||
"version": "4.34.6",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.34.6.tgz",
|
||||
"integrity": "sha512-E8+2qCIjciYUnCa1AiVF1BkRgqIGW9KzJeesQqVfyRITGQN+dFuoivO0hnro1DjT74wXLRZ7QF8MIbz+luGaJA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@ -3097,9 +3098,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-darwin-arm64": {
|
||||
"version": "4.34.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.4.tgz",
|
||||
"integrity": "sha512-drHl+4qhFj+PV/jrQ78p9ch6A0MfNVZScl/nBps5a7u01aGf/GuBRrHnRegA9bP222CBDfjYbFdjkIJ/FurvSQ==",
|
||||
"version": "4.34.6",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.6.tgz",
|
||||
"integrity": "sha512-z9Ib+OzqN3DZEjX7PDQMHEhtF+t6Mi2z/ueChQPLS/qUMKY7Ybn5A2ggFoKRNRh1q1T03YTQfBTQCJZiepESAg==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@ -3111,9 +3112,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-darwin-x64": {
|
||||
"version": "4.34.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.4.tgz",
|
||||
"integrity": "sha512-hQqq/8QALU6t1+fbNmm6dwYsa0PDD4L5r3TpHx9dNl+aSEMnIksHZkSO3AVH+hBMvZhpumIGrTFj8XCOGuIXjw==",
|
||||
"version": "4.34.6",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.6.tgz",
|
||||
"integrity": "sha512-PShKVY4u0FDAR7jskyFIYVyHEPCPnIQY8s5OcXkdU8mz3Y7eXDJPdyM/ZWjkYdR2m0izD9HHWA8sGcXn+Qrsyg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@ -3125,9 +3126,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-freebsd-arm64": {
|
||||
"version": "4.34.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.4.tgz",
|
||||
"integrity": "sha512-/L0LixBmbefkec1JTeAQJP0ETzGjFtNml2gpQXA8rpLo7Md+iXQzo9kwEgzyat5Q+OG/C//2B9Fx52UxsOXbzw==",
|
||||
"version": "4.34.6",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.34.6.tgz",
|
||||
"integrity": "sha512-YSwyOqlDAdKqs0iKuqvRHLN4SrD2TiswfoLfvYXseKbL47ht1grQpq46MSiQAx6rQEN8o8URtpXARCpqabqxGQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@ -3139,9 +3140,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-freebsd-x64": {
|
||||
"version": "4.34.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.4.tgz",
|
||||
"integrity": "sha512-6Rk3PLRK+b8L/M6m/x6Mfj60LhAUcLJ34oPaxufA+CfqkUrDoUPQYFdRrhqyOvtOKXLJZJwxlOLbQjNYQcRQfw==",
|
||||
"version": "4.34.6",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.34.6.tgz",
|
||||
"integrity": "sha512-HEP4CgPAY1RxXwwL5sPFv6BBM3tVeLnshF03HMhJYCNc6kvSqBgTMmsEjb72RkZBAWIqiPUyF1JpEBv5XT9wKQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@ -3153,9 +3154,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
|
||||
"version": "4.34.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.4.tgz",
|
||||
"integrity": "sha512-kmT3x0IPRuXY/tNoABp2nDvI9EvdiS2JZsd4I9yOcLCCViKsP0gB38mVHOhluzx+SSVnM1KNn9k6osyXZhLoCA==",
|
||||
"version": "4.34.6",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.34.6.tgz",
|
||||
"integrity": "sha512-88fSzjC5xeH9S2Vg3rPgXJULkHcLYMkh8faix8DX4h4TIAL65ekwuQMA/g2CXq8W+NJC43V6fUpYZNjaX3+IIg==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
@ -3167,9 +3168,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
|
||||
"version": "4.34.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.4.tgz",
|
||||
"integrity": "sha512-3iSA9tx+4PZcJH/Wnwsvx/BY4qHpit/u2YoZoXugWVfc36/4mRkgGEoRbRV7nzNBSCOgbWMeuQ27IQWgJ7tRzw==",
|
||||
"version": "4.34.6",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.34.6.tgz",
|
||||
"integrity": "sha512-wM4ztnutBqYFyvNeR7Av+reWI/enK9tDOTKNF+6Kk2Q96k9bwhDDOlnCUNRPvromlVXo04riSliMBs/Z7RteEg==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
@ -3181,9 +3182,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm64-gnu": {
|
||||
"version": "4.34.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.4.tgz",
|
||||
"integrity": "sha512-7CwSJW+sEhM9sESEk+pEREF2JL0BmyCro8UyTq0Kyh0nu1v0QPNY3yfLPFKChzVoUmaKj8zbdgBxUhBRR+xGxg==",
|
||||
"version": "4.34.6",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.6.tgz",
|
||||
"integrity": "sha512-9RyprECbRa9zEjXLtvvshhw4CMrRa3K+0wcp3KME0zmBe1ILmvcVHnypZ/aIDXpRyfhSYSuN4EPdCCj5Du8FIA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@ -3195,9 +3196,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm64-musl": {
|
||||
"version": "4.34.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.4.tgz",
|
||||
"integrity": "sha512-GZdafB41/4s12j8Ss2izofjeFXRAAM7sHCb+S4JsI9vaONX/zQ8cXd87B9MRU/igGAJkKvmFmJJBeeT9jJ5Cbw==",
|
||||
"version": "4.34.6",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.6.tgz",
|
||||
"integrity": "sha512-qTmklhCTyaJSB05S+iSovfo++EwnIEZxHkzv5dep4qoszUMX5Ca4WM4zAVUMbfdviLgCSQOu5oU8YoGk1s6M9Q==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@ -3209,9 +3210,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-loongarch64-gnu": {
|
||||
"version": "4.34.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.4.tgz",
|
||||
"integrity": "sha512-uuphLuw1X6ur11675c2twC6YxbzyLSpWggvdawTUamlsoUv81aAXRMPBC1uvQllnBGls0Qt5Siw8reSIBnbdqQ==",
|
||||
"version": "4.34.6",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.34.6.tgz",
|
||||
"integrity": "sha512-4Qmkaps9yqmpjY5pvpkfOerYgKNUGzQpFxV6rnS7c/JfYbDSU0y6WpbbredB5cCpLFGJEqYX40WUmxMkwhWCjw==",
|
||||
"cpu": [
|
||||
"loong64"
|
||||
],
|
||||
@ -3223,9 +3224,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
|
||||
"version": "4.34.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.4.tgz",
|
||||
"integrity": "sha512-KvLEw1os2gSmD6k6QPCQMm2T9P2GYvsMZMRpMz78QpSoEevHbV/KOUbI/46/JRalhtSAYZBYLAnT9YE4i/l4vg==",
|
||||
"version": "4.34.6",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.34.6.tgz",
|
||||
"integrity": "sha512-Zsrtux3PuaxuBTX/zHdLaFmcofWGzaWW1scwLU3ZbW/X+hSsFbz9wDIp6XvnT7pzYRl9MezWqEqKy7ssmDEnuQ==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
@ -3237,9 +3238,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
|
||||
"version": "4.34.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.4.tgz",
|
||||
"integrity": "sha512-wcpCLHGM9yv+3Dql/CI4zrY2mpQ4WFergD3c9cpRowltEh5I84pRT/EuHZsG0In4eBPPYthXnuR++HrFkeqwkA==",
|
||||
"version": "4.34.6",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.34.6.tgz",
|
||||
"integrity": "sha512-aK+Zp+CRM55iPrlyKiU3/zyhgzWBxLVrw2mwiQSYJRobCURb781+XstzvA8Gkjg/hbdQFuDw44aUOxVQFycrAg==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
@ -3251,9 +3252,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-s390x-gnu": {
|
||||
"version": "4.34.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.4.tgz",
|
||||
"integrity": "sha512-nLbfQp2lbJYU8obhRQusXKbuiqm4jSJteLwfjnunDT5ugBKdxqw1X9KWwk8xp1OMC6P5d0WbzxzhWoznuVK6XA==",
|
||||
"version": "4.34.6",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.34.6.tgz",
|
||||
"integrity": "sha512-WoKLVrY9ogmaYPXwTH326+ErlCIgMmsoRSx6bO+l68YgJnlOXhygDYSZe/qbUJCSiCiZAQ+tKm88NcWuUXqOzw==",
|
||||
"cpu": [
|
||||
"s390x"
|
||||
],
|
||||
@ -3265,9 +3266,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-x64-gnu": {
|
||||
"version": "4.34.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.4.tgz",
|
||||
"integrity": "sha512-JGejzEfVzqc/XNiCKZj14eb6s5w8DdWlnQ5tWUbs99kkdvfq9btxxVX97AaxiUX7xJTKFA0LwoS0KU8C2faZRg==",
|
||||
"version": "4.34.6",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.6.tgz",
|
||||
"integrity": "sha512-Sht4aFvmA4ToHd2vFzwMFaQCiYm2lDFho5rPcvPBT5pCdC+GwHG6CMch4GQfmWTQ1SwRKS0dhDYb54khSrjDWw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@ -3279,9 +3280,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-x64-musl": {
|
||||
"version": "4.34.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.4.tgz",
|
||||
"integrity": "sha512-/iFIbhzeyZZy49ozAWJ1ZR2KW6ZdYUbQXLT4O5n1cRZRoTpwExnHLjlurDXXPKEGxiAg0ujaR9JDYKljpr2fDg==",
|
||||
"version": "4.34.6",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.6.tgz",
|
||||
"integrity": "sha512-zmmpOQh8vXc2QITsnCiODCDGXFC8LMi64+/oPpPx5qz3pqv0s6x46ps4xoycfUiVZps5PFn1gksZzo4RGTKT+A==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@ -3293,9 +3294,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-win32-arm64-msvc": {
|
||||
"version": "4.34.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.4.tgz",
|
||||
"integrity": "sha512-qORc3UzoD5UUTneiP2Afg5n5Ti1GAW9Gp5vHPxzvAFFA3FBaum9WqGvYXGf+c7beFdOKNos31/41PRMUwh1tpA==",
|
||||
"version": "4.34.6",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.6.tgz",
|
||||
"integrity": "sha512-3/q1qUsO/tLqGBaD4uXsB6coVGB3usxw3qyeVb59aArCgedSF66MPdgRStUd7vbZOsko/CgVaY5fo2vkvPLWiA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@ -3307,9 +3308,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-win32-ia32-msvc": {
|
||||
"version": "4.34.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.4.tgz",
|
||||
"integrity": "sha512-5g7E2PHNK2uvoD5bASBD9aelm44nf1w4I5FEI7MPHLWcCSrR8JragXZWgKPXk5i2FU3JFfa6CGZLw2RrGBHs2Q==",
|
||||
"version": "4.34.6",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.34.6.tgz",
|
||||
"integrity": "sha512-oLHxuyywc6efdKVTxvc0135zPrRdtYVjtVD5GUm55I3ODxhU/PwkQFD97z16Xzxa1Fz0AEe4W/2hzRtd+IfpOA==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
@ -3321,9 +3322,9 @@
|
||||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-win32-x64-msvc": {
|
||||
"version": "4.34.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.4.tgz",
|
||||
"integrity": "sha512-p0scwGkR4kZ242xLPBuhSckrJ734frz6v9xZzD+kHVYRAkSUmdSLCIJRfql6H5//aF8Q10K+i7q8DiPfZp0b7A==",
|
||||
"version": "4.34.6",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.6.tgz",
|
||||
"integrity": "sha512-0PVwmgzZ8+TZ9oGBmdZoQVXflbvuwzN/HRclujpl4N/q3i+y0lqLw8n1bXA8ru3sApDjlmONaNAuYr38y1Kr9w==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@ -3893,6 +3894,13 @@
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/gensync": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/gensync/-/gensync-1.0.4.tgz",
|
||||
"integrity": "sha512-C3YYeRQWp2fmq9OryX+FoDy8nXS6scQ7dPptD8LnFDAUNcKWJjXQKDNJD3HVm+kOUsXhTOkpi69vI4EuAr95bA==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@types/http-cache-semantics": {
|
||||
"version": "4.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz",
|
||||
@ -6185,9 +6193,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/electron": {
|
||||
"version": "34.1.0",
|
||||
"resolved": "https://registry.npmjs.org/electron/-/electron-34.1.0.tgz",
|
||||
"integrity": "sha512-ZUid8XrGPA0dfes97PPADc8ecWOUX/qYRNp1glze9coZLEYc+PsMvgjVDCHSvjfHfiI+V3unwngSVpBouX71YQ==",
|
||||
"version": "34.1.1",
|
||||
"resolved": "https://registry.npmjs.org/electron/-/electron-34.1.1.tgz",
|
||||
"integrity": "sha512-1aDYk9Gsv1/fFeClMrxWGoVMl7uCUgl1pe26BiTnLXmAoqEXCa3f3sCKFWV+cuDzUjQGAZcpkWhGYTgWUSQrLA==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
@ -9876,9 +9884,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/rollup": {
|
||||
"version": "4.34.4",
|
||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.4.tgz",
|
||||
"integrity": "sha512-spF66xoyD7rz3o08sHP7wogp1gZ6itSq22SGa/IZTcUDXDlOyrShwMwkVSB+BUxFRZZCUYqdb3KWDEOMVQZxuw==",
|
||||
"version": "4.34.6",
|
||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.34.6.tgz",
|
||||
"integrity": "sha512-wc2cBWqJgkU3Iz5oztRkQbfVkbxoz5EhnCGOrnJvnLnQ7O0WhQUYyv18qQI79O8L7DdHrrlJNeCHd4VGpnaXKQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@ -9892,25 +9900,25 @@
|
||||
"npm": ">=8.0.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@rollup/rollup-android-arm-eabi": "4.34.4",
|
||||
"@rollup/rollup-android-arm64": "4.34.4",
|
||||
"@rollup/rollup-darwin-arm64": "4.34.4",
|
||||
"@rollup/rollup-darwin-x64": "4.34.4",
|
||||
"@rollup/rollup-freebsd-arm64": "4.34.4",
|
||||
"@rollup/rollup-freebsd-x64": "4.34.4",
|
||||
"@rollup/rollup-linux-arm-gnueabihf": "4.34.4",
|
||||
"@rollup/rollup-linux-arm-musleabihf": "4.34.4",
|
||||
"@rollup/rollup-linux-arm64-gnu": "4.34.4",
|
||||
"@rollup/rollup-linux-arm64-musl": "4.34.4",
|
||||
"@rollup/rollup-linux-loongarch64-gnu": "4.34.4",
|
||||
"@rollup/rollup-linux-powerpc64le-gnu": "4.34.4",
|
||||
"@rollup/rollup-linux-riscv64-gnu": "4.34.4",
|
||||
"@rollup/rollup-linux-s390x-gnu": "4.34.4",
|
||||
"@rollup/rollup-linux-x64-gnu": "4.34.4",
|
||||
"@rollup/rollup-linux-x64-musl": "4.34.4",
|
||||
"@rollup/rollup-win32-arm64-msvc": "4.34.4",
|
||||
"@rollup/rollup-win32-ia32-msvc": "4.34.4",
|
||||
"@rollup/rollup-win32-x64-msvc": "4.34.4",
|
||||
"@rollup/rollup-android-arm-eabi": "4.34.6",
|
||||
"@rollup/rollup-android-arm64": "4.34.6",
|
||||
"@rollup/rollup-darwin-arm64": "4.34.6",
|
||||
"@rollup/rollup-darwin-x64": "4.34.6",
|
||||
"@rollup/rollup-freebsd-arm64": "4.34.6",
|
||||
"@rollup/rollup-freebsd-x64": "4.34.6",
|
||||
"@rollup/rollup-linux-arm-gnueabihf": "4.34.6",
|
||||
"@rollup/rollup-linux-arm-musleabihf": "4.34.6",
|
||||
"@rollup/rollup-linux-arm64-gnu": "4.34.6",
|
||||
"@rollup/rollup-linux-arm64-musl": "4.34.6",
|
||||
"@rollup/rollup-linux-loongarch64-gnu": "4.34.6",
|
||||
"@rollup/rollup-linux-powerpc64le-gnu": "4.34.6",
|
||||
"@rollup/rollup-linux-riscv64-gnu": "4.34.6",
|
||||
"@rollup/rollup-linux-s390x-gnu": "4.34.6",
|
||||
"@rollup/rollup-linux-x64-gnu": "4.34.6",
|
||||
"@rollup/rollup-linux-x64-musl": "4.34.6",
|
||||
"@rollup/rollup-win32-arm64-msvc": "4.34.6",
|
||||
"@rollup/rollup-win32-ia32-msvc": "4.34.6",
|
||||
"@rollup/rollup-win32-x64-msvc": "4.34.6",
|
||||
"fsevents": "~2.3.2"
|
||||
}
|
||||
},
|
||||
|
@ -74,7 +74,7 @@
|
||||
"xhr2": "0.2.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "7.26.7",
|
||||
"@babel/core": "7.26.8",
|
||||
"@electron/packager": "18.3.6",
|
||||
"@material/mwc-button": "0.27.0",
|
||||
"@material/mwc-checkbox": "0.27.0",
|
||||
@ -128,7 +128,7 @@
|
||||
"@vaadin/tooltip": "24.2.9",
|
||||
"@zip.js/zip.js": "2.7.57",
|
||||
"axios": "1.7.9",
|
||||
"electron": "34.1.0",
|
||||
"electron": "34.1.1",
|
||||
"electron-builder": "25.1.8",
|
||||
"epml": "0.3.3",
|
||||
"file-saver": "2.0.5",
|
||||
@ -140,7 +140,7 @@
|
||||
"pwa-helpers": "0.9.1",
|
||||
"redux": "5.0.1",
|
||||
"redux-thunk": "3.1.0",
|
||||
"rollup": "4.34.4",
|
||||
"rollup": "4.34.6",
|
||||
"rollup-plugin-node-globals": "1.4.0",
|
||||
"rollup-plugin-progress": "1.1.2",
|
||||
"rollup-plugin-scss": "3.0.0",
|
||||
|
@ -2551,15 +2551,13 @@ class ChatPage extends LitElement {
|
||||
const initDirect = async (cid, noInitial) => {
|
||||
let timeoutId
|
||||
let initial = 0
|
||||
|
||||
let directSocketTimeout
|
||||
|
||||
let myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
|
||||
let nodeUrl = myNode.domain + ":" + myNode.port
|
||||
|
||||
let nodeProtocol = myNode.protocol
|
||||
let directSocketLink
|
||||
|
||||
if (window.parent.location.protocol === "https:") {
|
||||
if (nodeProtocol === "https") {
|
||||
directSocketLink = `wss://${nodeUrl}/websockets/chat/messages?involving=${window.parent.reduxStore.getState().app.selectedAddress.address}&involving=${cid}&encoding=BASE64&limit=1`
|
||||
} else {
|
||||
// Fallback to http
|
||||
@ -2675,17 +2673,15 @@ class ChatPage extends LitElement {
|
||||
const initGroup = (gId, noInitial) => {
|
||||
let timeoutId
|
||||
let groupId = Number(gId)
|
||||
|
||||
let initial = 0
|
||||
let count = 0
|
||||
let groupSocketTimeout
|
||||
|
||||
let myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
|
||||
let nodeUrl = myNode.domain + ":" + myNode.port
|
||||
|
||||
let nodeProtocol = myNode.protocol
|
||||
let groupSocketLink
|
||||
|
||||
if (window.parent.location.protocol === "https:") {
|
||||
if (nodeProtocol === "https") {
|
||||
groupSocketLink = `wss://${nodeUrl}/websockets/chat/messages?txGroupId=${groupId}&encoding=BASE64&limit=1`
|
||||
} else {
|
||||
// Fallback to http
|
||||
|
@ -177,7 +177,7 @@ function processText(input) {
|
||||
})
|
||||
)
|
||||
} catch (error) {
|
||||
console.log({ error })
|
||||
console.error({ error })
|
||||
}
|
||||
})
|
||||
|
||||
@ -1081,17 +1081,22 @@ class MessageTemplate extends LitElement {
|
||||
let version = 0
|
||||
let isForwarded = false
|
||||
let isEdited = false
|
||||
|
||||
let isEncrypted = false
|
||||
|
||||
try {
|
||||
const parsedMessageObj = JSON.parse(this.messageObj.decodedMessage)
|
||||
|
||||
if (+parsedMessageObj.version > 1 && parsedMessageObj.messageText) {
|
||||
if (parsedMessageObj.version > 1 && parsedMessageObj.messageText) {
|
||||
messageVersion2 = generateHTML(parsedMessageObj.messageText, [StarterKit, Underline, Highlight, Mention])
|
||||
messageVersion2WithLink = processText(messageVersion2)
|
||||
}
|
||||
|
||||
message = parsedMessageObj.messageText
|
||||
if (parsedMessageObj.version > 1 && parsedMessageObj.message) {
|
||||
messageVersion2 = parsedMessageObj.message
|
||||
messageVersion2WithLink = processText(messageVersion2)
|
||||
}
|
||||
|
||||
message = parsedMessageObj.messageText ? parsedMessageObj.messageText : parsedMessageObj.message
|
||||
repliedToData = this.messageObj.repliedToData
|
||||
isImageDeleted = parsedMessageObj.isImageDeleted
|
||||
isGifDeleted = parsedMessageObj.isGifDeleted
|
||||
@ -1101,6 +1106,7 @@ class MessageTemplate extends LitElement {
|
||||
version = parsedMessageObj.version
|
||||
isForwarded = parsedMessageObj.type === 'forward'
|
||||
isEdited = parsedMessageObj.isEdited && true
|
||||
isEncrypted = parsedMessageObj.isFromHub || parsedMessageObj.message ? true : false
|
||||
|
||||
if (parsedMessageObj.images && Array.isArray(parsedMessageObj.images) && parsedMessageObj.images.length > 0) {
|
||||
image = parsedMessageObj.images[0]
|
||||
@ -1132,6 +1138,8 @@ class MessageTemplate extends LitElement {
|
||||
let hideit = hidemsg.includes(this.messageObj.sender)
|
||||
let forwarded = ''
|
||||
let edited = ''
|
||||
let encrypted = ''
|
||||
let decrypted = ''
|
||||
|
||||
levelFounder = html`<level-founder checkleveladdress="${this.messageObj.sender}"></level-founder>`
|
||||
|
||||
@ -1247,6 +1255,10 @@ class MessageTemplate extends LitElement {
|
||||
</span>
|
||||
`
|
||||
|
||||
encrypted = html` <mwc-icon style="font-size:16px; color: var(--chat-group);">key</mwc-icon> `
|
||||
|
||||
decrypted = html` <mwc-icon style="font-size:16px; color: var(--chat-group);">key_off</mwc-icon> `
|
||||
|
||||
if (repliedToData) {
|
||||
try {
|
||||
repliedToData.decodedMessage = JSON.parse(repliedToData.decodedMessage)
|
||||
@ -1536,9 +1548,10 @@ class MessageTemplate extends LitElement {
|
||||
<p class="attachment-name">
|
||||
${attachment && attachment.attachmentName}
|
||||
</p>
|
||||
<p class="attachment-size">
|
||||
${attachment.attachmentSize > 0 ?
|
||||
`<p class="attachment-size">
|
||||
${roundToNearestDecimal(attachment.attachmentSize)} mb
|
||||
</p>
|
||||
</p>` : ''}
|
||||
</div>
|
||||
<vaadin-icon
|
||||
@click=${async () => await this.downloadAttachment(attachment)}
|
||||
@ -1662,23 +1675,38 @@ class MessageTemplate extends LitElement {
|
||||
${this.isInProgress ? html`
|
||||
<p>${translate('chatpage.cchange91')}</p>
|
||||
` : this.isAgo ? html`
|
||||
<div id="timeformat">
|
||||
<span>
|
||||
<message-time timestamp=${this.messageObj.timestamp}></message-time>
|
||||
</span>
|
||||
<div style="display: flex; align-items: center;">
|
||||
<div style="margin-top: 4px;">
|
||||
${isEncrypted ? html`${encrypted}` : html`${decrypted}`}
|
||||
</div>
|
||||
<div id="timeformat">
|
||||
<span>
|
||||
<message-time timestamp=${this.messageObj.timestamp}></message-time>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
` : this.isIso ? html`
|
||||
<div id="timeformat">
|
||||
<span>
|
||||
${new Date(this.messageObj.timestamp).toLocaleString()}
|
||||
</span>
|
||||
<div style="display: flex; align-items: center;">
|
||||
<div style="margin-top: 4px;">
|
||||
${isEncrypted ? html`${encrypted}` : html`${decrypted}`}
|
||||
</div>
|
||||
<div id="timeformat">
|
||||
<span>
|
||||
${new Date(this.messageObj.timestamp).toLocaleString()}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
` : this.isBoth ? html`
|
||||
<div id="timeformat">
|
||||
<span>
|
||||
${new Date(this.messageObj.timestamp).toLocaleString()}
|
||||
( <message-time timestamp=${this.messageObj.timestamp}></message-time> )
|
||||
</span>
|
||||
<div style="display: flex; align-items: center;">
|
||||
<div style="margin-top: 4px;">
|
||||
${isEncrypted ? html`${encrypted}` : html`${decrypted}`}
|
||||
</div>
|
||||
<div id="timeformat">
|
||||
<span>
|
||||
${new Date(this.messageObj.timestamp).toLocaleString()}
|
||||
( <message-time timestamp=${this.messageObj.timestamp}></message-time> )
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
` : ''
|
||||
}
|
||||
@ -2176,7 +2204,7 @@ class MessageTemplate extends LitElement {
|
||||
|
||||
await writeFile(fileHandle, blob).then(() => console.log('FILE SAVED'))
|
||||
} catch (error) {
|
||||
console.log(error)
|
||||
console.error(error)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2014,8 +2014,13 @@ export const chatStyles = css`
|
||||
}
|
||||
|
||||
#messageContent code {
|
||||
background-color: rgba(#616161, 0.1);
|
||||
color: #616161;
|
||||
background: #0D0D0D;
|
||||
color: #FFF;
|
||||
font-family: 'JetBrainsMono', monospace;
|
||||
padding: 0.75rem 1rem;
|
||||
border-radius: 0.5rem;
|
||||
white-space: pre-wrap;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
#messageContent pre {
|
||||
@ -2034,12 +2039,10 @@ export const chatStyles = css`
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
|
||||
#messageContent img {
|
||||
width: 1.7em;
|
||||
height: 1.5em;
|
||||
margin: 0px;
|
||||
|
||||
}
|
||||
|
||||
#messageContent blockquote {
|
||||
@ -2078,8 +2081,13 @@ export const chatStyles = css`
|
||||
}
|
||||
|
||||
.replied-message code {
|
||||
background-color: rgba(#616161, 0.1);
|
||||
color: #616161;
|
||||
background: #0D0D0D;
|
||||
color: #FFF;
|
||||
font-family: 'JetBrainsMono', monospace;
|
||||
padding: 0.75rem 1rem;
|
||||
border-radius: 0.5rem;
|
||||
white-space: pre-wrap;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.replied-message pre {
|
||||
|
@ -55,6 +55,125 @@ export const mimeToExtensionMap = {
|
||||
"application/x-bzip2": ".bz2",
|
||||
}
|
||||
|
||||
export const parseQortalLink = (link) => {
|
||||
const prefix = "qortal://use-embed/"
|
||||
|
||||
let params = {}
|
||||
|
||||
if (!link.startsWith(prefix)) {
|
||||
throw new Error("Invalid link format")
|
||||
}
|
||||
|
||||
const [typePart, queryPart] = link.slice(prefix.length).split("?")
|
||||
const type = typePart.split("/")[0].toUpperCase()
|
||||
|
||||
if (queryPart) {
|
||||
const queryPairs = queryPart.split("&")
|
||||
queryPairs.forEach((pair) => {
|
||||
const [key, value] = pair.split("=")
|
||||
if (key && value) {
|
||||
const decodedKey = decodeURIComponent(key.trim())
|
||||
const decodedValue = value.trim().replace(/<\/?[^>]+(>|$)/g,"")
|
||||
params[decodedKey] = decodedValue
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
return { type, ...params }
|
||||
}
|
||||
|
||||
export const extensionToPointer = (repString) => {
|
||||
const replace00 = repString.split('qortal://use-embed/').join('<newpointer>qortal://use-embed/')
|
||||
const replace01 = replace00.split('.pdf').join('.pdf</newpointer>')
|
||||
const replace02 = replace01.split('.doc').join('.doc</newpointer>')
|
||||
const replace03 = replace02.split('.xls').join('.xls</newpointer>')
|
||||
const replace04 = replace03.split('.ppt').join('.ppt</newpointer>')
|
||||
const replace05 = replace04.split('.odt').join('.odt</newpointer>')
|
||||
const replace06 = replace05.split('.ods').join('.ods</newpointer>')
|
||||
const replace07 = replace06.split('.odp').join('.odp</newpointer>')
|
||||
const replace08 = replace07.split('.txt').join('.txt</newpointer>')
|
||||
const replace09 = replace08.split('.csv').join('.csv</newpointer>')
|
||||
const replace10 = replace09.split('.html').join('.html</newpointer>')
|
||||
const replace11 = replace10.split('.xml').join('.xml</newpointer>')
|
||||
const replace12 = replace11.split('.json').join('.json</newpointer>')
|
||||
const replace13 = replace12.split('.jpg').join('.jpg</newpointer>')
|
||||
const replace14 = replace13.split('.png').join('.png</newpointer>')
|
||||
const replace15 = replace14.split('.gif').join('.gif</newpointer>')
|
||||
const replace16 = replace15.split('.webp').join('.webp</newpointer>')
|
||||
const replace17 = replace16.split('.svg').join('.svg</newpointer>')
|
||||
const replace18 = replace17.split('.tif').join('.tif</newpointer>')
|
||||
const replace19 = replace18.split('.bmp').join('.bmp</newpointer>')
|
||||
const replace20 = replace19.split('.mp3').join('.mp3</newpointer>')
|
||||
const replace21 = replace20.split('.ogg').join('.ogg</newpointer>')
|
||||
const replace22 = replace21.split('.wav').join('.wav</newpointer>')
|
||||
const replace23 = replace22.split('.webm').join('.webm</newpointer>')
|
||||
const replace24 = replace23.split('.ogv').join('.ogv</newpointer>')
|
||||
const replace25 = replace24.split('.avi').join('.avi</newpointer>')
|
||||
const replace26 = replace25.split('.mov').join('.mov</newpointer>')
|
||||
const replace27 = replace26.split('.wmv').join('.wmv</newpointer>')
|
||||
const replace28 = replace27.split('.mpeg').join('.mpeg</newpointer>')
|
||||
const replace29 = replace28.split('.3gp').join('.3gp</newpointer>')
|
||||
const replace30 = replace29.split('.3g2').join('.3g2</newpointer>')
|
||||
const replace31 = replace30.split('.mkv').join('.mkv</newpointer>')
|
||||
const replace32 = replace31.split('.flv').join('.flv</newpointer>')
|
||||
const replace33 = replace32.split('.zip').join('.zip</newpointer>')
|
||||
const replace34 = replace33.split('.rar').join('.rar</newpointer>')
|
||||
const replace35 = replace34.split('.tar').join('.tar</newpointer>')
|
||||
const replace36 = replace35.split('.7z').join('.7z</newpointer>')
|
||||
const replace37 = replace36.split('.gz').join('.gz</newpointer>')
|
||||
const replace38 = replace37.split('.bz2').join('.bz2</newpointer>')
|
||||
|
||||
return replace38
|
||||
}
|
||||
|
||||
export const encodedToChar = (encodedString) => {
|
||||
const encode01 = encodedString.split('&').join('&')
|
||||
const encode02 = encode01.split(' ').join(' ')
|
||||
const encode03 = encode02.split('<').join('<')
|
||||
const encode04 = encode03.split('>').join('>')
|
||||
const encode05 = encode04.split('"').join('"')
|
||||
const encode06 = encode05.split('%20').join(' ')
|
||||
const encode07 = encode06.split('%23').join('#')
|
||||
const encode08 = encode07.split('%24').join('$')
|
||||
const encode09 = encode08.split('%26').join('&')
|
||||
const encode10 = encode09.split('%2B').join('+')
|
||||
const encode11 = encode10.split('%2C').join(',')
|
||||
const encode12 = encode11.split('%2F').join('/')
|
||||
const encode13 = encode12.split('%3A').join(':')
|
||||
const encode14 = encode13.split('%3B').join(';')
|
||||
const encode15 = encode14.split('%3D').join('=')
|
||||
const encode16 = encode15.split('%3F').join('?')
|
||||
const encode17 = encode16.split('%40').join('@')
|
||||
|
||||
return encode17
|
||||
}
|
||||
|
||||
export const embedToString = (embed) => {
|
||||
let embedString = ''
|
||||
let embedService = ''
|
||||
let embedName = ''
|
||||
let embedIdentifier = ''
|
||||
let embedAttachmentName = ''
|
||||
|
||||
if (embed.type === "IMAGE") {
|
||||
embedService = embed.service
|
||||
embedName = embed.name
|
||||
embedIdentifier = embed.identifier
|
||||
embedString = '"images":[{"service":"' + embedService + '","name":"' + embedName + '","identifier":"' + embedIdentifier + '"}],"isImageDeleted":false'
|
||||
} else if (embed.type === "ATTACHMENT") {
|
||||
embedService = embed.service
|
||||
embedName = embed.name
|
||||
embedIdentifier = embed.identifier
|
||||
embedAttachmentName = embed.fileName
|
||||
embedString = '"attachments":[{"service":"' + embedService + '","name":"' + embedName + '","identifier":"' + embedIdentifier + '","attachmentName":"' + embedAttachmentName + '","attachmentSize":0}],"isAttachmentDeleted":false'
|
||||
} else {
|
||||
embedString = '"images":[""]'
|
||||
}
|
||||
|
||||
return embedString
|
||||
}
|
||||
|
||||
|
||||
export const listOfAllQortalRequests = [
|
||||
'IS_USING_GATEWAY',
|
||||
'ADMIN_ACTION',
|
||||
@ -69,6 +188,7 @@ export const listOfAllQortalRequests = [
|
||||
'DECRYPT_QORTAL_GROUP_DATA',
|
||||
'ENCRYPT_DATA_WITH_SHARING_KEY',
|
||||
'DECRYPT_DATA_WITH_SHARING_KEY',
|
||||
'DECRYPT_AESGCM',
|
||||
'CREATE_TRADE_BUY_ORDER',
|
||||
'CREATE_TRADE_SELL_ORDER',
|
||||
'CANCEL_TRADE_SELL_ORDER',
|
||||
|
@ -33,6 +33,9 @@ export const ENCRYPT_DATA_WITH_SHARING_KEY = 'ENCRYPT_DATA_WITH_SHARING_KEY'
|
||||
// DECRYPT_DATA_WITH_SHARING_KEY
|
||||
export const DECRYPT_DATA_WITH_SHARING_KEY = 'DECRYPT_DATA_WITH_SHARING_KEY'
|
||||
|
||||
// DECRYPT_AESGCM
|
||||
export const DECRYPT_AESGCM = 'DECRYPT_AESGCM'
|
||||
|
||||
// CREATE_TRADE_BUY_ORDER
|
||||
export const CREATE_TRADE_BUY_ORDER = 'CREATE_TRADE_BUY_ORDER'
|
||||
|
||||
|
@ -5,7 +5,12 @@ import {
|
||||
uint8ArrayToObject,
|
||||
decryptSingle
|
||||
} from './GroupEncryption.js'
|
||||
|
||||
import {
|
||||
extensionToPointer,
|
||||
encodedToChar,
|
||||
embedToString,
|
||||
parseQortalLink
|
||||
} from './qdn-action-constants.js'
|
||||
|
||||
const nacl = {}
|
||||
|
||||
@ -2738,7 +2743,6 @@ class Curve25519 {
|
||||
}
|
||||
|
||||
const base58Instant = new Base58()
|
||||
|
||||
const curve25519Instance = new Curve25519()
|
||||
|
||||
self.addEventListener('message', async (e) => {
|
||||
@ -2762,8 +2766,16 @@ self.addEventListener('message', async (e) => {
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
const decode = (string, keys, ref) => {
|
||||
let repliedToStr = ''
|
||||
let hubSpecialId = ''
|
||||
let hubMessageStr = ''
|
||||
let newMessageObject = ''
|
||||
let reactionStr = ''
|
||||
let messageUseEmbed = {}
|
||||
let editStr = false
|
||||
let embedFileStr = '"images":[""]'
|
||||
|
||||
const binaryString = atob(string)
|
||||
const binaryLength = binaryString.length
|
||||
const bytes = new Uint8Array(binaryLength)
|
||||
@ -2784,66 +2796,49 @@ const decode = (string, keys, ref) => {
|
||||
return decodedString
|
||||
}
|
||||
} else {
|
||||
let repliedToStr = ''
|
||||
let messageStr = ''
|
||||
let hubString = ''
|
||||
|
||||
const res = decryptSingle(string, keys, false)
|
||||
|
||||
if (res === 'noKey' || res === 'decryptionFailed') {
|
||||
return '{"messageText":{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"This message could not be decrypted"}]}]},"images":[""],"repliedTo":"","version":3}'
|
||||
return '{"specialId":"","message":"<p>This message could not be decrypted</p>","repliedTo":"","isEdited":false,"isFromHub":true,"version": 3}'
|
||||
}
|
||||
|
||||
const decryptToUnit8Array = base64ToUint8Array(res)
|
||||
const responseData = uint8ArrayToObject(decryptToUnit8Array)
|
||||
|
||||
if (responseData.type === "notification") {
|
||||
const messageStrRaw = responseData.data.message
|
||||
messageStr = messageStrRaw.trim()
|
||||
}
|
||||
|
||||
if (ref !== "noref") {
|
||||
if (responseData.type === "reaction") {
|
||||
repliedToStr = ref
|
||||
messageStr = responseData.content
|
||||
}
|
||||
}
|
||||
|
||||
if (responseData.hasOwnProperty('message') && typeof responseData['message'] === 'string' && responseData['message'].length) {
|
||||
const messageRep = responseData.message
|
||||
const messageRep1 = messageRep.split('"').join('<upvote>')
|
||||
const messageRep2 = messageRep1.split('</p><p></p><p></p><p></p><p>').join('"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"text","text":"')
|
||||
const messageRep3 = messageRep2.split('</p><p></p><p></p><p>').join('"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"text","text":"')
|
||||
const messageRep4 = messageRep3.split('</p><p></p><p>').join('"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"text","text":"')
|
||||
const messageRep5 = messageRep4.replace('</p><p>', '')
|
||||
const messageRep6 = messageRep5.replace('<p></p>', '')
|
||||
const messageRep7 = messageRep6.replace('<p>', '')
|
||||
const messageRep8 = messageRep7.replace('<br></p>', '')
|
||||
const messageRep9 = messageRep8.replace('</p>', '')
|
||||
const messageRep10 = messageRep9.trim()
|
||||
const messageRep11 = messageRep10.split('<br><br><br><br>').join('"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"text","text":"')
|
||||
const messageRep12 = messageRep11.split('<br><br><br>').join('"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"text","text":"')
|
||||
const messageRep13 = messageRep12.split('<br><br>').join('"},{"type":"hardBreak"},{"type":"hardBreak"},{"type":"text","text":"')
|
||||
const messageRep14 = messageRep13.split('<br>').join('"},{"type":"hardBreak"},{"type":"text","text":"')
|
||||
messageStr = messageRep14
|
||||
if (responseData.type === "edit") {
|
||||
editStr = true
|
||||
}
|
||||
|
||||
if (responseData.repliedTo) {
|
||||
repliedToStr = responseData.repliedTo
|
||||
}
|
||||
|
||||
if (responseData.type === "edit") {
|
||||
hubString = '{"messageText":{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"' + messageStr + '"}]}]},"images":[""],"repliedTo":"' + repliedToStr + '","version":3,"isEdited":true}'
|
||||
} else if (responseData.type === "reaction") {
|
||||
hubString = '{"messageText":{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"' + messageStr + '"}]}]},"images":[""],"repliedTo":"' + repliedToStr + '","version":3,"isReaction":true}'
|
||||
} else {
|
||||
hubString = '{"messageText":{"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":"' + messageStr + '"}]}]},"images":[""],"repliedTo":"' + repliedToStr + '","version":3}'
|
||||
if (responseData.specialId) {
|
||||
hubSpecialId = responseData.specialId
|
||||
}
|
||||
|
||||
const preparedString = hubString.split('<upvote>').join('\\"')
|
||||
const finalString = preparedString.replace(/<\/?[^>]+(>|$)/g, '')
|
||||
if (responseData.type === "notification") {
|
||||
hubMessageStr = responseData.data.message
|
||||
} else if (ref !== "noref" && responseData.type === "reaction") {
|
||||
reactionStr = '"isReaction":true,'
|
||||
repliedToStr = ref
|
||||
hubMessageStr = responseData.content
|
||||
} else if (responseData.message.includes('qortal://use-embed/')) {
|
||||
const useEmbed1 = extensionToPointer(responseData.message)
|
||||
const useEmbed2 = /<newpointer>(.*?)<\/newpointer>/g.exec(useEmbed1)
|
||||
const useEmbed3 = encodedToChar(useEmbed2[1])
|
||||
messageUseEmbed = parseQortalLink(useEmbed3)
|
||||
embedFileStr = embedToString(messageUseEmbed)
|
||||
hubMessageStr = responseData.message.split(useEmbed2[1]).join('')
|
||||
} else {
|
||||
hubMessageStr = responseData.message
|
||||
}
|
||||
|
||||
return finalString
|
||||
const hubMessageFinal = hubMessageStr.split('"').join('"')
|
||||
|
||||
newMessageObject = '{"specialId":"' + hubSpecialId + '","message":"' + hubMessageFinal + '",' + embedFileStr + ',"repliedTo":"' + repliedToStr + '","isEdited":' + editStr + ',"isFromHub":true,' + reactionStr + '"version": 3}'
|
||||
|
||||
return newMessageObject
|
||||
}
|
||||
}
|
||||
|
||||
@ -2950,4 +2945,4 @@ const decodeMessage = (encodedMessageObj, isReceipient, _publicKey, privateKey,
|
||||
}
|
||||
|
||||
return decodedMessageObj
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -317,7 +317,7 @@ class Chat extends LitElement {
|
||||
<!-- View Chat Over ID -->
|
||||
<mwc-dialog id="viewChatDialog">
|
||||
<div style="text-align: center;">
|
||||
<h1>Please Enter The Group ID</h1>
|
||||
<h1>${translate("modals.mpchange87")}</h1>
|
||||
<hr>
|
||||
<br>
|
||||
</div>
|
||||
@ -326,7 +326,7 @@ class Chat extends LitElement {
|
||||
style="width: 100%;"
|
||||
required
|
||||
id="groupIdInput"
|
||||
label="Emter Group ID"
|
||||
label="${translate("managegroup.mg8")}"
|
||||
type="number"
|
||||
auto-validate="false"
|
||||
value=""
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -136,9 +136,10 @@ function attemptReconnectNodeStatusSocket() {
|
||||
const initBlockSocket = () => {
|
||||
let myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
|
||||
let nodeUrl = myNode.domain + ":" + myNode.port
|
||||
let nodeProtocol = myNode.protocol
|
||||
let activeBlockSocketLink
|
||||
|
||||
if (window.parent.location.protocol === "https:") {
|
||||
if (nodeProtocol === "https") {
|
||||
activeBlockSocketLink = `wss://${nodeUrl}/websockets/blocks`
|
||||
} else {
|
||||
activeBlockSocketLink = `ws://${nodeUrl}/websockets/blocks`
|
||||
@ -205,9 +206,10 @@ const pingactiveBlockSocket = () => {
|
||||
const initNodeStatusSocket = () => {
|
||||
let myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
|
||||
let nodeUrl = myNode.domain + ":" + myNode.port
|
||||
let nodeProtocol = myNode.protocol
|
||||
let activeNodeStatusSocketLink
|
||||
|
||||
if (window.parent.location.protocol === "https:") {
|
||||
if (nodeProtocol === "https") {
|
||||
activeNodeStatusSocketLink = `wss://${nodeUrl}/websockets/admin/status`
|
||||
} else {
|
||||
activeNodeStatusSocketLink = `ws://${nodeUrl}/websockets/admin/status`
|
||||
|
@ -112,9 +112,10 @@ parentEpml.subscribe('logged_in', async isLoggedIn => {
|
||||
const initChatHeadSocket = () => {
|
||||
let myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
|
||||
let nodeUrl = myNode.domain + ":" + myNode.port
|
||||
let nodeProtocol = myNode.protocol
|
||||
let activeChatSocketLink
|
||||
|
||||
if (window.parent.location.protocol === "https:") {
|
||||
if (nodeProtocol === "https") {
|
||||
activeChatSocketLink = `wss://${nodeUrl}/websockets/chat/active/${window.parent.reduxStore.getState().app.selectedAddress.address}?encoding=BASE64`
|
||||
} else {
|
||||
activeChatSocketLink = `ws://${nodeUrl}/websockets/chat/active/${window.parent.reduxStore.getState().app.selectedAddress.address}?encoding=BASE64`
|
||||
|
@ -2882,7 +2882,7 @@ class TradeBotPortal extends LitElement {
|
||||
const initTradeOffersWebSocket = (restarted = false) => {
|
||||
let tradeOffersSocketCounter = 0
|
||||
let socketTimeout
|
||||
let socketLink = `ws://NODEURL/websockets/crosschain/tradeoffers?foreignBlockchain=FOREIGN_BLOCKCHAIN&includeHistoric=true`
|
||||
let socketLink = `PROTOCOL://NODEURL/websockets/crosschain/tradeoffers?foreignBlockchain=FOREIGN_BLOCKCHAIN&includeHistoric=true`
|
||||
const socket = new WebSocket(socketLink)
|
||||
socket.onopen = () => {
|
||||
setTimeout(pingSocket, 50)
|
||||
@ -2914,7 +2914,7 @@ class TradeBotPortal extends LitElement {
|
||||
|
||||
const initTradeBotWebSocket = (restarted = false) => {
|
||||
let socketTimeout
|
||||
let socketLink = `ws://NODEURL/websockets/crosschain/tradebot?foreignBlockchain=FOREIGN_BLOCKCHAIN`
|
||||
let socketLink = `PROTOCOL://NODEURL/websockets/crosschain/tradebot?foreignBlockchain=FOREIGN_BLOCKCHAIN`
|
||||
const socket = new WebSocket(socketLink)
|
||||
socket.onopen = () => {
|
||||
setTimeout(pingSocket, 50)
|
||||
@ -2943,7 +2943,7 @@ class TradeBotPortal extends LitElement {
|
||||
|
||||
const initTradePresenceWebSocket = (restarted = false) => {
|
||||
let socketTimeout
|
||||
let socketLink = `ws://NODEURL/websockets/crosschain/tradepresence`
|
||||
let socketLink = `PROTOCOL://NODEURL/websockets/crosschain/tradepresence`
|
||||
const socket = new WebSocket(socketLink)
|
||||
socket.onopen = () => {
|
||||
setTimeout(pingSocket, 50)
|
||||
@ -3289,10 +3289,19 @@ class TradeBotPortal extends LitElement {
|
||||
|
||||
let myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
|
||||
let nodeUrl = myNode.domain + ':' + myNode.port
|
||||
let nodeProtocol = myNode.protocol
|
||||
let checkProtocol
|
||||
|
||||
if (nodeProtocol === "https") {
|
||||
checkProtocol = 'wss'
|
||||
} else {
|
||||
checkProtocol = 'ws'
|
||||
}
|
||||
|
||||
const modifiers = [
|
||||
{ searchValue: 'PROTOCOL', replaceValue: checkProtocol },
|
||||
{ searchValue: 'NODEURL', replaceValue: nodeUrl },
|
||||
{ searchValue: 'FOREIGN_BLOCKCHAIN', replaceValue: this.selectedCoin },
|
||||
{ searchValue: 'FOREIGN_BLOCKCHAIN', replaceValue: this.selectedCoin }
|
||||
]
|
||||
|
||||
workers.get(this.selectedCoin).tradesConnectedWorker = this.inlineWorker(this.initSocket, modifiers)
|
||||
|
@ -2181,7 +2181,7 @@ class TradePortal extends LitElement {
|
||||
const initTradeOffersWebSocket = (restarted = false) => {
|
||||
let tradeOffersSocketCounter = 0
|
||||
let socketTimeout
|
||||
let socketLink = `ws://NODEURL/websockets/crosschain/tradeoffers?foreignBlockchain=FOREIGN_BLOCKCHAIN&includeHistoric=true`
|
||||
let socketLink = `PROTOCOL://NODEURL/websockets/crosschain/tradeoffers?foreignBlockchain=FOREIGN_BLOCKCHAIN&includeHistoric=true`
|
||||
const socket = new WebSocket(socketLink)
|
||||
socket.onopen = () => {
|
||||
setTimeout(pingSocket, 50)
|
||||
@ -2213,7 +2213,7 @@ class TradePortal extends LitElement {
|
||||
|
||||
const initTradeBotWebSocket = (restarted = false) => {
|
||||
let socketTimeout
|
||||
let socketLink = `ws://NODEURL/websockets/crosschain/tradebot?foreignBlockchain=FOREIGN_BLOCKCHAIN`
|
||||
let socketLink = `PROTOCOL://NODEURL/websockets/crosschain/tradebot?foreignBlockchain=FOREIGN_BLOCKCHAIN`
|
||||
const socket = new WebSocket(socketLink)
|
||||
socket.onopen = () => {
|
||||
setTimeout(pingSocket, 50)
|
||||
@ -2242,7 +2242,7 @@ class TradePortal extends LitElement {
|
||||
|
||||
const initTradePresenceWebSocket = (restarted = false) => {
|
||||
let socketTimeout
|
||||
let socketLink = `ws://NODEURL/websockets/crosschain/tradepresence`
|
||||
let socketLink = `PROTOCOL://NODEURL/websockets/crosschain/tradepresence`
|
||||
const socket = new WebSocket(socketLink)
|
||||
socket.onopen = () => {
|
||||
setTimeout(pingSocket, 50)
|
||||
@ -2726,10 +2726,19 @@ class TradePortal extends LitElement {
|
||||
|
||||
let myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
|
||||
let nodeUrl = myNode.domain + ':' + myNode.port
|
||||
let nodeProtocol = myNode.protocol
|
||||
let checkProtocol
|
||||
|
||||
if (nodeProtocol === "https") {
|
||||
checkProtocol = 'wss'
|
||||
} else {
|
||||
checkProtocol = 'ws'
|
||||
}
|
||||
|
||||
const modifiers = [
|
||||
{ searchValue: 'PROTOCOL', replaceValue: checkProtocol },
|
||||
{ searchValue: 'NODEURL', replaceValue: nodeUrl },
|
||||
{ searchValue: 'FOREIGN_BLOCKCHAIN', replaceValue: this.selectedCoin },
|
||||
{ searchValue: 'FOREIGN_BLOCKCHAIN', replaceValue: this.selectedCoin }
|
||||
]
|
||||
|
||||
workers.get(this.selectedCoin).tradesConnectedWorker = this.inlineWorker(this.initSocket, modifiers)
|
||||
@ -2791,7 +2800,7 @@ class TradePortal extends LitElement {
|
||||
})
|
||||
|
||||
const getCompletedTrades = async () => {
|
||||
const url = `http://NODEURL/crosschain/trades?limit=25&reverse=true&foreignBlockchain=FOREIGN_BLOCKCHAIN`
|
||||
const url = `PROTOCOL://NODEURL/crosschain/trades?limit=25&reverse=true&foreignBlockchain=FOREIGN_BLOCKCHAIN`
|
||||
const res = await fetch(url)
|
||||
const historicTrades = await res.json()
|
||||
const compareFn = (a, b) => {
|
||||
@ -2810,7 +2819,7 @@ class TradePortal extends LitElement {
|
||||
}
|
||||
|
||||
const getOffers = async () => {
|
||||
const url = `http://NODEURL/crosschain/tradeoffers?foreignBlockchain=FOREIGN_BLOCKCHAIN`
|
||||
const url = `PROTOCOL://NODEURL/crosschain/tradeoffers?foreignBlockchain=FOREIGN_BLOCKCHAIN`
|
||||
const res = await fetch(url)
|
||||
const openTradeOrders = await res.json()
|
||||
const myOpenTradeOrders = await openTradeOrders.filter((order) => order.mode === 'OFFERING' && order.qortalCreator === 'SELECTED_ADDRESS')
|
||||
@ -2872,11 +2881,20 @@ class TradePortal extends LitElement {
|
||||
|
||||
let myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
|
||||
let nodeUrl = myNode.domain + ':' + myNode.port
|
||||
let nodeProtocol = myNode.protocol
|
||||
let checkProtocol
|
||||
|
||||
if (nodeProtocol === "https") {
|
||||
checkProtocol = 'https'
|
||||
} else {
|
||||
checkProtocol = 'http'
|
||||
}
|
||||
|
||||
const modifiers = [
|
||||
{ searchValue: 'PROTOCOL', replaceValue: checkProtocol },
|
||||
{ searchValue: 'NODEURL', replaceValue: nodeUrl },
|
||||
{ searchValue: 'SELECTED_ADDRESS', replaceValue: this.selectedAddress.address, },
|
||||
{ searchValue: 'FOREIGN_BLOCKCHAIN', replaceValue: this.selectedCoin, },
|
||||
{ searchValue: 'SELECTED_ADDRESS', replaceValue: this.selectedAddress.address },
|
||||
{ searchValue: 'FOREIGN_BLOCKCHAIN', replaceValue: this.selectedCoin, }
|
||||
]
|
||||
|
||||
workers.get(this.selectedCoin).handleStuckTradesConnectedWorker = this.inlineWorker(this.handleStuckTrades, modifiers)
|
||||
|
@ -1105,6 +1105,19 @@ export const publishData = async ({
|
||||
}
|
||||
}
|
||||
|
||||
export async function getNameInfo(address) {
|
||||
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
|
||||
const nodeUrl = `${myNode.protocol}://${myNode.domain}:${myNode.port}`
|
||||
const response = await fetch(`${nodeUrl}/names/address/` + address)
|
||||
const nameData = await response.json()
|
||||
|
||||
if (nameData.length > 0) {
|
||||
return nameData[0].name
|
||||
} else {
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
export const getPublishesFromAdmins = async (admins, groupId) => {
|
||||
const queryString = admins.map((name) => `name=${name}`).join("&")
|
||||
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
|
||||
@ -1113,7 +1126,7 @@ export const getPublishesFromAdmins = async (admins, groupId) => {
|
||||
const response = await fetch(url)
|
||||
|
||||
if (!response.ok) {
|
||||
consoöe.error("network error")
|
||||
console.error("network error")
|
||||
return false
|
||||
}
|
||||
|
||||
@ -1178,7 +1191,7 @@ export const getPublishesFromAdminsAdminSpace = async (admins, groupId) => {
|
||||
const response = await fetch(url)
|
||||
|
||||
if (!response.ok) {
|
||||
consoöe.error("network error")
|
||||
console.error("network error")
|
||||
return false
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user