From 922c268d0dc0047e5d137b2d54f6546f54e66760 Mon Sep 17 00:00:00 2001 From: Jannis Mattheis Date: Sun, 26 Jul 2026 21:41:38 +0200 Subject: [PATCH] fix: use makeObservable, remove decorators --- ui/package.json | 3 - ui/src/CurrentUser.ts | 22 ++- ui/src/ElevateStore.ts | 15 +- ui/src/application/AppStore.ts | 12 +- ui/src/client/ClientStore.ts | 12 +- ui/src/common/BaseStore.ts | 18 +- ui/src/message/MessagesStore.ts | 35 ++-- ui/src/plugin/PluginStore.ts | 8 +- ui/src/user/UserStore.ts | 8 +- ui/vite.config.ts | 19 +-- ui/yarn.lock | 290 +------------------------------- 11 files changed, 89 insertions(+), 353 deletions(-) diff --git a/ui/package.json b/ui/package.json index a79f1fc21..9e3660283 100644 --- a/ui/package.json +++ b/ui/package.json @@ -46,10 +46,7 @@ "testformat": "prettier \"src/**/*.{ts,tsx}\" --list-different" }, "devDependencies": { - "@babel/core": "^7.29.0", - "@babel/plugin-proposal-decorators": "^7.29.0", "@eslint/js": "^10.0.0", - "@rolldown/plugin-babel": "^0.2.2", "@types/node": "^25.9.3", "@types/notifyjs": "^3.0.5", "@types/react": "^19.1.9", diff --git a/ui/src/CurrentUser.ts b/ui/src/CurrentUser.ts index 668d0dfa5..7ec456375 100644 --- a/ui/src/CurrentUser.ts +++ b/ui/src/CurrentUser.ts @@ -2,24 +2,32 @@ import axios, {AxiosError, AxiosResponse} from 'axios'; import * as config from './config'; import {detect} from 'detect-browser'; import {SnackReporter} from './snack/SnackManager'; -import {observable, runInAction, action} from 'mobx'; +import {makeObservable, observable, runInAction, action} from 'mobx'; import {ICurrentUser} from './types'; export class CurrentUser { private reconnectTimeoutId: number | null = null; private reconnectTime = 7500; - @observable accessor loggedIn = false; - @observable accessor refreshKey = 0; - @observable accessor authenticating = true; - @observable accessor user: ICurrentUser = { + public loggedIn = false; + public refreshKey = 0; + public authenticating = true; + public user: ICurrentUser = { name: 'unknown', admin: false, id: -1, createdAt: '', }; - @observable accessor connectionErrorMessage: string | null = null; + public connectionErrorMessage: string | null = null; - public constructor(private readonly snack: SnackReporter) {} + public constructor(private readonly snack: SnackReporter) { + makeObservable(this, { + loggedIn: observable, + refreshKey: observable, + authenticating: observable, + user: observable, + connectionErrorMessage: observable, + }); + } public register = async (name: string, pass: string): Promise => axios diff --git a/ui/src/ElevateStore.ts b/ui/src/ElevateStore.ts index 35eddfec8..5695dda73 100644 --- a/ui/src/ElevateStore.ts +++ b/ui/src/ElevateStore.ts @@ -1,21 +1,26 @@ import axios from 'axios'; -import {action, observable, runInAction} from 'mobx'; +import {action, makeObservable, observable, runInAction} from 'mobx'; import * as config from './config'; import {SnackReporter} from './snack/SnackManager'; import {CurrentUser} from './CurrentUser'; export class ElevateStore { - @observable accessor elevated = false; - @observable accessor oidcElevatePending = false; + public elevated = false; + public oidcElevatePending = false; private oidcPollIntervalId: number | undefined = undefined; private oidcPopup: Window | null = null; public constructor( private readonly snack: SnackReporter, private readonly currentUser: CurrentUser - ) {} + ) { + makeObservable(this, { + elevated: observable, + oidcElevatePending: observable, + refreshElevated: action, + }); + } - @action public refreshElevated = (): number => { const elevatedUntil = this.currentUser.user.elevatedUntil; if (!elevatedUntil) { diff --git a/ui/src/application/AppStore.ts b/ui/src/application/AppStore.ts index a6fa32ba6..2e620f002 100644 --- a/ui/src/application/AppStore.ts +++ b/ui/src/application/AppStore.ts @@ -1,6 +1,6 @@ import axios from 'axios'; import {generateKeyBetween} from 'fractional-indexing'; -import {action, runInAction} from 'mobx'; +import {action, makeObservable, runInAction} from 'mobx'; import {BaseStore} from '../common/BaseStore'; import * as config from '../config'; import {SnackReporter} from '../snack/SnackManager'; @@ -12,6 +12,12 @@ export class AppStore extends BaseStore { public constructor(private readonly snack: SnackReporter) { super(); + makeObservable(this, { + uploadImage: action, + reorder: action, + update: action, + create: action, + }); } protected requestItems = (): Promise => @@ -25,7 +31,6 @@ export class AppStore extends BaseStore { return this.snack('Application deleted'); }); - @action public uploadImage = async (id: number, file: Blob): Promise => { const formData = new FormData(); formData.append('file', file); @@ -57,7 +62,6 @@ export class AppStore extends BaseStore { } } - @action public reorder = async (fromId: number, toId: number): Promise => { const fromIndex = this.items.findIndex((app) => app.id === fromId); const toIndex = this.items.findIndex((app) => app.id === toId); @@ -80,7 +84,6 @@ export class AppStore extends BaseStore { await this.update({...toUpdate, sortKey: newSortKey}); }; - @action public update = async ({ id, ...app @@ -93,7 +96,6 @@ export class AppStore extends BaseStore { this.snack('Application updated'); }; - @action public create = async ( name: string, description: string, diff --git a/ui/src/client/ClientStore.ts b/ui/src/client/ClientStore.ts index 115fd56bd..374bb6fb4 100644 --- a/ui/src/client/ClientStore.ts +++ b/ui/src/client/ClientStore.ts @@ -1,13 +1,19 @@ import {BaseStore} from '../common/BaseStore'; import axios from 'axios'; import * as config from '../config'; -import {action} from 'mobx'; +import {action, makeObservable} from 'mobx'; import {SnackReporter} from '../snack/SnackManager'; import {IClient} from '../types'; export class ClientStore extends BaseStore { public constructor(private readonly snack: SnackReporter) { super(); + makeObservable(this, { + update: action, + createNoNotifcation: action, + create: action, + elevate: action, + }); } protected requestItems = (): Promise => @@ -19,7 +25,6 @@ export class ClientStore extends BaseStore { .then(() => this.snack('Client deleted')); } - @action public update = async ( id: number, name: string, @@ -33,7 +38,6 @@ export class ClientStore extends BaseStore { this.snack('Client updated'); }; - @action public createNoNotifcation = async ( name: string, expiresAfterInactivitySeconds = 0 @@ -46,14 +50,12 @@ export class ClientStore extends BaseStore { return client.data; }; - @action public create = async (name: string, expiresAfterInactivitySeconds = 0): Promise => { const client = await this.createNoNotifcation(name, expiresAfterInactivitySeconds); this.snack('Client added'); return client.token; }; - @action public elevate = async (id: number, durationSeconds: number): Promise => { await axios.post(`${config.get('url')}client/${id}/elevate`, {durationSeconds}); await this.refresh(); diff --git a/ui/src/common/BaseStore.ts b/ui/src/common/BaseStore.ts index 6f5d0940b..41cf33468 100644 --- a/ui/src/common/BaseStore.ts +++ b/ui/src/common/BaseStore.ts @@ -1,4 +1,4 @@ -import {action, observable} from 'mobx'; +import {action, makeObservable, observable} from 'mobx'; interface HasID { id: number; @@ -12,19 +12,27 @@ export interface IClearable { * Base implementation for handling items with ids. */ export abstract class BaseStore implements IClearable { - @observable protected accessor items: T[] = []; + public items: T[] = []; + + protected constructor() { + makeObservable(this, { + items: observable, + remove: action, + refresh: action, + refreshIfMissing: action, + clear: action, + }); + } protected abstract requestItems(): Promise; protected abstract requestDelete(id: number): Promise; - @action public remove = async (id: number): Promise => { await this.requestDelete(id); await this.refresh(); }; - @action public refresh = (): Promise => this.requestItems().then( action((items) => { @@ -32,7 +40,6 @@ export abstract class BaseStore implements IClearable { }) ); - @action public refreshIfMissing = async (id: number): Promise => { if (this.getByIDOrUndefined(id) === undefined) { await this.refresh(); @@ -52,7 +59,6 @@ export abstract class BaseStore implements IClearable { public getItems = (): T[] => this.items; - @action public clear = (): void => { this.items = []; }; diff --git a/ui/src/message/MessagesStore.ts b/ui/src/message/MessagesStore.ts index e72ac558d..1867dc220 100644 --- a/ui/src/message/MessagesStore.ts +++ b/ui/src/message/MessagesStore.ts @@ -1,5 +1,5 @@ import {BaseStore} from '../common/BaseStore'; -import {action, IObservableArray, observable, reaction, runInAction} from 'mobx'; +import {action, IObservableArray, makeObservable, observable, reaction, runInAction} from 'mobx'; import axios, {AxiosResponse} from 'axios'; import * as config from '../config'; import {createTransformer} from 'mobx-utils'; @@ -22,8 +22,8 @@ interface PendingDelete { } export class MessagesStore { - @observable private accessor state: Record = {}; - @observable private accessor pendingDeletes: Map = observable.map(); + private state: Record = {}; + private pendingDeletes: Map = observable.map(); private loading = false; @@ -31,6 +31,24 @@ export class MessagesStore { private readonly appStore: BaseStore, private readonly snack: SnackReporter ) { + makeObservable( + this, + { + state: observable, + pendingDeletes: observable, + loadMore: action, + publishSingleMessage: action, + removeByApp: action, + addPendingDelete: action, + cancelPendingDelete: action, + executePendingDeletes: action, + removeSingle: action, + clearAll: action, + refreshByApp: action, + removeFromList: action, + clear: action, + } + ); reaction(() => appStore.getItems(), this.createEmptyStatesForApps); } @@ -45,7 +63,6 @@ export class MessagesStore { public canLoadMore = (appId: number) => this.stateOf(appId, /*create*/ false).hasMore; - @action public loadMore = async (appId: number) => { const state = this.stateOf(appId); if (!state.hasMore || this.loading) { @@ -70,7 +87,6 @@ export class MessagesStore { return Promise.resolve(); }; - @action public publishSingleMessage = (message: IMessage) => { if (this.exists(AllMessages)) { this.stateOf(AllMessages).messages.unshift(message); @@ -80,7 +96,6 @@ export class MessagesStore { } }; - @action public removeByApp = async (appId: number) => { if (appId === AllMessages) { await axios.delete(config.get('url') + 'message'); @@ -95,11 +110,9 @@ export class MessagesStore { await this.loadMore(appId); }; - @action public addPendingDelete = (pending: PendingDelete) => this.pendingDeletes.set(pending.message.id, pending); - @action public cancelPendingDelete = (message: IMessage): boolean => { const pending = this.pendingDeletes.get(message.id); if (pending) { @@ -109,13 +122,11 @@ export class MessagesStore { return !!pending; }; - @action public executePendingDeletes = () => Array.from(this.pendingDeletes.values()).forEach(({message}) => this.removeSingle(message)); public visible = (message: number): boolean => !this.pendingDeletes.has(message); - @action public removeSingle = async (message: IMessage) => { if (!this.pendingDeletes.has(message.id)) { return; @@ -152,13 +163,11 @@ export class MessagesStore { this.snack(`Message sent to ${app.name}`); }; - @action public clearAll = () => { this.state = {}; this.createEmptyStatesForApps(this.appStore.getItems()); }; - @action public refreshByApp = async (appId: number) => { this.clearAll(); this.loadMore(appId); @@ -166,7 +175,6 @@ export class MessagesStore { public exists = (id: number) => this.stateOf(id).loaded; - @action private removeFromList(messages: IMessage[], messageToDelete: IMessage): false | number { if (messages) { const index = messages.findIndex((message) => message.id === messageToDelete.id); @@ -178,7 +186,6 @@ export class MessagesStore { return false; } - @action private clear = (appId: number) => (this.state[appId] = this.emptyState()); private fetchMessages = ( diff --git a/ui/src/plugin/PluginStore.ts b/ui/src/plugin/PluginStore.ts index 363af47e5..63c28c50b 100644 --- a/ui/src/plugin/PluginStore.ts +++ b/ui/src/plugin/PluginStore.ts @@ -1,5 +1,5 @@ import axios from 'axios'; -import {action} from 'mobx'; +import {action, makeObservable} from 'mobx'; import {BaseStore} from '../common/BaseStore'; import * as config from '../config'; import {SnackReporter} from '../snack/SnackManager'; @@ -10,6 +10,10 @@ export class PluginStore extends BaseStore { public constructor(private readonly snack: SnackReporter) { super(); + makeObservable(this, { + changeConfig: action, + changeEnabledState: action, + }); } public requestConfig = (id: number): Promise => @@ -31,7 +35,6 @@ export class PluginStore extends BaseStore { return id === -1 ? 'All Plugins' : plugin !== undefined ? plugin.name : 'unknown'; }; - @action public changeConfig = async (id: number, newConfig: string): Promise => { await axios.post(`${config.get('url')}plugin/${id}/config`, newConfig, { headers: {'content-type': 'application/x-yaml'}, @@ -40,7 +43,6 @@ export class PluginStore extends BaseStore { await this.refresh(); }; - @action public changeEnabledState = async (id: number, enabled: boolean): Promise => { await axios.post(`${config.get('url')}plugin/${id}/${enabled ? 'enable' : 'disable'}`); this.snack(`Plugin ${enabled ? 'enabled' : 'disabled'}`); diff --git a/ui/src/user/UserStore.ts b/ui/src/user/UserStore.ts index dc42f3739..1e7f2b48b 100644 --- a/ui/src/user/UserStore.ts +++ b/ui/src/user/UserStore.ts @@ -1,13 +1,17 @@ import {BaseStore} from '../common/BaseStore'; import axios from 'axios'; import * as config from '../config'; -import {action} from 'mobx'; +import {action, makeObservable} from 'mobx'; import {SnackReporter} from '../snack/SnackManager'; import {IUser} from '../types'; export class UserStore extends BaseStore { constructor(private readonly snack: SnackReporter) { super(); + makeObservable(this, { + create: action, + update: action, + }); } protected requestItems = (): Promise => @@ -19,14 +23,12 @@ export class UserStore extends BaseStore { .then(() => this.snack('User deleted')); } - @action public create = async (name: string, pass: string, admin: boolean) => { await axios.post(`${config.get('url')}user`, {name, pass, admin}); await this.refresh(); this.snack('User created'); }; - @action public update = async (id: number, name: string, pass: string | null, admin: boolean) => { await axios.post(config.get('url') + 'user/' + id, {name, pass, admin}); await this.refresh(); diff --git a/ui/vite.config.ts b/ui/vite.config.ts index 6228635c8..3ffbb0d18 100644 --- a/ui/vite.config.ts +++ b/ui/vite.config.ts @@ -1,6 +1,5 @@ import {defineConfig} from 'vite'; import react from '@vitejs/plugin-react'; -import babel from '@rolldown/plugin-babel'; try { process.loadEnvFile('../gotify-server.env'); @@ -10,17 +9,6 @@ try { const GOTIFY_SERVER_PORT = process.env.GOTIFY_SERVER_PORT ?? '80'; -function decoratorPreset(options: Record) { - return { - preset: () => ({ - plugins: [['@babel/plugin-proposal-decorators', options]], - }), - rolldown: { - filter: {code: '@'}, - }, - }; -} - export default defineConfig({ base: './', build: { @@ -29,12 +17,7 @@ export default defineConfig({ sourcemap: false, assetsDir: 'static', }, - plugins: [ - react(), - babel({ - presets: [decoratorPreset({version: '2022-03'})], - }), - ], + plugins: [react()], define: { // Some libraries use the global object, even though it doesn't exist in the browser. // Alternatively, we could add `` to index.html. diff --git a/ui/yarn.lock b/ui/yarn.lock index ce8326f92..e9425c265 100644 --- a/ui/yarn.lock +++ b/ui/yarn.lock @@ -20,41 +20,6 @@ js-tokens "^4.0.0" picocolors "^1.1.1" -"@babel/code-frame@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.29.7.tgz#f2fbbfea87c44a21590ec515b778b2c26d8866e7" - integrity sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw== - dependencies: - "@babel/helper-validator-identifier" "^7.29.7" - js-tokens "^4.0.0" - picocolors "^1.1.1" - -"@babel/compat-data@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.29.7.tgz#6f0237f0f36d2e51c0570a636faed9d2d0efe629" - integrity sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg== - -"@babel/core@^7.29.0": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.29.7.tgz#80c10b17248082968b57a857b91640971f2070f7" - integrity sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA== - dependencies: - "@babel/code-frame" "^7.29.7" - "@babel/generator" "^7.29.7" - "@babel/helper-compilation-targets" "^7.29.7" - "@babel/helper-module-transforms" "^7.29.7" - "@babel/helpers" "^7.29.7" - "@babel/parser" "^7.29.7" - "@babel/template" "^7.29.7" - "@babel/traverse" "^7.29.7" - "@babel/types" "^7.29.7" - "@jridgewell/remapping" "^2.3.5" - convert-source-map "^2.0.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.3" - semver "^6.3.1" - "@babel/generator@^7.28.5": version "7.28.5" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.28.5.tgz#712722d5e50f44d07bc7ac9fe84438742dd61298" @@ -66,61 +31,11 @@ "@jridgewell/trace-mapping" "^0.3.28" jsesc "^3.0.2" -"@babel/generator@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.29.7.tgz#cca0b8827e6bcf3ba176788e7f3b180ad6db2fa3" - integrity sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ== - dependencies: - "@babel/parser" "^7.29.7" - "@babel/types" "^7.29.7" - "@jridgewell/gen-mapping" "^0.3.12" - "@jridgewell/trace-mapping" "^0.3.28" - jsesc "^3.0.2" - -"@babel/helper-annotate-as-pure@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.29.7.tgz#c70fe3c6ecbdc3fd2dd1b0f498428b88b82ce47f" - integrity sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw== - dependencies: - "@babel/types" "^7.29.7" - -"@babel/helper-compilation-targets@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz#7a1def704302401c47f64fa85589e974ae217042" - integrity sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g== - dependencies: - "@babel/compat-data" "^7.29.7" - "@babel/helper-validator-option" "^7.29.7" - browserslist "^4.24.0" - lru-cache "^5.1.1" - semver "^6.3.1" - -"@babel/helper-create-class-features-plugin@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.29.7.tgz#6eddf286f2ec418f740c91d60a83347c55838ddd" - integrity sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.29.7" - "@babel/helper-member-expression-to-functions" "^7.29.7" - "@babel/helper-optimise-call-expression" "^7.29.7" - "@babel/helper-replace-supers" "^7.29.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.29.7" - "@babel/traverse" "^7.29.7" - semver "^6.3.1" - -"@babel/helper-globals@^7.28.0", "@babel/helper-globals@^7.29.7": +"@babel/helper-globals@^7.28.0": version "7.29.7" resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.29.7.tgz#f04a96fbd8473241b1079243f5b3f03a3010ab7b" integrity sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA== -"@babel/helper-member-expression-to-functions@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.29.7.tgz#8dbdb3ce0b5c487e1aec10e13c9a43a500814df8" - integrity sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg== - dependencies: - "@babel/traverse" "^7.29.7" - "@babel/types" "^7.29.7" - "@babel/helper-module-imports@^7.16.7": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz#7ef769a323e2655e126673bb6d2d6913bbead204" @@ -129,53 +44,7 @@ "@babel/traverse" "^7.27.1" "@babel/types" "^7.27.1" -"@babel/helper-module-imports@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz#ef25048a518e828d7393fac5882ddd73921d7396" - integrity sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g== - dependencies: - "@babel/traverse" "^7.29.7" - "@babel/types" "^7.29.7" - -"@babel/helper-module-transforms@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz#b062747a5997ba138637201328bbff77960574ae" - integrity sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg== - dependencies: - "@babel/helper-module-imports" "^7.29.7" - "@babel/helper-validator-identifier" "^7.29.7" - "@babel/traverse" "^7.29.7" - -"@babel/helper-optimise-call-expression@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.29.7.tgz#77b0b5b94f1997fa9d6e3125f445227b1faf9d85" - integrity sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong== - dependencies: - "@babel/types" "^7.29.7" - -"@babel/helper-plugin-utils@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz#c0a0766f1a13617d8a17407d7ab8f9d486225ea4" - integrity sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw== - -"@babel/helper-replace-supers@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.29.7.tgz#bc3c3964329043c79112e513c1b198f16589ac21" - integrity sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.29.7" - "@babel/helper-optimise-call-expression" "^7.29.7" - "@babel/traverse" "^7.29.7" - -"@babel/helper-skip-transparent-expression-wrappers@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.29.7.tgz#50c95c7e4c4f54936cfa0116428edc559862d551" - integrity sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ== - dependencies: - "@babel/traverse" "^7.29.7" - "@babel/types" "^7.29.7" - -"@babel/helper-string-parser@^7.27.1", "@babel/helper-string-parser@^7.29.7": +"@babel/helper-string-parser@^7.27.1": version "7.29.7" resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz#7f0871d99824d23137d60f86fcf6130fd5a1b51f" integrity sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw== @@ -185,24 +54,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4" integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== -"@babel/helper-validator-identifier@^7.28.5", "@babel/helper-validator-identifier@^7.29.7": +"@babel/helper-validator-identifier@^7.28.5": version "7.29.7" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz#bd87084ced0c796ec46bda492de6e83d29e89fc2" integrity sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg== -"@babel/helper-validator-option@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz#cf315be940213b354eb4abcc0bd01ebe3f73bc2a" - integrity sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw== - -"@babel/helpers@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.29.7.tgz#45abfde7548997e34376c3e69feb475cffb4a607" - integrity sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg== - dependencies: - "@babel/template" "^7.29.7" - "@babel/types" "^7.29.7" - "@babel/parser@^7.27.2", "@babel/parser@^7.28.5": version "7.28.5" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.5.tgz#0b0225ee90362f030efd644e8034c99468893b08" @@ -210,29 +66,6 @@ dependencies: "@babel/types" "^7.28.5" -"@babel/parser@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.7.tgz#837b87387cbf5ec5530cb634b3c622f68edb9334" - integrity sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg== - dependencies: - "@babel/types" "^7.29.7" - -"@babel/plugin-proposal-decorators@^7.29.0": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.29.7.tgz#ebc57bd4d711df920a553de8a456a3a020ce0d72" - integrity sha512-EtU0Hi3GvrTqD56xKmZvV/uCXK2ZbwVNPNLAquVItcAZpUhkXwWlo3Fmj0c2LxgSf2I8IDULeAepwNP1OefLXg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.29.7" - "@babel/helper-plugin-utils" "^7.29.7" - "@babel/plugin-syntax-decorators" "^7.29.7" - -"@babel/plugin-syntax-decorators@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.29.7.tgz#9a23ab91fb8e61d142684108bca6f343ceee88f6" - integrity sha512-9MTTLbF39X6sqM92JPEsoI7++26hjZvzkxKZy64aMhWLH2mPkJ/Q3AV4QLmls3R14FpSpkOwQQfUh962JGQxxg== - dependencies: - "@babel/helper-plugin-utils" "^7.29.7" - "@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3": version "7.28.4" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.4.tgz#a70226016fabe25c5783b2f22d3e1c9bc5ca3326" @@ -252,15 +85,6 @@ "@babel/parser" "^7.27.2" "@babel/types" "^7.27.1" -"@babel/template@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.29.7.tgz#4d9d4004f645cdd304de958c725162784ecac700" - integrity sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg== - dependencies: - "@babel/code-frame" "^7.29.7" - "@babel/parser" "^7.29.7" - "@babel/types" "^7.29.7" - "@babel/traverse@^7.27.1": version "7.28.5" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.28.5.tgz#450cab9135d21a7a2ca9d2d35aa05c20e68c360b" @@ -274,19 +98,6 @@ "@babel/types" "^7.28.5" debug "^4.3.1" -"@babel/traverse@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.29.7.tgz#c47b07a41b95da0907d026b5dd894d98de7d2f2d" - integrity sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw== - dependencies: - "@babel/code-frame" "^7.29.7" - "@babel/generator" "^7.29.7" - "@babel/helper-globals" "^7.29.7" - "@babel/parser" "^7.29.7" - "@babel/template" "^7.29.7" - "@babel/types" "^7.29.7" - debug "^4.3.1" - "@babel/types@^7.27.1": version "7.28.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.5.tgz#10fc405f60897c35f07e85493c932c7b5ca0592b" @@ -303,14 +114,6 @@ "@babel/helper-string-parser" "^7.27.1" "@babel/helper-validator-identifier" "^7.28.5" -"@babel/types@^7.29.7": - version "7.29.7" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.7.tgz#8005e31d82712ee7adaef6e23c63b71a62770a92" - integrity sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA== - dependencies: - "@babel/helper-string-parser" "^7.29.7" - "@babel/helper-validator-identifier" "^7.29.7" - "@codemirror/autocomplete@^6.0.0": version "6.20.3" resolved "https://registry.yarnpkg.com/@codemirror/autocomplete/-/autocomplete-6.20.3.tgz#696b740312c6a962e14567b49a3661b5924bc5ae" @@ -671,7 +474,7 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.3.tgz#c2b9d2e374ee62c586d3adbea87199b1d7a7a6ba" integrity sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ== -"@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5": +"@jridgewell/gen-mapping@^0.3.12": version "0.3.13" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f" integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== @@ -679,14 +482,6 @@ "@jridgewell/sourcemap-codec" "^1.5.0" "@jridgewell/trace-mapping" "^0.3.24" -"@jridgewell/remapping@^2.3.5": - version "2.3.5" - resolved "https://registry.yarnpkg.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1" - integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.24" - "@jridgewell/resolve-uri@^3.1.0": version "3.1.2" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" @@ -917,13 +712,6 @@ resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.1.3.tgz#f06c09db5c8ad4b6904b4d406c9b6f17f392b5c6" integrity sha512-OL4OMk7UPXOeVGGd3qo5zJyPIljf4AFgk5QAkPPS+OoLuOOozhuaQGC18MxVTnw/06q93gShAJzlwnSCY9YtqA== -"@rolldown/plugin-babel@^0.2.2": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@rolldown/plugin-babel/-/plugin-babel-0.2.3.tgz#94f2c897285160aab1a7cfe827cbca1b7233e4f4" - integrity sha512-+zEk16yGlz1F9STiRr6uG9hmIXb6nprjLczV/htGptYuLoCuxb+itZ03RKCEeOhBpDDd1NU7qF6x1VLMUp62bw== - dependencies: - picomatch "^4.0.4" - "@rolldown/pluginutils@^1.0.0", "@rolldown/pluginutils@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz#e3fcee093fbb5ce765e1ad088ff4de2889f6f9be" @@ -1346,11 +1134,6 @@ balanced-match@^4.0.2: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-4.0.4.tgz#bfb10662feed8196a2c62e7c68e17720c274179a" integrity sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA== -baseline-browser-mapping@^2.10.38: - version "2.10.40" - resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.40.tgz#f372c8eb36ff4ad0b5e7ae467014abef124554ba" - integrity sha512-BSSLZ9/Cjjv7Gtj5B68ZzXcXUg8iOf3fme+FCuh8rC/Go+Kmh8cox7M3A8dolou16s64QjLPOSdngh7GxXvkSw== - brace-expansion@^5.0.5: version "5.0.7" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.7.tgz#1b0e46965b479dad65af737b4a02790a05498337" @@ -1358,17 +1141,6 @@ brace-expansion@^5.0.5: dependencies: balanced-match "^4.0.2" -browserslist@^4.24.0: - version "4.28.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.4.tgz#dd8b8167a32845ff5f8cd6ce13f5abba16cd04c9" - integrity sha512-MTc8i/x9jBQd1iMw2CFGS+rwMa07eYjLR0CCTLDACl9xhxy+nIs3KeML/biicXtk9JrZ6dnnTatmc7ErPXIxqw== - dependencies: - baseline-browser-mapping "^2.10.38" - caniuse-lite "^1.0.30001799" - electron-to-chromium "^1.5.376" - node-releases "^2.0.48" - update-browserslist-db "^1.2.3" - call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" @@ -1382,11 +1154,6 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -caniuse-lite@^1.0.30001799: - version "1.0.30001800" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001800.tgz#b896c773e1c39400809415162bb5320371291b36" - integrity sha512-MMHtuAz9Ys840zAY5F4k6fV5GaivZ9sPk+nz0mY+GYVzRBnYkN0mpqkSR92oWRQ19yQWo4HvBV/FnC16AJX8MA== - ccount@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" @@ -1514,7 +1281,7 @@ csstype@^3.0.2, csstype@^3.2.2, csstype@^3.2.3: resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.2.3.tgz#ec48c0f3e993e50648c86da559e2610995cf989a" integrity sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ== -debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.3.1, debug@^4.3.2, debug@^4.4.3: +debug@4, debug@^4.0.0, debug@^4.3.1, debug@^4.3.2, debug@^4.4.3: version "4.4.3" resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== @@ -1582,11 +1349,6 @@ dunder-proto@^1.0.1: es-errors "^1.3.0" gopd "^1.2.0" -electron-to-chromium@^1.5.376: - version "1.5.383" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.383.tgz#5bd22306497d454103b289b0fef97260c56d0855" - integrity sha512-I2484/KkAvl8lm9VyjH2JnbOIV0d/UCqT7gbzs6l+o6Vmn9wgB66uVcKX+Vk6HrXtY6fbWTOEXuv8waDTuFNCw== - emoji-regex@^10.3.0: version "10.6.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.6.0.tgz#bf3d6e8f7f8fd22a65d9703475bc0147357a6b0d" @@ -1631,7 +1393,7 @@ es-set-tostringtag@^2.1.0: has-tostringtag "^1.0.2" hasown "^2.0.2" -escalade@^3.1.1, escalade@^3.2.0: +escalade@^3.1.1: version "3.2.0" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== @@ -1841,11 +1603,6 @@ function-bind@^1.1.2: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" @@ -2106,11 +1863,6 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== -json5@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - keyv@^4.5.4: version "4.5.4" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" @@ -2239,13 +1991,6 @@ lru-cache@^11.0.0: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.5.1.tgz#f3daa3540847b9737ebc02499ddb36765e54db4a" integrity sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A== -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - magic-string@^0.30.21: version "0.30.21" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.21.tgz#56763ec09a0fa8091df27879fd94d19078c00d91" @@ -2787,11 +2532,6 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -node-releases@^2.0.48: - version "2.0.50" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.50.tgz#597197a852071ce42fc2550e58e223242bcba969" - integrity sha512-J6l92tKHX6w8Jy5nO1Vuc01NoIiRGi/d6qBKVxh+IQ8Cr3b6HbVNfKiF8ZpFKufTwpwxMmce2W3iQZ861ZRyTg== - notifyjs@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/notifyjs/-/notifyjs-3.0.0.tgz#7418c9d6c0533aebaa643414214af53b521d1b28" @@ -3157,11 +2897,6 @@ scheduler@^0.27.0: resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.27.0.tgz#0c4ef82d67d1e5c1e359e8fc76d3a87f045fe5bd" integrity sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q== -semver@^6.3.1: - version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - semver@^7.7.3: version "7.8.5" resolved "https://registry.yarnpkg.com/semver/-/semver-7.8.5.tgz#39b646037dd50c14fb451e7e4cac58ed8b863f69" @@ -3402,14 +3137,6 @@ unist-util-visit@^5.0.0: unist-util-is "^6.0.0" unist-util-visit-parents "^6.0.0" -update-browserslist-db@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz#64d76db58713136acbeb4c49114366cc6cc2e80d" - integrity sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w== - dependencies: - escalade "^3.2.0" - picocolors "^1.1.1" - uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -3537,11 +3264,6 @@ y18n@^5.0.5: resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - yaml@^1.10.0: version "1.10.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"