Merge branch 'Qortal:master' into master

This commit is contained in:
kennycud 2023-11-27 05:16:43 -08:00 committed by GitHub
commit ad59f8f60d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
112 changed files with 540 additions and 418 deletions

View File

@ -2,7 +2,7 @@ import {css, html, LitElement} from 'lit'
import {connect} from 'pwa-helpers'
import {store} from '../store.js'
import {doPageUrl} from '../redux/app/app-actions.js'
import {translate} from 'lit-translate'
import {translate} from '../../translate/index.js'
import WebWorker from 'web-worker:./computePowWorker.js';
import {routes} from '../plugins/routes.js';

View File

@ -3,7 +3,7 @@ import { connect } from 'pwa-helpers'
import { store } from '../store.js'
import { Epml } from '../epml.js'
import { addTradeBotRoutes } from '../tradebot/addTradeBotRoutes.js'
import { get, translate } from 'lit-translate'
import { get, translate } from '../../translate/index.js'
import localForage from 'localforage'
import { decryptData, encryptData } from '../lockScreen.js'
import { setChatLastSeen } from '../redux/app/app-actions.js'

View File

@ -1,5 +1,5 @@
import {css, html, LitElement} from 'lit'
import {translate} from 'lit-translate'
import {translate} from '../../translate/index.js'
import isElectron from 'is-electron'
import '@polymer/paper-icon-button/paper-icon-button.js'

View File

@ -1,5 +1,5 @@
import {css, html, LitElement} from 'lit'
import {get} from 'lit-translate'
import {get} from '../../../translate/index.js'
import '@material/mwc-icon'
import '@vaadin/tooltip';

View File

@ -1,5 +1,5 @@
import {css, html, LitElement} from 'lit';
import {translate,} from 'lit-translate';
import {translate,} from '../../../translate/index.js'
import '@material/mwc-button';
import '@material/mwc-dialog';
import '@material/mwc-checkbox';

View File

@ -1,5 +1,5 @@
import { LitElement, html, css } from 'lit';
import { get, translate } from 'lit-translate';
import { get, translate } from '../../../translate/index.js'
import axios from 'axios';
import '@material/mwc-menu';
import '@material/mwc-list/mwc-list-item.js';

View File

@ -1,7 +1,7 @@
import {css, html, LitElement} from 'lit'
import {store} from '../../store'
import {connect} from 'pwa-helpers'
import {translate} from 'lit-translate'
import {translate} from '../../../translate/index.js'
class CoreSyncStatus extends connect(store)(LitElement) {
static get properties() {

View File

@ -1,5 +1,5 @@
import {css, html, LitElement} from 'lit';
import {translate,} from 'lit-translate';
import {translate,} from '../../../translate/index.js'
import axios from 'axios'
import '@material/mwc-menu';
import '@material/mwc-list/mwc-list-item.js'

View File

@ -2,7 +2,7 @@
import { css, html, LitElement } from 'lit';
import { createPopper } from '@popperjs/core';
import '@material/mwc-icon';
import { translate } from 'lit-translate';
import { translate } from '../../../translate/index.js'
import { store } from '../../store';
import { connect } from 'pwa-helpers';
import { setNewTab, setSideEffectAction } from '../../redux/app/app-actions';

View File

@ -5,7 +5,7 @@ import {friendsViewStyles} from './friends-view-css';
import {connect} from 'pwa-helpers';
import {store} from '../../store';
import './feed-item'
import {translate} from 'lit-translate';
import {translate} from '../../../translate/index.js'
import '@polymer/paper-spinner/paper-spinner-lite.js'

View File

@ -1,24 +1,23 @@
import {css, html, LitElement} from 'lit';
import '@material/mwc-icon';
import './friends-side-panel.js';
import '@vaadin/tooltip';
import {translate} from 'lit-translate';
import {css, html, LitElement} from 'lit'
import '@material/mwc-icon'
import './friends-side-panel.js'
import '@vaadin/tooltip'
import {translate} from '../../../translate/index.js'
class FriendsSidePanelParent extends LitElement {
static get properties() {
return {
isOpen: {type: Boolean},
hasNewFeed: {type: Boolean}
};
}
}
constructor() {
super();
super()
this.isOpen = false
this.hasNewFeed = false
}
static styles = css`
.header {
display: flex;
@ -46,36 +45,39 @@ class FriendsSidePanelParent extends LitElement {
transform: translateX(0); /* slide in to its original position */
}
`;
`
setHasNewFeed(val){
this.hasNewFeed = val
}
render() {
return html`
<mwc-icon id="friends-icon" @click=${()=> {
this.isOpen = !this.isOpen
if(this.isOpen && this.hasNewFeed){
localStorage.setItem('lastSeenFeed', Date.now());
this.hasNewFeed = false
this.shadowRoot.querySelector("friends-side-panel").selected = 'feed'
}
}} style="color: ${this.hasNewFeed ? 'green' : 'var(--black)'}; cursor:pointer;user-select:none"
>group</mwc-icon
<mwc-icon
id="friends-icon"
@click=${()=> {
this.isOpen = !this.isOpen
if(this.isOpen && this.hasNewFeed) {
localStorage.setItem('lastSeenFeed', Date.now())
this.hasNewFeed = false
this.shadowRoot.querySelector("friends-side-panel").selected = 'feed'
}
}} style="color: ${this.hasNewFeed ? 'green' : 'var(--black)'}; cursor:pointer;user-select:none"
>
group
</mwc-icon>
<vaadin-tooltip
for="friends-icon"
position="bottom"
hover-delay=${400}
hide-delay=${1}
text=${translate('friends.friend12')}>
</vaadin-tooltip>
for="friends-icon"
position="bottom"
hover-delay=${400}
hide-delay=${1}
text=${translate('friends.friend12')}
>
</vaadin-tooltip>
<friends-side-panel .setHasNewFeed=${(val)=> this.setHasNewFeed(val)} ?isOpen=${this.isOpen} .setIsOpen=${(val)=> this.isOpen = val}></friends-side-panel>
`;
`
}
}
customElements.define('friends-side-panel-parent', FriendsSidePanelParent);
customElements.define('friends-side-panel-parent', FriendsSidePanelParent)

View File

@ -2,7 +2,7 @@ import {css, html, LitElement} from 'lit';
import '@material/mwc-icon';
import './friends-view'
import './friends-feed'
import {translate} from 'lit-translate';
import {translate} from '../../../translate/index.js'
class FriendsSidePanel extends LitElement {
static get properties() {

View File

@ -13,7 +13,7 @@ import './ChatSideNavHeads';
import '../../../../plugins/plugins/core/components/ChatSearchResults'
import './add-friends-modal'
import {translate,} from 'lit-translate';
import {translate,} from '../../../translate/index.js'
import {store} from '../../store';
import {friendsViewStyles} from './friends-view-css';
import {parentEpml} from '../show-plugin';

View File

@ -1,12 +1,6 @@
import { LitElement, html, css } from 'lit';
import { render } from 'lit/html.js';
import {
use,
get,
translate,
translateUnsafeHTML,
registerTranslateConfig,
} from 'lit-translate';
import { use, get, translate, translateUnsafeHTML, registerTranslateConfig } from '../../../translate/index.js'
import '@material/mwc-button';
import '@material/mwc-icon';
import '@vaadin/tooltip';

View File

@ -6,7 +6,7 @@ import { store } from '../../store.js';
import WebWorker2 from '../WebWorkerFile.js';
import '@polymer/paper-spinner/paper-spinner-lite.js';
import '@vaadin/tooltip';
import { get, translate } from 'lit-translate';
import { get, translate } from '../../../translate/index.js'
import ShortUniqueId from 'short-unique-id';
import '@polymer/paper-dialog/paper-dialog.js';

View File

@ -6,7 +6,7 @@ import { store } from '../../store.js';
import WebWorker from '../WebWorkerFile.js';
import '@polymer/paper-spinner/paper-spinner-lite.js';
import '@vaadin/tooltip';
import { get, translate } from 'lit-translate';
import { get, translate } from '../../../translate/index.js'
import ShortUniqueId from 'short-unique-id';
import {

View File

@ -1,5 +1,5 @@
import {css, html, LitElement} from 'lit'
import {registerTranslateConfig, translate, use} from 'lit-translate'
import {registerTranslateConfig, translate, use} from '../../translate/index.js'
registerTranslateConfig({
loader: lang => fetch(`/language/${lang}.json`).then(res => res.json())

View File

@ -1,7 +1,7 @@
import {css, html, LitElement} from 'lit'
import {connect} from 'pwa-helpers'
import {store} from '../../store.js'
import {get, translate} from 'lit-translate'
import {get, translate} from '../../../translate/index.js'
import {createWallet} from '../../../../crypto/api/createWallet.js'
import {doLogin, doLogout, doSelectAddress} from '../../redux/app/app-actions.js'

View File

@ -2,7 +2,7 @@ import {css, html, LitElement} from 'lit'
import {connect} from 'pwa-helpers'
import {store} from '../../store.js'
import {checkApiKey} from '../../apiKeyUtils.js'
import {translate} from 'lit-translate'
import {translate} from '../../../translate/index.js'
import '@material/mwc-button'
import '@material/mwc-checkbox'

View File

@ -2,7 +2,7 @@ import {css, html, LitElement} from 'lit'
import {connect} from 'pwa-helpers'
import {store} from '../../store.js'
import {stateAwait} from '../../stateAwait.js'
import {get} from 'lit-translate'
import {get} from '../../../translate/index.js'
import '@material/mwc-button'
import '@material/mwc-icon'

View File

@ -1,5 +1,5 @@
import {css, html, LitElement} from 'lit'
import {translate} from 'lit-translate'
import {translate} from '../../../translate/index.js'
import '@material/mwc-button'

View File

@ -2,7 +2,7 @@ import {css, html, LitElement} from 'lit'
import {connect} from 'pwa-helpers'
import {store} from '../../store.js'
import {doLogout} from '../../redux/app/app-actions.js'
import {translate} from 'lit-translate'
import {translate} from '../../../translate/index.js'
import '@polymer/paper-dialog/paper-dialog.js'
import '@material/mwc-button'

View File

@ -1,5 +1,5 @@
import {css, html, LitElement} from 'lit'
import {registerTranslateConfig, translate, use} from 'lit-translate'
import {registerTranslateConfig, translate, use} from '../../translate/index.js'
registerTranslateConfig({
loader: lang => fetch(`/language/${lang}.json`).then(res => res.json())

View File

@ -8,7 +8,7 @@ import '@polymer/iron-icons/iron-icons.js';
import {store} from '../../store.js';
import {setNewNotification} from '../../redux/app/app-actions.js';
import '@material/mwc-icon';
import {get, translate} from 'lit-translate';
import {get, translate} from '../../../translate/index.js'
import {repeat} from 'lit/directives/repeat.js';
import '../../../../plugins/plugins/core/components/TimeAgo.js';
import './popover.js';

View File

@ -1,5 +1,5 @@
import {css, html, LitElement} from 'lit'
import {get, translate} from 'lit-translate'
import {get, translate} from '../../translate/index.js'
import snackbar from '../functional-components/snackbar.js'
import '@polymer/paper-icon-button/paper-icon-button.js'

View File

@ -1,7 +1,7 @@
import { LitElement, html, css } from 'lit'
import { connect } from 'pwa-helpers'
import { store } from '../../store.js'
import { get, translate } from 'lit-translate'
import { get, translate } from '../../../translate/index.js'
class AccountView extends connect(store)(LitElement) {
static get properties() {

View File

@ -3,7 +3,7 @@ import {connect} from 'pwa-helpers'
import {store} from '../../store.js'
import { Epml } from '../../epml.js'
import { addTradeBotRoutes } from '../../tradebot/addTradeBotRoutes.js'
import {get, translate} from 'lit-translate'
import {get, translate} from '../../../translate/index.js'
import snackbar from '../../functional-components/snackbar.js'
import FileSaver from 'file-saver'

View File

@ -2,7 +2,7 @@ import {css, html, LitElement} from 'lit'
import {connect} from 'pwa-helpers'
import {store} from '../../store.js'
import {doSetQChatNotificationConfig} from '../../redux/user/user-actions.js'
import {translate} from 'lit-translate'
import {translate} from '../../../translate/index.js'
import isElectron from 'is-electron'
import '@material/mwc-checkbox'

View File

@ -1,7 +1,7 @@
import {css, html, LitElement} from 'lit'
import {connect} from 'pwa-helpers'
import {store} from '../../store.js'
import {translate} from 'lit-translate'
import {translate} from '../../../translate/index.js'
import '@material/mwc-textfield'
import '@material/mwc-icon'

View File

@ -10,7 +10,7 @@ import {
removeQAPPAutoLists,
setIsOpenDevDialog
} from '../../redux/app/app-actions.js'
import {get, translate} from 'lit-translate'
import {get, translate} from '../../../translate/index.js'
import snackbar from '../../functional-components/snackbar.js'
import FileSaver from 'file-saver'

View File

@ -1,7 +1,7 @@
import {css, html, LitElement} from 'lit'
import {connect} from 'pwa-helpers'
import {store} from '../../store.js'
import {translate} from 'lit-translate'
import {translate} from '../../../translate/index.js'
import '@polymer/paper-dialog/paper-dialog.js'
import '@material/mwc-button'

View File

@ -8,7 +8,7 @@ import {repeat} from 'lit/directives/repeat.js';
import ShortUniqueId from 'short-unique-id';
import {setIsOpenDevDialog, setNewTab} from '../redux/app/app-actions.js'
import FileSaver from 'file-saver'
import {get, registerTranslateConfig, translate, use} from 'lit-translate'
import {get, registerTranslateConfig, translate, use} from '../../translate/index.js'
import '@material/mwc-button'
import '@material/mwc-dialog'
import '@material/mwc-icon'

View File

@ -1,7 +1,7 @@
import {css, html, LitElement} from 'lit';
import {connect} from 'pwa-helpers';
import {store} from '../store.js';
import {get, translate} from 'lit-translate';
import {get, translate} from '../../translate/index.js'
import {asyncReplace} from 'lit/directives/async-replace.js';
import '../functional-components/my-button.js';

View File

@ -1,5 +1,5 @@
import {css, html, LitElement} from 'lit'
import {translate} from 'lit-translate'
import {translate} from '../../translate/index.js'
import '@polymer/paper-icon-button/paper-icon-button.js'
import '@polymer/iron-icons/image-icons.js'
import '@polymer/iron-icons/iron-icons.js'

View File

@ -2,7 +2,7 @@ import {css, html, LitElement} from 'lit'
import {render} from 'lit/html.js'
import {connect} from 'pwa-helpers'
import {store} from '../../store.js'
import {get, translate} from 'lit-translate'
import {get, translate} from '../../../translate/index.js'
import '@polymer/paper-dialog/paper-dialog.js'
import '@material/mwc-button'

View File

@ -1,7 +1,7 @@
import {css, html, LitElement} from 'lit'
import {connect} from 'pwa-helpers'
import {store} from '../store.js'
import {translate} from 'lit-translate'
import {translate} from '../../translate/index.js'
import '@polymer/paper-toast'
import '@material/mwc-icon-button'

View File

@ -3,7 +3,7 @@ import {css, html, LitElement} from 'lit'
import '@material/mwc-button'
import '@material/mwc-icon'
import {translate} from 'lit-translate'
import {translate} from '../../translate/index.js'
class FragFileInput extends LitElement {
static get properties () {

View File

@ -1,7 +1,7 @@
import {css, html, LitElement} from 'lit'
import {connect} from 'pwa-helpers'
import {store} from '../store.js'
import {get, translate} from 'lit-translate'
import {get, translate} from '../../translate/index.js'
import {listenForRequest} from '../transactionRequest.js'

View File

@ -2,7 +2,7 @@ import {css, html, LitElement} from 'lit'
import {connect} from 'pwa-helpers'
import {store} from '../store.js'
import {testApiKey} from '../apiKeyUtils.js'
import {get, translate} from 'lit-translate'
import {get, translate} from '../../translate/index.js'
import '@material/mwc-dialog'
import '@material/mwc-button'

View File

@ -2,7 +2,7 @@ import {css, html, LitElement} from 'lit'
import {connect} from 'pwa-helpers'
import {store} from '../store.js'
import {doAddNode, doEditNode, doLoadNodeConfig, doRemoveNode, doSetNode} from '../redux/app/app-actions.js'
import {get, registerTranslateConfig, translate, use} from 'lit-translate'
import {get, registerTranslateConfig, translate, use} from '../../translate/index.js'
import snackbar from './snackbar.js'
import '../components/language-selector.js'
import '../custom-elements/frag-file-input.js'

1
core/translate/config.js Normal file
View File

@ -0,0 +1 @@
export const LANG_CHANGED_EVENT = 'langChanged'

View File

@ -0,0 +1,40 @@
import { AsyncDirective } from 'lit/async-directive.js'
import { listenForLangChanged } from '../util.js'
export class LangChangedDirectiveBase extends AsyncDirective {
constructor() {
super(...arguments)
this.langChangedSubscription = null
this.getValue = (() => "")
}
renderValue(getValue) {
this.getValue = getValue
this.subscribe()
return this.getValue()
}
langChanged(e) {
this.setValue(this.getValue(e))
}
subscribe() {
if (this.langChangedSubscription == null) {
this.langChangedSubscription = listenForLangChanged(this.langChanged.bind(this))
}
}
unsubscribe() {
if (this.langChangedSubscription != null) {
this.langChangedSubscription()
}
}
disconnected() {
this.unsubscribe()
}
reconnected() {
this.subscribe()
}
}

View File

@ -0,0 +1,9 @@
import { directive } from 'lit/directive.js'
import { LangChangedDirectiveBase } from './lang-changed-base.js'
export class LangChangedDirective extends LangChangedDirectiveBase {
render(getValue) {
return this.renderValue(getValue)
}
}
export const langChanged = directive(LangChangedDirective)

View File

@ -0,0 +1,12 @@
import { directive } from 'lit/directive.js'
import { unsafeHTML } from 'lit/directives/unsafe-html.js'
import { TranslateDirective } from './translate.js'
import { get } from '../util.js'
export class TranslateUnsafeHTMLDirective extends TranslateDirective {
render(key, values, config) {
return this.renderValue(() => unsafeHTML(get(key, values, config)))
}
}
export const translateUnsafeHTML = directive(TranslateUnsafeHTMLDirective)

View File

@ -0,0 +1,11 @@
import { directive } from 'lit/directive.js'
import { get } from '../util.js'
import { LangChangedDirectiveBase } from './lang-changed-base.js'
export class TranslateDirective extends LangChangedDirectiveBase {
render(key, values, config) {
return this.renderValue(() => get(key, values, config))
}
}
export const translate = directive(TranslateDirective)

16
core/translate/helpers.js Normal file
View File

@ -0,0 +1,16 @@
export function interpolate(text, values, config) {
return Object.entries(extract(values || {})).reduce((text, [key, value]) => text.replace(new RegExp(`{{[  ]*${key}[  ]*}}`, `gm`), String(extract(value))), text)
}
export function lookup(key, config) {
const parts = key.split(".")
let string = config.strings
while (string != null && parts.length > 0) {
string = string[parts.shift()]
}
return string != null ? string.toString() : null
}
export function extract(obj) {
return (typeof obj === "function") ? obj() : obj
}

7
core/translate/index.js Normal file
View File

@ -0,0 +1,7 @@
export * from './model.js'
export * from './util.js'
export * from './helpers.js'
export * from './directives/translate.js'
export * from './directives/translate-unsafe-html.js'
export * from './directives/lang-changed.js'
export * from './directives/lang-changed-base.js'

1
core/translate/model.js Normal file
View File

@ -0,0 +1 @@
export {}

49
core/translate/util.js Normal file
View File

@ -0,0 +1,49 @@
import { LANG_CHANGED_EVENT } from './config.js'
import { extract, interpolate, lookup } from './helpers.js'
export const defaultTranslateConfig = () => {
return {
loader: () => Promise.resolve({}),
empty: key => `[${key}]`,
lookup: lookup,
interpolate: interpolate,
translationCache: {}
}
}
export let translateConfig = defaultTranslateConfig()
export function registerTranslateConfig(config) {
return (translateConfig = Object.assign(Object.assign({}, translateConfig), config))
}
export function dispatchLangChanged(detail) {
window.dispatchEvent(new CustomEvent(LANG_CHANGED_EVENT, { detail }))
}
export function updateLang(newLang, newStrings, config = translateConfig) {
dispatchLangChanged({
previousStrings: config.strings,
previousLang: config.lang,
lang: (config.lang = newLang),
strings: (config.strings = newStrings)
})
}
export function listenForLangChanged(callback, options) {
const handler = (e) => callback(e.detail)
window.addEventListener(LANG_CHANGED_EVENT, handler, options)
return () => window.removeEventListener(LANG_CHANGED_EVENT, handler)
}
export async function use(lang, config = translateConfig) {
const strings = await config.loader(lang, config)
config.translationCache = {}
updateLang(lang, strings, config)
}
export function get(key, values, config = translateConfig) {
let translation = config.translationCache[key] || (config.translationCache[key] = config.lookup(key, config) || config.empty(key, config))
values = values != null ? extract(values) : null
return values != null ? config.interpolate(translation, values, config) : translation
}

View File

@ -1,7 +1,7 @@
import Base58 from './deps/Base58.js'
import {kdf} from './kdf.js'
import {AES_CBC, HmacSha512} from 'asmcrypto.js'
import {get, registerTranslateConfig} from 'lit-translate'
import {get, registerTranslateConfig} from '../../core/translate/index.js'
registerTranslateConfig({
loader: lang => fetch(`/language/${lang}.json`).then(res => res.json())

View File

@ -2,7 +2,7 @@ import {store} from '../api_deps.js'
import {stateAwait} from './utils/stateAwait.js'
import {Sha512} from 'asmcrypto.js'
import utils from '../api/deps/utils.js'
import {get, registerTranslateConfig} from 'lit-translate'
import {get, registerTranslateConfig} from '../../core/translate/index.js'
registerTranslateConfig({
loader: lang => fetch(`/language/${lang}.json`).then(res => res.json())

311
package-lock.json generated
View File

@ -27,9 +27,9 @@
"compressorjs": "1.2.1",
"crypto-js": "4.2.0",
"electron-dl": "3.5.1",
"electron-log": "5.0.0",
"electron-log": "5.0.1",
"electron-store": "8.1.0",
"electron-updater": "6.1.4",
"electron-updater": "6.1.7",
"emoji-picker-js": "https://github.com/Qortal/emoji-picker-js",
"extract-zip": "2.0.1",
"jssha": "3.3.1",
@ -101,8 +101,8 @@
"@vaadin/tooltip": "24.2.3",
"@zip.js/zip.js": "2.7.31",
"axios": "1.6.2",
"electron": "27.1.0",
"electron-builder": "24.6.4",
"electron": "27.1.2",
"electron-builder": "24.9.1",
"electron-packager": "17.1.2",
"epml": "0.3.3",
"eslint": "8.54.0",
@ -113,12 +113,11 @@
"html-escaper": "3.0.3",
"is-electron": "2.2.2",
"lit": "2.8.0",
"lit-translate": "2.0.1",
"passive-events-support": "1.1.0",
"pwa-helpers": "0.9.1",
"redux": "4.2.1",
"redux-thunk": "2.4.2",
"rollup": "4.5.0",
"rollup": "4.5.2",
"rollup-plugin-node-globals": "1.4.0",
"rollup-plugin-progress": "1.1.2",
"rollup-plugin-scss": "3.0.0",
@ -151,12 +150,12 @@
}
},
"node_modules/@babel/code-frame": {
"version": "7.22.13",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
"integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
"version": "7.23.4",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz",
"integrity": "sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==",
"dev": true,
"dependencies": {
"@babel/highlight": "^7.22.13",
"@babel/highlight": "^7.23.4",
"chalk": "^2.4.2"
},
"engines": {
@ -203,12 +202,12 @@
}
},
"node_modules/@babel/generator": {
"version": "7.23.3",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.3.tgz",
"integrity": "sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==",
"version": "7.23.4",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.4.tgz",
"integrity": "sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==",
"dev": true,
"dependencies": {
"@babel/types": "^7.23.3",
"@babel/types": "^7.23.4",
"@jridgewell/gen-mapping": "^0.3.2",
"@jridgewell/trace-mapping": "^0.3.17",
"jsesc": "^2.5.1"
@ -323,9 +322,9 @@
}
},
"node_modules/@babel/helper-string-parser": {
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
"integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==",
"version": "7.23.4",
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz",
"integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==",
"dev": true,
"engines": {
"node": ">=6.9.0"
@ -350,23 +349,23 @@
}
},
"node_modules/@babel/helpers": {
"version": "7.23.2",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz",
"integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==",
"version": "7.23.4",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.4.tgz",
"integrity": "sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==",
"dev": true,
"dependencies": {
"@babel/template": "^7.22.15",
"@babel/traverse": "^7.23.2",
"@babel/types": "^7.23.0"
"@babel/traverse": "^7.23.4",
"@babel/types": "^7.23.4"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/highlight": {
"version": "7.22.20",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
"integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
"version": "7.23.4",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz",
"integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==",
"dev": true,
"dependencies": {
"@babel/helper-validator-identifier": "^7.22.20",
@ -378,9 +377,9 @@
}
},
"node_modules/@babel/parser": {
"version": "7.23.3",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz",
"integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==",
"version": "7.23.4",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.4.tgz",
"integrity": "sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==",
"dev": true,
"bin": {
"parser": "bin/babel-parser.js"
@ -390,9 +389,9 @@
}
},
"node_modules/@babel/runtime": {
"version": "7.23.2",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz",
"integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==",
"version": "7.23.4",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.4.tgz",
"integrity": "sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==",
"dev": true,
"dependencies": {
"regenerator-runtime": "^0.14.0"
@ -416,19 +415,19 @@
}
},
"node_modules/@babel/traverse": {
"version": "7.23.3",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.3.tgz",
"integrity": "sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==",
"version": "7.23.4",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.4.tgz",
"integrity": "sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==",
"dev": true,
"dependencies": {
"@babel/code-frame": "^7.22.13",
"@babel/generator": "^7.23.3",
"@babel/code-frame": "^7.23.4",
"@babel/generator": "^7.23.4",
"@babel/helper-environment-visitor": "^7.22.20",
"@babel/helper-function-name": "^7.23.0",
"@babel/helper-hoist-variables": "^7.22.5",
"@babel/helper-split-export-declaration": "^7.22.6",
"@babel/parser": "^7.23.3",
"@babel/types": "^7.23.3",
"@babel/parser": "^7.23.4",
"@babel/types": "^7.23.4",
"debug": "^4.1.0",
"globals": "^11.1.0"
},
@ -437,12 +436,12 @@
}
},
"node_modules/@babel/types": {
"version": "7.23.3",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.3.tgz",
"integrity": "sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==",
"version": "7.23.4",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.4.tgz",
"integrity": "sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==",
"dev": true,
"dependencies": {
"@babel/helper-string-parser": "^7.22.5",
"@babel/helper-string-parser": "^7.23.4",
"@babel/helper-validator-identifier": "^7.22.20",
"to-fast-properties": "^2.0.0"
},
@ -3006,9 +3005,9 @@
}
},
"node_modules/@rollup/rollup-android-arm-eabi": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.5.0.tgz",
"integrity": "sha512-OINaBGY+Wc++U0rdr7BLuFClxcoWaVW3vQYqmQq6B3bqQ/2olkaoz+K8+af/Mmka/C2yN5j+L9scBkv4BtKsDA==",
"version": "4.5.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.5.2.tgz",
"integrity": "sha512-ee7BudTwwrglFYSc3UnqInDDjCLWHKrFmGNi4aK7jlEyg4CyPa1DCMrZfsN1O13YT76UFEqXz2CoN7BCGpUlJw==",
"cpu": [
"arm"
],
@ -3019,9 +3018,9 @@
]
},
"node_modules/@rollup/rollup-android-arm64": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.5.0.tgz",
"integrity": "sha512-UdMf1pOQc4ZmUA/NTmKhgJTBimbSKnhPS2zJqucqFyBRFPnPDtwA8MzrGNTjDeQbIAWfpJVAlxejw+/lQyBK/w==",
"version": "4.5.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.5.2.tgz",
"integrity": "sha512-xOuhj9HHtn8128ir8veoQsBbAUBasDbHIBniYTEx02pAmu9EXL+ZjJqngnNEy6ZgZ4h1JwL33GMNu3yJL5Mzow==",
"cpu": [
"arm64"
],
@ -3032,9 +3031,9 @@
]
},
"node_modules/@rollup/rollup-darwin-arm64": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.5.0.tgz",
"integrity": "sha512-L0/CA5p/idVKI+c9PcAPGorH6CwXn6+J0Ys7Gg1axCbTPgI8MeMlhA6fLM9fK+ssFhqogMHFC8HDvZuetOii7w==",
"version": "4.5.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.5.2.tgz",
"integrity": "sha512-NTGJWoL8bKyqyWFn9/RzSv4hQ4wTbaAv0lHHRwf4OnpiiP4P8W0jiXbm8Nc5BCXKmWAwuvJY82mcIU2TayC20g==",
"cpu": [
"arm64"
],
@ -3045,9 +3044,9 @@
]
},
"node_modules/@rollup/rollup-darwin-x64": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.5.0.tgz",
"integrity": "sha512-QZCbVqU26mNlLn8zi/XDDquNmvcr4ON5FYAHQQsyhrHx8q+sQi/6xduoznYXwk/KmKIXG5dLfR0CvY+NAWpFYQ==",
"version": "4.5.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.5.2.tgz",
"integrity": "sha512-hlKqj7bpPvU15sZo4za14u185lpMzdwWLMc9raMqPK4wywt0wR23y1CaVQ4oAFXat3b5/gmRntyfpwWTKl+vvA==",
"cpu": [
"x64"
],
@ -3058,9 +3057,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.5.0.tgz",
"integrity": "sha512-VpSQ+xm93AeV33QbYslgf44wc5eJGYfYitlQzAi3OObu9iwrGXEnmu5S3ilkqE3Pr/FkgOiJKV/2p0ewf4Hrtg==",
"version": "4.5.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.5.2.tgz",
"integrity": "sha512-7ZIZx8c3u+pfI0ohQsft/GywrXez0uR6dUP0JhBuCK3sFO5TfdLn/YApnVkvPxuTv3+YKPIZend9Mt7Cz6sS3Q==",
"cpu": [
"arm"
],
@ -3071,9 +3070,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-gnu": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.5.0.tgz",
"integrity": "sha512-OrEyIfpxSsMal44JpEVx9AEcGpdBQG1ZuWISAanaQTSMeStBW+oHWwOkoqR54bw3x8heP8gBOyoJiGg+fLY8qQ==",
"version": "4.5.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.5.2.tgz",
"integrity": "sha512-7Pk/5mO11JW/cH+a8lL/i0ZxmRGrbpYqN0VwO2DHhU+SJWWOH2zE1RAcPaj8KqiwC8DCDIJOSxjV9+9lLb6aeA==",
"cpu": [
"arm64"
],
@ -3084,9 +3083,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-musl": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.5.0.tgz",
"integrity": "sha512-1H7wBbQuE6igQdxMSTjtFfD+DGAudcYWhp106z/9zBA8OQhsJRnemO4XGavdzHpGhRtRxbgmUGdO3YQgrWf2RA==",
"version": "4.5.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.5.2.tgz",
"integrity": "sha512-KrRnuG5phJx756e62wxvWH2e+TK84MP2IVuPwfge+GBvWqIUfVzFRn09TKruuQBXzZp52Vyma7FjMDkwlA9xpg==",
"cpu": [
"arm64"
],
@ -3097,9 +3096,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-gnu": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.5.0.tgz",
"integrity": "sha512-FVyFI13tXw5aE65sZdBpNjPVIi4Q5mARnL/39UIkxvSgRAIqCo5sCpCELk0JtXHGee2owZz5aNLbWNfBHzr71Q==",
"version": "4.5.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.5.2.tgz",
"integrity": "sha512-My+53GasPa2D2tU5dXiyHYwrELAUouSfkNlZ3bUKpI7btaztO5vpALEs3mvFjM7aKTvEbc7GQckuXeXIDKQ0fg==",
"cpu": [
"x64"
],
@ -3110,9 +3109,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-musl": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.5.0.tgz",
"integrity": "sha512-eBPYl2sLpH/o8qbSz6vPwWlDyThnQjJfcDOGFbNjmjb44XKC1F5dQfakOsADRVrXCNzM6ZsSIPDG5dc6HHLNFg==",
"version": "4.5.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.5.2.tgz",
"integrity": "sha512-/f0Q6Sc+Vw54Ws6N8fxaEe4R7at3b8pFyv+O/F2VaQ4hODUJcRUcCBJh6zuqtgQQt7w845VTkGLFgWZkP3tUoQ==",
"cpu": [
"x64"
],
@ -3123,9 +3122,9 @@
]
},
"node_modules/@rollup/rollup-win32-arm64-msvc": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.5.0.tgz",
"integrity": "sha512-xaOHIfLOZypoQ5U2I6rEaugS4IYtTgP030xzvrBf5js7p9WI9wik07iHmsKaej8Z83ZDxN5GyypfoyKV5O5TJA==",
"version": "4.5.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.5.2.tgz",
"integrity": "sha512-NCKuuZWLht6zj7s6EIFef4BxCRX1GMr83S2W4HPCA0RnJ4iHE4FS1695q6Ewoa6A9nFjJe1//yUu0kgBU07Edw==",
"cpu": [
"arm64"
],
@ -3136,9 +3135,9 @@
]
},
"node_modules/@rollup/rollup-win32-ia32-msvc": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.5.0.tgz",
"integrity": "sha512-Al6quztQUrHwcOoU2TuFblUQ5L+/AmPBXFR6dUvyo4nRj2yQRK0WIUaGMF/uwKulvRcXkpHe3k9A8Vf93VDktA==",
"version": "4.5.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.5.2.tgz",
"integrity": "sha512-J5zL3riR4AOyU/J3M/i4k/zZ8eP1yT+nTmAKztCXJtnI36jYH0eepvob22mAQ/kLwfsK2TB6dbyVY1F8c/0H5A==",
"cpu": [
"ia32"
],
@ -3149,9 +3148,9 @@
]
},
"node_modules/@rollup/rollup-win32-x64-msvc": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.5.0.tgz",
"integrity": "sha512-8kdW+brNhI/NzJ4fxDufuJUjepzINqJKLGHuxyAtpPG9bMbn8P5mtaCcbOm0EzLJ+atg+kF9dwg8jpclkVqx5w==",
"version": "4.5.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.5.2.tgz",
"integrity": "sha512-pL0RXRHuuGLhvs7ayX/SAHph1hrDPXOM5anyYUQXWJEENxw3nfHkzv8FfVlEVcLyKPAEgDRkd6RKZq2SMqS/yg==",
"cpu": [
"x64"
],
@ -3612,9 +3611,9 @@
"dev": true
},
"node_modules/@types/node": {
"version": "18.18.10",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.10.tgz",
"integrity": "sha512-luANqZxPmjTll8bduz4ACs/lNTCLuWssCyjqTY9yLdsv1xnViQp3ISKwsEWOIecO13JWUqjVdig/Vjjc09o8uA==",
"version": "18.18.13",
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.13.tgz",
"integrity": "sha512-vXYZGRrSCreZmq1rEjMRLXJhiy8MrIeVasx+PCVlP414N7CJLHnMf+juVvjdprHyH+XRy3zKZLHeNueOpJCn0g==",
"devOptional": true,
"dependencies": {
"undici-types": "~5.26.4"
@ -3662,9 +3661,9 @@
"integrity": "sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ=="
},
"node_modules/@types/trusted-types": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.6.tgz",
"integrity": "sha512-HYtNooPvUY9WAVRBr4u+4Qa9fYD1ze2IUlAD3HoA6oehn1taGwBx3Oa52U4mTslTS+GAExKpaFu39Y5xUEwfjg=="
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
"integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="
},
"node_modules/@types/verror": {
"version": "1.10.9",
@ -4013,9 +4012,9 @@
}
},
"node_modules/7zip-bin": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.1.1.tgz",
"integrity": "sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ==",
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.2.0.tgz",
"integrity": "sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==",
"dev": true
},
"node_modules/acorn": {
@ -4152,9 +4151,9 @@
"dev": true
},
"node_modules/app-builder-lib": {
"version": "24.6.4",
"resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-24.6.4.tgz",
"integrity": "sha512-m9931WXb83teb32N0rKg+ulbn6+Hl8NV5SUpVDOVz9MWOXfhV6AQtTdftf51zJJvCQnQugGtSqoLvgw6mdF/Rg==",
"version": "24.9.1",
"resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-24.9.1.tgz",
"integrity": "sha512-Q1nYxZcio4r+W72cnIRVYofEAyjBd3mG47o+zms8HlD51zWtA/YxJb01Jei5F+jkWhge/PTQK+uldsPh6d0/4g==",
"dev": true,
"dependencies": {
"@develar/schema-utils": "~2.6.5",
@ -4163,15 +4162,15 @@
"@electron/universal": "1.4.1",
"@malept/flatpak-bundler": "^0.4.0",
"@types/fs-extra": "9.0.13",
"7zip-bin": "~5.1.1",
"7zip-bin": "~5.2.0",
"async-exit-hook": "^2.0.1",
"bluebird-lst": "^1.0.9",
"builder-util": "24.5.0",
"builder-util-runtime": "9.2.1",
"builder-util": "24.8.1",
"builder-util-runtime": "9.2.3",
"chromium-pickle-js": "^0.2.0",
"debug": "^4.3.4",
"ejs": "^3.1.8",
"electron-publish": "24.5.0",
"electron-publish": "24.8.1",
"form-data": "^4.0.0",
"fs-extra": "^10.1.0",
"hosted-git-info": "^4.1.0",
@ -4525,16 +4524,16 @@
"dev": true
},
"node_modules/builder-util": {
"version": "24.5.0",
"resolved": "https://registry.npmjs.org/builder-util/-/builder-util-24.5.0.tgz",
"integrity": "sha512-STnBmZN/M5vGcv01u/K8l+H+kplTaq4PAIn3yeuufUKSpcdro0DhJWxPI81k5XcNfC//bjM3+n9nr8F9uV4uAQ==",
"version": "24.8.1",
"resolved": "https://registry.npmjs.org/builder-util/-/builder-util-24.8.1.tgz",
"integrity": "sha512-ibmQ4BnnqCnJTNrdmdNlnhF48kfqhNzSeqFMXHLIl+o9/yhn6QfOaVrloZ9YUu3m0k3rexvlT5wcki6LWpjTZw==",
"dev": true,
"dependencies": {
"@types/debug": "^4.1.6",
"7zip-bin": "~5.1.1",
"7zip-bin": "~5.2.0",
"app-builder-bin": "4.0.0",
"bluebird-lst": "^1.0.9",
"builder-util-runtime": "9.2.1",
"builder-util-runtime": "9.2.3",
"chalk": "^4.1.2",
"cross-spawn": "^7.0.3",
"debug": "^4.3.4",
@ -4549,9 +4548,9 @@
}
},
"node_modules/builder-util-runtime": {
"version": "9.2.1",
"resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.2.1.tgz",
"integrity": "sha512-2rLv/uQD2x+dJ0J3xtsmI12AlRyk7p45TEbE/6o/fbb633e/S3pPgm+ct+JHsoY7r39dKHnGEFk/AASRFdnXmA==",
"version": "9.2.3",
"resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.2.3.tgz",
"integrity": "sha512-FGhkqXdFFZ5dNC4C+yuQB9ak311rpGAw+/ASz8ZdxwODCv1GGMWgLDeofRkdi0F3VCHQEWy/aXcJQozx2nOPiw==",
"dependencies": {
"debug": "^4.3.4",
"sax": "^1.2.4"
@ -4714,9 +4713,9 @@
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001563",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz",
"integrity": "sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw==",
"version": "1.0.30001564",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001564.tgz",
"integrity": "sha512-DqAOf+rhof+6GVx1y+xzbFPeOumfQnhYzVnZD6LAXijR77yPtm9mfOcqOnT3mpnJiZVT+kwLAFnRlZcIz+c6bg==",
"dev": true,
"funding": [
{
@ -5332,14 +5331,14 @@
}
},
"node_modules/dmg-builder": {
"version": "24.6.4",
"resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-24.6.4.tgz",
"integrity": "sha512-BNcHRc9CWEuI9qt0E655bUBU/j/3wUCYBVKGu1kVpbN5lcUdEJJJeiO0NHK3dgKmra6LUUZlo+mWqc+OCbi0zw==",
"version": "24.9.1",
"resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-24.9.1.tgz",
"integrity": "sha512-huC+O6hvHd24Ubj3cy2GMiGLe2xGFKN3klqVMLAdcbB6SWMd1yPSdZvV8W1O01ICzCCRlZDHiv4VrNUgnPUfbQ==",
"dev": true,
"dependencies": {
"app-builder-lib": "24.6.4",
"builder-util": "24.5.0",
"builder-util-runtime": "9.2.1",
"app-builder-lib": "24.9.1",
"builder-util": "24.8.1",
"builder-util-runtime": "9.2.3",
"fs-extra": "^10.1.0",
"iconv-lite": "^0.6.2",
"js-yaml": "^4.1.0"
@ -5466,9 +5465,9 @@
}
},
"node_modules/electron": {
"version": "27.1.0",
"resolved": "https://registry.npmjs.org/electron/-/electron-27.1.0.tgz",
"integrity": "sha512-XPdJiO475QJ8cx59/goWNNWnlV0vab+Ut3occymos7VDxkHV5mFrlW6tcGi+M3bW6gBfwpJocWMng8tw542vww==",
"version": "27.1.2",
"resolved": "https://registry.npmjs.org/electron/-/electron-27.1.2.tgz",
"integrity": "sha512-Dy6BUuGLiIJv+zfsXwr78TV2TNppi24rXF4PIIS+OjDblEKdkI9r1iM8JUd3/x3sbGUy5mdLMSPhvmu//IhkgA==",
"dev": true,
"hasInstallScript": true,
"dependencies": {
@ -5484,16 +5483,16 @@
}
},
"node_modules/electron-builder": {
"version": "24.6.4",
"resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-24.6.4.tgz",
"integrity": "sha512-uNWQoU7pE7qOaIQ6CJHpBi44RJFVG8OHRBIadUxrsDJVwLLo8Nma3K/EEtx5/UyWAQYdcK4nVPYKoRqBb20hbA==",
"version": "24.9.1",
"resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-24.9.1.tgz",
"integrity": "sha512-v7BuakDuY6sKMUYM8mfQGrwyjBpZ/ObaqnenU0H+igEL10nc6ht049rsCw2HghRBdEwJxGIBuzs3jbEhNaMDmg==",
"dev": true,
"dependencies": {
"app-builder-lib": "24.6.4",
"builder-util": "24.5.0",
"builder-util-runtime": "9.2.1",
"app-builder-lib": "24.9.1",
"builder-util": "24.8.1",
"builder-util-runtime": "9.2.3",
"chalk": "^4.1.2",
"dmg-builder": "24.6.4",
"dmg-builder": "24.9.1",
"fs-extra": "^10.1.0",
"is-ci": "^3.0.0",
"lazy-val": "^1.0.5",
@ -5631,11 +5630,10 @@
}
},
"node_modules/electron-log": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/electron-log/-/electron-log-5.0.0.tgz",
"integrity": "sha512-vB3akupmQvA8jAyNL9rULZtf6WoP8vsabjXsRtiqXS6/D37SwN/4LEyj4JD+9Bv6xoTcx/LrVnsIKEEWdq5ClQ==",
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/electron-log/-/electron-log-5.0.1.tgz",
"integrity": "sha512-x4wnwHg00h/onWQgjmvcdLV7Mrd9TZjxNs8LmXVpqvANDf4FsSs5wLlzOykWLcaFzR3+5hdVEQ8ctmrUxgHlPA==",
"engines": {
"electron": ">= 13",
"node": ">= 14"
}
},
@ -5772,14 +5770,14 @@
"dev": true
},
"node_modules/electron-publish": {
"version": "24.5.0",
"resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-24.5.0.tgz",
"integrity": "sha512-zwo70suH15L15B4ZWNDoEg27HIYoPsGJUF7xevLJLSI7JUPC8l2yLBdLGwqueJ5XkDL7ucYyRZzxJVR8ElV9BA==",
"version": "24.8.1",
"resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-24.8.1.tgz",
"integrity": "sha512-IFNXkdxMVzUdweoLJNXSupXkqnvgbrn3J4vognuOY06LaS/m0xvfFYIf+o1CM8if6DuWYWoQFKPcWZt/FUjZPw==",
"dev": true,
"dependencies": {
"@types/fs-extra": "^9.0.11",
"builder-util": "24.5.0",
"builder-util-runtime": "9.2.1",
"builder-util": "24.8.1",
"builder-util-runtime": "9.2.3",
"chalk": "^4.1.2",
"fs-extra": "^10.1.0",
"lazy-val": "^1.0.5",
@ -5904,17 +5902,17 @@
}
},
"node_modules/electron-to-chromium": {
"version": "1.4.588",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.588.tgz",
"integrity": "sha512-soytjxwbgcCu7nh5Pf4S2/4wa6UIu+A3p03U2yVr53qGxi1/VTR3ENI+p50v+UxqqZAfl48j3z55ud7VHIOr9w==",
"version": "1.4.594",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.594.tgz",
"integrity": "sha512-xT1HVAu5xFn7bDfkjGQi9dNpMqGchUkebwf1GL7cZN32NSwwlHRPMSDJ1KN6HkS0bWUtndbSQZqvpQftKG2uFQ==",
"dev": true
},
"node_modules/electron-updater": {
"version": "6.1.4",
"resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-6.1.4.tgz",
"integrity": "sha512-yYAJc6RQjjV4WtInZVn+ZcLyXRhbVXoomKEfUUwDqIk5s2wxzLhWaor7lrNgxODyODhipjg4SVPMhJHi5EnsCA==",
"version": "6.1.7",
"resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-6.1.7.tgz",
"integrity": "sha512-SNOhYizjkm4ET+Y8ilJyUzcVsFJDtINzVN1TyHnZeMidZEG3YoBebMyXc/J6WSiXdUaOjC7ngekN6rNp6ardHA==",
"dependencies": {
"builder-util-runtime": "9.2.1",
"builder-util-runtime": "9.2.3",
"fs-extra": "^10.1.0",
"js-yaml": "^4.1.0",
"lazy-val": "^1.0.5",
@ -7885,15 +7883,6 @@
"@types/trusted-types": "^2.0.2"
}
},
"node_modules/lit-translate": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/lit-translate/-/lit-translate-2.0.1.tgz",
"integrity": "sha512-AcGwE0d3M3KwMPZ0YlJRMB48V18LwRmkjkIYQaU+JycFA5yxkel2LJg1gThfrHFIPS8fcmtTMrXXSVEMg1BCTg==",
"dev": true,
"dependencies": {
"lit": "^2.2.2"
}
},
"node_modules/load-json-file": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
@ -9305,9 +9294,9 @@
}
},
"node_modules/rollup": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.5.0.tgz",
"integrity": "sha512-41xsWhzxqjMDASCxH5ibw1mXk+3c4TNI2UjKbLxe6iEzrSQnqOzmmK8/3mufCPbzHNJ2e04Fc1ddI35hHy+8zg==",
"version": "4.5.2",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.5.2.tgz",
"integrity": "sha512-CRK1uoROBfkcqrZKyaFcqCcZWNsvJ6yVYZkqTlRocZhO2s5yER6Z3f/QaYtO8RGyloPnmhwgzuPQpNGeK210xQ==",
"dev": true,
"bin": {
"rollup": "dist/bin/rollup"
@ -9317,18 +9306,18 @@
"npm": ">=8.0.0"
},
"optionalDependencies": {
"@rollup/rollup-android-arm-eabi": "4.5.0",
"@rollup/rollup-android-arm64": "4.5.0",
"@rollup/rollup-darwin-arm64": "4.5.0",
"@rollup/rollup-darwin-x64": "4.5.0",
"@rollup/rollup-linux-arm-gnueabihf": "4.5.0",
"@rollup/rollup-linux-arm64-gnu": "4.5.0",
"@rollup/rollup-linux-arm64-musl": "4.5.0",
"@rollup/rollup-linux-x64-gnu": "4.5.0",
"@rollup/rollup-linux-x64-musl": "4.5.0",
"@rollup/rollup-win32-arm64-msvc": "4.5.0",
"@rollup/rollup-win32-ia32-msvc": "4.5.0",
"@rollup/rollup-win32-x64-msvc": "4.5.0",
"@rollup/rollup-android-arm-eabi": "4.5.2",
"@rollup/rollup-android-arm64": "4.5.2",
"@rollup/rollup-darwin-arm64": "4.5.2",
"@rollup/rollup-darwin-x64": "4.5.2",
"@rollup/rollup-linux-arm-gnueabihf": "4.5.2",
"@rollup/rollup-linux-arm64-gnu": "4.5.2",
"@rollup/rollup-linux-arm64-musl": "4.5.2",
"@rollup/rollup-linux-x64-gnu": "4.5.2",
"@rollup/rollup-linux-x64-musl": "4.5.2",
"@rollup/rollup-win32-arm64-msvc": "4.5.2",
"@rollup/rollup-win32-ia32-msvc": "4.5.2",
"@rollup/rollup-win32-x64-msvc": "4.5.2",
"fsevents": "~2.3.2"
}
},

View File

@ -49,9 +49,9 @@
"compressorjs": "1.2.1",
"crypto-js": "4.2.0",
"electron-dl": "3.5.1",
"electron-log": "5.0.0",
"electron-log": "5.0.1",
"electron-store": "8.1.0",
"electron-updater": "6.1.4",
"electron-updater": "6.1.7",
"emoji-picker-js": "https://github.com/Qortal/emoji-picker-js",
"extract-zip": "2.0.1",
"jssha": "3.3.1",
@ -123,8 +123,8 @@
"@vaadin/tooltip": "24.2.3",
"@zip.js/zip.js": "2.7.31",
"axios": "1.6.2",
"electron": "27.1.0",
"electron-builder": "24.6.4",
"electron": "27.1.2",
"electron-builder": "24.9.1",
"electron-packager": "17.1.2",
"epml": "0.3.3",
"eslint": "8.54.0",
@ -135,12 +135,11 @@
"html-escaper": "3.0.3",
"is-electron": "2.2.2",
"lit": "2.8.0",
"lit-translate": "2.0.1",
"passive-events-support": "1.1.0",
"pwa-helpers": "0.9.1",
"redux": "4.2.1",
"redux-thunk": "2.4.2",
"rollup": "4.5.0",
"rollup": "4.5.2",
"rollup-plugin-node-globals": "1.4.0",
"rollup-plugin-progress": "1.1.2",
"rollup-plugin-scss": "3.0.0",

View File

@ -1,7 +1,7 @@
import {html, LitElement} from 'lit'
import {Epml} from '../../../epml.js'
import '../components/ButtonIconCopy.js'
import {registerTranslateConfig, translate, use} from 'lit-translate'
import {registerTranslateConfig, translate, use} from '../../../../core/translate/index.js'
import {blocksNeed} from '../../utils/blocks-needed.js'
import isElectron from 'is-electron'
import '@polymer/paper-spinner/paper-spinner-lite.js'

View File

@ -1,7 +1,7 @@
import {html, LitElement} from 'lit'
import {Epml} from '../../../../epml.js'
import '../../components/ButtonIconCopy.js'
import {translate} from 'lit-translate'
import {translate} from '../../../../../core/translate/index.js'
import '@polymer/paper-spinner/paper-spinner-lite.js'
import '@material/mwc-button'

View File

@ -1,6 +1,6 @@
import {html, LitElement} from 'lit'
import '../../components/ButtonIconCopy.js'
import {translate} from 'lit-translate'
import {translate} from '../../../../../core/translate/index.js'
import '@polymer/paper-spinner/paper-spinner-lite.js'
import '@material/mwc-button'

View File

@ -9,7 +9,7 @@ import {bytesToMegabytes} from '../../../utils/bytesToMegabytes.js';
import './ChatGifsExplore.js';
import '../ImageComponent.js';
import '@vaadin/tooltip';
import {get, translate} from 'lit-translate'
import {get, translate} from '../../../../../core/translate/index.js'
const parentEpml = new Epml({type: 'WINDOW', source: window.parent});

View File

@ -1,7 +1,7 @@
import {html, LitElement} from 'lit'
import {Epml} from '../../../../epml.js'
import {chatGifsExploreStyles} from './ChatGifsExplore-css.js'
import {get, translate} from 'lit-translate'
import {get, translate} from '../../../../../core/translate/index.js'
import '@material/mwc-icon'
const parentEpml = new Epml({ type: 'WINDOW', source: window.parent });

View File

@ -5,7 +5,7 @@ import "@material/mwc-dialog"
import "@polymer/paper-spinner/paper-spinner-lite.js"
import "@material/mwc-icon"
import "./WrapperModal"
import {translate} from 'lit-translate'
import {translate} from '../../../../core/translate/index.js'
const parentEpml = new Epml({ type: "WINDOW", source: window.parent })

View File

@ -11,7 +11,7 @@ import './TipUser';
import './UserInfo/UserInfo';
import './ChatImage';
import './ReusableImage';
import {get} from 'lit-translate';
import {get} from '../../../../core/translate/index.js'
const parentEpml = new Epml({ type: 'WINDOW', source: window.parent });
@ -41,8 +41,8 @@ class ChatGroupsManager extends LitElement {
isReceipient: { type: Boolean },
groups: { type: Array },
viewImage: { type: Boolean },
autoView: {type: Boolean},
onlyMyImages: {type: Boolean},
autoView: {type: Boolean},
onlyMyImages: {type: Boolean},
repost: {attribute: false}
};
}

View File

@ -5,7 +5,7 @@ import '@material/mwc-dialog'
import '@polymer/paper-spinner/paper-spinner-lite.js'
import '@material/mwc-icon'
import './WrapperModal'
import {get, translate} from 'lit-translate'
import {get, translate} from '../../../../core/translate/index.js'
const parentEpml = new Epml({ type: 'WINDOW', source: window.parent })

View File

@ -10,7 +10,7 @@ import '@vaadin/tabs/theme/material/vaadin-tabs.js'
import '@vaadin/avatar'
import '@vaadin/grid'
import '@vaadin/grid/vaadin-grid-filter-column.js'
import {get, translate} from 'lit-translate'
import {get, translate} from '../../../../core/translate/index.js'
const parentEpml = new Epml({ type: 'WINDOW', source: window.parent })

View File

@ -1,5 +1,5 @@
import {css, html, LitElement} from 'lit';
import {translate,} from 'lit-translate';
import {translate,} from '../../../../core/translate/index.js'
import '@material/mwc-menu';
import '@material/mwc-list/mwc-list-item.js';
import '@material/mwc-dialog'

View File

@ -1,7 +1,7 @@
import {css, html, LitElement} from 'lit'
import {Epml} from '../../../epml.js'
import localForage from "localforage"
import {translate} from 'lit-translate'
import {translate} from '../../../../core/translate/index.js'
import '@material/mwc-icon'
const parentEpml = new Epml({ type: 'WINDOW', source: window.parent })

View File

@ -1,5 +1,5 @@
import {css, html, LitElement} from 'lit';
import {get, translate,} from 'lit-translate';
import {get, translate,} from '../../../../core/translate/index.js'
import axios from 'axios'
import {RequestQueueWithPromise} from '../../utils/queue';
import '@material/mwc-menu';

View File

@ -5,7 +5,7 @@ import '@material/mwc-dialog'
import '@polymer/paper-spinner/paper-spinner-lite.js'
import '@material/mwc-icon'
import './WrapperModal'
import {get, translate} from 'lit-translate'
import {get, translate} from '../../../../core/translate/index.js'
const parentEpml = new Epml({ type: 'WINDOW', source: window.parent })

View File

@ -1,7 +1,7 @@
import {css, html, LitElement} from 'lit'
import {Epml} from '../../../epml'
import snackbar from './snackbar.js'
import {get, translate} from 'lit-translate'
import {get, translate} from '../../../../core/translate/index.js'
import '@material/mwc-button'
import '@material/mwc-dialog'

View File

@ -1,7 +1,7 @@
import {html, LitElement} from 'lit'
import {animate} from '@lit-labs/motion'
import {Epml} from '../../../epml.js'
import {get, translate} from 'lit-translate'
import {get, translate} from '../../../../core/translate/index.js'
import {Editor, Extension, generateHTML} from '@tiptap/core'
import {unsafeHTML} from 'lit/directives/unsafe-html.js'
import {escape} from 'html-escaper'

View File

@ -11,7 +11,7 @@ import './TipUser';
import './UserInfo/UserInfo';
import './ChatImage';
import './ReusableImage';
import {get, translate,} from 'lit-translate';
import {get, translate,} from '../../../../core/translate/index.js'
import {generateIdFromAddresses} from '../../utils/id-generation';
const parentEpml = new Epml({ type: 'WINDOW', source: window.parent });
@ -42,8 +42,8 @@ class ChatRightPanelResources extends LitElement {
isReceipient: { type: Boolean },
images: { type: Array },
viewImage: { type: Boolean },
autoView: {type: Boolean},
onlyMyImages: {type: Boolean},
autoView: {type: Boolean},
onlyMyImages: {type: Boolean},
repost: {attribute: false}
};
}

View File

@ -1,6 +1,6 @@
import {html, LitElement,} from 'lit';
import {repeat} from 'lit/directives/repeat.js';
import {get, translate,} from 'lit-translate';
import {get, translate,} from '../../../../core/translate/index.js'
import {unsafeHTML} from 'lit/directives/unsafe-html.js';
import {chatStyles} from './ChatScroller-css.js';
import {Epml} from '../../../epml';

View File

@ -1,6 +1,6 @@
import {html, LitElement} from 'lit';
import {chatSearchResultsStyles} from './ChatSearchResults-css.js'
import {translate} from 'lit-translate';
import {translate} from '../../../../core/translate/index.js'
export class ChatSearchResults extends LitElement {
static get properties() {

View File

@ -1,6 +1,6 @@
import {html, LitElement} from 'lit'
import {chatSearchResultsStyles} from './ChatSearchResults-css.js'
import {translate} from 'lit-translate'
import {translate} from '../../../../core/translate/index.js'
import '@vaadin/icon'
import '@vaadin/icons'

View File

@ -3,7 +3,7 @@ import {escape, unescape} from 'html-escaper'
import {EmojiPicker} from 'emoji-picker-js'
import {inputKeyCodes} from '../../utils/keyCodes.js'
import {Epml} from '../../../epml.js'
import {get} from 'lit-translate'
import {get} from '../../../../core/translate/index.js'
const parentEpml = new Epml({ type: 'WINDOW', source: window.parent })

View File

@ -3,7 +3,7 @@ import {EmojiPicker} from 'emoji-picker-js'
import {Epml} from '../../../epml.js'
import '@material/mwc-icon'
import '@material/mwc-checkbox'
import {get, translate} from 'lit-translate'
import {get, translate} from '../../../../core/translate/index.js'
const parentEpml = new Epml({ type: 'WINDOW', source: window.parent })

View File

@ -1,6 +1,6 @@
import {css, html, LitElement} from 'lit'
import {Epml} from '../../../epml.js'
import {get, registerTranslateConfig, translate, use} from 'lit-translate'
import {get, registerTranslateConfig, translate, use} from '../../../../core/translate/index.js'
import isElectron from 'is-electron'
import '@material/mwc-icon'

View File

@ -1,5 +1,5 @@
import {css, html, LitElement} from 'lit';
import {translate,} from 'lit-translate';
import {translate,} from '../../../../core/translate/index.js'
export class ImageComponent extends LitElement {
static get properties() {

View File

@ -1,6 +1,6 @@
import {css, html, LitElement} from 'lit'
import {Epml} from '../../../epml.js'
import {translate} from 'lit-translate'
import {translate} from '../../../../core/translate/index.js'
import '@polymer/paper-tooltip/paper-tooltip.js'
import {RequestQueue} from '../../utils/queue.js'

View File

@ -1,7 +1,7 @@
import {css, html, LitElement} from 'lit'
import {Epml} from '../../../epml.js'
import snackbar from './snackbar.js'
import {get, translate} from 'lit-translate'
import {get, translate} from '../../../../core/translate/index.js'
import '@material/mwc-snackbar'
import '@material/mwc-button'
import '@material/mwc-dialog'

View File

@ -1,9 +1,9 @@
import {css, html, LitElement} from 'lit';
import {translate,} from 'lit-translate';
import axios from 'axios';
import {RequestQueueWithPromise} from '../../utils/queue';
import '@material/mwc-menu';
import '@material/mwc-list/mwc-list-item.js';
import {css, html, LitElement} from 'lit'
import {translate,} from '../../../../core/translate/index.js'
import axios from 'axios'
import {RequestQueueWithPromise} from '../../utils/queue'
import '@material/mwc-menu'
import '@material/mwc-list/mwc-list-item.js'
import '@material/mwc-dialog'
const requestQueue = new RequestQueueWithPromise(5);
@ -16,10 +16,10 @@ export class ResuableImage extends LitElement {
resource: { type: Object },
isReady: { type: Boolean },
status: { type: Object },
missingData: {type: Boolean},
openDialogImage: { type: Boolean },
missingData: {type: Boolean},
openDialogImage: { type: Boolean },
onLoad: {attribute: false}
};
}
}
static get styles() {
@ -56,11 +56,11 @@ export class ResuableImage extends LitElement {
loadingAnimation;
}
.imageContainer {
display: flex;
justify-content: center;
align-items: center;
height: 100%;
}
display: flex;
justify-content: center;
align-items: center;
height: 100%;
}
@-webkit-keyframes loadingAnimation {
0% {
@ -83,27 +83,27 @@ export class ResuableImage extends LitElement {
transform: rotate(360deg);
}
}
`;
`
}
constructor() {
super();
super()
this.resource = {
identifier: '',
name: '',
service: '',
};
}
this.status = {
status: '',
};
this.url = '';
this.isReady = false;
this.nodeUrl = this.getNodeUrl();
this.myNode = this.getMyNode();
this.hasCalledWhenDownloaded = false;
this.isFetching = false;
this.missingData = false
this.openDialogImage = false
}
this.url = ''
this.isReady = false
this.nodeUrl = this.getNodeUrl()
this.myNode = this.getMyNode()
this.hasCalledWhenDownloaded = false
this.isFetching = false
this.missingData = false
this.openDialogImage = false
this.observer = new IntersectionObserver((entries) => {
for (const entry of entries) {
@ -113,25 +113,25 @@ export class ResuableImage extends LitElement {
this.observer.unobserve(this);
}
}
});
})
}
getNodeUrl() {
const myNode =
window.parent.reduxStore.getState().app.nodeConfig.knownNodes[
window.parent.reduxStore.getState().app.nodeConfig.node
];
]
const nodeUrl =
myNode.protocol + '://' + myNode.domain + ':' + myNode.port;
return nodeUrl;
myNode.protocol + '://' + myNode.domain + ':' + myNode.port
return nodeUrl
}
getMyNode() {
const myNode =
window.parent.reduxStore.getState().app.nodeConfig.knownNodes[
window.parent.reduxStore.getState().app.nodeConfig.node
];
]
return myNode;
return myNode
}
getApiKey() {
@ -139,8 +139,8 @@ export class ResuableImage extends LitElement {
window.parent.reduxStore.getState().app.nodeConfig.knownNodes[
window.parent.reduxStore.getState().app.nodeConfig.node
];
let apiKey = myNode.apiKey;
return apiKey;
let apiKey = myNode.apiKey
return apiKey
}
async fetchResource() {
@ -148,55 +148,55 @@ export class ResuableImage extends LitElement {
if (this.isFetching) return;
this.isFetching = true;
await requestQueue2.enqueue(() => {
await requestQueue2.enqueue(() => {
return axios.get(
`${this.nodeUrl}/arbitrary/resource/properties/${this.resource.service}/${this.resource.name}/${this.resource.identifier}?apiKey=${this.myNode.apiKey}`
);
});
this.isFetching = false;
`${this.nodeUrl}/arbitrary/resource/properties/${this.resource.service}/${this.resource.name}/${this.resource.identifier}?apiKey=${this.myNode.apiKey}`
)
})
this.isFetching = false
} catch (error) {
this.isFetching = false;
this.isFetching = false
}
}
async fetchVideoUrl() {
this.fetchResource();
this.url = `${this.nodeUrl}/arbitrary/${this.resource.service}/${this.resource.name}/${this.resource.identifier}?async=true&apiKey=${this.myNode.apiKey}`;
this.url = `${this.nodeUrl}/arbitrary/${this.resource.service}/${this.resource.name}/${this.resource.identifier}?async=true&apiKey=${this.myNode.apiKey}`
}
async fetchStatus() {
let isCalling = false;
let percentLoaded = 0;
let timer = 24;
let isCalling = false
let percentLoaded = 0
let timer = 24
const response = await axios.get(
`${this.nodeUrl}/arbitrary/resource/status/${this.resource.service}/${this.resource.name}/${this.resource.identifier}?apiKey=${this.myNode.apiKey}`
);
)
if (response && response.data && response.data.status === 'READY') {
this.status = response.data;
this.status = response.data
this.onLoad()
return;
return
}
const intervalId = setInterval(async () => {
if (isCalling) return;
isCalling = true;
if (isCalling) return
isCalling = true
const data = await requestQueue.enqueue(() => {
return axios.get(
`${this.nodeUrl}/arbitrary/resource/status/${this.resource.service}/${this.resource.name}/${this.resource.identifier}?apiKey=${this.myNode.apiKey}`
);
});
const res = data.data;
)
})
const res = data.data
isCalling = false;
isCalling = false
if (res.localChunkCount) {
if (res.percentLoaded) {
if (
res.percentLoaded === percentLoaded &&
res.percentLoaded !== 100
) {
timer = timer - 5;
timer = timer - 5
} else {
timer = 24;
timer = 24
}
if (timer < 0) {
timer = 24;
@ -207,34 +207,34 @@ export class ResuableImage extends LitElement {
};
setTimeout(() => {
isCalling = false;
this.fetchResource();
}, 25000);
return;
isCalling = false
this.fetchResource()
}, 25000)
return
}
percentLoaded = res.percentLoaded;
percentLoaded = res.percentLoaded
}
this.status = res;
this.status = res
if (this.status.status === 'DOWNLOADED') {
this.fetchResource();
this.fetchResource()
}
}
// check if progress is 100% and clear interval if true
if (res.status === 'READY') {
this.onLoad()
clearInterval(intervalId);
this.status = res;
this.isReady = true;
clearInterval(intervalId)
this.status = res
this.isReady = true
}
if(res.status === 'MISSING_DATA'){
this.status = res
this.missingData = true
clearInterval(intervalId)
}
}, 5000); // 1 second interval
if (res.status === 'MISSING_DATA') {
this.status = res
this.missingData = true
clearInterval(intervalId)
}
}, 5000) // 5 second interval
}
async _fetchImage() {
@ -244,29 +244,29 @@ export class ResuableImage extends LitElement {
service: this.resource.service,
identifier: this.resource.identifier,
});
this.fetchStatus();
this.fetchStatus()
} catch (error) { /* empty */ }
}
firstUpdated() {
this.observer.observe(this);
this.observer.observe(this)
}
showContextMenu(e) {
e.preventDefault();
e.stopPropagation();
e.preventDefault()
e.stopPropagation()
const contextMenu = this.shadowRoot.getElementById('contextMenu');
const containerRect = e.currentTarget.getBoundingClientRect();
const contextMenu = this.shadowRoot.getElementById('contextMenu')
const containerRect = e.currentTarget.getBoundingClientRect()
// Adjusting the positions
const adjustedX = e.clientX - containerRect.left;
const adjustedY = e.clientY - containerRect.top;
const adjustedX = e.clientX - containerRect.left
const adjustedY = e.clientY - containerRect.top
contextMenu.style.top = `${adjustedY}px`;
contextMenu.style.left = `${adjustedX}px`;
contextMenu.style.top = `${adjustedY}px`
contextMenu.style.left = `${adjustedX}px`
contextMenu.open = true;
contextMenu.open = true
}
render() {
@ -300,31 +300,31 @@ export class ResuableImage extends LitElement {
</div>
<mwc-dialog
id="showDialogPublicKey"
?open=${this.openDialogImage}
@closed=${() => {
id="showDialogPublicKey"
?open=${this.openDialogImage}
@closed=${() => {
this.openDialogImage = false;
}}>
<div class="dialog-header"></div>
<div class="dialog-container imageContainer">
${this.openDialogImage ? html`
<img src=${this.url} style="height: auto; max-height: 80vh; width: auto; max-width: 80vw; object-fit: contain; border-radius: 5px;"/>
` : ''}
</div>
<mwc-button
slot="primaryAction"
dialogAction="cancel"
class="red"
@click=${() => {
this.openDialogImage = false;
}}
>
${translate('general.close')}
</mwc-button>
</mwc-dialog>
`;
}}
>
<div class="dialog-header"></div>
<div class="dialog-container imageContainer">
${this.openDialogImage ? html`
<img src=${this.url} style="height: auto; max-height: 80vh; width: auto; max-width: 80vw; object-fit: contain; border-radius: 5px;"/>
` : ''}
</div>
<mwc-button
slot="primaryAction"
dialogAction="cancel"
class="red"
@click=${() => {
this.openDialogImage = false;
}}
>
${translate('general.close')}
</mwc-button>
</mwc-dialog>
`
}
}
customElements.define('reusable-image', ResuableImage);
customElements.define('reusable-image', ResuableImage)

View File

@ -3,7 +3,7 @@ import {tipUserStyles} from './TipUser-css.js'
import {Epml} from '../../../epml'
import '@vaadin/button'
import '@polymer/paper-progress/paper-progress.js'
import {get, translate} from 'lit-translate'
import {get, translate} from '../../../../core/translate/index.js'
const parentEpml = new Epml({ type: "WINDOW", source: window.parent });

View File

@ -1,7 +1,7 @@
import {css, html, LitElement} from 'lit'
import {render} from 'lit/html.js'
import {Epml} from '../../../epml.js'
import {get, translate} from 'lit-translate'
import {get, translate} from '../../../../core/translate/index.js'
import '@polymer/paper-dialog/paper-dialog.js'
import '@material/mwc-button'

View File

@ -1,5 +1,5 @@
import {html, LitElement} from 'lit'
import {translate} from 'lit-translate'
import {translate} from '../../../../../core/translate/index.js'
import {userInfoStyles} from './UserInfo-css.js'
import {cropAddress} from '../../../utils/cropAddress.js'

View File

@ -3,7 +3,7 @@ import {css, html, LitElement} from 'lit'
import '@material/mwc-button'
import '@material/mwc-icon'
import {translate} from 'lit-translate'
import {translate} from '../../../../core/translate/index.js'
class FragFileInput extends LitElement {
static get properties () {

View File

@ -1,7 +1,6 @@
import nacl from '../../../../crypto/api/deps/nacl-fast.js'
import ed2curve from '../../../../crypto/api/deps/ed2curve.js'
class Semaphore {
constructor(count) {
this.count = count;
@ -60,8 +59,6 @@ export const fileToBase64 = (file) =>
};
});
export function uint8ArrayToBase64(uint8Array) {
const length = uint8Array.length;
let binaryString = '';
@ -76,7 +73,6 @@ export function uint8ArrayToBase64(uint8Array) {
return btoa(binaryString);
}
export function base64ToUint8Array(base64) {
const binaryString = atob(base64)
const len = binaryString.length
@ -128,8 +124,6 @@ export function uint8ArrayToObject(uint8Array) {
reader.readAsDataURL(blob);
});
}
export const encryptData = ({ data64, recipientPublicKey }) => {
@ -278,7 +272,6 @@ export const encryptDataGroup = ({ data64, publicKeys }) => {
}
}
export function uint8ArrayStartsWith(uint8Array, string) {
const stringEncoder = new TextEncoder();
const stringUint8Array = stringEncoder.encode(string);

View File

@ -1,6 +1,6 @@
import {css, html, LitElement} from 'lit'
import {render} from 'lit/html.js'
import {get, translate} from 'lit-translate'
import {get, translate} from '../../../../core/translate/index.js'
import '@polymer/paper-dialog/paper-dialog.js'
import '@material/mwc-button'
import '@material/mwc-icon'
@ -434,7 +434,6 @@ class QortalInfoView extends LitElement {
right: 25px;
top: -1px;
}
`
}

View File

@ -2,7 +2,7 @@ import {css, html, LitElement} from 'lit'
import {render} from 'lit/html.js'
import {Epml} from '../../../epml.js'
import isElectron from 'is-electron'
import {get, registerTranslateConfig, translate, use} from 'lit-translate'
import {get, registerTranslateConfig, translate, use} from '../../../../core/translate/index.js'
import '../components/time-elements/index.js'
import '@material/mwc-button'
import '@material/mwc-dialog'

View File

@ -2,7 +2,7 @@ import {html, LitElement} from 'lit'
import {render} from 'lit/html.js'
import {passiveSupport} from 'passive-events-support/src/utils'
import {Epml} from '../../../../epml.js'
import {get, translate} from 'lit-translate'
import {get, translate} from '../../../../../core/translate/index.js'
import {qchatStyles} from './q-chat-css.src.js'
import {Editor, Extension} from '@tiptap/core'
import isElectron from 'is-electron'

View File

@ -1,7 +1,7 @@
import {css, html, LitElement} from 'lit'
import {Epml} from '../../../epml.js'
import isElectron from 'is-electron'
import {registerTranslateConfig, translate, use} from 'lit-translate'
import {registerTranslateConfig, translate, use} from '../../../../core/translate/index.js'
import '@material/mwc-icon'
import '@material/mwc-button'
import '@material/mwc-dialog'

View File

@ -1,7 +1,7 @@
import {css, html, LitElement} from 'lit'
import {render} from 'lit/html.js'
import {Epml} from '../../../epml.js'
import {get, registerTranslateConfig, translate, use} from 'lit-translate'
import {get, registerTranslateConfig, translate, use} from '../../../../core/translate/index.js'
import isElectron from 'is-electron'
import '@material/mwc-button'
import '@material/mwc-dialog'

View File

@ -1,7 +1,7 @@
import {css, html, LitElement} from 'lit'
import {render} from 'lit/html.js'
import {Epml} from '../../../epml.js'
import {get, registerTranslateConfig, translate, use} from 'lit-translate'
import {get, registerTranslateConfig, translate, use} from '../../../../core/translate/index.js'
import isElectron from 'is-electron'
import '../components/qortal-info-view.js'
import '@material/mwc-button'

View File

@ -2,7 +2,7 @@ import {css, html, LitElement} from 'lit'
import {render} from 'lit/html.js'
import {Epml} from '../../../epml.js'
import isElectron from 'is-electron'
import {get, registerTranslateConfig, translate, use} from 'lit-translate'
import {get, registerTranslateConfig, translate, use} from '../../../../core/translate/index.js'
import '@polymer/paper-spinner/paper-spinner-lite.js'
import '@material/mwc-icon'
import '@material/mwc-textfield'

View File

@ -1,6 +1,6 @@
import {css, html, LitElement} from 'lit'
import {Epml} from '../../../epml.js'
import {get, registerTranslateConfig, translate, use} from 'lit-translate'
import {get, registerTranslateConfig, translate, use} from '../../../../core/translate/index.js'
import {overviewStyle} from './overview-page-css.js'
import {asyncReplace} from 'lit/directives/async-replace.js'
import isElectron from 'is-electron'

View File

@ -2,7 +2,7 @@ import {css, html, LitElement} from 'lit'
import {render} from 'lit/html.js'
import {Epml} from '../../../epml.js'
import isElectron from 'is-electron'
import {registerTranslateConfig, translate, use} from 'lit-translate'
import {registerTranslateConfig, translate, use} from '../../../../core/translate/index.js'
import nacl from '../../../../crypto/api/deps/nacl-fast.js'
import Base58 from '../../../../crypto/api/deps/Base58.js'
import publicKeyToAddress from '../../../../crypto/api/wallet/publicKeyToAddress.js'

View File

@ -1,7 +1,7 @@
import {css, html, LitElement} from 'lit'
import {render} from 'lit/html.js'
import {Epml} from '../../../epml.js'
import {get, registerTranslateConfig, translate, use} from 'lit-translate'
import {get, registerTranslateConfig, translate, use} from '../../../../core/translate/index.js'
import isElectron from 'is-electron'
import '@polymer/paper-spinner/paper-spinner-lite.js'
import '@polymer/paper-dialog/paper-dialog.js'

View File

@ -1,7 +1,7 @@
import {css, html, LitElement} from 'lit'
import {Epml} from '../../../../epml'
import isElectron from 'is-electron'
import {get, registerTranslateConfig, translate, use} from 'lit-translate'
import {get, registerTranslateConfig, translate, use} from '../../../../../core/translate/index.js'
import ShortUniqueId from 'short-unique-id';
import FileSaver from 'file-saver'
import * as actions from '../../components/qdn-action-types'

View File

@ -2,7 +2,7 @@ import {css, html, LitElement} from 'lit'
import {render} from 'lit/html.js'
import {Epml} from '../../../../epml'
import isElectron from 'is-electron'
import {get, registerTranslateConfig, translate, use} from 'lit-translate'
import {get, registerTranslateConfig, translate, use} from '../../../../../core/translate/index.js'
import '@material/mwc-button'
import '@material/mwc-dialog'
import '@material/mwc-icon'

View File

@ -1,7 +1,7 @@
import {css, html, LitElement} from 'lit'
import {Epml} from '../../../../epml'
import isElectron from 'is-electron'
import {get, registerTranslateConfig, translate, use} from 'lit-translate'
import {get, registerTranslateConfig, translate, use} from '../../../../../core/translate/index.js'
import '@material/mwc-button'
import '@material/mwc-textfield'
import '@material/mwc-select'

View File

@ -2,7 +2,7 @@ import {css, html, LitElement} from 'lit'
import {render} from 'lit/html.js'
import {Epml} from '../../../epml.js'
import isElectron from 'is-electron'
import {get, registerTranslateConfig, translate, use} from 'lit-translate'
import {get, registerTranslateConfig, translate, use} from '../../../../core/translate/index.js'
import '@material/mwc-dialog'
import '@material/mwc-icon'
import '@material/mwc-button'

View File

@ -1,7 +1,7 @@
import {css, html, LitElement} from 'lit'
import {render} from 'lit/html.js'
import {Epml} from '../../../epml.js'
import {get, registerTranslateConfig, translate, use} from 'lit-translate'
import {get, registerTranslateConfig, translate, use} from '../../../../core/translate/index.js'
import isElectron from 'is-electron'
import '@material/mwc-button'
import '@material/mwc-dialog'

View File

@ -2,7 +2,7 @@ import {css, html, LitElement} from 'lit'
import {render} from 'lit/html.js'
import {Epml} from '../../../epml.js'
import isElectron from 'is-electron'
import {get, registerTranslateConfig, translate, use} from 'lit-translate'
import {get, registerTranslateConfig, translate, use} from '../../../../core/translate/index.js'
import '@material/mwc-icon'
import '@material/mwc-button'
import '@material/mwc-textfield'

Some files were not shown because too many files have changed in this diff Show More