From 36ee386c82724980d5eb85d310bf6e5d03a675b0 Mon Sep 17 00:00:00 2001 From: Phillip Date: Thu, 10 Aug 2023 04:19:24 +0300 Subject: [PATCH 01/31] qortalrequest for local q-app notifications --- core/language/us.json | 3 +- core/src/components/show-plugin.js | 9 +- core/src/notifications/dispatcher.js | 6 +- .../notification-actions/index.js | 2 +- .../notification-actions/new-message.js | 154 ++++++++++++++++ core/src/notifications/types.js | 1 + core/src/redux/app/version.js | 2 +- .../core/components/qdn-action-types.js | 11 +- .../plugins/core/qdn/browser/browser.src.js | 169 +++++++++++++++++- 9 files changed, 346 insertions(+), 11 deletions(-) diff --git a/core/language/us.json b/core/language/us.json index cbf85a4f..7fcfc8a1 100644 --- a/core/language/us.json +++ b/core/language/us.json @@ -719,7 +719,8 @@ "bchange43": "Do you give this application permission to add to this list?", "bchange44": "Do you give this application permission to delete from this list?", "bchange45": "Encrypt", - "bchange46": "Do you give this application permission to save the following file" + "bchange46": "Do you give this application permission to save the following file", + "bchange47": "Do you give this application permission to send you notifications" }, "datapage": { "dchange1": "Data Management", diff --git a/core/src/components/show-plugin.js b/core/src/components/show-plugin.js index c1ba4afc..a5c1153b 100644 --- a/core/src/components/show-plugin.js +++ b/core/src/components/show-plugin.js @@ -396,14 +396,15 @@ class ShowPlugin extends connect(store)(LitElement) { icon = 'tab' } - if (tab.myPlugObj && (tab.myPlugObj.url === 'websites' || tab.myPlugObj.url === 'qapps') && this.tabInfo[tab.id]) { - title = this.tabInfo[tab.id].name + if (tab.myPlugObj && (tab.myPlugObj.url === 'myapp') && this.tabInfo[tab.id]) { + title = this.tabInfo[tab.id].name } - if (tab.myPlugObj && (tab.myPlugObj.url === 'websites' || tab.myPlugObj.url === 'qapps') && this.tabInfo[tab.id]) { - count = this.tabInfo[tab.id].count + if (tab.myPlugObj && (tab.myPlugObj.url === 'myapp') && this.tabInfo[tab.id]) { + count = this.tabInfo[tab.id].count } + if (tab.myPlugObj && tab.myPlugObj.url === 'q-chat') { for (const chat of this.chatHeads) { diff --git a/core/src/notifications/dispatcher.js b/core/src/notifications/dispatcher.js index b74e11e1..b0c7713e 100644 --- a/core/src/notifications/dispatcher.js +++ b/core/src/notifications/dispatcher.js @@ -1,5 +1,5 @@ -import { NEW_MESSAGE, NEW_MESSAGE_NOTIFICATION_QAPP } from './types' -import { newMessage, newMessageNotificationQapp } from './notification-actions' +import { NEW_MESSAGE, NEW_MESSAGE_NOTIFICATION_QAPP, NEW_MESSAGE_NOTIFICATION_QAPP_LOCAL } from './types' +import { newMessage, newMessageNotificationQapp, newMessageNotificationQappLocal } from './notification-actions' export const dispatcher = function (notificationState) { @@ -8,6 +8,8 @@ export const dispatcher = function (notificationState) { return newMessage(notificationState.data) case NEW_MESSAGE_NOTIFICATION_QAPP: return newMessageNotificationQapp(notificationState.data) + case NEW_MESSAGE_NOTIFICATION_QAPP_LOCAL: + return newMessageNotificationQappLocal(notificationState.data) default: } } diff --git a/core/src/notifications/notification-actions/index.js b/core/src/notifications/notification-actions/index.js index 02faea66..cc2f8937 100644 --- a/core/src/notifications/notification-actions/index.js +++ b/core/src/notifications/notification-actions/index.js @@ -1 +1 @@ -export { newMessage, newMessageNotificationQapp } from './new-message' +export { newMessage, newMessageNotificationQapp, newMessageNotificationQappLocal } from './new-message' diff --git a/core/src/notifications/notification-actions/new-message.js b/core/src/notifications/notification-actions/new-message.js index 26803216..932da937 100644 --- a/core/src/notifications/notification-actions/new-message.js +++ b/core/src/notifications/notification-actions/new-message.js @@ -1,6 +1,9 @@ import { store } from '../../store.js' import { doPageUrl, setNewTab } from '../../redux/app/app-actions.js' import isElectron from 'is-electron' +import ShortUniqueId from 'short-unique-id'; + +const uid = new ShortUniqueId() export const newMessage = (data) => { const alert = playSound(data.sound) @@ -101,6 +104,157 @@ export const newMessageNotificationQapp = (data) => { } } +} + + const extractComponents= async (url)=> { + if (!url.startsWith("qortal://")) { + return null; + } + + url = url.replace(/^(qortal\:\/\/)/, ""); + if (url.includes("/")) { + let parts = url.split("/"); + const service = parts[0].toUpperCase(); + parts.shift(); + const name = parts[0]; + parts.shift(); + let identifier; + + if (parts.length > 0) { + identifier = parts[0]; // Do not shift yet + // Check if a resource exists with this service, name and identifier combination + let responseObj = await parentEpml.request('apiCall', { + url: `/arbitrary/resource/status/${service}/${name}/${identifier}?apiKey=${this.getApiKey()}` + }) + + if (responseObj.totalChunkCount > 0) { + // Identifier exists, so don't include it in the path + parts.shift(); + } + else { + identifier = null; + } + } + + const path = parts.join("/"); + + const components = {}; + components["service"] = service; + components["name"] = name; + components["identifier"] = identifier; + components["path"] = path; + return components; + } + + return null; +} + +export const newMessageNotificationQappLocal = (data) => { + const alert = playSound(data.sound) + + // Should I show notification ? + if (store.getState().user.notifications.q_chat.showNotification) { + + // Yes, I can but should I play sound ? + if (store.getState().user.notifications.q_chat.playSound) { + + const notify = new Notification(data.title, data.options) + + notify.onshow = (e) => { + alert.play() + } + + notify.onclick = async(e) => { + const url = data?.url + const value = url + let newQuery = value; + if (newQuery.endsWith('/')) { + newQuery = newQuery.slice(0, -1); + } + const res = await extractComponents(newQuery) + if (!res) return + const { service, name, identifier, path } = res + let query = `?service=${service}` + if (name) { + query = query + `&name=${name}` + } + if (identifier) { + query = query + `&identifier=${identifier}` + } + if (path) { + query = query + `&path=${path}` + } + const tab = { + url: `qdn/browser/index.html${query}`, + id: uid(), + myPlugObj: { + "url": service === 'WEBSITE' ? "websites" : "qapps", + "domain": "core", + "page": `qdn/browser/index.html${query}`, + "title": name, + "icon": service === 'WEBSITE' ? 'vaadin:desktop' : 'vaadin:external-browser', + "mwcicon": service === 'WEBSITE' ? 'desktop_mac' : 'open_in_browser', + "menus": [], + "parent": false + } + } + store.dispatch(setNewTab(tab)) + if (!isElectron()) { + window.focus(); + } else { + window.electronAPI.focusApp() + } + + } + } else { + + const notify = new Notification(data.title, data.options) + + notify.onclick = async(e) => { + const url = data?.url + const value = url + let newQuery = value; + if (newQuery.endsWith('/')) { + newQuery = newQuery.slice(0, -1); + } + const res = await extractComponents(newQuery) + if (!res) return + const { service, name, identifier, path } = res + let query = `?service=${service}` + if (name) { + query = query + `&name=${name}` + } + if (identifier) { + query = query + `&identifier=${identifier}` + } + if (path) { + query = query + `&path=${path}` + } + const tab = { + url: `qdn/browser/index.html${query}`, + id: uid(), + myPlugObj: { + "url": service === 'WEBSITE' ? "websites" : "qapps", + "domain": "core", + "page": `qdn/browser/index.html${query}`, + "title": name, + "icon": service === 'WEBSITE' ? 'vaadin:desktop' : 'vaadin:external-browser', + "mwcicon": service === 'WEBSITE' ? 'desktop_mac' : 'open_in_browser', + "menus": [], + "parent": false + } + } + store.dispatch(setNewTab(tab)) + if (!isElectron()) { + window.focus(); + } else { + window.electronAPI.focusApp() + } + + } + } + } + } const playSound = (soundUrl) => { diff --git a/core/src/notifications/types.js b/core/src/notifications/types.js index 0f8b1c05..f50b3ec7 100644 --- a/core/src/notifications/types.js +++ b/core/src/notifications/types.js @@ -1,2 +1,3 @@ export const NEW_MESSAGE = 'NEW_MESSAGE' export const NEW_MESSAGE_NOTIFICATION_QAPP = 'NEW_MESSAGE_NOTIFICATION_QAPP' +export const NEW_MESSAGE_NOTIFICATION_QAPP_LOCAL = 'NEW_MESSAGE_NOTIFICATION_QAPP_LOCAL' diff --git a/core/src/redux/app/version.js b/core/src/redux/app/version.js index 91ebdadc..51e897a7 100644 --- a/core/src/redux/app/version.js +++ b/core/src/redux/app/version.js @@ -1 +1 @@ -export const UI_VERSION = "4.0.4"; +export const UI_VERSION = "4.3.0"; diff --git a/plugins/plugins/core/components/qdn-action-types.js b/plugins/plugins/core/components/qdn-action-types.js index fd337ad1..59385690 100644 --- a/plugins/plugins/core/components/qdn-action-types.js +++ b/plugins/plugins/core/components/qdn-action-types.js @@ -50,4 +50,13 @@ export const DECRYPT_DATA_GROUP = 'DECRYPT_DATA_GROUP' export const SAVE_FILE = 'SAVE_FILE' //SET_TAB_NOTIFICATIONS -export const SET_TAB_NOTIFICATIONS = 'SET_TAB_NOTIFICATIONS' \ No newline at end of file +export const SET_TAB_NOTIFICATIONS = 'SET_TAB_NOTIFICATIONS' + +//OPEN_NEW_TAB +export const OPEN_NEW_TAB = 'OPEN_NEW_TAB' + +//NOTIFICATIONS_PERMISSION +export const NOTIFICATIONS_PERMISSION = 'NOTIFICATIONS_PERMISSION' + +//SEND_LOCAL_NOTIFICATION +export const SEND_LOCAL_NOTIFICATION = 'SEND_LOCAL_NOTIFICATION' \ No newline at end of file diff --git a/plugins/plugins/core/qdn/browser/browser.src.js b/plugins/plugins/core/qdn/browser/browser.src.js index db59e4fd..fd3d30de 100644 --- a/plugins/plugins/core/qdn/browser/browser.src.js +++ b/plugins/plugins/core/qdn/browser/browser.src.js @@ -3,6 +3,7 @@ import { render } from 'lit/html.js' import { Epml } from '../../../../epml' import isElectron from 'is-electron' import { use, get, translate, translateUnsafeHTML, registerTranslateConfig } from 'lit-translate' +import ShortUniqueId from 'short-unique-id'; registerTranslateConfig({ loader: (lang) => fetch(`/language/${lang}.json`).then((res) => res.json()) @@ -131,6 +132,7 @@ class WebBrowser extends LitElement { constructor() { super(); this.url = 'about:blank'; + this.uid = new ShortUniqueId() this.myAddress = window.parent.reduxStore.getState().app.selectedAddress this._publicKey = { key: '', hasPubKey: false } const urlParams = new URLSearchParams(window.location.search) @@ -318,6 +320,44 @@ class WebBrowser extends LitElement { } } + async linkOpenNewTab(link) { + + const value = link + let newQuery = value; + if (newQuery.endsWith('/')) { + newQuery = newQuery.slice(0, -1); + } + const res = await this.extractComponents(newQuery) + if (!res) return + const { service, name, identifier, path } = res + let query = `?service=${service}` + if (name) { + query = query + `&name=${name}` + } + if (identifier) { + query = query + `&identifier=${identifier}` + } + if (path) { + query = query + `&path=${path}` + } + + window.parent.reduxStore.dispatch(window.parent.reduxAction.setNewTab({ + url: `qdn/browser/index.html${query}`, + id: this.uid(), + myPlugObj: { + "url": service === 'WEBSITE' ? "websites" : "qapps", + "domain": "core", + "page": `qdn/browser/index.html${query}`, + "title": name, + "icon": service === 'WEBSITE' ? 'vaadin:desktop' : 'vaadin:external-browser', + "mwcicon": service === 'WEBSITE' ? 'desktop_mac' : 'open_in_browser', + "menus": [], + "parent": false + } + })) + + } + render() { return html` @@ -1253,8 +1293,91 @@ class WebBrowser extends LitElement { // If they decline, send back JSON that includes an `error` key, such as `{"error": "User declined request"}` break; } + case actions.OPEN_NEW_TAB: { + if(!data.qortalLink){ + const obj = {}; + const errorMsg = 'Please enter a qortal link - qortal://...'; + obj['error'] = errorMsg; + response = JSON.stringify(obj); + break + } + try { + await this.linkOpenNewTab(data.qortalLink) + response = true + } catch (error) { + console.log('error', error) + const obj = {}; + const errorMsg = "Invalid qortal link"; + obj['error'] = errorMsg; + response = JSON.stringify(obj); + break; + } + + } + case actions.NOTIFICATIONS_PERMISSION: { + try { + const res = await showModalAndWait( + actions.NOTIFICATIONS_PERMISSION, + { + name: this.name + } + ); + if (res.action === 'accept'){ + this.addAppToNotificationList(this.name) + response = true + break; + } + + } catch (error) { + break; + } + + } + case actions.SEND_LOCAL_NOTIFICATION: { + const {title, url, icon, message} = data + try { + const id = `appNotificationList-${this.selectedAddress.address}` + const checkData = localStorage.getItem(id) ? JSON.parse(localStorage.getItem(id)) : null; + if(!checkData || !checkData[this.name]) throw new Error('App not on permission list') + const appInfo = checkData[this.name] + const lastNotification = appInfo.lastNotification + const interval = appInfo.interval + if (lastNotification && interval) { + const timeDifference = Date.now() - lastNotification; + + if (timeDifference > interval) { + parentEpml.request('showNotification', { + title, type: "qapp-local-notification", sound: '', url, options: { body: message, icon, badge: icon } + }) + response = true + this.updateLastNotification(id, this.name) + break; + } else { + throw new Error(`duration until another notification can be sent: ${interval - timeDifference}`) + } + } else if(!lastNotification){ + parentEpml.request('showNotification', { + title, type: "qapp-local-notification", sound: '', url, options: { body: message, icon, badge: icon } + }) + response = true + this.updateLastNotification(id) + break; + } else { + throw new Error(`invalid data`) + } + + } catch (error) { + const obj = {}; + const errorMsg = error.message || "error in pushing notification"; + obj['error'] = errorMsg; + response = JSON.stringify(obj); + break; + + } + + } case actions.SEND_CHAT_MESSAGE: { const message = data.message; const recipient = data.destinationAddress; @@ -2707,6 +2830,45 @@ class WebBrowser extends LitElement { use(checkLanguage); } } + addAppToNotificationList(appName) { + const id = `appNotificationList-${this.selectedAddress.address}`; + const checkData = localStorage.getItem(id) ? JSON.parse(localStorage.getItem(id)) : null; + + if (!checkData) { + const newData = { + [appName]: { + interval: 900000, // 15mins in milliseconds + lastNotification: null, + }, + }; + localStorage.setItem(id, JSON.stringify(newData)); + } else { + const copyData = { ...checkData }; + copyData[appName] = { + interval: 900000, // 15mins in milliseconds + lastNotification: null, + }; + localStorage.setItem(id, JSON.stringify(copyData)); + } + } + + updateLastNotification(id, appName) { + const checkData = localStorage.getItem(id) ? JSON.parse(localStorage.getItem(id)) : null; + + if (checkData) { + const copyData = { ...checkData }; + if (copyData[appName]) { + copyData[appName].lastNotification = Date.now(); // Make sure to use Date.now(), not date.now() + } else { + copyData[appName] = { + interval: 900000, // 15mins in milliseconds + lastNotification: Date.now(), + }; + } + localStorage.setItem(id, JSON.stringify(copyData)); + } + } + renderFollowUnfollowButton() { // Only show the follow/unfollow button if we have permission to modify the list on this node @@ -3064,7 +3226,12 @@ async function showModalAndWait(type, data) { ` : ''} - + ${type === actions.NOTIFICATIONS_PERMISSION ? ` + + ` : ''} + ${type === actions.DELETE_LIST_ITEM ? ` +
+ +
+ ` } @@ -155,6 +181,11 @@ class SecurityView extends connect(store)(LitElement) { } } + openDevDialog() { + this.closeSettings() + store.dispatch(setIsOpenDevDialog(true)) + } + async downloadBackup() { let backupname = '' this.backupErrorMessage = '' diff --git a/core/src/components/settings-view/user-settings.js b/core/src/components/settings-view/user-settings.js index 66a8c887..aaaba9b0 100644 --- a/core/src/components/settings-view/user-settings.js +++ b/core/src/components/settings-view/user-settings.js @@ -157,7 +157,9 @@ class UserSettings extends connect(store)(LitElement) { font-size: 16px; text-align: center; min-height: 460px; - height: 60vh; + height: auto; + overflow: auto; + } @media(max-width:700px) { @@ -252,7 +254,7 @@ class UserSettings extends connect(store)(LitElement) { if (selectedView.id === 'info') { return html`` } else if (selectedView.id === 'security') { - return html`` + return html` this.closeSettings()}>` } else if (selectedView.id === 'export') { return html`` } else if (selectedView.id === 'notification') { diff --git a/core/src/components/show-plugin.js b/core/src/components/show-plugin.js index a5c1153b..2738e0d1 100644 --- a/core/src/components/show-plugin.js +++ b/core/src/components/show-plugin.js @@ -6,7 +6,7 @@ import { Epml } from '../epml.js' import { addPluginRoutes } from '../plugins/addPluginRoutes.js' import { repeat } from 'lit/directives/repeat.js'; import ShortUniqueId from 'short-unique-id'; -import { setNewTab } from '../redux/app/app-actions.js' +import { setIsOpenDevDialog, setNewTab } from '../redux/app/app-actions.js' import localForage from 'localforage' import FileSaver from 'file-saver' import { use, get, translate, translateUnsafeHTML, registerTranslateConfig } from 'lit-translate' @@ -46,7 +46,8 @@ class ShowPlugin extends connect(store)(LitElement) { tabInfo: { type: Object }, chatLastSeen: { type: Array }, chatHeads: { type: Array }, - proxyPort: { type: Number } + proxyPort: { type: Number }, + isOpenDevDialog: {type: Boolean} } } @@ -334,9 +335,11 @@ class ShowPlugin extends connect(store)(LitElement) { this.chatLastSeen = [] this.chatHeads = [] this.proxyPort = 0 + this.isOpenDevDialog = false } render() { + const plugSrc = (myPlug) => { return myPlug === undefined ? 'about:blank' : `${window.location.origin}/plugin/${myPlug.domain}/${myPlug.page}${this.linkParam}` } @@ -459,11 +462,6 @@ class ShowPlugin extends connect(store)(LitElement) { this.currentTab = lengthOfTabs }} >+ - ${repeat(this.tabs, (tab) => tab.id, (tab, index) => html` @@ -485,7 +483,15 @@ class ShowPlugin extends connect(store)(LitElement) { `)} - + { + this.shadowRoot.getElementById('domainInput').value = '' + this.shadowRoot.getElementById('portInput').value = '' + this.isOpenDevDialog = false + store.dispatch(setIsOpenDevDialog(false)) + }} + >

${translate('tabmenu.tm39')}


@@ -552,12 +558,6 @@ class ShowPlugin extends connect(store)(LitElement) { return true } - openDevDialog() { - this.shadowRoot.getElementById('domainInput').value = '' - this.shadowRoot.getElementById('portInput').value = '' - this.shadowRoot.querySelector("#addDevDialog").show() - } - async getProxyPort() { this.proxyPort = 0 let framework = '' @@ -734,11 +734,9 @@ class ShowPlugin extends connect(store)(LitElement) { const myPlugObj = plugArr.find(pagePlug => { return pagePlug.url === this.url }) - if (this.tabs.length === 0) { this.addTab({ - url: this.url, - myPlugObj, + url: "", id: this.uid() }) } else { @@ -781,7 +779,7 @@ class ShowPlugin extends connect(store)(LitElement) { } if (split[0] === '' && split[1] === 'app' && split[2] === undefined) { - newUrl = 'wallet' + newUrl = '' newLinkParam = '' } else if (split.length === 5 && split[1] === 'app') { newUrl = split[2] @@ -793,7 +791,6 @@ class ShowPlugin extends connect(store)(LitElement) { newUrl = '404' newLinkParam = '' } - if (newUrl !== this.url) { this.url = newUrl } @@ -839,6 +836,9 @@ class ShowPlugin extends connect(store)(LitElement) { //clear newTab } } + if(state.app.isOpenDevDialog){ + this.isOpenDevDialog = state.app.isOpenDevDialog + } } } diff --git a/core/src/redux/app/actions/app-core.js b/core/src/redux/app/actions/app-core.js index 8ed9455f..7c7ab9bd 100644 --- a/core/src/redux/app/actions/app-core.js +++ b/core/src/redux/app/actions/app-core.js @@ -1,5 +1,5 @@ // Core App Actions here... -import { UPDATE_BLOCK_INFO, UPDATE_NODE_STATUS, UPDATE_NODE_INFO, CHAT_HEADS, ACCOUNT_INFO, ADD_AUTO_LOAD_IMAGES_CHAT, REMOVE_AUTO_LOAD_IMAGES_CHAT, ALLOW_QAPP_AUTO_AUTH, REMOVE_QAPP_AUTO_AUTH, SET_CHAT_LAST_SEEN, ADD_CHAT_LAST_SEEN, ALLOW_QAPP_AUTO_LISTS, REMOVE_QAPP_AUTO_LISTS, SET_NEW_TAB, ADD_TAB_INFO, SET_TAB_NOTIFICATIONS } from '../app-action-types.js' +import { UPDATE_BLOCK_INFO, UPDATE_NODE_STATUS, UPDATE_NODE_INFO, CHAT_HEADS, ACCOUNT_INFO, ADD_AUTO_LOAD_IMAGES_CHAT, REMOVE_AUTO_LOAD_IMAGES_CHAT, ALLOW_QAPP_AUTO_AUTH, REMOVE_QAPP_AUTO_AUTH, SET_CHAT_LAST_SEEN, ADD_CHAT_LAST_SEEN, ALLOW_QAPP_AUTO_LISTS, REMOVE_QAPP_AUTO_LISTS, SET_NEW_TAB, ADD_TAB_INFO, SET_TAB_NOTIFICATIONS, IS_OPEN_DEV_DIALOG } from '../app-action-types.js' export const doUpdateBlockInfo = (blockObj) => { return (dispatch, getState) => { @@ -126,7 +126,12 @@ export const setNewTab = (payload) => { payload } } - +export const setIsOpenDevDialog = (payload)=> { + return { + type: IS_OPEN_DEV_DIALOG, + payload + } +} export const addTabInfo = (payload) => { return { type: ADD_TAB_INFO, diff --git a/core/src/redux/app/app-action-types.js b/core/src/redux/app/app-action-types.js index 31f9b246..ba2cde2a 100644 --- a/core/src/redux/app/app-action-types.js +++ b/core/src/redux/app/app-action-types.js @@ -27,4 +27,5 @@ export const SET_CHAT_LAST_SEEN = 'SET_CHAT_LAST_SEEN' export const ADD_CHAT_LAST_SEEN = 'ADD_CHAT_LAST_SEEN' export const SET_NEW_TAB = 'SET_NEW_TAB' export const ADD_TAB_INFO = 'ADD_TAB_INFO' -export const SET_TAB_NOTIFICATIONS = 'SET_TAB_NOTIFICATIONS' \ No newline at end of file +export const SET_TAB_NOTIFICATIONS = 'SET_TAB_NOTIFICATIONS' +export const IS_OPEN_DEV_DIALOG = 'IS_OPEN_DEV_DIALOG' \ No newline at end of file diff --git a/core/src/redux/app/app-reducer.js b/core/src/redux/app/app-reducer.js index 0fd3c2cc..11e77486 100644 --- a/core/src/redux/app/app-reducer.js +++ b/core/src/redux/app/app-reducer.js @@ -1,6 +1,6 @@ // Loading state, login state, isNavDrawOpen state etc. None of this needs to be saved to localstorage. import { loadStateFromLocalStorage, saveStateToLocalStorage } from '../../localStorageHelpers.js' -import { LOG_IN, LOG_OUT, NETWORK_CONNECTION_STATUS, INIT_WORKERS, ADD_PLUGIN_URL, ADD_PLUGIN, ADD_NEW_PLUGIN_URL, NAVIGATE, SELECT_ADDRESS, ACCOUNT_INFO, CHAT_HEADS, UPDATE_BLOCK_INFO, UPDATE_NODE_STATUS, UPDATE_NODE_INFO, LOAD_NODE_CONFIG, SET_NODE, ADD_NODE, PAGE_URL, ADD_AUTO_LOAD_IMAGES_CHAT, REMOVE_AUTO_LOAD_IMAGES_CHAT, ALLOW_QAPP_AUTO_AUTH, REMOVE_QAPP_AUTO_AUTH, SET_CHAT_LAST_SEEN, ADD_CHAT_LAST_SEEN, ALLOW_QAPP_AUTO_LISTS, REMOVE_QAPP_AUTO_LISTS, SET_NEW_TAB, ADD_TAB_INFO, SET_TAB_NOTIFICATIONS } from './app-action-types.js' +import { LOG_IN, LOG_OUT, NETWORK_CONNECTION_STATUS, INIT_WORKERS, ADD_PLUGIN_URL, ADD_PLUGIN, ADD_NEW_PLUGIN_URL, NAVIGATE, SELECT_ADDRESS, ACCOUNT_INFO, CHAT_HEADS, UPDATE_BLOCK_INFO, UPDATE_NODE_STATUS, UPDATE_NODE_INFO, LOAD_NODE_CONFIG, SET_NODE, ADD_NODE, PAGE_URL, ADD_AUTO_LOAD_IMAGES_CHAT, REMOVE_AUTO_LOAD_IMAGES_CHAT, ALLOW_QAPP_AUTO_AUTH, REMOVE_QAPP_AUTO_AUTH, SET_CHAT_LAST_SEEN, ADD_CHAT_LAST_SEEN, ALLOW_QAPP_AUTO_LISTS, REMOVE_QAPP_AUTO_LISTS, SET_NEW_TAB, ADD_TAB_INFO, SET_TAB_NOTIFICATIONS, IS_OPEN_DEV_DIALOG } from './app-action-types.js' import { initWorkersReducer } from './reducers/init-workers.js' import { loginReducer } from './reducers/login-reducer.js' import { setNode, addNode } from './reducers/manage-node.js' @@ -49,7 +49,8 @@ const INITIAL_STATE = { qAPPAutoLists: loadStateFromLocalStorage('qAPPAutoLists') || false, chatLastSeen: [], newTab: null, - tabInfo: {} + tabInfo: {}, + isOpenDevDialog: false } export default (state = INITIAL_STATE, action) => { @@ -231,6 +232,12 @@ export default (state = INITIAL_STATE, action) => { newTab: action.payload } } + case IS_OPEN_DEV_DIALOG: { + return { + ...state, + isOpenDevDialog: action.payload + } + } case ADD_TAB_INFO: { const newTabInfo = action.payload if (state.tabInfo[newTabInfo.id] && state.tabInfo[newTabInfo.id].name && newTabInfo.name === state.tabInfo[newTabInfo.id].name) break From 85883d4166b847a56cd8e5903e1a02f80092e3c1 Mon Sep 17 00:00:00 2001 From: QuickMythril Date: Sat, 12 Aug 2023 07:46:15 -0400 Subject: [PATCH 05/31] Add dynamic fee to Trades --- .../core/trade-bot/trade-bot-portal.src.js | 15 +++++++++++++++ .../core/trade-portal/trade-portal.src.js | 17 ++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/plugins/plugins/core/trade-bot/trade-bot-portal.src.js b/plugins/plugins/core/trade-bot/trade-bot-portal.src.js index e34f1b66..8de96dc2 100644 --- a/plugins/plugins/core/trade-bot/trade-bot-portal.src.js +++ b/plugins/plugins/core/trade-bot/trade-bot-portal.src.js @@ -2104,6 +2104,7 @@ class TradeBotPortal extends LitElement { this.changeTheme() this.changeLanguage() + this.tradeFee() this.autoHelperMessage = this.renderAutoHelperPass() @@ -3736,6 +3737,20 @@ class TradeBotPortal extends LitElement { } } + async tradeFee() { + 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 url = `${nodeUrl}/transactions/unitfee?txType=DEPLOY_AT` + await fetch(url).then((response) => { + if (response.ok) { + return response.json() + } + return Promise.reject(response) + }).then((json) => { + this.listedCoins.get("QORTAL").tradeFee = (Number(json) / 1e8).toFixed(2) + }) + } + getApiKey() { const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]; let apiKey = myNode.apiKey; diff --git a/plugins/plugins/core/trade-portal/trade-portal.src.js b/plugins/plugins/core/trade-portal/trade-portal.src.js index e74a5392..da47de5e 100644 --- a/plugins/plugins/core/trade-portal/trade-portal.src.js +++ b/plugins/plugins/core/trade-portal/trade-portal.src.js @@ -1421,6 +1421,7 @@ class TradePortal extends LitElement { this.changeTheme() this.changeLanguage() + this.tradeFee() this.tradeHelperMessage = this.renderTradeHelperPass() @@ -2758,7 +2759,7 @@ class TradePortal extends LitElement { } } - if (this.round(parseFloat(fundingQortAmount) + parseFloat(0.002)) > parseFloat(this.listedCoins.get("QORTAL").balance)) { + if (this.round(parseFloat(fundingQortAmount) + parseFloat(this.listedCoins.get("QORTAL").tradeFee)) > parseFloat(this.listedCoins.get("QORTAL").balance)) { this.isSellLoading = false this.sellBtnDisable = false let snack4string = get("tradepage.tchange22") @@ -3021,6 +3022,20 @@ class TradePortal extends LitElement { } } + async tradeFee() { + 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 url = `${nodeUrl}/transactions/unitfee?txType=DEPLOY_AT` + await fetch(url).then((response) => { + if (response.ok) { + return response.json() + } + return Promise.reject(response) + }).then((json) => { + this.listedCoins.get("QORTAL").tradeFee = (Number(json) / 1e8).toFixed(2) + }) + } + getApiKey() { const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]; let apiKey = myNode.apiKey; From 3320d2f913e2522204e84385211fc804052c9dc2 Mon Sep 17 00:00:00 2001 From: QuickMythril Date: Sat, 12 Aug 2023 07:56:30 -0400 Subject: [PATCH 06/31] Add fee for AT execution --- plugins/plugins/core/trade-bot/trade-bot-portal.src.js | 2 +- plugins/plugins/core/trade-portal/trade-portal.src.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/plugins/core/trade-bot/trade-bot-portal.src.js b/plugins/plugins/core/trade-bot/trade-bot-portal.src.js index 8de96dc2..dd7b9b7e 100644 --- a/plugins/plugins/core/trade-bot/trade-bot-portal.src.js +++ b/plugins/plugins/core/trade-bot/trade-bot-portal.src.js @@ -3747,7 +3747,7 @@ class TradeBotPortal extends LitElement { } return Promise.reject(response) }).then((json) => { - this.listedCoins.get("QORTAL").tradeFee = (Number(json) / 1e8).toFixed(2) + this.listedCoins.get("QORTAL").tradeFee = (Number(json + 100000) / 1e8).toFixed(2) }) } diff --git a/plugins/plugins/core/trade-portal/trade-portal.src.js b/plugins/plugins/core/trade-portal/trade-portal.src.js index da47de5e..e486023d 100644 --- a/plugins/plugins/core/trade-portal/trade-portal.src.js +++ b/plugins/plugins/core/trade-portal/trade-portal.src.js @@ -3032,7 +3032,7 @@ class TradePortal extends LitElement { } return Promise.reject(response) }).then((json) => { - this.listedCoins.get("QORTAL").tradeFee = (Number(json) / 1e8).toFixed(2) + this.listedCoins.get("QORTAL").tradeFee = (Number(json + 100000) / 1e8).toFixed(2) }) } From 866eccda80268aeb844416ef28b6c1c681a6a9d7 Mon Sep 17 00:00:00 2001 From: QuickMythril Date: Sat, 12 Aug 2023 12:54:17 -0400 Subject: [PATCH 07/31] Fix dynamic Trade fee --- plugins/plugins/core/trade-bot/trade-bot-portal.src.js | 2 +- plugins/plugins/core/trade-portal/trade-portal.src.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/plugins/core/trade-bot/trade-bot-portal.src.js b/plugins/plugins/core/trade-bot/trade-bot-portal.src.js index dd7b9b7e..20e0e35e 100644 --- a/plugins/plugins/core/trade-bot/trade-bot-portal.src.js +++ b/plugins/plugins/core/trade-bot/trade-bot-portal.src.js @@ -3747,7 +3747,7 @@ class TradeBotPortal extends LitElement { } return Promise.reject(response) }).then((json) => { - this.listedCoins.get("QORTAL").tradeFee = (Number(json + 100000) / 1e8).toFixed(2) + this.listedCoins.get("QORTAL").tradeFee = (Number(json) + 100000) / 1e8 }) } diff --git a/plugins/plugins/core/trade-portal/trade-portal.src.js b/plugins/plugins/core/trade-portal/trade-portal.src.js index e486023d..8b33d5a0 100644 --- a/plugins/plugins/core/trade-portal/trade-portal.src.js +++ b/plugins/plugins/core/trade-portal/trade-portal.src.js @@ -3032,7 +3032,7 @@ class TradePortal extends LitElement { } return Promise.reject(response) }).then((json) => { - this.listedCoins.get("QORTAL").tradeFee = (Number(json + 100000) / 1e8).toFixed(2) + this.listedCoins.get("QORTAL").tradeFee = (Number(json) + 100000) / 1e8 }) } From 19da49cc97b0db443e8bf78873848b13679ba79c Mon Sep 17 00:00:00 2001 From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com> Date: Sun, 13 Aug 2023 12:21:24 +0200 Subject: [PATCH 08/31] Update to dynamic fee --- plugins/plugins/core/wallet/wallet-app.src.js | 42 ++++++++++++++----- 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/plugins/plugins/core/wallet/wallet-app.src.js b/plugins/plugins/core/wallet/wallet-app.src.js index a683fc49..5199d62e 100644 --- a/plugins/plugins/core/wallet/wallet-app.src.js +++ b/plugins/plugins/core/wallet/wallet-app.src.js @@ -75,6 +75,7 @@ class MultiWallet extends LitElement { isValidAmount: { type: Boolean }, balance: { type: Number }, balanceString: { type: String }, + qortPaymentFee: { type: Number }, btcFeePerByte: { type: Number }, ltcFeePerByte: { type: Number }, dogeFeePerByte: { type: Number }, @@ -795,6 +796,7 @@ class MultiWallet extends LitElement { this.dgbAmount = 0 this.rvnAmount = 0 this.arrrAmount = 0 + this.qortPaymentFee = 0.001 this.btcFeePerByte = 100 this.btcSatMinFee = 20 this.btcSatMaxFee = 150 @@ -1352,7 +1354,7 @@ class MultiWallet extends LitElement {

-

${translate("walletpage.wchange21")} 0.001 QORT

+

${translate("walletpage.wchange21")} ${this.qortPaymentFee} QORT

${this.renderClearSuccess()} ${this.renderClearError()} @@ -2821,6 +2823,7 @@ class MultiWallet extends LitElement { firstUpdated() { this.changeTheme() this.changeLanguage() + this.paymentFee() this.bookQortalAddress = window.parent.reduxStore.getState().app.selectedAddress.address this.bookBitcoinAddress = window.parent.reduxStore.getState().app.selectedAddress.btcWallet.address @@ -2906,6 +2909,23 @@ class MultiWallet extends LitElement { setInterval(() => { this.clearConsole() }, 60000) + setInterval(() => { + this.paymentFee() + }, 600000) + } + + async paymentFee() { + 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 url = `${nodeUrl}/transactions/unitfee?txType=PAYMENT` + await fetch(url).then((response) => { + if (response.ok) { + return response.json() + } + return Promise.reject(response) + }).then((json) => { + this.qortPaymentFee = (Number(json) / 1e8).toFixed(8) + }) } clearConsole() { @@ -4048,11 +4068,11 @@ class MultiWallet extends LitElement { calculateQortAll() { this.amount = 0 this.shadowRoot.getElementById('amountInput').value = this.amount - if (this.balance < 0.00110000) { + if (this.balance < 0.01100000) { let not_enough_string = get("walletpage.wchange26") parentEpml.request('showSnackBar', `${not_enough_string}`) } else { - this.amount = (this.balance - 0.00110000).toFixed(8) + this.amount = (this.balance - 0.01100000).toFixed(8) this.shadowRoot.getElementById('amountInput').value = this.amount this.shadowRoot.getElementById('amountInput').blur() this.shadowRoot.getElementById('amountInput').focus() @@ -4238,7 +4258,7 @@ class MultiWallet extends LitElement { } else { const checkQortAmountInput = this.shadowRoot.getElementById('amountInput').value const checkQortAmount = this.round(parseFloat(checkQortAmountInput)) - const myFunds = this.round(parseFloat(this.balance - 0.00110000)) + const myFunds = this.round(parseFloat(this.balance - 0.01100000)) if (Number(myFunds) >= Number(checkQortAmount)) { this.shadowRoot.getElementById('amountInput').value = checkQortAmountInput this.btnDisable = false @@ -4269,7 +4289,7 @@ class MultiWallet extends LitElement { } else { const checkQortAmountInput = this.shadowRoot.getElementById('amountInput').value const checkQortAmount = this.round(parseFloat(checkQortAmountInput)) - const myFunds = this.round(parseFloat(this.balance - 0.00110000)) + const myFunds = this.round(parseFloat(this.balance - 0.01100000)) if (Number(myFunds) >= Number(checkQortAmount)) { this.shadowRoot.getElementById('amountInput').value = checkQortAmountInput this.btnDisable = false @@ -4287,7 +4307,7 @@ class MultiWallet extends LitElement { } else { const checkQortAmountInput = this.shadowRoot.getElementById('amountInput').value const checkQortAmount = this.round(parseFloat(checkQortAmountInput)) - const myFunds = this.round(parseFloat(this.balance - 0.00110000)) + const myFunds = this.round(parseFloat(this.balance - 0.01100000)) if (Number(myFunds) >= Number(checkQortAmount)) { this.shadowRoot.getElementById('amountInput').value = checkQortAmountInput this.btnDisable = false @@ -4302,6 +4322,7 @@ class MultiWallet extends LitElement { } async sendQort() { + const sendFee = this.qortPaymentFee const amount = this.shadowRoot.getElementById('amountInput').value let recipient = this.shadowRoot.getElementById('recipient').value @@ -4390,11 +4411,10 @@ class MultiWallet extends LitElement { const getName = async (recipient)=> { try { - const getNames = await parentEpml.request("apiCall", { - type: "api", - url: `/names/address/${recipient}`, - }) + type: "api", + url: `/names/address/${recipient}`, + }) if(getNames?.length > 0 ){ return getNames[0].name } else { @@ -4421,7 +4441,7 @@ class MultiWallet extends LitElement { recipientName: recipientName, amount: amount, lastReference: mylastRef, - fee: 0.001, + fee: sendFee, dialogamount: dialogamount, dialogto: dialogto, dialogAddress, From a650ff8ab07cfde3771f27266cd0e8e4f5cf86a5 Mon Sep 17 00:00:00 2001 From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com> Date: Sun, 13 Aug 2023 14:39:32 +0200 Subject: [PATCH 09/31] Update rewardshare fee --- crypto/api/constants.js | 6 +++++- .../reward-share/RemoveRewardShareTransaction.js | 8 +++++++- .../transactions/reward-share/RewardShareTransaction.js | 7 +++++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/crypto/api/constants.js b/crypto/api/constants.js index e6e17f35..f9bc0b43 100644 --- a/crypto/api/constants.js +++ b/crypto/api/constants.js @@ -161,6 +161,10 @@ const PROXY_URL = "/proxy/" // Chat reference timestamp const CHAT_REFERENCE_FEATURE_TRIGGER_TIMESTAMP = 1674316800000 +// Dynamic fee timestamp +const DYNAMIC_FEE_TIMESTAMP = 1692118800000 + + // Used as a salt for all Qora addresses. Salts used for storing your private keys in local storage will be randomly generated const STATIC_SALT = new Uint8Array([54, 190, 201, 206, 65, 29, 123, 129, 147, 231, 180, 166, 171, 45, 95, 165, 78, 200, 208, 194, 44, 207, 221, 146, 45, 238, 68, 68, 69, 102, 62, 6]) const BCRYPT_ROUNDS = 10 // Remember that the total work spent on key derivation is BCRYPT_ROUNDS * KDF_THREADS @@ -168,4 +172,4 @@ const BCRYPT_VERSION = "2a" const STATIC_BCRYPT_SALT = `$${BCRYPT_VERSION}$${BCRYPT_ROUNDS}$IxVE941tXVUD4cW0TNVm.O` const KDF_THREADS = 16 -export { TX_TYPES, ERROR_CODES, QORT_DECIMALS, PROXY_URL, STATIC_SALT, ADDRESS_VERSION, KDF_THREADS, STATIC_BCRYPT_SALT, CHAT_REFERENCE_FEATURE_TRIGGER_TIMESTAMP } +export { TX_TYPES, ERROR_CODES, QORT_DECIMALS, PROXY_URL, STATIC_SALT, ADDRESS_VERSION, KDF_THREADS, STATIC_BCRYPT_SALT, CHAT_REFERENCE_FEATURE_TRIGGER_TIMESTAMP, DYNAMIC_FEE_TIMESTAMP } diff --git a/crypto/api/transactions/reward-share/RemoveRewardShareTransaction.js b/crypto/api/transactions/reward-share/RemoveRewardShareTransaction.js index 5610830e..38719b56 100644 --- a/crypto/api/transactions/reward-share/RemoveRewardShareTransaction.js +++ b/crypto/api/transactions/reward-share/RemoveRewardShareTransaction.js @@ -2,6 +2,7 @@ import TransactionBase from '../TransactionBase.js' import publicKeyToAddress from '../../wallet/publicKeyToAddress.js' import { Base58 } from '../../deps/deps.js' +import { DYNAMIC_FEE_TIMESTAMP } from '../../constants.js' export default class RemoveRewardShareTransaction extends TransactionBase { constructor() { @@ -34,7 +35,12 @@ export default class RemoveRewardShareTransaction extends TransactionBase { set recipient(recipient) { const _address = publicKeyToAddress(this._keyPair.publicKey) this._recipient = recipient instanceof Uint8Array ? recipient : this.constructor.Base58.decode(recipient) - this.fee = _address === recipient ? 0 : 0.001 + + if (new Date(this._timestamp).getTime() >= DYNAMIC_FEE_TIMESTAMP) { + this.fee = _address === recipient ? 0 : 0.01 + } else { + this.fee = _address === recipient ? 0 : 0.001 + } } set percentageShare(share) { diff --git a/crypto/api/transactions/reward-share/RewardShareTransaction.js b/crypto/api/transactions/reward-share/RewardShareTransaction.js index 939552f9..af0d6bba 100644 --- a/crypto/api/transactions/reward-share/RewardShareTransaction.js +++ b/crypto/api/transactions/reward-share/RewardShareTransaction.js @@ -4,6 +4,7 @@ import TransactionBase from "../TransactionBase.js" import nacl from '../../deps/nacl-fast.js' import ed2curve from '../../deps/ed2curve.js' import { Sha256 } from 'asmcrypto.js' +import { DYNAMIC_FEE_TIMESTAMP } from '../../constants.js' export default class RewardShareTransaction extends TransactionBase { constructor() { @@ -54,6 +55,12 @@ export default class RewardShareTransaction extends TransactionBase { this._base58RewardShareSeed = this.constructor.Base58.encode(this._rewardShareSeed) this._rewardShareKeyPair = nacl.sign.keyPair.fromSeed(this._rewardShareSeed) + + if (new Date(this._timestamp).getTime() >= DYNAMIC_FEE_TIMESTAMP) { + this.fee = (recipientPublicKey === this.constructor.Base58.encode(this._keyPair.publicKey) ? 0 : 0.01) + } else { + this.fee = (recipientPublicKey === this.constructor.Base58.encode(this._keyPair.publicKey) ? 0 : 0.001) + } } set recipient(recipient) { From b9e778e3461f4b221232a8c5de76280ef76defa6 Mon Sep 17 00:00:00 2001 From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com> Date: Sun, 13 Aug 2023 16:10:57 +0200 Subject: [PATCH 10/31] Bump version 4.3.1 --- package-lock.json | 505 +++++++++++++++++++++++----------------------- package.json | 28 +-- 2 files changed, 263 insertions(+), 270 deletions(-) diff --git a/package-lock.json b/package-lock.json index b7f9f315..ee51c5b7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "qortal-ui", - "version": "4.3.0", + "version": "4.3.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "qortal-ui", - "version": "4.3.0", + "version": "4.3.1", "license": "GPL-3.0", "dependencies": { "@hapi/hapi": "21.3.2", @@ -31,7 +31,7 @@ "electron-updater": "6.1.1", "emoji-picker-js": "https://github.com/Qortal/emoji-picker-js", "extract-zip": "2.0.1", - "jssha": "3.3.0", + "jssha": "3.3.1", "localforage": "1.10.0", "lodash": "4.17.21", "node-fetch": "2.6.9", @@ -46,11 +46,11 @@ "prosemirror-state": "1.4.3", "prosemirror-transform": "1.7.4", "prosemirror-view": "1.31.7", - "sass": "1.64.2", + "sass": "1.65.1", "short-unique-id": "4.4.4" }, "devDependencies": { - "@babel/core": "7.22.9", + "@babel/core": "7.22.10", "@material/mwc-button": "0.27.0", "@material/mwc-checkbox": "0.27.0", "@material/mwc-dialog": "0.27.0", @@ -89,19 +89,19 @@ "@qortal/rollup-plugin-web-worker-loader": "1.6.4", "@rollup/plugin-alias": "5.0.0", "@rollup/plugin-babel": "6.0.3", - "@rollup/plugin-commonjs": "25.0.3", + "@rollup/plugin-commonjs": "25.0.4", "@rollup/plugin-node-resolve": "15.1.0", "@rollup/plugin-replace": "5.0.2", "@rollup/plugin-terser": "0.4.3", - "@vaadin/avatar": "24.1.4", - "@vaadin/button": "24.1.4", - "@vaadin/grid": "24.1.4", - "@vaadin/icons": "24.1.4", - "@vaadin/password-field": "24.1.4", - "@vaadin/tooltip": "24.1.4", - "@zip.js/zip.js": "2.7.20", + "@vaadin/avatar": "24.1.5", + "@vaadin/button": "24.1.5", + "@vaadin/grid": "24.1.5", + "@vaadin/icons": "24.1.5", + "@vaadin/password-field": "24.1.5", + "@vaadin/tooltip": "24.1.5", + "@zip.js/zip.js": "2.7.24", "axios": "1.4.0", - "electron": "25.4.0", + "electron": "25.5.0", "electron-builder": "24.6.3", "electron-packager": "17.1.1", "epml": "0.3.3", @@ -115,7 +115,7 @@ "pwa-helpers": "0.9.1", "redux": "4.2.1", "redux-thunk": "2.4.2", - "rollup": "3.27.2", + "rollup": "3.28.0", "rollup-plugin-node-globals": "1.4.0", "rollup-plugin-progress": "1.1.2", "rollup-plugin-scss": "3.0.0", @@ -139,12 +139,13 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", - "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.10.tgz", + "integrity": "sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.22.5" + "@babel/highlight": "^7.22.10", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" @@ -160,21 +161,21 @@ } }, "node_modules/@babel/core": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.9.tgz", - "integrity": "sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.10.tgz", + "integrity": "sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.9", + "@babel/code-frame": "^7.22.10", + "@babel/generator": "^7.22.10", + "@babel/helper-compilation-targets": "^7.22.10", "@babel/helper-module-transforms": "^7.22.9", - "@babel/helpers": "^7.22.6", - "@babel/parser": "^7.22.7", + "@babel/helpers": "^7.22.10", + "@babel/parser": "^7.22.10", "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.8", - "@babel/types": "^7.22.5", + "@babel/traverse": "^7.22.10", + "@babel/types": "^7.22.10", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -190,12 +191,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.9.tgz", - "integrity": "sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.10.tgz", + "integrity": "sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5", + "@babel/types": "^7.22.10", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -205,9 +206,9 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz", - "integrity": "sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz", + "integrity": "sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==", "dev": true, "dependencies": { "@babel/compat-data": "^7.22.9", @@ -218,9 +219,6 @@ }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-environment-visitor": { @@ -340,27 +338,27 @@ } }, "node_modules/@babel/helpers": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.6.tgz", - "integrity": "sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.10.tgz", + "integrity": "sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw==", "dev": true, "dependencies": { "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.6", - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.22.10", + "@babel/types": "^7.22.10" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", - "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.10.tgz", + "integrity": "sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.22.5", - "chalk": "^2.0.0", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -368,9 +366,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.22.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.7.tgz", - "integrity": "sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.10.tgz", + "integrity": "sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -380,12 +378,12 @@ } }, "node_modules/@babel/runtime": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.6.tgz", - "integrity": "sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.10.tgz", + "integrity": "sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==", "dev": true, "dependencies": { - "regenerator-runtime": "^0.13.11" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" @@ -406,19 +404,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.22.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.8.tgz", - "integrity": "sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.10.tgz", + "integrity": "sha512-Q/urqV4pRByiNNpb/f5OSv28ZlGJiFiiTh+GAHktbIrkPhPbl90+uW6SmpoLyZqutrg9AEaEf3Q/ZBRHBXgxig==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.7", + "@babel/code-frame": "^7.22.10", + "@babel/generator": "^7.22.10", "@babel/helper-environment-visitor": "^7.22.5", "@babel/helper-function-name": "^7.22.5", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.7", - "@babel/types": "^7.22.5", + "@babel/parser": "^7.22.10", + "@babel/types": "^7.22.10", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -427,9 +425,9 @@ } }, "node_modules/@babel/types": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", - "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", + "version": "7.22.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.10.tgz", + "integrity": "sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.22.5", @@ -1099,9 +1097,9 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", "dev": true, "engines": { "node": ">=6.0.0" @@ -1133,21 +1131,15 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==", + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", + "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, "node_modules/@lit-labs/motion": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@lit-labs/motion/-/motion-1.0.4.tgz", @@ -2692,9 +2684,9 @@ } }, "node_modules/@rollup/plugin-commonjs": { - "version": "25.0.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.3.tgz", - "integrity": "sha512-uBdtWr/H3BVcgm97MUdq2oJmqBR23ny1hOrWe2PKo9FTbjsGqg32jfasJUKYAI5ouqacjRnj65mBB/S79F+GQA==", + "version": "25.0.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.4.tgz", + "integrity": "sha512-L92Vz9WUZXDnlQQl3EwbypJR4+DM2EbsO+/KOcEkP4Mc6Ct453EeDB2uH9lgRwj4w5yflgNpq9pHOiY8aoUXBQ==", "dev": true, "dependencies": { "@rollup/pluginutils": "^5.0.1", @@ -3257,9 +3249,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.17.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.2.tgz", - "integrity": "sha512-wBo3KqP/PBqje5TI9UTiuL3yWfP6sdPtjtygSOqcYZWT232dfDeDOnkDps5wqZBP9NgGgYrNejinl0faAuE+HQ==", + "version": "18.17.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.5.tgz", + "integrity": "sha512-xNbS75FxH6P4UXTPUJp/zNPq6/xsfdJKussCWNOnz4aULWIRwMgP1LgaB5RiBnMX1DPCYenuqGZfnIAx5mbFLA==", "devOptional": true }, "node_modules/@types/object.omit": { @@ -3325,72 +3317,72 @@ } }, "node_modules/@vaadin/a11y-base": { - "version": "24.1.4", - "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.1.4.tgz", - "integrity": "sha512-NIPYbSUBLTL+X8A6Frqfv7OJk5As8k0/Ntw8GZ6w+e+pSLk/Yx5VVi1VxVNJGxZT40Y0wMkqsf2vveHKYRN58Q==", + "version": "24.1.5", + "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.1.5.tgz", + "integrity": "sha512-XPP/JSFr18dxlrCvA3QLudtlfylSORX3o7mepwq8nmm9mVG12bJeuPBFIdIxJjaoH7TJyQ6r1K/ErzTa5q/cwQ==", "dev": true, "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "~24.1.4", + "@vaadin/component-base": "~24.1.5", "lit": "^2.0.0" } }, "node_modules/@vaadin/avatar": { - "version": "24.1.4", - "resolved": "https://registry.npmjs.org/@vaadin/avatar/-/avatar-24.1.4.tgz", - "integrity": "sha512-9jT7mkmLk1no0jXXcJTJ0Jx35sxCAtn/7+j7nyEhyDkd7n5Zps3PyS5T9ywehly3QEcSODsDOA9Ag2PCIHLnWA==", + "version": "24.1.5", + "resolved": "https://registry.npmjs.org/@vaadin/avatar/-/avatar-24.1.5.tgz", + "integrity": "sha512-HS46XmrPMkwVLG36IO9WQDfmycqLt0o1jzx+vIBJrUW/PwTaAmk61Q0kjn4rrVYMra39gOoqPg6NV8u6bHZidg==", "dev": true, "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.4", - "@vaadin/component-base": "~24.1.4", - "@vaadin/item": "~24.1.4", - "@vaadin/list-box": "~24.1.4", - "@vaadin/overlay": "~24.1.4", - "@vaadin/tooltip": "~24.1.4", - "@vaadin/vaadin-lumo-styles": "~24.1.4", - "@vaadin/vaadin-material-styles": "~24.1.4", - "@vaadin/vaadin-themable-mixin": "~24.1.4" + "@vaadin/a11y-base": "~24.1.5", + "@vaadin/component-base": "~24.1.5", + "@vaadin/item": "~24.1.5", + "@vaadin/list-box": "~24.1.5", + "@vaadin/overlay": "~24.1.5", + "@vaadin/tooltip": "~24.1.5", + "@vaadin/vaadin-lumo-styles": "~24.1.5", + "@vaadin/vaadin-material-styles": "~24.1.5", + "@vaadin/vaadin-themable-mixin": "~24.1.5" } }, "node_modules/@vaadin/button": { - "version": "24.1.4", - "resolved": "https://registry.npmjs.org/@vaadin/button/-/button-24.1.4.tgz", - "integrity": "sha512-fb/ybHCr7ogYnxXqYpy/7q0XssSufAKiuGYfyh2wqyp19nysB2bm1auSh8wGFQDfPZvHSlg4ssDcY+WkxKJs8Q==", + "version": "24.1.5", + "resolved": "https://registry.npmjs.org/@vaadin/button/-/button-24.1.5.tgz", + "integrity": "sha512-bznds97SnbOQFzS3/spQAce5cz7GP/v/hxNQsbn3thfXVYQK4txVDUDQq3AIxV8+YPhFLK+3hsSJ9DOej9XtNA==", "dev": true, "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.4", - "@vaadin/component-base": "~24.1.4", - "@vaadin/vaadin-lumo-styles": "~24.1.4", - "@vaadin/vaadin-material-styles": "~24.1.4", - "@vaadin/vaadin-themable-mixin": "~24.1.4", + "@vaadin/a11y-base": "~24.1.5", + "@vaadin/component-base": "~24.1.5", + "@vaadin/vaadin-lumo-styles": "~24.1.5", + "@vaadin/vaadin-material-styles": "~24.1.5", + "@vaadin/vaadin-themable-mixin": "~24.1.5", "lit": "^2.0.0" } }, "node_modules/@vaadin/checkbox": { - "version": "24.1.4", - "resolved": "https://registry.npmjs.org/@vaadin/checkbox/-/checkbox-24.1.4.tgz", - "integrity": "sha512-Wa791NTQdM+OSkGz3Z2co9VUvl3dWeQ4idYIAiN8gWNFZtUBRp9XRhZHzTzGSNFP+IofFRqThZIIEyNhHXmUwA==", + "version": "24.1.5", + "resolved": "https://registry.npmjs.org/@vaadin/checkbox/-/checkbox-24.1.5.tgz", + "integrity": "sha512-Ye5FX4iDnYd2SCBgrjtx/vfBzHoVUIOZmqG1IZMgnnf/fXFPZnGcHCLUW7OEDbGJvQqbjaNMhyi+8srmoPok4g==", "dev": true, "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.4", - "@vaadin/component-base": "~24.1.4", - "@vaadin/field-base": "~24.1.4", - "@vaadin/vaadin-lumo-styles": "~24.1.4", - "@vaadin/vaadin-material-styles": "~24.1.4", - "@vaadin/vaadin-themable-mixin": "~24.1.4", + "@vaadin/a11y-base": "~24.1.5", + "@vaadin/component-base": "~24.1.5", + "@vaadin/field-base": "~24.1.5", + "@vaadin/vaadin-lumo-styles": "~24.1.5", + "@vaadin/vaadin-material-styles": "~24.1.5", + "@vaadin/vaadin-themable-mixin": "~24.1.5", "lit": "^2.0.0" } }, "node_modules/@vaadin/component-base": { - "version": "24.1.4", - "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.1.4.tgz", - "integrity": "sha512-KjE+hemOwG278lOL7lK97JgNZ/3bdLYU2CHvsrWxltYqRiQP1K+X6qpuX6aeNo83mZ2mbLSKE4kvrlheWOC8jQ==", + "version": "24.1.5", + "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.1.5.tgz", + "integrity": "sha512-3gC6JlfVfoFOHwOtv5WZuPt2P2JVt9k6ux7hz/GC05kpWE7Ozyz5NimIySp7aceN6peMYBVEPpMup5scW362BA==", "dev": true, "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", @@ -3401,173 +3393,173 @@ } }, "node_modules/@vaadin/field-base": { - "version": "24.1.4", - "resolved": "https://registry.npmjs.org/@vaadin/field-base/-/field-base-24.1.4.tgz", - "integrity": "sha512-zqAR2gngUw/oU/7zifRdVgzHEpq8FYUuwTo8AGUFekGGKi1MyaPJMVnykFcokepIzdPv50EBskqXCpRFSwY6jA==", + "version": "24.1.5", + "resolved": "https://registry.npmjs.org/@vaadin/field-base/-/field-base-24.1.5.tgz", + "integrity": "sha512-o6EXWQEcgOO+xUJoRltcmpyo8rxXlkEt8drMOK2RG/hRsqFlrrSgzx3ybA+I9kggh60bi4bYIjJUeJyV4pAmEA==", "dev": true, "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.4", - "@vaadin/component-base": "~24.1.4", + "@vaadin/a11y-base": "~24.1.5", + "@vaadin/component-base": "~24.1.5", "lit": "^2.0.0" } }, "node_modules/@vaadin/grid": { - "version": "24.1.4", - "resolved": "https://registry.npmjs.org/@vaadin/grid/-/grid-24.1.4.tgz", - "integrity": "sha512-8wqXIWohsI/iRg5x3UAm6xLh+nXbHAtixlIJ0lvmGxu8v+H6b3gtZcIqKSv5pfQsgC/T6gmorpnW0ZjyFk4kww==", + "version": "24.1.5", + "resolved": "https://registry.npmjs.org/@vaadin/grid/-/grid-24.1.5.tgz", + "integrity": "sha512-5AXQ8XIzWyeeCeLU57QOZG888TMvDYvpMZJjMnmqPxv4u7xmLhUvQalXWo2wVsFAsuXlBozpllX2ki2gBlmUCA==", "dev": true, "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.4", - "@vaadin/checkbox": "~24.1.4", - "@vaadin/component-base": "~24.1.4", - "@vaadin/lit-renderer": "~24.1.4", - "@vaadin/text-field": "~24.1.4", - "@vaadin/vaadin-lumo-styles": "~24.1.4", - "@vaadin/vaadin-material-styles": "~24.1.4", - "@vaadin/vaadin-themable-mixin": "~24.1.4" + "@vaadin/a11y-base": "~24.1.5", + "@vaadin/checkbox": "~24.1.5", + "@vaadin/component-base": "~24.1.5", + "@vaadin/lit-renderer": "~24.1.5", + "@vaadin/text-field": "~24.1.5", + "@vaadin/vaadin-lumo-styles": "~24.1.5", + "@vaadin/vaadin-material-styles": "~24.1.5", + "@vaadin/vaadin-themable-mixin": "~24.1.5" } }, "node_modules/@vaadin/icon": { - "version": "24.1.4", - "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.1.4.tgz", - "integrity": "sha512-+cW2HgZj00sXxZvcPv7qZX7S4HeQS+fBnRyTOrwOGBNKC7OuT8Xk+UyN3zCwYDteEA6mfKiNZ9ZiH1DsLZ0ZlQ==", + "version": "24.1.5", + "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.1.5.tgz", + "integrity": "sha512-UIYEWsurzttt4T5Z1MbYCJwJdVwVz2ZCxNT9Y0ETmiPGyAgazLPT9KHHN9t1NQ3IbWDVSEWteGvTyA8u+TQGNA==", "dev": true, "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "~24.1.4", - "@vaadin/vaadin-lumo-styles": "~24.1.4", - "@vaadin/vaadin-themable-mixin": "~24.1.4", + "@vaadin/component-base": "~24.1.5", + "@vaadin/vaadin-lumo-styles": "~24.1.5", + "@vaadin/vaadin-themable-mixin": "~24.1.5", "lit": "^2.0.0" } }, "node_modules/@vaadin/icons": { - "version": "24.1.4", - "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.1.4.tgz", - "integrity": "sha512-cvhKKRSJscwIgsw/Y3DgnqFu7twKF5C1N6A+SsUZjs5ZhJzKZIv74nF+lWpE1/sVjzSH0LJLoPf8/SDdMOvBYw==", + "version": "24.1.5", + "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.1.5.tgz", + "integrity": "sha512-i+cwt3b3Y0nzfwfpIP2eQ5RHe0UOWvXLncH1/Cymzna21vf5yUGiKK5Ufgch58If8/XDBb63RW3BLmWN7fsnyg==", "dev": true, "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/icon": "~24.1.4" + "@vaadin/icon": "~24.1.5" } }, "node_modules/@vaadin/input-container": { - "version": "24.1.4", - "resolved": "https://registry.npmjs.org/@vaadin/input-container/-/input-container-24.1.4.tgz", - "integrity": "sha512-DfKTPWkJ0KhGlVRBemaOEoGrabHuhYWLjcG0N7397qH45knl+kmDbZihgZxNy6KB3hoHPCD9ZFwr+YuqZJwipg==", + "version": "24.1.5", + "resolved": "https://registry.npmjs.org/@vaadin/input-container/-/input-container-24.1.5.tgz", + "integrity": "sha512-+oxiE3fCE8FvySdao4sYN5GKsJ8w9mK9WAwCc65hqGt/R7EmtKmCR7mYhfpcqLiZFL9qB88c5vd9hmoimZb/AQ==", "dev": true, "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "~24.1.4", - "@vaadin/vaadin-lumo-styles": "~24.1.4", - "@vaadin/vaadin-material-styles": "~24.1.4", - "@vaadin/vaadin-themable-mixin": "~24.1.4" + "@vaadin/component-base": "~24.1.5", + "@vaadin/vaadin-lumo-styles": "~24.1.5", + "@vaadin/vaadin-material-styles": "~24.1.5", + "@vaadin/vaadin-themable-mixin": "~24.1.5" } }, "node_modules/@vaadin/item": { - "version": "24.1.4", - "resolved": "https://registry.npmjs.org/@vaadin/item/-/item-24.1.4.tgz", - "integrity": "sha512-eeGNQtdWz1aZ0JhYKC7nuASK3mSodw4w2FIzcGoLvspUfblxeai3TqPPYrqXGAHOhrR215bqe5/qKjwBQz9gDQ==", + "version": "24.1.5", + "resolved": "https://registry.npmjs.org/@vaadin/item/-/item-24.1.5.tgz", + "integrity": "sha512-UAnjl23UB4cqPFdgP00EHMkCo0FcwnTuqzZTnRGnF50GPwUFCw2TpDOnGzjO7OwNKQMJusBiepDKI9mCqiUo8g==", "dev": true, "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.4", - "@vaadin/component-base": "~24.1.4", - "@vaadin/vaadin-lumo-styles": "~24.1.4", - "@vaadin/vaadin-material-styles": "~24.1.4", - "@vaadin/vaadin-themable-mixin": "~24.1.4" + "@vaadin/a11y-base": "~24.1.5", + "@vaadin/component-base": "~24.1.5", + "@vaadin/vaadin-lumo-styles": "~24.1.5", + "@vaadin/vaadin-material-styles": "~24.1.5", + "@vaadin/vaadin-themable-mixin": "~24.1.5" } }, "node_modules/@vaadin/list-box": { - "version": "24.1.4", - "resolved": "https://registry.npmjs.org/@vaadin/list-box/-/list-box-24.1.4.tgz", - "integrity": "sha512-A2jQVqj+Qgs8FO0Ra6AjX7jBqx2oPT10UVyGTI5aA/dK1Q9/ZpAEDMsHa9VFX3cFKGIFpuqHFFCStzNmVyY8ZQ==", + "version": "24.1.5", + "resolved": "https://registry.npmjs.org/@vaadin/list-box/-/list-box-24.1.5.tgz", + "integrity": "sha512-0n1MfDNZEwydY9tZUVWN/dsQsJNqoq7iaHYHAbo9Jggaf/zKqkCZOjzAvuzgwFK+GNTOfOldIO1VGBQ54Zj4uQ==", "dev": true, "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.4", - "@vaadin/component-base": "~24.1.4", - "@vaadin/item": "~24.1.4", - "@vaadin/vaadin-lumo-styles": "~24.1.4", - "@vaadin/vaadin-material-styles": "~24.1.4", - "@vaadin/vaadin-themable-mixin": "~24.1.4" + "@vaadin/a11y-base": "~24.1.5", + "@vaadin/component-base": "~24.1.5", + "@vaadin/item": "~24.1.5", + "@vaadin/vaadin-lumo-styles": "~24.1.5", + "@vaadin/vaadin-material-styles": "~24.1.5", + "@vaadin/vaadin-themable-mixin": "~24.1.5" } }, "node_modules/@vaadin/lit-renderer": { - "version": "24.1.4", - "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-24.1.4.tgz", - "integrity": "sha512-VUYOBQanMHViqqWlJD9mVyAUkLgEhJ7XUmiK5PXAckOTcE9JSI3MlSU0x0Stjos/NTfgXCXzy9XnvBRQezbWGw==", + "version": "24.1.5", + "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-24.1.5.tgz", + "integrity": "sha512-MTHvV1+hz/BuqlqT5tA78hcIWv4uVeytLmkXdk8nXUA8Kk050oY5YzNp+6kgUbrUvOHHPgkyl4ku1sINM0YVDA==", "dev": true, "dependencies": { "lit": "^2.0.0" } }, "node_modules/@vaadin/overlay": { - "version": "24.1.4", - "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.1.4.tgz", - "integrity": "sha512-T0guGVrAET0Ua2Z39GCtpWFzMd4GZqIK1pxzVraa2cZJMA3Zla2Qc10GpLUkCgyLFIiZMGXu+h25BpcaUykMVQ==", + "version": "24.1.5", + "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.1.5.tgz", + "integrity": "sha512-cm2xjPcAnq321yqN5Zi2JzTrw63ISmd+HQEsuwoon4SjqsgB04HB0yQWKbe3Kzp6nJeYTxEF8Ze1MEDEpLApXg==", "dev": true, "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.4", - "@vaadin/component-base": "~24.1.4", - "@vaadin/vaadin-lumo-styles": "~24.1.4", - "@vaadin/vaadin-material-styles": "~24.1.4", - "@vaadin/vaadin-themable-mixin": "~24.1.4" + "@vaadin/a11y-base": "~24.1.5", + "@vaadin/component-base": "~24.1.5", + "@vaadin/vaadin-lumo-styles": "~24.1.5", + "@vaadin/vaadin-material-styles": "~24.1.5", + "@vaadin/vaadin-themable-mixin": "~24.1.5" } }, "node_modules/@vaadin/password-field": { - "version": "24.1.4", - "resolved": "https://registry.npmjs.org/@vaadin/password-field/-/password-field-24.1.4.tgz", - "integrity": "sha512-+iJRSZ1/x1dr2z3SYsUQ66Iic2MdXZXXm83id4sjNDMrO8TcHYmAtxR58CVX5c/T4jQwKgmxnoJsA4m2sZRGAw==", + "version": "24.1.5", + "resolved": "https://registry.npmjs.org/@vaadin/password-field/-/password-field-24.1.5.tgz", + "integrity": "sha512-kXpJnzWp4spBAG6M91gKiGsBeT9CkGBKh3GDSPUh/HVgvOfk6rvlb3LFPKAlVlFTZYd/DpfCvYDGsoDMuSTyyQ==", "dev": true, "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/button": "~24.1.4", - "@vaadin/component-base": "~24.1.4", - "@vaadin/text-field": "~24.1.4", - "@vaadin/vaadin-lumo-styles": "~24.1.4", - "@vaadin/vaadin-material-styles": "~24.1.4", - "@vaadin/vaadin-themable-mixin": "~24.1.4" + "@vaadin/button": "~24.1.5", + "@vaadin/component-base": "~24.1.5", + "@vaadin/text-field": "~24.1.5", + "@vaadin/vaadin-lumo-styles": "~24.1.5", + "@vaadin/vaadin-material-styles": "~24.1.5", + "@vaadin/vaadin-themable-mixin": "~24.1.5" } }, "node_modules/@vaadin/text-field": { - "version": "24.1.4", - "resolved": "https://registry.npmjs.org/@vaadin/text-field/-/text-field-24.1.4.tgz", - "integrity": "sha512-FRy9T3iQcioUN2ggrZFtwAs56YQ6pX3wxuP6cAJOZPYzi6eLjFDaAr71HGHRSmWdpCncZv+yLaZy+6frQGJ70A==", + "version": "24.1.5", + "resolved": "https://registry.npmjs.org/@vaadin/text-field/-/text-field-24.1.5.tgz", + "integrity": "sha512-xnVeVfe7sDJo1xXTiT7VpOu33qCO0Kjyv/9q+9zMyg74qezSNGkCHDlEuz1FXnYln+DC0s/SJr04S0U175/OJw==", "dev": true, "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.4", - "@vaadin/component-base": "~24.1.4", - "@vaadin/field-base": "~24.1.4", - "@vaadin/input-container": "~24.1.4", - "@vaadin/vaadin-lumo-styles": "~24.1.4", - "@vaadin/vaadin-material-styles": "~24.1.4", - "@vaadin/vaadin-themable-mixin": "~24.1.4", + "@vaadin/a11y-base": "~24.1.5", + "@vaadin/component-base": "~24.1.5", + "@vaadin/field-base": "~24.1.5", + "@vaadin/input-container": "~24.1.5", + "@vaadin/vaadin-lumo-styles": "~24.1.5", + "@vaadin/vaadin-material-styles": "~24.1.5", + "@vaadin/vaadin-themable-mixin": "~24.1.5", "lit": "^2.0.0" } }, "node_modules/@vaadin/tooltip": { - "version": "24.1.4", - "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.1.4.tgz", - "integrity": "sha512-lirhnOEp76Whz083JmC+oJbIFIHwyAk5ead1uZdreHRKxTNHa1Hzj07T7MzlzCtY6+8yf9nArqkQdJZdwBwQhw==", + "version": "24.1.5", + "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.1.5.tgz", + "integrity": "sha512-ss1IDJMBifMjmioUBpXHM71cPhpKt9jmVWZ+TBfIUZb3qrWU7WCFSVs6bYtTcE1LpTf3KtcltdPiu7crve7ygQ==", "dev": true, "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.4", - "@vaadin/component-base": "~24.1.4", - "@vaadin/overlay": "~24.1.4", - "@vaadin/vaadin-lumo-styles": "~24.1.4", - "@vaadin/vaadin-material-styles": "~24.1.4", - "@vaadin/vaadin-themable-mixin": "~24.1.4" + "@vaadin/a11y-base": "~24.1.5", + "@vaadin/component-base": "~24.1.5", + "@vaadin/overlay": "~24.1.5", + "@vaadin/vaadin-lumo-styles": "~24.1.5", + "@vaadin/vaadin-material-styles": "~24.1.5", + "@vaadin/vaadin-themable-mixin": "~24.1.5" } }, "node_modules/@vaadin/vaadin-development-mode-detector": { @@ -3577,30 +3569,30 @@ "dev": true }, "node_modules/@vaadin/vaadin-lumo-styles": { - "version": "24.1.4", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.1.4.tgz", - "integrity": "sha512-LwRCno9q3qUBswHUe1fCtb62a9uuMPW5NBLCXZ+B0pnm+tVqytAn5gREzSdmAL9IzhF3Q/pq4PEIp+mlKdIX3g==", + "version": "24.1.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.1.5.tgz", + "integrity": "sha512-zprc+PFd3QvJ22A92NXQduBZFqHk+NJsFtthbHPlgFc+4mTqb/FvDcCU/kncRoOZxY0bzAjcq7WKnmwUTR5reg==", "dev": true, "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/icon": "~24.1.4", - "@vaadin/vaadin-themable-mixin": "~24.1.4" + "@vaadin/icon": "~24.1.5", + "@vaadin/vaadin-themable-mixin": "~24.1.5" } }, "node_modules/@vaadin/vaadin-material-styles": { - "version": "24.1.4", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.1.4.tgz", - "integrity": "sha512-2hrkT9Qg9Sk9GH6A+1jSh+GMQHClu0Io3ZhLoENpjGrJprfARcKc/hBpqES4Z5iyfII7xt3sei7xBjPSGKHpUg==", + "version": "24.1.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.1.5.tgz", + "integrity": "sha512-+Do5w4cyV6Oi877Cbr0SXL3p099x89upWsOhju7PpOV+pnlGYuIetAzbD1pGuGydZgHoxSfLBHnxHIbtbeipqg==", "dev": true, "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/vaadin-themable-mixin": "~24.1.4" + "@vaadin/vaadin-themable-mixin": "~24.1.5" } }, "node_modules/@vaadin/vaadin-themable-mixin": { - "version": "24.1.4", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.1.4.tgz", - "integrity": "sha512-FJLiqggz0osHi7HRXiBD0RrqWqa/4OZw3v89aU+JvnJ/gvZxZRVReIg0b+35ltprqnKRN1PbwNNfP8HUkYM1/Q==", + "version": "24.1.5", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.1.5.tgz", + "integrity": "sha512-nRfV/rGmeYH+65L5ORW9Sdc5/5qs5W6SwMRKSjfuLgGVKGsmyhHFR7vRMKMH8WUJDQ8ah+gmyGim9WJHUqF0fA==", "dev": true, "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", @@ -3636,11 +3628,12 @@ } }, "node_modules/@zip.js/zip.js": { - "version": "2.7.20", - "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.20.tgz", - "integrity": "sha512-rh5cby/bBOYC+hcK9qElDzbiIDeL3nhHPUTIE6/FQZR8mhY7azpthPdYbSNMOYBfv0AM188RNJ2yjtXsUfbAuQ==", + "version": "2.7.24", + "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.24.tgz", + "integrity": "sha512-RKXojDXeJcqOLLDFYrPYD0z3YFRaLjuOIAka789VVPGcMeCDEQv08ypNThMt+u+R2b9ISyhWiz43UBrgV1ZcbA==", "dev": true, "engines": { + "bun": ">=0.7.0", "deno": ">=1.0.0", "node": ">=16.5.0" } @@ -4329,9 +4322,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001519", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001519.tgz", - "integrity": "sha512-0QHgqR+Jv4bxHMp8kZ1Kn8CH55OikjKJ6JmKkZYP1F3D7w+lnFXF70nG5eNfsZS89jadi5Ywy5UCSKLAglIRkg==", + "version": "1.0.30001520", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001520.tgz", + "integrity": "sha512-tahF5O9EiiTzwTUqAeFjIZbn4Dnqxzz7ktrgGlMYNLH43Ul26IgTMH/zvL3DG0lZxBYnlT04axvInszUsZULdA==", "dev": true, "funding": [ { @@ -5037,9 +5030,9 @@ } }, "node_modules/electron": { - "version": "25.4.0", - "resolved": "https://registry.npmjs.org/electron/-/electron-25.4.0.tgz", - "integrity": "sha512-VLTRxDhL4UvQbqM7pTNENnJo62cdAPZT92N+B7BZQ5Xfok1wuVPEewIjBot4K7U3EpLUuHn1veeLzho3ihiP+Q==", + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-25.5.0.tgz", + "integrity": "sha512-w1DNj1LuAk0Vaas1rQ0pAkTe2gZ5YG75J27mC2m88y0G6Do5b5YoFDaF84fOGQHeQ4j8tC5LngSgWhbwmqDlrw==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -5440,9 +5433,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.484", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.484.tgz", - "integrity": "sha512-nO3ZEomTK2PO/3TUXgEx0A97xZTpKVf4p427lABHuCpT1IQ2N+njVh29DkQkCk6Q4m2wjU+faK4xAcfFndwjvw==", + "version": "1.4.490", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.490.tgz", + "integrity": "sha512-6s7NVJz+sATdYnIwhdshx/N/9O6rvMxmhVoDSDFdj6iA45gHR8EQje70+RYsF4GeB+k0IeNSBnP7yG9ZXJFr7A==", "dev": true }, "node_modules/electron-updater": { @@ -6530,9 +6523,9 @@ } }, "node_modules/is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -6880,9 +6873,9 @@ } }, "node_modules/jssha": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/jssha/-/jssha-3.3.0.tgz", - "integrity": "sha512-w9OtT4ALL+fbbwG3gw7erAO0jvS5nfvrukGPMWIAoea359B26ALXGpzy4YJSp9yGnpUvuvOw1nSjSoHDfWSr1w==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jssha/-/jssha-3.3.1.tgz", + "integrity": "sha512-VCMZj12FCFMQYcFLPRm/0lOBbLi8uM2BhXPTqw3U4YAfs4AZfiApOoBLoN8cQE60Z50m1MYMTQVCfgF/KaCVhQ==", "engines": { "node": "*" } @@ -7902,9 +7895,9 @@ } }, "node_modules/rcedit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rcedit/-/rcedit-3.0.2.tgz", - "integrity": "sha512-JbPZ7ltZxMBa3ioBGDNGMWGpo0vOWMgnfsC1w/Fx7lWIoT+skCwSGCbVrBdFBXCoe8LtV5ut5l05mZZpkkrLTg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/rcedit/-/rcedit-3.1.0.tgz", + "integrity": "sha512-WRlRdY1qZbu1L11DklT07KuHfRk42l0NFFJdaExELEu4fEQ982bP5Z6OWGPj/wLLIuKRQDCxZJGAwoFsxhZhNA==", "dev": true, "dependencies": { "cross-spawn-windows-exe": "^1.1.0" @@ -8057,9 +8050,9 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", "dev": true }, "node_modules/require-directory": { @@ -8080,12 +8073,12 @@ } }, "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, "dependencies": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -8190,9 +8183,9 @@ } }, "node_modules/rollup": { - "version": "3.27.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.27.2.tgz", - "integrity": "sha512-YGwmHf7h2oUHkVBT248x0yt6vZkYQ3/rvE5iQuVBh3WO8GcJ6BNeOkpoX1yMHIiBm18EMLjBPIoUDkhgnyxGOQ==", + "version": "3.28.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.28.0.tgz", + "integrity": "sha512-d7zhvo1OUY2SXSM6pfNjgD5+d0Nz87CUp4mt8l/GgVP3oBsPwzNvSzyu1me6BSG9JIgWNTVcafIXBIyM8yQ3yw==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -8317,9 +8310,9 @@ } }, "node_modules/sass": { - "version": "1.64.2", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.64.2.tgz", - "integrity": "sha512-TnDlfc+CRnUAgLO9D8cQLFu/GIjJIzJCGkE7o4ekIGQOH7T3GetiRR/PsTWJUHhkzcSPrARkPI+gNWn5alCzDg==", + "version": "1.65.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.65.1.tgz", + "integrity": "sha512-9DINwtHmA41SEd36eVPQ9BJKpn7eKDQmUHmpI0y5Zv2Rcorrh0zS+cFrt050hdNbmmCNKTW3hV5mWfuegNRsEA==", "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", diff --git a/package.json b/package.json index ddba7f7f..925b6706 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "qortal-ui", - "version": "4.3.0", + "version": "4.3.1", "description": "Qortal Project - decentralize the world - Data storage, communications, web hosting, decentralized trading, complete infrastructure for the future blockchain-based Internet", "keywords": [ "QORT", @@ -41,7 +41,7 @@ "electron-store": "8.1.0", "emoji-picker-js": "https://github.com/Qortal/emoji-picker-js", "extract-zip": "2.0.1", - "jssha": "3.3.0", + "jssha": "3.3.1", "localforage": "1.10.0", "lodash": "4.17.21", "node-fetch": "2.6.9", @@ -56,7 +56,7 @@ "prosemirror-state": "1.4.3", "prosemirror-transform": "1.7.4", "prosemirror-view": "1.31.7", - "sass": "1.64.2", + "sass": "1.65.1", "short-unique-id": "4.4.4", "@hapi/hapi": "21.3.2", "@hapi/inert": "7.1.0", @@ -72,7 +72,7 @@ }, "devDependencies": { "axios": "1.4.0", - "electron": "25.4.0", + "electron": "25.5.0", "electron-builder": "24.6.3", "electron-packager": "17.1.1", "epml": "0.3.3", @@ -86,12 +86,12 @@ "passive-events-support": "1.1.0", "redux": "4.2.1", "redux-thunk": "2.4.2", - "rollup": "3.27.2", + "rollup": "3.28.0", "rollup-plugin-node-globals": "1.4.0", "rollup-plugin-progress": "1.1.2", "rollup-plugin-scss": "3.0.0", "shelljs": "0.8.5", - "@babel/core": "7.22.9", + "@babel/core": "7.22.10", "@material/mwc-button": "0.27.0", "@material/mwc-checkbox": "0.27.0", "@material/mwc-dialog": "0.27.0", @@ -130,17 +130,17 @@ "@qortal/rollup-plugin-web-worker-loader": "1.6.4", "@rollup/plugin-alias": "5.0.0", "@rollup/plugin-babel": "6.0.3", - "@rollup/plugin-commonjs": "25.0.3", + "@rollup/plugin-commonjs": "25.0.4", "@rollup/plugin-node-resolve": "15.1.0", "@rollup/plugin-replace": "5.0.2", "@rollup/plugin-terser": "0.4.3", - "@vaadin/avatar": "24.1.4", - "@vaadin/button": "24.1.4", - "@vaadin/grid": "24.1.4", - "@vaadin/icons": "24.1.4", - "@vaadin/password-field": "24.1.4", - "@vaadin/tooltip": "24.1.4", - "@zip.js/zip.js": "2.7.20" + "@vaadin/avatar": "24.1.5", + "@vaadin/button": "24.1.5", + "@vaadin/grid": "24.1.5", + "@vaadin/icons": "24.1.5", + "@vaadin/password-field": "24.1.5", + "@vaadin/tooltip": "24.1.5", + "@zip.js/zip.js": "2.7.24" }, "engines": { "node": ">=18.15.0" From ccc78226467db60b9f9e408301b6013ae1394794 Mon Sep 17 00:00:00 2001 From: Phillip Date: Tue, 15 Aug 2023 11:20:16 -0500 Subject: [PATCH 11/31] add fees to publish --- .../plugins/core/qdn/publish/publish.src.js | 32 ++++++++++++++++--- plugins/plugins/utils/publish-image.js | 25 +++++++++++++-- 2 files changed, 49 insertions(+), 8 deletions(-) diff --git a/plugins/plugins/core/qdn/publish/publish.src.js b/plugins/plugins/core/qdn/publish/publish.src.js index 08372934..0d0ce8f0 100644 --- a/plugins/plugins/core/qdn/publish/publish.src.js +++ b/plugins/plugins/core/qdn/publish/publish.src.js @@ -488,6 +488,16 @@ class PublishData extends LitElement { this.successMessage = '' console.error(errorMessage) } + const getArbitraryFee = async () => { + const timestamp = Date.now() + let fee = await parentEpml.request('apiCall', { + url: `/unitfee?txType=ARBITRARY×tamp=${timestamp}` + }) + return { + timestamp, + fee : (Number(fee) / 1e8).toFixed(8) + } + } const validate = async () => { let validNameRes = await validateName(registeredName) @@ -501,8 +511,17 @@ class PublishData extends LitElement { this.generalMessage = `${err6string}` let transactionBytes let previewUrlPath + let feeAmount = null - let uploadDataRes = await uploadData(registeredName, path, file, preview, fee) + if(fee){ + const res = await getArbitraryFee() + if(res.fee){ + feeAmount= res.fee + } else { + throw new Error('unable to get fee') + } + } + let uploadDataRes = await uploadData(registeredName, path, file, preview, fee, feeAmount) if (uploadDataRes.error) { let err7string = get("publishpage.pchange20") @@ -531,12 +550,13 @@ class PublishData extends LitElement { if (fee) { let err9string = get("publishpage.pchange26") this.generalMessage = `${err9string}` + } else { let err9string = get("publishpage.pchange22") this.generalMessage = `${err9string}` } - let signAndProcessRes = await signAndProcess(transactionBytes, fee) + let signAndProcessRes = await signAndProcess(transactionBytes, fee, feeAmount) if (signAndProcessRes.error) { let err10string = get("publishpage.pchange20") @@ -554,7 +574,9 @@ class PublishData extends LitElement { this.successMessage = `${err11string}` } - const uploadData = async (registeredName, path, file, preview, fee) => { + + + const uploadData = async (registeredName, path, file, preview, fee, feeAmount) => { let postBody = path let urlSuffix = "" if (file != null) { @@ -592,9 +614,9 @@ class PublishData extends LitElement { uploadDataUrl = `/arbitrary/${service}/${registeredName}/${this.identifier}${urlSuffix}?${metadataQueryString}&apiKey=${this.getApiKey()}&preview=${new Boolean(preview).toString()}` } } else if (fee) { - uploadDataUrl = `/arbitrary/${this.service}/${registeredName}${urlSuffix}?${metadataQueryString}&fee=100000&apiKey=${this.getApiKey()}` + uploadDataUrl = `/arbitrary/${this.service}/${registeredName}${urlSuffix}?${metadataQueryString}&fee=${feeAmount}&apiKey=${this.getApiKey()}` if (identifier != null && identifier.trim().length > 0) { - uploadDataUrl = `/arbitrary/${service}/${registeredName}/${this.identifier}${urlSuffix}?${metadataQueryString}&fee=100000&apiKey=${this.getApiKey()}` + uploadDataUrl = `/arbitrary/${service}/${registeredName}/${this.identifier}${urlSuffix}?${metadataQueryString}&fee=${feeAmount}&apiKey=${this.getApiKey()}` } } else { uploadDataUrl = `/arbitrary/${this.service}/${registeredName}${urlSuffix}?${metadataQueryString}&apiKey=${this.getApiKey()}` diff --git a/plugins/plugins/utils/publish-image.js b/plugins/plugins/utils/publish-image.js index b3511283..bde9a78f 100644 --- a/plugins/plugins/utils/publish-image.js +++ b/plugins/plugins/utils/publish-image.js @@ -48,6 +48,16 @@ export const publishData = async ({ }) return convertedBytes } + const getArbitraryFee = async () => { + const timestamp = Date.now() + let fee = await parentEpml.request('apiCall', { + url: `/unitfee?txType=ARBITRARY×tamp=${timestamp}` + }) + return { + timestamp, + fee : (Number(fee) / 1e8).toFixed(8) + } + } const signAndProcess = async (transactionBytesBase58) => { let convertedBytesBase58 = await convertBytesForSigning( @@ -125,7 +135,16 @@ export const publishData = async ({ if (validNameRes.error) { throw new Error('Name not found'); } - let transactionBytes = await uploadData(registeredName, path, file) + let fee = null + if(withFee){ + const res = await getArbitraryFee() + if(res.fee){ + fee= res.fee + } else { + throw new Error('unable to get fee') + } + } + let transactionBytes = await uploadData(registeredName, path, file, fee) if (transactionBytes.error) { throw new Error(transactionBytes.message || 'Error when uploading'); } else if ( @@ -149,7 +168,7 @@ export const publishData = async ({ return signAndProcessRes } - const uploadData = async (registeredName, path, file) => { + const uploadData = async (registeredName, path, file, fee) => { if (identifier != null && identifier.trim().length > 0) { let postBody = path let urlSuffix = "" @@ -181,7 +200,7 @@ export const publishData = async ({ } if(withFee){ - uploadDataUrl = uploadDataUrl + '&fee=100000' + uploadDataUrl = uploadDataUrl + `&fee=${fee}` } if(filename != null && filename != "undefined"){ From b6d9410621a00fb6997a49a2477585ab7a6dfcc4 Mon Sep 17 00:00:00 2001 From: Phillip Date: Tue, 15 Aug 2023 15:25:32 -0500 Subject: [PATCH 12/31] fix url and get fee for modal --- core/language/us.json | 3 +- .../plugins/core/qdn/browser/browser.src.js | 40 +++++++++++++++---- .../plugins/core/qdn/publish/publish.src.js | 2 +- plugins/plugins/utils/publish-image.js | 11 +++-- 4 files changed, 43 insertions(+), 13 deletions(-) diff --git a/core/language/us.json b/core/language/us.json index cbf85a4f..768d9ac7 100644 --- a/core/language/us.json +++ b/core/language/us.json @@ -719,7 +719,8 @@ "bchange43": "Do you give this application permission to add to this list?", "bchange44": "Do you give this application permission to delete from this list?", "bchange45": "Encrypt", - "bchange46": "Do you give this application permission to save the following file" + "bchange46": "Do you give this application permission to save the following file", + "bchange47": "Instant publish - requires" }, "datapage": { "dchange1": "Data Management", diff --git a/plugins/plugins/core/qdn/browser/browser.src.js b/plugins/plugins/core/qdn/browser/browser.src.js index db59e4fd..20b66767 100644 --- a/plugins/plugins/core/qdn/browser/browser.src.js +++ b/plugins/plugins/core/qdn/browser/browser.src.js @@ -425,6 +425,22 @@ class WebBrowser extends LitElement { const joinFee = (Number(data) / 1e8).toFixed(8) return joinFee } + async getArbitraryFee (){ + const timestamp = Date.now() + 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 url = `${nodeUrl}/transactions/unitfee?txType=ARBITRARY×tamp=${timestamp}` + const response = await fetch(url) + if (!response.ok) { + throw new Error('Error when fetching arbitrary fee'); + } + const data = await response.json() + const arbitraryFee = (Number(data) / 1e8).toFixed(8) + return { + timestamp, + fee : arbitraryFee + } + } async sendQortFee() { const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node] const nodeUrl = myNode.protocol + '://' + myNode.domain + ':' + myNode.port @@ -975,6 +991,7 @@ class WebBrowser extends LitElement { const tag3 = data.tag3; const tag4 = data.tag4; const tag5 = data.tag5; + let feeAmount = null if (data.identifier == null) { identifier = 'default'; } @@ -994,6 +1011,8 @@ class WebBrowser extends LitElement { if (data.file) { data64 = await fileToBase64(data.file) } + const getArbitraryFee = await this.getArbitraryFee() + feeAmount = getArbitraryFee.fee if (data.encrypt) { try { @@ -1014,6 +1033,7 @@ class WebBrowser extends LitElement { } + const res2 = await showModalAndWait( @@ -1022,7 +1042,8 @@ class WebBrowser extends LitElement { name, identifier, service, - encrypt: data.encrypt + encrypt: data.encrypt, + feeAmount } ); if (res2.action === 'accept') { @@ -1052,7 +1073,8 @@ class WebBrowser extends LitElement { tag4, tag5, apiVersion: 2, - withFee: res2.userData.isWithFee === true ? true : false + withFee: res2.userData.isWithFee === true ? true : false, + feeAmount: feeAmount }); response = JSON.stringify(resPublish); @@ -1080,7 +1102,7 @@ class WebBrowser extends LitElement { case actions.PUBLISH_MULTIPLE_QDN_RESOURCES: { const requiredFields = ['resources']; const missingFields = []; - + let feeAmount = null requiredFields.forEach((field) => { if (!data[field]) { missingFields.push(field); @@ -1114,11 +1136,14 @@ class WebBrowser extends LitElement { response = JSON.stringify(data); break } + const getArbitraryFee = await this.getArbitraryFee() + feeAmount = getArbitraryFee.fee const res2 = await showModalAndWait( actions.PUBLISH_MULTIPLE_QDN_RESOURCES, { resources, - encrypt: data.encrypt + encrypt: data.encrypt, + feeAmount } ); @@ -1217,7 +1242,8 @@ class WebBrowser extends LitElement { tag4, tag5, apiVersion: 2, - withFee: res2.userData.isWithFee === true ? true : false + withFee: res2.userData.isWithFee === true ? true : false, + feeAmount: feeAmount }); worker.terminate(); @@ -3001,7 +3027,7 @@ async function showModalAndWait(type, data) {
@@ -3017,7 +3043,7 @@ async function showModalAndWait(type, data) {
diff --git a/plugins/plugins/core/qdn/publish/publish.src.js b/plugins/plugins/core/qdn/publish/publish.src.js index 0d0ce8f0..aaf16793 100644 --- a/plugins/plugins/core/qdn/publish/publish.src.js +++ b/plugins/plugins/core/qdn/publish/publish.src.js @@ -491,7 +491,7 @@ class PublishData extends LitElement { const getArbitraryFee = async () => { const timestamp = Date.now() let fee = await parentEpml.request('apiCall', { - url: `/unitfee?txType=ARBITRARY×tamp=${timestamp}` + url: `/transactions/unitfee?txType=ARBITRARY×tamp=${timestamp}` }) return { timestamp, diff --git a/plugins/plugins/utils/publish-image.js b/plugins/plugins/utils/publish-image.js index bde9a78f..fde18985 100644 --- a/plugins/plugins/utils/publish-image.js +++ b/plugins/plugins/utils/publish-image.js @@ -28,7 +28,8 @@ export const publishData = async ({ tag2, tag3, tag4, - tag5 + tag5, + feeAmount }) => { const validateName = async (receiverName) => { let nameRes = await parentEpml.request("apiCall", { @@ -51,7 +52,7 @@ export const publishData = async ({ const getArbitraryFee = async () => { const timestamp = Date.now() let fee = await parentEpml.request('apiCall', { - url: `/unitfee?txType=ARBITRARY×tamp=${timestamp}` + url: `/transactions/unitfee?txType=ARBITRARY×tamp=${timestamp}` }) return { timestamp, @@ -136,9 +137,11 @@ export const publishData = async ({ throw new Error('Name not found'); } let fee = null - if(withFee){ + if(withFee && feeAmount){ + fee= feeAmount + } else if(withFee){ const res = await getArbitraryFee() - if(res.fee){ + if(res.fee){ fee= res.fee } else { throw new Error('unable to get fee') From d648435bc4a3a09ecb5aed1d10f7940589754c38 Mon Sep 17 00:00:00 2001 From: Phillip Date: Wed, 16 Aug 2023 14:00:12 -0500 Subject: [PATCH 13/31] fix fee --- plugins/plugins/core/qdn/browser/browser.src.js | 5 +++-- plugins/plugins/core/qdn/publish/publish.src.js | 3 ++- plugins/plugins/utils/publish-image.js | 3 ++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/plugins/plugins/core/qdn/browser/browser.src.js b/plugins/plugins/core/qdn/browser/browser.src.js index 20b66767..c43b989d 100644 --- a/plugins/plugins/core/qdn/browser/browser.src.js +++ b/plugins/plugins/core/qdn/browser/browser.src.js @@ -438,7 +438,8 @@ class WebBrowser extends LitElement { const arbitraryFee = (Number(data) / 1e8).toFixed(8) return { timestamp, - fee : arbitraryFee + fee : Number(data), + feeToShow: arbitraryFee } } async sendQortFee() { @@ -1043,7 +1044,7 @@ class WebBrowser extends LitElement { identifier, service, encrypt: data.encrypt, - feeAmount + feeAmount: getArbitraryFee.feeToShow } ); if (res2.action === 'accept') { diff --git a/plugins/plugins/core/qdn/publish/publish.src.js b/plugins/plugins/core/qdn/publish/publish.src.js index aaf16793..77b99317 100644 --- a/plugins/plugins/core/qdn/publish/publish.src.js +++ b/plugins/plugins/core/qdn/publish/publish.src.js @@ -495,7 +495,8 @@ class PublishData extends LitElement { }) return { timestamp, - fee : (Number(fee) / 1e8).toFixed(8) + fee : Number(fee), + feeToShow: (Number(fee) / 1e8).toFixed(8) } } diff --git a/plugins/plugins/utils/publish-image.js b/plugins/plugins/utils/publish-image.js index fde18985..ed3b2c34 100644 --- a/plugins/plugins/utils/publish-image.js +++ b/plugins/plugins/utils/publish-image.js @@ -56,7 +56,8 @@ export const publishData = async ({ }) return { timestamp, - fee : (Number(fee) / 1e8).toFixed(8) + fee : Number(fee), + feeToShow: (Number(fee) / 1e8).toFixed(8) } } From 1587bfacaa59958e61b9f56d2ed25c4f46b9da85 Mon Sep 17 00:00:00 2001 From: Phillip Date: Wed, 16 Aug 2023 14:27:24 -0500 Subject: [PATCH 14/31] fix fee when showing in multiple modal --- plugins/plugins/core/qdn/browser/browser.src.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/plugins/core/qdn/browser/browser.src.js b/plugins/plugins/core/qdn/browser/browser.src.js index c43b989d..3dfad150 100644 --- a/plugins/plugins/core/qdn/browser/browser.src.js +++ b/plugins/plugins/core/qdn/browser/browser.src.js @@ -1144,7 +1144,7 @@ class WebBrowser extends LitElement { { resources, encrypt: data.encrypt, - feeAmount + feeAmount: getArbitraryFee.feeToShow } ); From ea40ab54a517c58ecf6e8bfff8f465bdac9ea419 Mon Sep 17 00:00:00 2001 From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com> Date: Thu, 17 Aug 2023 14:23:42 +0200 Subject: [PATCH 15/31] Dynamic fee --- plugins/plugins/core/components/TipUser.js | 83 ++++++++++++++-------- 1 file changed, 55 insertions(+), 28 deletions(-) diff --git a/plugins/plugins/core/components/TipUser.js b/plugins/plugins/core/components/TipUser.js index d7b79b7f..1a6bf2b4 100644 --- a/plugins/plugins/core/components/TipUser.js +++ b/plugins/plugins/core/components/TipUser.js @@ -9,32 +9,35 @@ import { use, get, translate, translateUnsafeHTML, registerTranslateConfig } fro const parentEpml = new Epml({ type: "WINDOW", source: window.parent }); export class TipUser extends LitElement { - static get properties() { - return { - userName: { type: String }, - walletBalance: { type: Number }, - sendMoneyLoading: { type: Boolean }, - closeTipUser: { type: Boolean }, - btnDisable: { type: Boolean }, - errorMessage: { type: String }, - successMessage: { type: String }, - setOpenTipUser: { attribute: false }, + static get properties() { + return { + userName: { type: String }, + walletBalance: { type: Number }, + sendMoneyLoading: { type: Boolean }, + closeTipUser: { type: Boolean }, + btnDisable: { type: Boolean }, + errorMessage: { type: String }, + successMessage: { type: String }, + setOpenTipUser: { attribute: false }, + qortPaymentFee: { type: Number } } - } + } - constructor() { - super() + constructor() { + super() this.sendMoneyLoading = false this.btnDisable = false this.errorMessage = "" this.successMessage = "" this.myAddress = window.parent.reduxStore.getState().app.selectedAddress + this.qortPaymentFee = 0.01 } static styles = [tipUserStyles] - async firstUpdated() { - await this.fetchWalletDetails() + async firstUpdated() { + await this.fetchWalletDetails() + this.paymentFee() } updated(changedProperties) { @@ -48,12 +51,34 @@ export class TipUser extends LitElement { } async getLastRef() { - let myRef = await parentEpml.request("apiCall", { - type: "api", - url: `/addresses/lastreference/${this.myAddress.address}`, - }) - return myRef - } + let myRef = await parentEpml.request("apiCall", { + type: "api", + url: `/addresses/lastreference/${this.myAddress.address}`, + }) + return myRef + } + + async getSendQortFee() { + let sendFee = await parentEpml.request('apiCall', { + type: "api", + url: `/transactions/unitfee?txType=PAYMENT` + }) + return (Number(sendFee) / 1e8).toFixed(8) + } + + async paymentFee() { + 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 url = `${nodeUrl}/transactions/unitfee?txType=PAYMENT` + await fetch(url).then((response) => { + if (response.ok) { + return response.json() + } + return Promise.reject(response) + }).then((json) => { + this.qortPaymentFee = (Number(json) / 1e8).toFixed(8) + }) + } renderSuccessText() { return html`${translate("chatpage.cchange55")}` @@ -89,7 +114,7 @@ export class TipUser extends LitElement { this.sendMoneyLoading = true this.btnDisable = true - if (parseFloat(amount) + parseFloat(0.001) > parseFloat(this.walletBalance)) { + if (parseFloat(amount) + parseFloat(0.011) > parseFloat(this.walletBalance)) { this.sendMoneyLoading = false this.btnDisable = false let snack1string = get("chatpage.cchange51") @@ -125,7 +150,7 @@ export class TipUser extends LitElement { } else { myRes = myNameRes } - return myRes; + return myRes } const validateAddress = async (receiverAddress) => { @@ -135,6 +160,7 @@ export class TipUser extends LitElement { const validateReceiver = async (recipient) => { let lastRef = await this.getLastRef() + let theFee = await this.getSendQortFee() let isAddress try { @@ -144,13 +170,13 @@ export class TipUser extends LitElement { } if (isAddress) { - let myTransaction = await makeTransactionRequest(recipient, lastRef) + let myTransaction = await makeTransactionRequest(recipient, lastRef, theFee) getTxnRequestResponse(myTransaction) } else { let myNameRes = await validateName(recipient) if (myNameRes !== false) { let myNameAddress = myNameRes.owner - let myTransaction = await makeTransactionRequest(myNameAddress, lastRef) + let myTransaction = await makeTransactionRequest(myNameAddress, lastRef, theFee) getTxnRequestResponse(myTransaction) } else { console.error(this.renderReceiverText()) @@ -178,9 +204,10 @@ export class TipUser extends LitElement { } } - const makeTransactionRequest = async (receiver, lastRef) => { + const makeTransactionRequest = async (receiver, lastRef, theFee) => { let myReceiver = receiver let mylastRef = lastRef + let myFee = theFee let dialogamount = get("transactions.amount") let dialogAddress = get("login.address") let dialogName = get("login.name") @@ -194,7 +221,7 @@ export class TipUser extends LitElement { recipientName: recipientName, amount: amount, lastReference: mylastRef, - fee: 0.001, + fee: myFee, dialogamount: dialogamount, dialogto: dialogto, dialogAddress, @@ -239,7 +266,7 @@ export class TipUser extends LitElement {

${translate("chatpage.cchange47")}: ${this.walletBalance} QORT

-

${translate("chatpage.cchange49")}: 0.001 QORT

+

${translate("chatpage.cchange49")}: ${this.qortPaymentFee} QORT

${this.sendMoneyLoading ? html` From ff1f86700675d92b4ede0d1e74c9a6615bffb941 Mon Sep 17 00:00:00 2001 From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com> Date: Thu, 17 Aug 2023 15:37:29 +0200 Subject: [PATCH 16/31] Update translations --- core/language/de.json | 3 ++- core/language/es.json | 3 ++- core/language/fr.json | 3 ++- core/language/hindi.json | 3 ++- core/language/hr.json | 3 ++- core/language/hu.json | 3 ++- core/language/it.json | 3 ++- core/language/jp.json | 3 ++- core/language/ko.json | 3 ++- core/language/no.json | 3 ++- core/language/pl.json | 3 ++- core/language/pt.json | 3 ++- core/language/ro.json | 3 ++- core/language/rs.json | 3 ++- core/language/ru.json | 3 ++- core/language/zhc.json | 3 ++- core/language/zht.json | 3 ++- 17 files changed, 34 insertions(+), 17 deletions(-) diff --git a/core/language/de.json b/core/language/de.json index c5942515..3dd767c5 100644 --- a/core/language/de.json +++ b/core/language/de.json @@ -717,7 +717,8 @@ "bchange43": "Erteilen Sie dieser Anwendung die Erlaubnis, diese Liste hinzuzufügen?", "bchange44": "Erteilen Sie dieser Anwendung die Erlaubnis, sie von dieser Liste zu löschen?", "bchange45": "Verschlüsseln", - "bchange46": "Geben Sie dieser Anwendung die Erlaubnis, die folgende Datei zu speichern?" + "bchange46": "Geben Sie dieser Anwendung die Erlaubnis, die folgende Datei zu speichern?", + "bchange47": "Sofortige Veröffentlichung – erforderlich" }, "datapage": { "dchange1": "Datenmanagement", diff --git a/core/language/es.json b/core/language/es.json index 65a7e649..72ab3b45 100644 --- a/core/language/es.json +++ b/core/language/es.json @@ -717,7 +717,8 @@ "bchange43": "¿Le das permiso a esta aplicación para agregar a esta lista?", "bchange44": "¿Le das permiso a esta aplicación para eliminar de esta lista?", "bchange45": "Cifrar", - "bchange46": "¿Le das permiso a esta aplicación para guardar el siguiente archivo?" + "bchange46": "¿Le das permiso a esta aplicación para guardar el siguiente archivo?", + "bchange47": "Publicación instantánea - requiere" }, "datapage": { "dchange1": "Gestión de datos", diff --git a/core/language/fr.json b/core/language/fr.json index 9890b43e..d95207c6 100644 --- a/core/language/fr.json +++ b/core/language/fr.json @@ -717,7 +717,8 @@ "bchange43": "Autorisez-vous cette application à ajouter à cette liste ?", "bchange44": "Autorisez-vous cette application à supprimer de cette liste ?", "bchange45": "Crypter", - "bchange46": "Autorisez-vous cette application à enregistrer le fichier suivant" + "bchange46": "Autorisez-vous cette application à enregistrer le fichier suivant", + "bchange47": "Publication instantanée - nécessite" }, "datapage": { "dchange1": "Gestion de données", diff --git a/core/language/hindi.json b/core/language/hindi.json index a4f7938a..174d0188 100644 --- a/core/language/hindi.json +++ b/core/language/hindi.json @@ -718,7 +718,8 @@ "bchange43": "क्या आप इस एप्लिकेशन को इस सूची में जोड़ने की अनुमति देते हैं?", "bchange44": "क्या आप इस एप्लिकेशन को इस सूची से हटाने की अनुमति देते हैं?", "bchange45": "एन्क्रिप्ट", - "bchange46": "क्या आप इस एप्लिकेशन को निम्न फ़ाइल सहेजने की अनुमति देते हैं" + "bchange46": "क्या आप इस एप्लिकेशन को निम्न फ़ाइल सहेजने की अनुमति देते हैं", + "bchange47": "तत्काल प्रकाशन - आवश्यक है" }, "datapage": { "dchange1": "डाटा प्रबंधन", diff --git a/core/language/hr.json b/core/language/hr.json index ad206a90..c84335a4 100644 --- a/core/language/hr.json +++ b/core/language/hr.json @@ -717,7 +717,8 @@ "bchange43": "Dajete li ovoj aplikaciji dopuštenje za dodavanje na ovaj popis?", "bchange44": "Dajete li ovoj aplikaciji dopuštenje za brisanje s ovog popisa?", "bchange45": "Šifriraj", - "bchange46": "Dajete li ovoj aplikaciji dopuštenje za spremanje sljedeće datoteke" + "bchange46": "Dajete li ovoj aplikaciji dopuštenje za spremanje sljedeće datoteke", + "bchange47": "Trenutno objavljivanje - zahtijeva" }, "datapage": { "dchange1": "Upravljanje podacima", diff --git a/core/language/hu.json b/core/language/hu.json index 5557a6d1..3ee22c75 100644 --- a/core/language/hu.json +++ b/core/language/hu.json @@ -717,7 +717,8 @@ "bchange43": "Engedélyt ad ennek az alkalmazásnak, hogy felvegye ezt a listát?", "bchange44": "Engedélyezi ennek az alkalmazásnak, hogy töröljön erről a listáról?", "bchange45": "Titkosítás", - "bchange46": "Engedélyezi ennek az alkalmazásnak a következő fájl mentését" + "bchange46": "Engedélyezi ennek az alkalmazásnak a következő fájl mentését", + "bchange47": "Azonnali közzététel – szükséges" }, "datapage": { "dchange1": "Adatkezelés", diff --git a/core/language/it.json b/core/language/it.json index a544e4ad..04d839a9 100644 --- a/core/language/it.json +++ b/core/language/it.json @@ -717,7 +717,8 @@ "bchange43": "Concedi a questa applicazione il permesso di aggiungersi a questa lista?", "bchange44": "Concedi a questa applicazione il permesso di eliminare da questo elenco?", "bchange45": "Cripta", - "bchange46": "Concedi a questa applicazione il permesso di salvare il seguente file" + "bchange46": "Concedi a questa applicazione il permesso di salvare il seguente file", + "bchange47": "Pubblicazione istantanea - richiede" }, "datapage": { "dchange1": "Gestione dati", diff --git a/core/language/jp.json b/core/language/jp.json index 32560ac5..3be3822a 100644 --- a/core/language/jp.json +++ b/core/language/jp.json @@ -720,7 +720,8 @@ "bchange43": "このアプリケーションにこのリストに追加する事を許可しますか?", "bchange44": "このアプリケーションにこのリストから削除する事を許可しますか?", "bchange45": "暗号化", - "bchange46": "このアプリケーションに次のファイルを保存する事を許可しますか?" + "bchange46": "このアプリケーションに次のファイルを保存する事を許可しますか?", + "bchange47": "インスタント公開 - が必要です" }, "datapage": { "dchange1": "データ管理", diff --git a/core/language/ko.json b/core/language/ko.json index a16860a3..85fd09ec 100644 --- a/core/language/ko.json +++ b/core/language/ko.json @@ -717,7 +717,8 @@ "bchange43": "이 목록에 추가할 수 있는 권한을 이 응용 프로그램에 부여하시겠습니까?", "bchange44": "이 목록에서 삭제할 수 있는 권한을 이 애플리케이션에 부여하시겠습니까?", "bchange45": "암호화", - "bchange46": "이 응용 프로그램에 다음 파일을 저장할 권한을 부여하시겠습니까?" + "bchange46": "이 응용 프로그램에 다음 파일을 저장할 권한을 부여하시겠습니까?", + "bchange47": "즉시 게시 - 필요" }, "datapage": { "dchange1": "데이터 관리", diff --git a/core/language/no.json b/core/language/no.json index 1a12905b..aa6b396c 100644 --- a/core/language/no.json +++ b/core/language/no.json @@ -717,7 +717,8 @@ "bchange43": "Gir du denne applikasjonen tillatelse til å legge til denne listen?", "bchange44": "Gir du denne applikasjonen tillatelse til å slette fra denne listen?", "bchange45": "Krypter", - "bchange46": "Gir du dette programmet tillatelse til å lagre følgende fil" + "bchange46": "Gir du dette programmet tillatelse til å lagre følgende fil", + "bchange47": "Øyeblikkelig publisering - krever" }, "datapage": { "dchange1": "Data-administrasjon", diff --git a/core/language/pl.json b/core/language/pl.json index 273ead7e..f3d88f13 100644 --- a/core/language/pl.json +++ b/core/language/pl.json @@ -717,7 +717,8 @@ "bchange43": "Czy zezwalasz tej aplikacji na dodanie do tej listy?", "bchange44": "Czy zezwalasz tej aplikacji na usunięcie z tej listy?", "bchange45": "Szyfruj", - "bchange46": "Czy zezwalasz tej aplikacji na zapisanie następującego pliku" + "bchange46": "Czy zezwalasz tej aplikacji na zapisanie następującego pliku", + "bchange47": "Błyskawiczna publikacja - wymaga" }, "datapage": { "dchange1": "Zarządzanie danymi", diff --git a/core/language/pt.json b/core/language/pt.json index f2a64c14..39709266 100644 --- a/core/language/pt.json +++ b/core/language/pt.json @@ -717,7 +717,8 @@ "bchange43": "Você dá a este aplicativo permissão para adicionar a esta lista?", "bchange44": "Você dá a este aplicativo permissão para deletar desta lista?", "bchange45": "Criptografar", - "bchange46": "Você concede permissão a este aplicativo para salvar o seguinte arquivo" + "bchange46": "Você concede permissão a este aplicativo para salvar o seguinte arquivo", + "bchange47": "Publicação instantânea - requer" }, "datapage": { "dchange1": "Gerenciamento de Dados", diff --git a/core/language/ro.json b/core/language/ro.json index 2c0fe833..891362ed 100644 --- a/core/language/ro.json +++ b/core/language/ro.json @@ -717,7 +717,8 @@ "bchange43": "Oferiți acestei aplicații permisiunea de a adăuga la această listă?", "bchange44": "Oferiți acestei aplicații permisiunea de a șterge din această listă?", "bchange45": "Criptați", - "bchange46": "Dați această aplicație permisiunea de a salva următorul fișier" + "bchange46": "Dați această aplicație permisiunea de a salva următorul fișier", + "bchange47": "Publicare instantanee - necesită" }, "datapage": { "dchange1": "Gestionare date", diff --git a/core/language/rs.json b/core/language/rs.json index 6ce28838..87ca3f34 100644 --- a/core/language/rs.json +++ b/core/language/rs.json @@ -717,7 +717,8 @@ "bchange43": "Da li dajete ovoj aplikaciji dozvolu za dodavanje na ovu listu?", "bchange44": "Da li ovoj aplikaciji dajete dozvolu za brisanje sa ove liste?", "bchange45": "Šifrovanje", - "bchange46": "Da li ovoj aplikaciji dajete dozvolu da sačuva sledeću datoteku" + "bchange46": "Da li ovoj aplikaciji dajete dozvolu da sačuva sledeću datoteku", + "bchange47": "Trenutno objavljivanje - zahteva" }, "datapage": { "dchange1": "Upravljanje podacima", diff --git a/core/language/ru.json b/core/language/ru.json index 9b8cda1f..9ece6005 100644 --- a/core/language/ru.json +++ b/core/language/ru.json @@ -717,7 +717,8 @@ "bchange43": "Даете ли вы этому приложению разрешение на добавление в этот список?", "bchange44": "Даете ли вы этому приложению разрешение на удаление из этого списка?", "bchange45": "Шифровать", - "bchange46": "Даете ли вы этому приложению разрешение на сохранение следующего файла?" + "bchange46": "Даете ли вы этому приложению разрешение на сохранение следующего файла?", + "bchange47": "Мгновенная публикация - требуется" }, "datapage": { "dchange1": "Управление данными", diff --git a/core/language/zhc.json b/core/language/zhc.json index 4227f543..c3a21761 100644 --- a/core/language/zhc.json +++ b/core/language/zhc.json @@ -717,7 +717,8 @@ "bchange43": "您授予此应用程序添加到此列表的权限吗?", "bchange44": "您授予此应用程序从列表中删除的权限吗?", "bchange45": "加密", - "bchange46": "您是否授予此应用程序保存以下文件的权限" + "bchange46": "您是否授予此应用程序保存以下文件的权限", + "bchange47": "即时发布 - 需要" }, "datapage": { "dchange1": "资料管理", diff --git a/core/language/zht.json b/core/language/zht.json index 99e43890..7ef6f96b 100644 --- a/core/language/zht.json +++ b/core/language/zht.json @@ -717,7 +717,8 @@ "bchange43": "您授予此應用程序添加到此列表的權限嗎?", "bchange44": "您授予此應用程序從列表中刪除的權限嗎?", "bchange45": "加密", - "bchange46": "您是否授予此應用程序保存以下文件的權限" + "bchange46": "您是否授予此應用程序保存以下文件的權限", + "bchange47": "即時發布 - 需要" }, "datapage": { "dchange1": "資料管理", From 74b7c380f95e15d04cb22ce1585bf185da9ea8b9 Mon Sep 17 00:00:00 2001 From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com> Date: Thu, 17 Aug 2023 15:44:23 +0200 Subject: [PATCH 17/31] Bump version v4.3.2 --- README.md | 2 +- package-lock.json | 154 +++++++++++++++++++++++----------------------- package.json | 8 +-- 3 files changed, 82 insertions(+), 82 deletions(-) diff --git a/README.md b/README.md index ee11d8c0..5d4a8115 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ Easiest way to install the lastest required packages on Linux is via nvm. ``` source ~/.profile ``` (For Debian based distro)
``` source ~/.bashrc ``` (For Fedora / CentOS)
``` nvm ls-remote ``` (Fetch list of available versions)
-``` nvm install v18.15.0 ``` (LTS: Hydrogen supported by Electron)
+``` nvm install v18.16.1 ``` (LTS: Hydrogen supported by Electron)
``` npm --location=global install npm@9.8.1 ```
Adding via binary package mirror will only work if you have set the package path. You can do a node or java build via ports instead by downloading ports with portsnap fetch method. diff --git a/package-lock.json b/package-lock.json index ee51c5b7..f4292cf1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "qortal-ui", - "version": "4.3.1", + "version": "4.3.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "qortal-ui", - "version": "4.3.1", + "version": "4.3.2", "license": "GPL-3.0", "dependencies": { "@hapi/hapi": "21.3.2", @@ -90,7 +90,7 @@ "@rollup/plugin-alias": "5.0.0", "@rollup/plugin-babel": "6.0.3", "@rollup/plugin-commonjs": "25.0.4", - "@rollup/plugin-node-resolve": "15.1.0", + "@rollup/plugin-node-resolve": "15.2.0", "@rollup/plugin-replace": "5.0.2", "@rollup/plugin-terser": "0.4.3", "@vaadin/avatar": "24.1.5", @@ -101,7 +101,7 @@ "@vaadin/tooltip": "24.1.5", "@zip.js/zip.js": "2.7.24", "axios": "1.4.0", - "electron": "25.5.0", + "electron": "26.0.0", "electron-builder": "24.6.3", "electron-packager": "17.1.1", "epml": "0.3.3", @@ -122,7 +122,7 @@ "shelljs": "0.8.5" }, "engines": { - "node": ">=18.15.0" + "node": ">=18.16.1" } }, "node_modules/@ampproject/remapping": { @@ -2709,9 +2709,9 @@ } }, "node_modules/@rollup/plugin-node-resolve": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.1.0.tgz", - "integrity": "sha512-xeZHCgsiZ9pzYVgAo9580eCGqwh/XCEUM9q6iQfGNocjgkufHAqC3exA+45URvhiYV8sBF9RlBai650eNs7AsA==", + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.0.tgz", + "integrity": "sha512-mKur03xNGT8O9ODO6FtT43ITGqHWZbKPdVJHZb+iV9QYcdlhUUB0wgknvA4KCUmC5oHJF6O2W1EgmyOQyVUI4Q==", "dev": true, "dependencies": { "@rollup/pluginutils": "^5.0.1", @@ -2777,9 +2777,9 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", - "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.3.tgz", + "integrity": "sha512-hfllNN4a80rwNQ9QCxhxuHCGHMAvabXqxNdaChUSSadMre7t4iEUI6fFAhBOn/eIYTgYVhBv7vCLsAJ4u3lf3g==", "dev": true, "dependencies": { "@types/estree": "^1.0.0", @@ -2835,9 +2835,9 @@ } }, "node_modules/@tiptap/extension-blockquote": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.0.4.tgz", - "integrity": "sha512-z5qfuLi04OgCBI6/odzB2vhulT/wpjymYOnON65vLXGZZbUw4cbPloykhqgWvQp+LzKH+HBhl4fz53d5CgnbOA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.1.1.tgz", + "integrity": "sha512-EK9mld4gYFhpNdabhvc7EMbhhFVrhaTZtTW17cCB3ONArMZx7ps8g+aKSdV5Ftdn/TxI3n4lQXazlIz1HQj+Zg==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2847,9 +2847,9 @@ } }, "node_modules/@tiptap/extension-bold": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.0.4.tgz", - "integrity": "sha512-CWSQy1uWkVsen8HUsqhm+oEIxJrCiCENABUbhaVcJL/MqhnP4Trrh1B6O00Yfoc0XToPRRibDaHMFs4A3MSO0g==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.1.1.tgz", + "integrity": "sha512-a65KDTkdEc+NUSm9YW+i568svRMwN4vOZ5L0lgEWXtENJok5vw25egrzW8bVVnJ9VE/CS2YOn2niBZMwdKTD7A==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2859,9 +2859,9 @@ } }, "node_modules/@tiptap/extension-bullet-list": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.0.4.tgz", - "integrity": "sha512-JSZKBVTaKSuLl5fR4EKE4dOINOrgeRHYA25Vj6cWjgdvpTw5ef7vcUdn9yP4JwTmLRI+VnnMlYL3rqigU3iZNg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.1.1.tgz", + "integrity": "sha512-ji7PbjNneZ7Jk+g2cMSwd8J1eJlTHYsrMUeRDxz4ZVxykDn97ur73wtx1FsEMKxxxNKeOlUayU6F6UE1Bwyv5g==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2871,9 +2871,9 @@ } }, "node_modules/@tiptap/extension-code": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.0.4.tgz", - "integrity": "sha512-HuwJSJkipZf4hkns9witv1CABNIPiB9C8lgAQXK4xJKcoUQChcnljEL+PQ2NqeEeMTEeV3nG3A/0QafH0pgTgg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.1.1.tgz", + "integrity": "sha512-zHu98cyrWau8a9DPaypFOKEnYRI6TLD8OC3odlo+3BC+RhmcFi+azM2bG9/ba+DUIlaxImZwK5BmpfXM7QvZ5A==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2883,9 +2883,9 @@ } }, "node_modules/@tiptap/extension-code-block": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.0.4.tgz", - "integrity": "sha512-In2tV3rgm/MznVF0N7qYsYugPWSzhZHaCRCWcFKNvllMExpo91bUWvk+hXaIhhPxvuqGIVezjybwrYuU3bJW0g==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.1.1.tgz", + "integrity": "sha512-Zt+la0WWAI4bz+Zv41w1ZY2rURS9etMIIsdnbDKgt3GHaNUhrc23hZAsTGKr9HjHv5I4vB2+593zRxBVdbs1qA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2896,9 +2896,9 @@ } }, "node_modules/@tiptap/extension-document": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.0.4.tgz", - "integrity": "sha512-mCj2fAhnNhIHttPSqfTPSSTGwClGaPYvhT56Ij/Pi4iCrWjPXzC4XnIkIHSS34qS2tJN4XJzr/z7lm3NeLkF1w==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.1.1.tgz", + "integrity": "sha512-t2OCJNFM9aU+z1AGQiZmWEWRvoFo/NyOCWHOlT5O9cqR/H+h/twlX76wfAJEAmtcP/HYYffkdlmVBjWFu8DVsQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2908,9 +2908,9 @@ } }, "node_modules/@tiptap/extension-dropcursor": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.0.4.tgz", - "integrity": "sha512-1OmKBv/E+nJo2vsosvu8KwFiBB+gZM1pY61qc7JbwEKHSYAxUFHfvLkIA0IQ53Z0DHMrFSKgWmHEcbnqtGevCA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.1.1.tgz", + "integrity": "sha512-gAaRrKA3LVIHAgoazmfZbFbLtmYPCk/1/C1N+ULmBbzWj7bCshGjhOlWgrDD/1uyc7HRMO8iRz6u1f6EqbHjmg==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2921,9 +2921,9 @@ } }, "node_modules/@tiptap/extension-gapcursor": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.0.4.tgz", - "integrity": "sha512-VxmKfBQjSSu1mNvHlydA4dJW/zawGKyqmnryiFNcUV9s+/HWLR5i9SiUl4wJM/B8sG8cQxClne5/LrCAeGNYuA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.1.1.tgz", + "integrity": "sha512-ObKdsvtCcGej+4XPoxd7gWFJJCWcVDN1E1zFluoRKaRLCsc8nNIj4C92FflVbhYzrwHJY6YUzhV3ZYF+AJejMQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2934,9 +2934,9 @@ } }, "node_modules/@tiptap/extension-hard-break": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.0.4.tgz", - "integrity": "sha512-4j8BZa6diuoRytWoIc7j25EYWWut5TZDLbb+OVURdkHnsF8B8zeNTo55W40CdwSaSyTtXtxbTIldV80ShQarGQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.1.1.tgz", + "integrity": "sha512-mfShnSb74U2nryl2Of3D7ej7+IzKHf5qD72kf3vljNlDf29Z2Vq+Jb5emNlj18/vnhBQIevTEeO1Plyfl0X+KQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2946,9 +2946,9 @@ } }, "node_modules/@tiptap/extension-heading": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.0.4.tgz", - "integrity": "sha512-EfitUbew5ljH3xVlBXAxqqcJ4rjv15b8379LYOV6KQCf+Y1wY0gy9Q8wXSnrsAagqrvqipja4Ihn3OZeyIM+CA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.1.1.tgz", + "integrity": "sha512-hITv6yWEm8MiYX9zNwwDxdPLsvWYz4Pp5jp/Owy4SmZpUcBNL1hJQ1tzHgJApv/odygGtjDrz0Al15ERRWOGnQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2970,9 +2970,9 @@ } }, "node_modules/@tiptap/extension-history": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.0.4.tgz", - "integrity": "sha512-3GAUszn1xZx3vniHMiX9BSKmfvb5QOb0oSLXInN+hx80CgJDIHqIFuhx2dyV9I/HWpa0cTxaLWj64kfDzb1JVg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.1.1.tgz", + "integrity": "sha512-YDGrqWvnWcXPNIqpFklc8Xm/bG451RLJEebYS1gZbaQ0QJ2MCGxyDFJvimE3Qf5FP08Ugjxn3q5xHDoVlX+9/g==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2983,9 +2983,9 @@ } }, "node_modules/@tiptap/extension-horizontal-rule": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.0.4.tgz", - "integrity": "sha512-OMx2ImQseKbSUjPbbRCuYGOJshxYedh9giWAqwgWWokhYkH4nGxXn5m7+Laj+1wLre4bnWgHWVY4wMGniEj3aw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.1.1.tgz", + "integrity": "sha512-iYV1J3FQHYU/v2dVf/GvXWdIns/wCZq+CHB2WIWXEuTaTt7GJEbNS3zzH2pAwuVUUG7xDyLaS9mON5LsnonPdQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3008,9 +3008,9 @@ } }, "node_modules/@tiptap/extension-italic": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.0.4.tgz", - "integrity": "sha512-C/6+qs4Jh8xERRP0wcOopA1+emK8MOkBE4RQx5NbPnT2iCpERP0GlmHBFQIjaYPctZgKFHxsCfRnneS5Xe76+A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.1.1.tgz", + "integrity": "sha512-4DzBx4nmnVqhLKvhbq2UZl80mAa3tHSuZ6lYJ4MCh3WIANc6e9XIGPZ2mmT8M51Tx8xwWBWUQukMN+uQFzMsVw==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3020,9 +3020,9 @@ } }, "node_modules/@tiptap/extension-list-item": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.0.4.tgz", - "integrity": "sha512-tSkbLgRo1QMNDJttWs9FeRywkuy5T2HdLKKfUcUNzT3s0q5AqIJl7VyimsBL4A6MUfN1qQMZCMHB4pM9Mkluww==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.1.1.tgz", + "integrity": "sha512-UikZsgcdgno5UWXn2TPGZeHi0mHxujw5gtaA6+x9j/oVjVPqevqg2uDilMkig+HrsTWwLVzntvnVsXdu2TneWw==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3032,9 +3032,9 @@ } }, "node_modules/@tiptap/extension-ordered-list": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.0.4.tgz", - "integrity": "sha512-Kfg+8k9p4iJCUKP/yIa18LfUpl9trURSMP/HX3/yQTz9Ul1vDrjxeFjSE5uWNvupcXRAM24js+aYrCmV7zpU+Q==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.1.1.tgz", + "integrity": "sha512-GxOnvAReBza9+r/tVBne/0b0Dp3/4vHb24TpKYFG1yLZzsEren6qqtForqEhzA/O74ar1WLl6bpcET0/wBAn0w==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3044,9 +3044,9 @@ } }, "node_modules/@tiptap/extension-paragraph": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.0.4.tgz", - "integrity": "sha512-nDxpopi9WigVqpfi8nU3B0fWYB14EMvKIkutNZo8wJvKGTZufNI8hw66wupIx/jZH1gFxEa5dHerw6aSYuWjgQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.1.1.tgz", + "integrity": "sha512-5H1nIBW6oKr90JKZI2BTCIlQShIMtO0dCUj/n0CI1pBhJOuGPz8HIVrcZlvYY42KRJQu6pWW3HfdvCiWFVqAzA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3069,9 +3069,9 @@ } }, "node_modules/@tiptap/extension-strike": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.0.4.tgz", - "integrity": "sha512-Men7LK6N/Dh3/G4/z2Z9WkDHM2Gxx1XyxYix2ZMf5CnqY37SeDNUnGDqit65pdIN3Y/TQnOZTkKSBilSAtXfJA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.1.1.tgz", + "integrity": "sha512-Ah1LAXn9ST0aynyxmbB3sd6ndnB0ltFRqFE9AoB4c7akwOHIlS3ovp90u4z2OUe2Bf0pJlMffYXur7TtqyM8hQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3081,9 +3081,9 @@ } }, "node_modules/@tiptap/extension-text": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.0.4.tgz", - "integrity": "sha512-i8/VFlVZh7TkAI49KKX5JmC0tM8RGwyg5zUpozxYbLdCOv07AkJt+E1fLJty9mqH4Y5HJMNnyNxsuZ9Ol/ySRA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.1.1.tgz", + "integrity": "sha512-cOjbaUo5IFRu7VxbncuIPNjekZbrgqOPE/HCuUVohNRwLbdCYqrvO76yk8N3D3j+RL6mSVISsOgqz6DNg/+mig==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -4322,9 +4322,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001520", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001520.tgz", - "integrity": "sha512-tahF5O9EiiTzwTUqAeFjIZbn4Dnqxzz7ktrgGlMYNLH43Ul26IgTMH/zvL3DG0lZxBYnlT04axvInszUsZULdA==", + "version": "1.0.30001521", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001521.tgz", + "integrity": "sha512-fnx1grfpEOvDGH+V17eccmNjucGUnCbP6KL+l5KqBIerp26WK/+RQ7CIDE37KGJjaPyqWXXlFUyKiWmvdNNKmQ==", "dev": true, "funding": [ { @@ -5030,9 +5030,9 @@ } }, "node_modules/electron": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/electron/-/electron-25.5.0.tgz", - "integrity": "sha512-w1DNj1LuAk0Vaas1rQ0pAkTe2gZ5YG75J27mC2m88y0G6Do5b5YoFDaF84fOGQHeQ4j8tC5LngSgWhbwmqDlrw==", + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-26.0.0.tgz", + "integrity": "sha512-x57bdCaDvgnlc41VOm/UWihJCCiI3OxJKiBgB/e5F7Zd6avo+61mO6IzQS7Bu/k/a1KPjou25EUORR6UPKznBQ==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -5433,9 +5433,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.490", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.490.tgz", - "integrity": "sha512-6s7NVJz+sATdYnIwhdshx/N/9O6rvMxmhVoDSDFdj6iA45gHR8EQje70+RYsF4GeB+k0IeNSBnP7yG9ZXJFr7A==", + "version": "1.4.494", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.494.tgz", + "integrity": "sha512-KF7wtsFFDu4ws1ZsSOt4pdmO1yWVNWCFtijVYZPUeW4SV7/hy/AESjLn/+qIWgq7mHscNOKAwN5AIM1+YAy+Ww==", "dev": true }, "node_modules/electron-updater": { @@ -7731,9 +7731,9 @@ } }, "node_modules/prosemirror-menu": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.2.2.tgz", - "integrity": "sha512-437HIWTq4F9cTX+kPfqZWWm+luJm95Aut/mLUy+9OMrOml0bmWDS26ceC6SNfb2/S94et1sZ186vLO7pDHzxSw==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.2.3.tgz", + "integrity": "sha512-13H9+XvdJiUt2vQVMqCveFbc7YfEKR3g70pUwuQdQLwuvNfVGTzMHr1y5dwdY5vOBQbzhmjgnWUnclKzMdnlJA==", "dependencies": { "crelt": "^1.0.0", "prosemirror-commands": "^1.0.0", diff --git a/package.json b/package.json index 925b6706..5d9e29f8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "qortal-ui", - "version": "4.3.1", + "version": "4.3.2", "description": "Qortal Project - decentralize the world - Data storage, communications, web hosting, decentralized trading, complete infrastructure for the future blockchain-based Internet", "keywords": [ "QORT", @@ -72,7 +72,7 @@ }, "devDependencies": { "axios": "1.4.0", - "electron": "25.5.0", + "electron": "26.0.0", "electron-builder": "24.6.3", "electron-packager": "17.1.1", "epml": "0.3.3", @@ -131,7 +131,7 @@ "@rollup/plugin-alias": "5.0.0", "@rollup/plugin-babel": "6.0.3", "@rollup/plugin-commonjs": "25.0.4", - "@rollup/plugin-node-resolve": "15.1.0", + "@rollup/plugin-node-resolve": "15.2.0", "@rollup/plugin-replace": "5.0.2", "@rollup/plugin-terser": "0.4.3", "@vaadin/avatar": "24.1.5", @@ -143,6 +143,6 @@ "@zip.js/zip.js": "2.7.24" }, "engines": { - "node": ">=18.15.0" + "node": ">=18.16.1" } } From ec34b0137a8f29c21c783c933d3529822d498a3b Mon Sep 17 00:00:00 2001 From: Phillip Date: Thu, 17 Aug 2023 22:14:58 -0500 Subject: [PATCH 18/31] publish with only fee, removed gif --- core/src/components/app-view.js | 3 +- plugins/plugins/core/components/ChatPage.js | 1027 +++++++++-------- .../plugins/core/components/ChatTextEditor.js | 15 - .../core/messaging/q-chat/q-chat.src.js | 5 +- .../plugins/core/qdn/browser/browser.src.js | 13 +- .../plugins/core/qdn/publish/publish.src.js | 29 +- plugins/plugins/utils/publish-modal.css | 147 +++ plugins/plugins/utils/publish-modal.js | 263 +++++ 8 files changed, 977 insertions(+), 525 deletions(-) create mode 100644 plugins/plugins/utils/publish-modal.css create mode 100644 plugins/plugins/utils/publish-modal.js diff --git a/core/src/components/app-view.js b/core/src/components/app-view.js index 3c433c11..08b9c019 100644 --- a/core/src/components/app-view.js +++ b/core/src/components/app-view.js @@ -3047,4 +3047,5 @@ class AppView extends connect(store)(LitElement) { } } -window.customElements.define('app-view', AppView) \ No newline at end of file +window.customElements.define('app-view', AppView) + diff --git a/plugins/plugins/core/components/ChatPage.js b/plugins/plugins/core/components/ChatPage.js index c11f2aa8..d354e719 100644 --- a/plugins/plugins/core/components/ChatPage.js +++ b/plugins/plugins/core/components/ChatPage.js @@ -1443,14 +1443,14 @@ class ChatPage extends LitElement { ` : ''}
- this.setGifsLoading(val)} .sendMessage=${(val) => this._sendMessage(val)} .setOpenGifModal=${(val) => this.setOpenGifModal(val)}> - + -->
@@ -3135,511 +3135,552 @@ class ChatPage extends LitElement { } async _sendMessage(outSideMsg, msg) { - if (this.isReceipient) { - let hasPublicKey = true - if (!this._publicKey.hasPubKey) { - hasPublicKey = false - try { - const res = await parentEpml.request('apiCall', { - type: 'api', - url: `/addresses/publickey/${this.selectedAddress.address}` - }) - if (res.error === 102) { - this._publicKey.key = '' - this._publicKey.hasPubKey = false - } else if (res !== false) { - this._publicKey.key = res - this._publicKey.hasPubKey = true - hasPublicKey = true - } else { - this._publicKey.key = '' - this._publicKey.hasPubKey = false + console.log({outSideMsg, msg}) + try { + if (this.isReceipient) { + let hasPublicKey = true + if (!this._publicKey.hasPubKey) { + hasPublicKey = false + try { + const res = await parentEpml.request('apiCall', { + type: 'api', + url: `/addresses/publickey/${this.selectedAddress.address}` + }) + if (res.error === 102) { + this._publicKey.key = '' + this._publicKey.hasPubKey = false + } else if (res !== false) { + this._publicKey.key = res + this._publicKey.hasPubKey = true + hasPublicKey = true + } else { + this._publicKey.key = '' + this._publicKey.hasPubKey = false + } + } catch (error) { } - } catch (error) { + + if (!hasPublicKey || !this._publicKey.hasPubKey) { + let err4string = get("chatpage.cchange39") + parentEpml.request('showSnackBar', `${err4string}`) + return + } + } - - if (!hasPublicKey || !this._publicKey.hasPubKey) { - let err4string = get("chatpage.cchange39") - parentEpml.request('showSnackBar', `${err4string}`) + } + // have params to determine if it's a reply or not + // have variable to determine if it's a response, holds signature in constructor + // need original message signature + // need whole original message object, transform the data and put it in local storage + // create new var called repliedToData and use that to modify the UI + // find specific object property in local + let typeMessage = 'regular' + this.isLoading = true + const trimmedMessage = msg + + const getName = async (recipient) => { + try { + const getNames = await parentEpml.request("apiCall", { + type: "api", + url: `/names/address/${recipient}` + }) + + if (Array.isArray(getNames) && getNames.length > 0) { + return getNames[0].name + } else { + return '' + } + + } catch (error) { + return "" + } + } + + if (outSideMsg && outSideMsg.type === 'delete') { + this.isDeletingImage = true + const userName = outSideMsg.name + const identifier = outSideMsg.identifier + let compressedFile = '' + var str = "iVBORw0KGgoAAAANSUhEUgAAAsAAAAGMAQMAAADuk4YmAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAADlJREFUeF7twDEBAAAAwiD7p7bGDlgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAGJrAABgPqdWQAAAABJRU5ErkJggg==" + + if (this.webWorkerFile) { + this.webWorkerFile.terminate() + this.webWorkerFile = null + } + + this.webWorkerFile = new WebWorkerFile() + + const b64toBlob = (b64Data, contentType = '', sliceSize = 512) => { + const byteCharacters = atob(b64Data) + const byteArrays = [] + + for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) { + const slice = byteCharacters.slice(offset, offset + sliceSize) + + const byteNumbers = new Array(slice.length) + for (let i = 0; i < slice.length; i++) { + byteNumbers[i] = slice.charCodeAt(i) + } + + const byteArray = new Uint8Array(byteNumbers) + byteArrays.push(byteArray) + } + + const blob = new Blob(byteArrays, { type: contentType }) + return blob + } + const blob = b64toBlob(str, 'image/png') + await new Promise(resolve => { + new Compressor(blob, { + quality: 0.6, + maxWidth: 500, + success(result) { + const file = new File([result], "name", { + type: 'image/png' + }) + + compressedFile = file + resolve() + }, + error(err) { + }, + }) + }) + const arbitraryFeeData = await modalHelper.getArbitraryFee() + const res = await modalHelper.showModalAndWaitPublish( + { + feeAmount: arbitraryFeeData.feeToShow + } + ); + if (res.action !== 'accept') throw new Error('User declined publish') + try { + await publishData({ + registeredName: userName, + file: compressedFile, + service: 'QCHAT_IMAGE', + identifier: identifier, + parentEpml, + metaData: undefined, + uploadType: 'file', + selectedAddress: this.selectedAddress, + worker: this.webWorkerFile + }) + this.isDeletingImage = false + } catch (error) { + this.isLoading = false return } - - } - } - // have params to determine if it's a reply or not - // have variable to determine if it's a response, holds signature in constructor - // need original message signature - // need whole original message object, transform the data and put it in local storage - // create new var called repliedToData and use that to modify the UI - // find specific object property in local - let typeMessage = 'regular' - this.isLoading = true - const trimmedMessage = msg - - const getName = async (recipient) => { - try { - const getNames = await parentEpml.request("apiCall", { - type: "api", - url: `/names/address/${recipient}` - }) - - if (Array.isArray(getNames) && getNames.length > 0) { - return getNames[0].name - } else { - return '' + typeMessage = 'edit' + let chatReference = outSideMsg.editedMessageObj.signature + + if (outSideMsg.editedMessageObj.chatReference) { + chatReference = outSideMsg.editedMessageObj.chatReference } - - } catch (error) { - return "" - } - } - - if (outSideMsg && outSideMsg.type === 'delete') { - this.isDeletingImage = true - const userName = outSideMsg.name - const identifier = outSideMsg.identifier - let compressedFile = '' - var str = "iVBORw0KGgoAAAANSUhEUgAAAsAAAAGMAQMAAADuk4YmAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAADlJREFUeF7twDEBAAAAwiD7p7bGDlgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAGJrAABgPqdWQAAAABJRU5ErkJggg==" - - if (this.webWorkerFile) { - this.webWorkerFile.terminate() - this.webWorkerFile = null - } - - this.webWorkerFile = new WebWorkerFile() - - const b64toBlob = (b64Data, contentType = '', sliceSize = 512) => { - const byteCharacters = atob(b64Data) - const byteArrays = [] - - for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) { - const slice = byteCharacters.slice(offset, offset + sliceSize) - - const byteNumbers = new Array(slice.length) - for (let i = 0; i < slice.length; i++) { - byteNumbers[i] = slice.charCodeAt(i) + + let message = "" + try { + const parsedMessageObj = JSON.parse(outSideMsg.editedMessageObj.decodedMessage) + message = parsedMessageObj + } catch (error) { + message = outSideMsg.editedMessageObj.decodedMessage + } + const messageObject = { + ...message, + isImageDeleted: true + } + const stringifyMessageObject = JSON.stringify(messageObject) + this.sendMessage(stringifyMessageObject, typeMessage, chatReference) + } else if (outSideMsg && outSideMsg.type === 'deleteAttachment') { + this.isDeletingAttachment = true + let compressedFile = '' + var str = "iVBORw0KGgoAAAANSUhEUgAAAsAAAAGMAQMAAADuk4YmAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAADlJREFUeF7twDEBAAAAwiD7p7bGDlgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAGJrAABgPqdWQAAAABJRU5ErkJggg==" + const userName = outSideMsg.name + const identifier = outSideMsg.identifier + + if (this.webWorkerFile) { + this.webWorkerFile.terminate() + this.webWorkerFile = null + } + + this.webWorkerFile = new WebWorkerFile() + + const b64toBlob = (b64Data, contentType = '', sliceSize = 512) => { + const byteCharacters = atob(b64Data) + const byteArrays = [] + + for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) { + const slice = byteCharacters.slice(offset, offset + sliceSize) + + const byteNumbers = new Array(slice.length) + for (let i = 0; i < slice.length; i++) { + byteNumbers[i] = slice.charCodeAt(i) + } + + const byteArray = new Uint8Array(byteNumbers) + byteArrays.push(byteArray) } - - const byteArray = new Uint8Array(byteNumbers) - byteArrays.push(byteArray) + + const blob = new Blob(byteArrays, { type: contentType }) + return blob } - - const blob = new Blob(byteArrays, { type: contentType }) - return blob - } - const blob = b64toBlob(str, 'image/png') - await new Promise(resolve => { - new Compressor(blob, { - quality: 0.6, - maxWidth: 500, - success(result) { - const file = new File([result], "name", { - type: 'image/png' - }) - - compressedFile = file - resolve() - }, - error(err) { - }, - }) - }) - try { - await publishData({ - registeredName: userName, - file: compressedFile, - service: 'QCHAT_IMAGE', - identifier: identifier, - parentEpml, - metaData: undefined, - uploadType: 'file', - selectedAddress: this.selectedAddress, - worker: this.webWorkerFile - }) - this.isDeletingImage = false - } catch (error) { - this.isLoading = false - return - } - typeMessage = 'edit' - let chatReference = outSideMsg.editedMessageObj.signature - - if (outSideMsg.editedMessageObj.chatReference) { - chatReference = outSideMsg.editedMessageObj.chatReference - } - - let message = "" - try { - const parsedMessageObj = JSON.parse(outSideMsg.editedMessageObj.decodedMessage) - message = parsedMessageObj - } catch (error) { - message = outSideMsg.editedMessageObj.decodedMessage - } - const messageObject = { - ...message, - isImageDeleted: true - } - const stringifyMessageObject = JSON.stringify(messageObject) - this.sendMessage(stringifyMessageObject, typeMessage, chatReference) - } else if (outSideMsg && outSideMsg.type === 'deleteAttachment') { - this.isDeletingAttachment = true - let compressedFile = '' - var str = "iVBORw0KGgoAAAANSUhEUgAAAsAAAAGMAQMAAADuk4YmAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAADlJREFUeF7twDEBAAAAwiD7p7bGDlgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAGJrAABgPqdWQAAAABJRU5ErkJggg==" - const userName = outSideMsg.name - const identifier = outSideMsg.identifier - - if (this.webWorkerFile) { - this.webWorkerFile.terminate() - this.webWorkerFile = null - } - - this.webWorkerFile = new WebWorkerFile() - - const b64toBlob = (b64Data, contentType = '', sliceSize = 512) => { - const byteCharacters = atob(b64Data) - const byteArrays = [] - - for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) { - const slice = byteCharacters.slice(offset, offset + sliceSize) - - const byteNumbers = new Array(slice.length) - for (let i = 0; i < slice.length; i++) { - byteNumbers[i] = slice.charCodeAt(i) - } - - const byteArray = new Uint8Array(byteNumbers) - byteArrays.push(byteArray) - } - - const blob = new Blob(byteArrays, { type: contentType }) - return blob - } - - const blob = b64toBlob(str, 'image/png') - await new Promise(resolve => { - new Compressor(blob, { - quality: 0.6, - maxWidth: 500, - success(result) { - const file = new File([result], "name", { - type: 'image/png' - }) - - compressedFile = file - resolve() - }, - error(err) { - }, - }) - }) - - try { - await publishData({ - registeredName: userName, - file: compressedFile, - service: 'QCHAT_ATTACHMENT', - identifier: identifier, - parentEpml, - metaData: undefined, - uploadType: 'file', - selectedAddress: this.selectedAddress, - worker: this.webWorkerFile - }) - this.isDeletingAttachment = false - } catch (error) { - this.isLoading = false - return - } - typeMessage = 'edit' - let chatReference = outSideMsg.editedMessageObj.signature - - if (outSideMsg.editedMessageObj.chatReference) { - chatReference = outSideMsg.editedMessageObj.chatReference - } - - let message = "" - try { - const parsedMessageObj = JSON.parse(outSideMsg.editedMessageObj.decodedMessage) - message = parsedMessageObj - - } catch (error) { - message = outSideMsg.editedMessageObj.decodedMessage - } - const messageObject = { - ...message, - isAttachmentDeleted: true - } - const stringifyMessageObject = JSON.stringify(messageObject) - this.sendMessage(stringifyMessageObject, typeMessage, chatReference) - } else if (outSideMsg && outSideMsg.type === 'image') { - this.isUploadingImage = true - const userName = await getName(this.selectedAddress.address) - if (!userName) { - parentEpml.request('showSnackBar', get("chatpage.cchange27")) - this.isLoading = false - this.isUploadingImage = false - this.imageFile = null - return - } - - if (this.webWorkerFile) { - this.webWorkerFile.terminate() - this.webWorkerFile = null - } - - this.webWorkerFile = new WebWorkerFile() - - const image = this.imageFile - const id = this.uid() - const identifier = `qchat_${id}` - let compressedFile = '' - await new Promise(resolve => { - new Compressor(image, { - quality: .6, - maxWidth: 1200, - success(result) { - const file = new File([result], "name", { - type: image.type - }) - compressedFile = file - resolve() - }, - error(err) { - }, - }) - }) - const fileSize = compressedFile.size - if (fileSize > 500000) { - parentEpml.request('showSnackBar', get("chatpage.cchange26")) - this.isLoading = false - this.isUploadingImage = false - return - } - try { - await publishData({ - registeredName: userName, - file: compressedFile, - service: 'QCHAT_IMAGE', - identifier: identifier, - parentEpml, - metaData: undefined, - uploadType: 'file', - selectedAddress: this.selectedAddress, - worker: this.webWorkerFile - }) - this.isUploadingImage = false - this.removeImage() - } catch (error) { - this.isLoading = false - this.isUploadingImage = false - return - } - - const messageObject = { - messageText: trimmedMessage, - images: [{ - service: "QCHAT_IMAGE", - name: userName, - identifier: identifier - }], - isImageDeleted: false, - repliedTo: '', - version: 3 - } - const stringifyMessageObject = JSON.stringify(messageObject) - this.sendMessage(stringifyMessageObject, typeMessage) - } else if (outSideMsg && outSideMsg.type === 'gif') { - const userName = await getName(this.selectedAddress.address) - if (!userName) { - parentEpml.request('showSnackBar', get("chatpage.cchange27")) - this.isLoading = false - return - } - - const messageObject = { - messageText: '', - gifs: [{ - service: outSideMsg.service, - name: outSideMsg.name, - identifier: outSideMsg.identifier, - filePath: outSideMsg.filePath - }], - repliedTo: '', - version: 3 - } - const stringifyMessageObject = JSON.stringify(messageObject) - this.sendMessage(stringifyMessageObject, typeMessage) - } else if (outSideMsg && outSideMsg.type === 'attachment') { - this.isUploadingAttachment = true - const userName = await getName(this.selectedAddress.address) - if (!userName) { - parentEpml.request('showSnackBar', get("chatpage.cchange27")) - this.isLoading = false - return - } - - if (this.webWorkerFile) { - this.webWorkerFile.terminate() - this.webWorkerFile = null - } - - this.webWorkerFile = new WebWorkerFile() - - const attachment = this.attachment - const id = this.uid() - const identifier = `qchat_${id}` - const fileSize = attachment.size - if (fileSize > 1000000) { - parentEpml.request('showSnackBar', get("chatpage.cchange77")) - this.isLoading = false - this.isUploadingAttachment = false - return - } - try { - await publishData({ - registeredName: userName, - file: attachment, - service: 'QCHAT_ATTACHMENT', - identifier: identifier, - parentEpml, - metaData: undefined, - uploadType: 'file', - selectedAddress: this.selectedAddress, - worker: this.webWorkerFile - }) - this.isUploadingAttachment = false - this.removeAttachment() - } catch (error) { - this.isLoading = false - this.isUploadingAttachment = false - return - } - const messageObject = { - messageText: trimmedMessage, - attachments: [{ - service: 'QCHAT_ATTACHMENT', - name: userName, - identifier: identifier, - attachmentName: attachment.name, - attachmentSize: attachment.size - }], - isAttachmentDeleted: false, - repliedTo: '', - version: 3 - } - const stringifyMessageObject = JSON.stringify(messageObject) - this.sendMessage(stringifyMessageObject, typeMessage) - } else if (outSideMsg && outSideMsg.type === 'reaction') { - const userName = await getName(this.selectedAddress.address) - typeMessage = 'edit' - let chatReference = outSideMsg.editedMessageObj.signature - - if (outSideMsg.editedMessageObj.chatReference) { - chatReference = outSideMsg.editedMessageObj.chatReference - } - - let message = "" - - try { - const parsedMessageObj = JSON.parse(outSideMsg.editedMessageObj.decodedMessage) - message = parsedMessageObj - } catch (error) { - message = outSideMsg.editedMessageObj.decodedMessage - } - - let reactions = message.reactions || [] - const findEmojiIndex = reactions.findIndex((reaction) => reaction.type === outSideMsg.reaction) - if (findEmojiIndex !== -1) { - let users = reactions[findEmojiIndex].users || [] - const findUserIndex = users.findIndex((user) => user.address === this.selectedAddress.address) - if (findUserIndex !== -1) { - users.splice(findUserIndex, 1) - } else { - users.push({ - address: this.selectedAddress.address, - name: userName + + const blob = b64toBlob(str, 'image/png') + await new Promise(resolve => { + new Compressor(blob, { + quality: 0.6, + maxWidth: 500, + success(result) { + const file = new File([result], "name", { + type: 'image/png' + }) + + compressedFile = file + resolve() + }, + error(err) { + }, }) + }) + const arbitraryFeeData = await modalHelper.getArbitraryFee() + const res = await modalHelper.showModalAndWaitPublish( + { + feeAmount: arbitraryFeeData.feeToShow + } + ); + if (res.action !== 'accept') throw new Error('User declined publish') + try { + await publishData({ + registeredName: userName, + file: compressedFile, + service: 'QCHAT_ATTACHMENT', + identifier: identifier, + parentEpml, + metaData: undefined, + uploadType: 'file', + selectedAddress: this.selectedAddress, + worker: this.webWorkerFile + }) + this.isDeletingAttachment = false + } catch (error) { + this.isLoading = false + return } - reactions[findEmojiIndex] = { - ...reactions[findEmojiIndex], - qty: users.length, - users + typeMessage = 'edit' + let chatReference = outSideMsg.editedMessageObj.signature + + if (outSideMsg.editedMessageObj.chatReference) { + chatReference = outSideMsg.editedMessageObj.chatReference } - if (users.length === 0) { - reactions.splice(findEmojiIndex, 1) + + let message = "" + try { + const parsedMessageObj = JSON.parse(outSideMsg.editedMessageObj.decodedMessage) + message = parsedMessageObj + + } catch (error) { + message = outSideMsg.editedMessageObj.decodedMessage } - } else { - reactions = [...reactions, { - type: outSideMsg.reaction, - qty: 1, - users: [{ - address: this.selectedAddress.address, - name: userName - }] - }] - } - const messageObject = { - ...message, - reactions - } - const stringifyMessageObject = JSON.stringify(messageObject) - this.sendMessage(stringifyMessageObject, typeMessage, chatReference) - } else if (/^\s*$/.test(trimmedMessage)) { - this.isLoading = false - } else if (this.repliedToMessageObj) { - let chatReference = this.repliedToMessageObj.signature - if (this.repliedToMessageObj.chatReference) { - chatReference = this.repliedToMessageObj.chatReference - } - typeMessage = 'reply' - const messageObject = { - messageText: trimmedMessage, - images: [''], - repliedTo: chatReference, - version: 3 - } - const stringifyMessageObject = JSON.stringify(messageObject) - this.sendMessage(stringifyMessageObject, typeMessage) - } else if (this.editedMessageObj) { - typeMessage = 'edit' - let chatReference = this.editedMessageObj.signature - - if (this.editedMessageObj.chatReference) { - chatReference = this.editedMessageObj.chatReference - } - - let message = "" - try { - const parsedMessageObj = JSON.parse(this.editedMessageObj.decodedMessage) - message = parsedMessageObj - - } catch (error) { - message = this.editedMessageObj.decodedMessage - } - const messageObject = { - ...message, - messageText: trimmedMessage, - isEdited: true - } - const stringifyMessageObject = JSON.stringify(messageObject) - this.sendMessage(stringifyMessageObject, typeMessage, chatReference) - } else { - const messageObject = { - messageText: trimmedMessage, - images: [''], - repliedTo: '', - version: 3 - } - const stringifyMessageObject = JSON.stringify(messageObject) - - if (this.balance < 4) { - this.myTrimmedMeassage = '' - this.myTrimmedMeassage = stringifyMessageObject - this.shadowRoot.getElementById('confirmDialog').open() - } else { + const messageObject = { + ...message, + isAttachmentDeleted: true + } + const stringifyMessageObject = JSON.stringify(messageObject) + this.sendMessage(stringifyMessageObject, typeMessage, chatReference) + } else if (outSideMsg && outSideMsg.type === 'image') { + this.isUploadingImage = true + const userName = await getName(this.selectedAddress.address) + if (!userName) { + parentEpml.request('showSnackBar', get("chatpage.cchange27")) + this.isLoading = false + this.isUploadingImage = false + this.imageFile = null + return + } + const arbitraryFeeData = await modalHelper.getArbitraryFee() + console.log('updated') + const res = await modalHelper.showModalAndWaitPublish( + { + feeAmount: arbitraryFeeData.feeToShow + } + ); + console.log({res}) + if (res.action !== 'accept') throw new Error('User declined publish') + + if (this.webWorkerFile) { + this.webWorkerFile.terminate() + this.webWorkerFile = null + } + + this.webWorkerFile = new WebWorkerFile() + + const image = this.imageFile + const id = this.uid() + const identifier = `qchat_${id}` + let compressedFile = '' + await new Promise(resolve => { + new Compressor(image, { + quality: .6, + maxWidth: 1200, + success(result) { + const file = new File([result], "name", { + type: image.type + }) + compressedFile = file + resolve() + }, + error(err) { + }, + }) + }) + const fileSize = compressedFile.size + if (fileSize > 500000) { + parentEpml.request('showSnackBar', get("chatpage.cchange26")) + this.isLoading = false + this.isUploadingImage = false + return + } + + try { + + await publishData({ + registeredName: userName, + file: compressedFile, + service: 'QCHAT_IMAGE', + identifier: identifier, + parentEpml, + metaData: undefined, + uploadType: 'file', + selectedAddress: this.selectedAddress, + worker: this.webWorkerFile, + withFee: true, + feeAmount: arbitraryFeeData.fee + }) + this.isUploadingImage = false + this.removeImage() + } catch (error) { + this.isLoading = false + this.isUploadingImage = false + return + } + + const messageObject = { + messageText: trimmedMessage, + images: [{ + service: "QCHAT_IMAGE", + name: userName, + identifier: identifier + }], + isImageDeleted: false, + repliedTo: '', + version: 3 + } + const stringifyMessageObject = JSON.stringify(messageObject) this.sendMessage(stringifyMessageObject, typeMessage) + } else if (outSideMsg && outSideMsg.type === 'gif') { + const userName = await getName(this.selectedAddress.address) + if (!userName) { + parentEpml.request('showSnackBar', get("chatpage.cchange27")) + this.isLoading = false + return + } + + const messageObject = { + messageText: '', + gifs: [{ + service: outSideMsg.service, + name: outSideMsg.name, + identifier: outSideMsg.identifier, + filePath: outSideMsg.filePath + }], + repliedTo: '', + version: 3 + } + const stringifyMessageObject = JSON.stringify(messageObject) + this.sendMessage(stringifyMessageObject, typeMessage) + } else if (outSideMsg && outSideMsg.type === 'attachment') { + this.isUploadingAttachment = true + const userName = await getName(this.selectedAddress.address) + if (!userName) { + parentEpml.request('showSnackBar', get("chatpage.cchange27")) + this.isLoading = false + return + } + + if (this.webWorkerFile) { + this.webWorkerFile.terminate() + this.webWorkerFile = null + } + + this.webWorkerFile = new WebWorkerFile() + + const attachment = this.attachment + const id = this.uid() + const identifier = `qchat_${id}` + const fileSize = attachment.size + if (fileSize > 1000000) { + parentEpml.request('showSnackBar', get("chatpage.cchange77")) + this.isLoading = false + this.isUploadingAttachment = false + return + } + const arbitraryFeeData = await modalHelper.getArbitraryFee() + const res = await modalHelper.showModalAndWaitPublish( + { + feeAmount: arbitraryFeeData.feeToShow + } + ); + if (res.action !== 'accept') throw new Error('User declined publish') + try { + await publishData({ + registeredName: userName, + file: attachment, + service: 'QCHAT_ATTACHMENT', + identifier: identifier, + parentEpml, + metaData: undefined, + uploadType: 'file', + selectedAddress: this.selectedAddress, + worker: this.webWorkerFile + }) + this.isUploadingAttachment = false + this.removeAttachment() + } catch (error) { + this.isLoading = false + this.isUploadingAttachment = false + return + } + const messageObject = { + messageText: trimmedMessage, + attachments: [{ + service: 'QCHAT_ATTACHMENT', + name: userName, + identifier: identifier, + attachmentName: attachment.name, + attachmentSize: attachment.size + }], + isAttachmentDeleted: false, + repliedTo: '', + version: 3 + } + const stringifyMessageObject = JSON.stringify(messageObject) + this.sendMessage(stringifyMessageObject, typeMessage) + } else if (outSideMsg && outSideMsg.type === 'reaction') { + const userName = await getName(this.selectedAddress.address) + typeMessage = 'edit' + let chatReference = outSideMsg.editedMessageObj.signature + + if (outSideMsg.editedMessageObj.chatReference) { + chatReference = outSideMsg.editedMessageObj.chatReference + } + + let message = "" + + try { + const parsedMessageObj = JSON.parse(outSideMsg.editedMessageObj.decodedMessage) + message = parsedMessageObj + } catch (error) { + message = outSideMsg.editedMessageObj.decodedMessage + } + + let reactions = message.reactions || [] + const findEmojiIndex = reactions.findIndex((reaction) => reaction.type === outSideMsg.reaction) + if (findEmojiIndex !== -1) { + let users = reactions[findEmojiIndex].users || [] + const findUserIndex = users.findIndex((user) => user.address === this.selectedAddress.address) + if (findUserIndex !== -1) { + users.splice(findUserIndex, 1) + } else { + users.push({ + address: this.selectedAddress.address, + name: userName + }) + } + reactions[findEmojiIndex] = { + ...reactions[findEmojiIndex], + qty: users.length, + users + } + if (users.length === 0) { + reactions.splice(findEmojiIndex, 1) + } + } else { + reactions = [...reactions, { + type: outSideMsg.reaction, + qty: 1, + users: [{ + address: this.selectedAddress.address, + name: userName + }] + }] + } + const messageObject = { + ...message, + reactions + } + const stringifyMessageObject = JSON.stringify(messageObject) + this.sendMessage(stringifyMessageObject, typeMessage, chatReference) + } else if (/^\s*$/.test(trimmedMessage)) { + this.isLoading = false + } else if (this.repliedToMessageObj) { + let chatReference = this.repliedToMessageObj.signature + if (this.repliedToMessageObj.chatReference) { + chatReference = this.repliedToMessageObj.chatReference + } + typeMessage = 'reply' + const messageObject = { + messageText: trimmedMessage, + images: [''], + repliedTo: chatReference, + version: 3 + } + const stringifyMessageObject = JSON.stringify(messageObject) + this.sendMessage(stringifyMessageObject, typeMessage) + } else if (this.editedMessageObj) { + typeMessage = 'edit' + let chatReference = this.editedMessageObj.signature + + if (this.editedMessageObj.chatReference) { + chatReference = this.editedMessageObj.chatReference + } + + let message = "" + try { + const parsedMessageObj = JSON.parse(this.editedMessageObj.decodedMessage) + message = parsedMessageObj + + } catch (error) { + message = this.editedMessageObj.decodedMessage + } + const messageObject = { + ...message, + messageText: trimmedMessage, + isEdited: true + } + const stringifyMessageObject = JSON.stringify(messageObject) + this.sendMessage(stringifyMessageObject, typeMessage, chatReference) + } else { + const messageObject = { + messageText: trimmedMessage, + images: [''], + repliedTo: '', + version: 3 + } + const stringifyMessageObject = JSON.stringify(messageObject) + + if (this.balance < 4) { + this.myTrimmedMeassage = '' + this.myTrimmedMeassage = stringifyMessageObject + this.shadowRoot.getElementById('confirmDialog').open() + } else { + this.sendMessage(stringifyMessageObject, typeMessage) + } } + } catch (error) { + this.isLoading = false + this.isUploadingImage = false + return } + } async sendMessage(messageText, typeMessage, chatReference, isForward) { diff --git a/plugins/plugins/core/components/ChatTextEditor.js b/plugins/plugins/core/components/ChatTextEditor.js index 123df641..b13dc72f 100644 --- a/plugins/plugins/core/components/ChatTextEditor.js +++ b/plugins/plugins/core/components/ChatTextEditor.js @@ -506,21 +506,6 @@ mwc-checkbox::shadow .mdc-checkbox::after, mwc-checkbox::shadow .mdc-checkbox::b - ${this.setOpenGifModal ? - html` - - ` - : ''} ${this.editedMessageObj ? ( html`
diff --git a/plugins/plugins/core/messaging/q-chat/q-chat.src.js b/plugins/plugins/core/messaging/q-chat/q-chat.src.js index 1f60e079..ca9540a8 100644 --- a/plugins/plugins/core/messaging/q-chat/q-chat.src.js +++ b/plugins/plugins/core/messaging/q-chat/q-chat.src.js @@ -26,11 +26,12 @@ import '@material/mwc-icon' import '@material/mwc-snackbar' import '@polymer/paper-spinner/paper-spinner-lite.js' import '@vaadin/grid' +import { ModalHelper } from '../../../utils/publish-modal.js' passiveSupport({ events: ['touchstart'] }) const parentEpml = new Epml({ type: 'WINDOW', source: window.parent }) - +export const modalHelper = new ModalHelper(); class Chat extends LitElement { static get properties() { return { @@ -910,4 +911,4 @@ class Chat extends LitElement { } } -window.customElements.define('q-chat', Chat) +window.customElements.define('q-chat', Chat) \ No newline at end of file diff --git a/plugins/plugins/core/qdn/browser/browser.src.js b/plugins/plugins/core/qdn/browser/browser.src.js index 3dfad150..02b8aa9b 100644 --- a/plugins/plugins/core/qdn/browser/browser.src.js +++ b/plugins/plugins/core/qdn/browser/browser.src.js @@ -3027,10 +3027,7 @@ async function showModalAndWait(type, data) { `).join('')}
- - +
` : ''} @@ -3043,10 +3040,7 @@ async function showModalAndWait(type, data) {
- - +
` : ''} @@ -3118,7 +3112,8 @@ async function showModalAndWait(type, data) { const userData = {}; if (type === actions.PUBLISH_QDN_RESOURCE || type === actions.PUBLISH_MULTIPLE_QDN_RESOURCES) { const isWithFeeCheckbox = modal.querySelector('#isWithFee'); - userData.isWithFee = isWithFeeCheckbox.checked; + // userData.isWithFee = isWithFeeCheckbox.checked; + userData.isWithFee = true } if (modal.parentNode === document.body) { document.body.removeChild(modal); diff --git a/plugins/plugins/core/qdn/publish/publish.src.js b/plugins/plugins/core/qdn/publish/publish.src.js index 77b99317..a4662628 100644 --- a/plugins/plugins/core/qdn/publish/publish.src.js +++ b/plugins/plugins/core/qdn/publish/publish.src.js @@ -14,8 +14,10 @@ import '@material/mwc-select' import '@material/mwc-dialog' import '@material/mwc-list/mwc-list-item.js' import '@polymer/paper-progress/paper-progress.js' +import { ModalHelper } from '../../../utils/publish-modal' const parentEpml = new Epml({ type: 'WINDOW', source: window.parent }) +const modalHelper = new ModalHelper(); class PublishData extends LitElement { static get properties() { @@ -299,8 +301,10 @@ class PublishData extends LitElement {

${this.successMessage}

${this.loading ? html` ` : ''}
- this.doPublish(e, true, false)}> ${translate("appspage.schange40")} - this.shadowRoot.querySelector('#publishWithFeeDialog').show()}> ${translate("publishpage.pchange11")} + this.shadowRoot.querySelector('#publishWithFeeDialog').close()}> ${translate("appspage.schange40")} + { + this.doPublish(e, false, true) + }}> ${translate("publishpage.pchange11")}
@@ -310,7 +314,7 @@ class PublishData extends LitElement { ${translate("general.no")} - + ${translate("general.yes")} @@ -418,7 +422,7 @@ class PublishData extends LitElement { this.shadowRoot.querySelector('#publishWithFeeDialog').close() } - doPublish(e, preview, fee) { + async doPublish(e, preview, fee) { let registeredName = this.shadowRoot.getElementById('registeredName').value let service = this.shadowRoot.getElementById('service').value let identifier = this.shadowRoot.getElementById('identifier').value @@ -464,7 +468,22 @@ class PublishData extends LitElement { parentEpml.request('showSnackBar', `${err5string}`) } else { - this.publishData(registeredName, path, file, service, identifier, preview, fee) + try { + if(!preview){ + const arbitraryFeeData = await modalHelper.getArbitraryFee() + const res = await modalHelper.showModalAndWaitPublish( + { + feeAmount: arbitraryFeeData.feeToShow + } + ); + if (res.action !== 'accept') throw new Error('User declined publish') + } + + this.publishData(registeredName, path, file, service, identifier, preview, fee) + } catch (error) { + this.shadowRoot.querySelector('#publishWithFeeDialog').close() + } + } } diff --git a/plugins/plugins/utils/publish-modal.css b/plugins/plugins/utils/publish-modal.css new file mode 100644 index 00000000..f5ded060 --- /dev/null +++ b/plugins/plugins/utils/publish-modal.css @@ -0,0 +1,147 @@ +.backdrop { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgb(186 186 186 / 26%); + overflow: hidden; + animation: backdrop_blur cubic-bezier(0.22, 1, 0.36, 1) 1s forwards; + z-index: 1000000; +} + +@keyframes backdrop_blur { + 0% { + backdrop-filter: blur(0px); + background: transparent; + } + 100% { + backdrop-filter: blur(5px); + background: rgb(186 186 186 / 26%); + } +} + +@keyframes modal_transition { + 0% { + visibility: hidden; + opacity: 0; +} + 100% { + visibility: visible; + opacity: 1; + } +} + +.modal { + position: relative; + display: flex; + justify-content: center; + align-items: center; + width: 100%; + height: 100%; + animation: 1s cubic-bezier(0.22, 1, 0.36, 1) 0s 1 normal forwards running modal_transition; + z-index: 1000001; +} + +@keyframes modal_transition { + 0% { + visibility: hidden; + opacity: 0; + } + 100% { + visibility: visible; + opacity: 1; + } +} + +.modal-content { + background-color: var(--white); + border-radius: 10px; + padding: 20px; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); + max-width: 80%; + min-width: 300px; + display: flex; + flex-direction: column; + justify-content: space-between; +} + +.modal-body { + padding: 25px; +} + +.modal-subcontainer { + color: var(--black); + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 15px; +} + +.modal-subcontainer-error { + color: var(--black); + display: flex; + flex-direction: column; + align-items: center; + gap: 15px; +} + +.modal-paragraph-error { + font-family: Roboto, sans-serif; + font-size: 20px; + letter-spacing: 0.3px; + font-weight: 700; + color: var(--black); + margin: 0; +} + +.modal-paragraph { + font-family: Roboto, sans-serif; + font-size: 18px; + letter-spacing: 0.3px; + font-weight: 300; + color: var(--black); + margin: 0; + word-wrap: break-word; + overflow-wrap: break-word; +} + +.capitalize-first { + text-transform: capitalize; +} + +.checkbox-row { + display: flex; + align-items: center; + font-family: Montserrat, sans-serif; + font-weight: 600; + color: var(--black); +} + +.modal-buttons { + display: flex; + justify-content: space-between; + margin-top: 20px; +} + +.modal-buttons button { + background-color: #4caf50; + border: none; + color: #fff; + padding: 10px 20px; + border-radius: 5px; + cursor: pointer; + transition: background-color 0.2s; +} + +.modal-buttons button:hover { + background-color: #3e8e41; +} + +#cancel-button { + background-color: #f44336; +} + +#cancel-button:hover { + background-color: #d32f2f; +} \ No newline at end of file diff --git a/plugins/plugins/utils/publish-modal.js b/plugins/plugins/utils/publish-modal.js new file mode 100644 index 00000000..3358083c --- /dev/null +++ b/plugins/plugins/utils/publish-modal.js @@ -0,0 +1,263 @@ +import { get } from 'lit-translate'; + +export class ModalHelper { + constructor() { + this.initializeStyles(); + } + + async getArbitraryFee() { + const timestamp = Date.now(); + 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 url = `${nodeUrl}/transactions/unitfee?txType=ARBITRARY×tamp=${timestamp}`; + const response = await fetch(url); + + if (!response.ok) { + throw new Error('Error when fetching arbitrary fee'); + } + + const data = await response.json(); + const arbitraryFee = (Number(data) / 1e8).toFixed(8); + return { + timestamp, + fee: Number(data), + feeToShow: arbitraryFee + }; + } + + async showModalAndWaitPublish(data) { + console.log({ data }); + + return new Promise((resolve) => { + const modal = this.createModal(data); + document.body.appendChild(modal); + this.addModalEventListeners(modal, resolve); + }); + } + + createModal(data) { + const modal = document.createElement('div'); + modal.id = "backdrop"; + modal.classList.add("backdrop"); + modal.innerHTML = ` + + `; + return modal; + } + + addModalEventListeners(modal, resolve) { + // Event listener for the 'OK' button + const okButton = modal.querySelector('#ok-button'); + okButton.addEventListener('click', () => { + const userData = { isWithFee: true }; + if (modal.parentNode === document.body) { + document.body.removeChild(modal); + } + resolve({ action: 'accept', userData }); + }); + + // Prevent modal content from closing the modal + const modalContent = modal.querySelector('.modal-content'); + modalContent.addEventListener('click', e => { + e.stopPropagation(); + }); + + // Event listeners for backdrop and 'Cancel' button + const backdropClick = document.getElementById('backdrop'); + backdropClick.addEventListener('click', () => { + if (modal.parentNode === document.body) { + document.body.removeChild(modal); + } + resolve({ action: 'reject' }); + }); + + const cancelButton = modal.querySelector('#cancel-button'); + cancelButton.addEventListener('click', () => { + if (modal.parentNode === document.body) { + document.body.removeChild(modal); + } + resolve({ action: 'reject' }); + }); + } + + initializeStyles() { + const styles = ` + * { + --mdc-theme-primary: rgb(3, 169, 244); + --mdc-theme-secondary: var(--mdc-theme-primary); + --paper-input-container-focus-color: var(--mdc-theme-primary); + --mdc-checkbox-unchecked-color: var(--black); + --mdc-theme-on-surface: var(--black); + --mdc-checkbox-disabled-color: var(--black); + --mdc-checkbox-ink-color: var(--black); + } + + .backdrop { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgb(186 186 186 / 26%); + overflow: hidden; + animation: backdrop_blur cubic-bezier(0.22, 1, 0.36, 1) 0.1s forwards; + z-index: 1000000; + } + + @keyframes backdrop_blur { + 0% { + backdrop-filter: blur(0px); + background: transparent; + } + 100% { + backdrop-filter: blur(5px); + background: rgb(186 186 186 / 26%); + } + } + + @keyframes modal_transition { + 0% { + visibility: hidden; + opacity: 0; + } + 100% { + visibility: visible; + opacity: 1; + } + } + + .modal { + position: relative; + display: flex; + justify-content: center; + align-items: center; + width: 100%; + height: 100%; + animation: 0.1s cubic-bezier(0.22, 1, 0.36, 1) 0s 1 normal forwards running modal_transition; + z-index: 1000001; + } + + @keyframes modal_transition { + 0% { + visibility: hidden; + opacity: 0; + } + 100% { + visibility: visible; + opacity: 1; + } + } + + .modal-content { + background-color: var(--white); + border-radius: 10px; + padding: 20px; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); + max-width: 80%; + min-width: 300px; + display: flex; + flex-direction: column; + justify-content: space-between; + } + + .modal-body { + padding: 25px; + } + + .modal-subcontainer { + color: var(--black); + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 15px; + } + + .modal-subcontainer-error { + color: var(--black); + display: flex; + flex-direction: column; + align-items: center; + gap: 15px; + } + + .modal-paragraph-error { + font-family: Roboto, sans-serif; + font-size: 20px; + letter-spacing: 0.3px; + font-weight: 700; + color: var(--black); + margin: 0; + } + + .modal-paragraph { + font-family: Roboto, sans-serif; + font-size: 18px; + letter-spacing: 0.3px; + font-weight: 300; + color: var(--black); + margin: 0; + word-wrap: break-word; + overflow-wrap: break-word; + } + + .capitalize-first { + text-transform: capitalize; + } + + .checkbox-row { + display: flex; + align-items: center; + font-family: Montserrat, sans-serif; + font-weight: 600; + color: var(--black); + } + + .modal-buttons { + display: flex; + justify-content: space-between; + margin-top: 20px; + } + + .modal-buttons button { + background-color: #4caf50; + border: none; + color: #fff; + padding: 10px 20px; + border-radius: 5px; + cursor: pointer; + transition: background-color 0.2s; + } + + .modal-buttons button:hover { + background-color: #3e8e41; + } + + #cancel-button { + background-color: #f44336; + } + + #cancel-button:hover { + background-color: #d32f2f; + } + `; + + const styleSheet = new CSSStyleSheet(); + styleSheet.replaceSync(styles); + + document.adoptedStyleSheets = [styleSheet]; + } +} From 62f47f4c881b9e44a63219c15d62921420b89962 Mon Sep 17 00:00:00 2001 From: Phillip Date: Thu, 17 Aug 2023 23:26:10 -0500 Subject: [PATCH 19/31] remove import --- plugins/plugins/core/components/ChatPage.js | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/plugins/plugins/core/components/ChatPage.js b/plugins/plugins/core/components/ChatPage.js index d354e719..288337d8 100644 --- a/plugins/plugins/core/components/ChatPage.js +++ b/plugins/plugins/core/components/ChatPage.js @@ -36,8 +36,6 @@ import './ChatLeaveGroup.js' import './ChatGroupSettings.js' import './ChatRightPanel.js' import './ChatSearchResults.js' -import './ChatGifs/ChatGifs.js' - import '@material/mwc-button' import '@material/mwc-dialog' import '@material/mwc-icon' @@ -1442,15 +1440,6 @@ class ChatPage extends LitElement {
` : ''}
- -
From 826f319280727c9a43a64ef66af00e1817c01e73 Mon Sep 17 00:00:00 2001 From: Phillip Date: Fri, 18 Aug 2023 11:25:41 -0500 Subject: [PATCH 20/31] fix built issue --- core/src/components/app-info.js | 10 +++++----- plugins/plugins/core/components/ChatPage.js | 16 ++++++++++------ .../plugins/core/messaging/q-chat/q-chat.src.js | 2 -- plugins/plugins/core/qdn/publish/publish.src.js | 3 +-- plugins/plugins/utils/publish-modal.js | 11 +++++++++-- 5 files changed, 25 insertions(+), 17 deletions(-) diff --git a/core/src/components/app-info.js b/core/src/components/app-info.js index 5ce24ae7..fc2719c4 100644 --- a/core/src/components/app-info.js +++ b/core/src/components/app-info.js @@ -119,11 +119,11 @@ class AppInfo extends connect(store)(LitElement) { this.setStorage() this.getNodeInfo() this.getCoreInfo() - try { - this.confirmPublicKeyOnChain(store.getState().app.selectedAddress.address) - } catch (error) { - console.error(error) - } + // try { + // this.confirmPublicKeyOnChain(store.getState().app.selectedAddress.address) + // } catch (error) { + // console.error(error) + // } setInterval(() => { this.getNodeInfo() diff --git a/plugins/plugins/core/components/ChatPage.js b/plugins/plugins/core/components/ChatPage.js index 288337d8..0171bcf3 100644 --- a/plugins/plugins/core/components/ChatPage.js +++ b/plugins/plugins/core/components/ChatPage.js @@ -41,6 +41,7 @@ import '@material/mwc-dialog' import '@material/mwc-icon' import '@polymer/paper-dialog/paper-dialog.js' import '@polymer/paper-spinner/paper-spinner-lite.js' +import { modalHelper } from '../../utils/publish-modal.js' const chatLastSeen = localForage.createInstance({ name: "chat-last-seen", @@ -3124,7 +3125,6 @@ class ChatPage extends LitElement { } async _sendMessage(outSideMsg, msg) { - console.log({outSideMsg, msg}) try { if (this.isReceipient) { let hasPublicKey = true @@ -3252,7 +3252,9 @@ class ChatPage extends LitElement { metaData: undefined, uploadType: 'file', selectedAddress: this.selectedAddress, - worker: this.webWorkerFile + worker: this.webWorkerFile, + withFee: true, + feeAmount: arbitraryFeeData.fee }) this.isDeletingImage = false } catch (error) { @@ -3347,7 +3349,9 @@ class ChatPage extends LitElement { metaData: undefined, uploadType: 'file', selectedAddress: this.selectedAddress, - worker: this.webWorkerFile + worker: this.webWorkerFile, + withFee: true, + feeAmount: arbitraryFeeData.fee }) this.isDeletingAttachment = false } catch (error) { @@ -3386,13 +3390,11 @@ class ChatPage extends LitElement { return } const arbitraryFeeData = await modalHelper.getArbitraryFee() - console.log('updated') const res = await modalHelper.showModalAndWaitPublish( { feeAmount: arbitraryFeeData.feeToShow } ); - console.log({res}) if (res.action !== 'accept') throw new Error('User declined publish') if (this.webWorkerFile) { @@ -3529,7 +3531,9 @@ class ChatPage extends LitElement { metaData: undefined, uploadType: 'file', selectedAddress: this.selectedAddress, - worker: this.webWorkerFile + worker: this.webWorkerFile, + withFee: true, + feeAmount: arbitraryFeeData.fee }) this.isUploadingAttachment = false this.removeAttachment() diff --git a/plugins/plugins/core/messaging/q-chat/q-chat.src.js b/plugins/plugins/core/messaging/q-chat/q-chat.src.js index ca9540a8..838f42d2 100644 --- a/plugins/plugins/core/messaging/q-chat/q-chat.src.js +++ b/plugins/plugins/core/messaging/q-chat/q-chat.src.js @@ -26,12 +26,10 @@ import '@material/mwc-icon' import '@material/mwc-snackbar' import '@polymer/paper-spinner/paper-spinner-lite.js' import '@vaadin/grid' -import { ModalHelper } from '../../../utils/publish-modal.js' passiveSupport({ events: ['touchstart'] }) const parentEpml = new Epml({ type: 'WINDOW', source: window.parent }) -export const modalHelper = new ModalHelper(); class Chat extends LitElement { static get properties() { return { diff --git a/plugins/plugins/core/qdn/publish/publish.src.js b/plugins/plugins/core/qdn/publish/publish.src.js index a4662628..37710534 100644 --- a/plugins/plugins/core/qdn/publish/publish.src.js +++ b/plugins/plugins/core/qdn/publish/publish.src.js @@ -14,10 +14,9 @@ import '@material/mwc-select' import '@material/mwc-dialog' import '@material/mwc-list/mwc-list-item.js' import '@polymer/paper-progress/paper-progress.js' -import { ModalHelper } from '../../../utils/publish-modal' +import { modalHelper } from '../../../utils/publish-modal' const parentEpml = new Epml({ type: 'WINDOW', source: window.parent }) -const modalHelper = new ModalHelper(); class PublishData extends LitElement { static get properties() { diff --git a/plugins/plugins/utils/publish-modal.js b/plugins/plugins/utils/publish-modal.js index 3358083c..b55af509 100644 --- a/plugins/plugins/utils/publish-modal.js +++ b/plugins/plugins/utils/publish-modal.js @@ -26,8 +26,6 @@ export class ModalHelper { } async showModalAndWaitPublish(data) { - console.log({ data }); - return new Promise((resolve) => { const modal = this.createModal(data); document.body.appendChild(modal); @@ -260,4 +258,13 @@ export class ModalHelper { document.adoptedStyleSheets = [styleSheet]; } + + static getInstance() { + if (!ModalHelper.instance) { + ModalHelper.instance = new ModalHelper(); + } + return ModalHelper.instance; + } } + +export const modalHelper = ModalHelper.getInstance(); \ No newline at end of file From cb0c138a9b5543dee173c07482a5cd0d803ed495 Mon Sep 17 00:00:00 2001 From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com> Date: Sat, 19 Aug 2023 09:29:34 +0200 Subject: [PATCH 21/31] Set timeout to 2 hours --- plugins/plugins/core/trade-portal/trade-portal.src.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/plugins/core/trade-portal/trade-portal.src.js b/plugins/plugins/core/trade-portal/trade-portal.src.js index 8b33d5a0..c77f6ffe 100644 --- a/plugins/plugins/core/trade-portal/trade-portal.src.js +++ b/plugins/plugins/core/trade-portal/trade-portal.src.js @@ -2701,7 +2701,7 @@ class TradePortal extends LitElement { this.sellBtnDisable = true const sellAmountInput = this.shadowRoot.getElementById('sellAmountInput').value const sellTotalInput = this.shadowRoot.getElementById('sellTotalInput').value - const fundingQortAmount = this.round(parseFloat(sellAmountInput) + 0.001) + const fundingQortAmount = this.round(parseFloat(sellAmountInput) + 0.021) const makeRequest = async () => { let _receivingAddress = null @@ -2733,7 +2733,7 @@ class TradePortal extends LitElement { fundingQortAmount: parseFloat(fundingQortAmount), foreignBlockchain: this.selectedCoin, foreignAmount: parseFloat(sellTotalInput), - tradeTimeout: 60, + tradeTimeout: 120, receivingAddress: _receivingAddress, }) return response From ebad3aa6321caa511ae0c1ee4716fdb7835a0f07 Mon Sep 17 00:00:00 2001 From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com> Date: Sat, 19 Aug 2023 09:57:15 +0200 Subject: [PATCH 22/31] Update dependencies --- package-lock.json | 269 ++++++++++++++++++++++++++-------------------- package.json | 4 +- 2 files changed, 156 insertions(+), 117 deletions(-) diff --git a/package-lock.json b/package-lock.json index f4292cf1..f0e99d26 100644 --- a/package-lock.json +++ b/package-lock.json @@ -46,7 +46,7 @@ "prosemirror-state": "1.4.3", "prosemirror-transform": "1.7.4", "prosemirror-view": "1.31.7", - "sass": "1.65.1", + "sass": "1.66.1", "short-unique-id": "4.4.4" }, "devDependencies": { @@ -103,7 +103,7 @@ "axios": "1.4.0", "electron": "26.0.0", "electron-builder": "24.6.3", - "electron-packager": "17.1.1", + "electron-packager": "17.1.2", "epml": "0.3.3", "file-saver": "2.0.5", "highcharts": "11.1.0", @@ -586,9 +586,9 @@ } }, "node_modules/@electron/osx-sign": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@electron/osx-sign/-/osx-sign-1.0.4.tgz", - "integrity": "sha512-xfhdEcIOfAZg7scZ9RQPya1G1lWo8/zMCwUXAulq0SfY7ONIW+b9qGyKdMyuMctNYwllrIS+vmxfijSfjeh97g==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@electron/osx-sign/-/osx-sign-1.0.5.tgz", + "integrity": "sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww==", "dev": true, "dependencies": { "compare-version": "^0.1.2", @@ -2835,9 +2835,9 @@ } }, "node_modules/@tiptap/extension-blockquote": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.1.1.tgz", - "integrity": "sha512-EK9mld4gYFhpNdabhvc7EMbhhFVrhaTZtTW17cCB3ONArMZx7ps8g+aKSdV5Ftdn/TxI3n4lQXazlIz1HQj+Zg==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.1.6.tgz", + "integrity": "sha512-y3Jj9XcJaUjlEZZFBQUZcToOjamL64B/Jjlu7JUv87VArWWpg5Pnd2sQG3l9A/q1vfY0/TpHm7r5EvKoeIq6ag==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2847,9 +2847,9 @@ } }, "node_modules/@tiptap/extension-bold": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.1.1.tgz", - "integrity": "sha512-a65KDTkdEc+NUSm9YW+i568svRMwN4vOZ5L0lgEWXtENJok5vw25egrzW8bVVnJ9VE/CS2YOn2niBZMwdKTD7A==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.1.6.tgz", + "integrity": "sha512-gZDVuhYdceBQ/xGGY1X7lmkgNrDHFuFYBFRWMK0pLe9YBlQtJPc6+hiOmCtRtGmbQADDnvMmSU2a0+8bckmbCw==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2859,9 +2859,9 @@ } }, "node_modules/@tiptap/extension-bullet-list": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.1.1.tgz", - "integrity": "sha512-ji7PbjNneZ7Jk+g2cMSwd8J1eJlTHYsrMUeRDxz4ZVxykDn97ur73wtx1FsEMKxxxNKeOlUayU6F6UE1Bwyv5g==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.1.6.tgz", + "integrity": "sha512-NjPL5cIa4wVqv62OEw4lQ4Dj4c2hxia7GtPKHZKjoot5iu1RDkzD9Cxy/0tmH0vfCwTqa0JbGf9FAxRCyok4kg==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2871,9 +2871,9 @@ } }, "node_modules/@tiptap/extension-code": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.1.1.tgz", - "integrity": "sha512-zHu98cyrWau8a9DPaypFOKEnYRI6TLD8OC3odlo+3BC+RhmcFi+azM2bG9/ba+DUIlaxImZwK5BmpfXM7QvZ5A==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.1.6.tgz", + "integrity": "sha512-vFWE74Aipt0kbmWyya+9zvsAgVusbbHx8g3Zqm8iKDt95BY3MWGurCZ3F5uoVuPuWD9VSrbNs4/T6oKbVKc9Ow==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2883,9 +2883,9 @@ } }, "node_modules/@tiptap/extension-code-block": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.1.1.tgz", - "integrity": "sha512-Zt+la0WWAI4bz+Zv41w1ZY2rURS9etMIIsdnbDKgt3GHaNUhrc23hZAsTGKr9HjHv5I4vB2+593zRxBVdbs1qA==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.1.6.tgz", + "integrity": "sha512-tLK9YeHYz03qeG4Sy5uZMq6v5uo34315I4WrfIAujesDloG1v8nd+D9I8A7PD4BWHZOzv13ToVeDYpLYDdvE7Q==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2896,9 +2896,9 @@ } }, "node_modules/@tiptap/extension-document": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.1.1.tgz", - "integrity": "sha512-t2OCJNFM9aU+z1AGQiZmWEWRvoFo/NyOCWHOlT5O9cqR/H+h/twlX76wfAJEAmtcP/HYYffkdlmVBjWFu8DVsQ==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.1.6.tgz", + "integrity": "sha512-econFqLeQR8pe0xv7kjw6ZPRhcNXGrNi9854celX0lhqTqtBxvU6nWHzUDzoq/lmnXYgpFTPv42AwUEspvpwdw==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2908,9 +2908,9 @@ } }, "node_modules/@tiptap/extension-dropcursor": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.1.1.tgz", - "integrity": "sha512-gAaRrKA3LVIHAgoazmfZbFbLtmYPCk/1/C1N+ULmBbzWj7bCshGjhOlWgrDD/1uyc7HRMO8iRz6u1f6EqbHjmg==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.1.6.tgz", + "integrity": "sha512-+nk4XtCp2+lVf1pzwonaOdIolE9AI3HPAtUO7sthHYLDIm1JEQT2GS3+MVDGHdFKxEGUkB5DEcNLtr/xLTQjZQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2921,9 +2921,9 @@ } }, "node_modules/@tiptap/extension-gapcursor": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.1.1.tgz", - "integrity": "sha512-ObKdsvtCcGej+4XPoxd7gWFJJCWcVDN1E1zFluoRKaRLCsc8nNIj4C92FflVbhYzrwHJY6YUzhV3ZYF+AJejMQ==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.1.6.tgz", + "integrity": "sha512-5AH6Je1B6JpZkMBslXw/UglMpxVwL8AXqX5xWKP2OSsKVYcL00jApq709FxfYhyqui/SukUVusKKQFstTNqIGA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2934,9 +2934,9 @@ } }, "node_modules/@tiptap/extension-hard-break": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.1.1.tgz", - "integrity": "sha512-mfShnSb74U2nryl2Of3D7ej7+IzKHf5qD72kf3vljNlDf29Z2Vq+Jb5emNlj18/vnhBQIevTEeO1Plyfl0X+KQ==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.1.6.tgz", + "integrity": "sha512-znFYceEFbrgxhHZF+/wNQlAn3MWG9/VRqQAFxPGne0csewibKZRwZbeSYZQ16x1vSAlAQsKhIaAst/na/2H8LA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2946,9 +2946,9 @@ } }, "node_modules/@tiptap/extension-heading": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.1.1.tgz", - "integrity": "sha512-hITv6yWEm8MiYX9zNwwDxdPLsvWYz4Pp5jp/Owy4SmZpUcBNL1hJQ1tzHgJApv/odygGtjDrz0Al15ERRWOGnQ==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.1.6.tgz", + "integrity": "sha512-V6PImalPhgAxsA95op70ssb8IXehLyr7wu5t1SeoTUUQtvMojKXPd+n+xF5b4b7VIhXHDlGSnoT0/XwjCJY0tQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2970,9 +2970,9 @@ } }, "node_modules/@tiptap/extension-history": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.1.1.tgz", - "integrity": "sha512-YDGrqWvnWcXPNIqpFklc8Xm/bG451RLJEebYS1gZbaQ0QJ2MCGxyDFJvimE3Qf5FP08Ugjxn3q5xHDoVlX+9/g==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.1.6.tgz", + "integrity": "sha512-ltHz9cW3bWi7Z3m960F5eLPAqZDBNOpUP31t9YdKqhyxA16eygryj1USVeus9DX5OBoW79I8EecFAuRo3Rymlw==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2983,9 +2983,9 @@ } }, "node_modules/@tiptap/extension-horizontal-rule": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.1.1.tgz", - "integrity": "sha512-iYV1J3FQHYU/v2dVf/GvXWdIns/wCZq+CHB2WIWXEuTaTt7GJEbNS3zzH2pAwuVUUG7xDyLaS9mON5LsnonPdQ==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.1.6.tgz", + "integrity": "sha512-1epXM+4DRlhos+Awj4sHApceO2O26tuqyrZot0Mm+mF0yuCGy3B5fefAgUcxBu/oRuywfDl8cwCzN2E/d8KXtA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3008,9 +3008,9 @@ } }, "node_modules/@tiptap/extension-italic": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.1.1.tgz", - "integrity": "sha512-4DzBx4nmnVqhLKvhbq2UZl80mAa3tHSuZ6lYJ4MCh3WIANc6e9XIGPZ2mmT8M51Tx8xwWBWUQukMN+uQFzMsVw==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.1.6.tgz", + "integrity": "sha512-o41hil+x2yqFciOiJPx67FnguJ4/aEMU8MotmXekFGHM+I0wFOd4lA5t7HqFU5Si0Z7gyTb/N0wLUbAnbyk/Aw==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3020,9 +3020,9 @@ } }, "node_modules/@tiptap/extension-list-item": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.1.1.tgz", - "integrity": "sha512-UikZsgcdgno5UWXn2TPGZeHi0mHxujw5gtaA6+x9j/oVjVPqevqg2uDilMkig+HrsTWwLVzntvnVsXdu2TneWw==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.1.6.tgz", + "integrity": "sha512-hgG8XzWRvhmEtb70ut2YTWfexMDu4PHgDS8WxYGOCVH0F+DwZqGF5KEARhFSPlmRUCWcmKey4sp8YDpLqShEWA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3032,9 +3032,9 @@ } }, "node_modules/@tiptap/extension-ordered-list": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.1.1.tgz", - "integrity": "sha512-GxOnvAReBza9+r/tVBne/0b0Dp3/4vHb24TpKYFG1yLZzsEren6qqtForqEhzA/O74ar1WLl6bpcET0/wBAn0w==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.1.6.tgz", + "integrity": "sha512-7igbJBSeCByYM9G3XHlK1sqPQtIsOlezdc4PH7xBaOtvNDd1ruGvOGFovo9b5TW8+J08KCAqy25cV4Pn72fuGw==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3044,9 +3044,9 @@ } }, "node_modules/@tiptap/extension-paragraph": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.1.1.tgz", - "integrity": "sha512-5H1nIBW6oKr90JKZI2BTCIlQShIMtO0dCUj/n0CI1pBhJOuGPz8HIVrcZlvYY42KRJQu6pWW3HfdvCiWFVqAzA==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.1.6.tgz", + "integrity": "sha512-k0QSIaJPVgTn9+X2580JFCjV2RCH1Fo+gPodABDnjunfoUVSjuq0rlILEtTuha3evlS6kDKiz7lk7pIoCo36Cw==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3069,9 +3069,9 @@ } }, "node_modules/@tiptap/extension-strike": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.1.1.tgz", - "integrity": "sha512-Ah1LAXn9ST0aynyxmbB3sd6ndnB0ltFRqFE9AoB4c7akwOHIlS3ovp90u4z2OUe2Bf0pJlMffYXur7TtqyM8hQ==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.1.6.tgz", + "integrity": "sha512-LX7X2ohKEE0nUyWecSGxBcuzLxXTIbPmUnbkZvqYiWTaE02r3TxzkJMO0iuTnbygceC1TtiAfKwGgth0b9tMCQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3081,9 +3081,9 @@ } }, "node_modules/@tiptap/extension-text": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.1.1.tgz", - "integrity": "sha512-cOjbaUo5IFRu7VxbncuIPNjekZbrgqOPE/HCuUVohNRwLbdCYqrvO76yk8N3D3j+RL6mSVISsOgqz6DNg/+mig==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.1.6.tgz", + "integrity": "sha512-CqV0N6ngoXZFeJGlQ86FSZJ/0k7+BN3S6aSUcb5DRAKsSEv/Ga1LvSG24sHy+dwjTuj3EtRPJSVZTFcSB17ZSA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3249,9 +3249,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.17.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.5.tgz", - "integrity": "sha512-xNbS75FxH6P4UXTPUJp/zNPq6/xsfdJKussCWNOnz4aULWIRwMgP1LgaB5RiBnMX1DPCYenuqGZfnIAx5mbFLA==", + "version": "18.17.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.6.tgz", + "integrity": "sha512-fGmT/P7z7ecA6bv/ia5DlaWCH4YeZvAQMNpUhrJjtAhOhZfoxS1VLUgU2pdk63efSjQaOJWdXMuAJsws+8I6dg==", "devOptional": true }, "node_modules/@types/object.omit": { @@ -5197,22 +5197,22 @@ "integrity": "sha512-QQ4GvrXO+HkgqqEOYbi+DHL7hj5JM+nHi/j+qrN9zeeXVKy8ZABgbu4CnG+BBqDZ2+tbeq9tUC4DZfIWFU5AZA==" }, "node_modules/electron-packager": { - "version": "17.1.1", - "resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-17.1.1.tgz", - "integrity": "sha512-r1NDtlajsq7gf2EXgjRfblCVPquvD2yeg+6XGErOKblvxOpDi0iulZLVhgYDP4AEF1P5/HgbX/vwjlkEv7PEIQ==", + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/electron-packager/-/electron-packager-17.1.2.tgz", + "integrity": "sha512-XofXdikjYI7MVBcnXeoOvRR+yFFFHOLs3J7PF5KYQweigtgLshcH4W660PsvHr4lYZ03JBpLyEcUB8DzHZ+BNw==", "dev": true, "dependencies": { "@electron/asar": "^3.2.1", "@electron/get": "^2.0.0", "@electron/notarize": "^1.2.3", - "@electron/osx-sign": "^1.0.1", + "@electron/osx-sign": "^1.0.5", "@electron/universal": "^1.3.2", "cross-spawn-windows-exe": "^1.2.0", "debug": "^4.0.1", "extract-zip": "^2.0.0", "filenamify": "^4.1.0", - "fs-extra": "^10.1.0", - "galactus": "^0.2.1", + "fs-extra": "^11.1.0", + "galactus": "^1.0.0", "get-package-info": "^1.0.0", "junk": "^3.1.0", "parse-author": "^2.0.0", @@ -5233,9 +5233,9 @@ } }, "node_modules/electron-packager/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", "dev": true, "dependencies": { "graceful-fs": "^4.2.0", @@ -5243,7 +5243,7 @@ "universalify": "^2.0.0" }, "engines": { - "node": ">=12" + "node": ">=14.14" } }, "node_modules/electron-packager/node_modules/jsonfile": { @@ -5433,9 +5433,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.494", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.494.tgz", - "integrity": "sha512-KF7wtsFFDu4ws1ZsSOt4pdmO1yWVNWCFtijVYZPUeW4SV7/hy/AESjLn/+qIWgq7mHscNOKAwN5AIM1+YAy+Ww==", + "version": "1.4.496", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.496.tgz", + "integrity": "sha512-qeXC3Zbykq44RCrBa4kr8v/dWzYJA8rAwpyh9Qd+NKWoJfjG5vvJqy9XOJ9H4P/lqulZBCgUWAYi+FeK5AuJ8g==", "dev": true }, "node_modules/electron-updater": { @@ -5839,30 +5839,51 @@ } }, "node_modules/flora-colossus": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flora-colossus/-/flora-colossus-1.0.1.tgz", - "integrity": "sha512-d+9na7t9FyH8gBJoNDSi28mE4NgQVGGvxQ4aHtFRetjyh5SXjuus+V5EZaxFmFdXVemSOrx0lsgEl/ZMjnOWJA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/flora-colossus/-/flora-colossus-2.0.0.tgz", + "integrity": "sha512-dz4HxH6pOvbUzZpZ/yXhafjbR2I8cenK5xL0KtBFb7U2ADsR+OwXifnxZjij/pZWF775uSCMzWVd+jDik2H2IA==", "dev": true, "dependencies": { - "debug": "^4.1.1", - "fs-extra": "^7.0.0" + "debug": "^4.3.4", + "fs-extra": "^10.1.0" }, "engines": { - "node": ">= 6.0.0" + "node": ">= 12" } }, "node_modules/flora-colossus/node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">=6 <7 || >=8" + "node": ">=12" + } + }, + "node_modules/flora-colossus/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/flora-colossus/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" } }, "node_modules/focus-trap": { @@ -5981,34 +6002,52 @@ "integrity": "sha512-MOxCT0qLTwLqmEwc7UtU045RKef7mc8Qz8eR4r2bLNEq9dy/c3ZKMEFp6IEst69otkQdFZ4FfgH2dmZD+ddX1g==" }, "node_modules/galactus": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/galactus/-/galactus-0.2.1.tgz", - "integrity": "sha512-mDc8EQJKtxjp9PMYS3PbpjjbX3oXhBTxoGaPahw620XZBIHJ4+nvw5KN/tRtmmSDR9dypstGNvqQ3C29QGoGHQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/galactus/-/galactus-1.0.0.tgz", + "integrity": "sha512-R1fam6D4CyKQGNlvJne4dkNF+PvUUl7TAJInvTGa9fti9qAv95quQz29GXapA4d8Ec266mJJxFVh82M4GIIGDQ==", "dev": true, "dependencies": { - "debug": "^3.1.0", - "flora-colossus": "^1.0.0", - "fs-extra": "^4.0.0" - } - }, - "node_modules/galactus/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" + "debug": "^4.3.4", + "flora-colossus": "^2.0.0", + "fs-extra": "^10.1.0" + }, + "engines": { + "node": ">= 12" } }, "node_modules/galactus/node_modules/fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/galactus/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/galactus/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" } }, "node_modules/gensync": { @@ -8310,9 +8349,9 @@ } }, "node_modules/sass": { - "version": "1.65.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.65.1.tgz", - "integrity": "sha512-9DINwtHmA41SEd36eVPQ9BJKpn7eKDQmUHmpI0y5Zv2Rcorrh0zS+cFrt050hdNbmmCNKTW3hV5mWfuegNRsEA==", + "version": "1.66.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.66.1.tgz", + "integrity": "sha512-50c+zTsZOJVgFfTgwwEzkjA3/QACgdNsKueWPyAR0mRINIvLAStVQBbPg14iuqEQ74NPDbXzJARJ/O4SI1zftA==", "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -8981,9 +9020,9 @@ } }, "node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/twemoji": { "version": "14.0.2", diff --git a/package.json b/package.json index 5d9e29f8..d33b7be7 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "prosemirror-state": "1.4.3", "prosemirror-transform": "1.7.4", "prosemirror-view": "1.31.7", - "sass": "1.65.1", + "sass": "1.66.1", "short-unique-id": "4.4.4", "@hapi/hapi": "21.3.2", "@hapi/inert": "7.1.0", @@ -74,7 +74,7 @@ "axios": "1.4.0", "electron": "26.0.0", "electron-builder": "24.6.3", - "electron-packager": "17.1.1", + "electron-packager": "17.1.2", "epml": "0.3.3", "file-saver": "2.0.5", "highcharts": "11.1.0", From b30dfb62aab57effb2a9e34d479abfc534897843 Mon Sep 17 00:00:00 2001 From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com> Date: Sun, 20 Aug 2023 14:11:45 +0200 Subject: [PATCH 23/31] Fix tradefee --- plugins/plugins/core/trade-portal/trade-portal.src.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/plugins/plugins/core/trade-portal/trade-portal.src.js b/plugins/plugins/core/trade-portal/trade-portal.src.js index c77f6ffe..2a5cb7a7 100644 --- a/plugins/plugins/core/trade-portal/trade-portal.src.js +++ b/plugins/plugins/core/trade-portal/trade-portal.src.js @@ -708,7 +708,7 @@ class TradePortal extends LitElement { balance: "0", coinCode: "QORT", coinAmount: this.amountString, - tradeFee: "0.002" + tradeFee: "0.02" } let bitcoin = { @@ -2699,9 +2699,10 @@ class TradePortal extends LitElement { async sellAction() { this.isSellLoading = true this.sellBtnDisable = true + await this.tradeFee() const sellAmountInput = this.shadowRoot.getElementById('sellAmountInput').value const sellTotalInput = this.shadowRoot.getElementById('sellTotalInput').value - const fundingQortAmount = this.round(parseFloat(sellAmountInput) + 0.021) + const fundingQortAmount = this.round(parseFloat(sellAmountInput) + 0.001) const makeRequest = async () => { let _receivingAddress = null @@ -3032,10 +3033,11 @@ class TradePortal extends LitElement { } return Promise.reject(response) }).then((json) => { - this.listedCoins.get("QORTAL").tradeFee = (Number(json) + 100000) / 1e8 + this.listedCoins.get("QORTAL").tradeFee = (Number(json) * 2) / 1e8 }) } + getApiKey() { const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]; let apiKey = myNode.apiKey; From ae9917b939a624c0523a8ea2f5a69fe26530e186 Mon Sep 17 00:00:00 2001 From: Phillip Date: Thu, 24 Aug 2023 18:21:18 -0500 Subject: [PATCH 24/31] added deploy_at action --- core/language/us.json | 5 +- .../api/transactions/DeployAtTransaction.js | 30 +++++-- .../plugins/core/qdn/browser/browser.src.js | 78 ++++++++++--------- 3 files changed, 67 insertions(+), 46 deletions(-) diff --git a/core/language/us.json b/core/language/us.json index 768d9ac7..a511f919 100644 --- a/core/language/us.json +++ b/core/language/us.json @@ -1008,7 +1008,10 @@ "rewarddialog3": "If yes, you will need to save the key below in order to mint. It can be supplied to any node in order to allow it to mint on your behalf.", "rewarddialog4": "On pressing confirm, the rewardshare will be created, but you will still need to supply the above key to a node in order to mint with the account.", "rewarddialog5": "You are removing a reward share transaction associated with account:", - "rewarddialog6": "On pressing confirm, the rewardshare will be removed and the minting key will become invalid." + "rewarddialog6": "On pressing confirm, the rewardshare will be removed and the minting key will become invalid.", + "deployAtdialog1": "You are deploying the AT", + "deployAtdialog2": "On pressing confirm, the AT will be deployed!", + "deployAtdialog3": "Initial amount balance" }, "sponsorshipspage": { "schange1": "Active Sponsorships", diff --git a/crypto/api/transactions/DeployAtTransaction.js b/crypto/api/transactions/DeployAtTransaction.js index a9b3ad5f..23e50255 100644 --- a/crypto/api/transactions/DeployAtTransaction.js +++ b/crypto/api/transactions/DeployAtTransaction.js @@ -1,6 +1,7 @@ 'use strict' import TransactionBase from './TransactionBase.js' import { store } from '../../api.js' +import { QORT_DECIMALS } from '../constants.js' export default class DeployAtTransaction extends TransactionBase { constructor() { @@ -8,17 +9,22 @@ export default class DeployAtTransaction extends TransactionBase { this.type = 16 } + render(html) { return html` - ${this._groupdialog5} + ${this._atDeployDialog1}:
-
${this._atDeployDialog1}: ${this._rName}
-
-
${this.atDeployDialog2}: ${this._rDescription}
-
-
+ ${this._rName}
- ${this._groupdialog6} + ${this._atDeployDialog4}: +
+ ${this._feeToShow} +
+ ${this._atDeployDialog3}: +
+ ${this._amountToShow} +
+ ${this._atDeployDialog2} ` } @@ -28,12 +34,20 @@ export default class DeployAtTransaction extends TransactionBase { set atDeployDialog2(atDeployDialog2) { this._atDeployDialog2 = atDeployDialog2 } + set atDeployDialog3(atDeployDialog3) { + this._atDeployDialog3 = atDeployDialog3 + } + set atDeployDialog4(atDeployDialog4) { + this._atDeployDialog4 = atDeployDialog4 + } set fee(fee) { - this._fee = fee + this._feeToShow = fee + this._fee = fee * QORT_DECIMALS this._feeBytes = this.constructor.utils.int64ToBytes(this._fee) } set rAmount(rAmount) { + this._amountToShow = rAmount this._rAmount = Math.round(rAmount * store.getState().config.coin.decimals) this._rAmountBytes = this.constructor.utils.int64ToBytes(this._rAmount) } diff --git a/plugins/plugins/core/qdn/browser/browser.src.js b/plugins/plugins/core/qdn/browser/browser.src.js index 02b8aa9b..caf54c70 100644 --- a/plugins/plugins/core/qdn/browser/browser.src.js +++ b/plugins/plugins/core/qdn/browser/browser.src.js @@ -509,7 +509,7 @@ class WebBrowser extends LitElement { } - async _deployAt(name, description, tags, creationBytes, amount, assetId, fee, atType) { + async _deployAt(name, description, tags, creationBytes, amount, assetId, atType) { const deployAtFee = await this.deployAtFee() const getLastRef = async () => { let myRef = await parentEpml.request('apiCall', { @@ -527,13 +527,15 @@ class WebBrowser extends LitElement { } const makeTransactionRequest = async (lastRef) => { - let groupdialog1 = get("transactions.groupdialog1") - let groupdialog2 = get("transactions.groupdialog2") + let deployAtdialog1 = get("transactions.deployAtdialog1") + let deployAtdialog2 = get("transactions.deployAtdialog2") + let deployAtdialog3 = get("transactions.deployAtdialog3") + let deployAtdialog4 = get("walletpage.wchange12") let myTxnrequest = await parentEpml.request('transaction', { type: 16, nonce: this.selectedAddress.nonce, params: { - fee: fee || deployAtFee, + fee: deployAtFee, rName: name, rDescription: description, rTags: tags, @@ -542,8 +544,10 @@ class WebBrowser extends LitElement { rCreationBytes: creationBytes, atType: atType, lastReference: lastRef, - atDeployDialog1: groupdialog1, - atDeployDialog2: groupdialog2 + atDeployDialog1: deployAtdialog1, + atDeployDialog2: deployAtdialog2, + atDeployDialog3: deployAtdialog3, + atDeployDialog4: deployAtdialog4 }, apiVersion: 2 }) @@ -1645,41 +1649,41 @@ class WebBrowser extends LitElement { break; } - // case 'DEPLOY_AT': { - // const requiredFields = ['name', 'description', 'tags', 'creationBytes', 'amount', 'assetId', 'type']; - // const missingFields = []; + case 'DEPLOY_AT': { + const requiredFields = ['name', 'description', 'tags', 'creationBytes', 'amount', 'assetId', 'type']; + const missingFields = []; - // requiredFields.forEach((field) => { - // if (!data[field]) { - // missingFields.push(field); - // } - // }); + requiredFields.forEach((field) => { + if (!data[field] && data[field] !== 0) { + missingFields.push(field); + } + }); - // if (missingFields.length > 0) { - // const missingFieldsString = missingFields.join(', '); - // const errorMsg = `Missing fields: ${missingFieldsString}` - // let data = {}; - // data['error'] = errorMsg; - // response = JSON.stringify(data); - // break - // } + if (missingFields.length > 0) { + const missingFieldsString = missingFields.join(', '); + const errorMsg = `Missing fields: ${missingFieldsString}` + let data = {}; + data['error'] = errorMsg; + response = JSON.stringify(data); + break + } - // try { - // this.loader.show(); - // const fee = data.fee || undefined - // const resJoinGroup = await this._deployAt(data.name, data.description, data.tags, data.creationBytes, data.amount, data.assetId, fee, data.type) - // response = JSON.stringify(resJoinGroup); - // } catch (error) { - // const obj = {}; - // const errorMsg = error.message || 'Failed to join the group.'; - // obj['error'] = errorMsg; - // response = JSON.stringify(obj); - // } finally { - // this.loader.hide(); - // } - // break; - // } + try { + this.loader.show(); + + const resDeployAt = await this._deployAt(data.name, data.description, data.tags, data.creationBytes, data.amount, data.assetId, data.type) + response = JSON.stringify(resDeployAt); + } catch (error) { + const obj = {}; + const errorMsg = error.message || 'Failed to join the group.'; + obj['error'] = errorMsg; + response = JSON.stringify(obj); + } finally { + this.loader.hide(); + } + break; + } case actions.GET_WALLET_BALANCE: { From 3f9a729bbce6cb3131a05591acdbd97e4cc07542 Mon Sep 17 00:00:00 2001 From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com> Date: Fri, 25 Aug 2023 19:46:27 +0200 Subject: [PATCH 25/31] Update dependencies --- package-lock.json | 759 ++++++++++++++++------------------------------ package.json | 22 +- 2 files changed, 267 insertions(+), 514 deletions(-) diff --git a/package-lock.json b/package-lock.json index f0e99d26..db2beeef 100644 --- a/package-lock.json +++ b/package-lock.json @@ -44,13 +44,13 @@ "prosemirror-model": "1.19.3", "prosemirror-schema-list": "1.3.0", "prosemirror-state": "1.4.3", - "prosemirror-transform": "1.7.4", + "prosemirror-transform": "1.7.5", "prosemirror-view": "1.31.7", "sass": "1.66.1", "short-unique-id": "4.4.4" }, "devDependencies": { - "@babel/core": "7.22.10", + "@babel/core": "7.22.11", "@material/mwc-button": "0.27.0", "@material/mwc-checkbox": "0.27.0", "@material/mwc-dialog": "0.27.0", @@ -90,18 +90,18 @@ "@rollup/plugin-alias": "5.0.0", "@rollup/plugin-babel": "6.0.3", "@rollup/plugin-commonjs": "25.0.4", - "@rollup/plugin-node-resolve": "15.2.0", + "@rollup/plugin-node-resolve": "15.2.1", "@rollup/plugin-replace": "5.0.2", "@rollup/plugin-terser": "0.4.3", - "@vaadin/avatar": "24.1.5", - "@vaadin/button": "24.1.5", - "@vaadin/grid": "24.1.5", - "@vaadin/icons": "24.1.5", - "@vaadin/password-field": "24.1.5", - "@vaadin/tooltip": "24.1.5", + "@vaadin/avatar": "24.1.6", + "@vaadin/button": "24.1.6", + "@vaadin/grid": "24.1.6", + "@vaadin/icons": "24.1.6", + "@vaadin/password-field": "24.1.6", + "@vaadin/tooltip": "24.1.6", "@zip.js/zip.js": "2.7.24", "axios": "1.4.0", - "electron": "26.0.0", + "electron": "26.1.0", "electron-builder": "24.6.3", "electron-packager": "17.1.2", "epml": "0.3.3", @@ -115,7 +115,7 @@ "pwa-helpers": "0.9.1", "redux": "4.2.1", "redux-thunk": "2.4.2", - "rollup": "3.28.0", + "rollup": "3.28.1", "rollup-plugin-node-globals": "1.4.0", "rollup-plugin-progress": "1.1.2", "rollup-plugin-scss": "3.0.0", @@ -161,9 +161,9 @@ } }, "node_modules/@babel/core": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.10.tgz", - "integrity": "sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.11.tgz", + "integrity": "sha512-lh7RJrtPdhibbxndr6/xx0w8+CVlY5FJZiaSz908Fpy+G0xkBFTvwLcKJFF4PJxVfGhVWNebikpWGnOoC71juQ==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", @@ -171,15 +171,15 @@ "@babel/generator": "^7.22.10", "@babel/helper-compilation-targets": "^7.22.10", "@babel/helper-module-transforms": "^7.22.9", - "@babel/helpers": "^7.22.10", - "@babel/parser": "^7.22.10", + "@babel/helpers": "^7.22.11", + "@babel/parser": "^7.22.11", "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.10", - "@babel/types": "^7.22.10", + "@babel/traverse": "^7.22.11", + "@babel/types": "^7.22.11", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", + "json5": "^2.2.3", "semver": "^6.3.1" }, "engines": { @@ -338,14 +338,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.10.tgz", - "integrity": "sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.11.tgz", + "integrity": "sha512-vyOXC8PBWaGc5h7GMsNx68OH33cypkEDJCHvYVVgVbbxJDROYVtexSk0gK5iCF1xNjRIN2s8ai7hwkWDq5szWg==", "dev": true, "dependencies": { "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.10", - "@babel/types": "^7.22.10" + "@babel/traverse": "^7.22.11", + "@babel/types": "^7.22.11" }, "engines": { "node": ">=6.9.0" @@ -366,9 +366,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.10.tgz", - "integrity": "sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.11.tgz", + "integrity": "sha512-R5zb8eJIBPJriQtbH/htEQy4k7E2dHWlD2Y2VT07JCzwYZHBxV5ZYtM0UhXSNMT74LyxuM+b1jdL7pSesXbC/g==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -378,9 +378,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.10.tgz", - "integrity": "sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.11.tgz", + "integrity": "sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA==", "dev": true, "dependencies": { "regenerator-runtime": "^0.14.0" @@ -404,9 +404,9 @@ } }, "node_modules/@babel/traverse": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.10.tgz", - "integrity": "sha512-Q/urqV4pRByiNNpb/f5OSv28ZlGJiFiiTh+GAHktbIrkPhPbl90+uW6SmpoLyZqutrg9AEaEf3Q/ZBRHBXgxig==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.11.tgz", + "integrity": "sha512-mzAenteTfomcB7mfPtyi+4oe5BZ6MXxWcn4CX+h4IRJ+OOGXBrWU6jDQavkQI9Vuc5P+donFabBfFCcmWka9lQ==", "dev": true, "dependencies": { "@babel/code-frame": "^7.22.10", @@ -415,8 +415,8 @@ "@babel/helper-function-name": "^7.22.5", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.10", - "@babel/types": "^7.22.10", + "@babel/parser": "^7.22.11", + "@babel/types": "^7.22.11", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -425,9 +425,9 @@ } }, "node_modules/@babel/types": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.10.tgz", - "integrity": "sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==", + "version": "7.22.11", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.11.tgz", + "integrity": "sha512-siazHiGuZRz9aB9NpHy9GOs9xiQPKnMzgdr493iI1M67vRXpnEq8ZOOKzezC5q7zwuQ6sDhdSp4SD9ixKSqKZg==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.22.5", @@ -2709,9 +2709,9 @@ } }, "node_modules/@rollup/plugin-node-resolve": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.0.tgz", - "integrity": "sha512-mKur03xNGT8O9ODO6FtT43ITGqHWZbKPdVJHZb+iV9QYcdlhUUB0wgknvA4KCUmC5oHJF6O2W1EgmyOQyVUI4Q==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.1.tgz", + "integrity": "sha512-nsbUg588+GDSu8/NS8T4UAshO6xeaOfINNuXeVHcKV02LJtoRaM1SiOacClw4kws1SFiNhdLGxlbMY9ga/zs/w==", "dev": true, "dependencies": { "@rollup/pluginutils": "^5.0.1", @@ -2835,9 +2835,9 @@ } }, "node_modules/@tiptap/extension-blockquote": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.1.6.tgz", - "integrity": "sha512-y3Jj9XcJaUjlEZZFBQUZcToOjamL64B/Jjlu7JUv87VArWWpg5Pnd2sQG3l9A/q1vfY0/TpHm7r5EvKoeIq6ag==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.1.7.tgz", + "integrity": "sha512-oAsUU1c0DDZKHwK7/uCtYpnTUQt0o3w+SsJSv4S2vlSHidiFl9gCQGozUQ/Alzc7GO1Y95rOscL28DJXgXESQg==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2847,9 +2847,9 @@ } }, "node_modules/@tiptap/extension-bold": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.1.6.tgz", - "integrity": "sha512-gZDVuhYdceBQ/xGGY1X7lmkgNrDHFuFYBFRWMK0pLe9YBlQtJPc6+hiOmCtRtGmbQADDnvMmSU2a0+8bckmbCw==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.1.7.tgz", + "integrity": "sha512-GZV2D91WENkWd1W29vM4kyGWObcxOKQrY8MuCvTdxni1kobEc/LPZzQ1XiQmiNTvXTMcBz5ckLpezdjASV1dNg==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2859,9 +2859,9 @@ } }, "node_modules/@tiptap/extension-bullet-list": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.1.6.tgz", - "integrity": "sha512-NjPL5cIa4wVqv62OEw4lQ4Dj4c2hxia7GtPKHZKjoot5iu1RDkzD9Cxy/0tmH0vfCwTqa0JbGf9FAxRCyok4kg==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.1.7.tgz", + "integrity": "sha512-BReix1wkGNH12DSWGnWPKNu4do92Avh98aLkRS1o1V1Y49/+YGMYtfBXB9obq40o0WqKvk4MoM+rhKbfEc44Gg==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2871,9 +2871,9 @@ } }, "node_modules/@tiptap/extension-code": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.1.6.tgz", - "integrity": "sha512-vFWE74Aipt0kbmWyya+9zvsAgVusbbHx8g3Zqm8iKDt95BY3MWGurCZ3F5uoVuPuWD9VSrbNs4/T6oKbVKc9Ow==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.1.7.tgz", + "integrity": "sha512-g0IA6Q6DFZE0AEOMXAV1mktl/XzIO3s1h/haPIKZ8GNes522qhBr9FYc5OUPQCCbgYjL7soTGzxA/W5Jk3f2AQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2883,9 +2883,9 @@ } }, "node_modules/@tiptap/extension-code-block": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.1.6.tgz", - "integrity": "sha512-tLK9YeHYz03qeG4Sy5uZMq6v5uo34315I4WrfIAujesDloG1v8nd+D9I8A7PD4BWHZOzv13ToVeDYpLYDdvE7Q==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.1.7.tgz", + "integrity": "sha512-uiasfWCIQuk34vGoIENqAJOHf9m3hAkcELnb9T6+uNxA3O7PUZQqBVN/27oEipj7j15pqua50D6C1jql9kFe0g==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2896,9 +2896,9 @@ } }, "node_modules/@tiptap/extension-document": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.1.6.tgz", - "integrity": "sha512-econFqLeQR8pe0xv7kjw6ZPRhcNXGrNi9854celX0lhqTqtBxvU6nWHzUDzoq/lmnXYgpFTPv42AwUEspvpwdw==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.1.7.tgz", + "integrity": "sha512-tZyoPPmvzti7PEnyulXomEtINd/Oi2S84uOt6gw7DTCnDq5bF5sn1IfN8Icqp9t4jDwyLXy2TL0Zg/sR0a2Ibg==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2908,9 +2908,9 @@ } }, "node_modules/@tiptap/extension-dropcursor": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.1.6.tgz", - "integrity": "sha512-+nk4XtCp2+lVf1pzwonaOdIolE9AI3HPAtUO7sthHYLDIm1JEQT2GS3+MVDGHdFKxEGUkB5DEcNLtr/xLTQjZQ==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.1.7.tgz", + "integrity": "sha512-hNk2BuLnNSXlGOQphlzdpFKCKo7uHUFjWuBfzF1S9FMAQgcN7eTia+cCClmXABYfVLW4fT14PC1KiuGjxi9MuA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2921,9 +2921,9 @@ } }, "node_modules/@tiptap/extension-gapcursor": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.1.6.tgz", - "integrity": "sha512-5AH6Je1B6JpZkMBslXw/UglMpxVwL8AXqX5xWKP2OSsKVYcL00jApq709FxfYhyqui/SukUVusKKQFstTNqIGA==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.1.7.tgz", + "integrity": "sha512-7eoInzzk1sssoD3RMkwFC86U15Ja4ANve+8wIC+xhN4R3Oe3PY3lFbp1GQxCmaJj8b3rtjNKIQZ2zO0PH58afA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2934,9 +2934,9 @@ } }, "node_modules/@tiptap/extension-hard-break": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.1.6.tgz", - "integrity": "sha512-znFYceEFbrgxhHZF+/wNQlAn3MWG9/VRqQAFxPGne0csewibKZRwZbeSYZQ16x1vSAlAQsKhIaAst/na/2H8LA==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.1.7.tgz", + "integrity": "sha512-6gFXXlCGAdXjy27BW29q4yfCQPAEFd18k7zRTnbd4aE/zIWUtLqdiTfI3kotUMab9Tt9/z1BRmCbEUxRsf1Nww==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2946,9 +2946,9 @@ } }, "node_modules/@tiptap/extension-heading": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.1.6.tgz", - "integrity": "sha512-V6PImalPhgAxsA95op70ssb8IXehLyr7wu5t1SeoTUUQtvMojKXPd+n+xF5b4b7VIhXHDlGSnoT0/XwjCJY0tQ==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.1.7.tgz", + "integrity": "sha512-jMeTqtq3kbMFtMvUb3SeIt4FFM3W+b6TAw5H4Qd6z3gYsAU3GahRK67MtbJfPmznUkZfimrqW9VCaBezScfrsQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2970,9 +2970,9 @@ } }, "node_modules/@tiptap/extension-history": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.1.6.tgz", - "integrity": "sha512-ltHz9cW3bWi7Z3m960F5eLPAqZDBNOpUP31t9YdKqhyxA16eygryj1USVeus9DX5OBoW79I8EecFAuRo3Rymlw==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.1.7.tgz", + "integrity": "sha512-8SIEKSImrIkqJThym1bPD13sC4/76UrG+piQ30xKQU4B7zUFCbutvrwYuQHSRvaEt8BPdTv2LWIK+wBkIgbWVA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -2983,9 +2983,9 @@ } }, "node_modules/@tiptap/extension-horizontal-rule": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.1.6.tgz", - "integrity": "sha512-1epXM+4DRlhos+Awj4sHApceO2O26tuqyrZot0Mm+mF0yuCGy3B5fefAgUcxBu/oRuywfDl8cwCzN2E/d8KXtA==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.1.7.tgz", + "integrity": "sha512-hJupsDxDVmjmKI/Ewl/gtiyUx52Y3wRUhT8dCXNOA5eldmPXN23E2Fa2BC8XB47dyc5pubyNcLuqaLeaZ5hedw==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3008,9 +3008,9 @@ } }, "node_modules/@tiptap/extension-italic": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.1.6.tgz", - "integrity": "sha512-o41hil+x2yqFciOiJPx67FnguJ4/aEMU8MotmXekFGHM+I0wFOd4lA5t7HqFU5Si0Z7gyTb/N0wLUbAnbyk/Aw==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.1.7.tgz", + "integrity": "sha512-7e37f+OFqisdY19nWIthbSNHMJy4+4dec06rUICPrkiuFaADj5HjUQr0dyWpL/LkZh92Wf/rWgp4V/lEwon3jA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3020,9 +3020,9 @@ } }, "node_modules/@tiptap/extension-list-item": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.1.6.tgz", - "integrity": "sha512-hgG8XzWRvhmEtb70ut2YTWfexMDu4PHgDS8WxYGOCVH0F+DwZqGF5KEARhFSPlmRUCWcmKey4sp8YDpLqShEWA==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.1.7.tgz", + "integrity": "sha512-hd/E4qQopBXWa6kdFY19qFVgqj4fzdPgAnzdXJ2XW7bC6O2CusmHphRRZ5FBsuspYTN/6/fv0i0jK9rSGlsEyA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3032,9 +3032,9 @@ } }, "node_modules/@tiptap/extension-ordered-list": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.1.6.tgz", - "integrity": "sha512-7igbJBSeCByYM9G3XHlK1sqPQtIsOlezdc4PH7xBaOtvNDd1ruGvOGFovo9b5TW8+J08KCAqy25cV4Pn72fuGw==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.1.7.tgz", + "integrity": "sha512-3XIXqbZmYkNzF+8PQ2jcCOCj0lpC3y9HGM/+joPIunhiUiktrIgpbUDv2E1Gq5lJHYqthIeujniI2dB85tkwJQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3044,9 +3044,9 @@ } }, "node_modules/@tiptap/extension-paragraph": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.1.6.tgz", - "integrity": "sha512-k0QSIaJPVgTn9+X2580JFCjV2RCH1Fo+gPodABDnjunfoUVSjuq0rlILEtTuha3evlS6kDKiz7lk7pIoCo36Cw==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.1.7.tgz", + "integrity": "sha512-cLqX27hNrXrwZCKrIW8OC3rW2+MT8hhS37+cdqOxZo5hUqQ9EF/puwS0w8uUZ7B3awX9Jm1QZDMjjERLkcmobw==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3069,9 +3069,9 @@ } }, "node_modules/@tiptap/extension-strike": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.1.6.tgz", - "integrity": "sha512-LX7X2ohKEE0nUyWecSGxBcuzLxXTIbPmUnbkZvqYiWTaE02r3TxzkJMO0iuTnbygceC1TtiAfKwGgth0b9tMCQ==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.1.7.tgz", + "integrity": "sha512-ONLXYnuZGM2EoGcxkyvJSDMBeAp7K6l83UXkK9TSj+VpEEDdeV7m8mJs8/vACJjJxD5HMN61+EPgU7VTEukQCA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3081,9 +3081,9 @@ } }, "node_modules/@tiptap/extension-text": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.1.6.tgz", - "integrity": "sha512-CqV0N6ngoXZFeJGlQ86FSZJ/0k7+BN3S6aSUcb5DRAKsSEv/Ga1LvSG24sHy+dwjTuj3EtRPJSVZTFcSB17ZSA==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.1.7.tgz", + "integrity": "sha512-3xaMMMNydLgoS+o+yOvaZF04ui9spJwJZl8VyYgcJKVGGLGRlWHrireXN5/OqXG2jLb/jWqXVx5idppQjX+PMA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -3249,9 +3249,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.17.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.6.tgz", - "integrity": "sha512-fGmT/P7z7ecA6bv/ia5DlaWCH4YeZvAQMNpUhrJjtAhOhZfoxS1VLUgU2pdk63efSjQaOJWdXMuAJsws+8I6dg==", + "version": "18.17.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.9.tgz", + "integrity": "sha512-fxaKquqYcPOGwE7tC1anJaPJ0GHyOVzfA2oUoXECjBjrtsIz4YJvtNYsq8LUcjEUehEF+jGpx8Z+lFrtT6z0tg==", "devOptional": true }, "node_modules/@types/object.omit": { @@ -3264,17 +3264,6 @@ "resolved": "https://registry.npmjs.org/@types/object.pick/-/object.pick-1.3.2.tgz", "integrity": "sha512-sn7L+qQ6RLPdXRoiaE7bZ/Ek+o4uICma/lBFPyJEKDTPTBP1W8u0c4baj3EiS4DiqLs+Hk+KUGvMVJtAw3ePJg==" }, - "node_modules/@types/plist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/plist/-/plist-3.0.2.tgz", - "integrity": "sha512-ULqvZNGMv0zRFvqn8/4LSPtnmN4MfhlPNtJCTpKuIIxGVGZ2rYWzFXrvEBoh9CVyqSE7D6YFRJ1hydLHI6kbWw==", - "dev": true, - "optional": true, - "dependencies": { - "@types/node": "*", - "xmlbuilder": ">=11.0.1" - } - }, "node_modules/@types/resolve": { "version": "1.20.2", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", @@ -3300,13 +3289,6 @@ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz", "integrity": "sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==" }, - "node_modules/@types/verror": { - "version": "1.10.6", - "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.6.tgz", - "integrity": "sha512-NNm+gdePAX1VGvPcGZCDKQZKYSiAWigKhKaz5KF94hG6f2s8de9Ow5+7AbXoeKxL8gavZfk4UquSAygOF2duEQ==", - "dev": true, - "optional": true - }, "node_modules/@types/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", @@ -3317,72 +3299,72 @@ } }, "node_modules/@vaadin/a11y-base": { - "version": "24.1.5", - "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.1.5.tgz", - "integrity": "sha512-XPP/JSFr18dxlrCvA3QLudtlfylSORX3o7mepwq8nmm9mVG12bJeuPBFIdIxJjaoH7TJyQ6r1K/ErzTa5q/cwQ==", + "version": "24.1.6", + "resolved": "https://registry.npmjs.org/@vaadin/a11y-base/-/a11y-base-24.1.6.tgz", + "integrity": "sha512-2qL805d47GnLL9KEZtMDPKmJ8N/kHuGWHSAop3ldX/BjnGiWlH/OP4GdM3ilLFaVesh45QgwYihK9bpIXcL+7g==", "dev": true, "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "~24.1.5", + "@vaadin/component-base": "~24.1.6", "lit": "^2.0.0" } }, "node_modules/@vaadin/avatar": { - "version": "24.1.5", - "resolved": "https://registry.npmjs.org/@vaadin/avatar/-/avatar-24.1.5.tgz", - "integrity": "sha512-HS46XmrPMkwVLG36IO9WQDfmycqLt0o1jzx+vIBJrUW/PwTaAmk61Q0kjn4rrVYMra39gOoqPg6NV8u6bHZidg==", + "version": "24.1.6", + "resolved": "https://registry.npmjs.org/@vaadin/avatar/-/avatar-24.1.6.tgz", + "integrity": "sha512-EcDS2SjeJWVZlmOeN5R38vYbGs7aQbPOnZrE7i6omE2R7Zupv459Aqi6CyiNfIIV11pbo7E98peEzVWrALuYsw==", "dev": true, "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.5", - "@vaadin/component-base": "~24.1.5", - "@vaadin/item": "~24.1.5", - "@vaadin/list-box": "~24.1.5", - "@vaadin/overlay": "~24.1.5", - "@vaadin/tooltip": "~24.1.5", - "@vaadin/vaadin-lumo-styles": "~24.1.5", - "@vaadin/vaadin-material-styles": "~24.1.5", - "@vaadin/vaadin-themable-mixin": "~24.1.5" + "@vaadin/a11y-base": "~24.1.6", + "@vaadin/component-base": "~24.1.6", + "@vaadin/item": "~24.1.6", + "@vaadin/list-box": "~24.1.6", + "@vaadin/overlay": "~24.1.6", + "@vaadin/tooltip": "~24.1.6", + "@vaadin/vaadin-lumo-styles": "~24.1.6", + "@vaadin/vaadin-material-styles": "~24.1.6", + "@vaadin/vaadin-themable-mixin": "~24.1.6" } }, "node_modules/@vaadin/button": { - "version": "24.1.5", - "resolved": "https://registry.npmjs.org/@vaadin/button/-/button-24.1.5.tgz", - "integrity": "sha512-bznds97SnbOQFzS3/spQAce5cz7GP/v/hxNQsbn3thfXVYQK4txVDUDQq3AIxV8+YPhFLK+3hsSJ9DOej9XtNA==", + "version": "24.1.6", + "resolved": "https://registry.npmjs.org/@vaadin/button/-/button-24.1.6.tgz", + "integrity": "sha512-CnaXvpXHqvCsZ6qhajoNRmvHSziLPZA5Py7QmfnOdkQeWpzAkrW1APJLGisALkTFIqJEfV2BRQRkyKLTsZaf3A==", "dev": true, "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.5", - "@vaadin/component-base": "~24.1.5", - "@vaadin/vaadin-lumo-styles": "~24.1.5", - "@vaadin/vaadin-material-styles": "~24.1.5", - "@vaadin/vaadin-themable-mixin": "~24.1.5", + "@vaadin/a11y-base": "~24.1.6", + "@vaadin/component-base": "~24.1.6", + "@vaadin/vaadin-lumo-styles": "~24.1.6", + "@vaadin/vaadin-material-styles": "~24.1.6", + "@vaadin/vaadin-themable-mixin": "~24.1.6", "lit": "^2.0.0" } }, "node_modules/@vaadin/checkbox": { - "version": "24.1.5", - "resolved": "https://registry.npmjs.org/@vaadin/checkbox/-/checkbox-24.1.5.tgz", - "integrity": "sha512-Ye5FX4iDnYd2SCBgrjtx/vfBzHoVUIOZmqG1IZMgnnf/fXFPZnGcHCLUW7OEDbGJvQqbjaNMhyi+8srmoPok4g==", + "version": "24.1.6", + "resolved": "https://registry.npmjs.org/@vaadin/checkbox/-/checkbox-24.1.6.tgz", + "integrity": "sha512-+Dd/vFK1YLqbt197i22nS/72C2QguZa24dRqWiSOA/Bkdd97lj32ILGI7Zs3HAc71dTx2Bgan8LR1yGuQzNB3Q==", "dev": true, "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.5", - "@vaadin/component-base": "~24.1.5", - "@vaadin/field-base": "~24.1.5", - "@vaadin/vaadin-lumo-styles": "~24.1.5", - "@vaadin/vaadin-material-styles": "~24.1.5", - "@vaadin/vaadin-themable-mixin": "~24.1.5", + "@vaadin/a11y-base": "~24.1.6", + "@vaadin/component-base": "~24.1.6", + "@vaadin/field-base": "~24.1.6", + "@vaadin/vaadin-lumo-styles": "~24.1.6", + "@vaadin/vaadin-material-styles": "~24.1.6", + "@vaadin/vaadin-themable-mixin": "~24.1.6", "lit": "^2.0.0" } }, "node_modules/@vaadin/component-base": { - "version": "24.1.5", - "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.1.5.tgz", - "integrity": "sha512-3gC6JlfVfoFOHwOtv5WZuPt2P2JVt9k6ux7hz/GC05kpWE7Ozyz5NimIySp7aceN6peMYBVEPpMup5scW362BA==", + "version": "24.1.6", + "resolved": "https://registry.npmjs.org/@vaadin/component-base/-/component-base-24.1.6.tgz", + "integrity": "sha512-qw3pqZWUgip1Y/A5117IQywd6bDHoqi1JBVmuMuRc3QgRsn+T9i6d7pfvgoqnUtnQQnJdJUvqb+xWiXRLemnEg==", "dev": true, "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", @@ -3393,173 +3375,173 @@ } }, "node_modules/@vaadin/field-base": { - "version": "24.1.5", - "resolved": "https://registry.npmjs.org/@vaadin/field-base/-/field-base-24.1.5.tgz", - "integrity": "sha512-o6EXWQEcgOO+xUJoRltcmpyo8rxXlkEt8drMOK2RG/hRsqFlrrSgzx3ybA+I9kggh60bi4bYIjJUeJyV4pAmEA==", + "version": "24.1.6", + "resolved": "https://registry.npmjs.org/@vaadin/field-base/-/field-base-24.1.6.tgz", + "integrity": "sha512-Rcs/IvNbzcAAPNwYd/8TkzmvokNJzRDq64+Ie87h8SwrofNa8WEB/budcIG9FazykJjeGDjCU9rRIkWZneCjHA==", "dev": true, "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.5", - "@vaadin/component-base": "~24.1.5", + "@vaadin/a11y-base": "~24.1.6", + "@vaadin/component-base": "~24.1.6", "lit": "^2.0.0" } }, "node_modules/@vaadin/grid": { - "version": "24.1.5", - "resolved": "https://registry.npmjs.org/@vaadin/grid/-/grid-24.1.5.tgz", - "integrity": "sha512-5AXQ8XIzWyeeCeLU57QOZG888TMvDYvpMZJjMnmqPxv4u7xmLhUvQalXWo2wVsFAsuXlBozpllX2ki2gBlmUCA==", + "version": "24.1.6", + "resolved": "https://registry.npmjs.org/@vaadin/grid/-/grid-24.1.6.tgz", + "integrity": "sha512-/5t5iVMABifgC9SxX56S5a59JYaX6xWvQl/gOQYhdzvaeB7cb7ZSnaGcdIpFtKVTnKwSGqgWzEnOwRPSvvSC+Q==", "dev": true, "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.5", - "@vaadin/checkbox": "~24.1.5", - "@vaadin/component-base": "~24.1.5", - "@vaadin/lit-renderer": "~24.1.5", - "@vaadin/text-field": "~24.1.5", - "@vaadin/vaadin-lumo-styles": "~24.1.5", - "@vaadin/vaadin-material-styles": "~24.1.5", - "@vaadin/vaadin-themable-mixin": "~24.1.5" + "@vaadin/a11y-base": "~24.1.6", + "@vaadin/checkbox": "~24.1.6", + "@vaadin/component-base": "~24.1.6", + "@vaadin/lit-renderer": "~24.1.6", + "@vaadin/text-field": "~24.1.6", + "@vaadin/vaadin-lumo-styles": "~24.1.6", + "@vaadin/vaadin-material-styles": "~24.1.6", + "@vaadin/vaadin-themable-mixin": "~24.1.6" } }, "node_modules/@vaadin/icon": { - "version": "24.1.5", - "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.1.5.tgz", - "integrity": "sha512-UIYEWsurzttt4T5Z1MbYCJwJdVwVz2ZCxNT9Y0ETmiPGyAgazLPT9KHHN9t1NQ3IbWDVSEWteGvTyA8u+TQGNA==", + "version": "24.1.6", + "resolved": "https://registry.npmjs.org/@vaadin/icon/-/icon-24.1.6.tgz", + "integrity": "sha512-QZnFZhYARkweJStvPS/fdq8l0XOtOEMnT8Lom0mFYQkuArphRPlxpuKzjigHZFLLStwK4X2LjrVsAL77oR1Czg==", "dev": true, "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "~24.1.5", - "@vaadin/vaadin-lumo-styles": "~24.1.5", - "@vaadin/vaadin-themable-mixin": "~24.1.5", + "@vaadin/component-base": "~24.1.6", + "@vaadin/vaadin-lumo-styles": "~24.1.6", + "@vaadin/vaadin-themable-mixin": "~24.1.6", "lit": "^2.0.0" } }, "node_modules/@vaadin/icons": { - "version": "24.1.5", - "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.1.5.tgz", - "integrity": "sha512-i+cwt3b3Y0nzfwfpIP2eQ5RHe0UOWvXLncH1/Cymzna21vf5yUGiKK5Ufgch58If8/XDBb63RW3BLmWN7fsnyg==", + "version": "24.1.6", + "resolved": "https://registry.npmjs.org/@vaadin/icons/-/icons-24.1.6.tgz", + "integrity": "sha512-+Co71LPCnYdbZidc7hQm6gUAOWsBlfa+XWTZJ3QOPrsubT6gBIoIEiTQ2cc2HYO725mJ3BN/whthyn/lDgD8yQ==", "dev": true, "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/icon": "~24.1.5" + "@vaadin/icon": "~24.1.6" } }, "node_modules/@vaadin/input-container": { - "version": "24.1.5", - "resolved": "https://registry.npmjs.org/@vaadin/input-container/-/input-container-24.1.5.tgz", - "integrity": "sha512-+oxiE3fCE8FvySdao4sYN5GKsJ8w9mK9WAwCc65hqGt/R7EmtKmCR7mYhfpcqLiZFL9qB88c5vd9hmoimZb/AQ==", + "version": "24.1.6", + "resolved": "https://registry.npmjs.org/@vaadin/input-container/-/input-container-24.1.6.tgz", + "integrity": "sha512-d10BLKwvX2WzIV46COIVsy0F9YXofSs7mHJQ7tMPVyGVqtQm63PQa1CMAkmdb9IwW9Da2vAUEFizLv4w8H0ACA==", "dev": true, "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/component-base": "~24.1.5", - "@vaadin/vaadin-lumo-styles": "~24.1.5", - "@vaadin/vaadin-material-styles": "~24.1.5", - "@vaadin/vaadin-themable-mixin": "~24.1.5" + "@vaadin/component-base": "~24.1.6", + "@vaadin/vaadin-lumo-styles": "~24.1.6", + "@vaadin/vaadin-material-styles": "~24.1.6", + "@vaadin/vaadin-themable-mixin": "~24.1.6" } }, "node_modules/@vaadin/item": { - "version": "24.1.5", - "resolved": "https://registry.npmjs.org/@vaadin/item/-/item-24.1.5.tgz", - "integrity": "sha512-UAnjl23UB4cqPFdgP00EHMkCo0FcwnTuqzZTnRGnF50GPwUFCw2TpDOnGzjO7OwNKQMJusBiepDKI9mCqiUo8g==", + "version": "24.1.6", + "resolved": "https://registry.npmjs.org/@vaadin/item/-/item-24.1.6.tgz", + "integrity": "sha512-VbmEpaxIBqxrAdD5KsY5TIKm2C1YTSK4ANyP7s3j9o7lIh0Ja04mwalcp9SZcc+fWy023ZPze3j6D3LvlbYTFA==", "dev": true, "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.5", - "@vaadin/component-base": "~24.1.5", - "@vaadin/vaadin-lumo-styles": "~24.1.5", - "@vaadin/vaadin-material-styles": "~24.1.5", - "@vaadin/vaadin-themable-mixin": "~24.1.5" + "@vaadin/a11y-base": "~24.1.6", + "@vaadin/component-base": "~24.1.6", + "@vaadin/vaadin-lumo-styles": "~24.1.6", + "@vaadin/vaadin-material-styles": "~24.1.6", + "@vaadin/vaadin-themable-mixin": "~24.1.6" } }, "node_modules/@vaadin/list-box": { - "version": "24.1.5", - "resolved": "https://registry.npmjs.org/@vaadin/list-box/-/list-box-24.1.5.tgz", - "integrity": "sha512-0n1MfDNZEwydY9tZUVWN/dsQsJNqoq7iaHYHAbo9Jggaf/zKqkCZOjzAvuzgwFK+GNTOfOldIO1VGBQ54Zj4uQ==", + "version": "24.1.6", + "resolved": "https://registry.npmjs.org/@vaadin/list-box/-/list-box-24.1.6.tgz", + "integrity": "sha512-AlwJhKWoZvqHoG2haaJdYPBKkwqcZPvv/6y3fEH8S5zDszZODhWfrIoxDZI+IMkU8M6WC1Ka60E1eeeUlgRomA==", "dev": true, "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.5", - "@vaadin/component-base": "~24.1.5", - "@vaadin/item": "~24.1.5", - "@vaadin/vaadin-lumo-styles": "~24.1.5", - "@vaadin/vaadin-material-styles": "~24.1.5", - "@vaadin/vaadin-themable-mixin": "~24.1.5" + "@vaadin/a11y-base": "~24.1.6", + "@vaadin/component-base": "~24.1.6", + "@vaadin/item": "~24.1.6", + "@vaadin/vaadin-lumo-styles": "~24.1.6", + "@vaadin/vaadin-material-styles": "~24.1.6", + "@vaadin/vaadin-themable-mixin": "~24.1.6" } }, "node_modules/@vaadin/lit-renderer": { - "version": "24.1.5", - "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-24.1.5.tgz", - "integrity": "sha512-MTHvV1+hz/BuqlqT5tA78hcIWv4uVeytLmkXdk8nXUA8Kk050oY5YzNp+6kgUbrUvOHHPgkyl4ku1sINM0YVDA==", + "version": "24.1.6", + "resolved": "https://registry.npmjs.org/@vaadin/lit-renderer/-/lit-renderer-24.1.6.tgz", + "integrity": "sha512-5um/1gPcxk52QDHR64Uy2YJ3N0p2acka9TnSW4B3ym0l+tLOYnvt5KSg274rhmXCQTdfS9Uyn0TYYUiGc4SbBg==", "dev": true, "dependencies": { "lit": "^2.0.0" } }, "node_modules/@vaadin/overlay": { - "version": "24.1.5", - "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.1.5.tgz", - "integrity": "sha512-cm2xjPcAnq321yqN5Zi2JzTrw63ISmd+HQEsuwoon4SjqsgB04HB0yQWKbe3Kzp6nJeYTxEF8Ze1MEDEpLApXg==", + "version": "24.1.6", + "resolved": "https://registry.npmjs.org/@vaadin/overlay/-/overlay-24.1.6.tgz", + "integrity": "sha512-dxWqHoaKopglNIt909HhhKHqz8Oj522qf9y32NYvhcm2N5Ok05LLR+v9mH4RC1colmuWukPg7Z+VfS004oC2hA==", "dev": true, "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.5", - "@vaadin/component-base": "~24.1.5", - "@vaadin/vaadin-lumo-styles": "~24.1.5", - "@vaadin/vaadin-material-styles": "~24.1.5", - "@vaadin/vaadin-themable-mixin": "~24.1.5" + "@vaadin/a11y-base": "~24.1.6", + "@vaadin/component-base": "~24.1.6", + "@vaadin/vaadin-lumo-styles": "~24.1.6", + "@vaadin/vaadin-material-styles": "~24.1.6", + "@vaadin/vaadin-themable-mixin": "~24.1.6" } }, "node_modules/@vaadin/password-field": { - "version": "24.1.5", - "resolved": "https://registry.npmjs.org/@vaadin/password-field/-/password-field-24.1.5.tgz", - "integrity": "sha512-kXpJnzWp4spBAG6M91gKiGsBeT9CkGBKh3GDSPUh/HVgvOfk6rvlb3LFPKAlVlFTZYd/DpfCvYDGsoDMuSTyyQ==", + "version": "24.1.6", + "resolved": "https://registry.npmjs.org/@vaadin/password-field/-/password-field-24.1.6.tgz", + "integrity": "sha512-GQbCkbwuqTl54fUnHYCgt6WcexW29/T/31Xx9wyJrjPYkOZ0/Imz36p5xGA9btCSXWQv22NS6srIP8MOPZp5jg==", "dev": true, "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/button": "~24.1.5", - "@vaadin/component-base": "~24.1.5", - "@vaadin/text-field": "~24.1.5", - "@vaadin/vaadin-lumo-styles": "~24.1.5", - "@vaadin/vaadin-material-styles": "~24.1.5", - "@vaadin/vaadin-themable-mixin": "~24.1.5" + "@vaadin/button": "~24.1.6", + "@vaadin/component-base": "~24.1.6", + "@vaadin/text-field": "~24.1.6", + "@vaadin/vaadin-lumo-styles": "~24.1.6", + "@vaadin/vaadin-material-styles": "~24.1.6", + "@vaadin/vaadin-themable-mixin": "~24.1.6" } }, "node_modules/@vaadin/text-field": { - "version": "24.1.5", - "resolved": "https://registry.npmjs.org/@vaadin/text-field/-/text-field-24.1.5.tgz", - "integrity": "sha512-xnVeVfe7sDJo1xXTiT7VpOu33qCO0Kjyv/9q+9zMyg74qezSNGkCHDlEuz1FXnYln+DC0s/SJr04S0U175/OJw==", + "version": "24.1.6", + "resolved": "https://registry.npmjs.org/@vaadin/text-field/-/text-field-24.1.6.tgz", + "integrity": "sha512-TcYwbpdhYEasU7HHoqaRGNc2BR/9ALSCio2Vyeo62WGlhnI4ZnmAwiHvgdgLvlHNLTxKaSIdvixGjGzt90rDrA==", "dev": true, "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.5", - "@vaadin/component-base": "~24.1.5", - "@vaadin/field-base": "~24.1.5", - "@vaadin/input-container": "~24.1.5", - "@vaadin/vaadin-lumo-styles": "~24.1.5", - "@vaadin/vaadin-material-styles": "~24.1.5", - "@vaadin/vaadin-themable-mixin": "~24.1.5", + "@vaadin/a11y-base": "~24.1.6", + "@vaadin/component-base": "~24.1.6", + "@vaadin/field-base": "~24.1.6", + "@vaadin/input-container": "~24.1.6", + "@vaadin/vaadin-lumo-styles": "~24.1.6", + "@vaadin/vaadin-material-styles": "~24.1.6", + "@vaadin/vaadin-themable-mixin": "~24.1.6", "lit": "^2.0.0" } }, "node_modules/@vaadin/tooltip": { - "version": "24.1.5", - "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.1.5.tgz", - "integrity": "sha512-ss1IDJMBifMjmioUBpXHM71cPhpKt9jmVWZ+TBfIUZb3qrWU7WCFSVs6bYtTcE1LpTf3KtcltdPiu7crve7ygQ==", + "version": "24.1.6", + "resolved": "https://registry.npmjs.org/@vaadin/tooltip/-/tooltip-24.1.6.tgz", + "integrity": "sha512-jxYsMt1avLsWSLBzC/VVcUlyj868kd7U2W2rrf0OMDf21oZHw2FxlEvaZes/jvzpR/CMh7bWeDOQk1+A0yWCfA==", "dev": true, "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/a11y-base": "~24.1.5", - "@vaadin/component-base": "~24.1.5", - "@vaadin/overlay": "~24.1.5", - "@vaadin/vaadin-lumo-styles": "~24.1.5", - "@vaadin/vaadin-material-styles": "~24.1.5", - "@vaadin/vaadin-themable-mixin": "~24.1.5" + "@vaadin/a11y-base": "~24.1.6", + "@vaadin/component-base": "~24.1.6", + "@vaadin/overlay": "~24.1.6", + "@vaadin/vaadin-lumo-styles": "~24.1.6", + "@vaadin/vaadin-material-styles": "~24.1.6", + "@vaadin/vaadin-themable-mixin": "~24.1.6" } }, "node_modules/@vaadin/vaadin-development-mode-detector": { @@ -3569,30 +3551,30 @@ "dev": true }, "node_modules/@vaadin/vaadin-lumo-styles": { - "version": "24.1.5", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.1.5.tgz", - "integrity": "sha512-zprc+PFd3QvJ22A92NXQduBZFqHk+NJsFtthbHPlgFc+4mTqb/FvDcCU/kncRoOZxY0bzAjcq7WKnmwUTR5reg==", + "version": "24.1.6", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-lumo-styles/-/vaadin-lumo-styles-24.1.6.tgz", + "integrity": "sha512-YjcV4djyU+4ELFEl5Tbwmqpak1/VmlR4zucrulGiyl3z0qrhUdYNGpyVKo0VGKzKK2upRDEuZkoj7Q8v5QkWOw==", "dev": true, "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/icon": "~24.1.5", - "@vaadin/vaadin-themable-mixin": "~24.1.5" + "@vaadin/icon": "~24.1.6", + "@vaadin/vaadin-themable-mixin": "~24.1.6" } }, "node_modules/@vaadin/vaadin-material-styles": { - "version": "24.1.5", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.1.5.tgz", - "integrity": "sha512-+Do5w4cyV6Oi877Cbr0SXL3p099x89upWsOhju7PpOV+pnlGYuIetAzbD1pGuGydZgHoxSfLBHnxHIbtbeipqg==", + "version": "24.1.6", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-material-styles/-/vaadin-material-styles-24.1.6.tgz", + "integrity": "sha512-LPh0JBnG6PfCT+q6gjui9Ge/h2BSk5kuy+iCjX+rvzQrw9q/LkwqVAFDzg/EZVrICl2nQtzz6Z6038G49T+3Kg==", "dev": true, "dependencies": { "@polymer/polymer": "^3.0.0", - "@vaadin/vaadin-themable-mixin": "~24.1.5" + "@vaadin/vaadin-themable-mixin": "~24.1.6" } }, "node_modules/@vaadin/vaadin-themable-mixin": { - "version": "24.1.5", - "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.1.5.tgz", - "integrity": "sha512-nRfV/rGmeYH+65L5ORW9Sdc5/5qs5W6SwMRKSjfuLgGVKGsmyhHFR7vRMKMH8WUJDQ8ah+gmyGim9WJHUqF0fA==", + "version": "24.1.6", + "resolved": "https://registry.npmjs.org/@vaadin/vaadin-themable-mixin/-/vaadin-themable-mixin-24.1.6.tgz", + "integrity": "sha512-nmOkijjbvsrcuyj1w/bx8NzmOJu8+jbf3ZMl45ROU3ostLHD5KsN6fi+MCZpKIfsmYXA9bgeMg4jtVsXXYcwGQ==", "dev": true, "dependencies": { "@open-wc/dedupe-mixin": "^1.3.0", @@ -3885,26 +3867,6 @@ "resolved": "https://registry.npmjs.org/asmcrypto.js/-/asmcrypto.js-2.3.2.tgz", "integrity": "sha512-3FgFARf7RupsZETQ1nHnhLUUvpcttcCq1iZCaVAbJZbCZ5VNRrNyvpDyHTOb0KC3llFcsyOT/a99NZcCbeiEsA==" }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, "node_modules/async": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", @@ -4322,9 +4284,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001521", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001521.tgz", - "integrity": "sha512-fnx1grfpEOvDGH+V17eccmNjucGUnCbP6KL+l5KqBIerp26WK/+RQ7CIDE37KGJjaPyqWXXlFUyKiWmvdNNKmQ==", + "version": "1.0.30001522", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001522.tgz", + "integrity": "sha512-TKiyTVZxJGhsTszLuzb+6vUZSjVOAhClszBr2Ta2k9IwtNBT/4dzmL6aywt0HCgEZlmwJzXJd8yNiob6HgwTRg==", "dev": true, "funding": [ { @@ -4422,23 +4384,6 @@ "node": ">=8" } }, - "node_modules/cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "optional": true, - "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -4662,48 +4607,6 @@ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "dev": true }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true, - "optional": true - }, - "node_modules/crc": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", - "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", - "dev": true, - "optional": true, - "dependencies": { - "buffer": "^5.1.0" - } - }, - "node_modules/crc/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true, - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, "node_modules/crelt": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", @@ -4959,32 +4862,6 @@ "node": ">= 10.0.0" } }, - "node_modules/dmg-license": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/dmg-license/-/dmg-license-1.0.11.tgz", - "integrity": "sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==", - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "@types/plist": "^3.0.1", - "@types/verror": "^1.10.3", - "ajv": "^6.10.0", - "crc": "^3.8.0", - "iconv-corefoundation": "^1.1.7", - "plist": "^3.0.4", - "smart-buffer": "^4.0.2", - "verror": "^1.10.0" - }, - "bin": { - "dmg-license": "bin/dmg-license.js" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/dot-prop": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", @@ -5030,9 +4907,9 @@ } }, "node_modules/electron": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/electron/-/electron-26.0.0.tgz", - "integrity": "sha512-x57bdCaDvgnlc41VOm/UWihJCCiI3OxJKiBgB/e5F7Zd6avo+61mO6IzQS7Bu/k/a1KPjou25EUORR6UPKznBQ==", + "version": "26.1.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-26.1.0.tgz", + "integrity": "sha512-qEh19H09Pysn3ibms5nZ0haIh5pFoOd7/5Ww7gzmAwDQOulRi8Sa2naeueOyIb1GKpf+6L4ix3iceYRAuA5r5Q==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -5433,9 +5310,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.496", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.496.tgz", - "integrity": "sha512-qeXC3Zbykq44RCrBa4kr8v/dWzYJA8rAwpyh9Qd+NKWoJfjG5vvJqy9XOJ9H4P/lqulZBCgUWAYi+FeK5AuJ8g==", + "version": "1.4.500", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.500.tgz", + "integrity": "sha512-P38NO8eOuWOKY1sQk5yE0crNtrjgjJj6r3NrbIKtG18KzCHmHE2Bt+aQA7/y0w3uYsHWxDa6icOohzjLJ4vJ4A==", "dev": true }, "node_modules/electron-updater": { @@ -5746,16 +5623,6 @@ "@types/yauzl": "^2.9.1" } }, - "node_modules/extsprintf": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", - "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "optional": true - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -5977,19 +5844,6 @@ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -6415,23 +6269,6 @@ "node": ">= 6" } }, - "node_modules/iconv-corefoundation": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz", - "integrity": "sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==", - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "cli-truncate": "^2.1.0", - "node-addon-api": "^1.6.3" - }, - "engines": { - "node": "^8.11.2 || >=10" - } - }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -6469,9 +6306,9 @@ "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" }, "node_modules/immutable": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.2.tgz", - "integrity": "sha512-oGXzbEDem9OOpDWZu88jGiYCvIsLHMvGw+8OXlpsvTFvIQplQbjg1B1cvKg8f7Hoch6+NGjpPsH1Fr+Mc2D1aA==" + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.3.tgz", + "integrity": "sha512-808ZFYMsIRAjLAu5xkKo0TsbY9LBy9H5MazTKIEHerNkg0ymgilGfBPMR/3G7d/ihGmuK2Hw8S1izY2d3kd3wA==" }, "node_modules/inflight": { "version": "1.0.6", @@ -7303,13 +7140,6 @@ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, - "node_modules/node-addon-api": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", - "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", - "dev": true, - "optional": true - }, "node_modules/node-fetch": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", @@ -7770,9 +7600,9 @@ } }, "node_modules/prosemirror-menu": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.2.3.tgz", - "integrity": "sha512-13H9+XvdJiUt2vQVMqCveFbc7YfEKR3g70pUwuQdQLwuvNfVGTzMHr1y5dwdY5vOBQbzhmjgnWUnclKzMdnlJA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.2.4.tgz", + "integrity": "sha512-S/bXlc0ODQup6aiBbWVsX/eM+xJgCTAfMq/nLqaO5ID/am4wS0tTCIkzwytmao7ypEtjj39i7YbJjAgO20mIqA==", "dependencies": { "crelt": "^1.0.0", "prosemirror-commands": "^1.0.0", @@ -7855,9 +7685,9 @@ } }, "node_modules/prosemirror-transform": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.7.4.tgz", - "integrity": "sha512-GO38mvqJ2yeI0BbL5E1CdHcly032Dlfn9nHqlnCHqlNf9e9jZwJixxp6VRtOeDZ1uTDpDIziezMKbA41LpAx3A==", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.7.5.tgz", + "integrity": "sha512-U/fWB6frEzY7dzwJUo+ir8dU1JEanaI/RwL12Imy9js/527N0v/IRUKewocP1kTq998JNT18IGtThaDLwLOBxQ==", "dependencies": { "prosemirror-model": "^1.0.0" } @@ -8222,9 +8052,9 @@ } }, "node_modules/rollup": { - "version": "3.28.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.28.0.tgz", - "integrity": "sha512-d7zhvo1OUY2SXSM6pfNjgD5+d0Nz87CUp4mt8l/GgVP3oBsPwzNvSzyu1me6BSG9JIgWNTVcafIXBIyM8yQ3yw==", + "version": "3.28.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.28.1.tgz", + "integrity": "sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -8574,68 +8404,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "optional": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "optional": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "optional": true - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, "node_modules/smob": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/smob/-/smob-1.4.0.tgz", @@ -9170,21 +8938,6 @@ "spdx-expression-parse": "^3.0.0" } }, - "node_modules/verror": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz", - "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==", - "dev": true, - "optional": true, - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/vlq": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", diff --git a/package.json b/package.json index d33b7be7..58c086f5 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "prosemirror-model": "1.19.3", "prosemirror-schema-list": "1.3.0", "prosemirror-state": "1.4.3", - "prosemirror-transform": "1.7.4", + "prosemirror-transform": "1.7.5", "prosemirror-view": "1.31.7", "sass": "1.66.1", "short-unique-id": "4.4.4", @@ -72,7 +72,7 @@ }, "devDependencies": { "axios": "1.4.0", - "electron": "26.0.0", + "electron": "26.1.0", "electron-builder": "24.6.3", "electron-packager": "17.1.2", "epml": "0.3.3", @@ -86,12 +86,12 @@ "passive-events-support": "1.1.0", "redux": "4.2.1", "redux-thunk": "2.4.2", - "rollup": "3.28.0", + "rollup": "3.28.1", "rollup-plugin-node-globals": "1.4.0", "rollup-plugin-progress": "1.1.2", "rollup-plugin-scss": "3.0.0", "shelljs": "0.8.5", - "@babel/core": "7.22.10", + "@babel/core": "7.22.11", "@material/mwc-button": "0.27.0", "@material/mwc-checkbox": "0.27.0", "@material/mwc-dialog": "0.27.0", @@ -131,15 +131,15 @@ "@rollup/plugin-alias": "5.0.0", "@rollup/plugin-babel": "6.0.3", "@rollup/plugin-commonjs": "25.0.4", - "@rollup/plugin-node-resolve": "15.2.0", + "@rollup/plugin-node-resolve": "15.2.1", "@rollup/plugin-replace": "5.0.2", "@rollup/plugin-terser": "0.4.3", - "@vaadin/avatar": "24.1.5", - "@vaadin/button": "24.1.5", - "@vaadin/grid": "24.1.5", - "@vaadin/icons": "24.1.5", - "@vaadin/password-field": "24.1.5", - "@vaadin/tooltip": "24.1.5", + "@vaadin/avatar": "24.1.6", + "@vaadin/button": "24.1.6", + "@vaadin/grid": "24.1.6", + "@vaadin/icons": "24.1.6", + "@vaadin/password-field": "24.1.6", + "@vaadin/tooltip": "24.1.6", "@zip.js/zip.js": "2.7.24" }, "engines": { From 93658b2ba43591e94f2ec1a8b18bdfd1d84e843c Mon Sep 17 00:00:00 2001 From: Phillip Date: Fri, 25 Aug 2023 23:26:56 -0500 Subject: [PATCH 26/31] added notification q-app list --- core/language/us.json | 3 +- .../notification-view/notification-bell.js | 21 ++++++- .../settings-view/notifications-view.js | 57 ++++++++++++++++++- .../plugins/core/components/ChatRightPanel.js | 4 -- .../plugins/core/qdn/browser/browser.src.js | 1 + 5 files changed, 78 insertions(+), 8 deletions(-) diff --git a/core/language/us.json b/core/language/us.json index 7fcfc8a1..206eb418 100644 --- a/core/language/us.json +++ b/core/language/us.json @@ -203,7 +203,8 @@ "exp2": "Export Master Key", "exp3": "Export", "exp4": "Please choose a wallet to backup the private master key.", - "core": "Start Core Settings" + "core": "Start Core Settings", + "qappNotification1": "Q-App notifications" }, "appinfo": { "blockheight": "Block Height", diff --git a/core/src/components/notification-view/notification-bell.js b/core/src/components/notification-view/notification-bell.js index 4ac64130..bb3913c5 100644 --- a/core/src/components/notification-view/notification-bell.js +++ b/core/src/components/notification-view/notification-bell.js @@ -140,7 +140,9 @@ class NotificationBell extends connect(store)(LitElement) { ${this.notificationCount ? html` this._toggleNotifications()} title="Q-Mail"> ` : html` - this._toggleNotifications()} title="Q-Mail"> + { + this._openTabQmail() + }} title="Q-Mail"> `} ${this.notificationCount ? html` @@ -188,6 +190,23 @@ class NotificationBell extends connect(store)(LitElement) { if (this.notifications.length === 0) return this.showNotifications = !this.showNotifications } + _openTabQmail() { + const query = `?service=APP&name=Q-Mail` + store.dispatch(setNewTab({ + url: `qdn/browser/index.html${query}`, + id: 'q-mail-notification', + myPlugObj: { + "url": "qapps", + "domain": "core", + "page": `qdn/browser/index.html${query}`, + "title": "Q-Mail", + "icon": "vaadin:mailbox", + "mwcicon": "mail_outline", + "menus": [], + "parent": false + } + })) + } static styles = css` .layout { diff --git a/core/src/components/settings-view/notifications-view.js b/core/src/components/settings-view/notifications-view.js index ca209c24..1d8fb279 100644 --- a/core/src/components/settings-view/notifications-view.js +++ b/core/src/components/settings-view/notifications-view.js @@ -14,7 +14,8 @@ class NotificationsView extends connect(store)(LitElement) { notificationConfig: { type: Object }, q_chatConfig: { type: Object }, blockConfig: { type: Object }, - theme: { type: String, reflect: true } + theme: { type: String, reflect: true }, + appNotificationList: {type: Array} } } @@ -24,6 +25,11 @@ class NotificationsView extends connect(store)(LitElement) { this.q_chatConfig = {} this.blockConfig = {} this.theme = localStorage.getItem('qortalTheme') ? localStorage.getItem('qortalTheme') : 'light' + this.appNotificationList = [] // Fetch the list of apps from local storage + } + + firstUpdated(){ + this.appNotificationList = this.getAppsFromStorage(); } static get styles() { @@ -42,7 +48,7 @@ class NotificationsView extends connect(store)(LitElement) { text-align: center; } - @media(min-width: 1150px) { + @media(min-width: 1400px) { .notification-box { display: grid; grid-template-columns: 1fr 1fr; @@ -106,6 +112,18 @@ class NotificationsView extends connect(store)(LitElement) { transition: all .2s; position: relative; } + + .remove-button { + font-family: Roboto, sans-serif; + font-size: 16px; + color: var(--mdc-theme-primary); + background-color: transparent; + padding: 8px 10px; + border-radius: 5px; + border: none; + transition: all 0.3s ease-in-out; + cursor: pointer; + } ` } @@ -145,12 +163,47 @@ class NotificationsView extends connect(store)(LitElement) {
+
+

${translate("settings.qappNotification1")}

+ ${this.appNotificationList.map((app)=> html` +
+ ${app} + +
+ `)} + +
${this.renderSetCoreButton()} ` } + getAppsFromStorage() { + // Your method to fetch the list of apps from local storage + // Example: + const address= store.getState().app.selectedAddress.address + const id = `appNotificationList-${address}`; + const data = localStorage.getItem(id); + return data ? Object.keys(JSON.parse(data)) : []; + } + + removeApp(appName) { + // Remove the app from local storage + this.removeAppFromStorage(appName); + // Update the apps list in the component + this.appNotificationList = this.appNotificationList.filter(app => app !== appName); + } + + removeAppFromStorage(appName) { + // Your method to remove the app from local storage + const address= store.getState().app.selectedAddress.address + const id = `appNotificationList-${address}`; + const data = JSON.parse(localStorage.getItem(id) || '{}'); + delete data[appName]; + localStorage.setItem(id, JSON.stringify(data)); + } + renderSetCoreButton() { if (!isElectron()) { return html`` diff --git a/plugins/plugins/core/components/ChatRightPanel.js b/plugins/plugins/core/components/ChatRightPanel.js index fac86ebf..24a90f59 100644 --- a/plugins/plugins/core/components/ChatRightPanel.js +++ b/plugins/plugins/core/components/ChatRightPanel.js @@ -225,7 +225,6 @@ class ChatRightPanel extends LitElement { if(this.groupMembers.length < 20){ return } - console.log('this.leaveGroupObjp', this.leaveGroupObj) this.getMoreMembers(this.leaveGroupObj.groupId) } } @@ -252,7 +251,6 @@ class ChatRightPanel extends LitElement { activeChatHeadUrl="" .setActiveChatHeadUrl=${(val) => { if (val.address === this.myAddress) return; - console.log({ val }); this.selectedHead = val; this.setOpenUserInfo(true); this.setUserName({ @@ -269,7 +267,6 @@ class ChatRightPanel extends LitElement { activeChatHeadUrl="" .setActiveChatHeadUrl=${(val) => { if (val.address === this.myAddress) return; - console.log({ val }); this.selectedHead = val; this.setOpenUserInfo(true); this.setUserName({ @@ -286,7 +283,6 @@ class ChatRightPanel extends LitElement { activeChatHeadUrl="" .setActiveChatHeadUrl=${(val) => { if (val.address === this.myAddress) return; - console.log({ val }); this.selectedHead = val; this.setOpenUserInfo(true); this.setUserName({ diff --git a/plugins/plugins/core/qdn/browser/browser.src.js b/plugins/plugins/core/qdn/browser/browser.src.js index fd3d30de..94834fd8 100644 --- a/plugins/plugins/core/qdn/browser/browser.src.js +++ b/plugins/plugins/core/qdn/browser/browser.src.js @@ -2831,6 +2831,7 @@ class WebBrowser extends LitElement { } } addAppToNotificationList(appName) { + if(!appName) throw new Error('unknown app name') const id = `appNotificationList-${this.selectedAddress.address}`; const checkData = localStorage.getItem(id) ? JSON.parse(localStorage.getItem(id)) : null; From d989ce6e4ff70948d4bec8ac2951a2ebf6da19c6 Mon Sep 17 00:00:00 2001 From: Phillip Date: Tue, 29 Aug 2023 12:23:59 -0500 Subject: [PATCH 27/31] change url --- electron.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/electron.js b/electron.js index dea2efa6..eabb96eb 100644 --- a/electron.js +++ b/electron.js @@ -845,7 +845,7 @@ function createWindow() { }) myWindow.maximize() myWindow.show() - myWindow.loadURL('http://localhost:12388/app/wallet') + myWindow.loadURL('http://localhost:12388/app') myWindow.on('closed', function () { myWindow = null }) @@ -886,7 +886,7 @@ function createNewWindow() { show: false }) newWindow.show() - newWindow.loadURL('http://localhost:12388/app/wallet') + newWindow.loadURL('http://localhost:12388/app') newWindow.on('closed', function () { newWindow = null }) From 47cc31f6933c6f305dfa5672e0b4141f583da6dc Mon Sep 17 00:00:00 2001 From: Phillip Date: Tue, 29 Aug 2023 12:36:29 -0500 Subject: [PATCH 28/31] add break --- plugins/plugins/core/qdn/browser/browser.src.js | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/plugins/core/qdn/browser/browser.src.js b/plugins/plugins/core/qdn/browser/browser.src.js index 2ab51ea1..1337611b 100644 --- a/plugins/plugins/core/qdn/browser/browser.src.js +++ b/plugins/plugins/core/qdn/browser/browser.src.js @@ -1332,6 +1332,7 @@ class WebBrowser extends LitElement { try { await this.linkOpenNewTab(data.qortalLink) response = true + break; } catch (error) { console.log('error', error) const obj = {}; From cb3d71b779daa1810931de961dfd197474b368e2 Mon Sep 17 00:00:00 2001 From: Phillip Date: Tue, 29 Aug 2023 12:39:26 -0500 Subject: [PATCH 29/31] add another break --- plugins/plugins/core/qdn/browser/browser.src.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/plugins/core/qdn/browser/browser.src.js b/plugins/plugins/core/qdn/browser/browser.src.js index 1337611b..a18f2f37 100644 --- a/plugins/plugins/core/qdn/browser/browser.src.js +++ b/plugins/plugins/core/qdn/browser/browser.src.js @@ -1356,6 +1356,9 @@ class WebBrowser extends LitElement { this.addAppToNotificationList(this.name) response = true break; + } else { + response = false + break; } } catch (error) { From e4f9ec88559e8d81b01aa4ddec429a7d416c2964 Mon Sep 17 00:00:00 2001 From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com> Date: Fri, 1 Sep 2023 15:55:23 +0200 Subject: [PATCH 30/31] Get on every build new generated so it is not fixed --- core/src/redux/app/version.js | 1 - 1 file changed, 1 deletion(-) delete mode 100644 core/src/redux/app/version.js diff --git a/core/src/redux/app/version.js b/core/src/redux/app/version.js deleted file mode 100644 index 51e897a7..00000000 --- a/core/src/redux/app/version.js +++ /dev/null @@ -1 +0,0 @@ -export const UI_VERSION = "4.3.0"; From d6a17fc953844a8e51674c6d2758d36a7afbc869 Mon Sep 17 00:00:00 2001 From: AlphaX-Projects <77661270+AlphaX-Projects@users.noreply.github.com> Date: Fri, 1 Sep 2023 16:10:01 +0200 Subject: [PATCH 31/31] Update dependencies --- package-lock.json | 319 ++++++++++++++++++++++++++++++++++++++++------ package.json | 4 +- 2 files changed, 285 insertions(+), 38 deletions(-) diff --git a/package-lock.json b/package-lock.json index db2beeef..bb0e8dfb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -99,8 +99,8 @@ "@vaadin/icons": "24.1.6", "@vaadin/password-field": "24.1.6", "@vaadin/tooltip": "24.1.6", - "@zip.js/zip.js": "2.7.24", - "axios": "1.4.0", + "@zip.js/zip.js": "2.7.27", + "axios": "1.5.0", "electron": "26.1.0", "electron-builder": "24.6.3", "electron-packager": "17.1.2", @@ -139,12 +139,12 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.10.tgz", - "integrity": "sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dev": true, "dependencies": { - "@babel/highlight": "^7.22.10", + "@babel/highlight": "^7.22.13", "chalk": "^2.4.2" }, "engines": { @@ -352,9 +352,9 @@ } }, "node_modules/@babel/highlight": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.10.tgz", - "integrity": "sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz", + "integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.22.5", @@ -366,9 +366,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.11.tgz", - "integrity": "sha512-R5zb8eJIBPJriQtbH/htEQy4k7E2dHWlD2Y2VT07JCzwYZHBxV5ZYtM0UhXSNMT74LyxuM+b1jdL7pSesXbC/g==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.13.tgz", + "integrity": "sha512-3l6+4YOvc9wx7VlCSw4yQfcBo01ECA8TicQfbnCPuCEpRQrf+gTUyGdxNw+pyTUyywp6JRD1w0YQs9TpBXYlkw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -2777,9 +2777,9 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.3.tgz", - "integrity": "sha512-hfllNN4a80rwNQ9QCxhxuHCGHMAvabXqxNdaChUSSadMre7t4iEUI6fFAhBOn/eIYTgYVhBv7vCLsAJ4u3lf3g==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.4.tgz", + "integrity": "sha512-0KJnIoRI8A+a1dqOYLxH8vBf8bphDmty5QvIm2hqm7oFCFYKCAZWWd2hXgMibaPsNDhI0AtpYfQZJG47pt/k4g==", "dev": true, "dependencies": { "@types/estree": "^1.0.0", @@ -3249,9 +3249,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.17.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.9.tgz", - "integrity": "sha512-fxaKquqYcPOGwE7tC1anJaPJ0GHyOVzfA2oUoXECjBjrtsIz4YJvtNYsq8LUcjEUehEF+jGpx8Z+lFrtT6z0tg==", + "version": "18.17.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.12.tgz", + "integrity": "sha512-d6xjC9fJ/nSnfDeU0AMDsaJyb1iHsqCSOdi84w4u+SlN/UgQdY5tRhpMzaFYsI4mnpvgTivEaQd0yOUhAtOnEQ==", "devOptional": true }, "node_modules/@types/object.omit": { @@ -3264,6 +3264,17 @@ "resolved": "https://registry.npmjs.org/@types/object.pick/-/object.pick-1.3.2.tgz", "integrity": "sha512-sn7L+qQ6RLPdXRoiaE7bZ/Ek+o4uICma/lBFPyJEKDTPTBP1W8u0c4baj3EiS4DiqLs+Hk+KUGvMVJtAw3ePJg==" }, + "node_modules/@types/plist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/plist/-/plist-3.0.2.tgz", + "integrity": "sha512-ULqvZNGMv0zRFvqn8/4LSPtnmN4MfhlPNtJCTpKuIIxGVGZ2rYWzFXrvEBoh9CVyqSE7D6YFRJ1hydLHI6kbWw==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*", + "xmlbuilder": ">=11.0.1" + } + }, "node_modules/@types/resolve": { "version": "1.20.2", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", @@ -3289,6 +3300,13 @@ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz", "integrity": "sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==" }, + "node_modules/@types/verror": { + "version": "1.10.6", + "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.6.tgz", + "integrity": "sha512-NNm+gdePAX1VGvPcGZCDKQZKYSiAWigKhKaz5KF94hG6f2s8de9Ow5+7AbXoeKxL8gavZfk4UquSAygOF2duEQ==", + "dev": true, + "optional": true + }, "node_modules/@types/yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", @@ -3610,9 +3628,9 @@ } }, "node_modules/@zip.js/zip.js": { - "version": "2.7.24", - "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.24.tgz", - "integrity": "sha512-RKXojDXeJcqOLLDFYrPYD0z3YFRaLjuOIAka789VVPGcMeCDEQv08ypNThMt+u+R2b9ISyhWiz43UBrgV1ZcbA==", + "version": "2.7.27", + "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.27.tgz", + "integrity": "sha512-hKNtKPXkkcz2D4QWzaampsZf4yISRvmU3By35+yLfD73fd68YGF/WAYMJi5VEWJtApEy0mPWHWVqODSymwGykQ==", "dev": true, "engines": { "bun": ">=0.7.0", @@ -3867,6 +3885,26 @@ "resolved": "https://registry.npmjs.org/asmcrypto.js/-/asmcrypto.js-2.3.2.tgz", "integrity": "sha512-3FgFARf7RupsZETQ1nHnhLUUvpcttcCq1iZCaVAbJZbCZ5VNRrNyvpDyHTOb0KC3llFcsyOT/a99NZcCbeiEsA==" }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, "node_modules/async": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", @@ -3915,9 +3953,9 @@ } }, "node_modules/axios": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", - "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.0.tgz", + "integrity": "sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==", "dev": true, "dependencies": { "follow-redirects": "^1.15.0", @@ -4284,9 +4322,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001522", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001522.tgz", - "integrity": "sha512-TKiyTVZxJGhsTszLuzb+6vUZSjVOAhClszBr2Ta2k9IwtNBT/4dzmL6aywt0HCgEZlmwJzXJd8yNiob6HgwTRg==", + "version": "1.0.30001524", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001524.tgz", + "integrity": "sha512-Jj917pJtYg9HSJBF95HVX3Cdr89JUyLT4IZ8SvM5aDRni95swKgYi3TgYLH5hnGfPE/U1dg6IfZ50UsIlLkwSA==", "dev": true, "funding": [ { @@ -4384,6 +4422,23 @@ "node": ">=8" } }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "optional": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -4607,6 +4662,48 @@ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "dev": true }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true, + "optional": true + }, + "node_modules/crc": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", + "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", + "dev": true, + "optional": true, + "dependencies": { + "buffer": "^5.1.0" + } + }, + "node_modules/crc/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "optional": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "node_modules/crelt": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", @@ -4862,6 +4959,32 @@ "node": ">= 10.0.0" } }, + "node_modules/dmg-license": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/dmg-license/-/dmg-license-1.0.11.tgz", + "integrity": "sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "@types/plist": "^3.0.1", + "@types/verror": "^1.10.3", + "ajv": "^6.10.0", + "crc": "^3.8.0", + "iconv-corefoundation": "^1.1.7", + "plist": "^3.0.4", + "smart-buffer": "^4.0.2", + "verror": "^1.10.0" + }, + "bin": { + "dmg-license": "bin/dmg-license.js" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/dot-prop": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", @@ -5310,9 +5433,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.500", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.500.tgz", - "integrity": "sha512-P38NO8eOuWOKY1sQk5yE0crNtrjgjJj6r3NrbIKtG18KzCHmHE2Bt+aQA7/y0w3uYsHWxDa6icOohzjLJ4vJ4A==", + "version": "1.4.505", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.505.tgz", + "integrity": "sha512-0A50eL5BCCKdxig2SsCXhpuztnB9PfUgRMojj5tMvt8O54lbwz3t6wNgnpiTRosw5QjlJB7ixhVyeg8daLQwSQ==", "dev": true }, "node_modules/electron-updater": { @@ -5623,6 +5746,16 @@ "@types/yauzl": "^2.9.1" } }, + "node_modules/extsprintf": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", + "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "optional": true + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -5844,6 +5977,19 @@ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -6269,6 +6415,23 @@ "node": ">= 6" } }, + "node_modules/iconv-corefoundation": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz", + "integrity": "sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "cli-truncate": "^2.1.0", + "node-addon-api": "^1.6.3" + }, + "engines": { + "node": "^8.11.2 || >=10" + } + }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -6306,9 +6469,9 @@ "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" }, "node_modules/immutable": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.3.tgz", - "integrity": "sha512-808ZFYMsIRAjLAu5xkKo0TsbY9LBy9H5MazTKIEHerNkg0ymgilGfBPMR/3G7d/ihGmuK2Hw8S1izY2d3kd3wA==" + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz", + "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==" }, "node_modules/inflight": { "version": "1.0.6", @@ -7140,6 +7303,13 @@ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, + "node_modules/node-addon-api": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", + "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", + "dev": true, + "optional": true + }, "node_modules/node-fetch": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", @@ -8404,6 +8574,68 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "optional": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "optional": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "optional": true + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "optional": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, "node_modules/smob": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/smob/-/smob-1.4.0.tgz", @@ -8672,9 +8904,9 @@ } }, "node_modules/terser": { - "version": "5.19.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.2.tgz", - "integrity": "sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA==", + "version": "5.19.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.3.tgz", + "integrity": "sha512-pQzJ9UJzM0IgmT4FAtYI6+VqFf0lj/to58AV0Xfgg0Up37RyPG7Al+1cepC6/BVuAxR9oNb41/DL4DEoHJvTdg==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -8938,6 +9170,21 @@ "spdx-expression-parse": "^3.0.0" } }, + "node_modules/verror": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz", + "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==", + "dev": true, + "optional": true, + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, "node_modules/vlq": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", diff --git a/package.json b/package.json index 58c086f5..65e9721f 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "@tiptap/starter-kit": "2.0.4" }, "devDependencies": { - "axios": "1.4.0", + "axios": "1.5.0", "electron": "26.1.0", "electron-builder": "24.6.3", "electron-packager": "17.1.2", @@ -140,7 +140,7 @@ "@vaadin/icons": "24.1.6", "@vaadin/password-field": "24.1.6", "@vaadin/tooltip": "24.1.6", - "@zip.js/zip.js": "2.7.24" + "@zip.js/zip.js": "2.7.27" }, "engines": { "node": ">=18.16.1"