From f9c9f6efbe71bf22c47f81144b1de8ce60bcdb1e Mon Sep 17 00:00:00 2001 From: Ferdinand Thiessen Date: Fri, 21 May 2021 01:42:41 +0200 Subject: [PATCH 1/9] [core] Seperated plugin and api types into subproject --- package.json | 5 +- src/boot/plugins.ts | 8 +- src/components/Notification.vue | 2 +- .../navigation/EssentialExpansionLink.vue | 2 +- src/components/navigation/EssentialLink.vue | 2 +- src/components/navigation/ShortcutLink.vue | 2 +- src/flaschengeist.d.ts | 137 ------------------ src/layouts/MainLayout.vue | 6 +- src/layouts/OutLayout.vue | 2 +- src/pages/Dashboard.vue | 2 +- src/pages/about/About.vue | 11 +- src/plugins.d.ts | 117 --------------- src/plugins/balance/plugin.ts | 4 +- src/plugins/balance/routes/index.ts | 2 +- src/plugins/pricelist/plugin.ts | 2 +- src/plugins/pricelist/routes/index.ts | 2 +- src/plugins/schedule/plugin.ts | 4 +- src/plugins/schedule/routes/index.ts | 2 +- src/plugins/user/plugin.ts | 4 +- src/plugins/user/routes/index.ts | 2 +- src/stores/index.ts | 2 +- tsconfig.json | 5 +- 22 files changed, 35 insertions(+), 290 deletions(-) delete mode 100644 src/flaschengeist.d.ts delete mode 100644 src/plugins.d.ts diff --git a/package.json b/package.json index ef67c68..51aa48d 100644 --- a/package.json +++ b/package.json @@ -2,8 +2,8 @@ "private": true, "license": "MIT", "version": "2.0.0-alpha.1", - "productName": "Flaschengeist", - "name": "flaschengeist-frontend", + "productName": "flaschengeist-frontend", + "name": "flaschengeist", "author": "Tim Gröger ", "homepage": "https://flaschengeist.dev/Flaschengeist", "description": "Modular student club administration system", @@ -21,6 +21,7 @@ "quasar": "^2.0.0-beta.17" }, "devDependencies": { + "@flaschengeist/typings": "file:../flaschengeist-typings", "@quasar/app": "^3.0.0-beta.25", "@quasar/extras": "^1.10.4", "@quasar/quasar-app-extension-qcalendar": "4.0.0-alpha.8", diff --git a/src/boot/plugins.ts b/src/boot/plugins.ts index 4966893..8df25d7 100644 --- a/src/boot/plugins.ts +++ b/src/boot/plugins.ts @@ -1,10 +1,10 @@ -import { boot } from 'quasar/wrappers'; -import { FG_Plugin } from 'src/plugins'; -import routes from 'src/router/routes'; +import { Notify } from 'quasar'; import { api } from 'boot/axios'; +import { boot } from 'quasar/wrappers'; +import routes from 'src/router/routes'; import { AxiosResponse } from 'axios'; import { RouteRecordRaw } from 'vue-router'; -import { Notify } from 'quasar'; +import { FG_Plugin } from '@flaschengeist/typings'; const config: { [key: string]: Array } = { // Do not change required Modules !! diff --git a/src/components/Notification.vue b/src/components/Notification.vue index 1bee05b..3f375b7 100644 --- a/src/components/Notification.vue +++ b/src/components/Notification.vue @@ -35,7 +35,7 @@ diff --git a/src/plugins/balance/components/BalanceHeader.vue b/src/plugins/balance/components/BalanceHeader.vue deleted file mode 100644 index 61a3171..0000000 --- a/src/plugins/balance/components/BalanceHeader.vue +++ /dev/null @@ -1,66 +0,0 @@ - - - diff --git a/src/plugins/balance/components/BalanceTransfer.vue b/src/plugins/balance/components/BalanceTransfer.vue deleted file mode 100644 index fdfe0f5..0000000 --- a/src/plugins/balance/components/BalanceTransfer.vue +++ /dev/null @@ -1,75 +0,0 @@ - - - diff --git a/src/plugins/balance/components/Transaction.vue b/src/plugins/balance/components/Transaction.vue deleted file mode 100644 index 167db0d..0000000 --- a/src/plugins/balance/components/Transaction.vue +++ /dev/null @@ -1,107 +0,0 @@ - - - diff --git a/src/plugins/balance/components/Widget.vue b/src/plugins/balance/components/Widget.vue deleted file mode 100644 index bbbcdf4..0000000 --- a/src/plugins/balance/components/Widget.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - diff --git a/src/plugins/balance/pages/Admin.vue b/src/plugins/balance/pages/Admin.vue deleted file mode 100644 index eeab423..0000000 --- a/src/plugins/balance/pages/Admin.vue +++ /dev/null @@ -1,59 +0,0 @@ - - - diff --git a/src/plugins/balance/pages/MainPage.vue b/src/plugins/balance/pages/MainPage.vue deleted file mode 100644 index 105930e..0000000 --- a/src/plugins/balance/pages/MainPage.vue +++ /dev/null @@ -1,135 +0,0 @@ - - - diff --git a/src/plugins/balance/pages/Overview.vue b/src/plugins/balance/pages/Overview.vue deleted file mode 100644 index d4e4678..0000000 --- a/src/plugins/balance/pages/Overview.vue +++ /dev/null @@ -1,166 +0,0 @@ - - - diff --git a/src/plugins/balance/permissions.ts b/src/plugins/balance/permissions.ts deleted file mode 100644 index 536f0f5..0000000 --- a/src/plugins/balance/permissions.ts +++ /dev/null @@ -1,21 +0,0 @@ -const PERMISSIONS = { - // Show own and others balance - SHOW: 'balance_show', - SHOW_OTHER: 'balance_show_others', - // Credit balance (give) - CREDIT: 'balance_credit', - // Debit balance (take) - DEBIT: 'balance_debit', - // Debit own balance only - DEBIT_OWN: 'balance_debit_own', - // Send from to other - SEND: 'balance_send', - // Send from other to another - SEND_OTHER: 'balance_send_others', - // Can set limit for users - SET_LIMIT: 'balance_set_limit', - //Allow sending / sub while exceeding the set limit - EXCEED_LIMIT: 'balance_exceed_limit', -}; - -export default PERMISSIONS; diff --git a/src/plugins/balance/plugin.ts b/src/plugins/balance/plugin.ts deleted file mode 100644 index 412ee2d..0000000 --- a/src/plugins/balance/plugin.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { FG_Plugin } from '@flaschengeist/typings'; -import { defineAsyncComponent } from 'vue'; -import routes from './routes'; - -const plugin: FG_Plugin.Plugin = { - name: 'Balance', - innerRoutes: routes, - requiredModules: ['User'], - requiredBackendModules: ['balance'], - version: '0.0.2', - widgets: [ - { - priority: 0, - name: 'current', - permissions: ['balance_show'], - widget: defineAsyncComponent(() => import('./components/Widget.vue')), - }, - ], -}; - -export default plugin; diff --git a/src/plugins/balance/routes/index.ts b/src/plugins/balance/routes/index.ts deleted file mode 100644 index 711b918..0000000 --- a/src/plugins/balance/routes/index.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { FG_Plugin } from '@flaschengeist/typings'; -import permissions from '../permissions'; - -const mainRoutes: FG_Plugin.MenuRoute[] = [ - { - title: 'Gerücht', - icon: 'mdi-cash-100', - permissions: ['user'], - route: { - path: 'balance', - name: 'balance', - redirect: { name: 'balance-view' }, - }, - children: [ - { - title: 'Übersicht', - icon: 'mdi-cash-check', - permissions: [permissions.SHOW], - route: { - path: 'overview', - name: 'balance-view', - component: () => import('../pages/Overview.vue'), - }, - }, - { - title: 'Buchen', - icon: 'mdi-cash-plus', - shortcut: true, - permissions: [permissions.DEBIT_OWN, permissions.SHOW], - route: { - path: 'change', - name: 'balance-change', - component: () => import('../pages/MainPage.vue'), - }, - }, - { - title: 'Verwaltung', - icon: 'mdi-account-cash', - permissions: [permissions.SET_LIMIT, permissions.SHOW_OTHER], - route: { - path: 'admin', - name: 'balance-admin', - component: () => import('../pages/Admin.vue'), - }, - }, - ], - }, -]; - -export default mainRoutes; diff --git a/src/plugins/balance/store.ts b/src/plugins/balance/store.ts deleted file mode 100644 index f961482..0000000 --- a/src/plugins/balance/store.ts +++ /dev/null @@ -1,166 +0,0 @@ -import { api } from 'src/boot/axios'; - -interface BalanceResponse { - balance: number; - credit: number; - debit: number; - limit?: number; -} - -export interface BalancesResponse extends BalanceResponse { - userid: string; -} - -export interface TransactionsResponse { - transactions: Array; - count?: number; -} - -import { defineStore } from 'pinia'; -import { useMainStore } from 'src/stores'; -import { AxiosResponse } from 'axios'; -import { Notify } from 'quasar'; - -function fixTransaction(t: FG.Transaction) { - t.time = new Date(t.time); -} - -export const useBalanceStore = defineStore({ - id: 'balance', - - state: () => ({ - balances: [] as BalancesResponse[], - shortcuts: [] as number[], - transactions: [] as FG.Transaction[], - _balances_dirty: 0, - }), - - getters: { - balance(): BalancesResponse | undefined { - const mainStore = useMainStore(); - return this.balances.find((v) => v.userid === mainStore.user?.userid); - }, - }, - - actions: { - async createShortcut(shortcut: number) { - const mainStore = useMainStore(); - this.shortcuts.push(shortcut); - this.shortcuts.sort((a, b) => a - b); - await api.put(`/users/${mainStore.currentUser.userid}/balance/shortcuts`, this.shortcuts); - }, - - async removeShortcut(shortcut: number) { - const mainStore = useMainStore(); - this.shortcuts = this.shortcuts.filter((value: number) => value !== shortcut); - this.shortcuts.sort((a, b) => a - b); - await api.put(`/users/${mainStore.currentUser.userid}/balance/shortcuts`, this.shortcuts); - }, - - async getShortcuts(force = false) { - if (force || this.shortcuts.length == 0) { - const mainStore = useMainStore(); - const { data } = await api.get( - `/users/${mainStore.currentUser.userid}/balance/shortcuts` - ); - this.shortcuts = data; - } - }, - - async getBalance(user: FG.User) { - const { data } = await api.get(`/users/${user.userid}/balance`); - const idx = this.balances.findIndex((x) => x.userid === user.userid); - if (idx == -1) this.balances.push(Object.assign(data, { userid: user.userid })); - else this.balances[idx] = Object.assign(data, { userid: user.userid }); - return data; - }, - - async getBalances(force = false) { - if ( - force || - this.balances.length == 0 || - new Date().getTime() - this._balances_dirty > 60000 - ) { - const { data } = await api.get('/balance'); - this.balances = data; - } - return this.balances; - }, - - async changeBalance(amount: number, user: FG.User, sender: FG.User | undefined = undefined) { - const mainStore = useMainStore(); - try { - const { data } = await api.put(`/users/${user.userid}/balance`, { - amount, - user: user.userid, - sender: sender?.userid, - }); - fixTransaction(data); - if ( - user.userid === mainStore.currentUser.userid || - sender?.userid === mainStore.currentUser.userid - ) - this.transactions.push(data); - const f = this.balances.find((x) => x.userid === user.userid); - if (f) f.balance += amount; - if (sender) { - const f = this.balances.find((x) => x.userid === sender.userid); - if (f) f.balance += -1 * amount; - } - this._balances_dirty = 0; - return data; - } catch ({ response }) { - // Maybe Balance changed - if (response && (response).status == 409) { - Notify.create({ - type: 'negative', - group: false, - message: 'Das Limit wurde überschritten!', - timeout: 10000, - progress: true, - actions: [{ icon: 'mdi-close', color: 'white' }], - }); - //void this.getTransactions(true); - void this.getBalance(sender ? sender : user); - } - } - }, - - async getTransactions( - user: FG.User, - filter: - | { - limit?: number; - offset?: number; - from?: Date; - to?: Date; - showReversals?: boolean; - showCancelled?: boolean; - } - | undefined = undefined - ) { - if (!filter) filter = { limit: 10 }; - const { data } = await api.get( - `/users/${user.userid}/balance/transactions`, - { params: filter } - ); - data.transactions.forEach((t) => fixTransaction(t)); - if (data.transactions) this.transactions.push(...data.transactions); - return data; - }, - - async revert(transaction: FG.Transaction) { - try { - const { data } = await api.delete(`/balance/${transaction.id}`); - fixTransaction(data); - const f = this.transactions.find((x) => x.id === transaction.id); - if (f) f.reversal_id = data.id; - this.transactions.push(data); - console.log(data); - } catch (error) { - // ... - } - this._balances_dirty = 0; - }, - }, -}); diff --git a/src/plugins/pricelist/components/BuildManual/BuildManualVolume.vue b/src/plugins/pricelist/components/BuildManual/BuildManualVolume.vue deleted file mode 100644 index 66b1fcd..0000000 --- a/src/plugins/pricelist/components/BuildManual/BuildManualVolume.vue +++ /dev/null @@ -1,62 +0,0 @@ - - diff --git a/src/plugins/pricelist/components/BuildManual/BuildManualVolumePart.vue b/src/plugins/pricelist/components/BuildManual/BuildManualVolumePart.vue deleted file mode 100644 index 27e21ea..0000000 --- a/src/plugins/pricelist/components/BuildManual/BuildManualVolumePart.vue +++ /dev/null @@ -1,65 +0,0 @@ - - diff --git a/src/plugins/pricelist/components/CalculationTable.vue b/src/plugins/pricelist/components/CalculationTable.vue deleted file mode 100644 index 80e92cd..0000000 --- a/src/plugins/pricelist/components/CalculationTable.vue +++ /dev/null @@ -1,512 +0,0 @@ - - - - - diff --git a/src/plugins/pricelist/components/CalculationTable/BuildManual.vue b/src/plugins/pricelist/components/CalculationTable/BuildManual.vue deleted file mode 100644 index b3e746a..0000000 --- a/src/plugins/pricelist/components/CalculationTable/BuildManual.vue +++ /dev/null @@ -1,60 +0,0 @@ - - - - - diff --git a/src/plugins/pricelist/components/CalculationTable/DrinkPriceVolumes.vue b/src/plugins/pricelist/components/CalculationTable/DrinkPriceVolumes.vue deleted file mode 100644 index d7dca5f..0000000 --- a/src/plugins/pricelist/components/CalculationTable/DrinkPriceVolumes.vue +++ /dev/null @@ -1,340 +0,0 @@ - - - - - diff --git a/src/plugins/pricelist/components/CalculationTable/Ingredients.vue b/src/plugins/pricelist/components/CalculationTable/Ingredients.vue deleted file mode 100644 index 7090199..0000000 --- a/src/plugins/pricelist/components/CalculationTable/Ingredients.vue +++ /dev/null @@ -1,271 +0,0 @@ - - - - - diff --git a/src/plugins/pricelist/components/CalculationTable/NewPrice.vue b/src/plugins/pricelist/components/CalculationTable/NewPrice.vue deleted file mode 100644 index 978736b..0000000 --- a/src/plugins/pricelist/components/CalculationTable/NewPrice.vue +++ /dev/null @@ -1,59 +0,0 @@ - - - - - diff --git a/src/plugins/pricelist/components/DrinkModify.vue b/src/plugins/pricelist/components/DrinkModify.vue deleted file mode 100644 index d5c1bc2..0000000 --- a/src/plugins/pricelist/components/DrinkModify.vue +++ /dev/null @@ -1,354 +0,0 @@ - - diff --git a/src/plugins/pricelist/components/DrinkTypes.vue b/src/plugins/pricelist/components/DrinkTypes.vue deleted file mode 100644 index 517e4c6..0000000 --- a/src/plugins/pricelist/components/DrinkTypes.vue +++ /dev/null @@ -1,113 +0,0 @@ - - - - - diff --git a/src/plugins/pricelist/components/ExtraIngredients.vue b/src/plugins/pricelist/components/ExtraIngredients.vue deleted file mode 100644 index 171d801..0000000 --- a/src/plugins/pricelist/components/ExtraIngredients.vue +++ /dev/null @@ -1,154 +0,0 @@ - - - - - diff --git a/src/plugins/pricelist/components/MinPriceSetting.vue b/src/plugins/pricelist/components/MinPriceSetting.vue deleted file mode 100644 index c697da7..0000000 --- a/src/plugins/pricelist/components/MinPriceSetting.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - - - diff --git a/src/plugins/pricelist/components/Pricelist.vue b/src/plugins/pricelist/components/Pricelist.vue deleted file mode 100644 index d1c26bd..0000000 --- a/src/plugins/pricelist/components/Pricelist.vue +++ /dev/null @@ -1,327 +0,0 @@ - - - - - diff --git a/src/plugins/pricelist/components/SearchInput.vue b/src/plugins/pricelist/components/SearchInput.vue deleted file mode 100644 index de407e3..0000000 --- a/src/plugins/pricelist/components/SearchInput.vue +++ /dev/null @@ -1,89 +0,0 @@ - - -a diff --git a/src/plugins/pricelist/components/Tags.vue b/src/plugins/pricelist/components/Tags.vue deleted file mode 100644 index 1cb3be8..0000000 --- a/src/plugins/pricelist/components/Tags.vue +++ /dev/null @@ -1,181 +0,0 @@ - - - - - diff --git a/src/plugins/pricelist/pages/CocktailBuilder.vue b/src/plugins/pricelist/pages/CocktailBuilder.vue deleted file mode 100644 index 3193fd6..0000000 --- a/src/plugins/pricelist/pages/CocktailBuilder.vue +++ /dev/null @@ -1,65 +0,0 @@ - - - - - diff --git a/src/plugins/pricelist/pages/InnerPricelist.vue b/src/plugins/pricelist/pages/InnerPricelist.vue deleted file mode 100644 index 626bbb3..0000000 --- a/src/plugins/pricelist/pages/InnerPricelist.vue +++ /dev/null @@ -1,38 +0,0 @@ - - diff --git a/src/plugins/pricelist/pages/OuterPricelist.vue b/src/plugins/pricelist/pages/OuterPricelist.vue deleted file mode 100644 index 05011d5..0000000 --- a/src/plugins/pricelist/pages/OuterPricelist.vue +++ /dev/null @@ -1,36 +0,0 @@ - - - - - diff --git a/src/plugins/pricelist/pages/Receipts.vue b/src/plugins/pricelist/pages/Receipts.vue deleted file mode 100644 index bb7232c..0000000 --- a/src/plugins/pricelist/pages/Receipts.vue +++ /dev/null @@ -1,175 +0,0 @@ - - - - - diff --git a/src/plugins/pricelist/pages/Settings.vue b/src/plugins/pricelist/pages/Settings.vue deleted file mode 100644 index 8b9f744..0000000 --- a/src/plugins/pricelist/pages/Settings.vue +++ /dev/null @@ -1,136 +0,0 @@ - - - - - diff --git a/src/plugins/pricelist/permissions.ts b/src/plugins/pricelist/permissions.ts deleted file mode 100644 index a378a74..0000000 --- a/src/plugins/pricelist/permissions.ts +++ /dev/null @@ -1,33 +0,0 @@ -export const PERMISSIONS = { - CREATE: 'drink_create', - - EDIT: 'drink_edit', - - DELETE: 'drink_delete', - - CREATE_TAG: 'drink_tag_create', - - EDIT_PRICE: 'edit_price', - DELETE_PRICE: 'delete_price', - - EDIT_VOLUME: 'edit_volume', - DELETE_VOLUME: 'delete_volume', - - EDIT_INGREDIENTS_DRINK: 'edit_ingredients_drink', - DELETE_INGREDIENTS_DRINK: 'delete_ingredients_drink', - - EDIT_INGREDIENTS: 'edit_ingredients', - DELETE_INGREDIENTS: 'delete_ingredients', - - EDIT_TAG: 'drink_tag_edit', - - DELETE_TAG: 'drink_tag_delete', - - CREATE_TYPE: 'drink_type_create', - - EDIT_TYPE: 'drink_type_edit', - - DELETE_TYPE: 'drink_type_delete', - - EDIT_MIN_PRICES: 'edit_min_prices', -}; diff --git a/src/plugins/pricelist/plugin.ts b/src/plugins/pricelist/plugin.ts deleted file mode 100644 index 4e5a938..0000000 --- a/src/plugins/pricelist/plugin.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { innerRoutes, outerRoutes } from './routes'; -import { FG_Plugin } from '@flaschengeist/typings'; - -const plugin: FG_Plugin.Plugin = { - name: 'Pricelist', - innerRoutes, - outerRoutes, - requiredModules: [], - requiredBackendModules: ['pricelist'], - version: '0.0.1', - widgets: [], -}; - -export default plugin; diff --git a/src/plugins/pricelist/routes/index.ts b/src/plugins/pricelist/routes/index.ts deleted file mode 100644 index 341cc66..0000000 --- a/src/plugins/pricelist/routes/index.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { FG_Plugin } from '@flaschengeist/typings'; - -export const innerRoutes: FG_Plugin.MenuRoute[] = [ - { - title: 'Getränke', - icon: 'mdi-glass-mug-variant', - route: { - path: 'drinks', - name: 'drinks', - redirect: { name: 'drinks-pricelist' }, - }, - permissions: ['user'], - children: [ - { - title: 'Preisliste', - icon: 'mdi-cash-100', - shortcut: true, - permissions: ['user'], - route: { - path: 'pricelist', - name: 'drinks-pricelist', - component: () => import('../pages/InnerPricelist.vue'), - }, - }, - { - title: 'Rezepte', - shortcut: false, - icon: 'mdi-receipt', - permissions: ['user'], - route: { - path: 'reciepts', - name: 'reciepts', - component: () => import('../pages/Receipts.vue'), - }, - }, - { - title: 'Cocktailbuilder', - shortcut: false, - icon: 'mdi-glass-cocktail', - permissions: ['user'], - route: { - path: 'cocktail-builder', - name: 'cocktail-builder', - component: () => import('../pages/CocktailBuilder.vue'), - }, - }, - { - title: 'Einstellungen', - icon: 'mdi-coffee-to-go', - shortcut: false, - permissions: ['drink_edit', 'drink_tag_edit'], - route: { - path: 'settings', - name: 'drinks-settings', - component: () => import('../pages/Settings.vue'), - }, - }, - ], - }, -]; - -export const outerRoutes: FG_Plugin.MenuRoute[] = [ - { - title: 'Preisliste', - icon: 'mdi-glass-mug-variant', - shortcut: true, - route: { - path: 'pricelist', - name: 'outter-pricelist', - component: () => import('../pages/OuterPricelist.vue'), - }, - }, -]; diff --git a/src/plugins/pricelist/store.ts b/src/plugins/pricelist/store.ts deleted file mode 100644 index a0da12a..0000000 --- a/src/plugins/pricelist/store.ts +++ /dev/null @@ -1,313 +0,0 @@ -import { api } from 'src/boot/axios'; -import { defineStore } from 'pinia'; -import { - calc_volume, - calc_cost_per_volume, - calc_all_min_prices, -} from 'src/plugins/pricelist/utils/utils'; - -interface DrinkPriceVolume extends Omit { - _volume: number; - volume?: number; -} - -interface Drink extends Omit, 'volumes'> { - volumes: DrinkPriceVolume[]; - cost_per_volume?: number; - _cost_per_volume?: number; -} - -interface Pricelist { - name: string; - type: FG.DrinkType; - tags: Array; - volume: number; - price: number; - public: boolean; - description: string; -} - -class DrinkPriceVolume implements DrinkPriceVolume { - constructor({ id, volume, prices, ingredients }: FG.DrinkPriceVolume) { - this.id = id; - this._volume = volume; - this.prices = prices; - this.ingredients = ingredients; - this.min_prices = []; - this.volume = calc_volume(this); - } -} - -class Drink { - constructor({ - id, - article_id, - package_size, - name, - volume, - cost_per_volume, - cost_per_package, - tags, - type, - uuid, - receipt, - }: FG.Drink) { - this.id = id; - this.article_id = article_id; - this.package_size = package_size; - this.name = name; - this.volume = volume; - this.cost_per_package = cost_per_package; - this._cost_per_volume = cost_per_volume; - this.cost_per_volume = calc_cost_per_volume(this); - this.tags = tags; - this.type = type; - this.volumes = []; - this.uuid = uuid; - this.receipt = receipt || []; - } -} - -interface Order { - label: string; - name: string; -} - -export const usePricelistStore = defineStore({ - id: 'pricelist', - - state: () => ({ - drinkTypes: [] as Array, - drinks: [] as Array, - extraIngredients: [] as Array, - min_prices: [] as Array, - tags: [] as Array, - pricecalc_columns: [] as Array, - pricelist_view: false as boolean, - pricelist_columns_order: [] as Array, - }), - - actions: { - async getDrinkTypes(force = false) { - if (force || this.drinks.length == 0) { - const { data } = await api.get>('/pricelist/drink-types'); - this.drinkTypes = data; - } - return this.drinkTypes; - }, - async addDrinkType(name: string) { - const { data } = await api.post('/pricelist/drink-types', { name: name }); - this.drinkTypes.push(data); - }, - async removeDrinkType(id: number) { - await api.delete(`/pricelist/drink-types/${id}`); - const idx = this.drinkTypes.findIndex((val) => val.id == id); - if (idx >= 0) this.drinkTypes.splice(idx, 1); - }, - async changeDrinkTypeName(drinkType: FG.DrinkType) { - await api.put(`/pricelist/drink-types/${drinkType.id}`, drinkType); - const itm = this.drinkTypes.filter((val) => val.id == drinkType.id); - if (itm.length > 0) itm[0].name = drinkType.name; - }, - async getExtraIngredients() { - const { data } = await api.get>( - 'pricelist/ingredients/extraIngredients' - ); - this.extraIngredients = data; - }, - async setExtraIngredient(ingredient: FG.ExtraIngredient) { - const { data } = await api.post( - 'pricelist/ingredients/extraIngredients', - ingredient - ); - this.extraIngredients.push(data); - }, - async updateExtraIngredient(ingredient: FG.ExtraIngredient) { - const { data } = await api.put( - `pricelist/ingredients/extraIngredients/${ingredient.id}`, - ingredient - ); - const index = this.extraIngredients.findIndex((a) => a.id === ingredient.id); - if (index > -1) { - this.extraIngredients[index] = data; - } else { - this.extraIngredients.push(data); - } - }, - async deleteExtraIngredient(ingredient: FG.ExtraIngredient) { - await api.delete(`pricelist/ingredients/extraIngredients/${ingredient.id}`); - const index = this.extraIngredients.findIndex((a) => a.id === ingredient.id); - if (index > -1) { - this.extraIngredients.splice(index, 1); - } - }, - async getDrinks() { - const { data } = await api.get>('pricelist/drinks'); - this.drinks = []; - data.forEach((drink) => { - const _drink = new Drink(drink); - drink.volumes.forEach((volume) => { - const _volume = new DrinkPriceVolume(volume); - _drink.volumes.push(_volume); - }); - this.drinks.push(_drink); - }); - calc_all_min_prices(this.drinks, this.min_prices); - }, - sortPrices(volume: DrinkPriceVolume) { - volume.prices.sort((a, b) => { - if (a.price > b.price) return 1; - if (b.price > a.price) return -1; - return 0; - }); - }, - async deletePrice(price: FG.DrinkPrice) { - await api.delete(`pricelist/prices/${price.id}`); - }, - async deleteVolume(volume: DrinkPriceVolume, drink: Drink) { - await api.delete(`pricelist/volumes/${volume.id}`); - const index = drink.volumes.findIndex((a) => a.id === volume.id); - if (index > -1) { - drink.volumes.splice(index, 1); - } - }, - async deleteIngredient(ingredient: FG.Ingredient) { - await api.delete(`pricelist/ingredients/${ingredient.id}`); - }, - async setDrink(drink: Drink) { - const { data } = await api.post('pricelist/drinks', { - ...drink, - }); - const _drink = new Drink(data); - data.volumes.forEach((volume) => { - const _volume = new DrinkPriceVolume(volume); - _drink.volumes.push(_volume); - }); - this.drinks.push(_drink); - calc_all_min_prices(this.drinks, this.min_prices); - return _drink; - }, - async updateDrink(drink: Drink) { - const { data } = await api.put(`pricelist/drinks/${drink.id}`, { - ...drink, - }); - const index = this.drinks.findIndex((a) => a.id === data.id); - if (index > -1) { - const _drink = new Drink(data); - data.volumes.forEach((volume) => { - const _volume = new DrinkPriceVolume(volume); - _drink.volumes.push(_volume); - }); - this.drinks[index] = _drink; - } - calc_all_min_prices(this.drinks, this.min_prices); - }, - deleteDrink(drink: Drink) { - api - .delete(`pricelist/drinks/${drink.id}`) - .then(() => { - const index = this.drinks.findIndex((a) => a.id === drink.id); - if (index > -1) { - this.drinks.splice(index, 1); - } - }) - .catch((err) => console.warn(err)); - }, - async get_min_prices() { - const { data } = await api.get>('pricelist/settings/min_prices'); - this.min_prices = data; - }, - async set_min_prices() { - await api.post>('pricelist/settings/min_prices', this.min_prices); - calc_all_min_prices(this.drinks, this.min_prices); - }, - async upload_drink_picture(drink: Drink, file: File) { - const formData = new FormData(); - formData.append('file', file); - const { data } = await api.post(`pricelist/drinks/${drink.id}/picture`, formData, { - headers: { - 'Content-Type': 'multipart/form-data', - }, - }); - const _drink = this.drinks.find((a) => a.id === drink.id); - if (_drink) { - _drink.uuid = data.uuid; - } - }, - async delete_drink_picture(drink: Drink) { - await api.delete(`pricelist/drinks/${drink.id}/picture`); - drink.uuid = ''; - }, - async getTags() { - const { data } = await api.get>('/pricelist/tags'); - this.tags = data; - }, - async setTag(tag: FG.Tag) { - const { data } = await api.post('/pricelist/tags', tag); - this.tags.push(data); - }, - async updateTag(tag: FG.Tag) { - const { data } = await api.put(`/pricelist/tags/${tag.id}`, tag); - const index = this.tags.findIndex((a) => a.id === data.id); - if (index > -1) { - this.tags[index] = data; - } - }, - async deleteTag(tag: FG.Tag) { - await api.delete(`/pricelist/tags/${tag.id}`); - const index = this.tags.findIndex((a) => a.id === tag.id); - if (index > -1) { - this.tags.splice(index, 1); - } - }, - async getPriceCalcColumn(userid: string) { - const { data } = await api.get>(`pricelist/users/${userid}/pricecalc_columns`); - this.pricecalc_columns = data; - }, - async updatePriceCalcColumn(userid: string, data: Array) { - await api.put>(`pricelist/users/${userid}/pricecalc_columns`, data); - this.pricecalc_columns = data; - }, - async getPriceListView(userid: string) { - const { data } = await api.get<{ value: boolean }>(`pricelist/users/${userid}/pricelist`); - this.pricelist_view = data.value; - }, - async updatePriceListView(userid: string, data: boolean) { - await api.put>(`pricelist/users/${userid}/pricelist`, { value: data }); - this.pricelist_view = data; - }, - async getPriceListColumnOrder(userid: string) { - const { data } = await api.get>( - `pricelist/users/${userid}/pricecalc_columns_order` - ); - this.pricelist_columns_order = data; - }, - async updatePriceListColumnOrder(userid: string, data: Array) { - await api.put>(`pricelist/users/${userid}/pricecalc_columns_order`, data); - this.pricelist_columns_order = data; - }, - }, - getters: { - pricelist() { - const retVal: Array = []; - this.drinks.forEach((drink) => { - drink.volumes.forEach((volume) => { - volume.prices.forEach((price) => { - retVal.push({ - name: drink.name, - type: drink.type, - tags: >drink.tags, - volume: volume.volume, - price: price.price, - public: price.public, - description: price.description, - }); - }); - }); - }); - return retVal; - }, - }, -}); - -export { DrinkPriceVolume, Drink, Order }; diff --git a/src/plugins/pricelist/utils/filter.ts b/src/plugins/pricelist/utils/filter.ts deleted file mode 100644 index cb8c5ba..0000000 --- a/src/plugins/pricelist/utils/filter.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Drink } from '../store'; - -function filter( - rows: Array, - terms: Search, - cols: Array, - cellValue: { (col: Col, row: Drink): string } -) { - if (terms.value) { - return rows.filter((row) => { - if (!terms.key || terms.key === '') { - return cols.some((col) => { - const val = cellValue(col, row) + ''; - const haystack = val === 'undefined' || val === 'null' ? '' : val.toLowerCase(); - return haystack.indexOf(terms.value) !== -1; - }); - } - const index = cols.findIndex((col) => col.name === terms.key); - const val = cellValue(cols[index], row) + ''; - const haystack = val === 'undefined' || val === 'null' ? '' : val.toLowerCase(); - return haystack.indexOf(terms.value) !== -1; - }); - } - return rows; -} - -interface Search { - value: string; - label: string | undefined; - key: string | undefined; -} - -interface Col { - name: string; - label: string; - field: string; -} - -export { filter, Search, Col }; diff --git a/src/plugins/pricelist/utils/sort.ts b/src/plugins/pricelist/utils/sort.ts deleted file mode 100644 index cfd6f2a..0000000 --- a/src/plugins/pricelist/utils/sort.ts +++ /dev/null @@ -1,7 +0,0 @@ -function sort(a: string | number, b: string | number) { - if (a > b) return 1; - if (b > a) return -1; - return 0; -} - -export { sort }; diff --git a/src/plugins/pricelist/utils/utils.ts b/src/plugins/pricelist/utils/utils.ts deleted file mode 100644 index 1bc4de6..0000000 --- a/src/plugins/pricelist/utils/utils.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { Drink, DrinkPriceVolume, usePricelistStore } from 'src/plugins/pricelist/store'; - -function calc_volume(volume: DrinkPriceVolume) { - if (volume.ingredients.some((ingredient) => !!ingredient.drink_ingredient)) { - let retVal = 0; - volume.ingredients.forEach((ingredient) => { - if (ingredient.drink_ingredient?.volume) { - retVal += ingredient.drink_ingredient.volume; - } - }); - return retVal; - } else { - return volume._volume; - } -} - -function calc_cost_per_volume(drink: Drink) { - let retVal = drink._cost_per_volume; - if (!!drink.volume && !!drink.package_size && !!drink.cost_per_package) { - retVal = - ((drink.cost_per_package || 0) / ((drink.volume || 0) * (drink.package_size || 0))) * 1.19; - } - - return retVal ? Math.round(retVal * 1000) / 1000 : retVal; -} - -function calc_all_min_prices(drinks: Array, min_prices: Array) { - drinks.forEach((drink) => { - drink.volumes.forEach((volume) => { - volume.min_prices = calc_min_prices(volume, drink.cost_per_volume, min_prices); - }); - }); -} - -function helper(volume: DrinkPriceVolume, min_price: number) { - let retVal = 0; - let extraIngredientPrice = 0; - volume.ingredients.forEach((ingredient) => { - if (ingredient.drink_ingredient) { - const _drink = usePricelistStore().drinks.find( - (a) => a.id === ingredient.drink_ingredient?.ingredient_id - ); - retVal += ingredient.drink_ingredient.volume * (_drink?.cost_per_volume); - } - if (ingredient.extra_ingredient) { - extraIngredientPrice += ingredient.extra_ingredient.price; - } - }); - return (retVal * min_price) / 100 + extraIngredientPrice; -} - -function calc_min_prices( - volume: DrinkPriceVolume, - cost_per_volume: number | undefined, - min_prices: Array -) { - const retVal: Array = []; - volume.min_prices = []; - if (min_prices) { - min_prices.forEach((min_price) => { - let computedMinPrice: number; - if (cost_per_volume) { - computedMinPrice = (cost_per_volume * volume.volume * min_price) / 100; - } else { - computedMinPrice = helper(volume, min_price); - } - retVal.push({ percentage: min_price, price: computedMinPrice }); - }); - } - return retVal; -} - -function clone(o: T): T { - return JSON.parse(JSON.stringify(o)); -} - -interface DeleteObjects { - prices: Array; - volumes: Array; - ingredients: Array; -} -export { DeleteObjects }; - -export { calc_volume, calc_cost_per_volume, calc_all_min_prices, calc_min_prices, clone }; diff --git a/src/plugins/schedule/components/Widget.vue b/src/plugins/schedule/components/Widget.vue deleted file mode 100644 index 84650c3..0000000 --- a/src/plugins/schedule/components/Widget.vue +++ /dev/null @@ -1,25 +0,0 @@ - - - diff --git a/src/plugins/schedule/components/management/EditEvent.vue b/src/plugins/schedule/components/management/EditEvent.vue deleted file mode 100644 index 77ae50d..0000000 --- a/src/plugins/schedule/components/management/EditEvent.vue +++ /dev/null @@ -1,245 +0,0 @@ - - - - - diff --git a/src/plugins/schedule/components/management/EventTypes.vue b/src/plugins/schedule/components/management/EventTypes.vue deleted file mode 100644 index a9dbf80..0000000 --- a/src/plugins/schedule/components/management/EventTypes.vue +++ /dev/null @@ -1,126 +0,0 @@ - - - - - diff --git a/src/plugins/schedule/components/management/Job.vue b/src/plugins/schedule/components/management/Job.vue deleted file mode 100644 index 95f05ca..0000000 --- a/src/plugins/schedule/components/management/Job.vue +++ /dev/null @@ -1,113 +0,0 @@ - - - - - diff --git a/src/plugins/schedule/components/management/JobTypes.vue b/src/plugins/schedule/components/management/JobTypes.vue deleted file mode 100644 index c3fc3f8..0000000 --- a/src/plugins/schedule/components/management/JobTypes.vue +++ /dev/null @@ -1,125 +0,0 @@ - - - - - diff --git a/src/plugins/schedule/components/management/RecurrenceRule.vue b/src/plugins/schedule/components/management/RecurrenceRule.vue deleted file mode 100644 index c5aa054..0000000 --- a/src/plugins/schedule/components/management/RecurrenceRule.vue +++ /dev/null @@ -1,96 +0,0 @@ - - - - - diff --git a/src/plugins/schedule/components/overview/AgendaView.vue b/src/plugins/schedule/components/overview/AgendaView.vue deleted file mode 100644 index 3f4e081..0000000 --- a/src/plugins/schedule/components/overview/AgendaView.vue +++ /dev/null @@ -1,241 +0,0 @@ - - - - - diff --git a/src/plugins/schedule/components/overview/slots/EventSlot.vue b/src/plugins/schedule/components/overview/slots/EventSlot.vue deleted file mode 100644 index 1524001..0000000 --- a/src/plugins/schedule/components/overview/slots/EventSlot.vue +++ /dev/null @@ -1,99 +0,0 @@ - - - - - diff --git a/src/plugins/schedule/components/overview/slots/JobSlot.vue b/src/plugins/schedule/components/overview/slots/JobSlot.vue deleted file mode 100644 index 9a65835..0000000 --- a/src/plugins/schedule/components/overview/slots/JobSlot.vue +++ /dev/null @@ -1,142 +0,0 @@ - - - - - diff --git a/src/plugins/schedule/events.d.ts b/src/plugins/schedule/events.d.ts deleted file mode 100644 index ec9d101..0000000 --- a/src/plugins/schedule/events.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -declare namespace FG { - export interface RecurrenceRule { - frequency: string; - interval: number; - count?: number; - until?: Date; - weekdays?: Array; - } -} diff --git a/src/plugins/schedule/pages/Event.vue b/src/plugins/schedule/pages/Event.vue deleted file mode 100644 index 0e99801..0000000 --- a/src/plugins/schedule/pages/Event.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - diff --git a/src/plugins/schedule/pages/Management.vue b/src/plugins/schedule/pages/Management.vue deleted file mode 100644 index 200b038..0000000 --- a/src/plugins/schedule/pages/Management.vue +++ /dev/null @@ -1,95 +0,0 @@ - - - diff --git a/src/plugins/schedule/pages/Overview.vue b/src/plugins/schedule/pages/Overview.vue deleted file mode 100644 index 2a0f627..0000000 --- a/src/plugins/schedule/pages/Overview.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - diff --git a/src/plugins/schedule/pages/Requests.vue b/src/plugins/schedule/pages/Requests.vue deleted file mode 100644 index b64ab3f..0000000 --- a/src/plugins/schedule/pages/Requests.vue +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/src/plugins/schedule/permissions.ts b/src/plugins/schedule/permissions.ts deleted file mode 100644 index c1bc584..0000000 --- a/src/plugins/schedule/permissions.ts +++ /dev/null @@ -1,16 +0,0 @@ -export const PERMISSIONS = { - // Can create events - CREATE: 'events_create', - // Can edit events - EDIT: 'events_edit', - // Can delete events - DELETE: 'events_delete', - // Can create and edit EventTypes - EVENT_TYPE: 'events_event_type', - // Can create and edit JobTypes - JOB_TYPE: 'events_job_type', - // Can self assign to jobs - ASSIGN: 'events_assign', - // Can assign other users to jobs - ASSIGN_OTHER: 'events_assign_other', -}; diff --git a/src/plugins/schedule/plugin.ts b/src/plugins/schedule/plugin.ts deleted file mode 100644 index 11e7bda..0000000 --- a/src/plugins/schedule/plugin.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { innerRoutes, privateRoutes } from './routes'; -import { FG_Plugin } from '@flaschengeist/typings'; -import { defineAsyncComponent } from 'vue'; - -const plugin: FG_Plugin.Plugin = { - name: 'Schedule', - innerRoutes, - internalRoutes: privateRoutes, - requiredModules: ['User'], - requiredBackendModules: ['events'], - version: '0.0.1', - widgets: [ - { - priority: 0, - name: 'stats', - permissions: [], - widget: defineAsyncComponent(() => import('./components/Widget.vue')), - }, - ], -}; - -export default plugin; diff --git a/src/plugins/schedule/routes/index.ts b/src/plugins/schedule/routes/index.ts deleted file mode 100644 index 994dfba..0000000 --- a/src/plugins/schedule/routes/index.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { FG_Plugin } from '@flaschengeist/typings'; -import { PERMISSIONS } from '../permissions'; - -export const innerRoutes: FG_Plugin.MenuRoute[] = [ - { - title: 'Dienste', - icon: 'mdi-briefcase', - permissions: ['user'], - route: { - path: 'schedule', - name: 'schedule', - redirect: { name: 'schedule-overview' }, - }, - children: [ - { - title: 'Dienstübersicht', - icon: 'mdi-account-group', - shortcut: true, - route: { - path: 'schedule-overview', - name: 'schedule-overview', - component: () => import('../pages/Overview.vue'), - }, - }, - { - title: 'Dienstverwaltung', - icon: 'mdi-account-details', - shortcut: false, - permissions: [PERMISSIONS.CREATE], - route: { - path: 'schedule-management', - name: 'schedule-management', - component: () => import('../pages/Management.vue'), - }, - }, - { - title: 'Dienstanfragen', - icon: 'mdi-account-switch', - shortcut: false, - route: { - path: 'schedule-requests', - name: 'schedule-requests', - component: () => import('../pages/Requests.vue'), - }, - }, - ], - }, -]; - -export const privateRoutes: FG_Plugin.NamedRouteRecordRaw[] = [ - { - name: 'events-edit', - path: 'schedule/:id/edit', - component: () => import('../pages/Event.vue'), - }, -]; diff --git a/src/plugins/schedule/store.ts b/src/plugins/schedule/store.ts deleted file mode 100644 index 113fd8f..0000000 --- a/src/plugins/schedule/store.ts +++ /dev/null @@ -1,165 +0,0 @@ -import { api } from 'src/boot/axios'; -import { AxiosError } from 'axios'; -import { defineStore } from 'pinia'; - -interface UserService { - user: FG.Service; -} - -function fixJob(job: FG.Job) { - job.start = new Date(job.start); - if (job.end) job.end = new Date(job.end); -} - -function fixEvent(event: FG.Event) { - event.start = new Date(event.start); - if (event.end) event.end = new Date(event.end); - - event.jobs.forEach((job) => fixJob(job)); -} - -export const useScheduleStore = defineStore({ - id: 'schedule', - - state: () => ({ - jobTypes: [] as FG.JobType[], - eventTypes: [] as FG.EventType[], - templates: [] as FG.Event[], - }), - - getters: {}, - - actions: { - async getJobTypes(force = false) { - if (force || this.jobTypes.length == 0) - try { - const { data } = await api.get('/events/job-types'); - this.jobTypes = data; - } catch (error) { - throw error; - } - return this.jobTypes; - }, - - async addJobType(name: string) { - await api.post('/events/job-types', { name: name }); - //TODO: HAndle new JT - }, - - async removeJobType(id: number) { - await api.delete(`/events/job-types/${id}`); - //Todo Handle delete JT - }, - - async renameJobType(id: number, newName: string) { - await api.put(`/events/job-types/${id}`, { name: newName }); - // TODO handle rename - }, - - async getEventTypes(force = false) { - if (force || this.eventTypes.length == 0) - try { - const { data } = await api.get('/events/event-types'); - this.eventTypes = data; - } catch (error) { - throw error; - } - return this.eventTypes; - }, - - /** Add new EventType - * - * @param name Name of new EventType - * @returns EventType object or null if name already exists - * @throws Exception if requests fails because of an other reason - */ - async addEventType(name: string) { - try { - const { data } = await api.post('/events/event-types', { name: name }); - return data; - } catch (error) { - if ('response' in error) { - const ae = error; - if (ae.response && ae.response.status == 409 /* CONFLICT */) return null; - } - throw error; - } - }, - async removeEvent(id: number) { - try { - await api.delete(`/events/${id}`); - const idx = this.templates.findIndex((v) => v.id === id); - if (idx !== -1) this.templates.splice(idx, 1); - } catch (e) { - const error = e; - if (error.response && error.response.status === 404) return false; - throw e; - } - return true; - }, - - async removeEventType(id: number) { - await api.delete(`/events/event-types/${id}`); - // TODO handle delete - }, - - async renameEventType(id: number, newName: string) { - try { - await api.put(`/events/event-types/${id}`, { name: newName }); - // TODO handle rename - return true; - } catch (error) { - if ('response' in error) { - const ae = error; - if (ae.response && ae.response.status == 409 /* CONFLICT */) return false; - } - throw error; - } - }, - - async getTemplates(force = false) { - if (force || this.templates.length == 0) { - const { data } = await api.get('/events/templates'); - data.forEach((element) => fixEvent(element)); - this.templates = data; - } - return this.templates; - }, - - async getEvents(filter: { from?: Date; to?: Date } | undefined = undefined) { - try { - const { data } = await api.get('/events', { params: filter }); - data.forEach((element) => fixEvent(element)); - return data; - } catch (error) { - throw error; - } - }, - - async getEvent(id: number) { - try { - const { data } = await api.get(`/events/${id}`); - fixEvent(data); - return data; - } catch (error) { - throw error; - } - }, - - async updateJob(eventId: number, jobId: number, service: FG.Service | UserService) { - try { - const { data } = await api.put(`/events/${eventId}/jobs/${jobId}`, service); - fixJob(data); - return data; - } catch (error) { - throw error; - } - }, - - async addEvent(event: FG.Event) { - const { data } = await api.post('/events', event); - if (data.is_template) this.templates.push(data); - return data; - }, - }, -}); diff --git a/src/plugins/user/components/NewUser.vue b/src/plugins/user/components/NewUser.vue deleted file mode 100644 index d59b746..0000000 --- a/src/plugins/user/components/NewUser.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - - - diff --git a/src/plugins/user/components/UpdateUser.vue b/src/plugins/user/components/UpdateUser.vue deleted file mode 100644 index 820d0f6..0000000 --- a/src/plugins/user/components/UpdateUser.vue +++ /dev/null @@ -1,40 +0,0 @@ - - - - - diff --git a/src/plugins/user/components/UserSelector.vue b/src/plugins/user/components/UserSelector.vue deleted file mode 100644 index 96cb109..0000000 --- a/src/plugins/user/components/UserSelector.vue +++ /dev/null @@ -1,43 +0,0 @@ - - - diff --git a/src/plugins/user/components/Widget.vue b/src/plugins/user/components/Widget.vue deleted file mode 100644 index 26aeae0..0000000 --- a/src/plugins/user/components/Widget.vue +++ /dev/null @@ -1,72 +0,0 @@ - - - diff --git a/src/plugins/user/components/settings/MainUserSettings.vue b/src/plugins/user/components/settings/MainUserSettings.vue deleted file mode 100644 index 20e5123..0000000 --- a/src/plugins/user/components/settings/MainUserSettings.vue +++ /dev/null @@ -1,218 +0,0 @@ - - - diff --git a/src/plugins/user/components/settings/RoleSettings.vue b/src/plugins/user/components/settings/RoleSettings.vue deleted file mode 100644 index 0b4c2d3..0000000 --- a/src/plugins/user/components/settings/RoleSettings.vue +++ /dev/null @@ -1,160 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/plugins/user/components/settings/Session.vue b/src/plugins/user/components/settings/Session.vue deleted file mode 100644 index 3b69bdf..0000000 --- a/src/plugins/user/components/settings/Session.vue +++ /dev/null @@ -1,168 +0,0 @@ - - - diff --git a/src/plugins/user/models.ts b/src/plugins/user/models.ts deleted file mode 100644 index b0d9a69..0000000 --- a/src/plugins/user/models.ts +++ /dev/null @@ -1,14 +0,0 @@ -export interface LoginData { - userid: string; - password: string; -} - -export interface LoginResponse { - user: FG.User; - session: FG.Session; - permissions: FG.Permission[]; -} - -export interface CurrentUserResponse extends FG.User { - permissions: FG.Permission[]; -} diff --git a/src/plugins/user/pages/AdminSettings.vue b/src/plugins/user/pages/AdminSettings.vue deleted file mode 100644 index 5dbf96f..0000000 --- a/src/plugins/user/pages/AdminSettings.vue +++ /dev/null @@ -1,93 +0,0 @@ - - - diff --git a/src/plugins/user/pages/Settings.vue b/src/plugins/user/pages/Settings.vue deleted file mode 100644 index 116932f..0000000 --- a/src/plugins/user/pages/Settings.vue +++ /dev/null @@ -1,57 +0,0 @@ - - - diff --git a/src/plugins/user/permissions.ts b/src/plugins/user/permissions.ts deleted file mode 100644 index 2ba1b10..0000000 --- a/src/plugins/user/permissions.ts +++ /dev/null @@ -1,12 +0,0 @@ -export const PERMISSIONS = { - // Kann andere Nutzer bearbeiten - EDIT_OTHER: 'users_edit_other', - // Kann Rollen von Nutzern setzen - SET_ROLES: 'users_set_roles', - // Kann Nutzer löschen - DELETE: 'users_delete_other', - // Kann neue Nutzer hinzufügen - REGISTER: 'users_register', - // Kann Rollen löschen oder bearbeiten, z.b. Rechte hinzufügen etc - ROLES_EDIT: 'roles_edit', -}; diff --git a/src/plugins/user/plugin.ts b/src/plugins/user/plugin.ts deleted file mode 100644 index 7a1245a..0000000 --- a/src/plugins/user/plugin.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { FG_Plugin } from '@flaschengeist/typings'; -import { defineAsyncComponent } from 'vue'; -import routes from './routes'; - -const plugin: FG_Plugin.Plugin = { - name: 'User', - innerRoutes: routes, - requiredModules: [], - requiredBackendModules: ['auth', 'users', 'roles'], - version: '0.0.1', - widgets: [ - { - priority: 1, - name: 'greeting', - permissions: [], - widget: defineAsyncComponent(() => import('./components/Widget.vue')), - }, - ], -}; - -export default plugin; diff --git a/src/plugins/user/routes/index.ts b/src/plugins/user/routes/index.ts deleted file mode 100644 index 0fb2d5d..0000000 --- a/src/plugins/user/routes/index.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { FG_Plugin } from '@flaschengeist/typings'; -import { useMainStore } from 'src/stores'; - -const mainRoutes: FG_Plugin.MenuRoute[] = [ - { - get title() { - return () => useMainStore().currentUser.display_name; - }, - icon: 'mdi-account', - permissions: ['user'], - route: { path: 'user', name: 'user', redirect: { name: 'user-settings' } }, - children: [ - { - title: 'Einstellungen', - icon: 'mdi-account-edit', - shortcut: true, - permissions: ['user'], - route: { - path: 'settings', - name: 'user-settings', - component: () => import('../pages/Settings.vue'), - }, - }, - { - title: 'Admin', - icon: 'mdi-cog', - shortcut: false, - permissions: ['users_edit_other'], - route: { - path: 'admin', - name: 'admin-settings', - component: () => import('../pages/AdminSettings.vue'), - }, - }, - ], - }, -]; - -export default mainRoutes; diff --git a/src/router/index.ts b/src/router/index.ts index 8cb857b..cbcc285 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -16,13 +16,12 @@ import routes from './routes'; * with the Router instance. */ -function router(/* { store, ssrContext } */) { - const createHistory = - process.env.MODE === 'ssr' - ? createMemoryHistory - : process.env.VUE_ROUTER_MODE === 'history' - ? createWebHistory - : createWebHashHistory; +export default route(function (/* { store, ssrContext } */) { + const createHistory = process.env.SERVER + ? createMemoryHistory + : process.env.VUE_ROUTER_MODE === 'history' + ? createWebHistory + : createWebHashHistory; const Router = createRouter({ scrollBehavior: () => ({ left: 0, top: 0 }), @@ -35,8 +34,4 @@ function router(/* { store, ssrContext } */) { }); return Router; -} - -export default route(router); - -export const Router = router(); +}); diff --git a/src/stores/store-flag.d.ts b/src/stores/store-flag.d.ts deleted file mode 100644 index af80dbe..0000000 --- a/src/stores/store-flag.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -// THIS FEATURE-FLAG FILE IS AUTOGENERATED, -// REMOVAL OR CHANGES WILL CAUSE RELATED TYPES TO STOP WORKING -import 'quasar/dist/types/feature-flag'; - -declare module 'quasar/dist/types/feature-flag' { - interface QuasarFeatureFlags { - store: true; - } -} diff --git a/src/vendor-plugin.config.js b/src/vendor-plugin.config.js new file mode 100644 index 0000000..8ea3fcc --- /dev/null +++ b/src/vendor-plugin.config.js @@ -0,0 +1 @@ +module.exports = [] \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index c3aff81..be94438 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,7 +8,7 @@ "dom" ], "types": [ - "@flaschengeist/typings", + "@flaschengeist/types", "@quasar/app", "node", "webpack-env" From 068dbdcc7b2784aa8361ba5959a59634102c081f Mon Sep 17 00:00:00 2001 From: Ferdinand Thiessen Date: Tue, 25 May 2021 16:26:41 +0200 Subject: [PATCH 3/9] [docs] README section about plugin development --- README.md | 45 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 35 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 9aeb055..7c8f5bc 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ Modular student club administration system, licensed under the MIT license. ## Installation ### Requirements + ``` "engines": { "node": ">= 12.22.1", @@ -12,6 +13,7 @@ Modular student club administration system, licensed under the MIT license. "yarn": ">= 1.21.1" } ``` + So on debian (buster and bullseye) you will need to install node.js and yarn beside the debian packages to meet the needed versions. ```bash @@ -23,11 +25,13 @@ npm i -g yarn npm i -g @quasar/cli popd ``` + ### Install the dependencies ```bash yarn install ``` + Be aware npm might not work. ### Configure Plugins @@ -41,7 +45,7 @@ The application is using the API of [the backend](https://flaschengeist.dev/Flas This access needs to be configured in `src/config.ts'->config.baseURL - either you do have a proxy webserver that maps the '/api' to the backend (http://localhost:5000) or -- you do directly configure the backend there:```baseURL: 'http://localhost:5000'```. Be aware not committing this configuration. +- you do directly configure the backend there:`baseURL: 'http://localhost:5000'`. Be aware not committing this configuration. ### Build the application @@ -76,15 +80,36 @@ yarn run lint #### Build a Plugin -A Flaschengeist-Frontend-Plugin should be placed in `src/plugins`. -It needs a `plugin.ts` File which exports a plugin with the following interface: +Create a new node.js project and add `@flaschengeist/api` as a peer dependency (e.g. `yarn add --peer '@flaschengeist/api'`). +If your plugin depends on an other plugin (e.g. you use the `@flaschengeist/users` plugin / stores), +then you have to add that plugin as a peer dependency too. -``` -name: string; -mainRoutes?: PluginRouteConfig[]; -outRoutes?: PluginRouteConfig[]; -requiredModules: string[]; -version: string; +You need to define a main entry point for your plugin (e.g. `"main": "src/index.ts"` in your `package.json`) which exportes +a plugin descriptor as the default export (see `@flaschengeist/types` -> `FG_Plugin.Plugin`). +E.g. + +```ts +import { FG_Plugin } from '@flaschengeist/types'; +import { routes } from './routes'; + +const plugin: FG_Plugin.Plugin = { + id: 'com.example.myplugin', + name: 'myplugin', + innerRoutes: routes, + // This are required backend plugins: + requiredModules: [['auth'], ['users'], ['roles']], + version: '0.0.1', + widgets: [ + { + priority: 1, + name: 'greeting', + permissions: [], + widget: defineAsyncComponent(() => import('./components/Widget.vue')), + }, + ], +}; + +export default plugin; ``` -You have to import `FG_Plugin` from `plugins.d.ts`. +This will add a plugin providing a widget for the dashboard side and some routes. From fd918f5bb7704379c5db541657fae1bce2d03396 Mon Sep 17 00:00:00 2001 From: Ferdinand Thiessen Date: Tue, 25 May 2021 16:27:10 +0200 Subject: [PATCH 4/9] [core] Added vendor (always) required plugins --- package.json | 2 +- plugin.config.js | 2 +- src/vendor-plugin.config.js | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 850117f..d588ff6 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ }, "scripts": { "format": "prettier --config ./package.json --write '{,!(node_modules)/**/}*.ts'", - "lint": "eslint --ext .js,.ts,.vue ./src" + "lint": "eslint --ext .js,.ts,.vue ./src ./api" }, "dependencies": { "@flaschengeist/api": "file:./api", diff --git a/plugin.config.js b/plugin.config.js index 4f6648a..fe421d7 100644 --- a/plugin.config.js +++ b/plugin.config.js @@ -1,6 +1,6 @@ // You can add your plugins here module.exports = [ /* '@flaschengeist/balances', */ - '@flaschengeist/users', /* '@flaschengeist/schedule', */ +/* '@flaschengeist/pricelist', */ ] diff --git a/src/vendor-plugin.config.js b/src/vendor-plugin.config.js index 8ea3fcc..60bf79b 100644 --- a/src/vendor-plugin.config.js +++ b/src/vendor-plugin.config.js @@ -1 +1,3 @@ -module.exports = [] \ No newline at end of file +module.exports = [ + '@flaschengeist/users', +] \ No newline at end of file From 979eab05af2b7def439403ab78c13e62d7013b17 Mon Sep 17 00:00:00 2001 From: Ferdinand Thiessen Date: Tue, 25 May 2021 21:52:26 +0200 Subject: [PATCH 5/9] [api] Fixed session loading --- api/src/stores/main.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/src/stores/main.ts b/api/src/stores/main.ts index b4e7121..777782e 100644 --- a/api/src/stores/main.ts +++ b/api/src/stores/main.ts @@ -49,7 +49,7 @@ export const useMainStore = defineStore({ const sessionStore = useSessionStore(); const session = await sessionStore.getSession(this.session.token); if (session) { - this.session = this.session; + this.session = session; const userStore = useUserStore(); const user = await userStore.getUser(this.session.userid); if (user) { From 0c279289b2a1c30750a0ab86efd1fc2cb488b986 Mon Sep 17 00:00:00 2001 From: Ferdinand Thiessen Date: Tue, 25 May 2021 21:54:09 +0200 Subject: [PATCH 6/9] [test] enable all plugins --- package.json | 4 +++- plugin.config.js | 6 +++--- quasar.extensions.json | 3 --- 3 files changed, 6 insertions(+), 7 deletions(-) delete mode 100644 quasar.extensions.json diff --git a/package.json b/package.json index d588ff6..5257c5e 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,9 @@ "dependencies": { "@flaschengeist/api": "file:./api", "@flaschengeist/users": "git+https://flaschengeist.dev/ferfissimo/flaschengeist-users.git#develop", + "@flaschengeist/schedule": "git+https://flaschengeist.dev/ferfissimo/flaschengeist-schedule.git#develop", + "@flaschengeist/balance": "git+https://flaschengeist.dev/ferfissimo/flaschengeist-balance.git#develop", + "@flaschengeist/pricelist": "git+https://flaschengeist.dev/ferfissimo/flaschengeist-pricelist.git#develop", "axios": "^0.21.1", "cordova": "^10.0.0", "pinia": "^2.0.0-alpha.19", @@ -26,7 +29,6 @@ "@flaschengeist/types": "git+https://flaschengeist.dev/ferfissimo/flaschengeist-types.git#develop", "@quasar/app": "^3.0.0-beta.26", "@quasar/extras": "^1.10.4", - "@quasar/quasar-app-extension-qcalendar": "4.0.0-alpha.8", "@types/node": "^12.20.13", "@types/webpack": "^5.28.0", "@types/webpack-env": "^1.16.0", diff --git a/plugin.config.js b/plugin.config.js index fe421d7..af382d3 100644 --- a/plugin.config.js +++ b/plugin.config.js @@ -1,6 +1,6 @@ // You can add your plugins here module.exports = [ -/* '@flaschengeist/balances', */ -/* '@flaschengeist/schedule', */ -/* '@flaschengeist/pricelist', */ + '@flaschengeist/balance', + '@flaschengeist/schedule', + '@flaschengeist/pricelist', ] diff --git a/quasar.extensions.json b/quasar.extensions.json deleted file mode 100644 index e239c30..0000000 --- a/quasar.extensions.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "@quasar/qcalendar": {} -} \ No newline at end of file From d422380adcb379f62d8651cd0c902faa69b035dd Mon Sep 17 00:00:00 2001 From: Ferdinand Thiessen Date: Tue, 25 May 2021 21:54:49 +0200 Subject: [PATCH 7/9] [core] Fixed menu link title generation --- .../navigation/EssentialExpansionLink.vue | 23 +- yarn.lock | 790 +++++++++--------- 2 files changed, 412 insertions(+), 401 deletions(-) diff --git a/src/components/navigation/EssentialExpansionLink.vue b/src/components/navigation/EssentialExpansionLink.vue index 7feacb5..99bb12a 100644 --- a/src/components/navigation/EssentialExpansionLink.vue +++ b/src/components/navigation/EssentialExpansionLink.vue @@ -2,9 +2,7 @@ @@ -19,7 +17,7 @@ - {{ child.title }} + {{ getTitle(child) }} @@ -29,9 +27,9 @@ diff --git a/yarn.lock b/yarn.lock index 6c22137..f1f481b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -96,10 +96,10 @@ "@babel/helper-annotate-as-pure" "^7.12.13" regexpu-core "^4.7.1" -"@babel/helper-define-polyfill-provider@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.0.tgz#a640051772045fedaaecc6f0c6c69f02bdd34bf1" - integrity sha512-JT8tHuFjKBo8NnaUbblz7mIu1nnvUDiHVjXXkulZULyidvo/7P6TY7+YqpV37IfF+KUFxmlK04elKtGKXaiVgw== +"@babel/helper-define-polyfill-provider@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.1.tgz#e6f5f4a6edc3722152c21359190de67fc6cf664d" + integrity sha512-x3AUTVZNPunaw1opRTa5OwVA5N0YxGlIad9xQ5QflK1uIS7PnAGGU5O2Dj/G183fR//N8AzTq+Q8+oiu9m0VFg== dependencies: "@babel/helper-compilation-targets" "^7.13.0" "@babel/helper-module-imports" "^7.12.13" @@ -972,6 +972,33 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" +"@flaschengeist/api@file:./api": + version "1.0.0-alpha.1" + +"@flaschengeist/balance@git+https://flaschengeist.dev/ferfissimo/flaschengeist-balance.git#develop": + version "1.0.0-alpha.1" + resolved "git+https://flaschengeist.dev/ferfissimo/flaschengeist-balance.git#9bf9c67b5ae55995b8dec92ca5e91a96d8eb2301" + +"@flaschengeist/pricelist@git+https://flaschengeist.dev/ferfissimo/flaschengeist-pricelist.git#develop": + version "1.0.0-alpha.1" + resolved "git+https://flaschengeist.dev/ferfissimo/flaschengeist-pricelist.git#4a0a5b9ec6e32a9abe1cd2920efca76795fd1bfb" + dependencies: + vuedraggable "^4.0.1" + +"@flaschengeist/schedule@git+https://flaschengeist.dev/ferfissimo/flaschengeist-schedule.git#develop": + version "1.0.0-alpha.1" + resolved "git+https://flaschengeist.dev/ferfissimo/flaschengeist-schedule.git#9981ba487b92f5c3484cdd4c363ac4d7d0f527bf" + dependencies: + "@quasar/quasar-ui-qcalendar" "^4.0.0-alpha.8" + +"@flaschengeist/types@git+https://flaschengeist.dev/ferfissimo/flaschengeist-types.git#develop": + version "1.0.0-alpha.1" + resolved "git+https://flaschengeist.dev/ferfissimo/flaschengeist-types.git#1f1d0fe32e1bc429edbf32ae33e48f312a025f60" + +"@flaschengeist/users@git+https://flaschengeist.dev/ferfissimo/flaschengeist-users.git#develop": + version "1.0.0-alpha.1" + resolved "git+https://flaschengeist.dev/ferfissimo/flaschengeist-users.git#4311cb8e40941329672e221e5a39733ac98d1fae" + "@netflix/nerror@^1.1.3": version "1.1.3" resolved "https://registry.yarnpkg.com/@netflix/nerror/-/nerror-1.1.3.tgz#9d88eccca442f1d544f2761d15ea557dc0a44ed2" @@ -1055,20 +1082,20 @@ node-gyp "^7.1.0" read-package-json-fast "^2.0.1" -"@polka/url@^1.0.0-next.9": - version "1.0.0-next.12" - resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.12.tgz#431ec342a7195622f86688bbda82e3166ce8cb28" - integrity sha512-6RglhutqrGFMO1MNUXp95RBuYIuc8wTnMAV5MUhLmjTOy78ncwOw7RgeQ/HeymkKXRhZd0s2DNrM1rL7unk3MQ== +"@polka/url@^1.0.0-next.15": + version "1.0.0-next.15" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.15.tgz#6a9d143f7f4f49db2d782f9e1c8839a29b43ae23" + integrity sha512-15spi3V28QdevleWBNXE4pIls3nFZmBbUGrW9IVPwiQczuSb9n76TCB4bsk8TSel+I1OkHEdPhu5QKMfY6rQHA== "@positron/stack-trace@1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@positron/stack-trace/-/stack-trace-1.0.0.tgz#14fcc712a530038ef9be1ce6952315a839f466a8" integrity sha1-FPzHEqUwA475vhzmlSMVqDn0Zqg= -"@quasar/app@^3.0.0-beta.25": - version "3.0.0-beta.25" - resolved "https://registry.yarnpkg.com/@quasar/app/-/app-3.0.0-beta.25.tgz#c532796f6ddf7a28947ee3b6bf00efad63121dac" - integrity sha512-0M3xH2UwVkCp86n8QrbEyA0MHp22PAFTNkzRH4jKHmaD0fQSq4HxacM5ZSdyXxgqN6cLzCnEyzMITjlpPCynBg== +"@quasar/app@^3.0.0-beta.26": + version "3.0.0-beta.26" + resolved "https://registry.yarnpkg.com/@quasar/app/-/app-3.0.0-beta.26.tgz#e5e9cd482fb0d4af11be064fad8b4e34655e4e87" + integrity sha512-T1Q7CcwSB1ftHZ5g4ujOcWdhbYTB/cb/ANES6az+QjJb8DpY/SXF92dn4119M6NZGasYKq6YvBTCSC67lLRknw== dependencies: "@quasar/babel-preset-app" "2.0.1" "@quasar/fastclick" "1.1.4" @@ -1171,22 +1198,15 @@ core-js-compat "^3.6.5" "@quasar/extras@^1.10.4": - version "1.10.4" - resolved "https://registry.yarnpkg.com/@quasar/extras/-/extras-1.10.4.tgz#904ea87a3ee294bc09985651382501c564ca4699" - integrity sha512-FIXvYZPTKFjBmMb9CNMkEqXTgNppixRLWdaZKKb1qn/CScn+jipPzMBOwCfAFwsNPeAGXTwFT1/xzhLWIbwzAw== + version "1.10.5" + resolved "https://registry.yarnpkg.com/@quasar/extras/-/extras-1.10.5.tgz#5c115c83d5954777f2ce00a256ae085bcb076100" + integrity sha512-iBI9bRfomvxfnE2RUYMK0q7tki7Y0I0KMLuxoSEQC0OsOghJ/3ANENyGm1S0AsVMmNYwj0bzQWYVA6KD7/NwHg== "@quasar/fastclick@1.1.4": version "1.1.4" resolved "https://registry.yarnpkg.com/@quasar/fastclick/-/fastclick-1.1.4.tgz#21ed3e9a4387dcb43022a08af4ef08a5f1abf159" integrity sha512-i9wbyV4iT+v4KhtHJynUFhH5LiEPvAEgSnwMqPN4hf/8uRe82nDl5qP5agrp2el1h0HzyBpbvHaW7NB0BPrtvA== -"@quasar/quasar-app-extension-qcalendar@4.0.0-alpha.8": - version "4.0.0-alpha.8" - resolved "https://registry.yarnpkg.com/@quasar/quasar-app-extension-qcalendar/-/quasar-app-extension-qcalendar-4.0.0-alpha.8.tgz#b50ab0687639b533871308096f697c6eb6183a9f" - integrity sha512-7UYte45PF3WnupmXsEnLf45lDFTljEfXP0J4SyC/7CpCDn/ExOnNXbKE2+0zOHmqxt7LT+7OCldGovozU7tQaA== - dependencies: - "@quasar/quasar-ui-qcalendar" "^4.0.0-alpha.8" - "@quasar/quasar-ui-qcalendar@^4.0.0-alpha.8": version "4.0.0-alpha.8" resolved "https://registry.yarnpkg.com/@quasar/quasar-ui-qcalendar/-/quasar-ui-qcalendar-4.0.0-alpha.8.tgz#a15bbcaec80e2c995b42dbba4b6e5c858df78676" @@ -1223,13 +1243,6 @@ resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.1.1.tgz#3348564048e7a2d7398c935d466c0414ebb6a669" integrity sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow== -"@types/anymatch@*": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-3.0.0.tgz#c95ff14401dbb2869913afac3935af4ad0d37f1a" - integrity sha512-qLChUo6yhpQ9k905NwL74GU7TxH+9UODwwQ6ICNI+O6EDMExqH/Cv9NsbmcZ7yC/rRXJ/AHCzfgjsFRY5fKjYw== - dependencies: - anymatch "*" - "@types/body-parser@*": version "1.19.0" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f" @@ -1277,9 +1290,9 @@ "@types/estree" "*" "@types/eslint@*", "@types/eslint@^7.2.6": - version "7.2.10" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.10.tgz#4b7a9368d46c0f8cd5408c23288a59aa2394d917" - integrity sha512-kUEPnMKrqbtpCq/KTaGFFKAcz6Ethm2EjCoKIDaCmfRBWLbFuTcOJfTlorwbnboXBzahqWLgUp1BQeKHiJzPUQ== + version "7.2.11" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.11.tgz#180b58f5bb7d7376e39d22496e2b08901aa52fd2" + integrity sha512-WYhv//5K8kQtsSc9F1Kn2vHzhYor6KpwPbARH7hwYe3C3ETD0EVx/3P5qQybUoaBEuUa9f/02JjBiXFWalYUmw== dependencies: "@types/estree" "*" "@types/json-schema" "*" @@ -1290,15 +1303,25 @@ integrity sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg== "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": - version "4.17.19" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.19.tgz#00acfc1632e729acac4f1530e9e16f6dd1508a1d" - integrity sha512-DJOSHzX7pCiSElWaGR8kCprwibCB/3yW6vcT8VG3P0SJjnv19gnWG/AZMfM60Xj/YJIp/YCaDHyvzsFVeniARA== + version "4.17.20" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.20.tgz#44caee029f2c26c46711da5e845cdc12167ad72d" + integrity sha512-8qqFN4W53IEWa9bdmuVrUcVkFemQWnt5DKPQ/oa8xKDYgtjCr2OO6NX5TIK49NLFr3mPYU2cLh92DQquC3oWWQ== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" -"@types/express@*", "@types/express@4.17.11": +"@types/express@*": + version "4.17.12" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.12.tgz#4bc1bf3cd0cfe6d3f6f2853648b40db7d54de350" + integrity sha512-pTYas6FrP15B1Oa0bkN5tQMNqOcVXa9j4FTFtO8DWI9kppKib+6NJtfTOOLcwxuuYvcX2+dVG6et1SxW/Kc17Q== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.18" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/express@4.17.11": version "4.17.11" resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.11.tgz#debe3caa6f8e5fcda96b47bd54e2f40c4ee59545" integrity sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg== @@ -1331,9 +1354,9 @@ integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== "@types/node@*": - version "15.3.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-15.3.0.tgz#d6fed7d6bc6854306da3dea1af9f874b00783e26" - integrity sha512-8/bnjSZD86ZfpBsDlCIkNXIvm+h6wi9g7IqL+kmFkQ+Wvu3JrasgLElfiPgoo8V8vVfnEi0QVS12gbl94h9YsQ== + version "15.6.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.6.1.tgz#32d43390d5c62c5b6ec486a9bc9c59544de39a08" + integrity sha512-7EIraBEyRHEe7CH+Fm1XvgqU6uwZN8Q7jppJGcqjROMT29qhAuuOxYB1uEY5UMYQKEmA5D+5tBnhdaPXSsLONA== "@types/node@^12.20.13": version "12.20.13" @@ -1428,15 +1451,15 @@ source-map "^0.7.3" "@types/webpack@^4": - version "4.41.28" - resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.28.tgz#0069a2159b7ad4d83d0b5801942c17d54133897b" - integrity sha512-Nn84RAiJjKRfPFFCVR8LC4ueTtTdfWAMZ03THIzZWRJB+rX24BD3LqPSFnbMscWauEsT4segAsylPDIaZyZyLQ== + version "4.41.29" + resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.29.tgz#2e66c1de8223c440366469415c50a47d97625773" + integrity sha512-6pLaORaVNZxiB3FSHbyBiWM7QdazAWda1zvAq4SbZObZqHSDbWLi62iFdblVea6SK9eyBIVp5yHhKt/yNQdR7Q== dependencies: - "@types/anymatch" "*" "@types/node" "*" "@types/tapable" "^1" "@types/uglify-js" "*" "@types/webpack-sources" "*" + anymatch "^3.0.0" source-map "^0.6.0" "@types/webpack@^5.28.0": @@ -1449,12 +1472,12 @@ webpack "^5" "@typescript-eslint/eslint-plugin@^4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.24.0.tgz#03801ffc25b2af9d08f3dc9bccfc0b7ce3780d0f" - integrity sha512-qbCgkPM7DWTsYQGjx9RTuQGswi+bEt0isqDBeo+CKV0953zqI0Tp7CZ7Fi9ipgFA6mcQqF4NOVNwS/f2r6xShw== + version "4.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.25.0.tgz#d82657b6ab4caa4c3f888ff923175fadc2f31f2a" + integrity sha512-Qfs3dWkTMKkKwt78xp2O/KZQB8MPS1UQ5D3YW2s6LQWBE1074BE+Rym+b1pXZIX3M3fSvPUDaCvZLKV2ylVYYQ== dependencies: - "@typescript-eslint/experimental-utils" "4.24.0" - "@typescript-eslint/scope-manager" "4.24.0" + "@typescript-eslint/experimental-utils" "4.25.0" + "@typescript-eslint/scope-manager" "4.25.0" debug "^4.1.1" functional-red-black-tree "^1.0.1" lodash "^4.17.15" @@ -1462,60 +1485,60 @@ semver "^7.3.2" tsutils "^3.17.1" -"@typescript-eslint/experimental-utils@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.24.0.tgz#c23ead9de44b99c3a5fd925c33a106b00165e172" - integrity sha512-IwTT2VNDKH1h8RZseMH4CcYBz6lTvRoOLDuuqNZZoThvfHEhOiZPQCow+5El3PtyxJ1iDr6UXZwYtE3yZQjhcw== +"@typescript-eslint/experimental-utils@4.25.0": + version "4.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.25.0.tgz#b2febcfa715d2c1806fd5f0335193a6cd270df54" + integrity sha512-f0doRE76vq7NEEU0tw+ajv6CrmPelw5wLoaghEHkA2dNLFb3T/zJQqGPQ0OYt5XlZaS13MtnN+GTPCuUVg338w== dependencies: "@types/json-schema" "^7.0.3" - "@typescript-eslint/scope-manager" "4.24.0" - "@typescript-eslint/types" "4.24.0" - "@typescript-eslint/typescript-estree" "4.24.0" + "@typescript-eslint/scope-manager" "4.25.0" + "@typescript-eslint/types" "4.25.0" + "@typescript-eslint/typescript-estree" "4.25.0" eslint-scope "^5.0.0" eslint-utils "^2.0.0" "@typescript-eslint/parser@^4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.24.0.tgz#2e5f1cc78ffefe43bfac7e5659309a92b09a51bd" - integrity sha512-dj1ZIh/4QKeECLb2f/QjRwMmDArcwc2WorWPRlB8UNTZlY1KpTVsbX7e3ZZdphfRw29aTFUSNuGB8w9X5sS97w== + version "4.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.25.0.tgz#6b2cb6285aa3d55bfb263c650739091b0f19aceb" + integrity sha512-OZFa1SKyEJpAhDx8FcbWyX+vLwh7OEtzoo2iQaeWwxucyfbi0mT4DijbOSsTgPKzGHr6GrF2V5p/CEpUH/VBxg== dependencies: - "@typescript-eslint/scope-manager" "4.24.0" - "@typescript-eslint/types" "4.24.0" - "@typescript-eslint/typescript-estree" "4.24.0" + "@typescript-eslint/scope-manager" "4.25.0" + "@typescript-eslint/types" "4.25.0" + "@typescript-eslint/typescript-estree" "4.25.0" debug "^4.1.1" -"@typescript-eslint/scope-manager@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.24.0.tgz#38088216f0eaf235fa30ed8cabf6948ec734f359" - integrity sha512-9+WYJGDnuC9VtYLqBhcSuM7du75fyCS/ypC8c5g7Sdw7pGL4NDTbeH38eJPfzIydCHZDoOgjloxSAA3+4l/zsA== +"@typescript-eslint/scope-manager@4.25.0": + version "4.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.25.0.tgz#9d86a5bcc46ef40acd03d85ad4e908e5aab8d4ca" + integrity sha512-2NElKxMb/0rya+NJG1U71BuNnp1TBd1JgzYsldsdA83h/20Tvnf/HrwhiSlNmuq6Vqa0EzidsvkTArwoq+tH6w== dependencies: - "@typescript-eslint/types" "4.24.0" - "@typescript-eslint/visitor-keys" "4.24.0" + "@typescript-eslint/types" "4.25.0" + "@typescript-eslint/visitor-keys" "4.25.0" -"@typescript-eslint/types@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.24.0.tgz#6d0cca2048cbda4e265e0c4db9c2a62aaad8228c" - integrity sha512-tkZUBgDQKdvfs8L47LaqxojKDE+mIUmOzdz7r+u+U54l3GDkTpEbQ1Jp3cNqqAU9vMUCBA1fitsIhm7yN0vx9Q== +"@typescript-eslint/types@4.25.0": + version "4.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.25.0.tgz#0e444a5c5e3c22d7ffa5e16e0e60510b3de5af87" + integrity sha512-+CNINNvl00OkW6wEsi32wU5MhHti2J25TJsJJqgQmJu3B3dYDBcmOxcE5w9cgoM13TrdE/5ND2HoEnBohasxRQ== -"@typescript-eslint/typescript-estree@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.24.0.tgz#b49249679a98014d8b03e8d4b70864b950e3c90f" - integrity sha512-kBDitL/by/HK7g8CYLT7aKpAwlR8doshfWz8d71j97n5kUa5caHWvY0RvEUEanL/EqBJoANev8Xc/mQ6LLwXGA== +"@typescript-eslint/typescript-estree@4.25.0": + version "4.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.25.0.tgz#942e4e25888736bff5b360d9b0b61e013d0cfa25" + integrity sha512-1B8U07TGNAFMxZbSpF6jqiDs1cVGO0izVkf18Q/SPcUAc9LhHxzvSowXDTvkHMWUVuPpagupaW63gB6ahTXVlg== dependencies: - "@typescript-eslint/types" "4.24.0" - "@typescript-eslint/visitor-keys" "4.24.0" + "@typescript-eslint/types" "4.25.0" + "@typescript-eslint/visitor-keys" "4.25.0" debug "^4.1.1" globby "^11.0.1" is-glob "^4.0.1" semver "^7.3.2" tsutils "^3.17.1" -"@typescript-eslint/visitor-keys@4.24.0": - version "4.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.24.0.tgz#a8fafdc76cad4e04a681a945fbbac4e35e98e297" - integrity sha512-4ox1sjmGHIxjEDBnMCtWFFhErXtKA1Ec0sBpuz0fqf3P+g3JFGyTxxbF06byw0FRsPnnbq44cKivH7Ks1/0s6g== +"@typescript-eslint/visitor-keys@4.25.0": + version "4.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.25.0.tgz#863e7ed23da4287c5b469b13223255d0fde6aaa7" + integrity sha512-AmkqV9dDJVKP/TcZrbf6s6i1zYXt5Hl8qOLrRDTFfRNae4+LB8A4N3i+FLZPW85zIxRy39BgeWOfMS3HoH5ngg== dependencies: - "@typescript-eslint/types" "4.24.0" + "@typescript-eslint/types" "4.25.0" eslint-visitor-keys "^2.0.0" "@vue/compiler-core@3.0.11": @@ -1568,9 +1591,9 @@ "@vue/shared" "3.0.11" "@vue/devtools-api@^6.0.0-beta.10": - version "6.0.0-beta.10" - resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.0.0-beta.10.tgz#f39da7618cee292e39c7274227c34163e30eb3ca" - integrity sha512-nktQYRnIFrh4DdXiCBjHnsHOMZXDIVcP9qlm/DMfxmjJMtpMGrSZCOKP8j7kDhObNHyqlicwoGLd+a4hf4x9ww== + version "6.0.0-beta.11" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.0.0-beta.11.tgz#4fb4161ee41ba75f3f5198d4bfd80e4ffb7f2462" + integrity sha512-vpw61AkW9U8c2upjJCljHq9eh1KkD4FJ7DYbRzIETpj9WAw2VESudJZosAk4M+7npBo1Zu1jNQY03HUMVO/czQ== "@vue/reactivity@3.0.11": version "3.0.11" @@ -1813,9 +1836,9 @@ ajv@^6.10.0, ajv@^6.12.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: uri-js "^4.2.2" ajv@^8.0.1: - version "8.4.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.4.0.tgz#48984fdb2ce225cab15795f0772a8d85669075e4" - integrity sha512-7QD2l6+KBSLwf+7MuYocbWvRPdOu63/trReTLu2KFwkgctnub1auoF+Y1WYcm09CTM7quuscrzqmASaLHC/K4Q== + version "8.5.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.5.0.tgz#695528274bcb5afc865446aa275484049a18ae4b" + integrity sha512-Y2l399Tt1AguU3BPRP9Fn4eN+Or+StUGWCUpbnFyXSo8NZ9S4uj+AG2pjs5apK+ZMOwYOz1+a+VKvKH7CudXgQ== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -1895,7 +1918,7 @@ ansi@^0.3.1: resolved "https://registry.yarnpkg.com/ansi/-/ansi-0.3.1.tgz#0c42d4fb17160d5a9af1e484bace1c66922c1b21" integrity sha1-DELU+xcWDVqa8eSEus4cZpIsGyE= -anymatch@*, anymatch@~3.1.1: +anymatch@^3.0.0, anymatch@~3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== @@ -2074,28 +2097,28 @@ babel-plugin-module-resolver@^4.0.0: resolve "^1.13.1" babel-plugin-polyfill-corejs2@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz#686775bf9a5aa757e10520903675e3889caeedc4" - integrity sha512-9bNwiR0dS881c5SHnzCmmGlMkJLl0OUZvxrxHo9w/iNoRuqaPjqlvBf4HrovXtQs/au5yKkpcdgfT1cC5PAZwg== + version "0.2.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.1.tgz#ae2cf6d6f1aa7c0edcf04a25180e8856a6d1184f" + integrity sha512-hXGSPbr6IbjeMyGew+3uGIAkRjBFSOJ9FLDZNOfHuyJZCcoia4nd/72J0bSgvfytcVfUcP/dxEVcUhVJuQRtSw== dependencies: "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.2.0" + "@babel/helper-define-polyfill-provider" "^0.2.1" semver "^6.1.1" babel-plugin-polyfill-corejs3@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz#f4b4bb7b19329827df36ff56f6e6d367026cb7a2" - integrity sha512-zZyi7p3BCUyzNxLx8KV61zTINkkV65zVkDAFNZmrTCRVhjo1jAS+YLvDJ9Jgd/w2tsAviCwFHReYfxO3Iql8Yg== + version "0.2.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.1.tgz#786f40218040030f0edecfd48e6e59f1ee9bef53" + integrity sha512-WZCqF3DLUhdTD/P381MDJfuP18hdCZ+iqJ+wHtzhWENpsiof284JJ1tMQg1CE+hfCWyG48F7e5gDMk2c3Laz7w== dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.0" + "@babel/helper-define-polyfill-provider" "^0.2.1" core-js-compat "^3.9.1" babel-plugin-polyfill-regenerator@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz#853f5f5716f4691d98c84f8069c7636ea8da7ab8" - integrity sha512-J7vKbCuD2Xi/eEHxquHN14bXAW9CXtecwuLrOIDJtcZzTaPzV1VdEfoUf9AzcRBMolKUQKM9/GVojeh0hFiqMg== + version "0.2.1" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.1.tgz#ca9595d7d5f3afefec2d83126148b90db751a091" + integrity sha512-T3bYyL3Sll2EtC94v3f+fA8M28q7YPTOZdB++SRHjvYZTvtd+WorMUq3tDTD4Q7Kjk1LG0gGromslKjcO5p2TA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.0" + "@babel/helper-define-polyfill-provider" "^0.2.1" balanced-match@^1.0.0: version "1.0.2" @@ -2290,9 +2313,9 @@ bytes@3.1.0: integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== cacache@^15.0.5: - version "15.0.6" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.6.tgz#65a8c580fda15b59150fb76bf3f3a8e45d583099" - integrity sha512-g1WYDMct/jzW+JdWEyjaX2zoBkZ6ZT9VpOyp2I/VMtDsNLffNat3kqPFfi1eDRSK9/SuKGyORDHcQMcPF8sQ/w== + version "15.2.0" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.2.0.tgz#73af75f77c58e72d8c630a7a2858cb18ef523389" + integrity sha512-uKoJSHmnrqXgthDFx/IU6ED/5xd+NNGe+Bb+kLZy7Ku4P+BaiWEUflAKPZ7eAzsYGcsAGASJZsybXp+quEcHTw== dependencies: "@npmcli/move-file" "^1.0.1" chownr "^2.0.0" @@ -2375,9 +2398,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001196, caniuse-lite@^1.0.30001219: - version "1.0.30001228" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001228.tgz#bfdc5942cd3326fa51ee0b42fbef4da9d492a7fa" - integrity sha512-QQmLOGJ3DEgokHbMSA8cj2a+geXqmnpyOFT0lhQV6P3/YOJvGDEwoedcwxEQ30gJIwIIunHIicunJ2rzK5gB2A== + version "1.0.30001230" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001230.tgz#8135c57459854b2240b57a4a6786044bdc5a9f71" + integrity sha512-5yBd5nWCBS+jWKTcHOzXwo5xzcj4ePE/yjtkZyUV1BTUmrBaA9MRGC+e7mxnqXSA90CmCA8L3eKLaSUkt099IQ== caseless@~0.12.0: version "0.12.0" @@ -2511,7 +2534,7 @@ code-point-at@^1.0.0: resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= -color-convert@^1.9.0, color-convert@^1.9.1: +color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== @@ -2530,26 +2553,15 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@^1.0.0, color-name@~1.1.4: +color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^1.5.4: - version "1.5.5" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.5.tgz#65474a8f0e7439625f3d27a6a19d89fc45223014" - integrity sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" - integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ== - dependencies: - color-convert "^1.9.1" - color-string "^1.5.4" +colord@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.0.0.tgz#f8c19f2526b7dc5b22d6e57ef102f03a2a43a3d8" + integrity sha512-WMDFJfoY3wqPZNpKUFdse3HhD5BHCbE9JCdxRzoVH+ywRITGOeWAHNkGEmyxLlErEpN9OLMWgdM9dWQtDk5dog== colorette@^1.2.2: version "1.2.2" @@ -2835,17 +2847,17 @@ cordova@^10.0.0: update-notifier "^4.1.0" core-js-compat@^3.6.5, core-js-compat@^3.9.0, core-js-compat@^3.9.1: - version "3.12.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.12.1.tgz#2c302c4708505fa7072b0adb5156d26f7801a18b" - integrity sha512-i6h5qODpw6EsHAoIdQhKoZdWn+dGBF3dSS8m5tif36RlWvW3A6+yu2S16QHUo3CrkzrnEskMAt9f8FxmY9fhWQ== + version "3.13.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.13.0.tgz#a88f5fa81d8e9b15d7f98abc4447a4dfca2a358f" + integrity sha512-jhbI2zpVskgfDC9mGRaDo1gagd0E0i/kYW0+WvibL/rafEHKAHO653hEXIxJHqRlRLITluXtRH3AGTL5qJmifQ== dependencies: browserslist "^4.16.6" semver "7.0.0" core-js@^3.6.5: - version "3.12.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.12.1.tgz#6b5af4ff55616c08a44d386f1f510917ff204112" - integrity sha512-Ne9DKPHTObRuB09Dru5AjwKjY4cJHVGu+y5f7coGn1E9Grkc3p2iBwE9AI/nJzsE29mQF7oq+mhYYRqOMFN1Bw== + version "3.13.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.13.0.tgz#58ca436bf01d6903aee3d364089868d0d89fe58d" + integrity sha512-iWDbiyha1M5vFwPFmQnvRv+tJzGbFAm6XimJUT0NgHYW3xZEs1SkCAcasWSVFxpI2Xb/V1DDJckq3v90+bQnog== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" @@ -2925,10 +2937,10 @@ css-color-names@^1.0.1: resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-1.0.1.tgz#6ff7ee81a823ad46e020fa2fd6ab40a887e2ba67" integrity sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA== -css-declaration-sorter@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.0.0.tgz#eb21f75860078627e9e3cc6f5535ccfcea445817" - integrity sha512-S0TE4E0ha5+tBHdLWPc5n+S8E4dFBS5xScPvgHkLNZwWvX4ISoFGhGeerLC9uS1cKA/sC+K2wHq6qEbcagT/fg== +css-declaration-sorter@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.0.3.tgz#9dfd8ea0df4cc7846827876fafb52314890c21a9" + integrity sha512-52P95mvW1SMzuRZegvpluT6yEv0FqQusydKQPZsNN5Q7hh8EwQvN8E2nwuJ16BBvNN6LcoIZXu/Bk58DAhrrxw== dependencies: timsort "^0.3.0" @@ -3006,47 +3018,47 @@ cssesc@^3.0.0: resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.0.1.tgz#76adc00f7aae36ae80552b8356e21bec4b233ca2" - integrity sha512-cfmfThYODGqhpQKDq9H0MTAqkMvZ3dGbOUTBKw0xWZiIycMqHid22LsJXJl4r1qX4qzDeKxcSyQ/Xb5Mu3Z//Q== +cssnano-preset-default@^5.0.1, cssnano-preset-default@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.1.tgz#5cd783caed942cc94159aeb10583af4691445b8c" + integrity sha512-kAhR71Tascmnjlhl4UegGA3KGGbMLXHkkqVpA9idsRT1JmIhIsz1C3tDpBeQMUw5EX5Rfb1HGc/PRqD2AFk3Vg== dependencies: - css-declaration-sorter "6.0.0" - cssnano-utils "^2.0.0" + css-declaration-sorter "^6.0.3" + cssnano-utils "^2.0.1" postcss-calc "^8.0.0" - postcss-colormin "^5.0.0" - postcss-convert-values "^5.0.0" - postcss-discard-comments "^5.0.0" - postcss-discard-duplicates "^5.0.0" - postcss-discard-empty "^5.0.0" - postcss-discard-overridden "^5.0.0" - postcss-merge-longhand "^5.0.1" - postcss-merge-rules "^5.0.0" - postcss-minify-font-values "^5.0.0" - postcss-minify-gradients "^5.0.0" - postcss-minify-params "^5.0.0" - postcss-minify-selectors "^5.0.0" - postcss-normalize-charset "^5.0.0" - postcss-normalize-display-values "^5.0.0" - postcss-normalize-positions "^5.0.0" - postcss-normalize-repeat-style "^5.0.0" - postcss-normalize-string "^5.0.0" - postcss-normalize-timing-functions "^5.0.0" - postcss-normalize-unicode "^5.0.0" - postcss-normalize-url "^5.0.0" - postcss-normalize-whitespace "^5.0.0" - postcss-ordered-values "^5.0.0" - postcss-reduce-initial "^5.0.0" - postcss-reduce-transforms "^5.0.0" - postcss-svgo "^5.0.0" - postcss-unique-selectors "^5.0.0" + postcss-colormin "^5.1.1" + postcss-convert-values "^5.0.1" + postcss-discard-comments "^5.0.1" + postcss-discard-duplicates "^5.0.1" + postcss-discard-empty "^5.0.1" + postcss-discard-overridden "^5.0.1" + postcss-merge-longhand "^5.0.2" + postcss-merge-rules "^5.0.1" + postcss-minify-font-values "^5.0.1" + postcss-minify-gradients "^5.0.1" + postcss-minify-params "^5.0.1" + postcss-minify-selectors "^5.1.0" + postcss-normalize-charset "^5.0.1" + postcss-normalize-display-values "^5.0.1" + postcss-normalize-positions "^5.0.1" + postcss-normalize-repeat-style "^5.0.1" + postcss-normalize-string "^5.0.1" + postcss-normalize-timing-functions "^5.0.1" + postcss-normalize-unicode "^5.0.1" + postcss-normalize-url "^5.0.1" + postcss-normalize-whitespace "^5.0.1" + postcss-ordered-values "^5.0.1" + postcss-reduce-initial "^5.0.1" + postcss-reduce-transforms "^5.0.1" + postcss-svgo "^5.0.1" + postcss-unique-selectors "^5.0.1" -cssnano-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-2.0.0.tgz#b04baaa312aa3dd5a854b7f61d76b9d94be07f74" - integrity sha512-xvxmTszdrvSyTACdPe8VU5J6p4sm3egpgw54dILvNqt5eBUv6TFjACLhSxtRuEsxYrgy8uDy269YjScO5aKbGA== +cssnano-utils@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-2.0.1.tgz#8660aa2b37ed869d2e2f22918196a9a8b6498ce2" + integrity sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ== -cssnano@5.0.2, cssnano@^5.0.0: +cssnano@5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.2.tgz#3f6de4fd5ecb7b5fb636c1a606de5f38cd241493" integrity sha512-8JK3EnPsjQsULme9/e5M2hF564f/480hwsdcHvQ7ZtAIMfQ1O3SCfs+b8Mjf5KJxhYApyRshR2QSovEJi2K72Q== @@ -3055,6 +3067,15 @@ cssnano@5.0.2, cssnano@^5.0.0: cssnano-preset-default "^5.0.1" is-resolvable "^1.1.0" +cssnano@^5.0.0: + version "5.0.4" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.4.tgz#5ca90729c94c71c4bc3d45abb543be10740bf381" + integrity sha512-I+fDW74CJ4yb31765ov9xXe70XLZvFTXjwhmA//VgAAuSAU34Oblbe94Q9zffiCX1VhcSfQWARQnwhz+Nqgb4Q== + dependencies: + cosmiconfig "^7.0.0" + cssnano-preset-default "^5.1.1" + is-resolvable "^1.1.0" + csso@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" @@ -3234,9 +3255,9 @@ dns-equal@^1.0.0: integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= dns-packet@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" - integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== + version "1.3.3" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.3.tgz#7b62ee6e6aaac0c2de27cfc4a06af59cacb9cb38" + integrity sha512-dDwDMOJU+m6Qx+LhltSV+BWNrMaTqx3eXkAqgt/iouWTXGZMffg1rOSnG2xa3lWqmJ9xTBc7fgIe/css4S1rxA== dependencies: ip "^1.1.0" safe-buffer "^5.0.1" @@ -3403,9 +3424,9 @@ electron-osx-sign@^0.4.11: plist "^3.0.1" electron-to-chromium@^1.3.723: - version "1.3.732" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.732.tgz#2a07a8d61f74f2084b6f6bf2a908605a7a0b2d8d" - integrity sha512-qKD5Pbq+QMk4nea4lMuncUMhpEiQwaJyCW7MrvissnRcBDENhVfDmAqQYRQ3X525oTzhar9Zh1cK0L2d1UKYcw== + version "1.3.738" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.738.tgz#aec24b091c82acbfabbdcce08076a703941d17ca" + integrity sha512-vCMf4gDOpEylPSLPLSwAEsz+R3ShP02Y3cAKMZvTqule3XcPp7tgc/0ESI7IS6ZeyBlGClE50N53fIOkcIVnpw== elementtree@0.1.7, elementtree@^0.1.7: version "0.1.7" @@ -3615,9 +3636,9 @@ eslint-webpack-plugin@^2.5.4: schema-utils "^3.0.0" eslint@^7.26.0: - version "7.26.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.26.0.tgz#d416fdcdcb3236cd8f282065312813f8c13982f6" - integrity sha512-4R1ieRf52/izcZE7AlLy56uIHHDLT74Yzz2Iv2l6kDaYvEu9x+wMB5dZArVL8SYGXSYV2YAg70FcW5Y5nGGNIg== + version "7.27.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.27.0.tgz#665a1506d8f95655c9274d84bd78f7166b07e9c7" + integrity sha512-JZuR6La2ZF0UD384lcbnd0Cgg6QJjiCwhMD6eU4h/VGPcVGwawNNzKU41tgokGXnfjOOyI6QIffthhJTPzzuRA== dependencies: "@babel/code-frame" "7.12.11" "@eslint/eslintrc" "^0.4.1" @@ -3627,12 +3648,14 @@ eslint@^7.26.0: debug "^4.0.1" doctrine "^3.0.0" enquirer "^2.3.5" + escape-string-regexp "^4.0.0" eslint-scope "^5.1.1" eslint-utils "^2.1.0" eslint-visitor-keys "^2.0.0" espree "^7.3.1" esquery "^1.4.0" esutils "^2.0.2" + fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" functional-red-black-tree "^1.0.1" glob-parent "^5.0.0" @@ -3644,7 +3667,7 @@ eslint@^7.26.0: js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" - lodash "^4.17.21" + lodash.merge "^4.6.2" minimatch "^3.0.4" natural-compare "^1.4.0" optionator "^0.9.1" @@ -3653,7 +3676,7 @@ eslint@^7.26.0: semver "^7.2.1" strip-ansi "^6.0.0" strip-json-comments "^3.1.0" - table "^6.0.4" + table "^6.0.9" text-table "^0.2.0" v8-compile-cache "^2.0.3" @@ -3837,7 +3860,7 @@ extsprintf@^1.2.0, extsprintf@^1.4.0: resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= -fast-deep-equal@^3.1.1: +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== @@ -3877,9 +3900,9 @@ fastq@^1.6.0: reusify "^1.0.4" faye-websocket@^0.11.3: - version "0.11.3" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" - integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== + version "0.11.4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== dependencies: websocket-driver ">=0.5.1" @@ -4035,9 +4058,9 @@ forwarded@~0.1.2: integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= fraction.js@^4.0.13: - version "4.1.0" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.1.0.tgz#229ec1cedc8c3c7e5d2d20688ba64f0a43af5830" - integrity sha512-o9lSKpK0TDqDwTL24Hxqi6I99s942l6TYkfl6WvGWgLOIFz/YonSGKfiSeMadoiNvTfqnfOa9mjb5SGVbBK9/w== + version "4.1.1" + resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.1.1.tgz#ac4e520473dae67012d618aab91eda09bcb400ff" + integrity sha512-MHOhvvxHTfRFpF1geTK9czMIZ6xclsEor2wkIGYYq+PxcQqT7vStJqjhe6S1TenZrMZzo+wlqOufBDVepUEgPg== fresh@0.5.2: version "0.5.2" @@ -4565,9 +4588,9 @@ iconv-lite@0.4.24, iconv-lite@^0.4.24: safer-buffer ">= 2.1.2 < 3" iconv-lite@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" - integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" @@ -4626,11 +4649,6 @@ indent-string@^4.0.0: resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - infer-owner@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" @@ -4783,11 +4801,6 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" @@ -5293,6 +5306,11 @@ lodash.memoize@^4.1.2: resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + lodash.template@4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" @@ -5328,7 +5346,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.17.10, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21: +lodash@^4.17.10, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -5663,6 +5681,14 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +modify-source-webpack-plugin@^3.0.0-rc.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/modify-source-webpack-plugin/-/modify-source-webpack-plugin-3.0.0.tgz#4fe973adc6e3b11f2ae39f3645a39e423dbed861" + integrity sha512-m2g6QEittzzcde0PhgQtOwRywjqo8Q+vMLHbNoH2JDEFE/AlTBWvtNQrp17xbqDUXIueLljm4bhE5OninatHYw== + dependencies: + loader-utils "^2.0.0" + schema-utils "^3.0.0" + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -5815,9 +5841,9 @@ normalize-range@^0.1.2: integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= normalize-url@^4.1.0, normalize-url@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" - integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + version "4.5.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" + integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== npm-bundled@^1.1.1: version "1.1.2" @@ -5886,9 +5912,9 @@ npm-pick-manifest@^6.0.0, npm-pick-manifest@^6.1.1: semver "^7.3.4" npm-registry-fetch@^10.0.0: - version "10.1.1" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-10.1.1.tgz#97bc7a0fca5e8f76cc5162185b8de8caa8bea639" - integrity sha512-F6a3l+ffCQ7hvvN16YG5bpm1rPZntCg66PLHDQ1apWJPOCUVHoKnL2w5fqEaTVhp42dmossTyXeR7hTGirfXrg== + version "10.1.2" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-10.1.2.tgz#11ffe03d813c653e768bdf762cfc5f1afe91b8bd" + integrity sha512-KsM/TdPmntqgBFlfsbkOLkkE9ovZo7VpVcd+/eTdYszCrgy5zFl5JzWm+OxavFaEWlbkirpkou+ZYI00RmOBFA== dependencies: lru-cache "^6.0.0" make-fetch-happen "^8.0.9" @@ -6308,9 +6334,9 @@ path-key@^3.0.0, path-key@^3.1.0: integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-to-regexp@0.1.7: version "0.1.7" @@ -6328,9 +6354,9 @@ performance-now@^2.1.0: integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.3.tgz#465547f359ccc206d3c48e46a1bcb89bf7ee619d" - integrity sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg== + version "2.3.0" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== pify@^3.0.0: version "3.0.0" @@ -6347,10 +6373,10 @@ pify@^5.0.0: resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== -pinia@^2.0.0-alpha.18: - version "2.0.0-alpha.18" - resolved "https://registry.yarnpkg.com/pinia/-/pinia-2.0.0-alpha.18.tgz#bc176e5054bcbfc1b485982dc41cbc28eacabb31" - integrity sha512-KbgU5mvGcRjnOEleTL943nDIJcI97CmOQskGiOJUntZ5VuNYxm3CgzQztO4VE1SUYgHYbLhcauV9Athz9R1kWw== +pinia@^2.0.0-alpha.19: + version "2.0.0-alpha.19" + resolved "https://registry.yarnpkg.com/pinia/-/pinia-2.0.0-alpha.19.tgz#0a119c65585a67f7756d5995d11d4b1df4acfbeb" + integrity sha512-U/FvKm2tVUdqEuPorkYvD3oCgIj/u5EnF9TbX5dEpkNkoWKQM1i23e97QKtQFGuTxMSfzmBFFINv4A9VeVZ1wQ== dependencies: "@vue/devtools-api" "^6.0.0-beta.10" @@ -6401,41 +6427,41 @@ postcss-calc@^8.0.0: postcss-selector-parser "^6.0.2" postcss-value-parser "^4.0.2" -postcss-colormin@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.0.0.tgz#283b8934c8bdbc531e7648aeb0970107f6d06d0e" - integrity sha512-Yt84+5V6CgS/AhK7d7MA58vG8dSZ7+ytlRtWLaQhag3HXOncTfmYpuUOX4cDoXjvLfw1sHRCHMiBjYhc35CymQ== +postcss-colormin@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.1.1.tgz#834d262f6021f832d9085e355f08ade288a92a1d" + integrity sha512-SyTmqKKN6PyYNeeKEC0hqIP5CDuprO1hHurdW1aezDyfofDUOn7y7MaxcolbsW3oazPwFiGiY30XRiW1V4iZpA== dependencies: browserslist "^4.16.0" - color "^3.1.1" + colord "^2.0.0" postcss-value-parser "^4.1.0" -postcss-convert-values@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.0.0.tgz#cd77e1d23ebe8fcf508640551eed08e232784cba" - integrity sha512-V5kmYm4xoBAjNs+eHY/6XzXJkkGeg4kwNf2ocfqhLb1WBPEa4oaSmoi1fnVO7Dkblqvus9h+AenDvhCKUCK7uQ== +postcss-convert-values@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.0.1.tgz#4ec19d6016534e30e3102fdf414e753398645232" + integrity sha512-C3zR1Do2BkKkCgC0g3sF8TS0koF2G+mN8xxayZx3f10cIRmTaAnpgpRQZjNekTZxM2ciSPoh2IWJm0VZx8NoQg== dependencies: postcss-value-parser "^4.1.0" -postcss-discard-comments@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.0.0.tgz#6c27310e0657c0b9e38a6175ad001b5aa28964bc" - integrity sha512-Umig6Gxs8m20RihiXY6QkePd6mp4FxkA1Dg+f/Kd6uw0gEMfKRjDeQOyFkLibexbJJGHpE3lrN/Q0R9SMrUMbQ== +postcss-discard-comments@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz#9eae4b747cf760d31f2447c27f0619d5718901fe" + integrity sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg== -postcss-discard-duplicates@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.0.tgz#6a2c4f779e8d20da6781e90730f234f9e650c51c" - integrity sha512-vEJJ+Y3pFUnO1FyCBA6PSisGjHtnphL3V6GsNvkASq/VkP3OX5/No5RYXXLxHa2QegStNzg6HYrYdo71uR4caQ== +postcss-discard-duplicates@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz#68f7cc6458fe6bab2e46c9f55ae52869f680e66d" + integrity sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA== -postcss-discard-empty@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.0.0.tgz#0f0a9baee415f5f7be4ae046ba235e98626ba821" - integrity sha512-+wigy099Y1xZxG36WG5L1f2zeH1oicntkJEW4TDIqKKDO2g9XVB3OhoiHTu08rDEjLnbcab4rw0BAccwi2VjiQ== +postcss-discard-empty@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz#ee136c39e27d5d2ed4da0ee5ed02bc8a9f8bf6d8" + integrity sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw== -postcss-discard-overridden@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.0.0.tgz#ac00f695a60001eda52135a11fac87376b8da9ee" - integrity sha512-hybnScTaZM2iEA6kzVQ6Spozy7kVdLw+lGw8hftLlBEzt93uzXoltkYp9u0tI8xbfhxDLTOOzHsHQCkYdmzRUg== +postcss-discard-overridden@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz#454b41f707300b98109a75005ca4ab0ff2743ac6" + integrity sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q== postcss-loader@5.2.0: version "5.2.0" @@ -6446,60 +6472,60 @@ postcss-loader@5.2.0: klona "^2.0.4" semver "^7.3.4" -postcss-merge-longhand@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.0.1.tgz#1a008ff72d14cd3e2f3d32accc2ad37948bcabf4" - integrity sha512-H1RO8le5deFGumQzuhJjuL0bIXPRysa+w7xtk5KrHe38oiaSS9ksPXDo24+IOS3SETPhip0J5+1uCOW+ALs3Yw== +postcss-merge-longhand@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.0.2.tgz#277ada51d9a7958e8ef8cf263103c9384b322a41" + integrity sha512-BMlg9AXSI5G9TBT0Lo/H3PfUy63P84rVz3BjCFE9e9Y9RXQZD3+h3YO1kgTNsNJy7bBc1YQp8DmSnwLIW5VPcw== dependencies: css-color-names "^1.0.1" postcss-value-parser "^4.1.0" - stylehacks "^5.0.0" + stylehacks "^5.0.1" -postcss-merge-rules@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.0.0.tgz#e0d0c0d45c98376f4adb49eb1f1dfe2aebfd7048" - integrity sha512-TfsXbKjNYCGfUPEXGIGPySnMiJbdS+3gcVeV8gwmJP4RajyKZHW8E0FYDL1WmggTj3hi+m+WUCAvqRpX2ut4Kg== +postcss-merge-rules@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.0.1.tgz#4ff61c5089d86845184a0f149e88d687028bef7e" + integrity sha512-UR6R5Ph0c96QB9TMBH3ml8/kvPCThPHepdhRqAbvMRDRHQACPC8iM5NpfIC03+VRMZTGXy4L/BvFzcDFCgb+fA== dependencies: browserslist "^4.16.0" caniuse-api "^3.0.0" - cssnano-utils "^2.0.0" - postcss-selector-parser "^6.0.4" + cssnano-utils "^2.0.1" + postcss-selector-parser "^6.0.5" vendors "^1.0.3" -postcss-minify-font-values@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.0.0.tgz#fee5d0fa192fae8757cb744870a0ad02be5f402e" - integrity sha512-zi2JhFaMOcIaNxhndX5uhsqSY1rexKDp23wV8EOmC9XERqzLbHsoRye3aYF716Zm+hkcR4loqKDt8LZlmihwAg== +postcss-minify-font-values@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz#a90cefbfdaa075bd3dbaa1b33588bb4dc268addf" + integrity sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA== dependencies: postcss-value-parser "^4.1.0" -postcss-minify-gradients@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.0.tgz#95dbe61567a45c0cd7ab897d78fb65d5096844ed" - integrity sha512-/jPtNgs6JySMwgsE5dPOq8a2xEopWTW3RyqoB9fLqxgR+mDUNLSi7joKd+N1z7FXWgVkc4l/dEBMXHgNAaUbvg== +postcss-minify-gradients@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.1.tgz#2dc79fd1a1afcb72a9e727bc549ce860f93565d2" + integrity sha512-odOwBFAIn2wIv+XYRpoN2hUV3pPQlgbJ10XeXPq8UY2N+9ZG42xu45lTn/g9zZ+d70NKSQD6EOi6UiCMu3FN7g== dependencies: - cssnano-utils "^2.0.0" + cssnano-utils "^2.0.1" is-color-stop "^1.1.0" postcss-value-parser "^4.1.0" -postcss-minify-params@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.0.0.tgz#12c7f75d69b0b4827fafbd6649970a53784a9c24" - integrity sha512-KvZYIxTPBVKjdd+XgObq9A+Sfv8lMkXTpbZTsjhr42XbfWIeLaTItMlygsDWfjArEc3muUfDaUFgNSeDiJ5jug== +postcss-minify-params@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.0.1.tgz#371153ba164b9d8562842fdcd929c98abd9e5b6c" + integrity sha512-4RUC4k2A/Q9mGco1Z8ODc7h+A0z7L7X2ypO1B6V8057eVK6mZ6xwz6QN64nHuHLbqbclkX1wyzRnIrdZehTEHw== dependencies: alphanum-sort "^1.0.2" browserslist "^4.16.0" - cssnano-utils "^2.0.0" + cssnano-utils "^2.0.1" postcss-value-parser "^4.1.0" uniqs "^2.0.0" -postcss-minify-selectors@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.0.0.tgz#d3e43d97fd0ba83ba0010950fc5acfa420f7caa9" - integrity sha512-cEM0O0eWwFIvmo6nfB0lH0vO/XFwgqIvymODbfPXZ1gTA3i76FKnb7TGUrEpiTxaXH6tgYQ6DcTHwRiRS+YQLQ== +postcss-minify-selectors@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz#4385c845d3979ff160291774523ffa54eafd5a54" + integrity sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og== dependencies: alphanum-sort "^1.0.2" - postcss-selector-parser "^3.1.2" + postcss-selector-parser "^6.0.5" postcss-modules-extract-imports@^3.0.0: version "3.0.0" @@ -6543,95 +6569,95 @@ postcss-modules@^4.0.0: postcss-modules-values "^4.0.0" string-hash "^1.1.1" -postcss-normalize-charset@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.0.0.tgz#59e1fe2094fb2e3371cc5b054cbc39828a41a710" - integrity sha512-pqsCkgo9KmQP0ew6DqSA+uP9YN6EfsW20pQ3JU5JoQge09Z6Too4qU0TNDsTNWuEaP8SWsMp+19l15210MsDZQ== +postcss-normalize-charset@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz#121559d1bebc55ac8d24af37f67bd4da9efd91d0" + integrity sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg== -postcss-normalize-display-values@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.0.tgz#4ff2d3b3b5146a366de28ec9e24131a1868f1933" - integrity sha512-t4f2d//gH1f7Ns0Jq3eNdnWuPT7TeLuISZ6RQx4j8gpl5XrhkdshdNcOnlrEK48YU6Tcb6jqK7dorME3N4oOGA== +postcss-normalize-display-values@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz#62650b965981a955dffee83363453db82f6ad1fd" + integrity sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ== dependencies: - cssnano-utils "^2.0.0" + cssnano-utils "^2.0.1" postcss-value-parser "^4.1.0" -postcss-normalize-positions@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.0.0.tgz#fe1d9a8122dd385b9c6908bd2008140dea17750d" - integrity sha512-0o6/qU5ky74X/eWYj/tv4iiKCm3YqJnrhmVADpIMNXxzFZywsSQxl8F7cKs8jQEtF3VrJBgcDHTexZy1zgDoYg== +postcss-normalize-positions@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz#868f6af1795fdfa86fbbe960dceb47e5f9492fe5" + integrity sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg== dependencies: postcss-value-parser "^4.1.0" -postcss-normalize-repeat-style@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.0.tgz#e11d88fbf63f89179c6a7391853b2fe7f46e589d" - integrity sha512-KRT14JbrXKcFMYuc4q7lh8lvv8u22wLyMrq+UpHKLtbx2H/LOjvWXYdoDxmNrrrJzomAWL+ViEXr48/IhSUJnQ== +postcss-normalize-repeat-style@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz#cbc0de1383b57f5bb61ddd6a84653b5e8665b2b5" + integrity sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w== dependencies: - cssnano-utils "^2.0.0" + cssnano-utils "^2.0.1" postcss-value-parser "^4.1.0" -postcss-normalize-string@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.0.0.tgz#2ea08ff4cb8817ce160755e9fdc7e6ef6d495002" - integrity sha512-wSO4pf7GNcDZpmelREWYADF1+XZWrAcbFLQCOqoE92ZwYgaP/RLumkUTaamEzdT2YKRZAH8eLLKGWotU/7FNPw== +postcss-normalize-string@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz#d9eafaa4df78c7a3b973ae346ef0e47c554985b0" + integrity sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA== dependencies: postcss-value-parser "^4.1.0" -postcss-normalize-timing-functions@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.0.tgz#380eb1c9b179f96efc307c659a8049116f16f381" - integrity sha512-TwPaDX+wl9wO3MUm23lzGmOzGCGKnpk+rSDgzB2INpakD5dgWR3L6bJq1P1LQYzBAvz8fRIj2NWdnZdV4EV98Q== +postcss-normalize-timing-functions@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz#8ee41103b9130429c6cbba736932b75c5e2cb08c" + integrity sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q== dependencies: - cssnano-utils "^2.0.0" + cssnano-utils "^2.0.1" postcss-value-parser "^4.1.0" -postcss-normalize-unicode@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.0.tgz#aa46a89c86ae51a01cbca13e73c1ed7b0b38807e" - integrity sha512-2CpVoz/67rXU5s9tsPZDxG1YGS9OFHwoY9gsLAzrURrCxTAb0H7Vp87/62LvVPgRWTa5ZmvgmqTp2rL8tlm72A== +postcss-normalize-unicode@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz#82d672d648a411814aa5bf3ae565379ccd9f5e37" + integrity sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA== dependencies: browserslist "^4.16.0" postcss-value-parser "^4.1.0" -postcss-normalize-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.0.0.tgz#626a4c7d30007f94466cdf245e7ed9f253f1dbd9" - integrity sha512-ICDaGFBqLgA3dlrCIRuhblLl80D13YtgEV9NJPTYJtgR72vu61KgxAHv+z/lKMs1EbwfSQa3ALjOFLSmXiE34A== +postcss-normalize-url@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.0.1.tgz#ffa9fe545935d8b57becbbb7934dd5e245513183" + integrity sha512-hkbG0j58Z1M830/CJ73VsP7gvlG1yF+4y7Fd1w4tD2c7CaA2Psll+pQ6eQhth9y9EaqZSLzamff/D0MZBMbYSg== dependencies: is-absolute-url "^3.0.3" normalize-url "^4.5.0" postcss-value-parser "^4.1.0" -postcss-normalize-whitespace@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.0.tgz#1faf147a4f8d3d93a3c75109d120b4eefa00589b" - integrity sha512-KRnxQvQAVkJfaeXSz7JlnD9nBN9sFZF9lrk9452Q2uRoqrRSkinqifF8Iex7wZGei2DZVG/qpmDFDmRvbNAOGA== +postcss-normalize-whitespace@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz#b0b40b5bcac83585ff07ead2daf2dcfbeeef8e9a" + integrity sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA== dependencies: postcss-value-parser "^4.1.0" -postcss-ordered-values@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.0.0.tgz#a50f224c5f40c566b338b0663655478737dcebee" - integrity sha512-dPr+SRObiHueCIc4IUaG0aOGQmYkuNu50wQvdXTGKy+rzi2mjmPsbeDsheLk5WPb9Zyf2tp8E+I+h40cnivm6g== +postcss-ordered-values@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.0.1.tgz#79ef6e2bd267ccad3fc0c4f4a586dfd01c131f64" + integrity sha512-6mkCF5BQ25HvEcDfrMHCLLFHlraBSlOXFnQMHYhSpDO/5jSR1k8LdEXOkv+7+uzW6o6tBYea1Km0wQSRkPJkwA== dependencies: - cssnano-utils "^2.0.0" + cssnano-utils "^2.0.1" postcss-value-parser "^4.1.0" -postcss-reduce-initial@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.0.0.tgz#c724e5513b0ae7f3d7bff16f0fc82133fb2f820a" - integrity sha512-wR6pXUaFbSMG1oCKx8pKVA+rnSXCHlca5jMrlmkmif+uig0HNUTV9oGN5kjKsM3mATQAldv2PF9Tbl2vqLFjnA== +postcss-reduce-initial@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.0.1.tgz#9d6369865b0f6f6f6b165a0ef5dc1a4856c7e946" + integrity sha512-zlCZPKLLTMAqA3ZWH57HlbCjkD55LX9dsRyxlls+wfuRfqCi5mSlZVan0heX5cHr154Dq9AfbH70LyhrSAezJw== dependencies: browserslist "^4.16.0" caniuse-api "^3.0.0" -postcss-reduce-transforms@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.0.tgz#5c820f71fbd4eec82b323523642b7b2d1c7d29ef" - integrity sha512-iHdGODW4YzM3WjVecBhPQt6fpJC4lGQZxJKjkBNHpp2b8dzmvj0ogKThqya+IRodQEFzjfXgYeESkf172FH5Lw== +postcss-reduce-transforms@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz#93c12f6a159474aa711d5269923e2383cedcf640" + integrity sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA== dependencies: - cssnano-utils "^2.0.0" + cssnano-utils "^2.0.1" postcss-value-parser "^4.1.0" postcss-rtlcss@3.3.1: @@ -6641,16 +6667,7 @@ postcss-rtlcss@3.3.1: dependencies: rtlcss "^3.1.2" -postcss-selector-parser@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" - integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== - dependencies: - dot-prop "^5.2.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5: version "6.0.6" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== @@ -6658,21 +6675,21 @@ postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: cssesc "^3.0.0" util-deprecate "^1.0.2" -postcss-svgo@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.0.0.tgz#c8d806e573394ab24f1e233cac5be4c199e9f1b2" - integrity sha512-M3/VS4sFI1Yp9g0bPL+xzzCNz5iLdRUztoFaugMit5a8sMfkVzzhwqbsOlD8IFFymCdJDmXmh31waYHWw1K4BA== +postcss-svgo@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.0.1.tgz#6ed5e01e164e59204978994d844c653a331a8100" + integrity sha512-cD7DFo6tF9i5eWvwtI4irKOHCpmASFS0xvZ5EQIgEdA1AWfM/XiHHY/iss0gcKHhkqwgYmuo2M0KhJLd5Us6mg== dependencies: postcss-value-parser "^4.1.0" svgo "^2.3.0" -postcss-unique-selectors@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.0.0.tgz#17856278f6c38d024defc9694d568bb09dd7f771" - integrity sha512-o9l4pF8SRn7aCMTmzb/kNv/kjV7wPZpZ8Nlb1Gq8v/Qvw969K1wanz1RVA0ehHzWe9+wHXaC2DvZlak/gdMJ5w== +postcss-unique-selectors@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.0.1.tgz#3be5c1d7363352eff838bd62b0b07a0abad43bfc" + integrity sha512-gwi1NhHV4FMmPn+qwBNuot1sG1t2OmacLQ/AX29lzyggnjd+MnVD5uqQmpXO3J17KGL2WAxQruj1qTd3H0gG/w== dependencies: alphanum-sort "^1.0.2" - postcss-selector-parser "^6.0.2" + postcss-selector-parser "^6.0.5" uniqs "^2.0.0" postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: @@ -6681,13 +6698,13 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== postcss@^8.1.10, postcss@^8.2.10, postcss@^8.2.4, postcss@^8.2.9: - version "8.2.15" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.15.tgz#9e66ccf07292817d226fc315cbbf9bc148fbca65" - integrity sha512-2zO3b26eJD/8rb106Qu2o7Qgg52ND5HPjcyQiK2B98O388h43A448LCslC0dI2P97wCAQRJsFvwTRcXxTKds+Q== + version "8.3.0" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.0.tgz#b1a713f6172ca427e3f05ef1303de8b65683325f" + integrity sha512-+ogXpdAjWGa+fdYY5BQ96V/6tAo+TdSSIMP5huJBIygdWwKtVoB5JWZ7yUd4xZ8r+8Kvvx4nyg/PQ071H4UtcQ== dependencies: colorette "^1.2.2" nanoid "^3.1.23" - source-map "^0.6.1" + source-map-js "^0.6.2" prelude-ls@^1.2.1: version "1.2.1" @@ -6818,10 +6835,10 @@ qs@~6.5.2: resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== -quasar@^2.0.0-beta.17: - version "2.0.0-beta.17" - resolved "https://registry.yarnpkg.com/quasar/-/quasar-2.0.0-beta.17.tgz#4652965f4144b8cda4a4d4c9e40ca030b9f2a717" - integrity sha512-TvpytNLpZZiguZHRvolQzRPMuPZPbUn84cyrmOeXlAfWccJx3tEdR2YQGMQWcyJU+hK9N/nUSurSCxwcxVctHw== +quasar@^2.0.0-beta.18: + version "2.0.0-beta.18" + resolved "https://registry.yarnpkg.com/quasar/-/quasar-2.0.0-beta.18.tgz#d5f855b08b8ce6f2c740944ea58900bf7cf1d85c" + integrity sha512-NZH6+ZvhpmZydDpo/n8Gtlyw1fByO4FmTWlsXake8/3+MLuo6UDSbTlv9Tqgd2EgJDmiyU4UIT3GMaMUsqhu7Q== querystring@0.2.0: version "0.2.0" @@ -7147,9 +7164,9 @@ roarr@^2.15.3: sprintf-js "^1.1.2" rtlcss@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/rtlcss/-/rtlcss-3.1.2.tgz#4800d3d03525791a720f676a8ad2c6acf8efdfb2" - integrity sha512-b04YSX37siupPOWUEguEBReWX2w4QT89C0PI9g2JzZycbq7zrgPmTr1DA1pizSWpKRFdCjjnrx/SSvU4fOHmGg== + version "3.2.0" + resolved "https://registry.yarnpkg.com/rtlcss/-/rtlcss-3.2.0.tgz#2139734ac45302891182f23f13448c51c07fccaf" + integrity sha512-nV3UmaTmA5TkP2dYOR16ULu6FkMOqZRbiXbFZnmWIN9coPfx3gin31VGOPV7vrVMPjNds7pCS2UYy0mwQUdFCQ== dependencies: chalk "^4.1.0" find-up "^5.0.0" @@ -7396,19 +7413,12 @@ signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= - dependencies: - is-arrayish "^0.3.1" - sirv@^1.0.7: - version "1.0.11" - resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.11.tgz#81c19a29202048507d6ec0d8ba8910fda52eb5a4" - integrity sha512-SR36i3/LSWja7AJNRBz4fF/Xjpn7lQFI30tZ434dIy+bitLYSP+ZEenHg36i23V2SGEz+kqjksg0uOGZ5LPiqg== + version "1.0.12" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.12.tgz#d816c882b35489b3c63290e2f455ae3eccd5f652" + integrity sha512-+jQoCxndz7L2tqQL4ZyzfDhky0W/4ZJip3XoOuxyQWnAwMxindLl3Xv1qT4x1YX/re0leShvTm8Uk0kQspGhBg== dependencies: - "@polka/url" "^1.0.0-next.9" + "@polka/url" "^1.0.0-next.15" mime "^2.3.1" totalist "^1.0.0" @@ -7467,6 +7477,11 @@ source-list-map@^2.0.0, source-list-map@^2.0.1: resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== +source-map-js@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" + integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== + source-map-support@~0.5.12, source-map-support@~0.5.19: version "0.5.19" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" @@ -7517,9 +7532,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.8" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.8.tgz#eb1e97ad99b11bf3f82a3b71a0472dd9a00f2ecf" - integrity sha512-NDgA96EnaLSvtbM7trJj+t1LUR3pirkDCcz9nOUlPb5DMBGsH7oES6C3hs3j7R9oHEa1EMvReS/BUAIT5Tcr0g== + version "3.0.9" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz#8a595135def9592bda69709474f1cbeea7c2467f" + integrity sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ== spdy-transport@^3.0.0: version "3.0.0" @@ -7703,10 +7718,10 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= -stylehacks@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.0.0.tgz#c49b0b2cf9917fe37dc030b96a4c34698b932933" - integrity sha512-QOWm6XivDLb+fqffTZP8jrmPmPITVChl2KCY2R05nsCWwLi3VGhCdVc3IVGNwd1zzTt1jPd67zIKjpQfxzQZeA== +stylehacks@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.0.1.tgz#323ec554198520986806388c7fdaebc38d2c06fb" + integrity sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA== dependencies: browserslist "^4.16.0" postcss-selector-parser "^6.0.4" @@ -7762,7 +7777,7 @@ table@6.7.0: string-width "^4.2.0" strip-ansi "^6.0.0" -table@^6.0.4: +table@^6.0.9: version "6.7.1" resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2" integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg== @@ -8067,11 +8082,6 @@ unicode-property-aliases-ecmascript@^1.0.4: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - uniqs@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" @@ -8290,9 +8300,9 @@ vuex@4.0.0: integrity sha512-56VPujlHscP5q/e7Jlpqc40sja4vOhC4uJD1llBCWolVI8ND4+VzisDVkUMl+z5y0MpIImW6HjhNc+ZvuizgOw== watchpack@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.1.1.tgz#e99630550fca07df9f90a06056987baa40a689c7" - integrity sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw== + version "2.2.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.2.0.tgz#47d78f5415fe550ecd740f99fe2882323a58b1ce" + integrity sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" @@ -8328,9 +8338,9 @@ webpack-chain@6.5.1: javascript-stringify "^2.0.1" webpack-dev-middleware@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-4.2.0.tgz#a2578914757107ed9af826365d87bdaa3e3581d2" - integrity sha512-HVVpHw+5H4lfGasUKjpIkOy9TB27OyKiL13c+dhzVG1w77OQ87b408fp0qKDKQQkNGgShbStDzVJ8sK46JajXg== + version "4.3.0" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-4.3.0.tgz#179cc40795882cae510b1aa7f3710cbe93c9333e" + integrity sha512-PjwyVY95/bhBh6VUqt6z4THplYcsvQ8YNNBTBM873xLVmw8FLeALn0qurHbs9EmcfhzQis/eoqypSnZeuUz26w== dependencies: colorette "^1.2.2" mem "^8.1.1" @@ -8532,9 +8542,9 @@ write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: typedarray-to-buffer "^3.1.5" ws@^7.3.1, ws@^7.4.5: - version "7.4.5" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.5.tgz#a484dd851e9beb6fdb420027e3885e8ce48986c1" - integrity sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g== + version "7.4.6" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== xdg-basedir@^4.0.0: version "4.0.0" From 631e78acb3aee7673fea30d041c5b5d5e400576b Mon Sep 17 00:00:00 2001 From: Ferdinand Thiessen Date: Tue, 25 May 2021 21:55:22 +0200 Subject: [PATCH 8/9] [core] minor cleanup --- src/layouts/MainLayout.vue | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/layouts/MainLayout.vue b/src/layouts/MainLayout.vue index ff3acfa..4d0ad96 100644 --- a/src/layouts/MainLayout.vue +++ b/src/layouts/MainLayout.vue @@ -52,14 +52,12 @@ @click.capture="openMenu" > - - - +