Standing up global settings page. (#63)

* Adds markup to Settings page.

* Fixes card styling. Makes theme a dropdown. Fleshes out theme store and helpers.

* Settings wired up to backend. Omorphia package bumped.

* settings not syncing

* Further polishes Global Settings.

* Post-merge cleanup.

* Cleans up code. Ensures Java versions are present.

* Wires up auto-detect modal. Wires up Java version browse. Styling updates.

* Styling inputs. Adjusts modals.

* Removes theme helpers. Removes unnecessary classes.

* Always displays settings save btn. Watch code removed. New Card added.

* Cleans up merge from master. Adds AnimatedLogo to settings.

* Installs updated Omorphia. Removes unnecessary styles. Fixes loading logo position.

* Starts wiring up theming to settings. Adds Tauri command to get just theme.

* Settings page polish. allowList updated.

* Condenses modals into one. Implements JRE checking.

* Updates Omorphia package. Removes unnecessary styles.

* Removes get_theme. Styling changes.

* Changes appbar background for light-mode.

* Fixes

* fix color with var

---------

Co-authored-by: thesuzerain <wverchere@gmail.com>
Co-authored-by: Jai A <jaiagr+gpg@pm.me>
This commit is contained in:
Zach Baird
2023-04-21 17:45:50 -04:00
committed by GitHub
parent 6887c33b66
commit 16f297b546
17 changed files with 704 additions and 3041 deletions

View File

@@ -9,6 +9,8 @@ yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
generated.js
node_modules
*.local

View File

@@ -1,3 +0,0 @@
# exclude everything except this file
*
!.gitignore

File diff suppressed because it is too large Load Diff

View File

@@ -10,16 +10,16 @@
"tauri": "tauri",
"lint:js": "eslint --ext .js,.vue,.ts,.jsx,.tsx,.html,.vue .",
"lint": "npm run lint:js && prettier --check .",
"fix": "eslint --fix --ext .js,.vue,.ts,.jsx,.tsx,.html,.vue ."
"fix": "eslint --fix --ext .js,.vue,.ts,.jsx,.tsx,.html,.vue . && prettier --write ."
},
"dependencies": {
"@tauri-apps/api": "^1.2.0",
"omorphia": "^0.4.4",
"ofetch": "^1.0.1",
"omorphia": "^0.4.9",
"pinia": "^2.0.33",
"vite-svg-loader": "^4.0.0",
"vue": "^3.2.45",
"dayjs": "^1.11.7",
"ofetch": "^1.0.1",
"vue-multiselect": "^3.0.0-alpha.2",
"vue-router": "4"
},

View File

@@ -19,7 +19,7 @@ theseus = { path = "../../theseus", features = ["tauri"] }
serde_json = "1.0"
serde = { version = "1.0", features = ["derive"] }
tauri = { version = "1.2", features = ["dialog", "protocol-asset", "window-close", "window-create"] }
tauri = { version = "1.2", features = ["dialog", "dialog-all", "protocol-asset", "window-close", "window-create"] }
tokio = { version = "1", features = ["full"] }
thiserror = "1.0"
tokio-stream = { version = "0.1", features = ["fs"] }

View File

@@ -26,7 +26,7 @@ pub enum TheseusGuiError {
// Serializable error intermediary, so TheseusGuiError can be Serializable (eg: so that we can return theseus::Errors in Tauri directly)
#[derive(Error, Debug)]
pub enum TheseusSerializableError {
#[error("Theseus API error: {0}")]
#[error("{0}")]
Theseus(#[from] theseus::Error),
#[error("IO error: {0}")]
@@ -34,9 +34,6 @@ pub enum TheseusSerializableError {
#[error("No profile found at {0}")]
NoProfileFound(String),
#[error("Improperly formatted environment variables: {0}")]
BadEnvVars(String),
}
// Generic implementation of From<T> for ErrorTypeA
@@ -78,5 +75,4 @@ impl_serialize! {
Theseus,
IO,
NoProfileFound,
BadEnvVars,
}

View File

@@ -2,8 +2,6 @@ use crate::api::Result;
use serde::{Deserialize, Serialize};
use theseus::prelude::*;
use super::TheseusSerializableError;
// Identical to theseus::settings::Settings except for the custom_java_args field
// This allows us to split the custom_java_args string into a Vec<String> here and join it back into a string in the backend
#[derive(Serialize, Deserialize, Debug, Clone)]
@@ -53,18 +51,15 @@ pub async fn settings_set(settings: FrontendSettings) -> Result<()> {
.custom_env_args
.split_whitespace()
.map(|s| s.to_string())
.map(|f| {
.flat_map(|f| {
let mut split = f.split('=');
if let (Some(name), Some(value)) = (split.next(), split.next()) {
Ok((name.to_string(), value.to_string()))
Some((name.to_string(), value.to_string()))
} else {
Err(TheseusSerializableError::BadEnvVars(
"Invalid environment variable: {}".to_string(),
)
.into())
None
}
})
.collect::<Result<Vec<(String, String)>>>()?;
.collect::<Vec<(String, String)>>();
let backend_settings = Settings {
theme: settings.theme,

View File

@@ -12,7 +12,9 @@
},
"tauri": {
"allowlist": {
"all": false,
"dialog": {
"all": true
},
"protocol": {
"asset": true,
"assetScope": [

View File

@@ -1,5 +1,5 @@
<script setup>
import { ref, watch } from 'vue'
import { ref, onMounted } from 'vue'
import { RouterView, RouterLink } from 'vue-router'
import {
ChevronLeftIcon,
@@ -12,15 +12,14 @@ import {
} from 'omorphia'
import { useTheming } from '@/store/state'
import AccountsCard from '@/components/ui/AccountsCard.vue'
import { toggleTheme } from '@/helpers/theme'
import { list } from '@/helpers/profile'
import { get } from '@/helpers/settings'
const themeStore = useTheming()
toggleTheme(themeStore.darkTheme)
watch(themeStore, (newState) => {
toggleTheme(newState.darkTheme)
onMounted(async () => {
const { theme } = await get()
themeStore.setThemeState(theme)
})
const installedMods = ref(0)
@@ -81,25 +80,17 @@ list().then(
flex-direction: row;
overflow: hidden;
.router-view {
width: 100%;
height: 100%;
overflow: auto;
overflow-x: hidden;
}
.view {
margin-left: 5rem;
width: calc(100% - 5rem);
height: calc(100%);
width: 100%;
.appbar {
display: flex;
justify-content: space-between;
align-items: center;
background: #40434a;
background: var(--color-super-raised-bg);
text-align: center;
padding: 0.5rem 1rem;
z-index: 11;
.navigation-controls {
display: inherit;
@@ -137,24 +128,44 @@ list().then(
justify-content: flex-end;
}
}
}
}
.nav-container {
position: absolute;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
height: 100%;
box-shadow: var(--shadow-inset-sm), var(--shadow-floating);
padding: 1rem;
.router-view {
width: 100%;
height: calc(100% - 2rem);
overflow: auto;
overflow-x: hidden;
}
}
}
.dark-mode {
.nav-container {
background: var(--color-bg);
background: var(--color-bg) !important;
}
.pages-list {
a.router-link-active {
color: #fff;
}
}
}
.light-mode {
.nav-container {
box-shadow: var(--shadow-floating), var(--shadow-floating), var(--shadow-floating),
var(--shadow-floating) !important;
}
}
.nav-container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
z-index: 10;
height: 100%;
box-shadow: var(--shadow-inset-sm), var(--shadow-floating);
padding: 1rem;
background: var(--color-raised-bg);
}
.pages-list {
@@ -176,7 +187,7 @@ list().then(
color: var(--color-base);
&.router-link-active {
color: var(--color-accent-contrast);
color: var(--color-contrast);
background: var(--color-button-bg);
}
@@ -208,14 +219,6 @@ list().then(
}
}
.dark-mode {
.pages-list {
a.router-link-active {
color: #fff;
}
}
}
.instance-list {
display: flex;
flex-direction: column;
@@ -252,6 +255,10 @@ list().then(
}
.settings {
svg {
color: var(--color-base) !important;
}
a {
display: flex;
flex-direction: column;

View File

@@ -151,3 +151,10 @@ a {
border-top-left-radius: var(--radius-md) !important;
border-top-right-radius: var(--radius-md) !important;
}
.mod-text {
display: flex;
align-items: center;
gap: 1rem;
color: var(--color-contrast);
}

View File

@@ -62,7 +62,7 @@ const appendProfiles = (accounts) => {
return accounts.map((account) => {
return {
...account,
profile_picture: `https://crafthead.net/helm/${account.id}/128`,
profile_picture: `https://crafthead.net/helm/${account.id.replace(/-/g, '')}/128`,
}
})
}

View File

@@ -1,13 +0,0 @@
/**
* Sets the dark-mode or light-mode class on <html> if dark mode is on.
* @param {Boolean} isDarkMode Bool value indicating if dark mode is on.
*/
export const toggleTheme = (isDarkMode) => {
if (isDarkMode) {
document.getElementsByTagName('html')[0].classList.remove('light-mode')
document.getElementsByTagName('html')[0].classList.add('dark-mode')
} else {
document.getElementsByTagName('html')[0].classList.remove('dark-mode')
document.getElementsByTagName('html')[0].classList.add('light-mode')
}
}

View File

@@ -1,7 +1,451 @@
<script setup></script>
<script setup>
import { ref, watch } from 'vue'
import {
Card,
Slider,
DropdownSelect,
Button,
SearchIcon,
PlayIcon,
Modal,
CheckIcon,
XIcon,
PlusIcon,
AnimatedLogo,
} from 'omorphia'
import { BrowseIcon } from '@/assets/icons'
import { useTheming } from '@/store/state'
import { get, set } from '@/helpers/settings'
import { find_jre_8_jres, find_jre_17_jres, get_jre } from '@/helpers/jre'
import { open } from '@tauri-apps/api/dialog'
const themeStore = useTheming()
const fetchSettings = await get()
if (!fetchSettings.java_globals?.JAVA_8)
fetchSettings.java_globals.JAVA_8 = { path: '', version: '' }
if (!fetchSettings.java_globals?.JAVA_17)
fetchSettings.java_globals.JAVA_17 = { path: '', version: '' }
const settings = ref(fetchSettings)
const chosenInstallOptions = ref([])
const browsingInstall = ref(0)
const testingJava17 = ref(false)
const java17Success = ref(null)
const testingJava8 = ref(false)
const java8Success = ref(null)
// DOM refs
const detectJavaModal = ref(null)
const handleTheme = async (e) => {
themeStore.setThemeState(e.option.toLowerCase())
settings.value.theme = themeStore.selectedTheme
await set(settings.value)
}
const loadJavaModal = async (version) => {
if (version === 17) chosenInstallOptions.value = await find_jre_17_jres()
else if (version === 8) chosenInstallOptions.value = await find_jre_8_jres()
browsingInstall.value = version
detectJavaModal.value.show()
}
watch(settings.value, async (oldSettings, newSettings) => {
await set(newSettings)
})
const handleJava17FileInput = async () => {
let filePath = await open()
settings.value.java_globals.JAVA_17 = {
path: filePath,
version: '17',
}
}
const handleJava8FileInput = async () => {
let filePath = await open()
settings.value.java_globals.JAVA_8 = {
path: filePath,
version: '8',
}
}
const handleJava17Test = async () => {
let result
testingJava17.value = true
setTimeout(async () => {
result = await get_jre(settings.value.java_globals.JAVA_17.path)
testingJava17.value = false
if (result) java17Success.value = true
else java17Success.value = false
setTimeout(() => {
java17Success.value = null
}, 2000)
}, 1000)
}
const handleJava8Test = async () => {
let result
testingJava8.value = true
setTimeout(async () => {
result = await get_jre(settings.value.java_globals.JAVA_8.path)
testingJava8.value = false
java8Success.value = !!result
setTimeout(() => {
java8Success.value = null
}, 2000)
}, 1000)
}
const setJavaInstall = (javaInstall) => {
if (browsingInstall.value === 17) settings.value.java_globals.JAVA_17 = javaInstall
else if (browsingInstall.value === 8) settings.value.java_globals.JAVA_8 = javaInstall
detectJavaModal.value.hide()
chosenInstallOptions.value = []
browsingInstall.value = 0
}
</script>
<template>
<div>
<p>Settings page</p>
<Modal ref="detectJavaModal" header="Select java version">
<div class="auto-detect-modal">
<div class="table">
<div class="table-row table-head">
<div class="table-cell table-text">Version</div>
<div class="table-cell table-text">Path</div>
<div class="table-cell table-text">Actions</div>
</div>
<div
v-for="javaInstall in chosenInstallOptions"
:key="javaInstall.path"
class="table-row"
>
<div class="table-cell table-text">
<span>{{ javaInstall.version }}</span>
</div>
<div class="table-cell table-text">
<span>{{ javaInstall.path }}</span>
</div>
<div class="table-cell table-text manage">
<Button
:disabled="
settings.java_globals.JAVA_17.path === javaInstall.path ||
settings.java_globals.JAVA_8.path === javaInstall.path
"
class="select-btn"
@click="() => setJavaInstall(javaInstall)"
>
<span
v-if="
settings.java_globals.JAVA_17.path === javaInstall.path ||
settings.java_globals.JAVA_8.path === javaInstall.path
"
>
<CheckIcon />Selected
</span>
<span v-else><PlusIcon />Select</span>
</Button>
</div>
</div>
<div v-if="chosenInstallOptions.length === 0" class="table-row entire-row">
<div class="table-cell table-text">No JARS Found!</div>
</div>
</div>
</div>
</Modal>
<Card class="theming">
<h2>Display</h2>
<div class="toggle-setting">
<div class="description">
<h3>Color theme</h3>
<p>Change the global launcher color theme.</p>
</div>
<DropdownSelect
name="Theme dropdown"
:options="themeStore.themeOptions"
:default-value="settings.theme"
:model-value="settings.theme"
class="theme-dropdown"
@change="handleTheme"
/>
</div>
</Card>
<Card class="settings-card">
<h2 class="settings-title">Java</h2>
<div class="settings-group">
<h3>Java 17 Location</h3>
<div class="toggle-setting">
<input
v-model="settings.java_globals.JAVA_17.path"
type="text"
class="input installation-input"
placeholder="/path/to/java17"
/>
<span class="installation-buttons">
<Button @click="() => loadJavaModal(17)">
<SearchIcon />
Auto Detect
</Button>
<Button @click="handleJava17FileInput">
<BrowseIcon />
Browse
</Button>
<Button @click="handleJava17Test">
<PlayIcon />
Test
</Button>
<AnimatedLogo v-if="testingJava17 === true" class="testing-loader" />
<CheckIcon
v-else-if="java17Success === true && testingJava17 === false"
class="test-success"
/>
<XIcon
v-else-if="java17Success === false && testingJava17 === false"
class="test-fail"
/>
</span>
</div>
</div>
<div class="settings-group">
<h3>Java 8 Location</h3>
<div class="toggle-setting">
<input
v-model="settings.java_globals.JAVA_8.path"
type="text"
class="input installation-input"
placeholder="/path/to/java8"
/>
<span class="installation-buttons">
<Button @click="() => loadJavaModal(8)">
<SearchIcon />
Auto Detect
</Button>
<Button @click="handleJava8FileInput">
<BrowseIcon />
Browse
</Button>
<Button @click="handleJava8Test">
<PlayIcon />
Test
</Button>
<AnimatedLogo v-if="testingJava8 === true" class="testing-loader" />
<CheckIcon
v-else-if="java8Success === true && testingJava8 === false"
class="test-success"
/>
<XIcon v-else-if="java8Success === false && testingJava8 === false" class="test-fail" />
</span>
</div>
</div>
<hr class="card-divider" />
<div class="settings-group">
<h3>Java Arguments</h3>
<input
v-model="settings.custom_java_args"
type="text"
class="input installation-input"
placeholder="Enter java arguments..."
/>
</div>
<div class="settings-group">
<h3>Environment Arguments</h3>
<input
v-model="settings.custom_env_args"
type="text"
class="input installation-input"
placeholder="Enter environment arguments..."
/>
</div>
<hr class="card-divider" />
<div class="settings-group">
<div class="sliders">
<span class="slider">
Minimum Memory
<Slider v-model="settings.memory.minimum" :min="1000" :max="8200" :step="10" />
</span>
<span class="slider">
Maximum Memory
<Slider v-model="settings.memory.maximum" :min="1000" :max="8200" :step="10" />
</span>
</div>
</div>
</Card>
<Card class="settings-card">
<h2 class="settings-title">Window Size</h2>
<div class="settings-group">
<div class="settings-group">
<div class="sliders">
<span class="slider">
Width
<Slider v-model="settings.game_resolution[0]" :min="400" :max="2562" :step="2" />
</span>
<span class="slider">
Height
<Slider v-model="settings.game_resolution[1]" :min="400" :max="2562" :step="2" />
</span>
</div>
</div>
</div>
</Card>
<Card class="settings-card">
<h2 class="settings-title">Launcher Settings</h2>
<div class="settings-group">
<h3>Resource Management</h3>
<div class="toggle-setting">
<span>Maximum Concurrent Downloads</span>
<Slider
v-model="settings.max_concurrent_downloads"
class="concurrent-downloads"
:min="1"
:max="100"
:step="1"
/>
</div>
</div>
</Card>
<Card class="settings-card">
<h2 class="settings-title">Commands</h2>
<div class="settings-group">
<div class="toggle-setting">
Pre Launch
<input v-model="settings.hooks.pre_launch" type="text" class="input" />
</div>
<div class="toggle-setting">
Wrapper
<input v-model="settings.hooks.wrapper" type="text" class="input" />
</div>
<div class="toggle-setting">
Post Launch
<input v-model="settings.hooks.post_exit" type="text" class="input" />
</div>
</div>
</Card>
</div>
</template>
<style lang="scss" scoped>
.concurrent-downloads {
width: 80% !important;
}
.auto-detect-modal {
padding: 1rem;
.table {
.table-row {
grid-template-columns: 1fr 4fr 1.5fr;
}
span {
display: inherit;
align-items: center;
justify-content: center;
}
}
}
.slider-input {
width: 5rem !important;
flex-basis: 5rem !important;
}
.installation-input {
width: 100% !important;
flex-grow: 1;
}
.theming,
.settings-card {
margin: 1rem;
display: flex;
flex-direction: column;
}
.theming {
.toggle-setting {
display: flex;
}
}
.theme-dropdown {
text-transform: capitalize;
}
.settings-card {
display: flex;
flex-direction: column;
gap: 1rem;
}
.settings-title {
color: var(--color-contrast);
}
.settings-group {
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.installation-input {
width: 100%;
}
.installation-buttons {
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-items: center;
gap: 0.5rem;
margin: 0;
}
.sliders {
display: flex;
flex-wrap: wrap;
flex-direction: row;
gap: 1rem;
width: 100%;
.slider {
flex-grow: 1;
}
}
.toggle-setting {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
gap: 0.5rem;
}
.manage {
display: flex;
gap: 0.5rem;
}
.testing-loader {
height: 1rem !important;
width: 1rem !important;
svg {
height: inherit !important;
width: inherit !important;
}
}
.test-success {
color: var(--color-green);
}
.test-fail {
color: var(--color-red);
}
</style>

View File

@@ -22,7 +22,7 @@
</Button>
</span>
</div>
<div class="table-container">
<div class="table">
<div class="table-row table-head">
<div class="table-cell table-text">
<Button color="success" icon-only>
@@ -176,53 +176,17 @@ function updateSort(projects, sort) {
</script>
<style scoped lang="scss">
.table-container {
display: grid;
grid-template-rows: repeat(auto-fill, auto);
width: 100%;
border-radius: var(--radius-md);
overflow: hidden;
}
.table-row {
display: grid;
grid-template-columns: min-content 2fr 1fr 1fr 8rem;
}
.table-head {
.table-cell {
background-color: var(--color-accent-contrast);
}
}
.table-cell {
padding: 1rem;
height: 100%;
align-items: center;
vertical-align: center;
display: flex;
}
.table-text {
overflow: hidden;
white-space: nowrap;
text-overflow: fade;
}
.manage {
display: flex;
gap: 0.5rem;
}
.mod-text {
display: flex;
align-items: center;
gap: 1rem;
color: var(--color-contrast);
.table-row {
grid-template-columns: min-content 2fr 1fr 1fr 8rem;
}
.table-row:nth-child(even) .table-cell {
background-color: var(--color-bg);
.table-cell {
align-items: center;
}
.card-row {

View File

@@ -51,7 +51,7 @@
</div>
</Card>
<Card class="mod-card">
<div class="table-container">
<div class="table">
<div class="table-row table-head">
<div class="table-cell table-text download-cell" />
<div class="name-cell table-cell table-text">Name</div>
@@ -167,54 +167,8 @@ defineProps({
gap: 0.5rem;
}
.table-container {
display: grid;
grid-template-rows: repeat(auto-fill, auto);
width: 100%;
border-radius: var(--radius-md);
overflow: hidden;
}
.table-row {
display: grid;
grid-template-columns: min-content 1fr 1fr 1.5fr;
transition: opacity 0.5s ease-in-out, filter 0.2s ease-in-out, scale 0.05s ease-in-out,
outline 0.2s ease-in-out;
&.selectable:focus-visible,
&.selectable:hover {
cursor: pointer;
filter: brightness(0.85);
}
&.selectable:active {
filter: brightness(0.8);
scale: 0.99;
}
}
.table-head {
.table-cell {
background-color: var(--color-accent-contrast);
}
}
.table-cell {
padding: 1rem;
height: 100%;
align-items: center;
display: flex;
background-color: var(--color-raised-bg);
}
.name-cell {
padding-left: 0;
}
.table-text {
overflow: hidden;
white-space: nowrap;
text-overflow: fade;
}
.manage {
@@ -227,17 +181,6 @@ defineProps({
}
}
.mod-text {
display: flex;
align-items: center;
gap: 1rem;
color: var(--color-contrast);
}
.table-row:nth-child(even) .table-cell {
background-color: var(--color-bg);
}
.card-row {
display: flex;
align-items: center;

View File

@@ -1,10 +1,18 @@
import { defineStore } from 'pinia'
export const useTheming = defineStore('themeStore', {
state: () => ({ darkTheme: true }),
state: () => ({ themeOptions: ['light', 'dark'], selectedTheme: 'dark', darkTheme: true }),
actions: {
toggleTheme() {
this.darkTheme = !this.darkTheme
setThemeState(newTheme) {
if (this.themeOptions.includes(newTheme)) this.selectedTheme = newTheme
else console.warn('Selected theme is not present. Check themeOptions.')
this.setThemeClass()
},
setThemeClass() {
document.getElementsByTagName('html')[0].classList.remove('dark-mode')
document.getElementsByTagName('html')[0].classList.remove('light-mode')
document.getElementsByTagName('html')[0].classList.add(`${this.selectedTheme}-mode`)
},
},
})

View File

@@ -7,115 +7,115 @@
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.4.tgz#94003fdfc520bbe2875d4ae557b43ddb6d880f17"
integrity sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==
"@esbuild/android-arm64@0.17.14":
version "0.17.14"
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.14.tgz#4624cea3c8941c91f9e9c1228f550d23f1cef037"
integrity sha512-eLOpPO1RvtsP71afiFTvS7tVFShJBCT0txiv/xjFBo5a7R7Gjw7X0IgIaFoLKhqXYAXhahoXm7qAmRXhY4guJg==
"@esbuild/android-arm64@0.17.17":
version "0.17.17"
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.17.tgz#164b054d58551f8856285f386e1a8f45d9ba3a31"
integrity sha512-jaJ5IlmaDLFPNttv0ofcwy/cfeY4bh/n705Tgh+eLObbGtQBK3EPAu+CzL95JVE4nFAliyrnEu0d32Q5foavqg==
"@esbuild/android-arm@0.17.14":
version "0.17.14"
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.14.tgz#74fae60fcab34c3f0e15cb56473a6091ba2b53a6"
integrity sha512-0CnlwnjDU8cks0yJLXfkaU/uoLyRf9VZJs4p1PskBr2AlAHeEsFEwJEo0of/Z3g+ilw5mpyDwThlxzNEIxOE4g==
"@esbuild/android-arm@0.17.17":
version "0.17.17"
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.17.tgz#1b3b5a702a69b88deef342a7a80df4c894e4f065"
integrity sha512-E6VAZwN7diCa3labs0GYvhEPL2M94WLF8A+czO8hfjREXxba8Ng7nM5VxV+9ihNXIY1iQO1XxUU4P7hbqbICxg==
"@esbuild/android-x64@0.17.14":
version "0.17.14"
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.14.tgz#f002fbc08d5e939d8314bd23bcfb1e95d029491f"
integrity sha512-nrfQYWBfLGfSGLvRVlt6xi63B5IbfHm3tZCdu/82zuFPQ7zez4XjmRtF/wIRYbJQ/DsZrxJdEvYFE67avYXyng==
"@esbuild/android-x64@0.17.17":
version "0.17.17"
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.17.tgz#6781527e3c4ea4de532b149d18a2167f06783e7f"
integrity sha512-446zpfJ3nioMC7ASvJB1pszHVskkw4u/9Eu8s5yvvsSDTzYh4p4ZIRj0DznSl3FBF0Z/mZfrKXTtt0QCoFmoHA==
"@esbuild/darwin-arm64@0.17.14":
version "0.17.14"
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.14.tgz#b8dcd79a1dd19564950b4ca51d62999011e2e168"
integrity sha512-eoSjEuDsU1ROwgBH/c+fZzuSyJUVXQTOIN9xuLs9dE/9HbV/A5IqdXHU1p2OfIMwBwOYJ9SFVGGldxeRCUJFyw==
"@esbuild/darwin-arm64@0.17.17":
version "0.17.17"
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.17.tgz#c5961ef4d3c1cc80dafe905cc145b5a71d2ac196"
integrity sha512-m/gwyiBwH3jqfUabtq3GH31otL/0sE0l34XKpSIqR7NjQ/XHQ3lpmQHLHbG8AHTGCw8Ao059GvV08MS0bhFIJQ==
"@esbuild/darwin-x64@0.17.14":
version "0.17.14"
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.14.tgz#4b49f195d9473625efc3c773fc757018f2c0d979"
integrity sha512-zN0U8RWfrDttdFNkHqFYZtOH8hdi22z0pFm0aIJPsNC4QQZv7je8DWCX5iA4Zx6tRhS0CCc0XC2m7wKsbWEo5g==
"@esbuild/darwin-x64@0.17.17":
version "0.17.17"
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.17.tgz#b81f3259cc349691f67ae30f7b333a53899b3c20"
integrity sha512-4utIrsX9IykrqYaXR8ob9Ha2hAY2qLc6ohJ8c0CN1DR8yWeMrTgYFjgdeQ9LIoTOfLetXjuCu5TRPHT9yKYJVg==
"@esbuild/freebsd-arm64@0.17.14":
version "0.17.14"
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.14.tgz#480923fd38f644c6342c55e916cc7c231a85eeb7"
integrity sha512-z0VcD4ibeZWVQCW1O7szaLxGsx54gcCnajEJMdYoYjLiq4g1jrP2lMq6pk71dbS5+7op/L2Aod+erw+EUr28/A==
"@esbuild/freebsd-arm64@0.17.17":
version "0.17.17"
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.17.tgz#db846ad16cf916fd3acdda79b85ea867cb100e87"
integrity sha512-4PxjQII/9ppOrpEwzQ1b0pXCsFLqy77i0GaHodrmzH9zq2/NEhHMAMJkJ635Ns4fyJPFOlHMz4AsklIyRqFZWA==
"@esbuild/freebsd-x64@0.17.14":
version "0.17.14"
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.14.tgz#a6b6b01954ad8562461cb8a5e40e8a860af69cbe"
integrity sha512-hd9mPcxfTgJlolrPlcXkQk9BMwNBvNBsVaUe5eNUqXut6weDQH8whcNaKNF2RO8NbpT6GY8rHOK2A9y++s+ehw==
"@esbuild/freebsd-x64@0.17.17":
version "0.17.17"
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.17.tgz#4dd99acbaaba00949d509e7c144b1b6ef9e1815b"
integrity sha512-lQRS+4sW5S3P1sv0z2Ym807qMDfkmdhUYX30GRBURtLTrJOPDpoU0kI6pVz1hz3U0+YQ0tXGS9YWveQjUewAJw==
"@esbuild/linux-arm64@0.17.14":
version "0.17.14"
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.14.tgz#1fe2f39f78183b59f75a4ad9c48d079916d92418"
integrity sha512-FhAMNYOq3Iblcj9i+K0l1Fp/MHt+zBeRu/Qkf0LtrcFu3T45jcwB6A1iMsemQ42vR3GBhjNZJZTaCe3VFPbn9g==
"@esbuild/linux-arm64@0.17.17":
version "0.17.17"
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.17.tgz#7f9274140b2bb9f4230dbbfdf5dc2761215e30f6"
integrity sha512-2+pwLx0whKY1/Vqt8lyzStyda1v0qjJ5INWIe+d8+1onqQxHLLi3yr5bAa4gvbzhZqBztifYEu8hh1La5+7sUw==
"@esbuild/linux-arm@0.17.14":
version "0.17.14"
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.14.tgz#18d594a49b64e4a3a05022c005cb384a58056a2a"
integrity sha512-BNTl+wSJ1omsH8s3TkQmIIIQHwvwJrU9u1ggb9XU2KTVM4TmthRIVyxSp2qxROJHhZuW/r8fht46/QE8hU8Qvg==
"@esbuild/linux-arm@0.17.17":
version "0.17.17"
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.17.tgz#5c8e44c2af056bb2147cf9ad13840220bcb8948b"
integrity sha512-biDs7bjGdOdcmIk6xU426VgdRUpGg39Yz6sT9Xp23aq+IEHDb/u5cbmu/pAANpDB4rZpY/2USPhCA+w9t3roQg==
"@esbuild/linux-ia32@0.17.14":
version "0.17.14"
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.14.tgz#f7f0182a9cfc0159e0922ed66c805c9c6ef1b654"
integrity sha512-91OK/lQ5y2v7AsmnFT+0EyxdPTNhov3y2CWMdizyMfxSxRqHazXdzgBKtlmkU2KYIc+9ZK3Vwp2KyXogEATYxQ==
"@esbuild/linux-ia32@0.17.17":
version "0.17.17"
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.17.tgz#18a6b3798658be7f46e9873fa0c8d4bec54c9212"
integrity sha512-IBTTv8X60dYo6P2t23sSUYym8fGfMAiuv7PzJ+0LcdAndZRzvke+wTVxJeCq4WgjppkOpndL04gMZIFvwoU34Q==
"@esbuild/linux-loong64@0.17.14":
version "0.17.14"
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.14.tgz#5f5305fdffe2d71dd9a97aa77d0c99c99409066f"
integrity sha512-vp15H+5NR6hubNgMluqqKza85HcGJgq7t6rMH7O3Y6ApiOWPkvW2AJfNojUQimfTp6OUrACUXfR4hmpcENXoMQ==
"@esbuild/linux-loong64@0.17.17":
version "0.17.17"
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.17.tgz#a8d93514a47f7b4232716c9f02aeb630bae24c40"
integrity sha512-WVMBtcDpATjaGfWfp6u9dANIqmU9r37SY8wgAivuKmgKHE+bWSuv0qXEFt/p3qXQYxJIGXQQv6hHcm7iWhWjiw==
"@esbuild/linux-mips64el@0.17.14":
version "0.17.14"
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.14.tgz#a602e85c51b2f71d2aedfe7f4143b2f92f97f3f5"
integrity sha512-90TOdFV7N+fgi6c2+GO9ochEkmm9kBAKnuD5e08GQMgMINOdOFHuYLPQ91RYVrnWwQ5683sJKuLi9l4SsbJ7Hg==
"@esbuild/linux-mips64el@0.17.17":
version "0.17.17"
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.17.tgz#4784efb1c3f0eac8133695fa89253d558149ee1b"
integrity sha512-2kYCGh8589ZYnY031FgMLy0kmE4VoGdvfJkxLdxP4HJvWNXpyLhjOvxVsYjYZ6awqY4bgLR9tpdYyStgZZhi2A==
"@esbuild/linux-ppc64@0.17.14":
version "0.17.14"
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.14.tgz#32d918d782105cbd9345dbfba14ee018b9c7afdf"
integrity sha512-NnBGeoqKkTugpBOBZZoktQQ1Yqb7aHKmHxsw43NddPB2YWLAlpb7THZIzsRsTr0Xw3nqiPxbA1H31ZMOG+VVPQ==
"@esbuild/linux-ppc64@0.17.17":
version "0.17.17"
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.17.tgz#ef6558ec5e5dd9dc16886343e0ccdb0699d70d3c"
integrity sha512-KIdG5jdAEeAKogfyMTcszRxy3OPbZhq0PPsW4iKKcdlbk3YE4miKznxV2YOSmiK/hfOZ+lqHri3v8eecT2ATwQ==
"@esbuild/linux-riscv64@0.17.14":
version "0.17.14"
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.14.tgz#38612e7b6c037dff7022c33f49ca17f85c5dec58"
integrity sha512-0qdlKScLXA8MGVy21JUKvMzCYWovctuP8KKqhtE5A6IVPq4onxXhSuhwDd2g5sRCzNDlDjitc5sX31BzDoL5Fw==
"@esbuild/linux-riscv64@0.17.17":
version "0.17.17"
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.17.tgz#13a87fdbcb462c46809c9d16bcf79817ecf9ce6f"
integrity sha512-Cj6uWLBR5LWhcD/2Lkfg2NrkVsNb2sFM5aVEfumKB2vYetkA/9Uyc1jVoxLZ0a38sUhFk4JOVKH0aVdPbjZQeA==
"@esbuild/linux-s390x@0.17.14":
version "0.17.14"
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.14.tgz#4397dff354f899e72fd035d72af59a700c465ccb"
integrity sha512-Hdm2Jo1yaaOro4v3+6/zJk6ygCqIZuSDJHdHaf8nVH/tfOuoEX5Riv03Ka15LmQBYJObUTNS1UdyoMk0WUn9Ww==
"@esbuild/linux-s390x@0.17.17":
version "0.17.17"
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.17.tgz#83cb16d1d3ac0dca803b3f031ba3dc13f1ec7ade"
integrity sha512-lK+SffWIr0XsFf7E0srBjhpkdFVJf3HEgXCwzkm69kNbRar8MhezFpkIwpk0qo2IOQL4JE4mJPJI8AbRPLbuOQ==
"@esbuild/linux-x64@0.17.14":
version "0.17.14"
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.14.tgz#6c5cb99891b6c3e0c08369da3ef465e8038ad9c2"
integrity sha512-8KHF17OstlK4DuzeF/KmSgzrTWQrkWj5boluiiq7kvJCiQVzUrmSkaBvcLB2UgHpKENO2i6BthPkmUhNDaJsVw==
"@esbuild/linux-x64@0.17.17":
version "0.17.17"
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.17.tgz#7bc400568690b688e20a0c94b2faabdd89ae1a79"
integrity sha512-XcSGTQcWFQS2jx3lZtQi7cQmDYLrpLRyz1Ns1DzZCtn898cWfm5Icx/DEWNcTU+T+tyPV89RQtDnI7qL2PObPg==
"@esbuild/netbsd-x64@0.17.14":
version "0.17.14"
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.14.tgz#5fa5255a64e9bf3947c1b3bef5e458b50b211994"
integrity sha512-nVwpqvb3yyXztxIT2+VsxJhB5GCgzPdk1n0HHSnchRAcxqKO6ghXwHhJnr0j/B+5FSyEqSxF4q03rbA2fKXtUQ==
"@esbuild/netbsd-x64@0.17.17":
version "0.17.17"
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.17.tgz#1b5dcfbc4bfba80e67a11e9148de836af5b58b6c"
integrity sha512-RNLCDmLP5kCWAJR+ItLM3cHxzXRTe4N00TQyQiimq+lyqVqZWGPAvcyfUBM0isE79eEZhIuGN09rAz8EL5KdLA==
"@esbuild/openbsd-x64@0.17.14":
version "0.17.14"
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.14.tgz#74d14c79dcb6faf446878cc64284aa4e02f5ca6f"
integrity sha512-1RZ7uQQ9zcy/GSAJL1xPdN7NDdOOtNEGiJalg/MOzeakZeTrgH/DoCkbq7TaPDiPhWqnDF+4bnydxRqQD7il6g==
"@esbuild/openbsd-x64@0.17.17":
version "0.17.17"
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.17.tgz#e275098902291149a5dcd012c9ea0796d6b7adff"
integrity sha512-PAXswI5+cQq3Pann7FNdcpSUrhrql3wKjj3gVkmuz6OHhqqYxKvi6GgRBoaHjaG22HV/ZZEgF9TlS+9ftHVigA==
"@esbuild/sunos-x64@0.17.14":
version "0.17.14"
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.14.tgz#5c7d1c7203781d86c2a9b2ff77bd2f8036d24cfa"
integrity sha512-nqMjDsFwv7vp7msrwWRysnM38Sd44PKmW8EzV01YzDBTcTWUpczQg6mGao9VLicXSgW/iookNK6AxeogNVNDZA==
"@esbuild/sunos-x64@0.17.17":
version "0.17.17"
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.17.tgz#10603474866f64986c0370a2d4fe5a2bb7fee4f5"
integrity sha512-V63egsWKnx/4V0FMYkr9NXWrKTB5qFftKGKuZKFIrAkO/7EWLFnbBZNM1CvJ6Sis+XBdPws2YQSHF1Gqf1oj/Q==
"@esbuild/win32-arm64@0.17.14":
version "0.17.14"
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.14.tgz#dc36ed84f1390e73b6019ccf0566c80045e5ca3d"
integrity sha512-xrD0mccTKRBBIotrITV7WVQAwNJ5+1va6L0H9zN92v2yEdjfAN7864cUaZwJS7JPEs53bDTzKFbfqVlG2HhyKQ==
"@esbuild/win32-arm64@0.17.17":
version "0.17.17"
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.17.tgz#521a6d97ee0f96b7c435930353cc4e93078f0b54"
integrity sha512-YtUXLdVnd6YBSYlZODjWzH+KzbaubV0YVd6UxSfoFfa5PtNJNaW+1i+Hcmjpg2nEe0YXUCNF5bkKy1NnBv1y7Q==
"@esbuild/win32-ia32@0.17.14":
version "0.17.14"
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.14.tgz#0802a107afa9193c13e35de15a94fe347c588767"
integrity sha512-nXpkz9bbJrLLyUTYtRotSS3t5b+FOuljg8LgLdINWFs3FfqZMtbnBCZFUmBzQPyxqU87F8Av+3Nco/M3hEcu1w==
"@esbuild/win32-ia32@0.17.17":
version "0.17.17"
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.17.tgz#56f88462ebe82dad829dc2303175c0e0ccd8e38e"
integrity sha512-yczSLRbDdReCO74Yfc5tKG0izzm+lPMYyO1fFTcn0QNwnKmc3K+HdxZWLGKg4pZVte7XVgcFku7TIZNbWEJdeQ==
"@esbuild/win32-x64@0.17.14":
version "0.17.14"
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.14.tgz#e81fb49de05fed91bf74251c9ca0343f4fc77d31"
integrity sha512-gPQmsi2DKTaEgG14hc3CHXHp62k8g6qr0Pas+I4lUxRMugGSATh/Bi8Dgusoz9IQ0IfdrvLpco6kujEIBoaogA==
"@esbuild/win32-x64@0.17.17":
version "0.17.17"
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.17.tgz#2b577b976e6844106715bbe0cdc57cd1528063f9"
integrity sha512-FNZw7H3aqhF9OyRQbDDnzUApDXfC1N6fgBhkqEO2jvYCJ+DxMTfZVqg3AX0R1khg1wHTBRD5SdcibSJ+XF6bFg==
"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.3.0":
version "4.4.0"
@@ -144,10 +144,10 @@
minimatch "^3.1.2"
strip-json-comments "^3.1.1"
"@eslint/js@8.37.0":
version "8.37.0"
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.37.0.tgz#cf1b5fa24217fe007f6487a26d765274925efa7d"
integrity sha512-x5vzdtOOGgFVDCUs81QRB2+liax8rFg3+7hqM+QhBG0/G3F1ZsoYl97UrqgHgQ9KKT7G6c4V+aTUCgu/n22v1A==
"@eslint/js@8.38.0":
version "8.38.0"
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.38.0.tgz#73a8a0d8aa8a8e6fe270431c5e72ae91b5337892"
integrity sha512-IoD2MfUnOV58ghIHCiil01PcohxjbYR/qCxsoC+xNgUwh1EY8jOOrYmu3d3a71+tJJ23uscEV4X2HJWMsPJu4g==
"@floating-ui/core@^0.3.0":
version "0.3.1"
@@ -202,9 +202,9 @@
fastq "^1.6.0"
"@rollup/plugin-alias@^4.0.3":
version "4.0.3"
resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-4.0.3.tgz#571f6fb26387df91d0363905a7fd835757727ae2"
integrity sha512-ZuDWE1q4PQDhvm/zc5Prun8sBpLJy41DMptYrS6MhAy9s9kL/doN1613BWfEchGVfKxzliJ3BjbOPizXX38DbQ==
version "4.0.4"
resolved "https://registry.yarnpkg.com/@rollup/plugin-alias/-/plugin-alias-4.0.4.tgz#67734ec44a7747916aa52a3b1a0e8d459dbf3ae2"
integrity sha512-0CaAY238SMtYAWEXXptWSR8iz8NYZnH7zNBKuJ14xFJSGwLtPgjvXYsoApAHfzYXXH1ejxpVw7WlHss3zhh9SQ==
dependencies:
slash "^4.0.0"
@@ -295,9 +295,9 @@
"@types/json-schema" "*"
"@types/estree@*":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2"
integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==
version "1.0.1"
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194"
integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==
"@types/json-schema@*":
version "7.0.11"
@@ -657,9 +657,9 @@ domutils@^3.0.1:
domhandler "^5.0.1"
entities@^4.2.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174"
integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==
version "4.5.0"
resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
entities@~3.0.1:
version "3.0.1"
@@ -667,32 +667,32 @@ entities@~3.0.1:
integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==
esbuild@^0.17.5:
version "0.17.14"
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.14.tgz#d61a22de751a3133f3c6c7f9c1c3e231e91a3245"
integrity sha512-vOO5XhmVj/1XQR9NQ1UPq6qvMYL7QFJU57J5fKBKBKxp17uDt5PgxFDb4A2nEiXhr1qQs4x0F5+66hVVw4ruNw==
version "0.17.17"
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.17.tgz#fa906ab11b11d2ed4700f494f4f764229b25c916"
integrity sha512-/jUywtAymR8jR4qsa2RujlAF7Krpt5VWi72Q2yuLD4e/hvtNcFQ0I1j8m/bxq238pf3/0KO5yuXNpuLx8BE1KA==
optionalDependencies:
"@esbuild/android-arm" "0.17.14"
"@esbuild/android-arm64" "0.17.14"
"@esbuild/android-x64" "0.17.14"
"@esbuild/darwin-arm64" "0.17.14"
"@esbuild/darwin-x64" "0.17.14"
"@esbuild/freebsd-arm64" "0.17.14"
"@esbuild/freebsd-x64" "0.17.14"
"@esbuild/linux-arm" "0.17.14"
"@esbuild/linux-arm64" "0.17.14"
"@esbuild/linux-ia32" "0.17.14"
"@esbuild/linux-loong64" "0.17.14"
"@esbuild/linux-mips64el" "0.17.14"
"@esbuild/linux-ppc64" "0.17.14"
"@esbuild/linux-riscv64" "0.17.14"
"@esbuild/linux-s390x" "0.17.14"
"@esbuild/linux-x64" "0.17.14"
"@esbuild/netbsd-x64" "0.17.14"
"@esbuild/openbsd-x64" "0.17.14"
"@esbuild/sunos-x64" "0.17.14"
"@esbuild/win32-arm64" "0.17.14"
"@esbuild/win32-ia32" "0.17.14"
"@esbuild/win32-x64" "0.17.14"
"@esbuild/android-arm" "0.17.17"
"@esbuild/android-arm64" "0.17.17"
"@esbuild/android-x64" "0.17.17"
"@esbuild/darwin-arm64" "0.17.17"
"@esbuild/darwin-x64" "0.17.17"
"@esbuild/freebsd-arm64" "0.17.17"
"@esbuild/freebsd-x64" "0.17.17"
"@esbuild/linux-arm" "0.17.17"
"@esbuild/linux-arm64" "0.17.17"
"@esbuild/linux-ia32" "0.17.17"
"@esbuild/linux-loong64" "0.17.17"
"@esbuild/linux-mips64el" "0.17.17"
"@esbuild/linux-ppc64" "0.17.17"
"@esbuild/linux-riscv64" "0.17.17"
"@esbuild/linux-s390x" "0.17.17"
"@esbuild/linux-x64" "0.17.17"
"@esbuild/netbsd-x64" "0.17.17"
"@esbuild/openbsd-x64" "0.17.17"
"@esbuild/sunos-x64" "0.17.17"
"@esbuild/win32-arm64" "0.17.17"
"@esbuild/win32-ia32" "0.17.17"
"@esbuild/win32-x64" "0.17.17"
escape-string-regexp@^4.0.0:
version "4.0.0"
@@ -705,9 +705,9 @@ eslint-config-prettier@^8.6.0:
integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==
eslint-plugin-vue@^9.9.0:
version "9.10.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.10.0.tgz#bb6423166e6eab800344245b6eef6ce9480c78a7"
integrity sha512-2MgP31OBf8YilUvtakdVMc8xVbcMp7z7/iQj8LHVpXrSXHPXSJRUIGSPFI6b6pyCx/buKaFJ45ycqfHvQRiW2g==
version "9.11.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.11.0.tgz#99a247455c02181f24d9240d422380fd16dd630c"
integrity sha512-bBCJAZnkBV7ATH4Z1E7CvN3nmtS4H7QUU3UBxPdo8WohRU+yHjnQRALpTbxMVcz0e4Mx3IyxIdP5HYODMxK9cQ==
dependencies:
"@eslint-community/eslint-utils" "^4.3.0"
natural-compare "^1.4.0"
@@ -718,9 +718,9 @@ eslint-plugin-vue@^9.9.0:
xml-name-validator "^4.0.0"
eslint-scope@^7.1.1:
version "7.1.1"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642"
integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==
version "7.2.0"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b"
integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==
dependencies:
esrecurse "^4.3.0"
estraverse "^5.2.0"
@@ -731,14 +731,14 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.0:
integrity sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==
eslint@^8.35.0:
version "8.37.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.37.0.tgz#1f660ef2ce49a0bfdec0b0d698e0b8b627287412"
integrity sha512-NU3Ps9nI05GUoVMxcZx1J8CNR6xOvUT4jAUMH5+z8lpp3aEdPVCImKw6PWG4PY+Vfkpr+jvMpxs/qoE7wq0sPw==
version "8.38.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.38.0.tgz#a62c6f36e548a5574dd35728ac3c6209bd1e2f1a"
integrity sha512-pIdsD2jwlUGf/U38Jv97t8lq6HpaU/G9NKbYmpWpZGw3LdTNhZLbJePqxOXGB5+JEKfOPU/XLxYxFh03nr1KTg==
dependencies:
"@eslint-community/eslint-utils" "^4.2.0"
"@eslint-community/regexpp" "^4.4.0"
"@eslint/eslintrc" "^2.0.2"
"@eslint/js" "8.37.0"
"@eslint/js" "8.38.0"
"@humanwhocodes/config-array" "^0.11.8"
"@humanwhocodes/module-importer" "^1.0.1"
"@nodelib/fs.walk" "^1.2.8"
@@ -992,10 +992,10 @@ is-binary-path@~2.1.0:
dependencies:
binary-extensions "^2.0.0"
is-core-module@^2.9.0:
version "2.11.0"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144"
integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==
is-core-module@^2.11.0:
version "2.12.0"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.0.tgz#36ad62f6f73c8253fd6472517a12483cf03e7ec4"
integrity sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==
dependencies:
has "^1.0.3"
@@ -1132,7 +1132,7 @@ ms@2.1.2:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
nanoid@^3.3.4:
nanoid@^3.3.6:
version "3.3.6"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c"
integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==
@@ -1143,9 +1143,9 @@ natural-compare@^1.4.0:
integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
node-fetch-native@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.0.2.tgz#de3651399fda89a1a7c0bf6e7c4e9c239e8d0697"
integrity sha512-KIkvH1jl6b3O7es/0ShyCgWLcfXxlBrLBbP3rOr23WArC66IMcU4DeZEeYEOwnopYhawLTn7/y+YtmASe8DFVQ==
version "1.1.0"
resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.1.0.tgz#a530f5c4cadb49b382dcf81d8f5f19ed0f457fbe"
integrity sha512-nl5goFCig93JZ9FIV8GHT9xpNqXbxQUzkOmKIMKmncsBH9jhg7qKex8hirpymkBFmNQ114chEEG5lS4wgK2I+Q==
normalize-path@^3.0.0, normalize-path@~3.0.0:
version "3.0.0"
@@ -1168,10 +1168,10 @@ ofetch@^1.0.1:
node-fetch-native "^1.0.2"
ufo "^1.1.0"
omorphia@^0.4.4:
version "0.4.4"
resolved "https://registry.yarnpkg.com/omorphia/-/omorphia-0.4.4.tgz#788e5953eb1ae81c8a65ce277a5086668acf50a4"
integrity sha512-HnIZahQVQmH6kHPzeb5iQTzgPhWu8VUwgNnCIUzWhudFqgB32NNUHNQW3seHgM8pmLSeIA3/2fjqkTrzK9EQvw==
omorphia@^0.4.9:
version "0.4.9"
resolved "https://registry.yarnpkg.com/omorphia/-/omorphia-0.4.9.tgz#2c13cee8892dfdf892e1912794c783c379c8c5a8"
integrity sha512-LbCCVhMmxiNdlFjJRsL4QBgBS1csA1YhV0jiKwGWp0D659ZOoatUbiY7V7gpzPv1IgI6rXC1no06cRWgSzDOKA==
dependencies:
dayjs "^1.11.7"
floating-vue "^2.0.0-beta.20"
@@ -1253,9 +1253,9 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2:
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
pinia@^2.0.33:
version "2.0.33"
resolved "https://registry.yarnpkg.com/pinia/-/pinia-2.0.33.tgz#b70065be697874d5824e9792f59bd5d87ddb5e7d"
integrity sha512-HOj1yVV2itw6rNIrR2f7+MirGNxhORjrULL8GWgRwXsGSvEqIQ+SE0MYt6cwtpegzCda3i+rVTZM+AM7CG+kRg==
version "2.0.34"
resolved "https://registry.yarnpkg.com/pinia/-/pinia-2.0.34.tgz#6c0c84f06b631c30c030633fa64e525c609105a9"
integrity sha512-cgOoGUiyqX0SSgX8XelK9+Ri4XA2/YyNtgjogwfzIx1g7iZTaZPxm7/bZYMCLU2qHRiHhxG7SuQO0eBacFNc2Q==
dependencies:
"@vue/devtools-api" "^6.5.0"
vue-demi "*"
@@ -1269,11 +1269,11 @@ postcss-selector-parser@^6.0.9:
util-deprecate "^1.0.2"
postcss@^8.1.10, postcss@^8.4.21:
version "8.4.21"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4"
integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==
version "8.4.23"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.23.tgz#df0aee9ac7c5e53e1075c24a3613496f9e6552ab"
integrity sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==
dependencies:
nanoid "^3.3.4"
nanoid "^3.3.6"
picocolors "^1.0.0"
source-map-js "^1.0.2"
@@ -1310,11 +1310,11 @@ resolve-from@^4.0.0:
integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
resolve@^1.22.1:
version "1.22.1"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177"
integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
version "1.22.2"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f"
integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==
dependencies:
is-core-module "^2.9.0"
is-core-module "^2.11.0"
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
@@ -1338,9 +1338,9 @@ rollup@^2.77.2:
fsevents "~2.3.2"
rollup@^3.18.0:
version "3.20.2"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.20.2.tgz#f798c600317f216de2e4ad9f4d9ab30a89b690ff"
integrity sha512-3zwkBQl7Ai7MFYQE0y1MeQ15+9jsi7XxfrqwTb/9EK8D9C9+//EBR4M+CuA1KODRaNbFez/lWxA5vhEGZp4MUg==
version "3.20.6"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.20.6.tgz#53c0fd73e397269d2ce5f0ec12851457dd53cacd"
integrity sha512-2yEB3nQXp/tBQDN0hJScJQheXdvU2wFhh6ld7K/aiZ1vYcak6N/BKjY1QrU6BvO2JWYS8bEs14FRaxXosxy2zw==
optionalDependencies:
fsevents "~2.3.2"
@@ -1352,18 +1352,18 @@ run-parallel@^1.1.9:
queue-microtask "^1.2.2"
sass@^1.58.3:
version "1.60.0"
resolved "https://registry.yarnpkg.com/sass/-/sass-1.60.0.tgz#657f0c23a302ac494b09a5ba8497b739fb5b5a81"
integrity sha512-updbwW6fNb5gGm8qMXzVO7V4sWf7LMXnMly/JEyfbfERbVH46Fn6q02BX7/eHTdKpE7d+oTkMMQpFWNUMfFbgQ==
version "1.62.0"
resolved "https://registry.yarnpkg.com/sass/-/sass-1.62.0.tgz#3686b2195b93295d20765135e562366b33ece37d"
integrity sha512-Q4USplo4pLYgCi+XlipZCWUQz5pkg/ruSSgJ0WRDSb/+3z9tXUOkQ7QPYn4XrhZKYAK4HlpaQecRwKLJX6+DBg==
dependencies:
chokidar ">=3.0.0 <4.0.0"
immutable "^4.0.0"
source-map-js ">=0.6.2 <2.0.0"
semver@^7.3.5, semver@^7.3.6:
version "7.3.8"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798"
integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==
version "7.5.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.0.tgz#ed8c5dc8efb6c629c88b23d41dc9bf40c1d96cd0"
integrity sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==
dependencies:
lru-cache "^6.0.0"
@@ -1499,9 +1499,9 @@ vite-svg-loader@^4.0.0:
svgo "^3.0.2"
vite@^4.0.0:
version "4.2.1"
resolved "https://registry.yarnpkg.com/vite/-/vite-4.2.1.tgz#6c2eb337b0dfd80a9ded5922163b94949d7fc254"
integrity sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==
version "4.2.2"
resolved "https://registry.yarnpkg.com/vite/-/vite-4.2.2.tgz#014c30e5163844f6e96d7fe18fbb702236516dc6"
integrity sha512-PcNtT5HeDxb3QaSqFYkEum8f5sCVe0R3WK20qxgIvNBZPXU/Obxs/+ubBMeE7nLWeCo2LDzv+8hRYSlcaSehig==
dependencies:
esbuild "^0.17.5"
postcss "^8.4.21"
@@ -1511,9 +1511,9 @@ vite@^4.0.0:
fsevents "~2.3.2"
vue-demi@*:
version "0.13.11"
resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.13.11.tgz#7d90369bdae8974d87b1973564ad390182410d99"
integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==
version "0.14.0"
resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.0.tgz#dcfd9a9cf9bb62ada1582ec9042372cf67ca6190"
integrity sha512-gt58r2ogsNQeVoQ3EhoUAvUsH9xviydl0dWJj7dabBC/2L4uBId7ujtCwDRD0JhkGsV1i0CtfLAeyYKBht9oWg==
vue-eslint-parser@^9.0.1:
version "9.1.1"