From 1a99305aa0e8bb73f45042c600f81bea9b195ad7 Mon Sep 17 00:00:00 2001 From: Chubby Granny Chaser Date: Tue, 14 Oct 2025 13:15:09 +0100 Subject: [PATCH 01/18] feat: removing dexie --- package.json | 1 - src/locales/en/translation.json | 1 + src/locales/es/translation.json | 1 + src/locales/pt-BR/translation.json | 1 + src/locales/pt-PT/translation.json | 1 + src/locales/ru/translation.json | 1 + .../download-sources/add-download-source.ts | 42 + .../check-download-source-exists.ts | 17 + .../create-download-sources.ts | 13 - .../delete-all-download-sources.ts | 10 + .../delete-download-source.ts | 25 + .../get-download-sources-list.ts | 19 + src/main/events/download-sources/helpers.ts | 171 + .../download-sources/put-download-source.ts | 17 - .../sync-download-sources-from-api.ts | 26 + .../download-sources/sync-download-sources.ts | 267 + .../update-missing-fingerprints.ts | 67 + .../validate-download-source.ts | 32 + src/main/events/index.ts | 11 +- .../events/library/cleanup-unused-assets.ts | 2 - .../events/library/copy-custom-game-asset.ts | 6 - src/main/events/repacks/get-all-repacks.ts | 16 + src/main/level/sublevels/download-sources.ts | 22 + src/main/level/sublevels/index.ts | 2 + src/main/level/sublevels/keys.ts | 2 + src/main/level/sublevels/repacks.ts | 22 + src/main/services/hydra-api.ts | 6 + src/preload/index.ts | 19 +- src/renderer/src/app.tsx | 66 +- .../src/components/game-card/game-card.tsx | 7 +- .../components/star-rating/star-rating.tsx | 73 +- src/renderer/src/declaration.d.ts | 18 +- src/renderer/src/dexie.ts | 27 - .../src/features/download-sources-slice.ts | 21 + src/renderer/src/features/index.ts | 1 + src/renderer/src/hooks/use-repacks.ts | 18 +- .../src/pages/catalogue/catalogue.tsx | 30 +- .../game-details/modals/edit-game-modal.tsx | 339 +- .../game-details/modals/repacks-modal.tsx | 4 +- .../sidebar/how-long-to-beat-section.tsx | 2 +- .../pages/game-details/sidebar/sidebar.tsx | 54 +- .../settings/add-download-source-modal.scss | 14 + .../settings/add-download-source-modal.tsx | 83 +- .../settings/settings-download-sources.tsx | 180 +- src/renderer/src/store.ts | 2 + .../src/workers/download-sources.worker.ts | 238 - src/renderer/src/workers/index.ts | 3 - src/types/index.ts | 2 +- yarn.lock | 5150 +++++++---------- 49 files changed, 3346 insertions(+), 3806 deletions(-) create mode 100644 src/main/events/download-sources/add-download-source.ts create mode 100644 src/main/events/download-sources/check-download-source-exists.ts delete mode 100644 src/main/events/download-sources/create-download-sources.ts create mode 100644 src/main/events/download-sources/delete-all-download-sources.ts create mode 100644 src/main/events/download-sources/delete-download-source.ts create mode 100644 src/main/events/download-sources/get-download-sources-list.ts create mode 100644 src/main/events/download-sources/helpers.ts delete mode 100644 src/main/events/download-sources/put-download-source.ts create mode 100644 src/main/events/download-sources/sync-download-sources-from-api.ts create mode 100644 src/main/events/download-sources/sync-download-sources.ts create mode 100644 src/main/events/download-sources/update-missing-fingerprints.ts create mode 100644 src/main/events/download-sources/validate-download-source.ts create mode 100644 src/main/events/repacks/get-all-repacks.ts create mode 100644 src/main/level/sublevels/download-sources.ts create mode 100644 src/main/level/sublevels/repacks.ts delete mode 100644 src/renderer/src/dexie.ts create mode 100644 src/renderer/src/features/download-sources-slice.ts delete mode 100644 src/renderer/src/workers/download-sources.worker.ts delete mode 100644 src/renderer/src/workers/index.ts diff --git a/package.json b/package.json index e0eb1591..ad479c7f 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,6 @@ "crc": "^4.3.2", "create-desktop-shortcuts": "^1.11.1", "date-fns": "^3.6.0", - "dexie": "^4.0.10", "electron-log": "^5.4.3", "electron-updater": "^6.6.2", "embla-carousel-autoplay": "^8.6.0", diff --git a/src/locales/en/translation.json b/src/locales/en/translation.json index daf6feed..c91a1296 100755 --- a/src/locales/en/translation.json +++ b/src/locales/en/translation.json @@ -447,6 +447,7 @@ "found_download_option_one": "Found {{countFormatted}} download option", "found_download_option_other": "Found {{countFormatted}} download options", "import": "Import", + "importing": "Importing...", "public": "Public", "private": "Private", "friends_only": "Friends only", diff --git a/src/locales/es/translation.json b/src/locales/es/translation.json index 226f77af..de9ccfdb 100644 --- a/src/locales/es/translation.json +++ b/src/locales/es/translation.json @@ -376,6 +376,7 @@ "found_download_option_one": "Encontrada {{countFormatted}} fuente de descarga", "found_download_option_other": "Encontradas {{countFormatted}} opciones de descargas", "import": "Importar", + "importing": "Importando...", "public": "Público", "private": "Privado", "friends_only": "Sólo amigos", diff --git a/src/locales/pt-BR/translation.json b/src/locales/pt-BR/translation.json index 91a10149..ef34ee6f 100755 --- a/src/locales/pt-BR/translation.json +++ b/src/locales/pt-BR/translation.json @@ -435,6 +435,7 @@ "found_download_option_one": "{{countFormatted}} opção de download encontrada", "found_download_option_other": "{{countFormatted}} opções de download encontradas", "import": "Importar", + "importing": "Importando...", "privacy": "Privacidade", "private": "Privado", "friends_only": "Apenas amigos", diff --git a/src/locales/pt-PT/translation.json b/src/locales/pt-PT/translation.json index d36e3083..7c244b6e 100644 --- a/src/locales/pt-PT/translation.json +++ b/src/locales/pt-PT/translation.json @@ -267,6 +267,7 @@ "found_download_option_one": "{{countFormatted}} opção de transferência encontrada", "found_download_option_other": "{{countFormatted}} opções de transferência encontradas", "import": "Importar", + "importing": "A importar...", "privacy": "Privacidade", "private": "Privado", "friends_only": "Apenas amigos", diff --git a/src/locales/ru/translation.json b/src/locales/ru/translation.json index f3b25ee4..0dd55837 100644 --- a/src/locales/ru/translation.json +++ b/src/locales/ru/translation.json @@ -446,6 +446,7 @@ "found_download_option_one": "Найден {{countFormatted}} вариант загрузки", "found_download_option_other": "Найдено {{countFormatted}} вариантов загрузки", "import": "Импортировать", + "importing": "Импортируется...", "public": "Публичный", "private": "Частный", "friends_only": "Только для друзей", diff --git a/src/main/events/download-sources/add-download-source.ts b/src/main/events/download-sources/add-download-source.ts new file mode 100644 index 00000000..81d40cd7 --- /dev/null +++ b/src/main/events/download-sources/add-download-source.ts @@ -0,0 +1,42 @@ +import { registerEvent } from "../register-event"; +import { downloadSourcesSublevel } from "@main/level"; +import { HydraApi } from "@main/services"; +import { importDownloadSourceToLocal } from "./helpers"; + +const addDownloadSource = async ( + _event: Electron.IpcMainInvokeEvent, + url: string +) => { + const result = await importDownloadSourceToLocal(url, true); + if (!result) { + throw new Error("Failed to import download source"); + } + + await HydraApi.post("/profile/download-sources", { + urls: [url], + }); + + const { fingerprint } = await HydraApi.put<{ fingerprint: string }>( + "/download-sources", + { + objectIds: result.objectIds, + }, + { needsAuth: false } + ); + + const updatedSource = await downloadSourcesSublevel.get(`${result.id}`); + if (updatedSource) { + await downloadSourcesSublevel.put(`${result.id}`, { + ...updatedSource, + fingerprint, + updatedAt: new Date(), + }); + } + + return { + ...result, + fingerprint, + }; +}; + +registerEvent("addDownloadSource", addDownloadSource); diff --git a/src/main/events/download-sources/check-download-source-exists.ts b/src/main/events/download-sources/check-download-source-exists.ts new file mode 100644 index 00000000..36dd88ce --- /dev/null +++ b/src/main/events/download-sources/check-download-source-exists.ts @@ -0,0 +1,17 @@ +import { registerEvent } from "../register-event"; +import { downloadSourcesSublevel } from "@main/level"; + +const checkDownloadSourceExists = async ( + _event: Electron.IpcMainInvokeEvent, + url: string +): Promise => { + for await (const [, source] of downloadSourcesSublevel.iterator()) { + if (source.url === url) { + return true; + } + } + + return false; +}; + +registerEvent("checkDownloadSourceExists", checkDownloadSourceExists); diff --git a/src/main/events/download-sources/create-download-sources.ts b/src/main/events/download-sources/create-download-sources.ts deleted file mode 100644 index cf1f8f51..00000000 --- a/src/main/events/download-sources/create-download-sources.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { HydraApi } from "@main/services"; -import { registerEvent } from "../register-event"; - -const createDownloadSources = async ( - _event: Electron.IpcMainInvokeEvent, - urls: string[] -) => { - await HydraApi.post("/profile/download-sources", { - urls, - }); -}; - -registerEvent("createDownloadSources", createDownloadSources); diff --git a/src/main/events/download-sources/delete-all-download-sources.ts b/src/main/events/download-sources/delete-all-download-sources.ts new file mode 100644 index 00000000..ec333e20 --- /dev/null +++ b/src/main/events/download-sources/delete-all-download-sources.ts @@ -0,0 +1,10 @@ +import { registerEvent } from "../register-event"; +import { downloadSourcesSublevel, repacksSublevel } from "@main/level"; + +const deleteAllDownloadSources = async ( + _event: Electron.IpcMainInvokeEvent +) => { + await Promise.all([repacksSublevel.clear(), downloadSourcesSublevel.clear()]); +}; + +registerEvent("deleteAllDownloadSources", deleteAllDownloadSources); diff --git a/src/main/events/download-sources/delete-download-source.ts b/src/main/events/download-sources/delete-download-source.ts new file mode 100644 index 00000000..d6fc4fda --- /dev/null +++ b/src/main/events/download-sources/delete-download-source.ts @@ -0,0 +1,25 @@ +import { registerEvent } from "../register-event"; +import { downloadSourcesSublevel, repacksSublevel } from "@main/level"; + +const deleteDownloadSource = async ( + _event: Electron.IpcMainInvokeEvent, + id: number +) => { + const repacksToDelete: string[] = []; + + for await (const [key, repack] of repacksSublevel.iterator()) { + if (repack.downloadSourceId === id) { + repacksToDelete.push(key); + } + } + + const batch = repacksSublevel.batch(); + for (const key of repacksToDelete) { + batch.del(key); + } + await batch.write(); + + await downloadSourcesSublevel.del(`${id}`); +}; + +registerEvent("deleteDownloadSource", deleteDownloadSource); diff --git a/src/main/events/download-sources/get-download-sources-list.ts b/src/main/events/download-sources/get-download-sources-list.ts new file mode 100644 index 00000000..db26ad01 --- /dev/null +++ b/src/main/events/download-sources/get-download-sources-list.ts @@ -0,0 +1,19 @@ +import { registerEvent } from "../register-event"; +import { downloadSourcesSublevel, DownloadSource } from "@main/level"; + +const getDownloadSourcesList = async (_event: Electron.IpcMainInvokeEvent) => { + const sources: DownloadSource[] = []; + + for await (const [, source] of downloadSourcesSublevel.iterator()) { + sources.push(source); + } + + // Sort by createdAt descending + sources.sort( + (a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime() + ); + + return sources; +}; + +registerEvent("getDownloadSourcesList", getDownloadSourcesList); diff --git a/src/main/events/download-sources/helpers.ts b/src/main/events/download-sources/helpers.ts new file mode 100644 index 00000000..7bd8023c --- /dev/null +++ b/src/main/events/download-sources/helpers.ts @@ -0,0 +1,171 @@ +import axios from "axios"; +import { z } from "zod"; +import { downloadSourcesSublevel, repacksSublevel } from "@main/level"; +import { DownloadSourceStatus } from "@shared"; + +const downloadSourceSchema = z.object({ + name: z.string().max(255), + downloads: z.array( + z.object({ + title: z.string().max(255), + uris: z.array(z.string()), + uploadDate: z.string().max(255), + fileSize: z.string().max(255), + }) + ), +}); + +type SteamGamesByLetter = Record; + +const formatName = (name: string) => { + return name + .normalize("NFD") + .replace(/[\u0300-\u036f]/g, "") + .toLowerCase() + .replace(/[^a-z0-9]/g, ""); +}; + +const formatRepackName = (name: string) => { + return formatName(name.replace("[DL]", "")); +}; + +export const checkUrlExists = async (url: string): Promise => { + for await (const [, source] of downloadSourcesSublevel.iterator()) { + if (source.url === url) { + return true; + } + } + return false; +}; + +const getSteamGames = async () => { + const response = await axios.get( + `${import.meta.env.MAIN_VITE_EXTERNAL_RESOURCES_URL}/steam-games-by-letter.json` + ); + + return response.data; +}; + +type SublevelIterator = AsyncIterable<[string, { id: number }]>; + +interface SublevelWithId { + iterator: () => SublevelIterator; +} + +const getNextId = async (sublevel: SublevelWithId): Promise => { + let maxId = 0; + for await (const [, value] of sublevel.iterator()) { + if (value.id > maxId) { + maxId = value.id; + } + } + return maxId + 1; +}; + +const addNewDownloads = async ( + downloadSource: { id: number; name: string }, + downloads: z.infer["downloads"], + steamGames: SteamGamesByLetter +) => { + const now = new Date(); + const objectIdsOnSource = new Set(); + + let nextRepackId = await getNextId(repacksSublevel); + + for (const download of downloads) { + const formattedTitle = formatRepackName(download.title); + const [firstLetter] = formattedTitle; + const games = steamGames[firstLetter] || []; + + const gamesInSteam = games.filter((game) => + formattedTitle.startsWith(formatName(game.name)) + ); + + if (gamesInSteam.length === 0) continue; + + for (const game of gamesInSteam) { + objectIdsOnSource.add(String(game.id)); + } + + const repack = { + id: nextRepackId++, + objectIds: gamesInSteam.map((game) => String(game.id)), + title: download.title, + uris: download.uris, + fileSize: download.fileSize, + repacker: downloadSource.name, + uploadDate: download.uploadDate, + downloadSourceId: downloadSource.id, + createdAt: now, + updatedAt: now, + }; + + await repacksSublevel.put(`${repack.id}`, repack); + } + + const existingSource = await downloadSourcesSublevel.get( + `${downloadSource.id}` + ); + if (existingSource) { + await downloadSourcesSublevel.put(`${downloadSource.id}`, { + ...existingSource, + objectIds: Array.from(objectIdsOnSource), + }); + } + + return Array.from(objectIdsOnSource); +}; + +export const importDownloadSourceToLocal = async ( + url: string, + throwOnDuplicate = false +) => { + const urlExists = await checkUrlExists(url); + if (urlExists) { + if (throwOnDuplicate) { + throw new Error("Download source with this URL already exists"); + } + return null; + } + + const response = await axios.get>(url); + + const steamGames = await getSteamGames(); + + const now = new Date(); + + const urlExistsBeforeInsert = await checkUrlExists(url); + if (urlExistsBeforeInsert) { + if (throwOnDuplicate) { + throw new Error("Download source with this URL already exists"); + } + return null; + } + + const nextId = await getNextId(downloadSourcesSublevel); + + const downloadSource = { + id: nextId, + url, + name: response.data.name, + etag: response.headers["etag"] || null, + status: DownloadSourceStatus.UpToDate, + downloadCount: response.data.downloads.length, + objectIds: [], + createdAt: now, + updatedAt: now, + }; + + await downloadSourcesSublevel.put(`${downloadSource.id}`, downloadSource); + + const objectIds = await addNewDownloads( + downloadSource, + response.data.downloads, + steamGames + ); + + return { + ...downloadSource, + objectIds, + }; +}; diff --git a/src/main/events/download-sources/put-download-source.ts b/src/main/events/download-sources/put-download-source.ts deleted file mode 100644 index 72297059..00000000 --- a/src/main/events/download-sources/put-download-source.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { HydraApi } from "@main/services"; -import { registerEvent } from "../register-event"; - -const putDownloadSource = async ( - _event: Electron.IpcMainInvokeEvent, - objectIds: string[] -) => { - return HydraApi.put<{ fingerprint: string }>( - "/download-sources", - { - objectIds, - }, - { needsAuth: false } - ); -}; - -registerEvent("putDownloadSource", putDownloadSource); diff --git a/src/main/events/download-sources/sync-download-sources-from-api.ts b/src/main/events/download-sources/sync-download-sources-from-api.ts new file mode 100644 index 00000000..21b5a097 --- /dev/null +++ b/src/main/events/download-sources/sync-download-sources-from-api.ts @@ -0,0 +1,26 @@ +import { HydraApi } from "@main/services"; +import { downloadSourcesSublevel } from "@main/level"; +import { importDownloadSourceToLocal } from "./helpers"; + +export const syncDownloadSourcesFromApi = async () => { + try { + const apiSources = await HydraApi.get< + { url: string; createdAt: string; updatedAt: string }[] + >("/profile/download-sources"); + + const localSources: { url: string }[] = []; + for await (const [, source] of downloadSourcesSublevel.iterator()) { + localSources.push(source); + } + + const localUrls = new Set(localSources.map((s) => s.url)); + + for (const apiSource of apiSources) { + if (!localUrls.has(apiSource.url)) { + await importDownloadSourceToLocal(apiSource.url, false); + } + } + } catch (error) { + console.error("Failed to sync download sources from API:", error); + } +}; diff --git a/src/main/events/download-sources/sync-download-sources.ts b/src/main/events/download-sources/sync-download-sources.ts new file mode 100644 index 00000000..8611aca9 --- /dev/null +++ b/src/main/events/download-sources/sync-download-sources.ts @@ -0,0 +1,267 @@ +import { registerEvent } from "../register-event"; +import axios, { AxiosError } from "axios"; +import { z } from "zod"; +import { downloadSourcesSublevel, repacksSublevel } from "@main/level"; +import { DownloadSourceStatus } from "@shared"; + +const downloadSourceSchema = z.object({ + name: z.string().max(255), + downloads: z.array( + z.object({ + title: z.string().max(255), + uris: z.array(z.string()), + uploadDate: z.string().max(255), + fileSize: z.string().max(255), + }) + ), +}); + +type SteamGamesByLetter = Record; + +const formatName = (name: string) => { + return name + .normalize("NFD") + .replace(/[\u0300-\u036f]/g, "") + .toLowerCase() + .replace(/[^a-z0-9]/g, ""); +}; + +const formatRepackName = (name: string) => { + return formatName(name.replace("[DL]", "")); +}; + +const checkUrlExists = async (url: string): Promise => { + for await (const [, source] of downloadSourcesSublevel.iterator()) { + if (source.url === url) { + return true; + } + } + return false; +}; + +const getSteamGames = async () => { + const response = await axios.get( + `${import.meta.env.MAIN_VITE_EXTERNAL_RESOURCES_URL}/steam-games-by-letter.json` + ); + + return response.data; +}; + +type SublevelIterator = AsyncIterable<[string, { id: number }]>; + +interface SublevelWithId { + iterator: () => SublevelIterator; +} + +const getNextId = async (sublevel: SublevelWithId): Promise => { + let maxId = 0; + for await (const [, value] of sublevel.iterator()) { + if (value.id > maxId) { + maxId = value.id; + } + } + return maxId + 1; +}; + +const addNewDownloads = async ( + downloadSource: { id: number; name: string }, + downloads: z.infer["downloads"], + steamGames: SteamGamesByLetter +) => { + const now = new Date(); + const objectIdsOnSource = new Set(); + + let nextRepackId = await getNextId(repacksSublevel); + + for (const download of downloads) { + const formattedTitle = formatRepackName(download.title); + const [firstLetter] = formattedTitle; + const games = steamGames[firstLetter] || []; + + const gamesInSteam = games.filter((game) => + formattedTitle.startsWith(formatName(game.name)) + ); + + if (gamesInSteam.length === 0) continue; + + for (const game of gamesInSteam) { + objectIdsOnSource.add(String(game.id)); + } + + const repack = { + id: nextRepackId++, + objectIds: gamesInSteam.map((game) => String(game.id)), + title: download.title, + uris: download.uris, + fileSize: download.fileSize, + repacker: downloadSource.name, + uploadDate: download.uploadDate, + downloadSourceId: downloadSource.id, + createdAt: now, + updatedAt: now, + }; + + await repacksSublevel.put(`${repack.id}`, repack); + } + + const existingSource = await downloadSourcesSublevel.get( + `${downloadSource.id}` + ); + if (existingSource) { + await downloadSourcesSublevel.put(`${downloadSource.id}`, { + ...existingSource, + objectIds: Array.from(objectIdsOnSource), + }); + } +}; + +const deleteDownloadSource = async (id: number) => { + const repacksToDelete: string[] = []; + + for await (const [key, repack] of repacksSublevel.iterator()) { + if (repack.downloadSourceId === id) { + repacksToDelete.push(key); + } + } + + const batch = repacksSublevel.batch(); + for (const key of repacksToDelete) { + batch.del(key); + } + await batch.write(); + + await downloadSourcesSublevel.del(`${id}`); +}; + +const importDownloadSource = async (url: string) => { + const urlExists = await checkUrlExists(url); + if (urlExists) { + return; + } + + const response = await axios.get>(url); + + const steamGames = await getSteamGames(); + + const now = new Date(); + + const urlExistsBeforeInsert = await checkUrlExists(url); + if (urlExistsBeforeInsert) { + return; + } + + const nextId = await getNextId(downloadSourcesSublevel); + + const downloadSource = { + id: nextId, + url, + name: response.data.name, + etag: response.headers["etag"] || null, + status: DownloadSourceStatus.UpToDate, + downloadCount: response.data.downloads.length, + objectIds: [], + createdAt: now, + updatedAt: now, + }; + + await downloadSourcesSublevel.put(`${downloadSource.id}`, downloadSource); + + await addNewDownloads(downloadSource, response.data.downloads, steamGames); +}; + +const syncDownloadSources = async ( + _event: Electron.IpcMainInvokeEvent +): Promise => { + let newRepacksCount = 0; + + try { + const downloadSources: Array<{ + id: number; + url: string; + name: string; + etag: string | null; + status: number; + downloadCount: number; + objectIds: string[]; + fingerprint?: string; + createdAt: Date; + updatedAt: Date; + }> = []; + for await (const [, source] of downloadSourcesSublevel.iterator()) { + downloadSources.push(source); + } + + const existingRepacks: Array<{ + id: number; + title: string; + uris: string[]; + repacker: string; + fileSize: string | null; + objectIds: string[]; + uploadDate: Date | string | null; + downloadSourceId: number; + createdAt: Date; + updatedAt: Date; + }> = []; + for await (const [, repack] of repacksSublevel.iterator()) { + existingRepacks.push(repack); + } + + if (downloadSources.some((source) => !source.fingerprint)) { + await Promise.all( + downloadSources.map(async (source) => { + await deleteDownloadSource(source.id); + await importDownloadSource(source.url); + }) + ); + } else { + for (const downloadSource of downloadSources) { + const headers: Record = {}; + + if (downloadSource.etag) { + headers["If-None-Match"] = downloadSource.etag; + } + + try { + const response = await axios.get(downloadSource.url, { + headers, + }); + + const source = downloadSourceSchema.parse(response.data); + const steamGames = await getSteamGames(); + + const repacks = source.downloads.filter( + (download) => + !existingRepacks.some((repack) => repack.title === download.title) + ); + + await downloadSourcesSublevel.put(`${downloadSource.id}`, { + ...downloadSource, + etag: response.headers["etag"] || null, + downloadCount: source.downloads.length, + status: DownloadSourceStatus.UpToDate, + }); + + await addNewDownloads(downloadSource, repacks, steamGames); + + newRepacksCount += repacks.length; + } catch (err: unknown) { + const isNotModified = (err as AxiosError).response?.status === 304; + + await downloadSourcesSublevel.put(`${downloadSource.id}`, { + ...downloadSource, + status: isNotModified + ? DownloadSourceStatus.UpToDate + : DownloadSourceStatus.Errored, + }); + } + } + } + + return newRepacksCount; + } catch (err) { + return -1; + } +}; + +registerEvent("syncDownloadSources", syncDownloadSources); diff --git a/src/main/events/download-sources/update-missing-fingerprints.ts b/src/main/events/download-sources/update-missing-fingerprints.ts new file mode 100644 index 00000000..ac748779 --- /dev/null +++ b/src/main/events/download-sources/update-missing-fingerprints.ts @@ -0,0 +1,67 @@ +import { registerEvent } from "../register-event"; +import { downloadSourcesSublevel } from "@main/level"; +import { HydraApi } from "@main/services"; + +const updateMissingFingerprints = async ( + _event: Electron.IpcMainInvokeEvent +): Promise => { + const sourcesNeedingFingerprints: Array<{ + id: number; + objectIds: string[]; + }> = []; + + for await (const [, source] of downloadSourcesSublevel.iterator()) { + if ( + !source.fingerprint && + source.objectIds && + source.objectIds.length > 0 + ) { + sourcesNeedingFingerprints.push({ + id: source.id, + objectIds: source.objectIds, + }); + } + } + + if (sourcesNeedingFingerprints.length === 0) { + return 0; + } + + console.log( + `Updating fingerprints for ${sourcesNeedingFingerprints.length} sources` + ); + + await Promise.all( + sourcesNeedingFingerprints.map(async (source) => { + try { + const { fingerprint } = await HydraApi.put<{ fingerprint: string }>( + "/download-sources", + { + objectIds: source.objectIds, + }, + { needsAuth: false } + ); + + const existingSource = await downloadSourcesSublevel.get( + `${source.id}` + ); + if (existingSource) { + await downloadSourcesSublevel.put(`${source.id}`, { + ...existingSource, + fingerprint, + updatedAt: new Date(), + }); + } + } catch (error) { + console.error( + `Failed to update fingerprint for source ${source.id}:`, + error + ); + } + }) + ); + + return sourcesNeedingFingerprints.length; +}; + +registerEvent("updateMissingFingerprints", updateMissingFingerprints); diff --git a/src/main/events/download-sources/validate-download-source.ts b/src/main/events/download-sources/validate-download-source.ts new file mode 100644 index 00000000..2bc86df7 --- /dev/null +++ b/src/main/events/download-sources/validate-download-source.ts @@ -0,0 +1,32 @@ +import { registerEvent } from "../register-event"; +import axios from "axios"; +import { z } from "zod"; + +const downloadSourceSchema = z.object({ + name: z.string().max(255), + downloads: z.array( + z.object({ + title: z.string().max(255), + uris: z.array(z.string()), + uploadDate: z.string().max(255), + fileSize: z.string().max(255), + }) + ), +}); + +const validateDownloadSource = async ( + _event: Electron.IpcMainInvokeEvent, + url: string +) => { + const response = await axios.get>(url); + + const { name } = downloadSourceSchema.parse(response.data); + + return { + name, + etag: response.headers["etag"] || null, + downloadCount: response.data.downloads.length, + }; +}; + +registerEvent("validateDownloadSource", validateDownloadSource); diff --git a/src/main/events/index.ts b/src/main/events/index.ts index b690e8a3..26c3b4bd 100644 --- a/src/main/events/index.ts +++ b/src/main/events/index.ts @@ -63,7 +63,15 @@ import "./autoupdater/restart-and-install-update"; import "./user-preferences/authenticate-real-debrid"; import "./user-preferences/authenticate-all-debrid"; import "./user-preferences/authenticate-torbox"; -import "./download-sources/put-download-source"; +import "./download-sources/add-download-source"; +import "./download-sources/update-missing-fingerprints"; +import "./download-sources/delete-download-source"; +import "./download-sources/delete-all-download-sources"; +import "./download-sources/validate-download-source"; +import "./download-sources/sync-download-sources"; +import "./download-sources/get-download-sources-list"; +import "./download-sources/check-download-source-exists"; +import "./repacks/get-all-repacks"; import "./auth/sign-out"; import "./auth/open-auth-window"; import "./auth/get-session-hash"; @@ -91,7 +99,6 @@ import "./themes/get-custom-theme-by-id"; import "./themes/get-active-custom-theme"; import "./themes/close-editor-window"; import "./themes/toggle-custom-theme"; -import "./download-sources/create-download-sources"; import "./download-sources/remove-download-source"; import "./download-sources/get-download-sources"; import { isPortableVersion } from "@main/helpers"; diff --git a/src/main/events/library/cleanup-unused-assets.ts b/src/main/events/library/cleanup-unused-assets.ts index 22490c07..d1d77e9f 100644 --- a/src/main/events/library/cleanup-unused-assets.ts +++ b/src/main/events/library/cleanup-unused-assets.ts @@ -19,7 +19,6 @@ const getAllCustomGameAssets = async (): Promise => { }; const getUsedAssetPaths = async (): Promise> => { - // Get all custom games from the level database const { gamesSublevel } = await import("@main/level"); const allGames = await gamesSublevel.iterator().all(); @@ -30,7 +29,6 @@ const getUsedAssetPaths = async (): Promise> => { const usedPaths = new Set(); customGames.forEach((game) => { - // Extract file paths from local URLs if (game.iconUrl?.startsWith("local:")) { usedPaths.add(game.iconUrl.replace("local:", "")); } diff --git a/src/main/events/library/copy-custom-game-asset.ts b/src/main/events/library/copy-custom-game-asset.ts index 07c3d6f7..aef74da9 100644 --- a/src/main/events/library/copy-custom-game-asset.ts +++ b/src/main/events/library/copy-custom-game-asset.ts @@ -13,29 +13,23 @@ const copyCustomGameAsset = async ( throw new Error("Source file does not exist"); } - // Ensure assets directory exists if (!fs.existsSync(ASSETS_PATH)) { fs.mkdirSync(ASSETS_PATH, { recursive: true }); } - // Create custom games assets subdirectory const customGamesAssetsPath = path.join(ASSETS_PATH, "custom-games"); if (!fs.existsSync(customGamesAssetsPath)) { fs.mkdirSync(customGamesAssetsPath, { recursive: true }); } - // Get file extension const fileExtension = path.extname(sourcePath); - // Generate unique filename const uniqueId = randomUUID(); const fileName = `${assetType}-${uniqueId}${fileExtension}`; const destinationPath = path.join(customGamesAssetsPath, fileName); - // Copy the file await fs.promises.copyFile(sourcePath, destinationPath); - // Return the local URL format return `local:${destinationPath}`; }; diff --git a/src/main/events/repacks/get-all-repacks.ts b/src/main/events/repacks/get-all-repacks.ts new file mode 100644 index 00000000..6eb83a39 --- /dev/null +++ b/src/main/events/repacks/get-all-repacks.ts @@ -0,0 +1,16 @@ +import { registerEvent } from "../register-event"; +import { repacksSublevel, GameRepack } from "@main/level"; + +const getAllRepacks = async (_event: Electron.IpcMainInvokeEvent) => { + const repacks: GameRepack[] = []; + + for await (const [, repack] of repacksSublevel.iterator()) { + if (Array.isArray(repack.objectIds)) { + repacks.push(repack); + } + } + + return repacks; +}; + +registerEvent("getAllRepacks", getAllRepacks); diff --git a/src/main/level/sublevels/download-sources.ts b/src/main/level/sublevels/download-sources.ts new file mode 100644 index 00000000..59104e3c --- /dev/null +++ b/src/main/level/sublevels/download-sources.ts @@ -0,0 +1,22 @@ +import { db } from "../level"; +import { levelKeys } from "./keys"; + +export interface DownloadSource { + id: number; + name: string; + url: string; + status: number; + objectIds: string[]; + downloadCount: number; + fingerprint?: string; + etag: string | null; + createdAt: Date; + updatedAt: Date; +} + +export const downloadSourcesSublevel = db.sublevel( + levelKeys.downloadSources, + { + valueEncoding: "json", + } +); diff --git a/src/main/level/sublevels/index.ts b/src/main/level/sublevels/index.ts index f78f09b8..7224fc64 100644 --- a/src/main/level/sublevels/index.ts +++ b/src/main/level/sublevels/index.ts @@ -6,3 +6,5 @@ export * from "./game-stats-cache"; export * from "./game-achievements"; export * from "./keys"; export * from "./themes"; +export * from "./download-sources"; +export * from "./repacks"; diff --git a/src/main/level/sublevels/keys.ts b/src/main/level/sublevels/keys.ts index bba35169..6faacd52 100644 --- a/src/main/level/sublevels/keys.ts +++ b/src/main/level/sublevels/keys.ts @@ -17,4 +17,6 @@ export const levelKeys = { language: "language", screenState: "screenState", rpcPassword: "rpcPassword", + downloadSources: "downloadSources", + repacks: "repacks", }; diff --git a/src/main/level/sublevels/repacks.ts b/src/main/level/sublevels/repacks.ts new file mode 100644 index 00000000..6257665b --- /dev/null +++ b/src/main/level/sublevels/repacks.ts @@ -0,0 +1,22 @@ +import { db } from "../level"; +import { levelKeys } from "./keys"; + +export interface GameRepack { + id: number; + title: string; + uris: string[]; + repacker: string; + fileSize: string | null; + objectIds: string[]; + uploadDate: Date | string | null; + downloadSourceId: number; + createdAt: Date; + updatedAt: Date; +} + +export const repacksSublevel = db.sublevel( + levelKeys.repacks, + { + valueEncoding: "json", + } +); diff --git a/src/main/services/hydra-api.ts b/src/main/services/hydra-api.ts index 138614b7..dd26e6f0 100644 --- a/src/main/services/hydra-api.ts +++ b/src/main/services/hydra-api.ts @@ -102,8 +102,14 @@ export class HydraApi { WindowManager.mainWindow.webContents.send("on-signin"); await clearGamesRemoteIds(); uploadGamesBatch(); + // WSClient.close(); // WSClient.connect(); + + const { syncDownloadSourcesFromApi } = await import( + "../events/download-sources/sync-download-sources-from-api" + ); + syncDownloadSourcesFromApi(); } } diff --git a/src/preload/index.ts b/src/preload/index.ts index 0368d661..527c4cd5 100644 --- a/src/preload/index.ts +++ b/src/preload/index.ts @@ -99,13 +99,24 @@ contextBridge.exposeInMainWorld("electron", { ipcRenderer.invoke("authenticateTorBox", apiToken), /* Download sources */ - putDownloadSource: (objectIds: string[]) => - ipcRenderer.invoke("putDownloadSource", objectIds), - createDownloadSources: (urls: string[]) => - ipcRenderer.invoke("createDownloadSources", urls), + addDownloadSource: (url: string) => + ipcRenderer.invoke("addDownloadSource", url), + updateMissingFingerprints: () => + ipcRenderer.invoke("updateMissingFingerprints"), removeDownloadSource: (url: string, removeAll?: boolean) => ipcRenderer.invoke("removeDownloadSource", url, removeAll), getDownloadSources: () => ipcRenderer.invoke("getDownloadSources"), + deleteDownloadSource: (id: number) => + ipcRenderer.invoke("deleteDownloadSource", id), + deleteAllDownloadSources: () => + ipcRenderer.invoke("deleteAllDownloadSources"), + validateDownloadSource: (url: string) => + ipcRenderer.invoke("validateDownloadSource", url), + syncDownloadSources: () => ipcRenderer.invoke("syncDownloadSources"), + getDownloadSourcesList: () => ipcRenderer.invoke("getDownloadSourcesList"), + checkDownloadSourceExists: (url: string) => + ipcRenderer.invoke("checkDownloadSourceExists", url), + getAllRepacks: () => ipcRenderer.invoke("getAllRepacks"), /* Library */ toggleAutomaticCloudSync: ( diff --git a/src/renderer/src/app.tsx b/src/renderer/src/app.tsx index 0a8ee1e2..74a2a97e 100644 --- a/src/renderer/src/app.tsx +++ b/src/renderer/src/app.tsx @@ -20,14 +20,12 @@ import { setUserDetails, setProfileBackground, setGameRunning, + setIsImportingSources, } from "@renderer/features"; import { useTranslation } from "react-i18next"; import { UserFriendModal } from "./pages/shared-modals/user-friend-modal"; -import { downloadSourcesWorker } from "./workers"; -import { downloadSourcesTable } from "./dexie"; import { useSubscription } from "./hooks/use-subscription"; import { HydraCloudModal } from "./pages/shared-modals/hydra-cloud/hydra-cloud-modal"; -import { generateUUID } from "./helpers"; import { injectCustomCss, removeCustomCss } from "./helpers"; import "./app.scss"; @@ -137,15 +135,6 @@ export function App() { }, [fetchUserDetails, updateUserDetails, dispatch]); const onSignIn = useCallback(() => { - window.electron.getDownloadSources().then((sources) => { - sources.forEach((source) => { - downloadSourcesWorker.postMessage([ - "IMPORT_DOWNLOAD_SOURCE", - source.url, - ]); - }); - }); - fetchUserDetails().then((response) => { if (response) { updateUserDetails(response); @@ -211,41 +200,34 @@ export function App() { }, [dispatch, draggingDisabled]); useEffect(() => { - updateRepacks(); + (async () => { + dispatch(setIsImportingSources(true)); - const id = generateUUID(); - const channel = new BroadcastChannel(`download_sources:sync:${id}`); + try { + // Initial repacks load + await updateRepacks(); - channel.onmessage = async (event: MessageEvent) => { - const newRepacksCount = event.data; - window.electron.publishNewRepacksNotification(newRepacksCount); - updateRepacks(); + // Sync all local sources (check for updates) + const newRepacksCount = await window.electron.syncDownloadSources(); - const downloadSources = await downloadSourcesTable.toArray(); + if (newRepacksCount > 0) { + window.electron.publishNewRepacksNotification(newRepacksCount); + } - await Promise.all( - downloadSources - .filter((source) => !source.fingerprint) - .map(async (downloadSource) => { - const { fingerprint } = await window.electron.putDownloadSource( - downloadSource.objectIds - ); + // Update fingerprints for sources that don't have them + await window.electron.updateMissingFingerprints(); - return downloadSourcesTable.update(downloadSource.id, { - fingerprint, - }); - }) - ); - - channel.close(); - }; - - downloadSourcesWorker.postMessage(["SYNC_DOWNLOAD_SOURCES", id]); - - return () => { - channel.close(); - }; - }, [updateRepacks]); + // Update repacks AFTER all syncing and fingerprint updates are complete + await updateRepacks(); + } catch (error) { + console.error("Error syncing download sources:", error); + // Still update repacks even if sync fails + await updateRepacks(); + } finally { + dispatch(setIsImportingSources(false)); + } + })(); + }, [updateRepacks, dispatch]); const loadAndApplyTheme = useCallback(async () => { const activeTheme = await window.electron.getActiveCustomTheme(); diff --git a/src/renderer/src/components/game-card/game-card.tsx b/src/renderer/src/components/game-card/game-card.tsx index 6e790500..5752ba19 100644 --- a/src/renderer/src/components/game-card/game-card.tsx +++ b/src/renderer/src/components/game-card/game-card.tsx @@ -109,12 +109,7 @@ export function GameCard({ game, ...props }: GameCardProps) {
- +
diff --git a/src/renderer/src/components/star-rating/star-rating.tsx b/src/renderer/src/components/star-rating/star-rating.tsx index 50d08afd..5a10b140 100644 --- a/src/renderer/src/components/star-rating/star-rating.tsx +++ b/src/renderer/src/components/star-rating/star-rating.tsx @@ -1,76 +1,31 @@ -import { StarIcon, StarFillIcon } from "@primer/octicons-react"; +import { StarFillIcon } from "@primer/octicons-react"; import "./star-rating.scss"; export interface StarRatingProps { rating: number | null; - maxStars?: number; size?: number; - showCalculating?: boolean; - calculatingText?: string; - hideIcon?: boolean; } -export function StarRating({ - rating, - maxStars = 5, - size = 12, - showCalculating = false, - calculatingText = "Calculating", - hideIcon = false, -}: Readonly) { - if (rating === null && showCalculating) { - return ( -
- {!hideIcon && } - {calculatingText} -
- ); - } - +export function StarRating({ rating, size = 12 }: Readonly) { if (rating === null || rating === undefined) { return ( -
- {!hideIcon && } - -
- ); - } - - const filledStars = Math.floor(rating); - const hasHalfStar = rating % 1 >= 0.5; - const emptyStars = maxStars - filledStars - (hasHalfStar ? 1 : 0); - - return ( -
- {Array.from({ length: filledStars }, (_, index) => ( +
- ))} - - {hasHalfStar && ( -
- - -
- )} - - {Array.from({ length: emptyStars }, (_, index) => ( - - ))} + +
+ ); + } + // Always use single star mode with numeric score + return ( +
+ {rating.toFixed(1)}
); diff --git a/src/renderer/src/declaration.d.ts b/src/renderer/src/declaration.d.ts index 7bbecd97..8de36342 100644 --- a/src/renderer/src/declaration.d.ts +++ b/src/renderer/src/declaration.d.ts @@ -31,6 +31,9 @@ import type { AchievementNotificationInfo, Game, DiskUsage, + DownloadSource, + DownloadSourceValidationResult, + GameRepack, } from "@types"; import type { AxiosProgressEvent } from "axios"; @@ -210,14 +213,21 @@ declare global { createSteamShortcut: (shop: GameShop, objectId: string) => Promise; /* Download sources */ - putDownloadSource: ( - objectIds: string[] - ) => Promise<{ fingerprint: string }>; - createDownloadSources: (urls: string[]) => Promise; + addDownloadSource: (url: string) => Promise; + updateMissingFingerprints: () => Promise; removeDownloadSource: (url: string, removeAll?: boolean) => Promise; getDownloadSources: () => Promise< Pick[] >; + deleteDownloadSource: (id: number) => Promise; + deleteAllDownloadSources: () => Promise; + validateDownloadSource: ( + url: string + ) => Promise; + syncDownloadSources: () => Promise; + getDownloadSourcesList: () => Promise; + checkDownloadSourceExists: (url: string) => Promise; + getAllRepacks: () => Promise; /* Hardware */ getDiskFreeSpace: (path: string) => Promise; diff --git a/src/renderer/src/dexie.ts b/src/renderer/src/dexie.ts deleted file mode 100644 index 7991dc8a..00000000 --- a/src/renderer/src/dexie.ts +++ /dev/null @@ -1,27 +0,0 @@ -import type { GameShop, HowLongToBeatCategory } from "@types"; -import { Dexie } from "dexie"; - -export interface HowLongToBeatEntry { - id?: number; - objectId: string; - categories: HowLongToBeatCategory[]; - shop: GameShop; - createdAt: Date; - updatedAt: Date; -} - -export const db = new Dexie("Hydra"); - -db.version(9).stores({ - repacks: `++id, title, uris, fileSize, uploadDate, downloadSourceId, repacker, objectIds, createdAt, updatedAt`, - downloadSources: `++id, &url, name, etag, objectIds, downloadCount, status, fingerprint, createdAt, updatedAt`, - howLongToBeatEntries: `++id, categories, [shop+objectId], createdAt, updatedAt`, -}); - -export const downloadSourcesTable = db.table("downloadSources"); -export const repacksTable = db.table("repacks"); -export const howLongToBeatEntriesTable = db.table( - "howLongToBeatEntries" -); - -db.open(); diff --git a/src/renderer/src/features/download-sources-slice.ts b/src/renderer/src/features/download-sources-slice.ts new file mode 100644 index 00000000..52e58d26 --- /dev/null +++ b/src/renderer/src/features/download-sources-slice.ts @@ -0,0 +1,21 @@ +import { createSlice } from "@reduxjs/toolkit"; + +export interface DownloadSourcesState { + isImporting: boolean; +} + +const initialState: DownloadSourcesState = { + isImporting: false, +}; + +export const downloadSourcesSlice = createSlice({ + name: "downloadSources", + initialState, + reducers: { + setIsImportingSources: (state, action) => { + state.isImporting = action.payload; + }, + }, +}); + +export const { setIsImportingSources } = downloadSourcesSlice.actions; diff --git a/src/renderer/src/features/index.ts b/src/renderer/src/features/index.ts index 9d48c0df..3b602cff 100644 --- a/src/renderer/src/features/index.ts +++ b/src/renderer/src/features/index.ts @@ -7,4 +7,5 @@ export * from "./user-details-slice"; export * from "./game-running.slice"; export * from "./subscription-slice"; export * from "./repacks-slice"; +export * from "./download-sources-slice"; export * from "./catalogue-search"; diff --git a/src/renderer/src/hooks/use-repacks.ts b/src/renderer/src/hooks/use-repacks.ts index dbc918b9..c024aaa4 100644 --- a/src/renderer/src/hooks/use-repacks.ts +++ b/src/renderer/src/hooks/use-repacks.ts @@ -1,4 +1,3 @@ -import { repacksTable } from "@renderer/dexie"; import { setRepacks } from "@renderer/features"; import { useCallback } from "react"; import { RootState } from "@renderer/store"; @@ -16,18 +15,11 @@ export function useRepacks() { [repacks] ); - const updateRepacks = useCallback(() => { - repacksTable.toArray().then((repacks) => { - dispatch( - setRepacks( - JSON.parse( - JSON.stringify( - repacks.filter((repack) => Array.isArray(repack.objectIds)) - ) - ) - ) - ); - }); + const updateRepacks = useCallback(async () => { + const repacks = await window.electron.getAllRepacks(); + dispatch( + setRepacks(repacks.filter((repack) => Array.isArray(repack.objectIds))) + ); }, [dispatch]); return { getRepacksForObjectId, updateRepacks }; diff --git a/src/renderer/src/pages/catalogue/catalogue.tsx b/src/renderer/src/pages/catalogue/catalogue.tsx index 3c6a2b80..07bcf3ff 100644 --- a/src/renderer/src/pages/catalogue/catalogue.tsx +++ b/src/renderer/src/pages/catalogue/catalogue.tsx @@ -1,16 +1,10 @@ import type { CatalogueSearchResult, DownloadSource } from "@types"; -import { - useAppDispatch, - useAppSelector, - useFormat, - useRepacks, -} from "@renderer/hooks"; +import { useAppDispatch, useAppSelector, useFormat } from "@renderer/hooks"; import { useEffect, useMemo, useRef, useState } from "react"; import "./catalogue.scss"; -import { downloadSourcesTable } from "@renderer/dexie"; import { FilterSection } from "./filter-section"; import { setFilters, setPage } from "@renderer/features"; import { useTranslation } from "react-i18next"; @@ -56,8 +50,6 @@ export default function Catalogue() { const { t, i18n } = useTranslation("catalogue"); - const { getRepacksForObjectId } = useRepacks(); - const debouncedSearch = useRef( debounce(async (filters, pageSize, offset) => { const abortController = new AbortController(); @@ -95,10 +87,10 @@ export default function Catalogue() { }, [filters, page, debouncedSearch]); useEffect(() => { - downloadSourcesTable.toArray().then((sources) => { + window.electron.getDownloadSourcesList().then((sources) => { setDownloadSources(sources.filter((source) => !!source.fingerprint)); }); - }, [getRepacksForObjectId]); + }, []); const language = i18n.language.split("-")[0]; @@ -192,13 +184,15 @@ export default function Catalogue() { }, { title: t("download_sources"), - items: downloadSources.map((source) => ({ - label: source.name, - value: source.fingerprint, - checked: filters.downloadSourceFingerprints.includes( - source.fingerprint - ), - })), + items: downloadSources + .filter((source) => source.fingerprint) + .map((source) => ({ + label: source.name, + value: source.fingerprint!, + checked: filters.downloadSourceFingerprints.includes( + source.fingerprint! + ), + })), key: "downloadSourceFingerprints", }, { diff --git a/src/renderer/src/pages/game-details/modals/edit-game-modal.tsx b/src/renderer/src/pages/game-details/modals/edit-game-modal.tsx index 2de46304..8fbdf4a2 100644 --- a/src/renderer/src/pages/game-details/modals/edit-game-modal.tsx +++ b/src/renderer/src/pages/game-details/modals/edit-game-modal.tsx @@ -19,6 +19,68 @@ export interface EditGameModalProps { type AssetType = "icon" | "logo" | "hero"; +interface ElectronFile extends File { + path?: string; +} + +interface GameWithOriginalAssets extends Game { + originalIconPath?: string; + originalLogoPath?: string; + originalHeroPath?: string; +} + +interface LibraryGameWithCustomOriginalAssets extends LibraryGame { + customOriginalIconPath?: string; + customOriginalLogoPath?: string; + customOriginalHeroPath?: string; +} + +interface AssetPaths { + icon: string; + logo: string; + hero: string; +} + +interface AssetUrls { + icon: string | null; + logo: string | null; + hero: string | null; +} + +interface RemovedAssets { + icon: boolean; + logo: boolean; + hero: boolean; +} + +const VALID_IMAGE_TYPES = [ + "image/jpeg", + "image/jpg", + "image/png", + "image/gif", + "image/webp", +] as const; + +const IMAGE_EXTENSIONS = ["jpg", "jpeg", "png", "gif", "webp"] as const; + +const INITIAL_ASSET_PATHS: AssetPaths = { + icon: "", + logo: "", + hero: "", +}; + +const INITIAL_REMOVED_ASSETS: RemovedAssets = { + icon: false, + logo: false, + hero: false, +}; + +const INITIAL_ASSET_URLS: AssetUrls = { + icon: null, + logo: null, + hero: null, +}; + export function EditGameModal({ visible, onClose, @@ -30,33 +92,18 @@ export function EditGameModal({ const { showSuccessToast, showErrorToast } = useToast(); const [gameName, setGameName] = useState(""); - const [assetPaths, setAssetPaths] = useState({ - icon: "", - logo: "", - hero: "", - }); - const [assetDisplayPaths, setAssetDisplayPaths] = useState({ - icon: "", - logo: "", - hero: "", - }); - const [originalAssetPaths, setOriginalAssetPaths] = useState({ - icon: "", - logo: "", - hero: "", - }); - const [removedAssets, setRemovedAssets] = useState({ - icon: false, - logo: false, - hero: false, - }); - const [defaultUrls, setDefaultUrls] = useState({ - icon: null as string | null, - logo: null as string | null, - hero: null as string | null, - }); + const [assetPaths, setAssetPaths] = useState(INITIAL_ASSET_PATHS); + const [assetDisplayPaths, setAssetDisplayPaths] = + useState(INITIAL_ASSET_PATHS); + const [originalAssetPaths, setOriginalAssetPaths] = + useState(INITIAL_ASSET_PATHS); + const [removedAssets, setRemovedAssets] = useState( + INITIAL_REMOVED_ASSETS + ); + const [defaultUrls, setDefaultUrls] = useState(INITIAL_ASSET_URLS); const [isUpdating, setIsUpdating] = useState(false); const [selectedAssetType, setSelectedAssetType] = useState("icon"); + const [dragOverTarget, setDragOverTarget] = useState(null); const isCustomGame = (game: LibraryGame | Game): boolean => { return game.shop === "custom"; @@ -66,12 +113,18 @@ export function EditGameModal({ return url?.startsWith("local:") ? url.replace("local:", "") : ""; }; + const capitalizeAssetType = (assetType: AssetType): string => { + return assetType.charAt(0).toUpperCase() + assetType.slice(1); + }; + const setCustomGameAssets = useCallback((game: LibraryGame | Game) => { - // Check if assets were removed (URLs are null but original paths exist) - const iconRemoved = !game.iconUrl && (game as any).originalIconPath; - const logoRemoved = !game.logoImageUrl && (game as any).originalLogoPath; + const gameWithAssets = game as GameWithOriginalAssets; + const iconRemoved = + !game.iconUrl && Boolean(gameWithAssets.originalIconPath); + const logoRemoved = + !game.logoImageUrl && Boolean(gameWithAssets.originalLogoPath); const heroRemoved = - !game.libraryHeroImageUrl && (game as any).originalHeroPath; + !game.libraryHeroImageUrl && Boolean(gameWithAssets.originalHeroPath); setAssetPaths({ icon: extractLocalPath(game.iconUrl), @@ -84,15 +137,14 @@ export function EditGameModal({ hero: extractLocalPath(game.libraryHeroImageUrl), }); setOriginalAssetPaths({ - icon: (game as any).originalIconPath || extractLocalPath(game.iconUrl), + icon: gameWithAssets.originalIconPath || extractLocalPath(game.iconUrl), logo: - (game as any).originalLogoPath || extractLocalPath(game.logoImageUrl), + gameWithAssets.originalLogoPath || extractLocalPath(game.logoImageUrl), hero: - (game as any).originalHeroPath || + gameWithAssets.originalHeroPath || extractLocalPath(game.libraryHeroImageUrl), }); - // Set removed assets state based on whether assets were explicitly removed setRemovedAssets({ icon: iconRemoved, logo: logoRemoved, @@ -102,13 +154,15 @@ export function EditGameModal({ const setNonCustomGameAssets = useCallback( (game: LibraryGame) => { - // Check if assets were removed (custom URLs are null but original paths exist) + const gameWithAssets = game as LibraryGameWithCustomOriginalAssets; const iconRemoved = - !game.customIconUrl && (game as any).customOriginalIconPath; + !game.customIconUrl && Boolean(gameWithAssets.customOriginalIconPath); const logoRemoved = - !game.customLogoImageUrl && (game as any).customOriginalLogoPath; + !game.customLogoImageUrl && + Boolean(gameWithAssets.customOriginalLogoPath); const heroRemoved = - !game.customHeroImageUrl && (game as any).customOriginalHeroPath; + !game.customHeroImageUrl && + Boolean(gameWithAssets.customOriginalHeroPath); setAssetPaths({ icon: extractLocalPath(game.customIconUrl), @@ -122,17 +176,16 @@ export function EditGameModal({ }); setOriginalAssetPaths({ icon: - (game as any).customOriginalIconPath || + gameWithAssets.customOriginalIconPath || extractLocalPath(game.customIconUrl), logo: - (game as any).customOriginalLogoPath || + gameWithAssets.customOriginalLogoPath || extractLocalPath(game.customLogoImageUrl), hero: - (game as any).customOriginalHeroPath || + gameWithAssets.customOriginalHeroPath || extractLocalPath(game.customHeroImageUrl), }); - // Set removed assets state based on whether assets were explicitly removed setRemovedAssets({ icon: iconRemoved, logo: logoRemoved, @@ -171,29 +224,22 @@ export function EditGameModal({ setSelectedAssetType(assetType); }; - const getAssetPath = (assetType: AssetType): string => { - return assetPaths[assetType]; - }; - const getAssetDisplayPath = (assetType: AssetType): string => { - // If asset was removed, don't show any path if (removedAssets[assetType]) { return ""; } - // Use display path first, then fall back to original path return assetDisplayPaths[assetType] || originalAssetPaths[assetType]; }; - const setAssetPath = (assetType: AssetType, path: string): void => { + const updateAssetPaths = ( + assetType: AssetType, + path: string, + displayPath: string + ): void => { setAssetPaths((prev) => ({ ...prev, [assetType]: path })); - }; - - const setAssetDisplayPath = (assetType: AssetType, path: string): void => { - setAssetDisplayPaths((prev) => ({ ...prev, [assetType]: path })); - }; - - const getDefaultUrl = (assetType: AssetType): string | null => { - return defaultUrls[assetType]; + setAssetDisplayPaths((prev) => ({ ...prev, [assetType]: displayPath })); + setOriginalAssetPaths((prev) => ({ ...prev, [assetType]: displayPath })); + setRemovedAssets((prev) => ({ ...prev, [assetType]: false })); }; const getOriginalAssetUrl = (assetType: AssetType): string | null => { @@ -217,7 +263,7 @@ export function EditGameModal({ filters: [ { name: t("edit_game_modal_image_filter"), - extensions: ["jpg", "jpeg", "png", "gif", "webp"], + extensions: [...IMAGE_EXTENSIONS], }, ], }); @@ -229,41 +275,26 @@ export function EditGameModal({ originalPath, assetType ); - setAssetPath(assetType, copiedAssetUrl.replace("local:", "")); - setAssetDisplayPath(assetType, originalPath); - // Store the original path for display purposes - setOriginalAssetPaths((prev) => ({ - ...prev, - [assetType]: originalPath, - })); - // Clear the removed flag when a new asset is selected - setRemovedAssets((prev) => ({ ...prev, [assetType]: false })); + updateAssetPaths( + assetType, + copiedAssetUrl.replace("local:", ""), + originalPath + ); } catch (error) { console.error(`Failed to copy ${assetType} asset:`, error); - setAssetPath(assetType, originalPath); - setAssetDisplayPath(assetType, originalPath); - setOriginalAssetPaths((prev) => ({ - ...prev, - [assetType]: originalPath, - })); - // Clear the removed flag when a new asset is selected - setRemovedAssets((prev) => ({ ...prev, [assetType]: false })); + updateAssetPaths(assetType, originalPath, originalPath); } } }; const handleRestoreDefault = (assetType: AssetType) => { - // Mark asset as removed and clear paths (for both custom and non-custom games) setRemovedAssets((prev) => ({ ...prev, [assetType]: true })); - setAssetPath(assetType, ""); - setAssetDisplayPath(assetType, ""); - // Don't clear originalAssetPaths - keep them for reference but don't use them for display + setAssetPaths((prev) => ({ ...prev, [assetType]: "" })); + setAssetDisplayPaths((prev) => ({ ...prev, [assetType]: "" })); }; const getOriginalTitle = (): string => { if (!game) return ""; - - // For non-custom games, the original title is from shopDetails assets return shopDetails?.assets?.title || game.title || ""; }; @@ -274,12 +305,10 @@ export function EditGameModal({ const isTitleChanged = useMemo((): boolean => { if (!game || isCustomGame(game)) return false; - const originalTitle = getOriginalTitle(); + const originalTitle = shopDetails?.assets?.title || game.title || ""; return gameName.trim() !== originalTitle.trim(); }, [game, gameName, shopDetails]); - const [dragOverTarget, setDragOverTarget] = useState(null); - const handleDragOver = (e: React.DragEvent) => { e.preventDefault(); e.stopPropagation(); @@ -300,14 +329,9 @@ export function EditGameModal({ }; const validateImageFile = (file: File): boolean => { - const validTypes = [ - "image/jpeg", - "image/jpg", - "image/png", - "image/gif", - "image/webp", - ]; - return validTypes.includes(file.type); + return VALID_IMAGE_TYPES.includes( + file.type as (typeof VALID_IMAGE_TYPES)[number] + ); }; const processDroppedFile = async (file: File, assetType: AssetType) => { @@ -321,10 +345,6 @@ export function EditGameModal({ try { let filePath: string; - interface ElectronFile extends File { - path?: string; - } - if ("path" in file && typeof (file as ElectronFile).path === "string") { filePath = (file as ElectronFile).path!; } else { @@ -351,12 +371,13 @@ export function EditGameModal({ assetType ); - const assetPath = copiedAssetUrl.replace("local:", ""); - setAssetPath(assetType, assetPath); - setAssetDisplayPath(assetType, filePath); - + updateAssetPaths( + assetType, + copiedAssetUrl.replace("local:", ""), + filePath + ); showSuccessToast( - `${assetType.charAt(0).toUpperCase() + assetType.slice(1)} updated successfully!` + `${capitalizeAssetType(assetType)} updated successfully!` ); if (!("path" in file) && filePath) { @@ -387,63 +408,45 @@ export function EditGameModal({ } }; - // Helper function to prepare custom game assets const prepareCustomGameAssets = (game: LibraryGame | Game) => { - // For custom games, check if asset was explicitly removed - let iconUrl; - if (removedAssets.icon) { - iconUrl = null; - } else if (assetPaths.icon) { - iconUrl = `local:${assetPaths.icon}`; - } else { - iconUrl = game.iconUrl; - } + const iconUrl = removedAssets.icon + ? null + : assetPaths.icon + ? `local:${assetPaths.icon}` + : game.iconUrl; - let logoImageUrl; - if (removedAssets.logo) { - logoImageUrl = null; - } else if (assetPaths.logo) { - logoImageUrl = `local:${assetPaths.logo}`; - } else { - logoImageUrl = game.logoImageUrl; - } + const logoImageUrl = removedAssets.logo + ? null + : assetPaths.logo + ? `local:${assetPaths.logo}` + : game.logoImageUrl; - // For hero image, if removed, restore to the original gradient or keep the original - let libraryHeroImageUrl; - if (removedAssets.hero) { - // If the original hero was a gradient (data URL), keep it, otherwise generate a new one - const originalHero = game.libraryHeroImageUrl; - libraryHeroImageUrl = originalHero?.startsWith("data:image/svg+xml") - ? originalHero - : generateRandomGradient(); - } else { - libraryHeroImageUrl = assetPaths.hero + const libraryHeroImageUrl = removedAssets.hero + ? game.libraryHeroImageUrl?.startsWith("data:image/svg+xml") + ? game.libraryHeroImageUrl + : generateRandomGradient() + : assetPaths.hero ? `local:${assetPaths.hero}` : game.libraryHeroImageUrl; - } return { iconUrl, logoImageUrl, libraryHeroImageUrl }; }; - // Helper function to prepare non-custom game assets const prepareNonCustomGameAssets = () => { - const hasIconPath = assetPaths.icon; - let customIconUrl: string | null = null; - if (!removedAssets.icon && hasIconPath) { - customIconUrl = `local:${assetPaths.icon}`; - } + const customIconUrl = + !removedAssets.icon && assetPaths.icon + ? `local:${assetPaths.icon}` + : null; - const hasLogoPath = assetPaths.logo; - let customLogoImageUrl: string | null = null; - if (!removedAssets.logo && hasLogoPath) { - customLogoImageUrl = `local:${assetPaths.logo}`; - } + const customLogoImageUrl = + !removedAssets.logo && assetPaths.logo + ? `local:${assetPaths.logo}` + : null; - const hasHeroPath = assetPaths.hero; - let customHeroImageUrl: string | null = null; - if (!removedAssets.hero && hasHeroPath) { - customHeroImageUrl = `local:${assetPaths.hero}`; - } + const customHeroImageUrl = + !removedAssets.hero && assetPaths.hero + ? `local:${assetPaths.hero}` + : null; return { customIconUrl, @@ -452,7 +455,6 @@ export function EditGameModal({ }; }; - // Helper function to update custom game const updateCustomGame = async (game: LibraryGame | Game) => { const { iconUrl, logoImageUrl, libraryHeroImageUrl } = prepareCustomGameAssets(game); @@ -470,7 +472,6 @@ export function EditGameModal({ }); }; - // Helper function to update non-custom game const updateNonCustomGame = async (game: LibraryGame) => { const { customIconUrl, customLogoImageUrl, customHeroImageUrl } = prepareNonCustomGameAssets(); @@ -521,43 +522,17 @@ export function EditGameModal({ } }; - // Helper function to reset form to initial state const resetFormToInitialState = useCallback( (game: LibraryGame | Game) => { setGameName(game.title || ""); - - // Reset removed assets state - setRemovedAssets({ - icon: false, - logo: false, - hero: false, - }); - - // Clear all asset paths to ensure clean state - setAssetPaths({ - icon: "", - logo: "", - hero: "", - }); - setAssetDisplayPaths({ - icon: "", - logo: "", - hero: "", - }); - setOriginalAssetPaths({ - icon: "", - logo: "", - hero: "", - }); + setRemovedAssets(INITIAL_REMOVED_ASSETS); + setAssetPaths(INITIAL_ASSET_PATHS); + setAssetDisplayPaths(INITIAL_ASSET_PATHS); + setOriginalAssetPaths(INITIAL_ASSET_PATHS); if (isCustomGame(game)) { setCustomGameAssets(game); - // Clear default URLs for custom games - setDefaultUrls({ - icon: null, - logo: null, - hero: null, - }); + setDefaultUrls(INITIAL_ASSET_URLS); } else { setNonCustomGameAssets(game as LibraryGame); } @@ -575,8 +550,8 @@ export function EditGameModal({ const isFormValid = gameName.trim(); const getPreviewUrl = (assetType: AssetType): string | undefined => { - const assetPath = getAssetPath(assetType); - const defaultUrl = getDefaultUrl(assetType); + const assetPath = assetPaths[assetType]; + const defaultUrl = defaultUrls[assetType]; if (game && !isCustomGame(game)) { return assetPath ? `local:${assetPath}` : defaultUrl || undefined; @@ -585,9 +560,9 @@ export function EditGameModal({ }; const renderImageSection = (assetType: AssetType) => { - const assetPath = getAssetPath(assetType); + const assetPath = assetPaths[assetType]; const assetDisplayPath = getAssetDisplayPath(assetType); - const defaultUrl = getDefaultUrl(assetType); + const defaultUrl = defaultUrls[assetType]; const hasImage = assetPath || (game && !isCustomGame(game) && defaultUrl); const isDragOver = dragOverTarget === assetType; diff --git a/src/renderer/src/pages/game-details/modals/repacks-modal.tsx b/src/renderer/src/pages/game-details/modals/repacks-modal.tsx index f2d1f974..0c4c2d9e 100644 --- a/src/renderer/src/pages/game-details/modals/repacks-modal.tsx +++ b/src/renderer/src/pages/game-details/modals/repacks-modal.tsx @@ -15,7 +15,6 @@ import { TextField, CheckboxField, } from "@renderer/components"; -import { downloadSourcesTable } from "@renderer/dexie"; import type { DownloadSource } from "@types"; import type { GameRepack } from "@types"; @@ -105,7 +104,7 @@ export function RepacksModal({ }, [repacks, hashesInDebrid]); useEffect(() => { - downloadSourcesTable.toArray().then((sources) => { + window.electron.getDownloadSourcesList().then((sources) => { const uniqueRepackers = new Set(sortedRepacks.map((r) => r.repacker)); const filteredSources = sources.filter( (s) => s.name && uniqueRepackers.has(s.name) && !!s.fingerprint @@ -129,6 +128,7 @@ export function RepacksModal({ return downloadSources.some( (src) => + src.fingerprint && selectedFingerprints.includes(src.fingerprint) && src.name === repack.repacker ); diff --git a/src/renderer/src/pages/game-details/sidebar/how-long-to-beat-section.tsx b/src/renderer/src/pages/game-details/sidebar/how-long-to-beat-section.tsx index 9a29f150..61c90389 100644 --- a/src/renderer/src/pages/game-details/sidebar/how-long-to-beat-section.tsx +++ b/src/renderer/src/pages/game-details/sidebar/how-long-to-beat-section.tsx @@ -25,7 +25,7 @@ export function HowLongToBeatSection({ return `${value} ${t(durationTranslation[unit])}`; }; - if (!howLongToBeatData || !isLoading) return null; + if (!howLongToBeatData && !isLoading) return null; return ( diff --git a/src/renderer/src/pages/game-details/sidebar/sidebar.tsx b/src/renderer/src/pages/game-details/sidebar/sidebar.tsx index d16f4d3f..3056e414 100755 --- a/src/renderer/src/pages/game-details/sidebar/sidebar.tsx +++ b/src/renderer/src/pages/game-details/sidebar/sidebar.tsx @@ -17,7 +17,6 @@ import { StarIcon, } from "@primer/octicons-react"; import { HowLongToBeatSection } from "./how-long-to-beat-section"; -import { howLongToBeatEntriesTable } from "@renderer/dexie"; import { SidebarSection } from "../sidebar-section/sidebar-section"; import { buildGameAchievementPath } from "@renderer/helpers"; import { useSubscription } from "@renderer/hooks/use-subscription"; @@ -80,41 +79,22 @@ export function Sidebar() { if (objectId) { setHowLongToBeat({ isLoading: true, data: null }); - howLongToBeatEntriesTable - .where({ shop, objectId }) - .first() - .then(async (cachedHowLongToBeat) => { - if (cachedHowLongToBeat) { - setHowLongToBeat({ - isLoading: false, - data: cachedHowLongToBeat.categories, - }); - } else { - try { - const howLongToBeat = await window.electron.hydraApi.get< - HowLongToBeatCategory[] | null - >(`/games/${shop}/${objectId}/how-long-to-beat`, { - needsAuth: false, - }); - - if (howLongToBeat) { - howLongToBeatEntriesTable.add({ - objectId, - shop: "steam", - createdAt: new Date(), - updatedAt: new Date(), - categories: howLongToBeat, - }); - } - - setHowLongToBeat({ isLoading: false, data: howLongToBeat }); - } catch (err) { - setHowLongToBeat({ isLoading: false, data: null }); - } + // Directly fetch from API without checking cache + window.electron.hydraApi + .get( + `/games/${shop}/${objectId}/how-long-to-beat`, + { + needsAuth: false, } + ) + .then((howLongToBeatData) => { + setHowLongToBeat({ isLoading: false, data: howLongToBeatData }); + }) + .catch(() => { + setHowLongToBeat({ isLoading: false, data: null }); }); } - }, [objectId, shop, gameTitle]); + }, [objectId, shop]); return (
diff --git a/src/renderer/src/pages/settings/add-download-source-modal.scss b/src/renderer/src/pages/settings/add-download-source-modal.scss index f6b5d151..ea92ca71 100644 --- a/src/renderer/src/pages/settings/add-download-source-modal.scss +++ b/src/renderer/src/pages/settings/add-download-source-modal.scss @@ -1,5 +1,14 @@ @use "../../scss/globals.scss"; +@keyframes spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + .add-download-source-modal { &__container { display: flex; @@ -24,4 +33,9 @@ &__validate-button { align-self: flex-end; } + + &__spinner { + animation: spin 1s linear infinite; + margin-right: calc(globals.$spacing-unit / 2); + } } diff --git a/src/renderer/src/pages/settings/add-download-source-modal.tsx b/src/renderer/src/pages/settings/add-download-source-modal.tsx index fee1c5e3..c2b47513 100644 --- a/src/renderer/src/pages/settings/add-download-source-modal.tsx +++ b/src/renderer/src/pages/settings/add-download-source-modal.tsx @@ -4,12 +4,13 @@ import { useTranslation } from "react-i18next"; import { Button, Modal, TextField } from "@renderer/components"; import { settingsContext } from "@renderer/context"; import { useForm } from "react-hook-form"; +import { useAppDispatch } from "@renderer/hooks"; import * as yup from "yup"; import { yupResolver } from "@hookform/resolvers/yup"; -import { downloadSourcesTable } from "@renderer/dexie"; import type { DownloadSourceValidationResult } from "@types"; -import { downloadSourcesWorker } from "@renderer/workers"; +import { setIsImportingSources } from "@renderer/features"; +import { SyncIcon } from "@primer/octicons-react"; import "./add-download-source-modal.scss"; interface AddDownloadSourceModalProps { @@ -52,13 +53,15 @@ export function AddDownloadSourceModal({ const { sourceUrl } = useContext(settingsContext); + const dispatch = useAppDispatch(); + const onSubmit = useCallback( async (values: FormValues) => { - const existingDownloadSource = await downloadSourcesTable - .where({ url: values.url }) - .first(); + const exists = await window.electron.checkDownloadSourceExists( + values.url + ); - if (existingDownloadSource) { + if (exists) { setError("url", { type: "server", message: t("source_already_exists"), @@ -67,22 +70,11 @@ export function AddDownloadSourceModal({ return; } - downloadSourcesWorker.postMessage([ - "VALIDATE_DOWNLOAD_SOURCE", - values.url, - ]); - - const channel = new BroadcastChannel( - `download_sources:validate:${values.url}` + const validationResult = await window.electron.validateDownloadSource( + values.url ); - channel.onmessage = ( - event: MessageEvent - ) => { - setValidationResult(event.data); - channel.close(); - }; - + setValidationResult(validationResult); setUrl(values.url); }, [setError, t] @@ -100,44 +92,44 @@ export function AddDownloadSourceModal({ } }, [visible, clearErrors, handleSubmit, onSubmit, setValue, sourceUrl]); - const putDownloadSource = async () => { - const downloadSource = await downloadSourcesTable.where({ url }).first(); - if (!downloadSource) return; - - window.electron - .putDownloadSource(downloadSource.objectIds) - .then(({ fingerprint }) => { - downloadSourcesTable.update(downloadSource.id, { fingerprint }); - }); - }; - const handleAddDownloadSource = async () => { if (validationResult) { setIsLoading(true); + dispatch(setIsImportingSources(true)); - const channel = new BroadcastChannel(`download_sources:import:${url}`); - - downloadSourcesWorker.postMessage(["IMPORT_DOWNLOAD_SOURCE", url]); - - channel.onmessage = () => { - window.electron.createDownloadSources([url]); - setIsLoading(false); - - putDownloadSource(); + try { + // Single call that handles: import → API sync → fingerprint + await window.electron.addDownloadSource(url); + // Close modal and update UI onClose(); onAddDownloadSource(); - channel.close(); - }; + } catch (error) { + console.error("Failed to add download source:", error); + setError("url", { + type: "server", + message: "Failed to import source. Please try again.", + }); + } finally { + setIsLoading(false); + dispatch(setIsImportingSources(false)); + } } }; + const handleClose = () => { + // Prevent closing while importing + if (isLoading) return; + onClose(); + }; + return (
- {t("import")} + {isLoading && ( + + )} + {isLoading ? t("importing") : t("import")}
)} diff --git a/src/renderer/src/pages/settings/settings-download-sources.tsx b/src/renderer/src/pages/settings/settings-download-sources.tsx index 720a313b..f873b321 100644 --- a/src/renderer/src/pages/settings/settings-download-sources.tsx +++ b/src/renderer/src/pages/settings/settings-download-sources.tsx @@ -19,11 +19,8 @@ import { AddDownloadSourceModal } from "./add-download-source-modal"; import { useAppDispatch, useRepacks, useToast } from "@renderer/hooks"; import { DownloadSourceStatus } from "@shared"; import { settingsContext } from "@renderer/context"; -import { downloadSourcesTable } from "@renderer/dexie"; -import { downloadSourcesWorker } from "@renderer/workers"; import { useNavigate } from "react-router-dom"; import { setFilters, clearFilters } from "@renderer/features"; -import { generateUUID } from "@renderer/helpers"; import "./settings-download-sources.scss"; export function SettingsDownloadSources() { @@ -52,11 +49,10 @@ export function SettingsDownloadSources() { const { updateRepacks } = useRepacks(); const getDownloadSources = async () => { - await downloadSourcesTable - .toCollection() - .sortBy("createdAt") + await window.electron + .getDownloadSourcesList() .then((sources) => { - setDownloadSources(sources.reverse()); + setDownloadSources(sources); }) .finally(() => { setIsFetchingSources(false); @@ -71,68 +67,67 @@ export function SettingsDownloadSources() { if (sourceUrl) setShowAddDownloadSourceModal(true); }, [sourceUrl]); - const handleRemoveSource = (downloadSource: DownloadSource) => { + const handleRemoveSource = async (downloadSource: DownloadSource) => { setIsRemovingDownloadSource(true); - const channel = new BroadcastChannel( - `download_sources:delete:${downloadSource.id}` - ); - downloadSourcesWorker.postMessage([ - "DELETE_DOWNLOAD_SOURCE", - downloadSource.id, - ]); + try { + await window.electron.deleteDownloadSource(downloadSource.id); + await window.electron.removeDownloadSource(downloadSource.url); - channel.onmessage = () => { showSuccessToast(t("removed_download_source")); - window.electron.removeDownloadSource(downloadSource.url); - - getDownloadSources(); - setIsRemovingDownloadSource(false); - channel.close(); + await getDownloadSources(); updateRepacks(); - }; + } finally { + setIsRemovingDownloadSource(false); + } }; - const handleRemoveAllDownloadSources = () => { + const handleRemoveAllDownloadSources = async () => { setIsRemovingDownloadSource(true); - const id = generateUUID(); - const channel = new BroadcastChannel(`download_sources:delete_all:${id}`); + try { + await window.electron.deleteAllDownloadSources(); + await window.electron.removeDownloadSource("", true); - downloadSourcesWorker.postMessage(["DELETE_ALL_DOWNLOAD_SOURCES", id]); - - channel.onmessage = () => { showSuccessToast(t("removed_download_sources")); - window.electron.removeDownloadSource("", true); - getDownloadSources(); - setIsRemovingDownloadSource(false); + await getDownloadSources(); setShowConfirmationDeleteAllSourcesModal(false); - channel.close(); updateRepacks(); - }; + } finally { + setIsRemovingDownloadSource(false); + } }; const handleAddDownloadSource = async () => { + // Refresh sources list and repacks after import completes await getDownloadSources(); + + // Force repacks update to ensure UI reflects new data + await updateRepacks(); + showSuccessToast(t("added_download_source")); - updateRepacks(); }; const syncDownloadSources = async () => { setIsSyncingDownloadSources(true); - const id = generateUUID(); - const channel = new BroadcastChannel(`download_sources:sync:${id}`); + try { + // Sync local sources (check for updates) + await window.electron.syncDownloadSources(); - downloadSourcesWorker.postMessage(["SYNC_DOWNLOAD_SOURCES", id]); + // Refresh sources and repacks AFTER sync completes + await getDownloadSources(); + await updateRepacks(); - channel.onmessage = () => { showSuccessToast(t("download_sources_synced")); - getDownloadSources(); + } catch (error) { + console.error("Error syncing download sources:", error); + // Still refresh the UI even if sync fails + await getDownloadSources(); + await updateRepacks(); + } finally { setIsSyncingDownloadSources(false); - channel.close(); - updateRepacks(); - }; + } }; const statusTitle = { @@ -145,7 +140,12 @@ export function SettingsDownloadSources() { setShowAddDownloadSourceModal(false); }; - const navigateToCatalogue = (fingerprint: string) => { + const navigateToCatalogue = (fingerprint?: string) => { + if (!fingerprint) { + console.error("Cannot navigate: fingerprint is undefined"); + return; + } + dispatch(clearFilters()); dispatch(setFilters({ downloadSourceFingerprints: [fingerprint] })); @@ -222,54 +222,58 @@ export function SettingsDownloadSources() {
    - {downloadSources.map((downloadSource) => ( -
  • -
    -

    {downloadSource.name}

    + {downloadSources.map((downloadSource) => { + return ( +
  • +
    +

    {downloadSource.name}

    -
    - {statusTitle[downloadSource.status]} +
    + {statusTitle[downloadSource.status]} +
    + +
    - -
    - - handleRemoveSource(downloadSource)} - disabled={isRemovingDownloadSource} - > - - {t("remove_download_source")} - - } - /> -
  • - ))} + handleRemoveSource(downloadSource)} + disabled={isRemovingDownloadSource} + > + + {t("remove_download_source")} + + } + /> + + ); + })}
); diff --git a/src/renderer/src/store.ts b/src/renderer/src/store.ts index e771f98e..264b1296 100644 --- a/src/renderer/src/store.ts +++ b/src/renderer/src/store.ts @@ -9,6 +9,7 @@ import { gameRunningSlice, subscriptionSlice, repacksSlice, + downloadSourcesSlice, catalogueSearchSlice, } from "@renderer/features"; @@ -23,6 +24,7 @@ export const store = configureStore({ gameRunning: gameRunningSlice.reducer, subscription: subscriptionSlice.reducer, repacks: repacksSlice.reducer, + downloadSources: downloadSourcesSlice.reducer, catalogueSearch: catalogueSearchSlice.reducer, }, }); diff --git a/src/renderer/src/workers/download-sources.worker.ts b/src/renderer/src/workers/download-sources.worker.ts deleted file mode 100644 index 3f95bf22..00000000 --- a/src/renderer/src/workers/download-sources.worker.ts +++ /dev/null @@ -1,238 +0,0 @@ -import { db, downloadSourcesTable, repacksTable } from "@renderer/dexie"; - -import { z } from "zod"; -import axios, { AxiosError, AxiosHeaders } from "axios"; -import { DownloadSourceStatus, formatName, pipe } from "@shared"; -import { GameRepack } from "@types"; - -const formatRepackName = pipe((name) => name.replace("[DL]", ""), formatName); - -export const downloadSourceSchema = z.object({ - name: z.string().max(255), - downloads: z.array( - z.object({ - title: z.string().max(255), - uris: z.array(z.string()), - uploadDate: z.string().max(255), - fileSize: z.string().max(255), - }) - ), -}); - -type Payload = - | ["IMPORT_DOWNLOAD_SOURCE", string] - | ["DELETE_DOWNLOAD_SOURCE", number] - | ["VALIDATE_DOWNLOAD_SOURCE", string] - | ["SYNC_DOWNLOAD_SOURCES", string] - | ["DELETE_ALL_DOWNLOAD_SOURCES", string]; - -export type SteamGamesByLetter = Record; - -const addNewDownloads = async ( - downloadSource: { id: number; name: string }, - downloads: z.infer["downloads"], - steamGames: SteamGamesByLetter -) => { - const now = new Date(); - - const results = [] as (Omit & { - downloadSourceId: number; - })[]; - - const objectIdsOnSource = new Set(); - - for (const download of downloads) { - const formattedTitle = formatRepackName(download.title); - const [firstLetter] = formattedTitle; - const games = steamGames[firstLetter] || []; - - const gamesInSteam = games.filter((game) => - formattedTitle.startsWith(game.name) - ); - - if (gamesInSteam.length === 0) continue; - - for (const game of gamesInSteam) { - objectIdsOnSource.add(String(game.id)); - } - - results.push({ - objectIds: gamesInSteam.map((game) => String(game.id)), - title: download.title, - uris: download.uris, - fileSize: download.fileSize, - repacker: downloadSource.name, - uploadDate: download.uploadDate, - downloadSourceId: downloadSource.id, - createdAt: now, - updatedAt: now, - }); - } - - await repacksTable.bulkAdd(results); - - await downloadSourcesTable.update(downloadSource.id, { - objectIds: Array.from(objectIdsOnSource), - }); -}; - -const getSteamGames = async () => { - const response = await axios.get( - `${import.meta.env.RENDERER_VITE_EXTERNAL_RESOURCES_URL}/steam-games-by-letter.json` - ); - - return response.data; -}; - -const importDownloadSource = async (url: string) => { - const response = await axios.get>(url); - - const steamGames = await getSteamGames(); - - await db.transaction("rw", repacksTable, downloadSourcesTable, async () => { - const now = new Date(); - - const id = await downloadSourcesTable.add({ - url, - name: response.data.name, - etag: response.headers["etag"], - status: DownloadSourceStatus.UpToDate, - downloadCount: response.data.downloads.length, - createdAt: now, - updatedAt: now, - }); - - const downloadSource = await downloadSourcesTable.get(id); - - await addNewDownloads(downloadSource, response.data.downloads, steamGames); - }); -}; - -const deleteDownloadSource = async (id: number) => { - await db.transaction("rw", repacksTable, downloadSourcesTable, async () => { - await repacksTable.where({ downloadSourceId: id }).delete(); - await downloadSourcesTable.where({ id }).delete(); - }); -}; - -const deleteAllDowloadSources = async () => { - await db.transaction("rw", repacksTable, downloadSourcesTable, async () => { - await repacksTable.clear(); - await downloadSourcesTable.clear(); - }); -}; - -self.onmessage = async (event: MessageEvent) => { - const [type, data] = event.data; - - if (type === "VALIDATE_DOWNLOAD_SOURCE") { - const response = - await axios.get>(data); - - const { name } = downloadSourceSchema.parse(response.data); - - const channel = new BroadcastChannel(`download_sources:validate:${data}`); - - channel.postMessage({ - name, - etag: response.headers["etag"], - downloadCount: response.data.downloads.length, - }); - } - - if (type === "DELETE_ALL_DOWNLOAD_SOURCES") { - await deleteAllDowloadSources(); - - const channel = new BroadcastChannel(`download_sources:delete_all:${data}`); - - channel.postMessage(true); - } - - if (type === "DELETE_DOWNLOAD_SOURCE") { - await deleteDownloadSource(data); - - const channel = new BroadcastChannel(`download_sources:delete:${data}`); - - channel.postMessage(true); - } - - if (type === "IMPORT_DOWNLOAD_SOURCE") { - await importDownloadSource(data); - - const channel = new BroadcastChannel(`download_sources:import:${data}`); - channel.postMessage(true); - } - - if (type === "SYNC_DOWNLOAD_SOURCES") { - const channel = new BroadcastChannel(`download_sources:sync:${data}`); - let newRepacksCount = 0; - - try { - const downloadSources = await downloadSourcesTable.toArray(); - const existingRepacks = await repacksTable.toArray(); - - if (downloadSources.some((source) => !source.fingerprint)) { - await Promise.all( - downloadSources.map(async (source) => { - await deleteDownloadSource(source.id); - await importDownloadSource(source.url); - }) - ); - } else { - for (const downloadSource of downloadSources) { - const headers = new AxiosHeaders(); - - if (downloadSource.etag) { - headers.set("If-None-Match", downloadSource.etag); - } - - try { - const response = await axios.get(downloadSource.url, { - headers, - }); - - const source = downloadSourceSchema.parse(response.data); - - const steamGames = await getSteamGames(); - - await db.transaction( - "rw", - repacksTable, - downloadSourcesTable, - async () => { - await downloadSourcesTable.update(downloadSource.id, { - etag: response.headers["etag"], - downloadCount: source.downloads.length, - status: DownloadSourceStatus.UpToDate, - }); - - const repacks = source.downloads.filter( - (download) => - !existingRepacks.some( - (repack) => repack.title === download.title - ) - ); - - await addNewDownloads(downloadSource, repacks, steamGames); - - newRepacksCount += repacks.length; - } - ); - } catch (err: unknown) { - const isNotModified = (err as AxiosError).response?.status === 304; - - await downloadSourcesTable.update(downloadSource.id, { - status: isNotModified - ? DownloadSourceStatus.UpToDate - : DownloadSourceStatus.Errored, - }); - } - } - } - - channel.postMessage(newRepacksCount); - } catch (err) { - channel.postMessage(-1); - } - } -}; diff --git a/src/renderer/src/workers/index.ts b/src/renderer/src/workers/index.ts deleted file mode 100644 index 39367894..00000000 --- a/src/renderer/src/workers/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import DownloadSourcesWorker from "./download-sources.worker?worker"; - -export const downloadSourcesWorker = new DownloadSourcesWorker(); diff --git a/src/types/index.ts b/src/types/index.ts index 0fb68ddf..94b9701f 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -35,7 +35,7 @@ export interface DownloadSource { status: DownloadSourceStatus; objectIds: string[]; downloadCount: number; - fingerprint: string; + fingerprint?: string; etag: string | null; createdAt: Date; updatedAt: Date; diff --git a/yarn.lock b/yarn.lock index f6d4de71..ebd10beb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4,16 +4,19 @@ "7zip-bin@~5.2.0": version "5.2.0" - resolved "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.2.0.tgz" + resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.2.0.tgz#7a03314684dd6572b7dfa89e68ce31d60286854d" integrity sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A== -"@ampproject/remapping@^2.2.0": - version "2.3.0" - resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz" - integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== +"@asamuzakjp/css-color@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@asamuzakjp/css-color/-/css-color-3.2.0.tgz#cc42f5b85c593f79f1fa4f25d2b9b321e61d1794" + integrity sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw== dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.24" + "@csstools/css-calc" "^2.1.3" + "@csstools/css-color-parser" "^3.0.9" + "@csstools/css-parser-algorithms" "^3.0.4" + "@csstools/css-tokenizer" "^3.0.3" + lru-cache "^10.4.3" "@aws-crypto/crc32@5.2.0": version "5.2.0" @@ -84,548 +87,507 @@ tslib "^2.6.2" "@aws-sdk/client-s3@^3.705.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.714.0.tgz#74d056a57525a1289c7934015f2ce3f3714e7464" - integrity sha512-DqzfbecKrhUEpsYTsYRIm4cKKlIvAl4I/A2NpzDPDSiA2EmCWLy0T5fK1ivUA4XL+09+4pHJGNVTpMyDs7n6vg== + version "3.908.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.908.0.tgz#99aaf076f95dadc11419a2558749b0159e5d9e4a" + integrity sha512-c/89iG3of8UEiWbRK014DoHLy8PLLTJtM9IvYLPsvrf83kpV2P/K9WrdbjW4h6e5qt9XPgfNTZ8U607mt7pdmA== dependencies: "@aws-crypto/sha1-browser" "5.2.0" "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.714.0" - "@aws-sdk/client-sts" "3.714.0" - "@aws-sdk/core" "3.714.0" - "@aws-sdk/credential-provider-node" "3.714.0" - "@aws-sdk/middleware-bucket-endpoint" "3.714.0" - "@aws-sdk/middleware-expect-continue" "3.714.0" - "@aws-sdk/middleware-flexible-checksums" "3.714.0" - "@aws-sdk/middleware-host-header" "3.714.0" - "@aws-sdk/middleware-location-constraint" "3.714.0" - "@aws-sdk/middleware-logger" "3.714.0" - "@aws-sdk/middleware-recursion-detection" "3.714.0" - "@aws-sdk/middleware-sdk-s3" "3.714.0" - "@aws-sdk/middleware-ssec" "3.714.0" - "@aws-sdk/middleware-user-agent" "3.714.0" - "@aws-sdk/region-config-resolver" "3.714.0" - "@aws-sdk/signature-v4-multi-region" "3.714.0" - "@aws-sdk/types" "3.714.0" - "@aws-sdk/util-endpoints" "3.714.0" - "@aws-sdk/util-user-agent-browser" "3.714.0" - "@aws-sdk/util-user-agent-node" "3.714.0" - "@aws-sdk/xml-builder" "3.709.0" - "@smithy/config-resolver" "^3.0.13" - "@smithy/core" "^2.5.5" - "@smithy/eventstream-serde-browser" "^3.0.14" - "@smithy/eventstream-serde-config-resolver" "^3.0.11" - "@smithy/eventstream-serde-node" "^3.0.13" - "@smithy/fetch-http-handler" "^4.1.2" - "@smithy/hash-blob-browser" "^3.1.10" - "@smithy/hash-node" "^3.0.11" - "@smithy/hash-stream-node" "^3.1.10" - "@smithy/invalid-dependency" "^3.0.11" - "@smithy/md5-js" "^3.0.11" - "@smithy/middleware-content-length" "^3.0.13" - "@smithy/middleware-endpoint" "^3.2.5" - "@smithy/middleware-retry" "^3.0.30" - "@smithy/middleware-serde" "^3.0.11" - "@smithy/middleware-stack" "^3.0.11" - "@smithy/node-config-provider" "^3.1.12" - "@smithy/node-http-handler" "^3.3.2" - "@smithy/protocol-http" "^4.1.8" - "@smithy/smithy-client" "^3.5.0" - "@smithy/types" "^3.7.2" - "@smithy/url-parser" "^3.0.11" - "@smithy/util-base64" "^3.0.0" - "@smithy/util-body-length-browser" "^3.0.0" - "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.30" - "@smithy/util-defaults-mode-node" "^3.0.30" - "@smithy/util-endpoints" "^2.1.7" - "@smithy/util-middleware" "^3.0.11" - "@smithy/util-retry" "^3.0.11" - "@smithy/util-stream" "^3.3.2" - "@smithy/util-utf8" "^3.0.0" - "@smithy/util-waiter" "^3.2.0" + "@aws-sdk/core" "3.908.0" + "@aws-sdk/credential-provider-node" "3.908.0" + "@aws-sdk/middleware-bucket-endpoint" "3.901.0" + "@aws-sdk/middleware-expect-continue" "3.901.0" + "@aws-sdk/middleware-flexible-checksums" "3.908.0" + "@aws-sdk/middleware-host-header" "3.901.0" + "@aws-sdk/middleware-location-constraint" "3.901.0" + "@aws-sdk/middleware-logger" "3.901.0" + "@aws-sdk/middleware-recursion-detection" "3.901.0" + "@aws-sdk/middleware-sdk-s3" "3.908.0" + "@aws-sdk/middleware-ssec" "3.901.0" + "@aws-sdk/middleware-user-agent" "3.908.0" + "@aws-sdk/region-config-resolver" "3.901.0" + "@aws-sdk/signature-v4-multi-region" "3.908.0" + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-endpoints" "3.901.0" + "@aws-sdk/util-user-agent-browser" "3.907.0" + "@aws-sdk/util-user-agent-node" "3.908.0" + "@aws-sdk/xml-builder" "3.901.0" + "@smithy/config-resolver" "^4.3.0" + "@smithy/core" "^3.15.0" + "@smithy/eventstream-serde-browser" "^4.2.0" + "@smithy/eventstream-serde-config-resolver" "^4.3.0" + "@smithy/eventstream-serde-node" "^4.2.0" + "@smithy/fetch-http-handler" "^5.3.1" + "@smithy/hash-blob-browser" "^4.2.1" + "@smithy/hash-node" "^4.2.0" + "@smithy/hash-stream-node" "^4.2.0" + "@smithy/invalid-dependency" "^4.2.0" + "@smithy/md5-js" "^4.2.0" + "@smithy/middleware-content-length" "^4.2.0" + "@smithy/middleware-endpoint" "^4.3.1" + "@smithy/middleware-retry" "^4.4.1" + "@smithy/middleware-serde" "^4.2.0" + "@smithy/middleware-stack" "^4.2.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/node-http-handler" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/smithy-client" "^4.7.1" + "@smithy/types" "^4.6.0" + "@smithy/url-parser" "^4.2.0" + "@smithy/util-base64" "^4.3.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-body-length-node" "^4.2.1" + "@smithy/util-defaults-mode-browser" "^4.3.0" + "@smithy/util-defaults-mode-node" "^4.2.1" + "@smithy/util-endpoints" "^3.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-retry" "^4.2.0" + "@smithy/util-stream" "^4.5.0" + "@smithy/util-utf8" "^4.2.0" + "@smithy/util-waiter" "^4.2.0" + "@smithy/uuid" "^1.1.0" tslib "^2.6.2" -"@aws-sdk/client-sso-oidc@3.714.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.714.0.tgz#ddbb500ce93003f21c26d05ac45593c961d8b8e2" - integrity sha512-dMvpPUaL3v01psPY1ZyCzQ/w2tOgQTH1if0zBF5r2q7Vc0oOPzbBZgNAhG1bDWlRCBW0iXmoqRFoWUwQ5rtx+A== +"@aws-sdk/client-sso@3.908.0": + version "3.908.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.908.0.tgz#08db2b04caaeee7b3453945e18b8ff5811219ec5" + integrity sha512-PseFMWvtac+Q+zaY9DMISE+2+glNh0ROJ1yR4gMzeafNHSwkdYu4qcgxLWIOnIodGydBv/tQ6nzHPzExXnUUgw== dependencies: "@aws-crypto/sha256-browser" "5.2.0" "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.714.0" - "@aws-sdk/credential-provider-node" "3.714.0" - "@aws-sdk/middleware-host-header" "3.714.0" - "@aws-sdk/middleware-logger" "3.714.0" - "@aws-sdk/middleware-recursion-detection" "3.714.0" - "@aws-sdk/middleware-user-agent" "3.714.0" - "@aws-sdk/region-config-resolver" "3.714.0" - "@aws-sdk/types" "3.714.0" - "@aws-sdk/util-endpoints" "3.714.0" - "@aws-sdk/util-user-agent-browser" "3.714.0" - "@aws-sdk/util-user-agent-node" "3.714.0" - "@smithy/config-resolver" "^3.0.13" - "@smithy/core" "^2.5.5" - "@smithy/fetch-http-handler" "^4.1.2" - "@smithy/hash-node" "^3.0.11" - "@smithy/invalid-dependency" "^3.0.11" - "@smithy/middleware-content-length" "^3.0.13" - "@smithy/middleware-endpoint" "^3.2.5" - "@smithy/middleware-retry" "^3.0.30" - "@smithy/middleware-serde" "^3.0.11" - "@smithy/middleware-stack" "^3.0.11" - "@smithy/node-config-provider" "^3.1.12" - "@smithy/node-http-handler" "^3.3.2" - "@smithy/protocol-http" "^4.1.8" - "@smithy/smithy-client" "^3.5.0" - "@smithy/types" "^3.7.2" - "@smithy/url-parser" "^3.0.11" - "@smithy/util-base64" "^3.0.0" - "@smithy/util-body-length-browser" "^3.0.0" - "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.30" - "@smithy/util-defaults-mode-node" "^3.0.30" - "@smithy/util-endpoints" "^2.1.7" - "@smithy/util-middleware" "^3.0.11" - "@smithy/util-retry" "^3.0.11" - "@smithy/util-utf8" "^3.0.0" + "@aws-sdk/core" "3.908.0" + "@aws-sdk/middleware-host-header" "3.901.0" + "@aws-sdk/middleware-logger" "3.901.0" + "@aws-sdk/middleware-recursion-detection" "3.901.0" + "@aws-sdk/middleware-user-agent" "3.908.0" + "@aws-sdk/region-config-resolver" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-endpoints" "3.901.0" + "@aws-sdk/util-user-agent-browser" "3.907.0" + "@aws-sdk/util-user-agent-node" "3.908.0" + "@smithy/config-resolver" "^4.3.0" + "@smithy/core" "^3.15.0" + "@smithy/fetch-http-handler" "^5.3.1" + "@smithy/hash-node" "^4.2.0" + "@smithy/invalid-dependency" "^4.2.0" + "@smithy/middleware-content-length" "^4.2.0" + "@smithy/middleware-endpoint" "^4.3.1" + "@smithy/middleware-retry" "^4.4.1" + "@smithy/middleware-serde" "^4.2.0" + "@smithy/middleware-stack" "^4.2.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/node-http-handler" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/smithy-client" "^4.7.1" + "@smithy/types" "^4.6.0" + "@smithy/url-parser" "^4.2.0" + "@smithy/util-base64" "^4.3.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-body-length-node" "^4.2.1" + "@smithy/util-defaults-mode-browser" "^4.3.0" + "@smithy/util-defaults-mode-node" "^4.2.1" + "@smithy/util-endpoints" "^3.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-retry" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@aws-sdk/client-sso@3.714.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.714.0.tgz#a98358f499fcffec7895f9fb0fb8650b3c993bc4" - integrity sha512-pFtjY5Ga91qrryo0UfbjetdT2p9rOgtHofogAeEuGjxx7/rupBpdlW0WDOtD/7jhmbhM8WZEr6aH7GLzzkKfCA== +"@aws-sdk/core@3.908.0": + version "3.908.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.908.0.tgz#efd691b34ea3ba413f82ec27ce5fa9db4f9d386d" + integrity sha512-okl6FC2cQT1Oidvmnmvyp/IEvqENBagKO0ww4YV5UtBkf0VlhAymCWkZqhovtklsqgq0otag2VRPAgnrMt6nVQ== dependencies: - "@aws-crypto/sha256-browser" "5.2.0" - "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/core" "3.714.0" - "@aws-sdk/middleware-host-header" "3.714.0" - "@aws-sdk/middleware-logger" "3.714.0" - "@aws-sdk/middleware-recursion-detection" "3.714.0" - "@aws-sdk/middleware-user-agent" "3.714.0" - "@aws-sdk/region-config-resolver" "3.714.0" - "@aws-sdk/types" "3.714.0" - "@aws-sdk/util-endpoints" "3.714.0" - "@aws-sdk/util-user-agent-browser" "3.714.0" - "@aws-sdk/util-user-agent-node" "3.714.0" - "@smithy/config-resolver" "^3.0.13" - "@smithy/core" "^2.5.5" - "@smithy/fetch-http-handler" "^4.1.2" - "@smithy/hash-node" "^3.0.11" - "@smithy/invalid-dependency" "^3.0.11" - "@smithy/middleware-content-length" "^3.0.13" - "@smithy/middleware-endpoint" "^3.2.5" - "@smithy/middleware-retry" "^3.0.30" - "@smithy/middleware-serde" "^3.0.11" - "@smithy/middleware-stack" "^3.0.11" - "@smithy/node-config-provider" "^3.1.12" - "@smithy/node-http-handler" "^3.3.2" - "@smithy/protocol-http" "^4.1.8" - "@smithy/smithy-client" "^3.5.0" - "@smithy/types" "^3.7.2" - "@smithy/url-parser" "^3.0.11" - "@smithy/util-base64" "^3.0.0" - "@smithy/util-body-length-browser" "^3.0.0" - "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.30" - "@smithy/util-defaults-mode-node" "^3.0.30" - "@smithy/util-endpoints" "^2.1.7" - "@smithy/util-middleware" "^3.0.11" - "@smithy/util-retry" "^3.0.11" - "@smithy/util-utf8" "^3.0.0" + "@aws-sdk/types" "3.901.0" + "@aws-sdk/xml-builder" "3.901.0" + "@smithy/core" "^3.15.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/signature-v4" "^5.3.0" + "@smithy/smithy-client" "^4.7.1" + "@smithy/types" "^4.6.0" + "@smithy/util-base64" "^4.3.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@aws-sdk/client-sts@3.714.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.714.0.tgz#3222b498ae1dd83490379558eb1af27d5d89601c" - integrity sha512-ThcXgolapPsOzeavJF4Am312umFyoFBBeiTYD8PQGIiYkbJi4hXcjoWacmtkq6moMmMZSP9iK/ellls7vwY2JQ== +"@aws-sdk/credential-provider-env@3.908.0": + version "3.908.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.908.0.tgz#9767fcafbe643f0f5b5d4b6283c9dddb5fdee708" + integrity sha512-FK2YuxoI5CxUflPOIMbVAwDbi6Xvu+2sXopXLmrHc2PfI39M3vmjEoQwYCP8WuQSRb+TbAP3xAkxHjFSBFR35w== dependencies: - "@aws-crypto/sha256-browser" "5.2.0" - "@aws-crypto/sha256-js" "5.2.0" - "@aws-sdk/client-sso-oidc" "3.714.0" - "@aws-sdk/core" "3.714.0" - "@aws-sdk/credential-provider-node" "3.714.0" - "@aws-sdk/middleware-host-header" "3.714.0" - "@aws-sdk/middleware-logger" "3.714.0" - "@aws-sdk/middleware-recursion-detection" "3.714.0" - "@aws-sdk/middleware-user-agent" "3.714.0" - "@aws-sdk/region-config-resolver" "3.714.0" - "@aws-sdk/types" "3.714.0" - "@aws-sdk/util-endpoints" "3.714.0" - "@aws-sdk/util-user-agent-browser" "3.714.0" - "@aws-sdk/util-user-agent-node" "3.714.0" - "@smithy/config-resolver" "^3.0.13" - "@smithy/core" "^2.5.5" - "@smithy/fetch-http-handler" "^4.1.2" - "@smithy/hash-node" "^3.0.11" - "@smithy/invalid-dependency" "^3.0.11" - "@smithy/middleware-content-length" "^3.0.13" - "@smithy/middleware-endpoint" "^3.2.5" - "@smithy/middleware-retry" "^3.0.30" - "@smithy/middleware-serde" "^3.0.11" - "@smithy/middleware-stack" "^3.0.11" - "@smithy/node-config-provider" "^3.1.12" - "@smithy/node-http-handler" "^3.3.2" - "@smithy/protocol-http" "^4.1.8" - "@smithy/smithy-client" "^3.5.0" - "@smithy/types" "^3.7.2" - "@smithy/url-parser" "^3.0.11" - "@smithy/util-base64" "^3.0.0" - "@smithy/util-body-length-browser" "^3.0.0" - "@smithy/util-body-length-node" "^3.0.0" - "@smithy/util-defaults-mode-browser" "^3.0.30" - "@smithy/util-defaults-mode-node" "^3.0.30" - "@smithy/util-endpoints" "^2.1.7" - "@smithy/util-middleware" "^3.0.11" - "@smithy/util-retry" "^3.0.11" - "@smithy/util-utf8" "^3.0.0" + "@aws-sdk/core" "3.908.0" + "@aws-sdk/types" "3.901.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/types" "^4.6.0" tslib "^2.6.2" -"@aws-sdk/core@3.714.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.714.0.tgz#f53dbf5aa579f66bf3aa3e3e312b624e70ae871d" - integrity sha512-TlZ50d8MEPVp9O03SvisOmcmxjxhMDKHJJcrBgYjgDej6QmNfiFwtCRkReXDdkEeXP29ehMs7uPXtmVvPqziYw== +"@aws-sdk/credential-provider-http@3.908.0": + version "3.908.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.908.0.tgz#9500e348eb64cecfcaa6c10ce68785aecf3ee612" + integrity sha512-eLbz0geVW9EykujQNnYfR35Of8MreI6pau5K6XDFDUSWO9GF8wqH7CQwbXpXHBlCTHtq4QSLxzorD8U5CROhUw== dependencies: - "@aws-sdk/types" "3.714.0" - "@smithy/core" "^2.5.5" - "@smithy/node-config-provider" "^3.1.12" - "@smithy/property-provider" "^3.1.11" - "@smithy/protocol-http" "^4.1.8" - "@smithy/signature-v4" "^4.2.4" - "@smithy/smithy-client" "^3.5.0" - "@smithy/types" "^3.7.2" - "@smithy/util-middleware" "^3.0.11" - fast-xml-parser "4.4.1" + "@aws-sdk/core" "3.908.0" + "@aws-sdk/types" "3.901.0" + "@smithy/fetch-http-handler" "^5.3.1" + "@smithy/node-http-handler" "^4.3.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/smithy-client" "^4.7.1" + "@smithy/types" "^4.6.0" + "@smithy/util-stream" "^4.5.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-env@3.714.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.714.0.tgz#87b9e71d6477fbed1d4c8c3fc561c11994ba573c" - integrity sha512-0S4nKE1a+EHXAInXUeuWkyzVnXzmwIbwLStVidAIoyl6sJF8xGdw+r3AaoTr7p0YXzdoDUsn3wBTCA6ZwgXVbA== +"@aws-sdk/credential-provider-ini@3.908.0": + version "3.908.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.908.0.tgz#6f2567326245ea57e37cfb0bf30b7526c13a3965" + integrity sha512-7Cgnv5wabgFtsgr+Uc/76EfPNGyxmbG8aICn3g3D3iJlcO4uuOZI8a77i0afoDdchZrTC6TG6UusS/NAW6zEoQ== dependencies: - "@aws-sdk/core" "3.714.0" - "@aws-sdk/types" "3.714.0" - "@smithy/property-provider" "^3.1.11" - "@smithy/types" "^3.7.2" + "@aws-sdk/core" "3.908.0" + "@aws-sdk/credential-provider-env" "3.908.0" + "@aws-sdk/credential-provider-http" "3.908.0" + "@aws-sdk/credential-provider-process" "3.908.0" + "@aws-sdk/credential-provider-sso" "3.908.0" + "@aws-sdk/credential-provider-web-identity" "3.908.0" + "@aws-sdk/nested-clients" "3.908.0" + "@aws-sdk/types" "3.901.0" + "@smithy/credential-provider-imds" "^4.2.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-http@3.714.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-http/-/credential-provider-http-3.714.0.tgz#06dc80fc910ef85aadb920d9be9b6aba971ea31a" - integrity sha512-1AXEfUSQUQg+x/DpH1XJhjf2yEgTHHatM3cvYu7FZMhRXF28Q5OJDbEFPfdqrK+vmCiYRWhszDb+zuUIvz46bw== +"@aws-sdk/credential-provider-node@3.908.0": + version "3.908.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.908.0.tgz#942c686e105182b5c59fad92f65b1fdf246f347a" + integrity sha512-8OKbykpGw5bdfF/pLTf8YfUi1Kl8o1CTjBqWQTsLOkE3Ho3hsp1eQx8Cz4ttrpv0919kb+lox62DgmAOEmTr1w== dependencies: - "@aws-sdk/core" "3.714.0" - "@aws-sdk/types" "3.714.0" - "@smithy/fetch-http-handler" "^4.1.2" - "@smithy/node-http-handler" "^3.3.2" - "@smithy/property-provider" "^3.1.11" - "@smithy/protocol-http" "^4.1.8" - "@smithy/smithy-client" "^3.5.0" - "@smithy/types" "^3.7.2" - "@smithy/util-stream" "^3.3.2" + "@aws-sdk/credential-provider-env" "3.908.0" + "@aws-sdk/credential-provider-http" "3.908.0" + "@aws-sdk/credential-provider-ini" "3.908.0" + "@aws-sdk/credential-provider-process" "3.908.0" + "@aws-sdk/credential-provider-sso" "3.908.0" + "@aws-sdk/credential-provider-web-identity" "3.908.0" + "@aws-sdk/types" "3.901.0" + "@smithy/credential-provider-imds" "^4.2.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-ini@3.714.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.714.0.tgz#7fbe0a9c2ef00f1eee59f1bc24194f66c77fdaf2" - integrity sha512-w5wOcgBngfcvVev5wnYWXoc/W2ewVmGJkfRdGquhFt8pkUxktyd8eXehqkP7u31SONVlgy96EFTdSCzWpTrqOw== +"@aws-sdk/credential-provider-process@3.908.0": + version "3.908.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.908.0.tgz#b9bf7b2780a2c378d2983c3a53c2bf68de4427e5" + integrity sha512-sWnbkGjDPBi6sODUzrAh5BCDpnPw0wpK8UC/hWI13Q8KGfyatAmCBfr+9OeO3+xBHa8N5AskMncr7C4qS846yQ== dependencies: - "@aws-sdk/core" "3.714.0" - "@aws-sdk/credential-provider-env" "3.714.0" - "@aws-sdk/credential-provider-http" "3.714.0" - "@aws-sdk/credential-provider-process" "3.714.0" - "@aws-sdk/credential-provider-sso" "3.714.0" - "@aws-sdk/credential-provider-web-identity" "3.714.0" - "@aws-sdk/types" "3.714.0" - "@smithy/credential-provider-imds" "^3.2.8" - "@smithy/property-provider" "^3.1.11" - "@smithy/shared-ini-file-loader" "^3.1.12" - "@smithy/types" "^3.7.2" + "@aws-sdk/core" "3.908.0" + "@aws-sdk/types" "3.901.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-node@3.714.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.714.0.tgz#48c90bf53e55b31b23bf464b420816ec9259f0c1" - integrity sha512-ebho1HYNKzaw0ZfbI9kEicSW8J7tsOoV6EJajsjfFnuP+GY9J5Oi4759GEq1Qqj7GxIhrySOZFzif/hxAXPWtQ== +"@aws-sdk/credential-provider-sso@3.908.0": + version "3.908.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.908.0.tgz#2c21de6f6974aff4eee7464056547ae0cf8168c5" + integrity sha512-WV/aOzuS6ZZhrkPty6TJ3ZG24iS8NXP0m3GuTVuZ5tKi9Guss31/PJ1CrKPRCYGm15CsIjf+mrUxVnNYv9ap5g== dependencies: - "@aws-sdk/credential-provider-env" "3.714.0" - "@aws-sdk/credential-provider-http" "3.714.0" - "@aws-sdk/credential-provider-ini" "3.714.0" - "@aws-sdk/credential-provider-process" "3.714.0" - "@aws-sdk/credential-provider-sso" "3.714.0" - "@aws-sdk/credential-provider-web-identity" "3.714.0" - "@aws-sdk/types" "3.714.0" - "@smithy/credential-provider-imds" "^3.2.8" - "@smithy/property-provider" "^3.1.11" - "@smithy/shared-ini-file-loader" "^3.1.12" - "@smithy/types" "^3.7.2" + "@aws-sdk/client-sso" "3.908.0" + "@aws-sdk/core" "3.908.0" + "@aws-sdk/token-providers" "3.908.0" + "@aws-sdk/types" "3.901.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-process@3.714.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.714.0.tgz#1fd25ddda0bac94fad7d2cbeeeb84d5746af3f2a" - integrity sha512-mHM+zYJDUiXggBx4YvQgMOhbkV07KUib8/jWPnAZbUJcRncN/yevAp/WNocjUN4VaBWkooJUgoTET/okRK+TCQ== +"@aws-sdk/credential-provider-web-identity@3.908.0": + version "3.908.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.908.0.tgz#5ad86a4cf5fd650b60eed83d0575de4666c554b7" + integrity sha512-9xWrFn6nWlF5KlV4XYW+7E6F33S3wUUEGRZ/+pgDhkIZd527ycT2nPG2dZ3fWUZMlRmzijP20QIJDqEbbGWe1Q== dependencies: - "@aws-sdk/core" "3.714.0" - "@aws-sdk/types" "3.714.0" - "@smithy/property-provider" "^3.1.11" - "@smithy/shared-ini-file-loader" "^3.1.12" - "@smithy/types" "^3.7.2" + "@aws-sdk/core" "3.908.0" + "@aws-sdk/nested-clients" "3.908.0" + "@aws-sdk/types" "3.901.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-sso@3.714.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.714.0.tgz#803a21cbd558a2b47ab102c68ec9ed92e999523f" - integrity sha512-LQyHUQd+/A0PO96m6/A3KeekRplRpG9AmwLn8VPknlmACAhhbWHehzerCTd42V8dClf5pigr25/aVqh/2p/sRw== +"@aws-sdk/middleware-bucket-endpoint@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.901.0.tgz#5b7f740cff9f91d21084b666be225876d72e634b" + integrity sha512-mPF3N6eZlVs9G8aBSzvtoxR1RZqMo1aIwR+X8BAZSkhfj55fVF2no4IfPXfdFO3I66N+zEQ8nKoB0uTATWrogQ== dependencies: - "@aws-sdk/client-sso" "3.714.0" - "@aws-sdk/core" "3.714.0" - "@aws-sdk/token-providers" "3.714.0" - "@aws-sdk/types" "3.714.0" - "@smithy/property-provider" "^3.1.11" - "@smithy/shared-ini-file-loader" "^3.1.12" - "@smithy/types" "^3.7.2" + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-arn-parser" "3.893.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + "@smithy/util-config-provider" "^4.2.0" tslib "^2.6.2" -"@aws-sdk/credential-provider-web-identity@3.714.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.714.0.tgz#975b11d07c0f87bc4f6470cb45aef5aee590b78c" - integrity sha512-piKfEJvLrGZ0bH4NPO19d1dtfCZi2p6YJUK/9vRCD1rvJidOuHNeUwIcxTnkIMovQHX12rZVvU9ub0C3CwegUQ== +"@aws-sdk/middleware-expect-continue@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.901.0.tgz#bd6c1fde979808418ce013c6f5f379e67ef2f4c4" + integrity sha512-bwq9nj6MH38hlJwOY9QXIDwa6lI48UsaZpaXbdD71BljEIRlxDzfB4JaYb+ZNNK7RIAdzsP/K05mJty6KJAQHw== dependencies: - "@aws-sdk/core" "3.714.0" - "@aws-sdk/types" "3.714.0" - "@smithy/property-provider" "^3.1.11" - "@smithy/types" "^3.7.2" + "@aws-sdk/types" "3.901.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" tslib "^2.6.2" -"@aws-sdk/middleware-bucket-endpoint@3.714.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.714.0.tgz#c184781eb3e00648e9ca0f6db4522be8e8fbde4e" - integrity sha512-I/xSOskiseJJ8i183Z522BgqbgYzLKP7jGcg2Qeib/IWoG2IP+9DH8pwqagKaPAycyswtnoKBJiiFXY43n0CkA== - dependencies: - "@aws-sdk/types" "3.714.0" - "@aws-sdk/util-arn-parser" "3.693.0" - "@smithy/node-config-provider" "^3.1.12" - "@smithy/protocol-http" "^4.1.8" - "@smithy/types" "^3.7.2" - "@smithy/util-config-provider" "^3.0.0" - tslib "^2.6.2" - -"@aws-sdk/middleware-expect-continue@3.714.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.714.0.tgz#8ea3941adf191c94246a9bc56c443d350fd32589" - integrity sha512-rlzsXdG8Lzo4Qpl35ZnpOBAWlzvDHpP9++0AXoUwAJA0QmMm7auIRmgxJuNj91VwT9h15ZU6xjU4S7fJl4W0+w== - dependencies: - "@aws-sdk/types" "3.714.0" - "@smithy/protocol-http" "^4.1.8" - "@smithy/types" "^3.7.2" - tslib "^2.6.2" - -"@aws-sdk/middleware-flexible-checksums@3.714.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.714.0.tgz#a42c12bfc3d619f40bc1c05d00ce535b4c3264fa" - integrity sha512-y5I2mRmTDRQ/SYa+F30RRE4xchTHmDPDiYKFRRoENxFhVcrv/FbjA3hfhB8Z95JfSalzJVr+XQjd+N+t4M2gMw== +"@aws-sdk/middleware-flexible-checksums@3.908.0": + version "3.908.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.908.0.tgz#ab406ce131a4916d2724c5a297464771bd0df37f" + integrity sha512-hYGhNBvdfnxhhywYRkesdxIZD8rvhsp2CBci5kCqrR2o5VvEkn5+waUQtkREtkciEpC4ent4fadg7N9XfTKvgQ== dependencies: "@aws-crypto/crc32" "5.2.0" "@aws-crypto/crc32c" "5.2.0" "@aws-crypto/util" "5.2.0" - "@aws-sdk/core" "3.714.0" - "@aws-sdk/types" "3.714.0" - "@smithy/is-array-buffer" "^3.0.0" - "@smithy/node-config-provider" "^3.1.12" - "@smithy/protocol-http" "^4.1.8" - "@smithy/types" "^3.7.2" - "@smithy/util-middleware" "^3.0.11" - "@smithy/util-stream" "^3.3.2" - "@smithy/util-utf8" "^3.0.0" + "@aws-sdk/core" "3.908.0" + "@aws-sdk/types" "3.901.0" + "@smithy/is-array-buffer" "^4.2.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-stream" "^4.5.0" + "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@aws-sdk/middleware-host-header@3.714.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.714.0.tgz#c14707c2501e70a4343644f876bea5b575dc74e2" - integrity sha512-6l68kjNrh5QC8FGX3I3geBDavWN5Tg1RLHJ2HLA8ByGBtJyCwnz3hEkKfaxn0bBx0hF9DzbfjEOUF6cDqy2Kjg== +"@aws-sdk/middleware-host-header@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.901.0.tgz#e6b3a6706601d93949ca25167ecec50c40e3d9de" + integrity sha512-yWX7GvRmqBtbNnUW7qbre3GvZmyYwU0WHefpZzDTYDoNgatuYq6LgUIQ+z5C04/kCRoFkAFrHag8a3BXqFzq5A== dependencies: - "@aws-sdk/types" "3.714.0" - "@smithy/protocol-http" "^4.1.8" - "@smithy/types" "^3.7.2" + "@aws-sdk/types" "3.901.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" tslib "^2.6.2" -"@aws-sdk/middleware-location-constraint@3.714.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.714.0.tgz#67bcc4552287481ac631be1c7a3326601be70f9b" - integrity sha512-MX7M+V+FblujKck3fyuzePVIAy9530gY719IiSxV6uN1qLHl7VDJxNblpF/KpXakD6rOg8OpvtmqsXj9aBMftw== +"@aws-sdk/middleware-location-constraint@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.901.0.tgz#0a74fdd450cdec336f3ccdcb7b2fdbf4ce8b9e0b" + integrity sha512-MuCS5R2ngNoYifkVt05CTULvYVWX0dvRT0/Md4jE3a0u0yMygYy31C1zorwfE/SUgAQXyLmUx8ATmPp9PppImQ== dependencies: - "@aws-sdk/types" "3.714.0" - "@smithy/types" "^3.7.2" + "@aws-sdk/types" "3.901.0" + "@smithy/types" "^4.6.0" tslib "^2.6.2" -"@aws-sdk/middleware-logger@3.714.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.714.0.tgz#c059e1aabf28fdfc647db6a3dba625a9813787cd" - integrity sha512-RkqHlMvQWUaRklU1bMfUuBvdWwxgUtEqpADaHXlGVj3vtEY2UgBjy+57CveC4MByqKIunNvVHBBbjrGVtwY7Lg== +"@aws-sdk/middleware-logger@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.901.0.tgz#30562184bd0b6a90d30f2d6d58ef5054300f2652" + integrity sha512-UoHebjE7el/tfRo8/CQTj91oNUm+5Heus5/a4ECdmWaSCHCS/hXTsU3PTTHAY67oAQR8wBLFPfp3mMvXjB+L2A== dependencies: - "@aws-sdk/types" "3.714.0" - "@smithy/types" "^3.7.2" + "@aws-sdk/types" "3.901.0" + "@smithy/types" "^4.6.0" tslib "^2.6.2" -"@aws-sdk/middleware-recursion-detection@3.714.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.714.0.tgz#c2d20d335c035196ac1cd5cdf3f58c5f31b01bdb" - integrity sha512-AVU5ixnh93nqtsfgNc284oXsXaadyHGPHpql/jwgaaqQfEXjS/1/j3j9E/vpacfTTz2Vzo7hAOjnvrOXSEVDaA== +"@aws-sdk/middleware-recursion-detection@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.901.0.tgz#8492bd83aeee52f4e1b4194a81d044f46acf8c5b" + integrity sha512-Wd2t8qa/4OL0v/oDpCHHYkgsXJr8/ttCxrvCKAt0H1zZe2LlRhY9gpDVKqdertfHrHDj786fOvEQA28G1L75Dg== dependencies: - "@aws-sdk/types" "3.714.0" - "@smithy/protocol-http" "^4.1.8" - "@smithy/types" "^3.7.2" + "@aws-sdk/types" "3.901.0" + "@aws/lambda-invoke-store" "^0.0.1" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" tslib "^2.6.2" -"@aws-sdk/middleware-sdk-s3@3.714.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.714.0.tgz#d07f48aef867bf9f937031406ba70ec98d021ee5" - integrity sha512-YYhX+JefwwEsUxYs0YXn5Mfb97Lo3hwnk3qRIlUkcotCsHYwgCX4jVWjeh8HK+RFFx3Krbh/8/YmzTkI/Z4Z9Q== +"@aws-sdk/middleware-sdk-s3@3.908.0": + version "3.908.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.908.0.tgz#e65cf8668270162e469c74da726e023fbe5bd135" + integrity sha512-23MbAOHsGaD0kTVMVLumaIM1f9vtDImIn2lSvPullbjFHKS4XxfrKuPumtKDzl8gzcux+98XnmfDRKH0fzkOUA== dependencies: - "@aws-sdk/core" "3.714.0" - "@aws-sdk/types" "3.714.0" - "@aws-sdk/util-arn-parser" "3.693.0" - "@smithy/core" "^2.5.5" - "@smithy/node-config-provider" "^3.1.12" - "@smithy/protocol-http" "^4.1.8" - "@smithy/signature-v4" "^4.2.4" - "@smithy/smithy-client" "^3.5.0" - "@smithy/types" "^3.7.2" - "@smithy/util-config-provider" "^3.0.0" - "@smithy/util-middleware" "^3.0.11" - "@smithy/util-stream" "^3.3.2" - "@smithy/util-utf8" "^3.0.0" + "@aws-sdk/core" "3.908.0" + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-arn-parser" "3.893.0" + "@smithy/core" "^3.15.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/signature-v4" "^5.3.0" + "@smithy/smithy-client" "^4.7.1" + "@smithy/types" "^4.6.0" + "@smithy/util-config-provider" "^4.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-stream" "^4.5.0" + "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@aws-sdk/middleware-ssec@3.714.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.714.0.tgz#a5112a5537da9330ab476c8f9c549e3e9ffba510" - integrity sha512-RkK8REAVwNUQmYbIDRw8eYbMJ8F1Rw4C9mlME4BBMhFlelGcD3ErU2ce24moQbDxBjNwHNESmIqgmdQk93CDCQ== +"@aws-sdk/middleware-ssec@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.901.0.tgz#9a08f8a90a12c5d3eccabd884d8dfdd2f76473a4" + integrity sha512-YiLLJmA3RvjL38mFLuu8fhTTGWtp2qT24VqpucgfoyziYcTgIQkJJmKi90Xp6R6/3VcArqilyRgM1+x8i/em+Q== dependencies: - "@aws-sdk/types" "3.714.0" - "@smithy/types" "^3.7.2" + "@aws-sdk/types" "3.901.0" + "@smithy/types" "^4.6.0" tslib "^2.6.2" -"@aws-sdk/middleware-user-agent@3.714.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.714.0.tgz#15cebf91f8bf51f494174911fd8808b32bf3a905" - integrity sha512-OgLjJf7WxUqA2OgiqGCfIc68gsbXlIG8LjObBiF0qlMStAd0L23AGuK5VmYinJlsle9qUpwQvWgKFKaDgdQXgA== +"@aws-sdk/middleware-user-agent@3.908.0": + version "3.908.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.908.0.tgz#aa4827cf1c5290b5d9d44ac39f467735fd199b04" + integrity sha512-R0ePEOku72EvyJWy/D0Z5f/Ifpfxa0U9gySO3stpNhOox87XhsILpcIsCHPy0OHz1a7cMoZsF6rMKSzDeCnogQ== dependencies: - "@aws-sdk/core" "3.714.0" - "@aws-sdk/types" "3.714.0" - "@aws-sdk/util-endpoints" "3.714.0" - "@smithy/core" "^2.5.5" - "@smithy/protocol-http" "^4.1.8" - "@smithy/types" "^3.7.2" + "@aws-sdk/core" "3.908.0" + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-endpoints" "3.901.0" + "@smithy/core" "^3.15.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/types" "^4.6.0" tslib "^2.6.2" -"@aws-sdk/region-config-resolver@3.714.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.714.0.tgz#26449aeb67daa00560c69bb80cb6cd187ee18dc9" - integrity sha512-HJzsQxgMOAzZrbf/YIqEx30or4tZK1oNAk6Wm6xecUQx+23JXIaePRu1YFUOLBBERQ4QBPpISFurZWBMZ5ibAw== +"@aws-sdk/nested-clients@3.908.0": + version "3.908.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/nested-clients/-/nested-clients-3.908.0.tgz#133f316e6655b509f1b872b0ef352923ac8b86df" + integrity sha512-ZxDYrfxOKXNFHLyvJtT96TJ0p4brZOhwRE4csRXrezEVUN+pNgxuem95YvMALPVhlVqON2CTzr8BX+CcBKvX9Q== dependencies: - "@aws-sdk/types" "3.714.0" - "@smithy/node-config-provider" "^3.1.12" - "@smithy/types" "^3.7.2" - "@smithy/util-config-provider" "^3.0.0" - "@smithy/util-middleware" "^3.0.11" + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "3.908.0" + "@aws-sdk/middleware-host-header" "3.901.0" + "@aws-sdk/middleware-logger" "3.901.0" + "@aws-sdk/middleware-recursion-detection" "3.901.0" + "@aws-sdk/middleware-user-agent" "3.908.0" + "@aws-sdk/region-config-resolver" "3.901.0" + "@aws-sdk/types" "3.901.0" + "@aws-sdk/util-endpoints" "3.901.0" + "@aws-sdk/util-user-agent-browser" "3.907.0" + "@aws-sdk/util-user-agent-node" "3.908.0" + "@smithy/config-resolver" "^4.3.0" + "@smithy/core" "^3.15.0" + "@smithy/fetch-http-handler" "^5.3.1" + "@smithy/hash-node" "^4.2.0" + "@smithy/invalid-dependency" "^4.2.0" + "@smithy/middleware-content-length" "^4.2.0" + "@smithy/middleware-endpoint" "^4.3.1" + "@smithy/middleware-retry" "^4.4.1" + "@smithy/middleware-serde" "^4.2.0" + "@smithy/middleware-stack" "^4.2.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/node-http-handler" "^4.3.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/smithy-client" "^4.7.1" + "@smithy/types" "^4.6.0" + "@smithy/url-parser" "^4.2.0" + "@smithy/util-base64" "^4.3.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-body-length-node" "^4.2.1" + "@smithy/util-defaults-mode-browser" "^4.3.0" + "@smithy/util-defaults-mode-node" "^4.2.1" + "@smithy/util-endpoints" "^3.2.0" + "@smithy/util-middleware" "^4.2.0" + "@smithy/util-retry" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@aws-sdk/signature-v4-multi-region@3.714.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.714.0.tgz#91db060340d0006083cc750a4291a3144b4c4392" - integrity sha512-xIQyx0ILRtJZnSUPpMsWkwASuFDYh9GPnr7p+pmfsV5KtRQluHuoH1wPkPTeNuTnAl7RDHUOmcOgTPUCDxiKxg== +"@aws-sdk/region-config-resolver@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.901.0.tgz#6673eeda4ecc0747f93a084e876cab71431a97ca" + integrity sha512-7F0N888qVLHo4CSQOsnkZ4QAp8uHLKJ4v3u09Ly5k4AEStrSlFpckTPyUx6elwGL+fxGjNE2aakK8vEgzzCV0A== dependencies: - "@aws-sdk/middleware-sdk-s3" "3.714.0" - "@aws-sdk/types" "3.714.0" - "@smithy/protocol-http" "^4.1.8" - "@smithy/signature-v4" "^4.2.4" - "@smithy/types" "^3.7.2" + "@aws-sdk/types" "3.901.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/types" "^4.6.0" + "@smithy/util-config-provider" "^4.2.0" + "@smithy/util-middleware" "^4.2.0" tslib "^2.6.2" -"@aws-sdk/token-providers@3.714.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.714.0.tgz#c308dff77d18978f630188000aebb87be38f5526" - integrity sha512-vKN064aLE3kl+Zl16Ony3jltHnMddMBT7JRkP1L+lLywhA0PcAKxpdvComul/sTBWnbnwLnaS5NsDUhcWySH8A== +"@aws-sdk/signature-v4-multi-region@3.908.0": + version "3.908.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.908.0.tgz#05690b946b11b9a2663012aac503ed3e6f3109bc" + integrity sha512-8OodflIzZM2GVuCGiGK6hqwsbfHRDl4kQcEYzHRg9p91H4h5Y876DPvLRkwM7pSC7LKUL0XkKWWVVjwJbp6/Ig== dependencies: - "@aws-sdk/types" "3.714.0" - "@smithy/property-provider" "^3.1.11" - "@smithy/shared-ini-file-loader" "^3.1.12" - "@smithy/types" "^3.7.2" + "@aws-sdk/middleware-sdk-s3" "3.908.0" + "@aws-sdk/types" "3.901.0" + "@smithy/protocol-http" "^5.3.0" + "@smithy/signature-v4" "^5.3.0" + "@smithy/types" "^4.6.0" tslib "^2.6.2" -"@aws-sdk/types@3.714.0", "@aws-sdk/types@^3.222.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.714.0.tgz#de6afee1436d2d95364efa0663887f3bf0b1303a" - integrity sha512-ZjpP2gYbSFlxxaUDa1Il5AVvfggvUPbjzzB/l3q0gIE5Thd6xKW+yzEpt2mLZ5s5UaYSABZbF94g8NUOF4CVGA== +"@aws-sdk/token-providers@3.908.0": + version "3.908.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.908.0.tgz#ed3b064ad07db451a7abc0a8d73e1443aa5f6a19" + integrity sha512-4SosHWRQ8hj1X2yDenCYHParcCjHcd7S+Mdb/lelwF0JBFCNC+dNCI9ws3cP/dFdZO/AIhJQGUBzEQtieloixw== dependencies: - "@smithy/types" "^3.7.2" + "@aws-sdk/core" "3.908.0" + "@aws-sdk/nested-clients" "3.908.0" + "@aws-sdk/types" "3.901.0" + "@smithy/property-provider" "^4.2.0" + "@smithy/shared-ini-file-loader" "^4.3.0" + "@smithy/types" "^4.6.0" tslib "^2.6.2" -"@aws-sdk/util-arn-parser@3.693.0": - version "3.693.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.693.0.tgz#8dae27eb822ab4f88be28bb3c0fc11f1f13d3948" - integrity sha512-WC8x6ca+NRrtpAH64rWu+ryDZI3HuLwlEr8EU6/dbC/pt+r/zC0PBoC15VEygUaBA+isppCikQpGyEDu0Yj7gQ== +"@aws-sdk/types@3.901.0", "@aws-sdk/types@^3.222.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.901.0.tgz#b5a2e26c7b3fb3bbfe4c7fc24873646992a1c56c" + integrity sha512-FfEM25hLEs4LoXsLXQ/q6X6L4JmKkKkbVFpKD4mwfVHtRVQG6QxJiCPcrkcPISquiy6esbwK2eh64TWbiD60cg== + dependencies: + "@smithy/types" "^4.6.0" + tslib "^2.6.2" + +"@aws-sdk/util-arn-parser@3.893.0": + version "3.893.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.893.0.tgz#fcc9b792744b9da597662891c2422dda83881d8d" + integrity sha512-u8H4f2Zsi19DGnwj5FSZzDMhytYF/bCh37vAtBsn3cNDL3YG578X5oc+wSX54pM3tOxS+NY7tvOAo52SW7koUA== dependencies: tslib "^2.6.2" -"@aws-sdk/util-endpoints@3.714.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.714.0.tgz#f059c27bedf329584358b1f837cd9a5c220f34e2" - integrity sha512-Xv+Z2lhe7w7ZZRsgBwBMZgGTVmS+dkkj2S13uNHAx9lhB5ovM8PhK5G/j28xYf6vIibeuHkRAbb7/ozdZIGR+A== +"@aws-sdk/util-endpoints@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.901.0.tgz#be6296739d0f446b89a3f497c3a85afeb6cddd92" + integrity sha512-5nZP3hGA8FHEtKvEQf4Aww5QZOkjLW1Z+NixSd+0XKfHvA39Ah5sZboScjLx0C9kti/K3OGW1RCx5K9Zc3bZqg== dependencies: - "@aws-sdk/types" "3.714.0" - "@smithy/types" "^3.7.2" - "@smithy/util-endpoints" "^2.1.7" + "@aws-sdk/types" "3.901.0" + "@smithy/types" "^4.6.0" + "@smithy/url-parser" "^4.2.0" + "@smithy/util-endpoints" "^3.2.0" tslib "^2.6.2" "@aws-sdk/util-locate-window@^3.0.0": - version "3.693.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.693.0.tgz#1160f6d055cf074ca198eb8ecf89b6311537ad6c" - integrity sha512-ttrag6haJLWABhLqtg1Uf+4LgHWIMOVSYL+VYZmAp2v4PUGOwWmWQH0Zk8RM7YuQcLfH/EoR72/Yxz6A4FKcuw== + version "3.893.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.893.0.tgz#5df15f24e1edbe12ff1fe8906f823b51cd53bae8" + integrity sha512-T89pFfgat6c8nMmpI8eKjBcDcgJq36+m9oiXbcUzeU55MP9ZuGgBomGjGnHaEyF36jenW9gmg3NfZDm0AO2XPg== dependencies: tslib "^2.6.2" -"@aws-sdk/util-user-agent-browser@3.714.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.714.0.tgz#7768660fa92a70b78406810a30174fb20508eb61" - integrity sha512-OdJJ03cP9/MgIVToPJPCPUImbpZzTcwdIgbXC0tUQPJhbD7b7cB4LdnkhNHko+MptpOrCq4CPY/33EpOjRdofw== +"@aws-sdk/util-user-agent-browser@3.907.0": + version "3.907.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.907.0.tgz#96b621c66530c061fbc51f5bf4931e64429927d4" + integrity sha512-Hus/2YCQmtCEfr4Ls88d07Q99Ex59uvtktiPTV963Q7w7LHuIT/JBjrbwNxtSm2KlJR9PHNdqxwN+fSuNsMGMQ== dependencies: - "@aws-sdk/types" "3.714.0" - "@smithy/types" "^3.7.2" + "@aws-sdk/types" "3.901.0" + "@smithy/types" "^4.6.0" bowser "^2.11.0" tslib "^2.6.2" -"@aws-sdk/util-user-agent-node@3.714.0": - version "3.714.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.714.0.tgz#b9c86713fb0c9770cec9935eac93a74cf70844fd" - integrity sha512-x8JoZb7yBEbNUmHUNoRAP4L++6A5uZCVf2yFLw8CZKpH4q+Cf1a68ou48OfnND3H0rbBnLXc/3uOlseRvd57/g== +"@aws-sdk/util-user-agent-node@3.908.0": + version "3.908.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.908.0.tgz#37d0397a3dac1705693b4cad5fe79da5bd04e46d" + integrity sha512-l6AEaKUAYarcEy8T8NZ+dNZ00VGLs3fW2Cqu1AuPENaSad0/ahEU+VU7MpXS8FhMRGPgplxKVgCTLyTY0Lbssw== dependencies: - "@aws-sdk/middleware-user-agent" "3.714.0" - "@aws-sdk/types" "3.714.0" - "@smithy/node-config-provider" "^3.1.12" - "@smithy/types" "^3.7.2" + "@aws-sdk/middleware-user-agent" "3.908.0" + "@aws-sdk/types" "3.901.0" + "@smithy/node-config-provider" "^4.3.0" + "@smithy/types" "^4.6.0" tslib "^2.6.2" -"@aws-sdk/xml-builder@3.709.0": - version "3.709.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.709.0.tgz#5841faa1e78afcea064557a1a56709978b325758" - integrity sha512-2GPCwlNxeHspoK/Mc8nbk9cBOkSpp3j2SJUQmFnyQK6V/pR6II2oPRyZkMomug1Rc10hqlBHByMecq4zhV2uUw== +"@aws-sdk/xml-builder@3.901.0": + version "3.901.0" + resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.901.0.tgz#3cd2e3929cefafd771c8bd790ec6965faa1be49d" + integrity sha512-pxFCkuAP7Q94wMTNPAwi6hEtNrp/BdFf+HOrIEeFQsk4EoOmpKY3I6S+u6A9Wg295J80Kh74LqDWM22ux3z6Aw== dependencies: - "@smithy/types" "^3.7.2" + "@smithy/types" "^4.6.0" + fast-xml-parser "5.2.5" tslib "^2.6.2" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.2": - version "7.24.2" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz" - integrity sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ== - dependencies: - "@babel/highlight" "^7.24.2" - picocolors "^1.0.0" +"@aws/lambda-invoke-store@^0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@aws/lambda-invoke-store/-/lambda-invoke-store-0.0.1.tgz#92d792a7dda250dfcb902e13228f37a81be57c8f" + integrity sha512-ORHRQ2tmvnBXc8t/X9Z8IcSbBA4xTLKuN873FopzklHMeqBst7YG0d+AX97inkvDX+NChYtSr+qGfcqGFaI8Zw== -"@babel/code-frame@^7.27.1": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.27.1.tgz#200f715e66d52a23b221a9435534a91cc13ad5be" integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== @@ -634,38 +596,12 @@ js-tokens "^4.0.0" picocolors "^1.1.1" -"@babel/compat-data@^7.23.5": - version "7.24.4" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz" - integrity sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ== - "@babel/compat-data@^7.27.2": - version "7.27.2" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.27.2.tgz#4183f9e642fd84e74e3eea7ffa93a412e3b102c9" - integrity sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ== + version "7.28.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.28.4.tgz#96fdf1af1b8859c8474ab39c295312bfb7c24b04" + integrity sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw== -"@babel/core@^7.21.3", "@babel/core@^7.23.5": - version "7.24.5" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz" - integrity sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.24.2" - "@babel/generator" "^7.24.5" - "@babel/helper-compilation-targets" "^7.23.6" - "@babel/helper-module-transforms" "^7.24.5" - "@babel/helpers" "^7.24.5" - "@babel/parser" "^7.24.5" - "@babel/template" "^7.24.0" - "@babel/traverse" "^7.24.5" - "@babel/types" "^7.24.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/core@^7.26.10": +"@babel/core@^7.21.3", "@babel/core@^7.26.10", "@babel/core@^7.28.0": version "7.28.4" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.28.4.tgz#12a550b8794452df4c8b084f95003bce1742d496" integrity sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA== @@ -686,27 +622,6 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.24.5": - version "7.24.5" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz" - integrity sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA== - dependencies: - "@babel/types" "^7.24.5" - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - jsesc "^2.5.1" - -"@babel/generator@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.27.1.tgz#862d4fad858f7208edd487c28b58144036b76230" - integrity sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w== - dependencies: - "@babel/parser" "^7.27.1" - "@babel/types" "^7.27.1" - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - jsesc "^3.0.2" - "@babel/generator@^7.28.3": version "7.28.3" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.28.3.tgz#9626c1741c650cbac39121694a0f2d7451b8ef3e" @@ -718,17 +633,6 @@ "@jridgewell/trace-mapping" "^0.3.28" jsesc "^3.0.2" -"@babel/helper-compilation-targets@^7.23.6": - version "7.23.6" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz" - integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== - dependencies: - "@babel/compat-data" "^7.23.5" - "@babel/helper-validator-option" "^7.23.5" - browserslist "^4.22.2" - lru-cache "^5.1.1" - semver "^6.3.1" - "@babel/helper-compilation-targets@^7.27.2": version "7.27.2" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz#46a0f6efab808d51d29ce96858dd10ce8732733d" @@ -740,38 +644,11 @@ lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-environment-visitor@^7.22.20": - version "7.22.20" - resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz" - integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== - -"@babel/helper-function-name@^7.23.0": - version "7.23.0" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz" - integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== - dependencies: - "@babel/template" "^7.22.15" - "@babel/types" "^7.23.0" - "@babel/helper-globals@^7.28.0": version "7.28.0" resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz#b9430df2aa4e17bc28665eadeae8aa1d985e6674" integrity sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw== -"@babel/helper-hoist-variables@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz" - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-module-imports@^7.24.3": - version "7.24.3" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz" - integrity sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg== - dependencies: - "@babel/types" "^7.24.0" - "@babel/helper-module-imports@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz#7ef769a323e2655e126673bb6d2d6913bbead204" @@ -780,17 +657,6 @@ "@babel/traverse" "^7.27.1" "@babel/types" "^7.27.1" -"@babel/helper-module-transforms@^7.24.5": - version "7.24.5" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz" - integrity sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A== - dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-module-imports" "^7.24.3" - "@babel/helper-simple-access" "^7.24.5" - "@babel/helper-split-export-declaration" "^7.24.5" - "@babel/helper-validator-identifier" "^7.24.5" - "@babel/helper-module-transforms@^7.28.3": version "7.28.3" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz#a2b37d3da3b2344fe085dab234426f2b9a2fa5f6" @@ -800,69 +666,26 @@ "@babel/helper-validator-identifier" "^7.27.1" "@babel/traverse" "^7.28.3" -"@babel/helper-plugin-utils@^7.24.0", "@babel/helper-plugin-utils@^7.24.5": - version "7.24.5" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz" - integrity sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ== - "@babel/helper-plugin-utils@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz#ddb2f876534ff8013e6c2b299bf4d39b3c51d44c" integrity sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw== -"@babel/helper-simple-access@^7.24.5": - version "7.24.5" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz" - integrity sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ== - dependencies: - "@babel/types" "^7.24.5" - -"@babel/helper-split-export-declaration@^7.24.5": - version "7.24.5" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz" - integrity sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q== - dependencies: - "@babel/types" "^7.24.5" - -"@babel/helper-string-parser@^7.24.1": - version "7.24.1" - resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz" - integrity sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ== - "@babel/helper-string-parser@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== -"@babel/helper-validator-identifier@^7.24.5": - version "7.24.5" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz" - integrity sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA== - "@babel/helper-validator-identifier@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz#a7054dcc145a967dd4dc8fee845a57c1316c9df8" integrity sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== -"@babel/helper-validator-option@^7.23.5": - version "7.23.5" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz" - integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== - "@babel/helper-validator-option@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz#fa52f5b1e7db1ab049445b421c4471303897702f" integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg== -"@babel/helpers@^7.24.5": - version "7.24.5" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz" - integrity sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q== - dependencies: - "@babel/template" "^7.24.0" - "@babel/traverse" "^7.24.5" - "@babel/types" "^7.24.5" - "@babel/helpers@^7.28.4": version "7.28.4" resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.4.tgz#fe07274742e95bdf7cf1443593eeb8926ab63827" @@ -871,29 +694,7 @@ "@babel/template" "^7.27.2" "@babel/types" "^7.28.4" -"@babel/highlight@^7.24.2": - version "7.24.5" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz" - integrity sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw== - dependencies: - "@babel/helper-validator-identifier" "^7.24.5" - chalk "^2.4.2" - js-tokens "^4.0.0" - picocolors "^1.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.24.0", "@babel/parser@^7.24.5": - version "7.24.5" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz" - integrity sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg== - -"@babel/parser@^7.27.1", "@babel/parser@^7.27.2": - version "7.27.2" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.2.tgz#577518bedb17a2ce4212afd052e01f7df0941127" - integrity sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw== - dependencies: - "@babel/types" "^7.27.1" - -"@babel/parser@^7.28.3", "@babel/parser@^7.28.4": +"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.27.2", "@babel/parser@^7.28.3", "@babel/parser@^7.28.4": version "7.28.4" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.28.4.tgz#da25d4643532890932cc03f7705fe19637e03fa8" integrity sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg== @@ -907,49 +708,26 @@ dependencies: "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-react-jsx-self@^7.23.3": - version "7.24.5" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.5.tgz" - integrity sha512-RtCJoUO2oYrYwFPtR1/jkoBEcFuI1ae9a9IMxeyAVa3a1Ap4AnxmyIKG2b2FaJKqkidw/0cxRbWN+HOs6ZWd1w== +"@babel/plugin-transform-react-jsx-self@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz#af678d8506acf52c577cac73ff7fe6615c85fc92" + integrity sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw== dependencies: - "@babel/helper-plugin-utils" "^7.24.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-transform-react-jsx-source@^7.23.3": - version "7.24.1" - resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.1.tgz" - integrity sha512-1v202n7aUq4uXAieRTKcwPzNyphlCuqHHDcdSNc+vdhoTEZcFMh+L5yZuCmGaIO7bs1nJUNfHB89TZyoL48xNA== +"@babel/plugin-transform-react-jsx-source@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz#dcfe2c24094bb757bf73960374e7c55e434f19f0" + integrity sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw== dependencies: - "@babel/helper-plugin-utils" "^7.24.0" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/runtime@^7.18.3", "@babel/runtime@^7.20.0", "@babel/runtime@^7.20.7": - version "7.26.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.0.tgz#8600c2f595f277c60815256418b85356a65173c1" - integrity sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw== - dependencies: - regenerator-runtime "^0.14.0" - -"@babel/runtime@^7.23.2", "@babel/runtime@^7.23.9": - version "7.24.5" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz" - integrity sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g== - dependencies: - regenerator-runtime "^0.14.0" - -"@babel/runtime@^7.9.2": +"@babel/runtime@^7.18.3", "@babel/runtime@^7.20.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.23.2", "@babel/runtime@^7.23.9", "@babel/runtime@^7.9.2": version "7.28.4" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.4.tgz#a70226016fabe25c5783b2f22d3e1c9bc5ca3326" integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ== -"@babel/template@^7.22.15", "@babel/template@^7.24.0": - version "7.24.0" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz" - integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA== - dependencies: - "@babel/code-frame" "^7.23.5" - "@babel/parser" "^7.24.0" - "@babel/types" "^7.24.0" - -"@babel/template@^7.27.1", "@babel/template@^7.27.2": +"@babel/template@^7.27.2": version "7.27.2" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.2.tgz#fa78ceed3c4e7b63ebf6cb39e5852fca45f6809d" integrity sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw== @@ -958,36 +736,7 @@ "@babel/parser" "^7.27.2" "@babel/types" "^7.27.1" -"@babel/traverse@^7.24.5": - version "7.24.5" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz" - integrity sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA== - dependencies: - "@babel/code-frame" "^7.24.2" - "@babel/generator" "^7.24.5" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.24.5" - "@babel/parser" "^7.24.5" - "@babel/types" "^7.24.5" - debug "^4.3.1" - globals "^11.1.0" - -"@babel/traverse@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.27.1.tgz#4db772902b133bbddd1c4f7a7ee47761c1b9f291" - integrity sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg== - dependencies: - "@babel/code-frame" "^7.27.1" - "@babel/generator" "^7.27.1" - "@babel/parser" "^7.27.1" - "@babel/template" "^7.27.1" - "@babel/types" "^7.27.1" - debug "^4.3.1" - globals "^11.1.0" - -"@babel/traverse@^7.28.3", "@babel/traverse@^7.28.4": +"@babel/traverse@^7.27.1", "@babel/traverse@^7.28.3", "@babel/traverse@^7.28.4": version "7.28.4" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.28.4.tgz#8d456101b96ab175d487249f60680221692b958b" integrity sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ== @@ -1000,24 +749,7 @@ "@babel/types" "^7.28.4" debug "^4.3.1" -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.21.3", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.24.0", "@babel/types@^7.24.5": - version "7.24.5" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz" - integrity sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ== - dependencies: - "@babel/helper-string-parser" "^7.24.1" - "@babel/helper-validator-identifier" "^7.24.5" - to-fast-properties "^2.0.0" - -"@babel/types@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.1.tgz#9defc53c16fc899e46941fc6901a9eea1c9d8560" - integrity sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q== - dependencies: - "@babel/helper-string-parser" "^7.27.1" - "@babel/helper-validator-identifier" "^7.27.1" - -"@babel/types@^7.28.2", "@babel/types@^7.28.4": +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.21.3", "@babel/types@^7.27.1", "@babel/types@^7.28.2", "@babel/types@^7.28.4": version "7.28.4" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.28.4.tgz#0a4e618f4c60a7cd6c11cb2d48060e4dbe38ac3a" integrity sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q== @@ -1025,162 +757,176 @@ "@babel/helper-string-parser" "^7.27.1" "@babel/helper-validator-identifier" "^7.27.1" -"@bufbuild/protobuf@^2.0.0": - version "2.2.2" - resolved "https://registry.yarnpkg.com/@bufbuild/protobuf/-/protobuf-2.2.2.tgz#1a6d89603fb215dc4d4178052d05b30b83c75402" - integrity sha512-UNtPCbrwrenpmrXuRwn9jYpPoweNXj8X5sMvYgsqYyaH8jQ6LfUJSk3dJLnBK+6sfYPrF4iAIo5sd5HQ+tg75A== +"@borewit/text-codec@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@borewit/text-codec/-/text-codec-0.1.1.tgz#7e7f27092473d5eabcffef693a849f2cc48431da" + integrity sha512-5L/uBxmjaCIX5h8Z+uu+kA9BQLkc/Wl06UGR5ajNRxu+/XjonB5i8JpgFMrPj3LXTCPA0pv8yxUvbUi+QthGGA== + +"@bufbuild/protobuf@2.9.0", "@bufbuild/protobuf@^2.4.0", "@bufbuild/protobuf@^2.5.0": + version "2.9.0" + resolved "https://registry.yarnpkg.com/@bufbuild/protobuf/-/protobuf-2.9.0.tgz#ff8827be3d8e56d74a03530cff8b0e1952aa115e" + integrity sha512-rnJenoStJ8nvmt9Gzye8nkYd6V22xUAnu4086ER7h1zJ508vStko4pMvDeQ446ilDTFpV5wnoc5YS7XvMwwMqA== + +"@bufbuild/protoplugin@^2.4.0": + version "2.9.0" + resolved "https://registry.yarnpkg.com/@bufbuild/protoplugin/-/protoplugin-2.9.0.tgz#9cee42c572c5b91ffeb5a7e0caf68bae60e6bafe" + integrity sha512-uoiwNVYoTq+AyqaV1L6pBazGx5fXOO89L0NSR9/7hEfo0Y8n9T1jsKGu4mkitLmP3z+8gJREaule1mMuKBPyYw== + dependencies: + "@bufbuild/protobuf" "2.9.0" + "@typescript/vfs" "^1.5.2" + typescript "5.4.5" "@commitlint/cli@^19.6.0": - version "19.6.0" - resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-19.6.0.tgz#98e7fc8501cc38b6eef4b7f61e19b15f3c53700e" - integrity sha512-v17BgGD9w5KnthaKxXnEg6KLq6DYiAxyiN44TpiRtqyW8NSq+Kx99mkEG8Qo6uu6cI5eMzMojW2muJxjmPnF8w== + version "19.8.1" + resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-19.8.1.tgz#85f7d9f331344e1f0a2b9d8b24fd3695466e1158" + integrity sha512-LXUdNIkspyxrlV6VDHWBmCZRtkEVRpBKxi2Gtw3J54cGWhLCTouVD/Q6ZSaSvd2YaDObWK8mDjrz3TIKtaQMAA== dependencies: - "@commitlint/format" "^19.5.0" - "@commitlint/lint" "^19.6.0" - "@commitlint/load" "^19.5.0" - "@commitlint/read" "^19.5.0" - "@commitlint/types" "^19.5.0" - tinyexec "^0.3.0" + "@commitlint/format" "^19.8.1" + "@commitlint/lint" "^19.8.1" + "@commitlint/load" "^19.8.1" + "@commitlint/read" "^19.8.1" + "@commitlint/types" "^19.8.1" + tinyexec "^1.0.0" yargs "^17.0.0" "@commitlint/config-conventional@^19.6.0": - version "19.6.0" - resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-19.6.0.tgz#badba72c8639ea79291e2941001bd7ea7fad3a2c" - integrity sha512-DJT40iMnTYtBtUfw9ApbsLZFke1zKh6llITVJ+x9mtpHD08gsNXaIRqHTmwTZL3dNX5+WoyK7pCN/5zswvkBCQ== + version "19.8.1" + resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-19.8.1.tgz#eab42df58cda44f18410ae0cbd6785ece00f214b" + integrity sha512-/AZHJL6F6B/G959CsMAzrPKKZjeEiAVifRyEwXxcT6qtqbPwGw+iQxmNS+Bu+i09OCtdNRW6pNpBvgPrtMr9EQ== dependencies: - "@commitlint/types" "^19.5.0" + "@commitlint/types" "^19.8.1" conventional-changelog-conventionalcommits "^7.0.2" -"@commitlint/config-validator@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-19.5.0.tgz#f0a4eda2109fc716ef01bb8831af9b02e3a1e568" - integrity sha512-CHtj92H5rdhKt17RmgALhfQt95VayrUo2tSqY9g2w+laAXyk7K/Ef6uPm9tn5qSIwSmrLjKaXK9eiNuxmQrDBw== +"@commitlint/config-validator@^19.8.1": + version "19.8.1" + resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-19.8.1.tgz#29e9bb1360fa41b9439b23d8e25deaaf097306b5" + integrity sha512-0jvJ4u+eqGPBIzzSdqKNX1rvdbSU1lPNYlfQQRIFnBgLy26BtC0cFnr7c/AyuzExMxWsMOte6MkTi9I3SQ3iGQ== dependencies: - "@commitlint/types" "^19.5.0" + "@commitlint/types" "^19.8.1" ajv "^8.11.0" -"@commitlint/ensure@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-19.5.0.tgz#b087374a6a0a0140e5925a82901d234885d9f6dd" - integrity sha512-Kv0pYZeMrdg48bHFEU5KKcccRfKmISSm9MvgIgkpI6m+ohFTB55qZlBW6eYqh/XDfRuIO0x4zSmvBjmOwWTwkg== +"@commitlint/ensure@^19.8.1": + version "19.8.1" + resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-19.8.1.tgz#938c54d6f586bda600b5c8e8e842edb281546e14" + integrity sha512-mXDnlJdvDzSObafjYrOSvZBwkD01cqB4gbnnFuVyNpGUM5ijwU/r/6uqUmBXAAOKRfyEjpkGVZxaDsCVnHAgyw== dependencies: - "@commitlint/types" "^19.5.0" + "@commitlint/types" "^19.8.1" lodash.camelcase "^4.3.0" lodash.kebabcase "^4.1.1" lodash.snakecase "^4.1.1" lodash.startcase "^4.4.0" lodash.upperfirst "^4.3.1" -"@commitlint/execute-rule@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-19.5.0.tgz#c13da8c03ea0379f30856111e27d57518e25b8a2" - integrity sha512-aqyGgytXhl2ejlk+/rfgtwpPexYyri4t8/n4ku6rRJoRhGZpLFMqrZ+YaubeGysCP6oz4mMA34YSTaSOKEeNrg== +"@commitlint/execute-rule@^19.8.1": + version "19.8.1" + resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-19.8.1.tgz#53000363b737773e2d25e97c20f15eaa78742067" + integrity sha512-YfJyIqIKWI64Mgvn/sE7FXvVMQER/Cd+s3hZke6cI1xgNT/f6ZAz5heND0QtffH+KbcqAwXDEE1/5niYayYaQA== -"@commitlint/format@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-19.5.0.tgz#d879db2d97d70ae622397839fb8603d56e85a250" - integrity sha512-yNy088miE52stCI3dhG/vvxFo9e4jFkU1Mj3xECfzp/bIS/JUay4491huAlVcffOoMK1cd296q0W92NlER6r3A== +"@commitlint/format@^19.8.1": + version "19.8.1" + resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-19.8.1.tgz#3e09b1291b3e29092d7a86f0afbbcfc0d99d3ad4" + integrity sha512-kSJj34Rp10ItP+Eh9oCItiuN/HwGQMXBnIRk69jdOwEW9llW9FlyqcWYbHPSGofmjsqeoxa38UaEA5tsbm2JWw== dependencies: - "@commitlint/types" "^19.5.0" + "@commitlint/types" "^19.8.1" chalk "^5.3.0" -"@commitlint/is-ignored@^19.6.0": - version "19.6.0" - resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-19.6.0.tgz#6adb9097d36b68e00b9c06a73d7a08e9f54c54dc" - integrity sha512-Ov6iBgxJQFR9koOupDPHvcHU9keFupDgtB3lObdEZDroiG4jj1rzky60fbQozFKVYRTUdrBGICHG0YVmRuAJmw== +"@commitlint/is-ignored@^19.8.1": + version "19.8.1" + resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-19.8.1.tgz#fed0851360ea2d21799eaf8ec9ef6d98c15536e3" + integrity sha512-AceOhEhekBUQ5dzrVhDDsbMaY5LqtN8s1mqSnT2Kz1ERvVZkNihrs3Sfk1Je/rxRNbXYFzKZSHaPsEJJDJV8dg== dependencies: - "@commitlint/types" "^19.5.0" + "@commitlint/types" "^19.8.1" semver "^7.6.0" -"@commitlint/lint@^19.6.0": - version "19.6.0" - resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-19.6.0.tgz#f9fc9b11b808c96bd3f85e882e056daabac40c36" - integrity sha512-LRo7zDkXtcIrpco9RnfhOKeg8PAnE3oDDoalnrVU/EVaKHYBWYL1DlRR7+3AWn0JiBqD8yKOfetVxJGdEtZ0tg== +"@commitlint/lint@^19.8.1": + version "19.8.1" + resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-19.8.1.tgz#c21bf9000ca54e41c5b0139c98aaf12473c03bb0" + integrity sha512-52PFbsl+1EvMuokZXLRlOsdcLHf10isTPlWwoY1FQIidTsTvjKXVXYb7AvtpWkDzRO2ZsqIgPK7bI98x8LRUEw== dependencies: - "@commitlint/is-ignored" "^19.6.0" - "@commitlint/parse" "^19.5.0" - "@commitlint/rules" "^19.6.0" - "@commitlint/types" "^19.5.0" + "@commitlint/is-ignored" "^19.8.1" + "@commitlint/parse" "^19.8.1" + "@commitlint/rules" "^19.8.1" + "@commitlint/types" "^19.8.1" -"@commitlint/load@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-19.5.0.tgz#67f90a294894d1f99b930b6152bed2df44a81794" - integrity sha512-INOUhkL/qaKqwcTUvCE8iIUf5XHsEPCLY9looJ/ipzi7jtGhgmtH7OOFiNvwYgH7mA8osUWOUDV8t4E2HAi4xA== +"@commitlint/load@^19.8.1": + version "19.8.1" + resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-19.8.1.tgz#b997b1f65a961bf0a47189f15f6dc8786ceb4576" + integrity sha512-9V99EKG3u7z+FEoe4ikgq7YGRCSukAcvmKQuTtUyiYPnOd9a2/H9Ak1J9nJA1HChRQp9OA/sIKPugGS+FK/k1A== dependencies: - "@commitlint/config-validator" "^19.5.0" - "@commitlint/execute-rule" "^19.5.0" - "@commitlint/resolve-extends" "^19.5.0" - "@commitlint/types" "^19.5.0" + "@commitlint/config-validator" "^19.8.1" + "@commitlint/execute-rule" "^19.8.1" + "@commitlint/resolve-extends" "^19.8.1" + "@commitlint/types" "^19.8.1" chalk "^5.3.0" cosmiconfig "^9.0.0" - cosmiconfig-typescript-loader "^5.0.0" + cosmiconfig-typescript-loader "^6.1.0" lodash.isplainobject "^4.0.6" lodash.merge "^4.6.2" lodash.uniq "^4.5.0" -"@commitlint/message@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-19.5.0.tgz#c062d9a1d2b3302c3a8cac25d6d1125ea9c019b2" - integrity sha512-R7AM4YnbxN1Joj1tMfCyBryOC5aNJBdxadTZkuqtWi3Xj0kMdutq16XQwuoGbIzL2Pk62TALV1fZDCv36+JhTQ== +"@commitlint/message@^19.8.1": + version "19.8.1" + resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-19.8.1.tgz#d5d0d87837483d9f9b4559ffa06e1aaa26d266d6" + integrity sha512-+PMLQvjRXiU+Ae0Wc+p99EoGEutzSXFVwQfa3jRNUZLNW5odZAyseb92OSBTKCu+9gGZiJASt76Cj3dLTtcTdg== -"@commitlint/parse@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-19.5.0.tgz#b450dad9b5a95ac5ba472d6d0fdab822dce946fc" - integrity sha512-cZ/IxfAlfWYhAQV0TwcbdR1Oc0/r0Ik1GEessDJ3Lbuma/MRO8FRQX76eurcXtmhJC//rj52ZSZuXUg0oIX0Fw== +"@commitlint/parse@^19.8.1": + version "19.8.1" + resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-19.8.1.tgz#73125d04f07f11477cf563cbfe0cc9f6dc85a747" + integrity sha512-mmAHYcMBmAgJDKWdkjIGq50X4yB0pSGpxyOODwYmoexxxiUCy5JJT99t1+PEMK7KtsCtzuWYIAXYAiKR+k+/Jw== dependencies: - "@commitlint/types" "^19.5.0" + "@commitlint/types" "^19.8.1" conventional-changelog-angular "^7.0.0" conventional-commits-parser "^5.0.0" -"@commitlint/read@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-19.5.0.tgz#601f9f1afe69852b0f28aa81cd455b40979fad6b" - integrity sha512-TjS3HLPsLsxFPQj6jou8/CZFAmOP2y+6V4PGYt3ihbQKTY1Jnv0QG28WRKl/d1ha6zLODPZqsxLEov52dhR9BQ== +"@commitlint/read@^19.8.1": + version "19.8.1" + resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-19.8.1.tgz#812930fd0f616e796e122751cb983346e5454ec8" + integrity sha512-03Jbjb1MqluaVXKHKRuGhcKWtSgh3Jizqy2lJCRbRrnWpcM06MYm8th59Xcns8EqBYvo0Xqb+2DoZFlga97uXQ== dependencies: - "@commitlint/top-level" "^19.5.0" - "@commitlint/types" "^19.5.0" + "@commitlint/top-level" "^19.8.1" + "@commitlint/types" "^19.8.1" git-raw-commits "^4.0.0" minimist "^1.2.8" - tinyexec "^0.3.0" + tinyexec "^1.0.0" -"@commitlint/resolve-extends@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-19.5.0.tgz#f3ec33e12d10df90cae0bfad8e593431fb61b18e" - integrity sha512-CU/GscZhCUsJwcKTJS9Ndh3AKGZTNFIOoQB2n8CmFnizE0VnEuJoum+COW+C1lNABEeqk6ssfc1Kkalm4bDklA== +"@commitlint/resolve-extends@^19.8.1": + version "19.8.1" + resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-19.8.1.tgz#a44bb4c22e3e7d407cc9a3758fcf58f5c360b694" + integrity sha512-GM0mAhFk49I+T/5UCYns5ayGStkTt4XFFrjjf0L4S26xoMTSkdCf9ZRO8en1kuopC4isDFuEm7ZOm/WRVeElVg== dependencies: - "@commitlint/config-validator" "^19.5.0" - "@commitlint/types" "^19.5.0" + "@commitlint/config-validator" "^19.8.1" + "@commitlint/types" "^19.8.1" global-directory "^4.0.1" import-meta-resolve "^4.0.0" lodash.mergewith "^4.6.2" resolve-from "^5.0.0" -"@commitlint/rules@^19.6.0": - version "19.6.0" - resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-19.6.0.tgz#2436da7974c3cf2a7236257f3ef5dd40c4d91312" - integrity sha512-1f2reW7lbrI0X0ozZMesS/WZxgPa4/wi56vFuJENBmed6mWq5KsheN/nxqnl/C23ioxpPO/PL6tXpiiFy5Bhjw== +"@commitlint/rules@^19.8.1": + version "19.8.1" + resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-19.8.1.tgz#1cea53d5bf970ce56dc105e1da5e6655a2fe7a5f" + integrity sha512-Hnlhd9DyvGiGwjfjfToMi1dsnw1EXKGJNLTcsuGORHz6SS9swRgkBsou33MQ2n51/boIDrbsg4tIBbRpEWK2kw== dependencies: - "@commitlint/ensure" "^19.5.0" - "@commitlint/message" "^19.5.0" - "@commitlint/to-lines" "^19.5.0" - "@commitlint/types" "^19.5.0" + "@commitlint/ensure" "^19.8.1" + "@commitlint/message" "^19.8.1" + "@commitlint/to-lines" "^19.8.1" + "@commitlint/types" "^19.8.1" -"@commitlint/to-lines@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-19.5.0.tgz#e4b7f34f09064568c96a74de4f1fc9f466c4d472" - integrity sha512-R772oj3NHPkodOSRZ9bBVNq224DOxQtNef5Pl8l2M8ZnkkzQfeSTr4uxawV2Sd3ui05dUVzvLNnzenDBO1KBeQ== +"@commitlint/to-lines@^19.8.1": + version "19.8.1" + resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-19.8.1.tgz#c1a28a84542c7ba321c1c11178b83ae024257b47" + integrity sha512-98Mm5inzbWTKuZQr2aW4SReY6WUukdWXuZhrqf1QdKPZBCCsXuG87c+iP0bwtD6DBnmVVQjgp4whoHRVixyPBg== -"@commitlint/top-level@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-19.5.0.tgz#0017ffe39b5ba3611a1debd62efe28803601a14f" - integrity sha512-IP1YLmGAk0yWrImPRRc578I3dDUI5A2UBJx9FbSOjxe9sTlzFiwVJ+zeMLgAtHMtGZsC8LUnzmW1qRemkFU4ng== +"@commitlint/top-level@^19.8.1": + version "19.8.1" + resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-19.8.1.tgz#2c942189d83a29b21ff7ba6e91607301efdf5916" + integrity sha512-Ph8IN1IOHPSDhURCSXBz44+CIu+60duFwRsg6HqaISFHQHbmBtxVw4ZrFNIYUzEP7WwrNPxa2/5qJ//NK1FGcw== dependencies: find-up "^7.0.0" -"@commitlint/types@^19.5.0": - version "19.5.0" - resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-19.5.0.tgz#c5084d1231d4dd50e40bdb656ee7601f691400b3" - integrity sha512-DSHae2obMSMkAtTBSOulg5X7/z+rGLxcXQIkg3OmWvY6wifojge5uVMydfhUvs7yQj+V7jNmRZ2Xzl8GJyqRgg== +"@commitlint/types@^19.8.1": + version "19.8.1" + resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-19.8.1.tgz#7971fbd56b0cfb31692a4e1941b74ac8217c44e5" + integrity sha512-/yCrWGCoA1SVKOks25EGadP9Pnj0oAIHGpl2wH2M2Y46dPM2ueb8wyCVOD7O3WCTkaJ0IkKvzhl1JY7+uCT2Dw== dependencies: "@types/conventional-commits-parser" "^5.0.0" chalk "^5.3.0" @@ -1192,9 +938,37 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" +"@csstools/color-helpers@^5.1.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@csstools/color-helpers/-/color-helpers-5.1.0.tgz#106c54c808cabfd1ab4c602d8505ee584c2996ef" + integrity sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA== + +"@csstools/css-calc@^2.1.3", "@csstools/css-calc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@csstools/css-calc/-/css-calc-2.1.4.tgz#8473f63e2fcd6e459838dd412401d5948f224c65" + integrity sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ== + +"@csstools/css-color-parser@^3.0.9": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz#4e386af3a99dd36c46fef013cfe4c1c341eed6f0" + integrity sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA== + dependencies: + "@csstools/color-helpers" "^5.1.0" + "@csstools/css-calc" "^2.1.4" + +"@csstools/css-parser-algorithms@^3.0.4": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz#5755370a9a29abaec5515b43c8b3f2cf9c2e3076" + integrity sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ== + +"@csstools/css-tokenizer@^3.0.3": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz#333fedabc3fd1a8e5d0100013731cf19e6a8c5d3" + integrity sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw== + "@develar/schema-utils@~2.6.5": version "2.6.5" - resolved "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz" + resolved "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz#3ece22c5838402419a6e0425f85742b961d9b6c6" integrity sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig== dependencies: ajv "^6.12.0" @@ -1202,7 +976,7 @@ "@electron-toolkit/eslint-config-prettier@^2.0.0": version "2.0.0" - resolved "https://registry.npmjs.org/@electron-toolkit/eslint-config-prettier/-/eslint-config-prettier-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/@electron-toolkit/eslint-config-prettier/-/eslint-config-prettier-2.0.0.tgz#a258a28fc0a09b7f910fd71e0aa18ea6ee440735" integrity sha512-L+uG1FvJcAZkPZpSi6B1pmdpyJFyOxWDTjr1Vs47vSryxv/EX1Ch6o4HVsachlDq3fMEkDgojuP2F3ZvVZMoLw== dependencies: eslint-config-prettier "^9.1.0" @@ -1223,7 +997,7 @@ "@electron-toolkit/tsconfig@^1.0.1": version "1.0.1" - resolved "https://registry.npmjs.org/@electron-toolkit/tsconfig/-/tsconfig-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/@electron-toolkit/tsconfig/-/tsconfig-1.0.1.tgz#78048d3178dd7a6a573590e23240f0764b0c14af" integrity sha512-M0Mol3odspvtCuheyujLNAW7bXq7KFNYVMRtpjFa4ZfES4MuklXBC7Nli/omvc+PRKlrklgAGx3l4VakjNo8jg== "@electron-toolkit/utils@^4.0.0": @@ -1241,11 +1015,10 @@ minimatch "^3.0.4" "@electron/asar@^3.2.7": - version "3.2.13" - resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.2.13.tgz#56565ea423ead184465adfa72663b2c70d9835f2" - integrity sha512-pY5z2qQSwbFzJsBdgfJIzXf5ElHTVMutC2dxh0FD60njknMu3n1NnTABOcQwbb5/v5soqE79m9UjaJryBf3epg== + version "3.4.1" + resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.4.1.tgz#4e9196a4b54fba18c56cd8d5cac67c5bdc588065" + integrity sha512-i4/rNPRS84t0vSRa2HorerGRXWyF4vThfHesw0dmcWHp+cspK743UanA0suA5Q5y8kzY2y6YKrvbIUn69BCAiA== dependencies: - "@types/glob" "^7.1.0" commander "^5.0.0" glob "^7.1.6" minimatch "^3.0.4" @@ -1261,7 +1034,7 @@ "@electron/get@^2.0.0": version "2.0.3" - resolved "https://registry.npmjs.org/@electron/get/-/get-2.0.3.tgz" + resolved "https://registry.yarnpkg.com/@electron/get/-/get-2.0.3.tgz#fba552683d387aebd9f3fcadbcafc8e12ee4f960" integrity sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ== dependencies: debug "^4.1.1" @@ -1274,9 +1047,9 @@ optionalDependencies: global-agent "^3.0.0" -"@electron/node-gyp@https://github.com/electron/node-gyp#06b29aafb7708acef8b3669835c8a7857ebc92d2": +"@electron/node-gyp@git+https://github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2": version "10.2.0-electron.1" - resolved "https://github.com/electron/node-gyp#06b29aafb7708acef8b3669835c8a7857ebc92d2" + resolved "git+https://github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2" dependencies: env-paths "^2.2.0" exponential-backoff "^3.1.1" @@ -1589,25 +1362,20 @@ integrity sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw== "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": - version "4.4.0" - resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + version "4.9.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz#7308df158e064f0dd8b8fdb58aa14fa2a7f913b3" + integrity sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g== dependencies: - eslint-visitor-keys "^3.3.0" + eslint-visitor-keys "^3.4.3" -"@eslint-community/regexpp@^4.10.0": +"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.6.1": version "4.12.1" resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== -"@eslint-community/regexpp@^4.6.1": - version "4.10.0" - resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz" - integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== - "@eslint/eslintrc@^2.1.4": version "2.1.4" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== dependencies: ajv "^6.12.4" @@ -1625,45 +1393,32 @@ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.1.tgz#de633db3ec2ef6a3c89e2f19038063e8a122e2c2" integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q== -"@floating-ui/core@^1.6.0": - version "1.6.8" - resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.6.8.tgz#aa43561be075815879305965020f492cdb43da12" - integrity sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA== +"@floating-ui/core@^1.7.3": + version "1.7.3" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.7.3.tgz#462d722f001e23e46d86fd2bd0d21b7693ccb8b7" + integrity sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w== dependencies: - "@floating-ui/utils" "^0.2.8" + "@floating-ui/utils" "^0.2.10" -"@floating-ui/dom@^1.0.0": - version "1.6.12" - resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.12.tgz#6333dcb5a8ead3b2bf82f33d6bc410e95f54e556" - integrity sha512-NP83c0HjokcGVEMeoStg317VD9W7eDlGK7457dMBANbKA6GJZdc7rjujdgqzTaz93jkGgc5P/jeWbaCHnMNc+w== +"@floating-ui/dom@^1.0.0", "@floating-ui/dom@^1.6.1", "@floating-ui/dom@^1.7.4": + version "1.7.4" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.7.4.tgz#ee667549998745c9c3e3e84683b909c31d6c9a77" + integrity sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA== dependencies: - "@floating-ui/core" "^1.6.0" - "@floating-ui/utils" "^0.2.8" - -"@floating-ui/dom@^1.6.1": - version "1.6.13" - resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.13.tgz#a8a938532aea27a95121ec16e667a7cbe8c59e34" - integrity sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w== - dependencies: - "@floating-ui/core" "^1.6.0" - "@floating-ui/utils" "^0.2.9" + "@floating-ui/core" "^1.7.3" + "@floating-ui/utils" "^0.2.10" "@floating-ui/react-dom@^2.0.0": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.1.2.tgz#a1349bbf6a0e5cb5ded55d023766f20a4d439a31" - integrity sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A== + version "2.1.6" + resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.1.6.tgz#189f681043c1400561f62972f461b93f01bf2231" + integrity sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw== dependencies: - "@floating-ui/dom" "^1.0.0" + "@floating-ui/dom" "^1.7.4" -"@floating-ui/utils@^0.2.8": - version "0.2.8" - resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.8.tgz#21a907684723bbbaa5f0974cf7730bd797eb8e62" - integrity sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig== - -"@floating-ui/utils@^0.2.9": - version "0.2.9" - resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.9.tgz#50dea3616bc8191fb8e112283b49eaff03e78429" - integrity sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg== +"@floating-ui/utils@^0.2.10": + version "0.2.10" + resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.10.tgz#a2a1e3812d14525f725d011a73eceb41fef5bc1c" + integrity sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ== "@fontsource/noto-sans@^5.2.10": version "5.2.10" @@ -1693,7 +1448,7 @@ "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" - resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== "@humanwhocodes/object-schema@^2.0.3": @@ -1701,9 +1456,21 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== +"@isaacs/balanced-match@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz#3081dadbc3460661b751e7591d7faea5df39dd29" + integrity sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ== + +"@isaacs/brace-expansion@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz#4b3dabab7d8e75a429414a96bd67bf4c1d13e0f3" + integrity sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA== + dependencies: + "@isaacs/balanced-match" "^4.0.1" + "@isaacs/cliui@^8.0.2": version "8.0.2" - resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== dependencies: string-width "^5.1.2" @@ -1720,7 +1487,7 @@ dependencies: minipass "^7.0.4" -"@jridgewell/gen-mapping@^0.3.12": +"@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5": 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== @@ -1728,15 +1495,6 @@ "@jridgewell/sourcemap-codec" "^1.5.0" "@jridgewell/trace-mapping" "^0.3.24" -"@jridgewell/gen-mapping@^0.3.5": - version "0.3.5" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz" - integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== - dependencies: - "@jridgewell/set-array" "^1.2.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@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" @@ -1747,23 +1505,13 @@ "@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": version "3.1.2" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== -"@jridgewell/set-array@^1.2.1": - version "1.2.1" - resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz" - integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== - -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": - version "1.4.15" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== - -"@jridgewell/sourcemap-codec@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" - integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0", "@jridgewell/sourcemap-codec@^1.5.5": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" + integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== "@jridgewell/trace-mapping@0.3.9": version "0.3.9" @@ -1773,15 +1521,7 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": - version "0.3.25" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" - integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - -"@jridgewell/trace-mapping@^0.3.28": +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.28": version "0.3.31" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0" integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== @@ -1798,7 +1538,7 @@ "@malept/flatpak-bundler@^0.4.0": version "0.4.0" - resolved "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz#e8a32c30a95d20c2b1bb635cc580981a06389858" integrity sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q== dependencies: debug "^4.1.1" @@ -1806,23 +1546,23 @@ lodash "^4.17.15" tmp-promise "^3.0.2" -"@monaco-editor/loader@^1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@monaco-editor/loader/-/loader-1.4.0.tgz#f08227057331ec890fa1e903912a5b711a2ad558" - integrity sha512-00ioBig0x642hytVspPl7DbQyaSWRaolYie/UFNjoTdvoKPzo6xrXLhTk9ixgIKcLH5b5vDOjVNiGyY+uDCUlg== +"@monaco-editor/loader@^1.5.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@monaco-editor/loader/-/loader-1.6.0.tgz#020a7ea717a63ff2a28940d7aa589a178a83356e" + integrity sha512-PdWBZkPb2Amc1kxRsIEyQFkAya6PzUvSf4waXMPt7I05Azm4e2hQuViBVjfw1Mmck98GG2TqecLzWtg1tbyriw== dependencies: state-local "^1.0.6" "@monaco-editor/react@^4.6.0": - version "4.6.0" - resolved "https://registry.yarnpkg.com/@monaco-editor/react/-/react-4.6.0.tgz#bcc68671e358a21c3814566b865a54b191e24119" - integrity sha512-RFkU9/i7cN2bsq/iTkurMWOEErmYcY6JiQI3Jn+WeR/FGISH8JbHERjpS9oRuSOPvDMJI0Z8nJeKkbOs9sBYQw== + version "4.7.0" + resolved "https://registry.yarnpkg.com/@monaco-editor/react/-/react-4.7.0.tgz#35a1ec01bfe729f38bfc025df7b7bac145602a60" + integrity sha512-cyzXQCtO47ydzxpQtCGSQGOC8Gk3ZUeBXFAxD+CWXYFo5OqZyZUonFl0DwUlTyAfRHntBfw2p3w4s9R6oe1eCA== dependencies: - "@monaco-editor/loader" "^1.4.0" + "@monaco-editor/loader" "^1.5.0" "@nodelib/fs.scandir@2.1.5": version "2.1.5" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" @@ -1830,12 +1570,12 @@ "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" @@ -1857,56 +1597,138 @@ mkdirp "^1.0.4" rimraf "^3.0.2" +"@parcel/watcher-android-arm64@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz#507f836d7e2042f798c7d07ad19c3546f9848ac1" + integrity sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA== + +"@parcel/watcher-darwin-arm64@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz#3d26dce38de6590ef79c47ec2c55793c06ad4f67" + integrity sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw== + +"@parcel/watcher-darwin-x64@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz#99f3af3869069ccf774e4ddfccf7e64fd2311ef8" + integrity sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg== + +"@parcel/watcher-freebsd-x64@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz#14d6857741a9f51dfe51d5b08b7c8afdbc73ad9b" + integrity sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ== + +"@parcel/watcher-linux-arm-glibc@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz#43c3246d6892381db473bb4f663229ad20b609a1" + integrity sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA== + +"@parcel/watcher-linux-arm-musl@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz#663750f7090bb6278d2210de643eb8a3f780d08e" + integrity sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q== + +"@parcel/watcher-linux-arm64-glibc@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz#ba60e1f56977f7e47cd7e31ad65d15fdcbd07e30" + integrity sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w== + +"@parcel/watcher-linux-arm64-musl@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz#f7fbcdff2f04c526f96eac01f97419a6a99855d2" + integrity sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg== + +"@parcel/watcher-linux-x64-glibc@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz#4d2ea0f633eb1917d83d483392ce6181b6a92e4e" + integrity sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A== + +"@parcel/watcher-linux-x64-musl@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz#277b346b05db54f55657301dd77bdf99d63606ee" + integrity sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg== + +"@parcel/watcher-win32-arm64@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz#7e9e02a26784d47503de1d10e8eab6cceb524243" + integrity sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw== + +"@parcel/watcher-win32-ia32@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz#2d0f94fa59a873cdc584bf7f6b1dc628ddf976e6" + integrity sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ== + +"@parcel/watcher-win32-x64@2.5.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz#ae52693259664ba6f2228fa61d7ee44b64ea0947" + integrity sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA== + +"@parcel/watcher@^2.4.1": + version "2.5.1" + resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.5.1.tgz#342507a9cfaaf172479a882309def1e991fb1200" + integrity sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg== + dependencies: + detect-libc "^1.0.3" + is-glob "^4.0.3" + micromatch "^4.0.5" + node-addon-api "^7.0.0" + optionalDependencies: + "@parcel/watcher-android-arm64" "2.5.1" + "@parcel/watcher-darwin-arm64" "2.5.1" + "@parcel/watcher-darwin-x64" "2.5.1" + "@parcel/watcher-freebsd-x64" "2.5.1" + "@parcel/watcher-linux-arm-glibc" "2.5.1" + "@parcel/watcher-linux-arm-musl" "2.5.1" + "@parcel/watcher-linux-arm64-glibc" "2.5.1" + "@parcel/watcher-linux-arm64-musl" "2.5.1" + "@parcel/watcher-linux-x64-glibc" "2.5.1" + "@parcel/watcher-linux-x64-musl" "2.5.1" + "@parcel/watcher-win32-arm64" "2.5.1" + "@parcel/watcher-win32-ia32" "2.5.1" + "@parcel/watcher-win32-x64" "2.5.1" + "@pkgjs/parseargs@^0.11.0": version "0.11.0" - resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== -"@pkgr/core@^0.1.0": - version "0.1.1" - resolved "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz" - integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== +"@pkgr/core@^0.2.9": + version "0.2.9" + resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.2.9.tgz#d229a7b7f9dac167a156992ef23c7f023653f53b" + integrity sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA== "@primer/octicons-react@^19.9.0": - version "19.9.0" - resolved "https://registry.npmjs.org/@primer/octicons-react/-/octicons-react-19.9.0.tgz" - integrity sha512-Uk4XrHyfylyfzZN9d8VFjF8FpfYHEyT4sabw+9+oP+GWAJHhPvNPTz6gXvUzJZmoblAvgcTrDslIPjz8zMh76w== - -"@protobuf-ts/plugin-framework@^2.10.0": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@protobuf-ts/plugin-framework/-/plugin-framework-2.10.0.tgz#e716a4b7fdb8710527101d145a000e254731abbb" - integrity sha512-EuW9irbt+w7Ml1CaAxK6xyl7pSuWVbNy0rsChxJEthMrAVTN5EPdJ3whNWvsRBa+HwRImEl8KHNnRoq/vGOHbg== - dependencies: - "@protobuf-ts/runtime" "^2.10.0" - typescript "^3.9" + version "19.19.0" + resolved "https://registry.yarnpkg.com/@primer/octicons-react/-/octicons-react-19.19.0.tgz#e4e575004d9fb52b1391952fa8475af7b54becb3" + integrity sha512-dTO3khy50yS7XC0FB5L7Wwg+aEjI7mrdiZ+FeZGKiNSpkpcRDn7HTidLdtKgo0cJp6QKpqtUHGHRRpa+wrc6Bg== "@protobuf-ts/plugin@^2.10.0": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@protobuf-ts/plugin/-/plugin-2.10.0.tgz#dc91af30aeecf2a9debe2d0abf5b2a07a25156c5" - integrity sha512-iMX4C4TVfMNRLn2msK0cVg5jmizjtu5FYiy8EK5Lg6EgyR9TVHeK2rzmufWKYM2Pcg1jSwC0cFcXHQnCoeFxUg== + version "2.11.1" + resolved "https://registry.yarnpkg.com/@protobuf-ts/plugin/-/plugin-2.11.1.tgz#c819ff9aca102209d2096414b3d2240dd240cbdb" + integrity sha512-HyuprDcw0bEEJqkOWe1rnXUP0gwYLij8YhPuZyZk6cJbIgc/Q0IFgoHQxOXNIXAcXM4Sbehh6kjVnCzasElw1A== dependencies: - "@protobuf-ts/plugin-framework" "^2.10.0" - "@protobuf-ts/protoc" "^2.10.0" - "@protobuf-ts/runtime" "^2.10.0" - "@protobuf-ts/runtime-rpc" "^2.10.0" + "@bufbuild/protobuf" "^2.4.0" + "@bufbuild/protoplugin" "^2.4.0" + "@protobuf-ts/protoc" "^2.11.1" + "@protobuf-ts/runtime" "^2.11.1" + "@protobuf-ts/runtime-rpc" "^2.11.1" typescript "^3.9" -"@protobuf-ts/protoc@^2.10.0": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@protobuf-ts/protoc/-/protoc-2.10.0.tgz#4a280ead9d5b143b6ef863339980050184bcac49" - integrity sha512-S4BtGBh22+uL5E6qLVxV0QNY6tiLVB8QL7RIkvo+KYknipZfSNwubdKy5CPkrwVXzJn4s3cx7bKx1w6BxkBIPg== +"@protobuf-ts/protoc@^2.11.1": + version "2.11.1" + resolved "https://registry.yarnpkg.com/@protobuf-ts/protoc/-/protoc-2.11.1.tgz#5ae86a777cacdc58ddc7e38ee107a74342a86e30" + integrity sha512-mUZJaV0daGO6HUX90o/atzQ6A7bbN2RSuHtdwo8SSF2Qoe3zHwa4IHyCN1evftTeHfLmdz+45qo47sL+5P8nyg== -"@protobuf-ts/runtime-rpc@^2.10.0": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@protobuf-ts/runtime-rpc/-/runtime-rpc-2.10.0.tgz#68de8dcc369e56579569a4deafd394cf4683dc66" - integrity sha512-8CS/XPv3+pMK4v8UKhtCdvbS4h9l7aqlteKdRt0/UbIKZ8n0qHj6hX8cBhz2ngvohxCOS0N08zPr9aCLBNhW3Q== +"@protobuf-ts/runtime-rpc@^2.11.1": + version "2.11.1" + resolved "https://registry.yarnpkg.com/@protobuf-ts/runtime-rpc/-/runtime-rpc-2.11.1.tgz#a6eb2f384bceae8d23a01d0b0e37faf0af36c179" + integrity sha512-4CqqUmNA+/uMz00+d3CYKgElXO9VrEbucjnBFEjqI4GuDrEQ32MaI3q+9qPBvIGOlL4PmHXrzM32vBPWRhQKWQ== dependencies: - "@protobuf-ts/runtime" "^2.10.0" + "@protobuf-ts/runtime" "^2.11.1" -"@protobuf-ts/runtime@^2.10.0": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@protobuf-ts/runtime/-/runtime-2.10.0.tgz#bc90f632647ff2ae72887546ddf3d193f3f43d98" - integrity sha512-ypYwGg9Pn3W/2lZ7/HW60hONGuSdzphvOY8Dq7LeNttymDe0y3LaTUUMRpuGqOT6FfrWEMnfQbyqU8AAreo8wA== +"@protobuf-ts/runtime@^2.11.1": + version "2.11.1" + resolved "https://registry.yarnpkg.com/@protobuf-ts/runtime/-/runtime-2.11.1.tgz#ee2bf2fac6e2d8deac0ca63471a77481548e5553" + integrity sha512-KuDaT1IfHkugM2pyz+FwiY80ejWrkH1pAtOBOZFuR6SXEFTsnb/jiQWQ1rCIrcKx2BtyxnxW6BWwsVSA/Ie+WQ== "@radix-ui/primitive@1.1.3": version "1.1.3" @@ -2142,10 +1964,12 @@ integrity sha512-/RVXdLvJxLg4QKvMoM5WlwNR9ViO9z8B/qPcc+C0Sa/teJY7QG7kJ441DwzOjMYEY7GmU4dj5EcGHIkKZiQZCA== "@reduxjs/toolkit@^2.2.3": - version "2.2.5" - resolved "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.2.5.tgz" - integrity sha512-aeFA/s5NCG7NoJe/MhmwREJxRkDs0ZaSqt0MxhWUrwCf1UQXpwR87RROJEql0uAkLI6U7snBOYOcKw83ew3FPg== + version "2.9.0" + resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-2.9.0.tgz#d4b12b90c27716a6a507193f8c3b2880729b97d5" + integrity sha512-fSfQlSRu9Z5yBkvsNhYF2rPS8cGXn/TZVrlwN1948QyZ8xMZ0JvP50S2acZNaf+o63u6aEeMjipFyksjIcWrog== dependencies: + "@standard-schema/spec" "^1.0.0" + "@standard-schema/utils" "^0.3.0" immer "^10.0.3" redux "^5.0.1" redux-thunk "^3.1.0" @@ -2156,10 +1980,15 @@ resolved "https://registry.yarnpkg.com/@remirror/core-constants/-/core-constants-3.0.0.tgz#96fdb89d25c62e7b6a5d08caf0ce5114370e3b8f" integrity sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg== -"@remix-run/router@1.19.2": - version "1.19.2" - resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.19.2.tgz#0c896535473291cb41f152c180bedd5680a3b273" - integrity sha512-baiMx18+IMuD1yyvOGaHM9QrVUPGGG0jC+z+IPHnRJWUAUvaKuWKyE8gjDj2rzv3sz9zOGoRSPgeBVHRhZnBlA== +"@remix-run/router@1.23.0": + version "1.23.0" + resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.23.0.tgz#35390d0e7779626c026b11376da6789eb8389242" + integrity sha512-O3rHJzAQKamUz1fvE0Qaw0xSFqsA/yafi2iqeE0pvdFtCO1viYx8QL6f3Ln/aCCTLxs68SLf0KPM9eSeM8yBnA== + +"@rolldown/pluginutils@1.0.0-beta.27": + version "1.0.0-beta.27" + resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz#47d2bf4cef6d470b22f5831b420f8964e0bf755f" + integrity sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA== "@rollup/pluginutils@^5.2.0": version "5.3.0" @@ -2282,159 +2111,161 @@ "@sindresorhus/is@^4.0.0": version "4.6.0" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== -"@smithy/abort-controller@^3.1.9": - version "3.1.9" - resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-3.1.9.tgz#47d323f754136a489e972d7fd465d534d72fcbff" - integrity sha512-yiW0WI30zj8ZKoSYNx90no7ugVn3khlyH/z5W8qtKBtVE6awRALbhSG+2SAHA1r6bO/6M9utxYKVZ3PCJ1rWxw== +"@smithy/abort-controller@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-4.2.1.tgz#6e14bd7f30023dfd904758b552e5b88f687d0dd8" + integrity sha512-OvVe992TXYHR7QpYebmtw+/MF5AP9vU0fjfyfW1VmNYeA/dfibLhN13xrzIj+EO0HYMPur5lUIB9hRZ7IhjLDQ== dependencies: - "@smithy/types" "^3.7.2" + "@smithy/types" "^4.7.0" tslib "^2.6.2" -"@smithy/chunked-blob-reader-native@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-3.0.1.tgz#39045ed278ee1b6f4c12715c7565678557274c29" - integrity sha512-VEYtPvh5rs/xlyqpm5NRnfYLZn+q0SRPELbvBV+C/G7IQ+ouTuo+NKKa3ShG5OaFR8NYVMXls9hPYLTvIKKDrQ== +"@smithy/chunked-blob-reader-native@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-4.2.1.tgz#380266951d746b522b4ab2b16bfea6b451147b41" + integrity sha512-lX9Ay+6LisTfpLid2zZtIhSEjHMZoAR5hHCR4H7tBz/Zkfr5ea8RcQ7Tk4mi0P76p4cN+Btz16Ffno7YHpKXnQ== dependencies: - "@smithy/util-base64" "^3.0.0" + "@smithy/util-base64" "^4.3.0" tslib "^2.6.2" -"@smithy/chunked-blob-reader@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader/-/chunked-blob-reader-4.0.0.tgz#754099909957fb1986c16eb88afad75919d7129d" - integrity sha512-jSqRnZvkT4egkq/7b6/QRCNXmmYVcHwnJldqJ3IhVpQE2atObVJ137xmGeuGFhjFUr8gCEVAOKwSY79OvpbDaQ== +"@smithy/chunked-blob-reader@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader/-/chunked-blob-reader-5.2.0.tgz#776fec5eaa5ab5fa70d0d0174b7402420b24559c" + integrity sha512-WmU0TnhEAJLWvfSeMxBNe5xtbselEO8+4wG0NtZeL8oR21WgH1xiO37El+/Y+H/Ie4SCwBy3MxYWmOYaGgZueA== dependencies: tslib "^2.6.2" -"@smithy/config-resolver@^3.0.13": - version "3.0.13" - resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-3.0.13.tgz#653643a77a33d0f5907a5e7582353886b07ba752" - integrity sha512-Gr/qwzyPaTL1tZcq8WQyHhTZREER5R1Wytmz4WnVGL4onA3dNk6Btll55c8Vr58pLdvWZmtG8oZxJTw3t3q7Jg== +"@smithy/config-resolver@^4.3.0", "@smithy/config-resolver@^4.3.1": + version "4.3.1" + resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-4.3.1.tgz#f1a0ed6faa52377909440002e1632be9fc901840" + integrity sha512-tWDwrWy37CDVGeaP8AIGZPFL2RoFtmd5Y+nTzLw5qroXNedT2S66EY2d+XzB1zxulCd6nfDXnAQu4auq90aj5Q== dependencies: - "@smithy/node-config-provider" "^3.1.12" - "@smithy/types" "^3.7.2" - "@smithy/util-config-provider" "^3.0.0" - "@smithy/util-middleware" "^3.0.11" + "@smithy/node-config-provider" "^4.3.1" + "@smithy/types" "^4.7.0" + "@smithy/util-config-provider" "^4.2.0" + "@smithy/util-middleware" "^4.2.1" tslib "^2.6.2" -"@smithy/core@^2.5.5": - version "2.5.5" - resolved "https://registry.yarnpkg.com/@smithy/core/-/core-2.5.5.tgz#c75b15caee9e58c800db3e6b99e9e373532d394a" - integrity sha512-G8G/sDDhXA7o0bOvkc7bgai6POuSld/+XhNnWAbpQTpLv2OZPvyqQ58tLPPlz0bSNsXktldDDREIv1LczFeNEw== +"@smithy/core@^3.15.0", "@smithy/core@^3.16.0": + version "3.16.0" + resolved "https://registry.yarnpkg.com/@smithy/core/-/core-3.16.0.tgz#43718e4df99059e5ad5cecc21b6287bf7932ae6d" + integrity sha512-T6eJ+yhnCP5plm6aEaenUpxkHTd5zVCKpyWAbP4ekJ7R5wSmKQjmvQIA58CXB1sgrwaYZJXOJMeRtpghxP7n1g== dependencies: - "@smithy/middleware-serde" "^3.0.11" - "@smithy/protocol-http" "^4.1.8" - "@smithy/types" "^3.7.2" - "@smithy/util-body-length-browser" "^3.0.0" - "@smithy/util-middleware" "^3.0.11" - "@smithy/util-stream" "^3.3.2" - "@smithy/util-utf8" "^3.0.0" + "@smithy/middleware-serde" "^4.2.1" + "@smithy/protocol-http" "^5.3.1" + "@smithy/types" "^4.7.0" + "@smithy/util-base64" "^4.3.0" + "@smithy/util-body-length-browser" "^4.2.0" + "@smithy/util-middleware" "^4.2.1" + "@smithy/util-stream" "^4.5.1" + "@smithy/util-utf8" "^4.2.0" + "@smithy/uuid" "^1.1.0" tslib "^2.6.2" -"@smithy/credential-provider-imds@^3.2.8": - version "3.2.8" - resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.8.tgz#27ed2747074c86a7d627a98e56f324a65cba88de" - integrity sha512-ZCY2yD0BY+K9iMXkkbnjo+08T2h8/34oHd0Jmh6BZUSZwaaGlGCyBT/3wnS7u7Xl33/EEfN4B6nQr3Gx5bYxgw== +"@smithy/credential-provider-imds@^4.2.0", "@smithy/credential-provider-imds@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.1.tgz#9cfe81812bc48b1d7b457efeb9b82f037adfcee8" + integrity sha512-Y7Gq6xZvAUJOf60prfpknyKIJoIU89q/t6Cr4AWLYZBaaIhEdWJRIWvLqiqL5Hb6iK8btorKHI8jT6ZuQB+BVg== dependencies: - "@smithy/node-config-provider" "^3.1.12" - "@smithy/property-provider" "^3.1.11" - "@smithy/types" "^3.7.2" - "@smithy/url-parser" "^3.0.11" + "@smithy/node-config-provider" "^4.3.1" + "@smithy/property-provider" "^4.2.1" + "@smithy/types" "^4.7.0" + "@smithy/url-parser" "^4.2.1" tslib "^2.6.2" -"@smithy/eventstream-codec@^3.1.10": - version "3.1.10" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-3.1.10.tgz#0c1a3457e7a23b71cd71525ceb668f8569a84dad" - integrity sha512-323B8YckSbUH0nMIpXn7HZsAVKHYHFUODa8gG9cHo0ySvA1fr5iWaNT+iIL0UCqUzG6QPHA3BSsBtRQou4mMqQ== +"@smithy/eventstream-codec@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-4.2.1.tgz#97abdd85be768ff95b889de55141c4605db8dfef" + integrity sha512-CAxQlKfWIPLT/hF6GfocaYPbc8ZYC93cqTlu8173olp6K+LGa/32w3E+DG0EmP9TqWSUAOGe6i2SqWBtt+Rnrg== dependencies: "@aws-crypto/crc32" "5.2.0" - "@smithy/types" "^3.7.2" - "@smithy/util-hex-encoding" "^3.0.0" + "@smithy/types" "^4.7.0" + "@smithy/util-hex-encoding" "^4.2.0" tslib "^2.6.2" -"@smithy/eventstream-serde-browser@^3.0.14": - version "3.0.14" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.14.tgz#0c3584c7cde2e210aacdfbbd2b57c1d7e2ca3b95" - integrity sha512-kbrt0vjOIihW3V7Cqj1SXQvAI5BR8SnyQYsandva0AOR307cXAc+IhPngxIPslxTLfxwDpNu0HzCAq6g42kCPg== +"@smithy/eventstream-serde-browser@^4.2.0": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-4.2.1.tgz#e52300806619a5ac611188b5a3c2263359790efb" + integrity sha512-8TE6Kwlo+mbvnJdQz1dNGueT+GNtE//Wos8G3Eiz+ebf7Fz1l0ekxnn71XeipIkisgXSKvvaAlDBSVQ2aRYmZQ== dependencies: - "@smithy/eventstream-serde-universal" "^3.0.13" - "@smithy/types" "^3.7.2" + "@smithy/eventstream-serde-universal" "^4.2.1" + "@smithy/types" "^4.7.0" tslib "^2.6.2" -"@smithy/eventstream-serde-config-resolver@^3.0.11": - version "3.0.11" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.11.tgz#5edceba836debea165ea93145231036f6286d67c" - integrity sha512-P2pnEp4n75O+QHjyO7cbw/vsw5l93K/8EWyjNCAAybYwUmj3M+hjSQZ9P5TVdUgEG08ueMAP5R4FkuSkElZ5tQ== +"@smithy/eventstream-serde-config-resolver@^4.3.0": + version "4.3.1" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-4.3.1.tgz#2f408779a78716e6a7ecb312d4dd5d86f370e3f2" + integrity sha512-/2auO4BugZ64ynwvN3+IJx2CrlKNHRyH6Jw8idzyUqtgsqqpQbIKN5DTHwuUtYWM/s6SbXfgJSgnEmt0HCq0Qw== dependencies: - "@smithy/types" "^3.7.2" + "@smithy/types" "^4.7.0" tslib "^2.6.2" -"@smithy/eventstream-serde-node@^3.0.13": - version "3.0.13" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.13.tgz#5aebd7b553becee277e411a2b69f6af8c9d7b3a6" - integrity sha512-zqy/9iwbj8Wysmvi7Lq7XFLeDgjRpTbCfwBhJa8WbrylTAHiAu6oQTwdY7iu2lxigbc9YYr9vPv5SzYny5tCXQ== +"@smithy/eventstream-serde-node@^4.2.0": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-4.2.1.tgz#3e15afc05952e64ddb234aff1dbd6b5e9e84bd36" + integrity sha512-SKCkhJytWD2l/PlftMnHoZ3Sd6CLoIL/9Ws/ErWIFWVmSeZfImBA/wCZ4oPLhyqTsFPkNdFuL/FlrJfIUnZVPg== dependencies: - "@smithy/eventstream-serde-universal" "^3.0.13" - "@smithy/types" "^3.7.2" + "@smithy/eventstream-serde-universal" "^4.2.1" + "@smithy/types" "^4.7.0" tslib "^2.6.2" -"@smithy/eventstream-serde-universal@^3.0.13": - version "3.0.13" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.13.tgz#609c922ea14a0a3eed23a28ac110344c935704eb" - integrity sha512-L1Ib66+gg9uTnqp/18Gz4MDpJPKRE44geOjOQ2SVc0eiaO5l255ADziATZgjQjqumC7yPtp1XnjHlF1srcwjKw== +"@smithy/eventstream-serde-universal@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-4.2.1.tgz#6c83efea2cb68b50393a79ef9b39fb261ac6d082" + integrity sha512-q/k55ZXavQVIAkHFaonz5vUkOHe4isy5114fMv+FJ6HXZESaYN6DZfadjbHMQoMVyqBg5togfk+AxD2rbCop/A== dependencies: - "@smithy/eventstream-codec" "^3.1.10" - "@smithy/types" "^3.7.2" + "@smithy/eventstream-codec" "^4.2.1" + "@smithy/types" "^4.7.0" tslib "^2.6.2" -"@smithy/fetch-http-handler@^4.1.2": - version "4.1.2" - resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-4.1.2.tgz#f034ff16416b37d92908a1381ef5fddbf4ef1879" - integrity sha512-R7rU7Ae3ItU4rC0c5mB2sP5mJNbCfoDc8I5XlYjIZnquyUwec7fEo78F6DA3SmgJgkU1qTMcZJuGblxZsl10ZA== +"@smithy/fetch-http-handler@^5.3.1", "@smithy/fetch-http-handler@^5.3.2": + version "5.3.2" + resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.2.tgz#8dfd9917dbff7e9079d8e7b50d5bcdae6855e996" + integrity sha512-3CXDhyjl6nz0na+te37f+aGqmDwJeyeo9GK7ThPStoa/ruZcUm17UPRC4xJvbm8Z4JCvbnh54mRCFtiR/IzXjw== dependencies: - "@smithy/protocol-http" "^4.1.8" - "@smithy/querystring-builder" "^3.0.11" - "@smithy/types" "^3.7.2" - "@smithy/util-base64" "^3.0.0" + "@smithy/protocol-http" "^5.3.1" + "@smithy/querystring-builder" "^4.2.1" + "@smithy/types" "^4.7.0" + "@smithy/util-base64" "^4.3.0" tslib "^2.6.2" -"@smithy/hash-blob-browser@^3.1.10": - version "3.1.10" - resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.10.tgz#985e308189c2687a15004152b97506882ffb2b13" - integrity sha512-elwslXOoNunmfS0fh55jHggyhccobFkexLYC1ZeZ1xP2BTSrcIBaHV2b4xUQOdctrSNOpMqOZH1r2XzWTEhyfA== +"@smithy/hash-blob-browser@^4.2.1": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-4.2.2.tgz#85abb0a810a0f70af656d21dde8e184dd2ac4b71" + integrity sha512-I7oRNdOVWV5psHPvlatTLGNXi1rVfLafsK7RY0etWMop2WpqcnYMzmRCfJLzmIQBb5zB3KfmZBITUhxlCn1PCw== dependencies: - "@smithy/chunked-blob-reader" "^4.0.0" - "@smithy/chunked-blob-reader-native" "^3.0.1" - "@smithy/types" "^3.7.2" + "@smithy/chunked-blob-reader" "^5.2.0" + "@smithy/chunked-blob-reader-native" "^4.2.1" + "@smithy/types" "^4.7.0" tslib "^2.6.2" -"@smithy/hash-node@^3.0.11": - version "3.0.11" - resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-3.0.11.tgz#99e09ead3fc99c8cd7ca0f254ea0e35714f2a0d3" - integrity sha512-emP23rwYyZhQBvklqTtwetkQlqbNYirDiEEwXl2v0GYWMnCzxst7ZaRAnWuy28njp5kAH54lvkdG37MblZzaHA== +"@smithy/hash-node@^4.2.0": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-4.2.1.tgz#d8666428535f3587cdf0119496300c628e05d1be" + integrity sha512-eqyR+zua9LI8K0NhYMUEh8HDy7zaT1gRuB3d1kNIKeSG9nc2JxNbKXYNRdmIvAWG3wJyl9uUWPs+H3k8uDes1Q== dependencies: - "@smithy/types" "^3.7.2" - "@smithy/util-buffer-from" "^3.0.0" - "@smithy/util-utf8" "^3.0.0" + "@smithy/types" "^4.7.0" + "@smithy/util-buffer-from" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@smithy/hash-stream-node@^3.1.10": - version "3.1.10" - resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-3.1.10.tgz#94716b4556f4ccf2807e605f47bb5b018ed7dfb0" - integrity sha512-olomK/jZQ93OMayW1zfTHwcbwBdhcZOHsyWyiZ9h9IXvc1mCD/VuvzbLb3Gy/qNJwI4MANPLctTp2BucV2oU/Q== +"@smithy/hash-stream-node@^4.2.0": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-4.2.1.tgz#43489664a3b7ea4997f9d3c7be80b93a009adce2" + integrity sha512-Ege/rLl4srtUMSsJJIdWJNcwIXf45Y191IegtBgdX/XP54guFGhKpVRPg7yG0J4pazOGb8GNGl/rbTN7DHbXiw== dependencies: - "@smithy/types" "^3.7.2" - "@smithy/util-utf8" "^3.0.0" + "@smithy/types" "^4.7.0" + "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@smithy/invalid-dependency@^3.0.11": - version "3.0.11" - resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-3.0.11.tgz#8144d7b0af9d34ab5f672e1f674f97f8740bb9ae" - integrity sha512-NuQmVPEJjUX6c+UELyVz8kUx8Q539EDeNwbRyu4IIF8MeV7hUtq1FB3SHVyki2u++5XLMFqngeMKk7ccspnNyQ== +"@smithy/invalid-dependency@^4.2.0": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-4.2.1.tgz#1a2830c72f9593c38f654b92f55a244b4cc3ab76" + integrity sha512-mGH4fyQwVun9jtAbNQjU5Dt2pItOM1ULQrceaISyyu8pEjreBjyC0T5BN+zU2ltqKF3NefjQ+ApfoAk1w1UplQ== dependencies: - "@smithy/types" "^3.7.2" + "@smithy/types" "^4.7.0" tslib "^2.6.2" "@smithy/is-array-buffer@^2.2.0": @@ -2444,208 +2275,209 @@ dependencies: tslib "^2.6.2" -"@smithy/is-array-buffer@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-3.0.0.tgz#9a95c2d46b8768946a9eec7f935feaddcffa5e7a" - integrity sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ== +"@smithy/is-array-buffer@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-4.2.0.tgz#b0f874c43887d3ad44f472a0f3f961bcce0550c2" + integrity sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ== dependencies: tslib "^2.6.2" -"@smithy/md5-js@^3.0.11": - version "3.0.11" - resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-3.0.11.tgz#27e4dab616348ff94aed24dc75e4017c582df40f" - integrity sha512-3NM0L3i2Zm4bbgG6Ymi9NBcxXhryi3uE8fIfHJZIOfZVxOkGdjdgjR9A06SFIZCfnEIWKXZdm6Yq5/aPXFFhsQ== +"@smithy/md5-js@^4.2.0": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-4.2.1.tgz#bdf8b104809c183f965584c4126bd21b66162316" + integrity sha512-6iFIH++OqA8QP7axnP/9NE5DNwq4t05VKx5izFsHQZUQDjfqqmKsLdzEPNtuspV/6AgPe23tYHJU+2XQhjpBxA== dependencies: - "@smithy/types" "^3.7.2" - "@smithy/util-utf8" "^3.0.0" + "@smithy/types" "^4.7.0" + "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@smithy/middleware-content-length@^3.0.13": - version "3.0.13" - resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-3.0.13.tgz#6e08fe52739ac8fb3996088e0f8837e4b2ea187f" - integrity sha512-zfMhzojhFpIX3P5ug7jxTjfUcIPcGjcQYzB9t+rv0g1TX7B0QdwONW+ATouaLoD7h7LOw/ZlXfkq4xJ/g2TrIw== +"@smithy/middleware-content-length@^4.2.0": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-4.2.1.tgz#2922b6b81e89c7ab1fe944f452e812221e39cc50" + integrity sha512-+V6TdTAcS/dGILfe4hZP5lVnCuUvcX05yj+GihbOpy/ylGzUYhE/oYmv4vU33vMj5rfpdcfuyuESHkJTTRDXGw== dependencies: - "@smithy/protocol-http" "^4.1.8" - "@smithy/types" "^3.7.2" + "@smithy/protocol-http" "^5.3.1" + "@smithy/types" "^4.7.0" tslib "^2.6.2" -"@smithy/middleware-endpoint@^3.2.5": - version "3.2.5" - resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-3.2.5.tgz#bdcfdf1f342cf933b0b8a709996f9a8fbb8148f4" - integrity sha512-VhJNs/s/lyx4weiZdXSloBgoLoS8osV0dKIain8nGmx7of3QFKu5BSdEuk1z/U8x9iwes1i+XCiNusEvuK1ijg== +"@smithy/middleware-endpoint@^4.3.1", "@smithy/middleware-endpoint@^4.3.2": + version "4.3.2" + resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-4.3.2.tgz#95e44d3188a31db7f53578c1477395b682d27364" + integrity sha512-3UP7E5SD0rF6cQEWVMxfbMvpC0fv9fTbusMQfKAXlff5g7L2tn2kspiiGX+nqyK78FV2kP/O2WS7rbIvhfw6/Q== dependencies: - "@smithy/core" "^2.5.5" - "@smithy/middleware-serde" "^3.0.11" - "@smithy/node-config-provider" "^3.1.12" - "@smithy/shared-ini-file-loader" "^3.1.12" - "@smithy/types" "^3.7.2" - "@smithy/url-parser" "^3.0.11" - "@smithy/util-middleware" "^3.0.11" + "@smithy/core" "^3.16.0" + "@smithy/middleware-serde" "^4.2.1" + "@smithy/node-config-provider" "^4.3.1" + "@smithy/shared-ini-file-loader" "^4.3.1" + "@smithy/types" "^4.7.0" + "@smithy/url-parser" "^4.2.1" + "@smithy/util-middleware" "^4.2.1" tslib "^2.6.2" -"@smithy/middleware-retry@^3.0.30": - version "3.0.30" - resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-3.0.30.tgz#2580322d0d28ad782b5b8c07c150b14efdc3b2f9" - integrity sha512-6323RL2BvAR3VQpTjHpa52kH/iSHyxd/G9ohb2MkBk2Ucu+oMtRXT8yi7KTSIS9nb58aupG6nO0OlXnQOAcvmQ== +"@smithy/middleware-retry@^4.4.1": + version "4.4.2" + resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-4.4.2.tgz#5adf9f577e9dd881f8c2fd0457e9fa77ba5d41d4" + integrity sha512-cuPmDJi7AE7PkdfeqJaHKBR33mXCl1MPxrboQDR/zZUo9u947m0gnYRd25NTSRER5LZpNDCvVTSedeAC9dHckA== dependencies: - "@smithy/node-config-provider" "^3.1.12" - "@smithy/protocol-http" "^4.1.8" - "@smithy/service-error-classification" "^3.0.11" - "@smithy/smithy-client" "^3.5.0" - "@smithy/types" "^3.7.2" - "@smithy/util-middleware" "^3.0.11" - "@smithy/util-retry" "^3.0.11" - tslib "^2.6.2" - uuid "^9.0.1" - -"@smithy/middleware-serde@^3.0.11": - version "3.0.11" - resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-3.0.11.tgz#c7d54e0add4f83e05c6878a011fc664e21022f12" - integrity sha512-KzPAeySp/fOoQA82TpnwItvX8BBURecpx6ZMu75EZDkAcnPtO6vf7q4aH5QHs/F1s3/snQaSFbbUMcFFZ086Mw== - dependencies: - "@smithy/types" "^3.7.2" + "@smithy/node-config-provider" "^4.3.1" + "@smithy/protocol-http" "^5.3.1" + "@smithy/service-error-classification" "^4.2.1" + "@smithy/smithy-client" "^4.8.0" + "@smithy/types" "^4.7.0" + "@smithy/util-middleware" "^4.2.1" + "@smithy/util-retry" "^4.2.1" + "@smithy/uuid" "^1.1.0" tslib "^2.6.2" -"@smithy/middleware-stack@^3.0.11": - version "3.0.11" - resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-3.0.11.tgz#453af2096924e4064d9da4e053cfdf65d9a36acc" - integrity sha512-1HGo9a6/ikgOMrTrWL/WiN9N8GSVYpuRQO5kjstAq4CvV59bjqnh7TbdXGQ4vxLD3xlSjfBjq5t1SOELePsLnA== +"@smithy/middleware-serde@^4.2.0", "@smithy/middleware-serde@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-4.2.1.tgz#674736c4f7514878ad708ae663f390f6cddef03e" + integrity sha512-0J1EDeGGBNz0h0R/UGKudF7gBMS+UMJEWuNPY1hDV/RTyyKgBfsKH87nKCeCSB81EgjnBDFsnfXD2ZMRCfIPWA== dependencies: - "@smithy/types" "^3.7.2" + "@smithy/protocol-http" "^5.3.1" + "@smithy/types" "^4.7.0" tslib "^2.6.2" -"@smithy/node-config-provider@^3.1.12": - version "3.1.12" - resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-3.1.12.tgz#1b1d674fc83f943dc7b3017e37f16f374e878a6c" - integrity sha512-O9LVEu5J/u/FuNlZs+L7Ikn3lz7VB9hb0GtPT9MQeiBmtK8RSY3ULmsZgXhe6VAlgTw0YO+paQx4p8xdbs43vQ== +"@smithy/middleware-stack@^4.2.0", "@smithy/middleware-stack@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-4.2.1.tgz#d620fa159c6d444a3b03ecd8082923663c538bc7" + integrity sha512-gWKgBqYYrcdtkEMzN8hEtypab7zgU4VVZHSwURAR5YGrvGJxbBh5mC9RPmVWS7TZxr/vB4yMKfxEQTrYRKRQ3Q== dependencies: - "@smithy/property-provider" "^3.1.11" - "@smithy/shared-ini-file-loader" "^3.1.12" - "@smithy/types" "^3.7.2" + "@smithy/types" "^4.7.0" tslib "^2.6.2" -"@smithy/node-http-handler@^3.3.2": - version "3.3.2" - resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-3.3.2.tgz#b34685863b74dabdaf7860aa81b42d0d5437c7e0" - integrity sha512-t4ng1DAd527vlxvOfKFYEe6/QFBcsj7WpNlWTyjorwXXcKw3XlltBGbyHfSJ24QT84nF+agDha9tNYpzmSRZPA== +"@smithy/node-config-provider@^4.3.0", "@smithy/node-config-provider@^4.3.1": + version "4.3.1" + resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-4.3.1.tgz#95e576a5608c3e6e512f70bf729358d55f566db4" + integrity sha512-Ap8Wd95HCrWRktMAZNc0AVzdPdUSPHsG59+DMe+4aH74FLDnVTo/7XDcRhSkSZCHeDjaDtzAh5OvnHOE0VHwUg== dependencies: - "@smithy/abort-controller" "^3.1.9" - "@smithy/protocol-http" "^4.1.8" - "@smithy/querystring-builder" "^3.0.11" - "@smithy/types" "^3.7.2" + "@smithy/property-provider" "^4.2.1" + "@smithy/shared-ini-file-loader" "^4.3.1" + "@smithy/types" "^4.7.0" tslib "^2.6.2" -"@smithy/property-provider@^3.1.11": - version "3.1.11" - resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-3.1.11.tgz#161cf1c2a2ada361e417382c57f5ba6fbca8acad" - integrity sha512-I/+TMc4XTQ3QAjXfOcUWbSS073oOEAxgx4aZy8jHaf8JQnRkq2SZWw8+PfDtBvLUjcGMdxl+YwtzWe6i5uhL/A== +"@smithy/node-http-handler@^4.3.0", "@smithy/node-http-handler@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-4.4.0.tgz#e1f6ae4a90cd7257699263bf8e06e653ff0e5f83" + integrity sha512-E00fuesARqnmdc1vR4qurQjQH+QWcsKjmM6kYoJBWjxgqNfp1WHc1SwfC18EdVaYamgctxyXV6kWhHmanhYgCg== dependencies: - "@smithy/types" "^3.7.2" + "@smithy/abort-controller" "^4.2.1" + "@smithy/protocol-http" "^5.3.1" + "@smithy/querystring-builder" "^4.2.1" + "@smithy/types" "^4.7.0" tslib "^2.6.2" -"@smithy/protocol-http@^4.1.8": - version "4.1.8" - resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-4.1.8.tgz#0461758671335f65e8ff3fc0885ab7ed253819c9" - integrity sha512-hmgIAVyxw1LySOwkgMIUN0kjN8TG9Nc85LJeEmEE/cNEe2rkHDUWhnJf2gxcSRFLWsyqWsrZGw40ROjUogg+Iw== +"@smithy/property-provider@^4.2.0", "@smithy/property-provider@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-4.2.1.tgz#c175cae05d229ed13371b97795a75f5b36aad218" + integrity sha512-2zthf6j/u4XV3nRvulJgQsZdAs9xNf7dJPE5+Wvrx4yAsNrmtchadydASqRLXEw67ovl8c+HFa58QEXD/jUMSg== dependencies: - "@smithy/types" "^3.7.2" + "@smithy/types" "^4.7.0" tslib "^2.6.2" -"@smithy/querystring-builder@^3.0.11": - version "3.0.11" - resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-3.0.11.tgz#2ed04adbe725671824c5613d0d6f9376d791a909" - integrity sha512-u+5HV/9uJaeLj5XTb6+IEF/dokWWkEqJ0XiaRRogyREmKGUgZnNecLucADLdauWFKUNbQfulHFEZEdjwEBjXRg== +"@smithy/protocol-http@^5.3.0", "@smithy/protocol-http@^5.3.1": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-5.3.1.tgz#add01f73290f1e8fd49d7102b63e3fe53a5e6e18" + integrity sha512-DqbfSgeZC0qo3/3fLgr5UEdOE7/o/VlVOt6LtpShwVcw3PIoqQMRCUTzMpJ0keAVb86Cl1w5YtW7uDUzeNMMLA== dependencies: - "@smithy/types" "^3.7.2" - "@smithy/util-uri-escape" "^3.0.0" + "@smithy/types" "^4.7.0" tslib "^2.6.2" -"@smithy/querystring-parser@^3.0.11": - version "3.0.11" - resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-3.0.11.tgz#9d3177ea19ce8462f18d9712b395239e1ca1f969" - integrity sha512-Je3kFvCsFMnso1ilPwA7GtlbPaTixa3WwC+K21kmMZHsBEOZYQaqxcMqeFFoU7/slFjKDIpiiPydvdJm8Q/MCw== +"@smithy/querystring-builder@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-4.2.1.tgz#1ef454874cb9da2295369ded8433d1de66498104" + integrity sha512-2Qf5x7Afn6ofV3XLYL9+oaOwWK2FUC/LLTarex0SaXEKctVdzCdOOzEfaAZJSwSSiYqFWF6e2r0m7PFDzA44fA== dependencies: - "@smithy/types" "^3.7.2" + "@smithy/types" "^4.7.0" + "@smithy/util-uri-escape" "^4.2.0" tslib "^2.6.2" -"@smithy/service-error-classification@^3.0.11": - version "3.0.11" - resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-3.0.11.tgz#d3d7fc0aacd2e60d022507367e55c7939e5bcb8a" - integrity sha512-QnYDPkyewrJzCyaeI2Rmp7pDwbUETe+hU8ADkXmgNusO1bgHBH7ovXJiYmba8t0fNfJx75fE8dlM6SEmZxheog== +"@smithy/querystring-parser@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-4.2.1.tgz#996358b90c35ecf357d5b32048414e9c17551f6d" + integrity sha512-y1DmifEgOF5J1MmrLP2arzI17tEaVqD+NUnfE+sVcpPcEHmAUL0TF9gQzAi5s6GGHUyDurO+zHvZQOeo7LuJnQ== dependencies: - "@smithy/types" "^3.7.2" - -"@smithy/shared-ini-file-loader@^3.1.12": - version "3.1.12" - resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.12.tgz#d98b1b663eb18935ce2cbc79024631d34f54042a" - integrity sha512-1xKSGI+U9KKdbG2qDvIR9dGrw3CNx+baqJfyr0igKEpjbHL5stsqAesYBzHChYHlelWtb87VnLWlhvfCz13H8Q== - dependencies: - "@smithy/types" "^3.7.2" + "@smithy/types" "^4.7.0" tslib "^2.6.2" -"@smithy/signature-v4@^4.2.4": - version "4.2.4" - resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-4.2.4.tgz#3501d3d09fd82768867bfc00a7be4bad62f62f4d" - integrity sha512-5JWeMQYg81TgU4cG+OexAWdvDTs5JDdbEZx+Qr1iPbvo91QFGzjy0IkXAKaXUHqmKUJgSHK0ZxnCkgZpzkeNTA== +"@smithy/service-error-classification@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-4.2.1.tgz#efc6772fd47152ca64b6c7b95e672bc1e21b9292" + integrity sha512-NEcg3bGL9MddDd0GtH1+6bLg+e9SpbNEAVV8vEM4uWgqixECItz6wf0sYcq+N0lQjeRljdwaG3wxd2YgJ7JfbQ== dependencies: - "@smithy/is-array-buffer" "^3.0.0" - "@smithy/protocol-http" "^4.1.8" - "@smithy/types" "^3.7.2" - "@smithy/util-hex-encoding" "^3.0.0" - "@smithy/util-middleware" "^3.0.11" - "@smithy/util-uri-escape" "^3.0.0" - "@smithy/util-utf8" "^3.0.0" + "@smithy/types" "^4.7.0" + +"@smithy/shared-ini-file-loader@^4.3.0", "@smithy/shared-ini-file-loader@^4.3.1": + version "4.3.1" + resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.3.1.tgz#efc591bf620599a8473c9adfefcfb9775a21b0d3" + integrity sha512-V4XVUUCsuVeSNkjeXLR4Y5doyNkTx29Cp8NfKoklgpSsWawyxmJbVvJ1kFHRulOmdBlLuHoqDrAirN8ZoduUCA== + dependencies: + "@smithy/types" "^4.7.0" tslib "^2.6.2" -"@smithy/smithy-client@^3.5.0": - version "3.5.0" - resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-3.5.0.tgz#65cff262801b009998c1196764ee69929ee06f8a" - integrity sha512-Y8FeOa7gbDfCWf7njrkoRATPa5eNLUEjlJS5z5rXatYuGkCb80LbHcu8AQR8qgAZZaNHCLyo2N+pxPsV7l+ivg== +"@smithy/signature-v4@^5.3.0": + version "5.3.1" + resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-5.3.1.tgz#c3d711c29d37f3db4daf51750eea75204c4f51d4" + integrity sha512-7jimpk6X2jzV3UmesOFFV675N/4D8QqNg6NdZFNa/RmWAco+jyX/TbX2mHFImNm+DoafpwEfcDNsPxDSYF0Pxw== dependencies: - "@smithy/core" "^2.5.5" - "@smithy/middleware-endpoint" "^3.2.5" - "@smithy/middleware-stack" "^3.0.11" - "@smithy/protocol-http" "^4.1.8" - "@smithy/types" "^3.7.2" - "@smithy/util-stream" "^3.3.2" + "@smithy/is-array-buffer" "^4.2.0" + "@smithy/protocol-http" "^5.3.1" + "@smithy/types" "^4.7.0" + "@smithy/util-hex-encoding" "^4.2.0" + "@smithy/util-middleware" "^4.2.1" + "@smithy/util-uri-escape" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@smithy/types@^3.7.2": - version "3.7.2" - resolved "https://registry.yarnpkg.com/@smithy/types/-/types-3.7.2.tgz#05cb14840ada6f966de1bf9a9c7dd86027343e10" - integrity sha512-bNwBYYmN8Eh9RyjS1p2gW6MIhSO2rl7X9QeLM8iTdcGRP+eDiIWDt66c9IysCc22gefKszZv+ubV9qZc7hdESg== +"@smithy/smithy-client@^4.7.1", "@smithy/smithy-client@^4.8.0": + version "4.8.0" + resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-4.8.0.tgz#a602a8513977b1d411e3bf5629a93f0f41a304a8" + integrity sha512-gbpNLnuDnguDcXQvbeIAd05F9EDK4HasFtiRzJoM5NbsvXGnW2dGd4mHaShR+ZNveoP9KaWlwF8Hj4ZtipaM3Q== + dependencies: + "@smithy/core" "^3.16.0" + "@smithy/middleware-endpoint" "^4.3.2" + "@smithy/middleware-stack" "^4.2.1" + "@smithy/protocol-http" "^5.3.1" + "@smithy/types" "^4.7.0" + "@smithy/util-stream" "^4.5.1" + tslib "^2.6.2" + +"@smithy/types@^4.6.0", "@smithy/types@^4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@smithy/types/-/types-4.7.0.tgz#42d707276d9184aef705f04e04615cd1979d044f" + integrity sha512-KM8Or+jCDCrUI3wYYhj7ehrC7aATB1NdJ1aFEE/YLKNLVH257k9RNeOqKdg0JOxjyEpVD7KKsmmob9mRy1Ho2g== dependencies: tslib "^2.6.2" -"@smithy/url-parser@^3.0.11": - version "3.0.11" - resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-3.0.11.tgz#e5f5ffabfb6230159167cf4cc970705fca6b8b2d" - integrity sha512-TmlqXkSk8ZPhfc+SQutjmFr5FjC0av3GZP4B/10caK1SbRwe/v+Wzu/R6xEKxoNqL+8nY18s1byiy6HqPG37Aw== +"@smithy/url-parser@^4.2.0", "@smithy/url-parser@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-4.2.1.tgz#0c00510684f832cd2fc8f188766267db04e6115d" + integrity sha512-dHm6hDcl79Ededl0oKgpSq3mM5b7Xdw+jic8bq1G7Z2spVpm7HpHJuLCV9PUJLjMbDbZfRUf5GEOnnOIvgfYgQ== dependencies: - "@smithy/querystring-parser" "^3.0.11" - "@smithy/types" "^3.7.2" + "@smithy/querystring-parser" "^4.2.1" + "@smithy/types" "^4.7.0" tslib "^2.6.2" -"@smithy/util-base64@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-3.0.0.tgz#f7a9a82adf34e27a72d0719395713edf0e493017" - integrity sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ== +"@smithy/util-base64@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-4.3.0.tgz#5e287b528793aa7363877c1a02cd880d2e76241d" + integrity sha512-GkXZ59JfyxsIwNTWFnjmFEI8kZpRNIBfxKjv09+nkAWPt/4aGaEWMM04m4sxgNVWkbt2MdSvE3KF/PfX4nFedQ== dependencies: - "@smithy/util-buffer-from" "^3.0.0" - "@smithy/util-utf8" "^3.0.0" + "@smithy/util-buffer-from" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@smithy/util-body-length-browser@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-3.0.0.tgz#86ec2f6256310b4845a2f064e2f571c1ca164ded" - integrity sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ== +"@smithy/util-body-length-browser@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-4.2.0.tgz#04e9fc51ee7a3e7f648a4b4bcdf96c350cfa4d61" + integrity sha512-Fkoh/I76szMKJnBXWPdFkQJl2r9SjPt3cMzLdOB6eJ4Pnpas8hVoWPYemX/peO0yrrvldgCUVJqOAjUrOLjbxg== dependencies: tslib "^2.6.2" -"@smithy/util-body-length-node@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-3.0.0.tgz#99a291bae40d8932166907fe981d6a1f54298a6d" - integrity sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA== +"@smithy/util-body-length-node@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-4.2.1.tgz#79c8a5d18e010cce6c42d5cbaf6c1958523e6fec" + integrity sha512-h53dz/pISVrVrfxV1iqXlx5pRg3V2YWFcSQyPyXZRrZoZj4R4DeWRDo1a7dd3CPTcFi3kE+98tuNyD2axyZReA== dependencies: tslib "^2.6.2" @@ -2657,96 +2489,95 @@ "@smithy/is-array-buffer" "^2.2.0" tslib "^2.6.2" -"@smithy/util-buffer-from@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-3.0.0.tgz#559fc1c86138a89b2edaefc1e6677780c24594e3" - integrity sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA== +"@smithy/util-buffer-from@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-4.2.0.tgz#7abd12c4991b546e7cee24d1e8b4bfaa35c68a9d" + integrity sha512-kAY9hTKulTNevM2nlRtxAG2FQ3B2OR6QIrPY3zE5LqJy1oxzmgBGsHLWTcNhWXKchgA0WHW+mZkQrng/pgcCew== dependencies: - "@smithy/is-array-buffer" "^3.0.0" + "@smithy/is-array-buffer" "^4.2.0" tslib "^2.6.2" -"@smithy/util-config-provider@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-3.0.0.tgz#62c6b73b22a430e84888a8f8da4b6029dd5b8efe" - integrity sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ== +"@smithy/util-config-provider@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-4.2.0.tgz#2e4722937f8feda4dcb09672c59925a4e6286cfc" + integrity sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q== dependencies: tslib "^2.6.2" -"@smithy/util-defaults-mode-browser@^3.0.30": - version "3.0.30" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.30.tgz#6c0d95af3f15bef8f1fe3f6217cc4f5ba8df5554" - integrity sha512-nLuGmgfcr0gzm64pqF2UT4SGWVG8UGviAdayDlVzJPNa6Z4lqvpDzdRXmLxtOdEjVlTOEdpZ9dd3ZMMu488mzg== +"@smithy/util-defaults-mode-browser@^4.3.0": + version "4.3.1" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.1.tgz#62c406c8e4ce731ac223b50cc7bbee674d38cfd0" + integrity sha512-B3kaaqtc11rIc7SN3g6TYGdUrQfCkoHvpqbhd9kdfRUQZG7M7dcc0oLcCjMuBhCSUdtorkK7OA5uGq9BB+isaA== dependencies: - "@smithy/property-provider" "^3.1.11" - "@smithy/smithy-client" "^3.5.0" - "@smithy/types" "^3.7.2" - bowser "^2.11.0" + "@smithy/property-provider" "^4.2.1" + "@smithy/smithy-client" "^4.8.0" + "@smithy/types" "^4.7.0" tslib "^2.6.2" -"@smithy/util-defaults-mode-node@^3.0.30": - version "3.0.30" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.30.tgz#33cdb02f90944b9ff221e2f8e0904a63ac1e335f" - integrity sha512-OD63eWoH68vp75mYcfYyuVH+p7Li/mY4sYOROnauDrtObo1cS4uWfsy/zhOTW8F8ZPxQC1ZXZKVxoxvMGUv2Ow== +"@smithy/util-defaults-mode-node@^4.2.1": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.2.tgz#b561cd3192e6cda6a0a3ee3c1b050248eb8ffaed" + integrity sha512-cneOHBPi/DGbjz65oV8wID+uUbtzrFAQ8w3a7uS3C1jjrInSrinAitup8SouDpmi8jr5GVOAck1/hsR3n/WvaQ== dependencies: - "@smithy/config-resolver" "^3.0.13" - "@smithy/credential-provider-imds" "^3.2.8" - "@smithy/node-config-provider" "^3.1.12" - "@smithy/property-provider" "^3.1.11" - "@smithy/smithy-client" "^3.5.0" - "@smithy/types" "^3.7.2" + "@smithy/config-resolver" "^4.3.1" + "@smithy/credential-provider-imds" "^4.2.1" + "@smithy/node-config-provider" "^4.3.1" + "@smithy/property-provider" "^4.2.1" + "@smithy/smithy-client" "^4.8.0" + "@smithy/types" "^4.7.0" tslib "^2.6.2" -"@smithy/util-endpoints@^2.1.7": - version "2.1.7" - resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-2.1.7.tgz#a088ebfab946a7219dd4763bfced82709894b82d" - integrity sha512-tSfcqKcN/Oo2STEYCABVuKgJ76nyyr6skGl9t15hs+YaiU06sgMkN7QYjo0BbVw+KT26zok3IzbdSOksQ4YzVw== +"@smithy/util-endpoints@^3.2.0": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-3.2.1.tgz#da67eb006997c4806ceafd30237c92b48e87a624" + integrity sha512-lJudabG/ll+BD22i8IgxZgxS+1hEdUfFqtC1tNubC9vlGwInUktcXodTe5CvM+xDiqGZfqYLY7mKFdabCIrkYw== dependencies: - "@smithy/node-config-provider" "^3.1.12" - "@smithy/types" "^3.7.2" + "@smithy/node-config-provider" "^4.3.1" + "@smithy/types" "^4.7.0" tslib "^2.6.2" -"@smithy/util-hex-encoding@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-3.0.0.tgz#32938b33d5bf2a15796cd3f178a55b4155c535e6" - integrity sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ== +"@smithy/util-hex-encoding@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-4.2.0.tgz#1c22ea3d1e2c3a81ff81c0a4f9c056a175068a7b" + integrity sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw== dependencies: tslib "^2.6.2" -"@smithy/util-middleware@^3.0.11": - version "3.0.11" - resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-3.0.11.tgz#2ab5c17266b42c225e62befcffb048afa682b5bf" - integrity sha512-dWpyc1e1R6VoXrwLoLDd57U1z6CwNSdkM69Ie4+6uYh2GC7Vg51Qtan7ITzczuVpqezdDTKJGJB95fFvvjU/ow== +"@smithy/util-middleware@^4.2.0", "@smithy/util-middleware@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-4.2.1.tgz#126aaeb6b434748b81058b0ea6c1a7c1656d7040" + integrity sha512-4rf5Ma0e0uuKmtzMihsvs3jnb9iGMRDWrUe6mfdZBWm52PW1xVHdEeP4+swhheF+YAXhVH/O+taKJuqOrVsG3w== dependencies: - "@smithy/types" "^3.7.2" + "@smithy/types" "^4.7.0" tslib "^2.6.2" -"@smithy/util-retry@^3.0.11": - version "3.0.11" - resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-3.0.11.tgz#d267e5ccb290165cee69732547fea17b695a7425" - integrity sha512-hJUC6W7A3DQgaee3Hp9ZFcOxVDZzmBIRBPlUAk8/fSOEl7pE/aX7Dci0JycNOnm9Mfr0KV2XjIlUOcGWXQUdVQ== +"@smithy/util-retry@^4.2.0", "@smithy/util-retry@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-4.2.1.tgz#8336368586a458cdce86fc92d6fb11fd1db41521" + integrity sha512-0DQqQtZ9brT/QCMts9ssPnsU6CmQAgzkAvTIGcTHoMbntQa7v5VPxxpiyyiTK/BIl8y0vCZSXcOS+kOMXAYRpg== dependencies: - "@smithy/service-error-classification" "^3.0.11" - "@smithy/types" "^3.7.2" + "@smithy/service-error-classification" "^4.2.1" + "@smithy/types" "^4.7.0" tslib "^2.6.2" -"@smithy/util-stream@^3.3.2": - version "3.3.2" - resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-3.3.2.tgz#daeea26397e8541cf2499ce65bf0b8d528cba421" - integrity sha512-sInAqdiVeisUGYAv/FrXpmJ0b4WTFmciTRqzhb7wVuem9BHvhIG7tpiYHLDWrl2stOokNZpTTGqz3mzB2qFwXg== +"@smithy/util-stream@^4.5.0", "@smithy/util-stream@^4.5.1": + version "4.5.1" + resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-4.5.1.tgz#07b330af9263762a42ea0b40578c67716b080b84" + integrity sha512-kVnOiYDDb84ZUGwpQBiVQROWR7epNXikxMGw971Mww3+eufKl2NHYyao2Gg4Wd3iG+D9hF/d9VrmMBxBcVprXw== dependencies: - "@smithy/fetch-http-handler" "^4.1.2" - "@smithy/node-http-handler" "^3.3.2" - "@smithy/types" "^3.7.2" - "@smithy/util-base64" "^3.0.0" - "@smithy/util-buffer-from" "^3.0.0" - "@smithy/util-hex-encoding" "^3.0.0" - "@smithy/util-utf8" "^3.0.0" + "@smithy/fetch-http-handler" "^5.3.2" + "@smithy/node-http-handler" "^4.4.0" + "@smithy/types" "^4.7.0" + "@smithy/util-base64" "^4.3.0" + "@smithy/util-buffer-from" "^4.2.0" + "@smithy/util-hex-encoding" "^4.2.0" + "@smithy/util-utf8" "^4.2.0" tslib "^2.6.2" -"@smithy/util-uri-escape@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-3.0.0.tgz#e43358a78bf45d50bb736770077f0f09195b6f54" - integrity sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg== +"@smithy/util-uri-escape@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-4.2.0.tgz#096a4cec537d108ac24a68a9c60bee73fc7e3a9e" + integrity sha512-igZpCKV9+E/Mzrpq6YacdTQ0qTiLm85gD6N/IrmyDvQFA4UnU3d5g3m8tMT/6zG/vVkWSU+VxeUyGonL62DuxA== dependencies: tslib "^2.6.2" @@ -2758,23 +2589,35 @@ "@smithy/util-buffer-from" "^2.2.0" tslib "^2.6.2" -"@smithy/util-utf8@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-3.0.0.tgz#1a6a823d47cbec1fd6933e5fc87df975286d9d6a" - integrity sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA== +"@smithy/util-utf8@^4.2.0": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-4.2.0.tgz#8b19d1514f621c44a3a68151f3d43e51087fed9d" + integrity sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw== dependencies: - "@smithy/util-buffer-from" "^3.0.0" + "@smithy/util-buffer-from" "^4.2.0" tslib "^2.6.2" -"@smithy/util-waiter@^3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-3.2.0.tgz#1e52f870e77d2e5572025f7606053e6ff00df93d" - integrity sha512-PpjSboaDUE6yl+1qlg3Si57++e84oXdWGbuFUSAciXsVfEZJJJupR2Nb0QuXHiunt2vGR+1PTizOMvnUPaG2Qg== +"@smithy/util-waiter@^4.2.0": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-4.2.1.tgz#c849ef1096863314d762944ead830e20db56783c" + integrity sha512-c/tJR24Zf7TZFiq/cmVY9WH9j6j3WBDVvhfgCE9mtSb1u93A1P+qf4c7r6g8hcJOKm25Jp12uqojnB0T1//OmA== dependencies: - "@smithy/abort-controller" "^3.1.9" - "@smithy/types" "^3.7.2" + "@smithy/abort-controller" "^4.2.1" + "@smithy/types" "^4.7.0" tslib "^2.6.2" +"@smithy/uuid@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@smithy/uuid/-/uuid-1.1.0.tgz#9fd09d3f91375eab94f478858123387df1cda987" + integrity sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw== + dependencies: + tslib "^2.6.2" + +"@standard-schema/spec@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@standard-schema/spec/-/spec-1.0.0.tgz#f193b73dc316c4170f2e82a881da0f550d551b9c" + integrity sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA== + "@standard-schema/utils@^0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@standard-schema/utils/-/utils-0.3.0.tgz#3d5e608f16c2390c10528e98e59aef6bf73cae7b" @@ -2782,47 +2625,47 @@ "@svgr/babel-plugin-add-jsx-attribute@8.0.0": version "8.0.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz#4001f5d5dd87fa13303e36ee106e3ff3a7eb8b22" integrity sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g== "@svgr/babel-plugin-remove-jsx-attribute@8.0.0": version "8.0.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz#69177f7937233caca3a1afb051906698f2f59186" integrity sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA== "@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0": version "8.0.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz#c2c48104cfd7dcd557f373b70a56e9e3bdae1d44" integrity sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA== "@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0": version "8.0.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz#8fbb6b2e91fa26ac5d4aa25c6b6e4f20f9c0ae27" integrity sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ== "@svgr/babel-plugin-svg-dynamic-title@8.0.0": version "8.0.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz#1d5ba1d281363fc0f2f29a60d6d936f9bbc657b0" integrity sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og== "@svgr/babel-plugin-svg-em-dimensions@8.0.0": version "8.0.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz#35e08df300ea8b1d41cb8f62309c241b0369e501" integrity sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g== "@svgr/babel-plugin-transform-react-native-svg@8.1.0": version "8.1.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz#90a8b63998b688b284f255c6a5248abd5b28d754" integrity sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q== "@svgr/babel-plugin-transform-svg-component@8.0.0": version "8.0.0" - resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz#013b4bfca88779711f0ed2739f3f7efcefcf4f7e" integrity sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw== "@svgr/babel-preset@8.1.0": version "8.1.0" - resolved "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-8.1.0.tgz#0e87119aecdf1c424840b9d4565b7137cabf9ece" integrity sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug== dependencies: "@svgr/babel-plugin-add-jsx-attribute" "8.0.0" @@ -2836,7 +2679,7 @@ "@svgr/core@^8.1.0": version "8.1.0" - resolved "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/core/-/core-8.1.0.tgz#41146f9b40b1a10beaf5cc4f361a16a3c1885e88" integrity sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA== dependencies: "@babel/core" "^7.21.3" @@ -2847,7 +2690,7 @@ "@svgr/hast-util-to-babel-ast@8.0.0": version "8.0.0" - resolved "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz#6952fd9ce0f470e1aded293b792a2705faf4ffd4" integrity sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q== dependencies: "@babel/types" "^7.21.3" @@ -2855,7 +2698,7 @@ "@svgr/plugin-jsx@^8.1.0": version "8.1.0" - resolved "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz" + resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz#96969f04a24b58b174ee4cd974c60475acbd6928" integrity sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA== dependencies: "@babel/core" "^7.21.3" @@ -2863,90 +2706,90 @@ "@svgr/hast-util-to-babel-ast" "8.0.0" svg-parser "^2.0.4" -"@swc/core-darwin-arm64@1.5.7": - version "1.5.7" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.5.7.tgz#2b5cdbd34e4162e50de6147dd1a5cb12d23b08e8" - integrity sha512-bZLVHPTpH3h6yhwVl395k0Mtx8v6CGhq5r4KQdAoPbADU974Mauz1b6ViHAJ74O0IVE5vyy7tD3OpkQxL/vMDQ== +"@swc/core-darwin-arm64@1.13.5": + version "1.13.5" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.13.5.tgz#7638c073946f9297753ed9a2eb198d07b2336a24" + integrity sha512-lKNv7SujeXvKn16gvQqUQI5DdyY8v7xcoO3k06/FJbHJS90zEwZdQiMNRiqpYw/orU543tPaWgz7cIYWhbopiQ== -"@swc/core-darwin-x64@1.5.7": - version "1.5.7" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.5.7.tgz#6aa7e3c01ab8e5e41597f8a24ff24c4e50936a46" - integrity sha512-RpUyu2GsviwTc2qVajPL0l8nf2vKj5wzO3WkLSHAHEJbiUZk83NJrZd1RVbEknIMO7+Uyjh54hEh8R26jSByaw== +"@swc/core-darwin-x64@1.13.5": + version "1.13.5" + resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.13.5.tgz#18061167378f0fb285e17818494bc6c89dd07551" + integrity sha512-ILd38Fg/w23vHb0yVjlWvQBoE37ZJTdlLHa8LRCFDdX4WKfnVBiblsCU9ar4QTMNdeTBEX9iUF4IrbNWhaF1Ng== -"@swc/core-linux-arm-gnueabihf@1.5.7": - version "1.5.7" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.5.7.tgz#160108633b9e1d1ad05f815bedc7e9eb5d59fc2a" - integrity sha512-cTZWTnCXLABOuvWiv6nQQM0hP6ZWEkzdgDvztgHI/+u/MvtzJBN5lBQ2lue/9sSFYLMqzqff5EHKlFtrJCA9dQ== +"@swc/core-linux-arm-gnueabihf@1.13.5": + version "1.13.5" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.13.5.tgz#4c8062bd598049b5b9b0beb762e075e76b4c23c3" + integrity sha512-Q6eS3Pt8GLkXxqz9TAw+AUk9HpVJt8Uzm54MvPsqp2yuGmY0/sNaPPNVqctCX9fu/Nu8eaWUen0si6iEiCsazQ== -"@swc/core-linux-arm64-gnu@1.5.7": - version "1.5.7" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.5.7.tgz#cbfa512683c73227ad25552f3b3e722b0e7fbd1d" - integrity sha512-hoeTJFBiE/IJP30Be7djWF8Q5KVgkbDtjySmvYLg9P94bHg9TJPSQoC72tXx/oXOgXvElDe/GMybru0UxhKx4g== +"@swc/core-linux-arm64-gnu@1.13.5": + version "1.13.5" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.13.5.tgz#7222d321197ea9304e387933e87d775849fc1ae6" + integrity sha512-aNDfeN+9af+y+M2MYfxCzCy/VDq7Z5YIbMqRI739o8Ganz6ST+27kjQFd8Y/57JN/hcnUEa9xqdS3XY7WaVtSw== -"@swc/core-linux-arm64-musl@1.5.7": - version "1.5.7" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.5.7.tgz#80239cb58fe57f3c86b44617fe784530ec55ee2b" - integrity sha512-+NDhK+IFTiVK1/o7EXdCeF2hEzCiaRSrb9zD7X2Z7inwWlxAntcSuzZW7Y6BRqGQH89KA91qYgwbnjgTQ22PiQ== +"@swc/core-linux-arm64-musl@1.13.5": + version "1.13.5" + resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.13.5.tgz#51e7958deaf37edc212bd9dc0ea1476f151d2bea" + integrity sha512-9+ZxFN5GJag4CnYnq6apKTnnezpfJhCumyz0504/JbHLo+Ue+ZtJnf3RhyA9W9TINtLE0bC4hKpWi8ZKoETyOQ== -"@swc/core-linux-x64-gnu@1.5.7": - version "1.5.7" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.5.7.tgz#a699c1632de60b6a63b7fdb7abcb4fef317e57ca" - integrity sha512-25GXpJmeFxKB+7pbY7YQLhWWjkYlR+kHz5I3j9WRl3Lp4v4UD67OGXwPe+DIcHqcouA1fhLhsgHJWtsaNOMBNg== +"@swc/core-linux-x64-gnu@1.13.5": + version "1.13.5" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.13.5.tgz#3476beab93ab03e92844d955ca9d9289aa4a5993" + integrity sha512-WD530qvHrki8Ywt/PloKUjaRKgstQqNGvmZl54g06kA+hqtSE2FTG9gngXr3UJxYu/cNAjJYiBifm7+w4nbHbA== -"@swc/core-linux-x64-musl@1.5.7": - version "1.5.7" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.5.7.tgz#8e4c203d6bc41e7f85d7d34d0fdf4ef751fa626c" - integrity sha512-0VN9Y5EAPBESmSPPsCJzplZHV26akC0sIgd3Hc/7S/1GkSMoeuVL+V9vt+F/cCuzr4VidzSkqftdP3qEIsXSpg== +"@swc/core-linux-x64-musl@1.13.5": + version "1.13.5" + resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.13.5.tgz#f4934b1e77e2a297909bb3ab977836205c36e5e0" + integrity sha512-Luj8y4OFYx4DHNQTWjdIuKTq2f5k6uSXICqx+FSabnXptaOBAbJHNbHT/06JZh6NRUouaf0mYXN0mcsqvkhd7Q== -"@swc/core-win32-arm64-msvc@1.5.7": - version "1.5.7" - resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.5.7.tgz#31e3d42b8c0aa79f0ea1a980c0dd1a999d378ed7" - integrity sha512-RtoNnstBwy5VloNCvmvYNApkTmuCe4sNcoYWpmY7C1+bPR+6SOo8im1G6/FpNem8AR5fcZCmXHWQ+EUmRWJyuA== +"@swc/core-win32-arm64-msvc@1.13.5": + version "1.13.5" + resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.13.5.tgz#5084c107435cfc82d4d901bfb388dc319d38a236" + integrity sha512-cZ6UpumhF9SDJvv4DA2fo9WIzlNFuKSkZpZmPG1c+4PFSEMy5DFOjBSllCvnqihCabzXzpn6ykCwBmHpy31vQw== -"@swc/core-win32-ia32-msvc@1.5.7": - version "1.5.7" - resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.5.7.tgz#a235285f9f62850aefcf9abb03420f2c54f63638" - integrity sha512-Xm0TfvcmmspvQg1s4+USL3x8D+YPAfX2JHygvxAnCJ0EHun8cm2zvfNBcsTlnwYb0ybFWXXY129aq1wgFC9TpQ== +"@swc/core-win32-ia32-msvc@1.13.5": + version "1.13.5" + resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.13.5.tgz#f8b2e28bc51b30467e316ed736a130c1324b9880" + integrity sha512-C5Yi/xIikrFUzZcyGj9L3RpKljFvKiDMtyDzPKzlsDrKIw2EYY+bF88gB6oGY5RGmv4DAX8dbnpRAqgFD0FMEw== -"@swc/core-win32-x64-msvc@1.5.7": - version "1.5.7" - resolved "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.5.7.tgz" - integrity sha512-tp43WfJLCsKLQKBmjmY/0vv1slVywR5Q4qKjF5OIY8QijaEW7/8VwPyUyVoJZEnDgv9jKtUTG5PzqtIYPZGnyg== +"@swc/core-win32-x64-msvc@1.13.5": + version "1.13.5" + resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.13.5.tgz#13883cf3c63bf11b787e28dcdf75ca0cc49efa83" + integrity sha512-YrKdMVxbYmlfybCSbRtrilc6UA8GF5aPmGKBdPvjrarvsmf4i7ZHGCEnLtfOMd3Lwbs2WUZq3WdMbozYeLU93Q== "@swc/core@^1.4.16": - version "1.5.7" - resolved "https://registry.npmjs.org/@swc/core/-/core-1.5.7.tgz" - integrity sha512-U4qJRBefIJNJDRCCiVtkfa/hpiZ7w0R6kASea+/KLp+vkus3zcLSB8Ub8SvKgTIxjWpwsKcZlPf5nrv4ls46SQ== + version "1.13.5" + resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.13.5.tgz#93874b831d3bd121560e6fcd688972b7fc7baa26" + integrity sha512-WezcBo8a0Dg2rnR82zhwoR6aRNxeTGfK5QCD6TQ+kg3xx/zNT02s/0o+81h/3zhvFSB24NtqEr8FTw88O5W/JQ== dependencies: - "@swc/counter" "^0.1.2" - "@swc/types" "0.1.7" + "@swc/counter" "^0.1.3" + "@swc/types" "^0.1.24" optionalDependencies: - "@swc/core-darwin-arm64" "1.5.7" - "@swc/core-darwin-x64" "1.5.7" - "@swc/core-linux-arm-gnueabihf" "1.5.7" - "@swc/core-linux-arm64-gnu" "1.5.7" - "@swc/core-linux-arm64-musl" "1.5.7" - "@swc/core-linux-x64-gnu" "1.5.7" - "@swc/core-linux-x64-musl" "1.5.7" - "@swc/core-win32-arm64-msvc" "1.5.7" - "@swc/core-win32-ia32-msvc" "1.5.7" - "@swc/core-win32-x64-msvc" "1.5.7" + "@swc/core-darwin-arm64" "1.13.5" + "@swc/core-darwin-x64" "1.13.5" + "@swc/core-linux-arm-gnueabihf" "1.13.5" + "@swc/core-linux-arm64-gnu" "1.13.5" + "@swc/core-linux-arm64-musl" "1.13.5" + "@swc/core-linux-x64-gnu" "1.13.5" + "@swc/core-linux-x64-musl" "1.13.5" + "@swc/core-win32-arm64-msvc" "1.13.5" + "@swc/core-win32-ia32-msvc" "1.13.5" + "@swc/core-win32-x64-msvc" "1.13.5" -"@swc/counter@^0.1.2", "@swc/counter@^0.1.3": +"@swc/counter@^0.1.3": version "0.1.3" - resolved "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz" + resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9" integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ== -"@swc/types@0.1.7": - version "0.1.7" - resolved "https://registry.npmjs.org/@swc/types/-/types-0.1.7.tgz" - integrity sha512-scHWahbHF0eyj3JsxG9CFJgFdFNaVQCNAimBlT6PzS3n/HptxqREjsm4OH6AN3lYcffZYSPxXW8ua2BEHp0lJQ== +"@swc/types@^0.1.24": + version "0.1.25" + resolved "https://registry.yarnpkg.com/@swc/types/-/types-0.1.25.tgz#b517b2a60feb37dd933e542d93093719e4cf1078" + integrity sha512-iAoY/qRhNH8a/hBvm3zKj9qQ4oc2+3w1unPJa2XvTK3XjeLXtzcCingVPw/9e5mn1+0yPqxcBGp9Jf0pkfMb1g== dependencies: "@swc/counter" "^0.1.3" "@szmarczak/http-timer@^4.0.5": version "4.0.6" - resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== dependencies: defer-to-connect "^2.0.0" @@ -2958,139 +2801,139 @@ dependencies: uint8-util "^2.2.5" -"@tiptap/core@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@tiptap/core/-/core-3.6.2.tgz#abda4116e4a39779fca7070e316b9ed9fdcded7e" - integrity sha512-XKZYrCVFsyQGF6dXQR73YR222l/76wkKfZ+2/4LCrem5qtcOarmv5pYxjUBG8mRuBPskTTBImSFTeQltJIUNCg== +"@tiptap/core@^3.6.7": + version "3.6.7" + resolved "https://registry.yarnpkg.com/@tiptap/core/-/core-3.6.7.tgz#77ececdbe3379c02c594fda7fe4d3732dd79af28" + integrity sha512-Br3huqItnCkxjrt7EiIRMVd+dPfGRvy+ZTekRCofRzNioVtyRWRLH1KYM7cZ2z04wkDKA47E+j9Dr1z1aq474g== -"@tiptap/extension-blockquote@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-blockquote/-/extension-blockquote-3.6.2.tgz#01b589565c87a691e586e189ddcbcdc5f35618fc" - integrity sha512-TSl41UZhi3ugJMDaf91CA4F5NeFylgTSm6GqnZAHOE6IREdCpAK3qej2zaW3EzfpzxW7sRGLlytkZRvpeyjgJA== +"@tiptap/extension-blockquote@^3.6.7": + version "3.6.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-blockquote/-/extension-blockquote-3.6.7.tgz#79ddf3796433de54f61297d69b0461c5ab82fec5" + integrity sha512-8IdRy7ixrUVVbiaaJBx7p6KRyJQDRezKL+mklkKEd2srK0ApCdQSjqnBbYQ20lkDMC6o35Jw+ZhHy/TdnmLscg== -"@tiptap/extension-bold@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-bold/-/extension-bold-3.6.2.tgz#ed721961daf3210c7ba4433a5aeae981043c2d77" - integrity sha512-Q9KO8CCPCAXYqHzIw8b/ookVmrfqfCg2cyh9h9Hvw6nhO4LOOnJMcGVmWsrpFItbwCGMafI5iY9SbSj7RpCyuw== +"@tiptap/extension-bold@^3.6.2", "@tiptap/extension-bold@^3.6.7": + version "3.6.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-bold/-/extension-bold-3.6.7.tgz#7d2f3763b259bfe18df318e90f4e61e0a670aefe" + integrity sha512-K07qJY9uwcmjnh56l3Qj9ma0R8OffigMKXn0PKMtQ5exaRDuZFiHirCOw85u8iqLjVpx0hsZJ3gumP4RO+a31Q== -"@tiptap/extension-bubble-menu@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-bubble-menu/-/extension-bubble-menu-3.6.2.tgz#237d84f217c8da52c0bc5265a36557fb27d64eaf" - integrity sha512-OF5CxCmYExcXZjcectwAeujSeDZ4IltPy+SsqBZLbQRDts9PQhzv5azGDvYdL2eMMkT3yhO2gWkXxSHMxI3O6w== +"@tiptap/extension-bubble-menu@^3.6.7": + version "3.6.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-bubble-menu/-/extension-bubble-menu-3.6.7.tgz#88ea4aa1c8f8a9c5d118ae5143b2cec978e2509b" + integrity sha512-5hn++5eZYUKhoEfAhpzq/0qQDThD/WZfdEUnual+xAgfYG6MXPeJhHfmNDjOlCpM2ld5p7ap38N273rnr4yulQ== dependencies: "@floating-ui/dom" "^1.0.0" -"@tiptap/extension-bullet-list@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-bullet-list/-/extension-bullet-list-3.6.2.tgz#be20b6c795c53bc0d199bdc4dd9f01b6270a1bee" - integrity sha512-Y5Uhir+za7xMm6RAe592aNNlLvCayVSQt2HfSckOr+c/v/Zd2bFUHv0ef6l/nUzUhDBs32Bg9SvfWx/yyMyNEw== +"@tiptap/extension-bullet-list@^3.6.7": + version "3.6.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-bullet-list/-/extension-bullet-list-3.6.7.tgz#3926ae219b214cc3327e439fdb06797a29b7e3e7" + integrity sha512-ISuKxSNEJsTVglvbolBbrG8OvAAg/xC1EYtaDArDMcRdhi1UR9uy+u5ZkJBgoTIWPp2cvCnqnaCL8VH7vk4JAg== -"@tiptap/extension-code-block@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-code-block/-/extension-code-block-3.6.2.tgz#cb3f6f607dcfb36e3eff25255fdcfdedfb3940a7" - integrity sha512-5jfoiQ/3AUrIyuVU1NmEXar6sZFnY7wDFf3ZU2zpcBUG++yg/CmpOe5bXpoolczhl58cM/jyBG5gumQjyOxLNg== +"@tiptap/extension-code-block@^3.6.7": + version "3.6.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-code-block/-/extension-code-block-3.6.7.tgz#769ea88fcba8be9feabc3087861dc761fef18045" + integrity sha512-BRNAxkkv6YNUnfpovR3RfLahqmvXqvRVvIIhgdMDt7/ifIY8CCdf+y/Fh3hVMi/QB71uZ1IMvrm1ikKm+w6rQg== -"@tiptap/extension-code@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-code/-/extension-code-3.6.2.tgz#5c6500d748fd4f52ddbe01ff114d4933c7a09e8f" - integrity sha512-U6jilbcpCxtLZAgJrTapXzzVJTXnS78kJITFSOLyGCTyGSm6PXatQ4hnaxVGmNet66GySONGjhwAVZ8+l94Rwg== +"@tiptap/extension-code@^3.6.7": + version "3.6.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-code/-/extension-code-3.6.7.tgz#160ee044f12c182f773ae728ac8a7a5f97dcdea6" + integrity sha512-wCzd5NxxuRUGZteevy2R4Y1frBVMVmYwHl+kmTwOJw8tZ6+tuKQn/6+KpDiLfia4tQXfgH3YxuV0o/ArlD5yOQ== -"@tiptap/extension-document@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-document/-/extension-document-3.6.2.tgz#5c3f3a85d12868f5d4e6d6d258b8fa0b8000b778" - integrity sha512-4qg3KWL3aO1M7hfDpZR6/vSo7Cfqr3McyGUfqb/BXqYDW1DwT8jJkDTcHrGU7WUKRlWgoyPyzM8pZiGlP0uQHg== +"@tiptap/extension-document@^3.6.7": + version "3.6.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-document/-/extension-document-3.6.7.tgz#d9ee2e40e3d3b107bd9a8e44f5681421e38f006a" + integrity sha512-Tlxf8tbViD57nlqzDyE/QwS4HGpwlqCFS1qD0tayoqpJqaVO5DvBS8XWFCYIQx8bQqaNsfPvTzjICXIPFOr0Rw== -"@tiptap/extension-dropcursor@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-dropcursor/-/extension-dropcursor-3.6.2.tgz#22a64a4da25ac17cf0cd33e1e924762000152817" - integrity sha512-6R5sma/i2TKd5h9OpIcy3a0wOGp5BNT/zIgnE/1HTmKi40eNcCAVe8sxd6+iWA5ETONP1E48kDy4hqA5ZzZCiQ== +"@tiptap/extension-dropcursor@^3.6.7": + version "3.6.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-dropcursor/-/extension-dropcursor-3.6.7.tgz#937d1adffdf3782c61ff941e0b2182929fb7dc44" + integrity sha512-m3OF468rQCFq0kPIsKJl/nLgJjGTK0Sb6jLzVb692KOWnvWsGcREiRCuYnDHoym0TrOem/kyFqtrB4kCq8Xchw== -"@tiptap/extension-floating-menu@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-floating-menu/-/extension-floating-menu-3.6.2.tgz#cc9c97cdd5fa55407631d3135e00ca8051516444" - integrity sha512-ym7YMKGY3QhFUKUS6JYOwtdi8s2PeGmOhu7TwI9/U0LmGbELeKJBJl2BP1yB+Sjpv25pVL++CwJQ6dsrjDlZ8g== +"@tiptap/extension-floating-menu@^3.6.7": + version "3.6.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-floating-menu/-/extension-floating-menu-3.6.7.tgz#9892c04b9e9f530dd5ddc095a2c4ef6fd4921be1" + integrity sha512-e/CM70p4Xld6uRJY5ke+VhezDLF8rU7Dvi5IHMblAF6NiupC9wCgWYZUsQDVfoGo4Ky9b+c54Ybnan2XGBkIRg== -"@tiptap/extension-gapcursor@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-gapcursor/-/extension-gapcursor-3.6.2.tgz#790c94d20a5b8ded4c0d38960254d24704a2bc08" - integrity sha512-gXg+EvUKlv3ZO1GxKkRmAsi/V4yyA8AzLW6ppOcYrM2CKf6epmPaVRgAjdwHCA6cm3QuCBJyWeGTCAjhjNakhw== +"@tiptap/extension-gapcursor@^3.6.7": + version "3.6.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-gapcursor/-/extension-gapcursor-3.6.7.tgz#be296c794b0375cbe01a8033217c13ab49774e77" + integrity sha512-n8dtV7wmmrtMCdOww/ZJZX+nzQexDONIlxz3lckKn0HJ7OoZz9YKvcx8tcEbbKcGAPkl6j9dsRDxxVqXiKGhlw== -"@tiptap/extension-hard-break@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-hard-break/-/extension-hard-break-3.6.2.tgz#3c379d9104cd7d9e942277f22ba62c57fae267ad" - integrity sha512-ncuPBHhGY58QjluJvEH6vXotaa1QZ/vphXBGAr55kiATZwMIEHgwh2Hgc6AiFTcw057gabGn6jNFDfRB+HjbmA== +"@tiptap/extension-hard-break@^3.6.7": + version "3.6.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-hard-break/-/extension-hard-break-3.6.7.tgz#300d3e7341a5737492ab354589f2503b5425263c" + integrity sha512-Jlzi5KPCylrSIrlYRxLC33OLlu/8p9rv0EsKPB04OXcr/Oyy9Z0X2/yTWzoNUma6cMpqikLAGQhQZ1rpGDKygw== -"@tiptap/extension-heading@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-heading/-/extension-heading-3.6.2.tgz#3884c309de60c9d61f1bb60c521410b3a0d88ed7" - integrity sha512-JQ2yjwXGAiwGc+MhS1mULBr354MHfmWqVDQLRg8ey6LkdXggTDDJ1Ni3GrUS7B5YcA/ICdhr4krXaQpNkT5Syw== +"@tiptap/extension-heading@^3.6.7": + version "3.6.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-heading/-/extension-heading-3.6.7.tgz#ca02310eb07b4cb093bdd2754b3bb1ee5263ceb1" + integrity sha512-uuAkZ+WXr6jZ7x75Vim20V9o5RbaZmFAj/HjKjw6xgSUcMDL7dWdKNGO2v20iv6o8+MyZtD4ZCW0qfq401nA/Q== -"@tiptap/extension-horizontal-rule@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-3.6.2.tgz#f5680b3209bc48bf8635f3674355bd3d47f15622" - integrity sha512-3TlPqedPDM9QkRTUPhOTxNxQVPSsBwlsuLrAZOgyM1y871Xi7M1DFX0h9LLXuqzPndYzUY16NjrfBGFJX+O56w== +"@tiptap/extension-horizontal-rule@^3.6.7": + version "3.6.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-3.6.7.tgz#26ea71e9d754403097eb43eb24b427159fae551c" + integrity sha512-ISUlP+OhhFiITNPwRP2MJPXtI0yobCeXnyMQDmI5of9j79N+ckq8CuEt/Ab3KS4hMM74dkBbsN0AGzyI60lLSQ== -"@tiptap/extension-italic@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-italic/-/extension-italic-3.6.2.tgz#ea314f5e723499c9e7a1021ad7836693db9c653c" - integrity sha512-46zYKqM3o9w1A2G9hWr0ERGbJpqIncoH45XIfLdAI6ZldZVVf+NeXMGwjOPf4+03cZ5/emk3MRTnVp9vF4ToIg== +"@tiptap/extension-italic@^3.6.2", "@tiptap/extension-italic@^3.6.7": + version "3.6.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-italic/-/extension-italic-3.6.7.tgz#bef77575431f39c69ab55ca44a7ac582371ea421" + integrity sha512-aLLMLHyDN1ZD5dyR7NyDArbDllF4YLPLosq0+fqFT0UW5TpEG+d8pcRkvt8bA38Ih9AUQKTX9gzutfmOhX+xOw== -"@tiptap/extension-link@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-link/-/extension-link-3.6.2.tgz#5577d100cd3b735247db327b15d91de025cc76b6" - integrity sha512-3yiRDWa187h30e6iUOJeejZLsbzbJthLfBwTeJGx7pHh7RngsEW82npBRuqLoI3udhJGTkXbzwAFZ9qOGOjl1Q== +"@tiptap/extension-link@^3.6.2", "@tiptap/extension-link@^3.6.7": + version "3.6.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-link/-/extension-link-3.6.7.tgz#01e2e70a6a18990dad8f38c95969cb609b154db2" + integrity sha512-Zu3tAkyd82efPGxyyBhx+J2Fl214lUu2pFD9683PagyCeoQY+xBx8vRAKMvu2zerRnN60IYuKzSM4OX4kGNgUQ== dependencies: linkifyjs "^4.3.2" -"@tiptap/extension-list-item@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-list-item/-/extension-list-item-3.6.2.tgz#705f782a872e4bbb6f0e125fe277c45aeefe8161" - integrity sha512-ma/D2GKylpNB04FfNI3tDMY+C9nz7Yk85H21YTIGv8QL5KlDK97L6orydmx6IVRc2nNMZQVitBIEKDOXcczX9w== +"@tiptap/extension-list-item@^3.6.7": + version "3.6.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-list-item/-/extension-list-item-3.6.7.tgz#d1e2aa272a6b1d1f3fd8eb1fd352175cb8029625" + integrity sha512-eT88D37qRJz3GFD+6jc6OxTRfo+ovdx6X1mRJ+JQnCnYO8FCczG/4uQgiW/0rYUJH/RS9kAaTJHDIXTgxdfMyA== -"@tiptap/extension-list-keymap@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-list-keymap/-/extension-list-keymap-3.6.2.tgz#f14e173325b443a89dbbca7f418b76ec3d5c9a21" - integrity sha512-1kl/lggH+LL/FUwcSx8p761ebk9L5ZGK06mGyDDU9XiGLS310CktZYLnpEuFgn/oMPbRHo26oNl9SXLn1/U53A== +"@tiptap/extension-list-keymap@^3.6.7": + version "3.6.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-list-keymap/-/extension-list-keymap-3.6.7.tgz#bc0dffecac8896fc6cd6b7c59414628d0413b362" + integrity sha512-UE9FLi6lnp+qgRy2lAdu71i6YRdXWWm0DVUoDvcHxDgpCBLZqJ4ucXeJfV3vpqYUC452LwMAzxV809akyeFlsg== -"@tiptap/extension-list@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-list/-/extension-list-3.6.2.tgz#beb4d965f48085fa7f69197e10109cde8c175046" - integrity sha512-ZLaEHGVq4eL26hZZFE9e7RArk2rEjcVstN/YTRTKElTnLaf58kLTKN3nlgy1PWGwzfWGUuXURBuEBLaq5l6djg== +"@tiptap/extension-list@^3.6.7": + version "3.6.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-list/-/extension-list-3.6.7.tgz#5baa2dad49174d2e9b882866e77da62ce787b601" + integrity sha512-hF6/cTc6qKqm92Y9B8Cu2jUKzt6RSVqkPS9LFVOjTn0v/5FpzTpFsEDAs67i+PoOxKRnN6kZAs4b+QSWppgmMQ== -"@tiptap/extension-ordered-list@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-ordered-list/-/extension-ordered-list-3.6.2.tgz#43b83757f67264ff0050c03825e780da43680c1d" - integrity sha512-KdJ5MLIw19N+XiqQ2COXGtaq9TzUbtlLE5dgYCJQ2EumeZKIGELvUnHjrnIB9gH/gRlMs+hprLTh23xVUDJovg== +"@tiptap/extension-ordered-list@^3.6.7": + version "3.6.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-ordered-list/-/extension-ordered-list-3.6.7.tgz#497cfc94b258a383dc96391dcc99fe91ed54439c" + integrity sha512-TmoT6HpwhVVSSnv0fq9ppqeJM4WEe2QvDSJ1a17KVrsm3Gc94obL79RG84dlfCgq8QTk6gKcZGPwer5YokfS/A== -"@tiptap/extension-paragraph@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-paragraph/-/extension-paragraph-3.6.2.tgz#d6cc89cdc369e463dd7dd4eb9121718441c984a0" - integrity sha512-jeJWj2xKib3392iHQEcB7wYZ30dUgXuwqpCTwtN9eANor+Zvv6CpDKBs1R2al6BYFbIJCgKeTulqxce0yoC80g== +"@tiptap/extension-paragraph@^3.6.7": + version "3.6.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-paragraph/-/extension-paragraph-3.6.7.tgz#3b6738b72f1ed21f8eb46817e4c08bc1ec0589d4" + integrity sha512-ZfM0s719Ht4sDv1UdXiTxbElfiLFbdjyEBUQ60t2Gog2XOe6C9MJiUOF0QFqphr6eLdx29PHQh9SJjrsJ8Rgog== -"@tiptap/extension-strike@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-strike/-/extension-strike-3.6.2.tgz#2dab3f253a4ecfd525c5609ab5edb9325a6364c2" - integrity sha512-976u5WaioIN/0xCjl/UIEypmzACzxgVz6OGgfIsYyreMUiPjhhgzXb0A/2Po5p3nZpKcaMcxifOdhqdw+lDpIQ== +"@tiptap/extension-strike@^3.6.7": + version "3.6.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-strike/-/extension-strike-3.6.7.tgz#49a0e0ad29cc0c247f1856562a9ad817195572bf" + integrity sha512-WPaaSVroPqNvxZ3KgA3jz1DI/GcGOwU2ra+gjamge+YVWJAS4vxmvWsoqs4z6m8RFFOXg5cv+VCSjTFDNd12tw== -"@tiptap/extension-text@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-text/-/extension-text-3.6.2.tgz#77313173a9f91208e40d298bc2d40b39371b8fca" - integrity sha512-fFSUEv1H3lM92yr6jZdELk0gog8rPTK5hTf08kP8RsY8pA80Br1ADVenejrMV4UNTmT1JWTXGBGhMqfQFHUvAQ== +"@tiptap/extension-text@^3.6.7": + version "3.6.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-text/-/extension-text-3.6.7.tgz#4475c8aefc893a22fff27bbe2dad3d03ce532305" + integrity sha512-xkEduL3icFW2Wk0FUMLS9BCMatinEit/ALJ1XY/5J3QjCIH4pPHjiF8sXB+xv1numnxDSoU+8iVuTf4n2oDygg== -"@tiptap/extension-underline@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@tiptap/extension-underline/-/extension-underline-3.6.2.tgz#9f0dfb9722bd3d0cd144fc955bcb94a3fcf5eac2" - integrity sha512-IrG6vjxTMI2EeyhZCtx0sNTEu83PsAvzIh4vxmG1fUi/RYokks+sFbgGMuq0jtO96iVNEszlpAC/vaqfxFJwew== +"@tiptap/extension-underline@^3.6.2", "@tiptap/extension-underline@^3.6.7": + version "3.6.7" + resolved "https://registry.yarnpkg.com/@tiptap/extension-underline/-/extension-underline-3.6.7.tgz#ffc0bda5f80fda3162d875cb66ce08e769c94daf" + integrity sha512-D3gJl7oPSDPgNa/QspPhw/fd9SUde1jh5bVPnsI/Fywmd68oGrGhAXZxErBfxfQwjfmRrY8aB82g8CXIC8JEeg== -"@tiptap/extensions@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@tiptap/extensions/-/extensions-3.6.2.tgz#591fbd5b9fa41f98f69dbd7d21d5d38a2241d94b" - integrity sha512-tg7/DgaI6SpkeawryapUtNoBxsJUMJl3+nSjTfTvsaNXed+BHzLPsvmPbzlF9ScrAbVEx8nj6CCkneECYIQ4CQ== +"@tiptap/extensions@^3.6.7": + version "3.6.7" + resolved "https://registry.yarnpkg.com/@tiptap/extensions/-/extensions-3.6.7.tgz#05ecf20b63af8d00b50167c8399e82538acfe808" + integrity sha512-078CbHYbTdPt7cPf2dJpoR2rEDs3NXivAtaV+U5YF/17sUKNdrJ8kEaD3P3RT7vVKKJlWaTfttz5X68C0M7iBg== -"@tiptap/pm@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@tiptap/pm/-/pm-3.6.2.tgz#2121d4917f92d11229529a26955a7033aa8a8843" - integrity sha512-g+NXjqjbj6NfHOMl22uNWVYIu8oCq7RFfbnpohPMsSKJLaHYE8mJR++7T6P5R9FoqhIFdwizg1jTpwRU5CHqXQ== +"@tiptap/pm@^3.6.7": + version "3.6.7" + resolved "https://registry.yarnpkg.com/@tiptap/pm/-/pm-3.6.7.tgz#2014aabae3518cf91cff0cb30dc6fc99bf8168bb" + integrity sha512-M657tCIM8R86aNhslgTa1Dt46IECdRh0fWdopUY4GgeQNHFb/UXfBUqJI33IEZhspWYF30x7h0W+mrJ4Jr15WA== dependencies: prosemirror-changeset "^2.3.0" prosemirror-collab "^1.3.1" @@ -3112,46 +2955,46 @@ prosemirror-view "^1.38.1" "@tiptap/react@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@tiptap/react/-/react-3.6.2.tgz#5495776c9051a60ece7522da176c9f211a67c7df" - integrity sha512-jgG+bM/GDvI6jnqW3YyLtr/vOR6iO2ta9PYVzoWqNYIxISsMOJeRfinsIqB8l6hkiGZApn9bQji6oUXTc59fgA== + version "3.6.7" + resolved "https://registry.yarnpkg.com/@tiptap/react/-/react-3.6.7.tgz#62bfdc07787737dca20fd27a95904186ece52c69" + integrity sha512-PbSPjbPb1kWhr6VeCuk4Q2kQ6hlk9AN2mZK8cyT3O2ztHLVbcMW2hXrHTtNulN5JWUZlzZ4N/o1UVKo3iR+9dA== dependencies: "@types/use-sync-external-store" "^0.0.6" fast-deep-equal "^3.1.3" use-sync-external-store "^1.4.0" optionalDependencies: - "@tiptap/extension-bubble-menu" "^3.6.2" - "@tiptap/extension-floating-menu" "^3.6.2" + "@tiptap/extension-bubble-menu" "^3.6.7" + "@tiptap/extension-floating-menu" "^3.6.7" "@tiptap/starter-kit@^3.6.2": - version "3.6.2" - resolved "https://registry.yarnpkg.com/@tiptap/starter-kit/-/starter-kit-3.6.2.tgz#ddd5612d4836a87082254779c9f152bb51e757bc" - integrity sha512-nPzraIx/f1cOUNqG1LSC0OTnEu3mudcN3jQVuyGh3dvdOnik7FUciJEVfHKnloAyeoijidEeiLpiGHInp2uREg== + version "3.6.7" + resolved "https://registry.yarnpkg.com/@tiptap/starter-kit/-/starter-kit-3.6.7.tgz#0f1d2e69e1b3650a82375d4133d94fde67bb3c96" + integrity sha512-ROpQPMDJzEyNTJGUXML9VQzuhz0u7ojNi72mEXk0WkNgfAD0RnKVvTb40pI+oyjfbuSfNFfxEQCUWrJJyuFGFA== dependencies: - "@tiptap/core" "^3.6.2" - "@tiptap/extension-blockquote" "^3.6.2" - "@tiptap/extension-bold" "^3.6.2" - "@tiptap/extension-bullet-list" "^3.6.2" - "@tiptap/extension-code" "^3.6.2" - "@tiptap/extension-code-block" "^3.6.2" - "@tiptap/extension-document" "^3.6.2" - "@tiptap/extension-dropcursor" "^3.6.2" - "@tiptap/extension-gapcursor" "^3.6.2" - "@tiptap/extension-hard-break" "^3.6.2" - "@tiptap/extension-heading" "^3.6.2" - "@tiptap/extension-horizontal-rule" "^3.6.2" - "@tiptap/extension-italic" "^3.6.2" - "@tiptap/extension-link" "^3.6.2" - "@tiptap/extension-list" "^3.6.2" - "@tiptap/extension-list-item" "^3.6.2" - "@tiptap/extension-list-keymap" "^3.6.2" - "@tiptap/extension-ordered-list" "^3.6.2" - "@tiptap/extension-paragraph" "^3.6.2" - "@tiptap/extension-strike" "^3.6.2" - "@tiptap/extension-text" "^3.6.2" - "@tiptap/extension-underline" "^3.6.2" - "@tiptap/extensions" "^3.6.2" - "@tiptap/pm" "^3.6.2" + "@tiptap/core" "^3.6.7" + "@tiptap/extension-blockquote" "^3.6.7" + "@tiptap/extension-bold" "^3.6.7" + "@tiptap/extension-bullet-list" "^3.6.7" + "@tiptap/extension-code" "^3.6.7" + "@tiptap/extension-code-block" "^3.6.7" + "@tiptap/extension-document" "^3.6.7" + "@tiptap/extension-dropcursor" "^3.6.7" + "@tiptap/extension-gapcursor" "^3.6.7" + "@tiptap/extension-hard-break" "^3.6.7" + "@tiptap/extension-heading" "^3.6.7" + "@tiptap/extension-horizontal-rule" "^3.6.7" + "@tiptap/extension-italic" "^3.6.7" + "@tiptap/extension-link" "^3.6.7" + "@tiptap/extension-list" "^3.6.7" + "@tiptap/extension-list-item" "^3.6.7" + "@tiptap/extension-list-keymap" "^3.6.7" + "@tiptap/extension-ordered-list" "^3.6.7" + "@tiptap/extension-paragraph" "^3.6.7" + "@tiptap/extension-strike" "^3.6.7" + "@tiptap/extension-text" "^3.6.7" + "@tiptap/extension-underline" "^3.6.7" + "@tiptap/extensions" "^3.6.7" + "@tiptap/pm" "^3.6.7" "@tokenizer/inflate@^0.2.6": version "0.2.7" @@ -3169,7 +3012,7 @@ "@tootallnate/once@2": version "2.0.0" - resolved "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== "@tsconfig/node10@^1.0.7": @@ -3194,12 +3037,12 @@ "@types/auto-launch@^5.0.5": version "5.0.5" - resolved "https://registry.npmjs.org/@types/auto-launch/-/auto-launch-5.0.5.tgz" + resolved "https://registry.yarnpkg.com/@types/auto-launch/-/auto-launch-5.0.5.tgz#439ed36aaaea501e2e2cfbddd8a20c366c34863b" integrity sha512-/nGvQZSzM/pvCMCh4Gt2kIeiUmOP/cKGJbjlInI+A+5MoV/7XmT56DJ6EU8bqc3+ItxEe4UC2GVspmPzcCc8cg== "@types/babel__core@^7.20.5": version "7.20.5" - resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== dependencies: "@babel/parser" "^7.20.7" @@ -3209,30 +3052,30 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.8" - resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz" - integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== + version "7.27.0" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.27.0.tgz#b5819294c51179957afaec341442f9341e4108a9" + integrity sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": version "7.4.4" - resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" "@types/babel__traverse@*": - version "7.20.5" - resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz" - integrity sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ== + version "7.28.0" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.28.0.tgz#07d713d6cce0d265c9849db0cbe62d3f61f36f74" + integrity sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q== dependencies: - "@babel/types" "^7.20.7" + "@babel/types" "^7.28.2" "@types/cacheable-request@^6.0.1": version "6.0.3" - resolved "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183" integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw== dependencies: "@types/http-cache-semantics" "*" @@ -3241,66 +3084,53 @@ "@types/responselike" "^1.0.0" "@types/color-convert@*": - version "2.0.3" - resolved "https://registry.npmjs.org/@types/color-convert/-/color-convert-2.0.3.tgz" - integrity sha512-2Q6wzrNiuEvYxVQqhh7sXM2mhIhvZR/Paq4FdsQkOMgWsCIkKvSGj8Le1/XalulrmgOzPMqNa0ix+ePY4hTrfg== + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/color-convert/-/color-convert-2.0.4.tgz#843398ae71e951dc5415d202dfd5e43108823eeb" + integrity sha512-Ub1MmDdyZ7mX//g25uBAoH/mWGd9swVbt8BseymnaE18SU4po/PjmCrHxqIIRjBo3hV/vh1KGr0eMxUhp+t+dQ== dependencies: - "@types/color-name" "*" + "@types/color-name" "^1.1.0" -"@types/color-name@*": - version "1.1.4" - resolved "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.4.tgz" - integrity sha512-hulKeREDdLFesGQjl96+4aoJSHY5b2GRjagzzcqCfIrWhe5vkCqIvrLbqzBaI1q94Vg8DNJZZqTR5ocdWmWclg== +"@types/color-name@^1.1.0": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.5.tgz#3a3510c4e3661f7707c5ae9c67d726986e6e147d" + integrity sha512-j2K5UJqGTxeesj6oQuGpMgifpT5k9HprgQd8D1Y0lOFqKHl3PJu5GMeS4Y5EgjS55AE6OQxf8mPED9uaGbf4Cg== "@types/color@^3.0.6": version "3.0.6" - resolved "https://registry.npmjs.org/@types/color/-/color-3.0.6.tgz" + resolved "https://registry.yarnpkg.com/@types/color/-/color-3.0.6.tgz#29c27a99d4de2975e1676712679a0bd7f646a3fb" integrity sha512-NMiNcZFRUAiUUCCf7zkAelY8eV3aKqfbzyFQlXpPIEeoNDbsEHGpb854V3gzTsGKYj830I5zPuOwU/TP5/cW6A== dependencies: "@types/color-convert" "*" "@types/conventional-commits-parser@^5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@types/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz" - integrity sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ== + version "5.0.1" + resolved "https://registry.yarnpkg.com/@types/conventional-commits-parser/-/conventional-commits-parser-5.0.1.tgz#8cb81cf170853496cbc501a3b32dcf5e46ffb61a" + integrity sha512-7uz5EHdzz2TqoMfV7ee61Egf5y6NkcO4FB/1iCCQnbeiI1F3xzv3vK5dBCXUCLQgGYS+mUeigK1iKQzvED+QnQ== dependencies: "@types/node" "*" "@types/debug@^4.1.6": version "4.1.12" - resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== dependencies: "@types/ms" "*" -"@types/estree@1.0.8": +"@types/estree@1.0.8", "@types/estree@^1.0.0": version "1.0.8" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== -"@types/estree@^1.0.0": - version "1.0.5" - resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz" - integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== - "@types/fs-extra@9.0.13", "@types/fs-extra@^9.0.11": version "9.0.13" - resolved "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" integrity sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA== dependencies: "@types/node" "*" -"@types/glob@^7.1.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - "@types/http-cache-semantics@*": version "4.0.4" - resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4" integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== "@types/jsdom@^21.1.7": @@ -3313,16 +3143,16 @@ parse5 "^7.0.0" "@types/jsonwebtoken@^9.0.8": - version "9.0.8" - resolved "https://registry.yarnpkg.com/@types/jsonwebtoken/-/jsonwebtoken-9.0.8.tgz#313490052801edfb031bb32b6bbd77cc9f230852" - integrity sha512-7fx54m60nLFUVYlxAB1xpe9CBWX2vSrk50Y6ogRJ1v5xxtba7qXTg5BgYDN5dq+yuQQ9HaVlHJyAAt1/mxryFg== + version "9.0.10" + resolved "https://registry.yarnpkg.com/@types/jsonwebtoken/-/jsonwebtoken-9.0.10.tgz#a7932a47177dcd4283b6146f3bd5c26d82647f09" + integrity sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA== dependencies: "@types/ms" "*" "@types/node" "*" "@types/keyv@^3.1.4": version "3.1.4" - resolved "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== dependencies: "@types/node" "*" @@ -3334,19 +3164,19 @@ "@types/lodash-es@^4.17.12": version "4.17.12" - resolved "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz" + resolved "https://registry.yarnpkg.com/@types/lodash-es/-/lodash-es-4.17.12.tgz#65f6d1e5f80539aa7cfbfc962de5def0cf4f341b" integrity sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ== dependencies: "@types/lodash" "*" "@types/lodash@*": - version "4.17.3" - resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.3.tgz" - integrity sha512-zmNrEJaBvNskZXQWaUQq6bktF4IDGVfDS78M+YEk5aCn9M/b94/mB/6WCyfH2/MjwBdc6QuOor95CIlKWYRL3A== + version "4.17.20" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.20.tgz#1ca77361d7363432d29f5e55950d9ec1e1c6ea93" + integrity sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA== "@types/magnet-uri@*": version "5.1.5" - resolved "https://registry.npmjs.org/@types/magnet-uri/-/magnet-uri-5.1.5.tgz" + resolved "https://registry.yarnpkg.com/@types/magnet-uri/-/magnet-uri-5.1.5.tgz#8034da138edb41f007729ff18c76e0454df42438" integrity sha512-SbBjlb1KGe38VfjRR+mwqztJd/4skhdKkRbIzPDhTy7IAeEAPZWIVSEkZw00Qr4ZZOGR3/ATJ20WWPBfrKHGdA== dependencies: "@types/node" "*" @@ -3364,24 +3194,19 @@ resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-2.0.0.tgz#d43878b5b20222682163ae6f897b20447233bdfd" integrity sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg== -"@types/minimatch@*": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" - integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== - "@types/ms@*": - version "0.7.34" - resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz" - integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== + version "2.1.0" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-2.1.0.tgz#052aa67a48eccc4309d7f0191b7e41434b90bb78" + integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA== -"@types/node@*", "@types/node@^20.12.7": - version "20.12.12" - resolved "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz" - integrity sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw== +"@types/node@*": + version "24.7.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-24.7.2.tgz#5adf66b6e2ac5cab1d10a2ad3682e359cb652f4a" + integrity sha512-/NbVmcGTP+lj5oa4yiYxxeBjRivKQ5Ns1eSZeB99ExsEQ6rX5XYU1Zy/gGxY/ilqtD4Etx9mKyrPxZRetiahhA== dependencies: - undici-types "~5.26.4" + undici-types "~7.14.0" -"@types/node@^20.9.0": +"@types/node@^20.12.7", "@types/node@^20.9.0": version "20.19.21" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.19.21.tgz#6e5378e04993c40395473b13baf94a09875157b8" integrity sha512-CsGG2P3I5y48RPMfprQGfy4JPRZ6csfC3ltBZSRItG3ngggmNY/qs2uZKp4p9VbrpqNNSMzUZNFZKzgOGnd/VA== @@ -3390,14 +3215,14 @@ "@types/parse-torrent-file@*": version "4.0.6" - resolved "https://registry.npmjs.org/@types/parse-torrent-file/-/parse-torrent-file-4.0.6.tgz" + resolved "https://registry.yarnpkg.com/@types/parse-torrent-file/-/parse-torrent-file-4.0.6.tgz#11801dfd5b0a017302a164b72c8869f2bcba15b1" integrity sha512-SxqVth0Iv0WuEkqWS5MaY4S4Tlyi+QHkElQREvsUPw2xHcPgKyQ2dkJRRv5vAxmLzH+tnMdOj1Nws/wsenbzUw== dependencies: "@types/node" "*" "@types/parse-torrent@^5.8.7": version "5.8.7" - resolved "https://registry.npmjs.org/@types/parse-torrent/-/parse-torrent-5.8.7.tgz" + resolved "https://registry.yarnpkg.com/@types/parse-torrent/-/parse-torrent-5.8.7.tgz#68bca7701201a67568fdc7f194bdf3f2a49c2c11" integrity sha512-vZtYe450hO+KL7B5fejM8CHWg1LPZKeVXlolphPsWf6n4H0ZUlI6ICbqHoaFmH7JQmU2yRbGgyvqqizdFuGPFQ== dependencies: "@types/magnet-uri" "*" @@ -3413,28 +3238,26 @@ xmlbuilder ">=11.0.1" "@types/prop-types@*": - version "15.7.12" - resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz" - integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q== + version "15.7.15" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.15.tgz#e6e5a86d602beaca71ce5163fadf5f95d70931c7" + integrity sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw== "@types/react-dom@^18.2.18": - version "18.3.0" - resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz" - integrity sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg== - dependencies: - "@types/react" "*" + version "18.3.7" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.7.tgz#b89ddf2cd83b4feafcc4e2ea41afdfb95a0d194f" + integrity sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ== -"@types/react@*", "@types/react@^18.2.48": - version "18.3.2" - resolved "https://registry.npmjs.org/@types/react/-/react-18.3.2.tgz" - integrity sha512-Btgg89dAnqD4vV7R3hlwOxgqobUQKgx3MmrQRi0yYbs/P0ym8XozIAlkqVilPqHQwXs4e9Tf63rrCgl58BcO4w== +"@types/react@^18.2.48": + version "18.3.26" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.26.tgz#4c5970878d30db3d2a0bca1e4eb5f258e391bbeb" + integrity sha512-RFA/bURkcKzx/X9oumPG9Vp3D3JUgus/d0b67KB0t5S/raciymilkOa66olh78MUI92QLbEJevO7rvqU/kjwKA== dependencies: "@types/prop-types" "*" csstype "^3.0.2" "@types/responselike@^1.0.0": version "1.0.3" - resolved "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.3.tgz#cc29706f0a397cfe6df89debfe4bf5cea159db50" integrity sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw== dependencies: "@types/node" "*" @@ -3448,14 +3271,9 @@ "@types/tough-cookie@*": version "4.0.5" - resolved "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz" + resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304" integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== -"@types/use-sync-external-store@^0.0.3": - version "0.0.3" - resolved "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz" - integrity sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA== - "@types/use-sync-external-store@^0.0.6": version "0.0.6" resolved "https://registry.yarnpkg.com/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz#60be8d21baab8c305132eb9cb912ed497852aadc" @@ -3463,13 +3281,13 @@ "@types/user-agents@^1.0.4": version "1.0.4" - resolved "https://registry.npmjs.org/@types/user-agents/-/user-agents-1.0.4.tgz" + resolved "https://registry.yarnpkg.com/@types/user-agents/-/user-agents-1.0.4.tgz#49bf6760d9ca3858d91e6258835bf2c329b87cf0" integrity sha512-AjeFc4oX5WPPflgKfRWWJfkEk7Wu82fnj1rROPsiqFt6yElpdGFg8Srtm/4PU4rA9UiDUZlruGPgcwTMQlwq4w== "@types/verror@^1.10.3": - version "1.10.10" - resolved "https://registry.yarnpkg.com/@types/verror/-/verror-1.10.10.tgz#d5a4b56abac169bfbc8b23d291363a682e6fa087" - integrity sha512-l4MM0Jppn18hb9xmM6wwD1uTdShpf9Pn80aXTStnK1C94gtPvJcV2FrDmbOQUAQfJ1cKZHktkQUDwEqaAKXMMg== + version "1.10.11" + resolved "https://registry.yarnpkg.com/@types/verror/-/verror-1.10.11.tgz#d3d6b418978c8aa202d41e5bb3483227b6ecc1bb" + integrity sha512-RlDm9K7+o5stv0Co8i8ZRGxDbrTxhJtgjqjFyVh/tXQyl/rYtTKlnTvZ88oSTeYREWurwx20Js4kTuKCsFkUtg== "@types/winreg@^1.2.36": version "1.2.36" @@ -3485,7 +3303,7 @@ "@types/yauzl@^2.9.1": version "2.10.3" - resolved "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.3.tgz#e9b2808b4f109504a03cda958259876f61017999" integrity sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q== dependencies: "@types/node" "*" @@ -3571,30 +3389,38 @@ "@typescript-eslint/types" "7.18.0" eslint-visitor-keys "^3.4.3" +"@typescript/vfs@^1.5.2": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@typescript/vfs/-/vfs-1.6.1.tgz#fe7087d5a43715754f7ea9bf6e0b905176c9eebd" + integrity sha512-JwoxboBh7Oz1v38tPbkrZ62ZXNHAk9bJ7c9x0eI5zBfBnBYGhURdbnh7Z4smN/MV48Y5OCcZb58n972UtbazsA== + dependencies: + debug "^4.1.1" + "@ungap/structured-clone@^1.2.0": - version "1.2.0" - resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" - integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + version "1.3.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" + integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== "@vitejs/plugin-react@^4.2.1": - version "4.2.1" - resolved "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz" - integrity sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ== + version "4.7.0" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz#647af4e7bb75ad3add578e762ad984b90f4a24b9" + integrity sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA== dependencies: - "@babel/core" "^7.23.5" - "@babel/plugin-transform-react-jsx-self" "^7.23.3" - "@babel/plugin-transform-react-jsx-source" "^7.23.3" + "@babel/core" "^7.28.0" + "@babel/plugin-transform-react-jsx-self" "^7.27.1" + "@babel/plugin-transform-react-jsx-source" "^7.27.1" + "@rolldown/pluginutils" "1.0.0-beta.27" "@types/babel__core" "^7.20.5" - react-refresh "^0.14.0" + react-refresh "^0.17.0" "@xmldom/xmldom@^0.8.8": - version "0.8.10" - resolved "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz" - integrity sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw== + version "0.8.11" + resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.11.tgz#b79de2d67389734c57c52595f7a7305e30c2d608" + integrity sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw== JSONStream@^1.3.5: version "1.3.5" - resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== dependencies: jsonparse "^1.2.0" @@ -3607,7 +3433,7 @@ abbrev@^1.0.0: abort-controller@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== dependencies: event-target-shim "^5.0.0" @@ -3626,49 +3452,37 @@ abstract-level@^2.0.0: acorn-jsx@^5.3.2: version "5.3.2" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-walk@^8.1.1: - version "8.3.3" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.3.tgz#9caeac29eefaa0c41e3d4c65137de4d6f34df43e" - integrity sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw== + version "8.3.4" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7" + integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g== dependencies: acorn "^8.11.0" -acorn@^8.11.0, acorn@^8.4.1: - version "8.12.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" - integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== - -acorn@^8.9.0: - version "8.11.3" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz" - integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== +acorn@^8.11.0, acorn@^8.4.1, acorn@^8.9.0: + version "8.15.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.15.0.tgz#a360898bc415edaac46c8241f6383975b930b816" + integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== agent-base@6, agent-base@^6.0.2: version "6.0.2" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== dependencies: debug "4" -agent-base@^7.0.2, agent-base@^7.1.0: - version "7.1.1" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz" - integrity sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA== - dependencies: - debug "^4.3.4" - -agent-base@^7.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.3.tgz#29435eb821bc4194633a5b89e5bc4703bafc25a1" - integrity sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw== +agent-base@^7.1.0, agent-base@^7.1.2, agent-base@^7.1.3: + version "7.1.4" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.4.tgz#e3cd76d4c548ee895d3c3fd8dc1f6c5b9032e7a8" + integrity sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ== agentkeepalive@^4.2.1: - version "4.5.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923" - integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== + version "4.6.0" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz#35f73e94b3f40bf65f105219c623ad19c136ea6a" + integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ== dependencies: humanize-ms "^1.2.1" @@ -3682,12 +3496,12 @@ aggregate-error@^3.0.0: ajv-keywords@^3.4.1: version "3.5.2" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== ajv@^6.10.0, ajv@^6.12.0, ajv@^6.12.4: version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -3696,43 +3510,36 @@ ajv@^6.10.0, ajv@^6.12.0, ajv@^6.12.4: uri-js "^4.2.2" ajv@^8.11.0: - version "8.13.0" - resolved "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz" - integrity sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA== + version "8.17.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" + integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== dependencies: fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" json-schema-traverse "^1.0.0" require-from-string "^2.0.2" - uri-js "^4.4.1" ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz" - integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" + version "6.2.2" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1" + integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" ansi-styles@^6.1.0: - version "6.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + version "6.2.3" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041" + integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== app-builder-bin@5.0.0-alpha.12: version "5.0.0-alpha.12" @@ -3780,7 +3587,7 @@ app-builder-lib@26.0.12: applescript@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/applescript/-/applescript-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/applescript/-/applescript-1.0.0.tgz#bb87af568cad034a4e48c4bdaf6067a3a2701317" integrity sha512-yvtNHdWvtbYEiIazXAdp/NY+BBb65/DAseqlNiJQjOx9DynuzOYDbVLBJvuc0ve0VL9x6B3OHF6eH52y9hCBtQ== arg@^4.1.0: @@ -3805,15 +3612,7 @@ aria-query@^5.3.2: resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.2.tgz#93f81a43480e33a338f19163a3d10a50c01dcd59" integrity sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw== -array-buffer-byte-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" - integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== - dependencies: - call-bind "^1.0.5" - is-array-buffer "^3.0.4" - -array-buffer-byte-length@^1.0.2: +array-buffer-byte-length@^1.0.1, array-buffer-byte-length@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz#384d12a37295aec3769ab022ad323a18a51ccf8b" integrity sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw== @@ -3827,16 +3626,18 @@ array-ify@^1.0.0: integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== array-includes@^3.1.6, array-includes@^3.1.8: - version "3.1.8" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" - integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== + version "3.1.9" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.9.tgz#1f0ccaa08e90cdbc3eb433210f903ad0f17c3f3a" + integrity sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.4" define-properties "^1.2.1" - es-abstract "^1.23.2" - es-object-atoms "^1.0.0" - get-intrinsic "^1.2.4" - is-string "^1.0.7" + es-abstract "^1.24.0" + es-object-atoms "^1.1.1" + get-intrinsic "^1.3.0" + is-string "^1.1.1" + math-intrinsics "^1.1.0" array-union@^2.1.0: version "2.1.0" @@ -3856,26 +3657,16 @@ array.prototype.findlast@^1.2.5: es-shim-unscopables "^1.0.2" array.prototype.flat@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" - integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== + version "1.3.3" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz#534aaf9e6e8dd79fb6b9a9917f839ef1ec63afe5" + integrity sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-shim-unscopables "^1.0.2" -array.prototype.flatmap@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" - integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - -array.prototype.flatmap@^1.3.3: +array.prototype.flatmap@^1.3.2, array.prototype.flatmap@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz#712cc792ae70370ae40586264629e33aab5dd38b" integrity sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg== @@ -3896,20 +3687,6 @@ array.prototype.tosorted@^1.1.4: es-errors "^1.3.0" es-shim-unscopables "^1.0.2" -arraybuffer.prototype.slice@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" - integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== - dependencies: - array-buffer-byte-length "^1.0.1" - call-bind "^1.0.5" - define-properties "^1.2.1" - es-abstract "^1.22.3" - es-errors "^1.2.1" - get-intrinsic "^1.2.3" - is-array-buffer "^3.0.4" - is-shared-array-buffer "^1.0.2" - arraybuffer.prototype.slice@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz#9d760d84dbdd06d0cbf92c8849615a1a7ab3183c" @@ -3943,7 +3720,12 @@ async-exit-hook@^2.0.1: resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw== -async@^3.2.3: +async-function@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-function/-/async-function-1.0.0.tgz#509c9fca60eaf85034c6829838188e4e4c8ffb2b" + integrity sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA== + +async@^3.2.6: version "3.2.6" resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce" integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== @@ -3977,9 +3759,9 @@ available-typed-arrays@^1.0.7: possible-typed-array-names "^1.0.0" axe-core@^4.10.0: - version "4.10.0" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.10.0.tgz#d9e56ab0147278272739a000880196cdfe113b59" - integrity sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g== + version "4.11.0" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.11.0.tgz#16f74d6482e343ff263d4f4503829e9ee91a86b6" + integrity sha512-ilYanEU8vxxBexpJd8cWM4ElSQq4QctCLKih0TSfjIfCQTeyH/6zVrmIJfLPrKTKJRbiG+cfnZbQIjAlJmF1jQ== axios-cookiejar-support@^5.0.5: version "5.0.5" @@ -4017,6 +3799,11 @@ base64-js@^1.3.1, base64-js@^1.5.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== +baseline-browser-mapping@^2.8.9: + version "2.8.16" + resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.8.16.tgz#e17789673e7f4b7654f81ab2ef25e96ab6a895f9" + integrity sha512-OMu3BGQ4E7P1ErFsIPpbJh0qvDudM/UuJeHgkAvfWe+0HFJCXh+t/l8L6fVLR55RI/UbKrVLnAXZSVwd9ysWYw== + bencode@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/bencode/-/bencode-4.0.0.tgz#36ca0bc366290dad002215fc52fc74edf4eb0625" @@ -4044,22 +3831,22 @@ boolean@^3.0.1: integrity sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw== bowser@^2.11.0: - version "2.11.0" - resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f" - integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== + version "2.12.1" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.12.1.tgz#f9ad78d7aebc472feb63dd9635e3ce2337e0e2c1" + integrity sha512-z4rE2Gxh7tvshQ4hluIT7XcFrgLIQaw9X3A+kTTRdovCz5PMukm/0QC/BKSYPj3omF5Qfypn9O/c5kgpmvYUCw== brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + version "1.1.12" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843" + integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + version "2.0.2" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7" + integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== dependencies: balanced-match "^1.0.0" @@ -4070,25 +3857,16 @@ braces@^3.0.3: dependencies: fill-range "^7.1.1" -browserslist@^4.22.2: - version "4.24.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.0.tgz#a1325fe4bc80b64fda169629fc01b3d6cecd38d4" - integrity sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A== - dependencies: - caniuse-lite "^1.0.30001663" - electron-to-chromium "^1.5.28" - node-releases "^2.0.18" - update-browserslist-db "^1.1.0" - browserslist@^4.24.0: - version "4.24.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.3.tgz#5fc2725ca8fb3c1432e13dac278c7cc103e026d2" - integrity sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA== + version "4.26.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.26.3.tgz#40fbfe2d1cd420281ce5b1caa8840049c79afb56" + integrity sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w== dependencies: - caniuse-lite "^1.0.30001688" - electron-to-chromium "^1.5.73" - node-releases "^2.0.19" - update-browserslist-db "^1.1.1" + baseline-browser-mapping "^2.8.9" + caniuse-lite "^1.0.30001746" + electron-to-chromium "^1.5.227" + node-releases "^2.0.21" + update-browserslist-db "^1.1.3" buffer-builder@^0.2.0: version "0.2.0" @@ -4100,7 +3878,7 @@ buffer-crc32@~0.2.3: resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== -buffer-equal-constant-time@1.0.1: +buffer-equal-constant-time@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== @@ -4204,26 +3982,15 @@ cacheable-request@^7.0.2: normalize-url "^6.0.1" responselike "^2.0.0" -call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz#32e5892e6361b29b0b545ba6f7763378daca2840" - integrity sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g== +call-bind-apply-helpers@^1.0.0, 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" + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== dependencies: es-errors "^1.3.0" function-bind "^1.1.2" -call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" - integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== - dependencies: - es-define-property "^1.0.0" - es-errors "^1.3.0" - function-bind "^1.1.2" - get-intrinsic "^1.2.4" - set-function-length "^1.2.1" - -call-bind@^1.0.8: +call-bind@^1.0.7, call-bind@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c" integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== @@ -4233,21 +4000,13 @@ call-bind@^1.0.8: get-intrinsic "^1.2.4" set-function-length "^1.2.2" -call-bound@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.2.tgz#9dbd4daf9f5f753bec3e4c8fbb8a2ecc4de6c39b" - integrity sha512-0lk0PHFe/uz0vl527fG9CgdE9WdafjDbCXvBbs+LUv000TVt2Jjhqbs4Jwm8gz070w8xXyEAxrPOMullsxXeGg== +call-bound@^1.0.2, call-bound@^1.0.3, call-bound@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a" + integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== dependencies: - call-bind "^1.0.8" - get-intrinsic "^1.2.5" - -call-bound@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.3.tgz#41cfd032b593e39176a71533ab4f384aa04fd681" - integrity sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA== - dependencies: - call-bind-apply-helpers "^1.0.1" - get-intrinsic "^1.2.6" + call-bind-apply-helpers "^1.0.2" + get-intrinsic "^1.3.0" callsites@^3.0.0: version "3.1.0" @@ -4259,26 +4018,12 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001663: - version "1.0.30001664" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001664.tgz#d588d75c9682d3301956b05a3749652a80677df4" - integrity sha512-AmE7k4dXiNKQipgn7a2xg558IRqPN3jMQY/rOsbxDhrd0tyChwbITBfiwtnqz8bi2M5mIWbxAYBvk7W7QBUS2g== +caniuse-lite@^1.0.30001746: + version "1.0.30001750" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001750.tgz#c229f82930033abd1502c6f73035356cf528bfbc" + integrity sha512-cuom0g5sdX6rw00qOoLNSFCJ9/mYIsuSOA+yzpDw8eopiFqcVwQvZHqov0vmEighRxX++cfC0Vg1G+1Iy/mSpQ== -caniuse-lite@^1.0.30001688: - version "1.0.30001690" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz#f2d15e3aaf8e18f76b2b8c1481abde063b8104c8" - integrity sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w== - -chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -4287,15 +4032,22 @@ chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: supports-color "^7.1.0" chalk@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" - integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + version "5.6.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" + integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== check-disk-space@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/check-disk-space/-/check-disk-space-3.4.0.tgz#eb8e69eee7a378fd12e35281b8123a8b4c4a8ff7" integrity sha512-drVkSqfwA+TvuEhFipiR1OC9boEGZL5RrWvVsOthdcvQNXyCCuKkEiTOTXZ7qxSf/GLwq4GvzfrQD/Wz325hgw== +chokidar@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" + integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== + dependencies: + readdirp "^4.0.1" + chownr@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" @@ -4377,13 +4129,6 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== -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== - dependencies: - color-name "1.1.3" - color-convert@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" @@ -4391,11 +4136,6 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" @@ -4499,12 +4239,12 @@ core-util-is@1.0.2: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== -cosmiconfig-typescript-loader@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-5.0.0.tgz#0d3becfe022a871f7275ceb2397d692e06045dc8" - integrity sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA== +cosmiconfig-typescript-loader@^6.1.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-6.2.0.tgz#26399fa92e9569052062846afd038c94628f0f69" + integrity sha512-GEN39v7TgdxgIoNcdkRE3uiAzQt3UXLyHbRHD6YoL048XAeOomyxaP+Hh/+2C6C2wYjxJ2onhJcsQp+L4YEkVQ== dependencies: - jiti "^1.19.1" + jiti "^2.6.1" cosmiconfig@^8.1.3: version "8.3.6" @@ -4563,16 +4303,7 @@ cross-fetch-ponyfill@^1.0.3: abort-controller "^3.0.0" node-fetch "^3.3.0" -cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -cross-spawn@^7.0.6: +cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.6: version "7.0.6" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== @@ -4582,11 +4313,12 @@ cross-spawn@^7.0.6: which "^2.0.1" cssstyle@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-4.1.0.tgz#161faee382af1bafadb6d3867a92a19bcb4aea70" - integrity sha512-h66W1URKpBS5YMI/V8PyXvTMFT8SupJ1IzoIV8IeBC/ji8WVmrO8dGlTi+2dh6whmdk6BiKJLD/ZBkhWbcg6nA== + version "4.6.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-4.6.0.tgz#ea18007024e3167f4f105315f3ec2d982bf48ed9" + integrity sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg== dependencies: - rrweb-cssom "^0.7.1" + "@asamuzakjp/css-color" "^3.2.0" + rrweb-cssom "^0.8.0" csstype@^3.0.2: version "3.1.3" @@ -4616,15 +4348,6 @@ data-urls@^5.0.0: whatwg-mimetype "^4.0.0" whatwg-url "^14.0.0" -data-view-buffer@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" - integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== - dependencies: - call-bind "^1.0.6" - es-errors "^1.3.0" - is-data-view "^1.0.1" - data-view-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.2.tgz#211a03ba95ecaf7798a8c7198d79536211f88570" @@ -4634,15 +4357,6 @@ data-view-buffer@^1.0.2: es-errors "^1.3.0" is-data-view "^1.0.2" -data-view-byte-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" - integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== - dependencies: - call-bind "^1.0.7" - es-errors "^1.3.0" - is-data-view "^1.0.1" - data-view-byte-length@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz#9e80f7ca52453ce3e93d25a35318767ea7704735" @@ -4652,15 +4366,6 @@ data-view-byte-length@^1.0.2: es-errors "^1.3.0" is-data-view "^1.0.2" -data-view-byte-offset@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" - integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== - dependencies: - call-bind "^1.0.6" - es-errors "^1.3.0" - is-data-view "^1.0.1" - data-view-byte-offset@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz#068307f9b71ab76dbbe10291389e020856606191" @@ -4675,24 +4380,17 @@ date-fns@^3.6.0: resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-3.6.0.tgz#f20ca4fe94f8b754951b24240676e8618c0206bf" integrity sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww== -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: - version "4.3.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" - integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== - dependencies: - ms "^2.1.3" - -debug@^4.4.0: - version "4.4.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.1.tgz#e5a8bc6cbc4c6cd3e64308b0693a3d4fa550189b" - integrity sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ== +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@^4.4.0: + version "4.4.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" + integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== dependencies: ms "^2.1.3" decimal.js@^10.4.3: - version "10.4.3" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" - integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== + version "10.6.0" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.6.0.tgz#e649a43e3ab953a72192ff5983865e509f37ed9a" + integrity sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg== decompress-response@^6.0.0: version "6.0.0" @@ -4727,7 +4425,7 @@ define-data-property@^1.0.1, define-data-property@^1.1.4: es-errors "^1.3.0" gopd "^1.0.1" -define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: +define-properties@^1.1.3, define-properties@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== @@ -4741,10 +4439,15 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== +detect-libc@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== + detect-libc@^2.0.1: - version "2.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700" - integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== + version "2.1.2" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.1.2.tgz#689c5dcdc1900ef5583a4cb9f6d7b473742074ad" + integrity sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ== detect-node-es@^1.1.0: version "1.1.0" @@ -4756,11 +4459,6 @@ detect-node@^2.0.4: resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== -dexie@^4.0.10: - version "4.0.10" - resolved "https://registry.yarnpkg.com/dexie/-/dexie-4.0.10.tgz#979e3ee75993b44eea3852f97ceb198019d5b287" - integrity sha512-eM2RzuR3i+M046r2Q0Optl3pS31qTWf8aFuA7H9wnsHTwl8EPvroVLwvQene/6paAs39Tbk6fWZcn2aZaHkc/w== - diff@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" @@ -4848,27 +4546,18 @@ dot-prop@^5.1.0: is-obj "^2.0.0" dotenv-expand@^11.0.6: - version "11.0.6" - resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-11.0.6.tgz#f2c840fd924d7c77a94eff98f153331d876882d3" - integrity sha512-8NHi73otpWsZGBSZwwknTXS5pqMOrk9+Ssrna8xCaxkzEpU9OTf9R5ArQGVw03//Zmk9MOwLPng9WwndvpAJ5g== + version "11.0.7" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-11.0.7.tgz#af695aea007d6fdc84c86cd8d0ad7beb40a0bd08" + integrity sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA== dependencies: - dotenv "^16.4.4" + dotenv "^16.4.5" -dotenv@^16.4.4, dotenv@^16.4.5: - version "16.4.5" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" - integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== +dotenv@^16.4.5: + version "16.6.1" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.6.1.tgz#773f0e69527a8315c7285d5ee73c4459d20a8020" + integrity sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow== -dunder-proto@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.0.tgz#c2fce098b3c8f8899554905f4377b6d85dabaa80" - integrity sha512-9+Sj30DIu+4KvHqMfLUGLFYL2PkURSYMVXJyXe92nFRvlYq5hBjLEhblKB+vkd/WVlUYMWigiY07T91Fkk0+4A== - dependencies: - call-bind-apply-helpers "^1.0.0" - es-errors "^1.3.0" - gopd "^1.2.0" - -dunder-proto@^1.0.1: +dunder-proto@^1.0.0, dunder-proto@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== @@ -4931,15 +4620,10 @@ electron-publish@26.0.11: lazy-val "^1.0.5" mime "^2.5.2" -electron-to-chromium@^1.5.28: - version "1.5.30" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.30.tgz#5b264b489cfe0c3dd71097c164d795444834e7c7" - integrity sha512-sXI35EBN4lYxzc/pIGorlymYNzDBOqkSlVRe6MkgBsW/hW1tpC/HDJ2fjG7XnjakzfLEuvdmux0Mjs6jHq4UOA== - -electron-to-chromium@^1.5.73: - version "1.5.76" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.76.tgz#db20295c5061b68f07c8ea4dfcbd701485d94a3d" - integrity sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ== +electron-to-chromium@^1.5.227: + version "1.5.235" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.235.tgz#778dac70537ed9e9e0abf25a49cc94b5a23aaa0e" + integrity sha512-i/7ntLFwOdoHY7sgjlTIDo4Sl8EdoTjWIaKinYOVfC6bOp71bmwenyZthWHcasxgHDNWbWxvG9M3Ia116zIaYQ== electron-updater@^6.6.2: version "6.6.2" @@ -5017,9 +4701,9 @@ encoding@^0.1.13: iconv-lite "^0.6.2" end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + version "1.4.5" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.5.tgz#7344d711dea40e0b74abc2ed49778743ccedb08c" + integrity sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg== dependencies: once "^1.4.0" @@ -5028,6 +4712,11 @@ entities@^4.4.0: resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== +entities@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-6.0.1.tgz#c28c34a43379ca7f61d074130b2f5f7020a30694" + integrity sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g== + env-paths@^2.2.0, env-paths@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" @@ -5039,137 +4728,33 @@ err-code@^2.0.2: integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + version "1.3.4" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.4.tgz#b3a8d8bb6f92eecc1629e3e27d3c8607a8a32414" + integrity sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ== dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.5, es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2, es-abstract@^1.23.3: - version "1.23.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" - integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== - dependencies: - array-buffer-byte-length "^1.0.1" - arraybuffer.prototype.slice "^1.0.3" - available-typed-arrays "^1.0.7" - call-bind "^1.0.7" - data-view-buffer "^1.0.1" - data-view-byte-length "^1.0.1" - data-view-byte-offset "^1.0.0" - es-define-property "^1.0.0" - es-errors "^1.3.0" - es-object-atoms "^1.0.0" - es-set-tostringtag "^2.0.3" - es-to-primitive "^1.2.1" - function.prototype.name "^1.1.6" - get-intrinsic "^1.2.4" - get-symbol-description "^1.0.2" - globalthis "^1.0.3" - gopd "^1.0.1" - has-property-descriptors "^1.0.2" - has-proto "^1.0.3" - has-symbols "^1.0.3" - hasown "^2.0.2" - internal-slot "^1.0.7" - is-array-buffer "^3.0.4" - is-callable "^1.2.7" - is-data-view "^1.0.1" - is-negative-zero "^2.0.3" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.3" - is-string "^1.0.7" - is-typed-array "^1.1.13" - is-weakref "^1.0.2" - object-inspect "^1.13.1" - object-keys "^1.1.1" - object.assign "^4.1.5" - regexp.prototype.flags "^1.5.2" - safe-array-concat "^1.1.2" - safe-regex-test "^1.0.3" - string.prototype.trim "^1.2.9" - string.prototype.trimend "^1.0.8" - string.prototype.trimstart "^1.0.8" - typed-array-buffer "^1.0.2" - typed-array-byte-length "^1.0.1" - typed-array-byte-offset "^1.0.2" - typed-array-length "^1.0.6" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.15" - -es-abstract@^1.23.5: - version "1.23.5" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.5.tgz#f4599a4946d57ed467515ed10e4f157289cd52fb" - integrity sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ== - dependencies: - array-buffer-byte-length "^1.0.1" - arraybuffer.prototype.slice "^1.0.3" - available-typed-arrays "^1.0.7" - call-bind "^1.0.7" - data-view-buffer "^1.0.1" - data-view-byte-length "^1.0.1" - data-view-byte-offset "^1.0.0" - es-define-property "^1.0.0" - es-errors "^1.3.0" - es-object-atoms "^1.0.0" - es-set-tostringtag "^2.0.3" - es-to-primitive "^1.2.1" - function.prototype.name "^1.1.6" - get-intrinsic "^1.2.4" - get-symbol-description "^1.0.2" - globalthis "^1.0.4" - gopd "^1.0.1" - has-property-descriptors "^1.0.2" - has-proto "^1.0.3" - has-symbols "^1.0.3" - hasown "^2.0.2" - internal-slot "^1.0.7" - is-array-buffer "^3.0.4" - is-callable "^1.2.7" - is-data-view "^1.0.1" - is-negative-zero "^2.0.3" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.3" - is-string "^1.0.7" - is-typed-array "^1.1.13" - is-weakref "^1.0.2" - object-inspect "^1.13.3" - object-keys "^1.1.1" - object.assign "^4.1.5" - regexp.prototype.flags "^1.5.3" - safe-array-concat "^1.1.2" - safe-regex-test "^1.0.3" - string.prototype.trim "^1.2.9" - string.prototype.trimend "^1.0.8" - string.prototype.trimstart "^1.0.8" - typed-array-buffer "^1.0.2" - typed-array-byte-length "^1.0.1" - typed-array-byte-offset "^1.0.2" - typed-array-length "^1.0.6" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.15" - -es-abstract@^1.23.6, es-abstract@^1.23.9: - version "1.23.9" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.9.tgz#5b45994b7de78dada5c1bebf1379646b32b9d606" - integrity sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA== +es-abstract@^1.17.5, es-abstract@^1.23.2, es-abstract@^1.23.3, es-abstract@^1.23.5, es-abstract@^1.23.6, es-abstract@^1.23.9, es-abstract@^1.24.0: + version "1.24.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.24.0.tgz#c44732d2beb0acc1ed60df840869e3106e7af328" + integrity sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg== dependencies: array-buffer-byte-length "^1.0.2" arraybuffer.prototype.slice "^1.0.4" available-typed-arrays "^1.0.7" call-bind "^1.0.8" - call-bound "^1.0.3" + call-bound "^1.0.4" data-view-buffer "^1.0.2" data-view-byte-length "^1.0.2" data-view-byte-offset "^1.0.1" es-define-property "^1.0.1" es-errors "^1.3.0" - es-object-atoms "^1.0.0" + es-object-atoms "^1.1.1" es-set-tostringtag "^2.1.0" es-to-primitive "^1.3.0" function.prototype.name "^1.1.8" - get-intrinsic "^1.2.7" - get-proto "^1.0.0" + get-intrinsic "^1.3.0" + get-proto "^1.0.1" get-symbol-description "^1.1.0" globalthis "^1.0.4" gopd "^1.2.0" @@ -5181,21 +4766,24 @@ es-abstract@^1.23.6, es-abstract@^1.23.9: is-array-buffer "^3.0.5" is-callable "^1.2.7" is-data-view "^1.0.2" + is-negative-zero "^2.0.3" is-regex "^1.2.1" + is-set "^2.0.3" is-shared-array-buffer "^1.0.4" is-string "^1.1.1" is-typed-array "^1.1.15" - is-weakref "^1.1.0" + is-weakref "^1.1.1" math-intrinsics "^1.1.0" - object-inspect "^1.13.3" + object-inspect "^1.13.4" object-keys "^1.1.1" object.assign "^4.1.7" own-keys "^1.0.1" - regexp.prototype.flags "^1.5.3" + regexp.prototype.flags "^1.5.4" safe-array-concat "^1.1.3" safe-push-apply "^1.0.0" safe-regex-test "^1.1.0" set-proto "^1.0.0" + stop-iteration-iterator "^1.1.0" string.prototype.trim "^1.2.10" string.prototype.trimend "^1.0.9" string.prototype.trimstart "^1.0.8" @@ -5204,21 +4792,14 @@ es-abstract@^1.23.6, es-abstract@^1.23.9: typed-array-byte-offset "^1.0.4" typed-array-length "^1.0.7" unbox-primitive "^1.1.0" - which-typed-array "^1.1.18" + which-typed-array "^1.1.19" -es-define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" - integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== - dependencies: - get-intrinsic "^1.2.4" - -es-define-property@^1.0.1: +es-define-property@^1.0.0, es-define-property@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== -es-errors@^1.2.1, es-errors@^1.3.0: +es-errors@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== @@ -5245,23 +4826,14 @@ es-iterator-helpers@^1.2.1: iterator.prototype "^1.1.4" safe-array-concat "^1.1.3" -es-object-atoms@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" - integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" + integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== dependencies: es-errors "^1.3.0" -es-set-tostringtag@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" - integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== - dependencies: - get-intrinsic "^1.2.4" - has-tostringtag "^1.0.2" - hasown "^2.0.1" - -es-set-tostringtag@^2.1.0: +es-set-tostringtag@^2.0.3, es-set-tostringtag@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d" integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== @@ -5271,21 +4843,12 @@ es-set-tostringtag@^2.1.0: has-tostringtag "^1.0.2" hasown "^2.0.2" -es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" - integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== +es-shim-unscopables@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz#438df35520dac5d105f3943d927549ea3b00f4b5" + integrity sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw== dependencies: - hasown "^2.0.0" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" + hasown "^2.0.2" es-to-primitive@^1.3.0: version "1.3.0" @@ -5367,20 +4930,15 @@ escalade@^3.1.1, escalade@^3.2.0: resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== eslint-config-prettier@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" - integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== + version "9.1.2" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.2.tgz#90deb4fa0259592df774b600dbd1d2249a78ce91" + integrity sha512-iI1f+D2ViGn+uvv5HuHVUamg8ll4tN+JRHGc6IJi4TP9Kl976C57fzPXgseXNs8v0iA8aSJpHsTWjDb9QJamGQ== eslint-plugin-jsx-a11y@^6.10.2: version "6.10.2" @@ -5404,12 +4962,12 @@ eslint-plugin-jsx-a11y@^6.10.2: string.prototype.includes "^2.0.1" eslint-plugin-prettier@^5.0.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz#d1c8f972d8f60e414c25465c163d16f209411f95" - integrity sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw== + version "5.5.4" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.4.tgz#9d61c4ea11de5af704d4edf108c82ccfa7f2e61c" + integrity sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg== dependencies: prettier-linter-helpers "^1.0.0" - synckit "^0.9.1" + synckit "^0.11.7" eslint-plugin-react-hooks@^4.6.0: version "4.6.2" @@ -5417,9 +4975,9 @@ eslint-plugin-react-hooks@^4.6.0: integrity sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ== eslint-plugin-react@^7.37.4: - version "7.37.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz#1b6c80b6175b6ae4b26055ae4d55d04c414c7181" - integrity sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ== + version "7.37.5" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz#2975511472bdda1b272b34d779335c9b0e877065" + integrity sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA== dependencies: array-includes "^3.1.8" array.prototype.findlast "^1.2.5" @@ -5431,7 +4989,7 @@ eslint-plugin-react@^7.37.4: hasown "^2.0.2" jsx-ast-utils "^2.4.1 || ^3.0.0" minimatch "^3.1.2" - object.entries "^1.1.8" + object.entries "^1.1.9" object.fromentries "^2.0.8" object.values "^1.2.1" prop-types "^15.8.1" @@ -5448,7 +5006,7 @@ eslint-scope@^7.2.2: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: +eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: version "3.4.3" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== @@ -5541,9 +5099,9 @@ event-target-shim@^5.0.0: integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== exponential-backoff@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" - integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== + version "3.1.3" + resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.3.tgz#51cf92c1c0493c766053f9d3abee4434c244d2f6" + integrity sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA== extract-zip@^2.0.1: version "2.0.1" @@ -5572,15 +5130,15 @@ fast-diff@^1.1.2: integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== fast-glob@^3.2.9: - version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + version "3.3.3" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" + integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" glob-parent "^5.1.2" merge2 "^1.3.0" - micromatch "^4.0.4" + micromatch "^4.0.8" fast-json-stable-stringify@^2.0.0: version "2.1.0" @@ -5592,17 +5150,22 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -fast-xml-parser@4.4.1: - version "4.4.1" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz#86dbf3f18edf8739326447bcaac31b4ae7f6514f" - integrity sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw== +fast-uri@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.0.tgz#66eecff6c764c0df9b762e62ca7edcfb53b4edfa" + integrity sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA== + +fast-xml-parser@5.2.5: + version "5.2.5" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-5.2.5.tgz#4809fdfb1310494e341098c25cb1341a01a9144a" + integrity sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ== dependencies: - strnum "^1.0.5" + strnum "^2.1.0" fastq@^1.6.0: - version "1.17.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" - integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + version "1.19.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.19.1.tgz#d50eaba803c8846a883c16492821ebcd2cda55f5" + integrity sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ== dependencies: reusify "^1.0.4" @@ -5684,40 +5247,31 @@ flat-cache@^3.0.4: rimraf "^3.0.2" flatted@^3.2.9: - version "3.3.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" - integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== + version "3.3.3" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.3.tgz#67c8fad95454a7c7abebf74bb78ee74a44023358" + integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg== follow-redirects@^1.15.6: - version "1.15.9" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1" - integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== + version "1.15.11" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340" + integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ== -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== +for-each@^0.3.3, for-each@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.5.tgz#d650688027826920feeb0af747ee7b9421a41d47" + integrity sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg== dependencies: - is-callable "^1.1.3" + is-callable "^1.2.7" foreground-child@^3.1.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77" - integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg== + version "3.3.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" + integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== dependencies: - cross-spawn "^7.0.0" + cross-spawn "^7.0.6" signal-exit "^4.0.1" -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -form-data@^4.0.4: +form-data@^4.0.0, form-data@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.4.tgz#784cdcce0669a9d68e94d11ac4eea98088edd2c4" integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow== @@ -5736,12 +5290,12 @@ formdata-polyfill@^4.0.10: fetch-blob "^3.1.2" framer-motion@^12.15.0: - version "12.15.0" - resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-12.15.0.tgz#6892283fc7967b071f537d6d160ab49e3d5e73ae" - integrity sha512-XKg/LnKExdLGugZrDILV7jZjI599785lDIJZLxMiiIFidCsy0a4R2ZEf+Izm67zyOuJgQYTHOmodi7igQsw3vg== + version "12.23.24" + resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-12.23.24.tgz#4895b67e880bd2b1089e61fbaa32ae802fc24b8c" + integrity sha512-HMi5HRoRCTou+3fb3h9oTLyJGBxHfW+HnNE25tAXOvVx/IvwMHK0cx7IR4a2ZU6sh3IX1Z+4ts32PcYBOqka8w== dependencies: - motion-dom "^12.15.0" - motion-utils "^12.12.1" + motion-dom "^12.23.23" + motion-utils "^12.23.6" tslib "^2.4.0" fs-extra@^10.0.0, fs-extra@^10.1.0: @@ -5754,9 +5308,9 @@ fs-extra@^10.0.0, fs-extra@^10.1.0: universalify "^2.0.0" fs-extra@^11.1.1: - version "11.2.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" - integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== + version "11.3.2" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.3.2.tgz#c838aeddc6f4a8c74dd15f85e11fe5511bfe02a4" + integrity sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A== dependencies: graceful-fs "^4.2.0" jsonfile "^6.0.1" @@ -5803,17 +5357,7 @@ function-bind@^1.1.2: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -function.prototype.name@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" - integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - functions-have-names "^1.2.3" - -function.prototype.name@^1.1.8: +function.prototype.name@^1.1.6, function.prototype.name@^1.1.8: version "1.1.8" resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.8.tgz#e68e1df7b259a5c949eeef95cdbde53edffabb78" integrity sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q== @@ -5830,6 +5374,11 @@ functions-have-names@^1.2.3: resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== +generator-function@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/generator-function/-/generator-function-2.0.1.tgz#0e75dd410d1243687a0ba2e951b94eedb8f737a2" + integrity sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g== + 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" @@ -5840,44 +5389,17 @@ get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" - integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== +get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.2.7, get-intrinsic@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== dependencies: - es-errors "^1.3.0" - function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - -get-intrinsic@^1.2.5, get-intrinsic@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.6.tgz#43dd3dd0e7b49b82b2dfcad10dc824bf7fc265d5" - integrity sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA== - dependencies: - call-bind-apply-helpers "^1.0.1" - dunder-proto "^1.0.0" + call-bind-apply-helpers "^1.0.2" es-define-property "^1.0.1" es-errors "^1.3.0" - es-object-atoms "^1.0.0" + es-object-atoms "^1.1.1" function-bind "^1.1.2" - gopd "^1.2.0" - has-symbols "^1.1.0" - hasown "^2.0.2" - math-intrinsics "^1.0.0" - -get-intrinsic@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.7.tgz#dcfcb33d3272e15f445d15124bc0a216189b9044" - integrity sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA== - dependencies: - call-bind-apply-helpers "^1.0.1" - es-define-property "^1.0.1" - es-errors "^1.3.0" - es-object-atoms "^1.0.0" - function-bind "^1.1.2" - get-proto "^1.0.0" + get-proto "^1.0.1" gopd "^1.2.0" has-symbols "^1.1.0" hasown "^2.0.2" @@ -5908,15 +5430,6 @@ get-stream@^5.1.0: dependencies: pump "^3.0.0" -get-symbol-description@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" - integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== - dependencies: - call-bind "^1.0.5" - es-errors "^1.3.0" - get-intrinsic "^1.2.4" - get-symbol-description@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.1.0.tgz#7bdd54e0befe8ffc9f3b4e203220d9f1e881b6ee" @@ -5949,7 +5462,7 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -glob@^10.3.12, glob@^10.3.7: +glob@^10.3.12: version "10.4.5" resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956" integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg== @@ -6003,11 +5516,6 @@ global-directory@^4.0.1: dependencies: ini "4.1.1" -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - globals@^13.19.0: version "13.24.0" resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" @@ -6015,7 +5523,7 @@ globals@^13.19.0: dependencies: type-fest "^0.20.2" -globalthis@^1.0.1, globalthis@^1.0.3, globalthis@^1.0.4: +globalthis@^1.0.1, globalthis@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== @@ -6035,14 +5543,7 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - -gopd@^1.2.0: +gopd@^1.0.1, gopd@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== @@ -6074,15 +5575,10 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== +has-bigints@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.1.0.tgz#28607e965ac967e03cd2a2c70a2636a1edad49fe" + integrity sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg== has-flag@^4.0.0: version "4.0.0" @@ -6096,11 +5592,6 @@ has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: dependencies: es-define-property "^1.0.0" -has-proto@^1.0.1, has-proto@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" - integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== - has-proto@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.2.0.tgz#5de5a6eabd95fdffd9818b43055e8065e39fe9d5" @@ -6108,24 +5599,19 @@ has-proto@^1.2.0: dependencies: dunder-proto "^1.0.0" -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-symbols@^1.1.0: +has-symbols@^1.0.3, has-symbols@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== -has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: +has-tostringtag@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: has-symbols "^1.0.3" -hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: +hasown@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== @@ -6161,9 +5647,9 @@ html-parse-stringify@^3.0.1: void-elements "3.1.0" http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" - integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== + version "4.2.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz#205f4db64f8562b76a4ff9235aa5279839a09dd5" + integrity sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ== http-cookie-agent@^6.0.8: version "6.0.8" @@ -6206,11 +5692,11 @@ https-proxy-agent@^5.0.0: debug "4" https-proxy-agent@^7.0.0, https-proxy-agent@^7.0.5: - version "7.0.5" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz#9e8b5013873299e11fab6fd548405da2d6c602b2" - integrity sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw== + version "7.0.6" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz#da8dfeac7da130b05c2ba4b59c9b6cd66611a6b9" + integrity sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw== dependencies: - agent-base "^7.0.2" + agent-base "^7.1.2" debug "4" humanize-ms@^1.2.1: @@ -6231,16 +5717,16 @@ husky@^9.1.7: integrity sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA== i18next-browser-languagedetector@^7.2.1: - version "7.2.1" - resolved "https://registry.yarnpkg.com/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.2.1.tgz#1968196d437b4c8db847410c7c33554f6c448f6f" - integrity sha512-h/pM34bcH6tbz8WgGXcmWauNpQupCGr25XPp9cZwZInR9XHSjIFDYp1SIok7zSPsTOMxdvuLyu86V+g2Kycnfw== + version "7.2.2" + resolved "https://registry.yarnpkg.com/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.2.2.tgz#748e7dc192847613911d8a79d9d9a6c2d266133e" + integrity sha512-6b7r75uIJDWCcCflmbof+sJ94k9UQO4X0YR62oUfqGI/GjCLVzlCwu8TFdRZIqVLzWbzNcmkmhfqKEr4TLz4HQ== dependencies: "@babel/runtime" "^7.23.2" i18next@^23.11.2: - version "23.15.1" - resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.15.1.tgz#c50de337bf12ca5195e697cc0fbe5f32304871d9" - integrity sha512-wB4abZ3uK7EWodYisHl/asf8UYEhrI/vj/8aoSsrj/ZDxj4/UXPOa1KvFt1Fq5hkUHquNqwFlDprmjZ8iySgYA== + version "23.16.8" + resolved "https://registry.yarnpkg.com/i18next/-/i18next-23.16.8.tgz#3ae1373d344c2393f465556f394aba5a9233b93a" + integrity sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg== dependencies: "@babel/runtime" "^7.23.2" @@ -6270,27 +5756,27 @@ ignore@^5.2.0, ignore@^5.3.1: integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== immer@^10.0.3: - version "10.1.1" - resolved "https://registry.yarnpkg.com/immer/-/immer-10.1.1.tgz#206f344ea372d8ea176891545ee53ccc062db7bc" - integrity sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw== + version "10.1.3" + resolved "https://registry.yarnpkg.com/immer/-/immer-10.1.3.tgz#e38a0b97db59949d31d9b381b04c2e441b1c3747" + integrity sha512-tmjF/k8QDKydUlm3mZU+tjM6zeq9/fFpPqH9SzWmBnVVKsPBg/V66qsMwb3/Bo90cgUN+ghdVBess+hPsxUyRw== -immutable@^4.0.0: - version "4.3.7" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.7.tgz#c70145fc90d89fb02021e65c84eb0226e4e5a381" - integrity sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw== +immutable@^5.0.2: + version "5.1.4" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-5.1.4.tgz#e3f8c1fe7b567d56cf26698f31918c241dae8c1f" + integrity sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA== import-fresh@^3.2.1, import-fresh@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + version "3.3.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf" + integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" import-meta-resolve@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz#f9db8bead9fafa61adb811db77a2bf22c5399706" - integrity sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw== + version "4.2.0" + resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz#08cb85b5bd37ecc8eb1e0f670dc2767002d43734" + integrity sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg== imurmurhash@^0.1.4: version "0.1.4" @@ -6325,15 +5811,6 @@ ini@4.1.1: resolved "https://registry.yarnpkg.com/ini/-/ini-4.1.1.tgz#d95b3d843b1e906e56d6747d5447904ff50ce7a1" integrity sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g== -internal-slot@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" - integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== - dependencies: - es-errors "^1.3.0" - hasown "^2.0.0" - side-channel "^1.0.4" - internal-slot@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.1.0.tgz#1eac91762947d2f7056bc838d93e13b2e9604961" @@ -6343,23 +5820,12 @@ internal-slot@^1.1.0: hasown "^2.0.2" side-channel "^1.1.0" -ip-address@^9.0.5: - version "9.0.5" - resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-9.0.5.tgz#117a960819b08780c3bd1f14ef3c1cc1d3f3ea5a" - integrity sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g== - dependencies: - jsbn "1.1.0" - sprintf-js "^1.1.3" +ip-address@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-10.0.1.tgz#a8180b783ce7788777d796286d61bce4276818ed" + integrity sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA== -is-array-buffer@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" - integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - -is-array-buffer@^3.0.5: +is-array-buffer@^3.0.4, is-array-buffer@^3.0.5: version "3.0.5" resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.5.tgz#65742e1e687bd2cc666253068fd8707fe4d44280" integrity sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A== @@ -6374,23 +5840,20 @@ is-arrayish@^0.2.1: integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== 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== + version "0.3.4" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.4.tgz#1ee5553818511915685d33bb13d31bf854e5059d" + integrity sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA== is-async-function@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646" - integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA== + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.1.1.tgz#3e69018c8e04e73b738793d020bfe884b9fd3523" + integrity sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ== dependencies: - has-tostringtag "^1.0.0" - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" + async-function "^1.0.0" + call-bound "^1.0.3" + get-proto "^1.0.1" + has-tostringtag "^1.0.2" + safe-regex-test "^1.1.0" is-bigint@^1.1.0: version "1.1.0" @@ -6399,20 +5862,12 @@ is-bigint@^1.1.0: dependencies: has-bigints "^1.0.2" -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== +is-boolean-object@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.2.2.tgz#7067f47709809a393c71ff5bb3e135d8a9215d9e" + integrity sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A== dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-boolean-object@^1.2.0, is-boolean-object@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.2.1.tgz#c20d0c654be05da4fbc23c562635c019e93daf89" - integrity sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng== - dependencies: - call-bound "^1.0.2" + call-bound "^1.0.3" has-tostringtag "^1.0.2" is-buffer@^2.0.5: @@ -6420,7 +5875,7 @@ is-buffer@^2.0.5: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: +is-callable@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== @@ -6433,20 +5888,13 @@ is-ci@^3.0.0: ci-info "^3.2.0" is-core-module@^2.13.0: - version "2.15.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37" - integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== + version "2.16.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" + integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== dependencies: hasown "^2.0.2" -is-data-view@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" - integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== - dependencies: - is-typed-array "^1.1.13" - -is-data-view@^1.0.2: +is-data-view@^1.0.1, is-data-view@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.2.tgz#bae0a41b9688986c2188dda6657e56b8f9e63b8e" integrity sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw== @@ -6455,13 +5903,6 @@ is-data-view@^1.0.2: get-intrinsic "^1.2.6" is-typed-array "^1.1.13" -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - is-date-object@^1.0.5, is-date-object@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.1.0.tgz#ad85541996fc7aa8b2729701d27b7319f95d82f7" @@ -6476,11 +5917,11 @@ is-extglob@^2.1.1: integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-finalizationregistry@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.1.0.tgz#d74a7d0c5f3578e34a20729e69202e578d495dc2" - integrity sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA== + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz#eefdcdc6c94ddd0674d9c85887bf93f944a97c90" + integrity sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg== dependencies: - call-bind "^1.0.7" + call-bound "^1.0.3" is-fullwidth-code-point@^3.0.0: version "3.0.0" @@ -6488,11 +5929,15 @@ is-fullwidth-code-point@^3.0.0: integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-generator-function@^1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" - integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.1.2.tgz#ae3b61e3d5ea4e4839b90bad22b02335051a17d5" + integrity sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA== dependencies: - has-tostringtag "^1.0.0" + call-bound "^1.0.4" + generator-function "^2.0.0" + get-proto "^1.0.1" + has-tostringtag "^1.0.2" + safe-regex-test "^1.1.0" is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: version "4.0.3" @@ -6521,21 +5966,6 @@ is-negative-zero@^2.0.3: resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - -is-number-object@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.1.0.tgz#5a867e9ecc3d294dda740d9f127835857af7eb05" - integrity sha512-KVSZV0Dunv9DTPkhXwcZ3Q+tUc9TsaE1ZwX5J2WMvsSGS6Md8TFPun5uwh0yRdrNerI6vf/tbJxqSx4c1ZI1Lw== - dependencies: - call-bind "^1.0.7" - has-tostringtag "^1.0.2" - is-number-object@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.1.1.tgz#144b21e95a1bc148205dcc2814a9134ec41b2541" @@ -6564,14 +5994,6 @@ is-potential-custom-element-name@^1.0.1: resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - is-regex@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.2.1.tgz#76d70a3ed10ef9be48eb577887d74205bf0cad22" @@ -6587,13 +6009,6 @@ is-set@^2.0.3: resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d" integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== -is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" - integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== - dependencies: - call-bind "^1.0.7" - is-shared-array-buffer@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz#9b67844bd9b7f246ba0708c3a93e34269c774f6f" @@ -6601,21 +6016,6 @@ is-shared-array-buffer@^1.0.4: dependencies: call-bound "^1.0.3" -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-string@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.1.0.tgz#8cb83c5d57311bf8058bc6c8db294711641da45d" - integrity sha512-PlfzajuF9vSo5wErv3MJAKD/nqf9ngAs1NFQYm16nUYFO2IzxJ2hcm+IOCg+EEopdykNNUhVq5cz35cAUxU8+g== - dependencies: - call-bind "^1.0.7" - has-tostringtag "^1.0.2" - is-string@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.1.1.tgz#92ea3f3d5c5b6e039ca8677e5ac8d07ea773cbb9" @@ -6624,14 +6024,7 @@ is-string@^1.1.1: call-bound "^1.0.3" has-tostringtag "^1.0.2" -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-symbol@^1.0.4, is-symbol@^1.1.0, is-symbol@^1.1.1: +is-symbol@^1.0.4, is-symbol@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.1.1.tgz#f47761279f532e2b05a7024a7506dbbedacd0634" integrity sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w== @@ -6647,14 +6040,7 @@ is-text-path@^2.0.0: dependencies: text-extensions "^2.0.0" -is-typed-array@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" - integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== - dependencies: - which-typed-array "^1.1.14" - -is-typed-array@^1.1.14, is-typed-array@^1.1.15: +is-typed-array@^1.1.13, is-typed-array@^1.1.14, is-typed-array@^1.1.15: version "1.1.15" resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.15.tgz#4bfb4a45b61cee83a5a46fba778e4e8d59c0ce0b" integrity sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ== @@ -6671,27 +6057,20 @@ is-weakmap@^2.0.2: resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd" integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== +is-weakref@^1.0.2, is-weakref@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.1.1.tgz#eea430182be8d64174bd96bffbc46f21bf3f9293" + integrity sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew== dependencies: - call-bind "^1.0.2" - -is-weakref@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.1.0.tgz#47e3472ae95a63fa9cf25660bcf0c181c39770ef" - integrity sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q== - dependencies: - call-bound "^1.0.2" + call-bound "^1.0.3" is-weakset@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.3.tgz#e801519df8c0c43e12ff2834eead84ec9e624007" - integrity sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ== + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.4.tgz#c9f5deb0bc1906c6d6f1027f284ddf459249daca" + integrity sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ== dependencies: - call-bind "^1.0.7" - get-intrinsic "^1.2.4" + call-bound "^1.0.3" + get-intrinsic "^1.2.6" isarray@^2.0.5: version "2.0.5" @@ -6704,9 +6083,9 @@ isbinaryfile@^4.0.8: integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== isbinaryfile@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-5.0.2.tgz#fe6e4dfe2e34e947ffa240c113444876ba393ae0" - integrity sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg== + version "5.0.6" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-5.0.6.tgz#01eac28867aeffaebaee7eaf21d1dd3a67d7c0c7" + integrity sha512-I+NmIfBHUl+r2wcDd6JwE9yWje/PIVY/R5/CmV8dXLZd5K+L9X2klAOwfAHNnondLXkbHyTAleQAWonpTJBTtw== isexe@^2.0.0: version "2.0.0" @@ -6735,19 +6114,18 @@ jackspeak@^3.1.2: "@pkgjs/parseargs" "^0.11.0" jake@^10.8.5: - version "10.9.2" - resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.2.tgz#6ae487e6a69afec3a5e167628996b59f35ae2b7f" - integrity sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA== + version "10.9.4" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.4.tgz#d626da108c63d5cfb00ab5c25fadc7e0084af8e6" + integrity sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA== dependencies: - async "^3.2.3" - chalk "^4.0.2" + async "^3.2.6" filelist "^1.0.4" - minimatch "^3.1.2" + picocolors "^1.1.1" -jiti@^1.19.1: - version "1.21.6" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.6.tgz#6c7f7398dd4b3142767f9a168af2f317a428d268" - integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w== +jiti@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-2.6.1.tgz#178ef2fc9a1a594248c20627cd820187a4d78d92" + integrity sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" @@ -6761,11 +6139,6 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" -jsbn@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" - integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== - jsdom@^24.0.0: version "24.1.3" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-24.1.3.tgz#88e4a07cb9dd21067514a619e9f17b090a394a9f" @@ -6793,11 +6166,6 @@ jsdom@^24.0.0: ws "^8.18.0" xml-name-validator "^5.0.0" -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - jsesc@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" @@ -6846,9 +6214,9 @@ jsonfile@^4.0.0: graceful-fs "^4.1.6" jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + version "6.2.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.2.0.tgz#7c265bd1b65de6977478300087c99f1c84383f62" + integrity sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg== dependencies: universalify "^2.0.0" optionalDependencies: @@ -6886,11 +6254,11 @@ jsonwebtoken@^9.0.2: object.values "^1.1.6" jwa@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" - integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + version "1.4.2" + resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.2.tgz#16011ac6db48de7b102777e57897901520eec7b9" + integrity sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw== dependencies: - buffer-equal-constant-time "1.0.1" + buffer-equal-constant-time "^1.0.1" ecdsa-sig-formatter "1.0.11" safe-buffer "^5.0.1" @@ -7105,7 +6473,7 @@ lowercase-keys@^2.0.0: resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== -lru-cache@^10.2.0: +lru-cache@^10.2.0, lru-cache@^10.4.3: version "10.4.3" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119" integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== @@ -7135,11 +6503,11 @@ lucide-react@^0.544.0: integrity sha512-t5tS44bqd825zAW45UQxpG2CvcC4urOwn2TrwSH8u+MjeE+1NnWl6QqeQ/6NdjMqdOygyiT9p3Ev0p1NJykxjw== magic-string@^0.30.17: - version "0.30.17" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.17.tgz#450a449673d2460e5bbcfba9a61916a1714c7453" - integrity sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA== + version "0.30.19" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.19.tgz#cebe9f104e565602e5d2098c5f2e79a77cc86da9" + integrity sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw== dependencies: - "@jridgewell/sourcemap-codec" "^1.5.0" + "@jridgewell/sourcemap-codec" "^1.5.5" magnet-uri@^7.0.7: version "7.0.7" @@ -7196,11 +6564,6 @@ matcher@^3.0.0: dependencies: escape-string-regexp "^4.0.0" -math-intrinsics@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.0.0.tgz#4e04bf87c85aa51e90d078dac2252b4eb5260817" - integrity sha512-4MqMiKP90ybymYvsut0CH2g4XWbfLtmlCkXmtmdcDCxNB+mQcu1w/1+L/VD7vi/PSv7X2JYV7SCcR+jiPXnQtA== - math-intrinsics@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" @@ -7226,7 +6589,7 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -micromatch@^4.0.4: +micromatch@^4.0.5, micromatch@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== @@ -7267,11 +6630,11 @@ mimic-response@^3.1.0: integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== minimatch@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.0.1.tgz#ce0521856b453c86e25f2c4c0d03e6ff7ddc440b" - integrity sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ== + version "10.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.0.3.tgz#cf7a0314a16c4d9ab73a7730a0e8e3c3502d47aa" + integrity sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw== dependencies: - brace-expansion "^2.0.1" + "@isaacs/brace-expansion" "^5.0.0" minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" @@ -7363,13 +6726,12 @@ minizlib@^2.1.1, minizlib@^2.1.2: minipass "^3.0.0" yallist "^4.0.0" -minizlib@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-3.0.1.tgz#46d5329d1eb3c83924eff1d3b858ca0a31581012" - integrity sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg== +minizlib@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-3.1.0.tgz#6ad76c3a8f10227c9b51d1c9ac8e30b27f5a251c" + integrity sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw== dependencies: - minipass "^7.0.4" - rimraf "^5.0.5" + minipass "^7.1.2" mkdirp@^0.5.1: version "0.5.6" @@ -7383,27 +6745,22 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mkdirp@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50" - integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg== - module-error@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/module-error/-/module-error-1.0.2.tgz#8d1a48897ca883f47a45816d4fb3e3c6ba404d86" integrity sha512-0yuvsqSCv8LbaOKhnsQ/T5JhyFlCYLPXK3U2sgV10zoKQwzs/MyfuQUOZQ1V/6OCOJsK/TRgNVrPuPDqtdMFtA== -motion-dom@^12.15.0: - version "12.15.0" - resolved "https://registry.yarnpkg.com/motion-dom/-/motion-dom-12.15.0.tgz#eca7c9d8c28976b8c920f175f92d5288f5a17785" - integrity sha512-D2ldJgor+2vdcrDtKJw48k3OddXiZN1dDLLWrS8kiHzQdYVruh0IoTwbJBslrnTXIPgFED7PBN2Zbwl7rNqnhA== +motion-dom@^12.23.23: + version "12.23.23" + resolved "https://registry.yarnpkg.com/motion-dom/-/motion-dom-12.23.23.tgz#8f874333ea1a04ee3a89eb928f518b463d589e0e" + integrity sha512-n5yolOs0TQQBRUFImrRfs/+6X4p3Q4n1dUEqt/H58Vx7OW6RF+foWEgmTVDhIWJIMXOuNNL0apKH2S16en9eiA== dependencies: - motion-utils "^12.12.1" + motion-utils "^12.23.6" -motion-utils@^12.12.1: - version "12.12.1" - resolved "https://registry.yarnpkg.com/motion-utils/-/motion-utils-12.12.1.tgz#63e28751325cb9d1cd684f3c273a570022b0010e" - integrity sha512-f9qiqUHm7hWSLlNW8gS9pisnsN7CRFRD58vNjptKdsqFLpkVnX00TNeD6Q0d27V9KzT7ySFyK1TZ/DShfVOv6w== +motion-utils@^12.23.6: + version "12.23.6" + resolved "https://registry.yarnpkg.com/motion-utils/-/motion-utils-12.23.6.tgz#fafef80b4ea85122dd0d6c599a0c63d72881f312" + integrity sha512-eAWoPgr4eFEOFfg2WjIsMoqJTW6Z8MTUCgn/GZ3VRpClWBdnbjryiA3ZSNLyxCTmCQx4RmYX6jX1iWHbenUPNQ== ms@^2.0.0, ms@^2.1.1, ms@^2.1.3: version "2.1.3" @@ -7426,9 +6783,9 @@ natural-compare@^1.4.0: integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== negotiator@^0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + version "0.6.4" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.4.tgz#777948e2452651c570b712dd01c23e262713fff7" + integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w== no-case@^3.0.4: version "3.0.4" @@ -7439,9 +6796,9 @@ no-case@^3.0.4: tslib "^2.0.3" node-abi@^3.45.0: - version "3.68.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.68.0.tgz#8f37fb02ecf4f43ebe694090dcb52e0c4cc4ba25" - integrity sha512-7vbj10trelExNjFSBm5kTvZXXa7pZyKWx9RCKIyqe6I9Ev3IzGpQoqBP3a+cOdxY+pWj6VkP28n/2wWysBHD/A== + version "3.78.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.78.0.tgz#fd0ecbd0aa89857b98da06bd3909194abb0821ba" + integrity sha512-E2wEyrgX/CqvicaQYU3Ze1PFGjc4QYPGsjUrlYkqAE0WjHEZwgOsGMPMzkMse4LjJbDmaEuDX3CM036j5K2DSQ== dependencies: semver "^7.3.5" @@ -7450,10 +6807,15 @@ node-addon-api@^1.6.3: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d" integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg== +node-addon-api@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.1.tgz#1aba6693b0f255258a049d621329329322aad558" + integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== + node-api-version@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/node-api-version/-/node-api-version-0.2.0.tgz#5177441da2b1046a4d4547ab9e0972eed7b1ac1d" - integrity sha512-fthTTsi8CxaBXMaBAD7ST2uylwvsnYxh2PfaScwpMhos6KlSFajXQPcM4ogNE1q2s3Lbz9GCGqeIHC+C6OZnKg== + version "0.2.1" + resolved "https://registry.yarnpkg.com/node-api-version/-/node-api-version-0.2.1.tgz#19bad54f6d65628cbee4e607a325e4488ace2de9" + integrity sha512-2xP/IGGMmmSQpI1+O/k72jF/ykvZ89JeuKX3TLJAYPDVLUalrshrLHkeVcCCZqG/eEa635cr8IBYzgnDvM2O8Q== dependencies: semver "^7.3.5" @@ -7476,15 +6838,10 @@ node-gyp-build@^4.3.0: resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz#8a70ee85464ae52327772a90d66c6077a900cfc8" integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== -node-releases@^2.0.18: - version "2.0.18" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.18.tgz#f010e8d35e2fe8d6b2944f03f70213ecedc4ca3f" - integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== - -node-releases@^2.0.19: - version "2.0.19" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314" - integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== +node-releases@^2.0.21: + version "2.0.23" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.23.tgz#2ecf3d7ba571ece05c67c77e5b7b1b6fb9e18cea" + integrity sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg== nopt@^6.0.0: version "6.0.0" @@ -7499,24 +6856,19 @@ normalize-url@^6.0.1: integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== nwsapi@^2.2.12: - version "2.2.13" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.13.tgz#e56b4e98960e7a040e5474536587e599c4ff4655" - integrity sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ== + version "2.2.22" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.22.tgz#109f9530cda6c156d6a713cdf5939e9f0de98b9d" + integrity sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ== object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.13.1: - version "1.13.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff" - integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== - -object-inspect@^1.13.3: - version "1.13.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.3.tgz#f14c183de51130243d6d18ae149375ff50ea488a" - integrity sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA== +object-inspect@^1.13.3, object-inspect@^1.13.4: + version "1.13.4" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" + integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== object-keys@^1.1.1: version "1.1.1" @@ -7530,17 +6882,7 @@ object-sizeof@^1.2.0: dependencies: buffer "^5.6.0" -object.assign@^4.1.4, object.assign@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" - integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== - dependencies: - call-bind "^1.0.5" - define-properties "^1.2.1" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -object.assign@^4.1.7: +object.assign@^4.1.4, object.assign@^4.1.7: version "4.1.7" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.7.tgz#8c14ca1a424c6a561b0bb2a22f66f5049a945d3d" integrity sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw== @@ -7552,14 +6894,15 @@ object.assign@^4.1.7: has-symbols "^1.1.0" object-keys "^1.1.1" -object.entries@^1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.8.tgz#bffe6f282e01f4d17807204a24f8edd823599c41" - integrity sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ== +object.entries@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.9.tgz#e4770a6a1444afb61bd39f984018b5bede25f8b3" + integrity sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw== dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.4" define-properties "^1.2.1" - es-object-atoms "^1.0.0" + es-object-atoms "^1.1.1" object.fromentries@^2.0.8: version "2.0.8" @@ -7571,16 +6914,7 @@ object.fromentries@^2.0.8: es-abstract "^1.23.2" es-object-atoms "^1.0.0" -object.values@^1.1.6: - version "1.2.0" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" - integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - -object.values@^1.2.1: +object.values@^1.1.6, object.values@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.1.tgz#deed520a50809ff7f75a7cfd4bc64c7a038c6216" integrity sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA== @@ -7686,9 +7020,9 @@ p-map@^4.0.0: aggregate-error "^3.0.0" package-json-from-dist@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz#e501cd3094b278495eb4258d4c9f6d5ac3019f00" - integrity sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw== + version "1.0.1" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" + integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== parent-module@^1.0.0: version "1.0.1" @@ -7708,9 +7042,9 @@ parse-json@^5.2.0: lines-and-columns "^1.1.6" parse-torrent@^11.0.18: - version "11.0.18" - resolved "https://registry.yarnpkg.com/parse-torrent/-/parse-torrent-11.0.18.tgz#2ae7e52160fd0e59b6f1e539fb3670a71882d7a6" - integrity sha512-C1igbmTrQQuKlspAfP1wcLaOPlvtu5qi4pMdPoCCfepHmxDOk8iArJ2J1yblLx11UefZJUaKEPSxIwMdG11SuA== + version "11.0.19" + resolved "https://registry.yarnpkg.com/parse-torrent/-/parse-torrent-11.0.19.tgz#ab9ccd51277cc271da1a78da18e92105219d3fbe" + integrity sha512-T0lEkDdFVQsy0YxHIKjzDHSgt/yl57f3INs5jl7OZqAm77XDF0FgRgrv3LCKgSqsTOrMwYaF0t2761WKdvhgig== dependencies: bencode "^4.0.0" cross-fetch-ponyfill "^1.0.3" @@ -7720,11 +7054,11 @@ parse-torrent@^11.0.18: uint8-util "^2.2.5" parse5@^7.0.0, parse5@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" - integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== + version "7.3.0" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.3.0.tgz#d7e224fa72399c7a175099f45fc2ad024b05ec05" + integrity sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw== dependencies: - entities "^4.4.0" + entities "^6.0.0" path-exists@^4.0.0: version "4.0.0" @@ -7769,21 +7103,11 @@ pe-library@^0.4.1: resolved "https://registry.yarnpkg.com/pe-library/-/pe-library-0.4.1.tgz#e269be0340dcb13aa6949d743da7d658c3e2fbea" integrity sha512-eRWB5LBz7PpDu4PUlwT0PhnQfTQJlDDdPa35urV4Osrm0t0AqQFGn+UIkU3klZvwJ8KPO3VbBFsXquA6p6kqZw== -peek-readable@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-7.0.0.tgz#c6e4e78ec76f7005e5f6b51ffc93fdb91ede6512" - integrity sha512-nri2TO5JE3/mRryik9LlHFT53cgHfRK0Lt0BAZQXku/AW3E6XLt2GaY8siWi7dvW/m1z0ecn+J+bpDa9ZN3IsQ== - pend@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== -picocolors@^1.0.0, picocolors@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.0.tgz#5358b76a78cde483ba5cef6a9dc9671440b27d59" - integrity sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw== - picocolors@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" @@ -7809,9 +7133,9 @@ plist@3.1.0, plist@^3.0.4, plist@^3.0.5, plist@^3.1.0: xmlbuilder "^15.1.1" possible-typed-array-names@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" - integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== + version "1.1.0" + resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz#93e3582bc0e5426586d9d07b79ee40fc841de4ae" + integrity sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg== postcss@^8.4.43: version "8.5.6" @@ -7835,9 +7159,9 @@ prettier-linter-helpers@^1.0.0: fast-diff "^1.1.2" prettier@^3.4.2: - version "3.4.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.4.2.tgz#a5ce1fb522a588bf2b78ca44c6e6fe5aa5a2b13f" - integrity sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ== + version "3.6.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.6.2.tgz#ccda02a1003ebbb2bfda6f83a074978f608b9393" + integrity sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ== proc-log@^2.0.1: version "2.0.1" @@ -8022,9 +7346,9 @@ prosemirror-transform@^1.0.0, prosemirror-transform@^1.1.0, prosemirror-transfor prosemirror-model "^1.21.0" prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.27.0, prosemirror-view@^1.31.0, prosemirror-view@^1.38.1, prosemirror-view@^1.39.1: - version "1.41.2" - resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.41.2.tgz#e69ad3883bfd3c9f3c9cf6da5cee940210df0b6f" - integrity sha512-PGS/jETmh+Qjmre/6vcG7SNHAKiGc4vKOJmHMPRmvcUl7ISuVtrtHmH06UDUwaim4NDJfZfVMl7U7JkMMETa6g== + version "1.41.3" + resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.41.3.tgz#753a37ebe172a3e313ad2c3d85496f9ed1b2c256" + integrity sha512-SqMiYMUQNNBP9kfPhLO8WXEk/fon47vc52FQsUiJzTBuyjKgEcoAwMyF04eQ4WZ2ArMn7+ReypYL60aKngbACQ== dependencies: prosemirror-model "^1.20.0" prosemirror-state "^1.0.0" @@ -8036,14 +7360,16 @@ proxy-from-env@^1.1.0: integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== psl@^1.1.33: - version "1.9.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + version "1.15.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.15.0.tgz#bdace31896f1d97cec6a79e8224898ce93d974c6" + integrity sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w== + dependencies: + punycode "^2.3.1" pump@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.2.tgz#836f3edd6bc2ee599256c924ffe0d88573ddcbf8" - integrity sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw== + version "3.0.3" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.3.tgz#151d979f1a29668dc0025ec589a455b53282268d" + integrity sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA== dependencies: end-of-stream "^1.1.0" once "^1.3.1" @@ -8084,17 +7410,17 @@ rc-resize-observer@^1.0.0: resize-observer-polyfill "^1.5.1" rc-util@^5.36.0, rc-util@^5.44.1: - version "5.44.2" - resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-5.44.2.tgz#6bc5db0e96ebdb515eb5977a7371887e5413a6f8" - integrity sha512-uGSk3hpPBLa3/0QAcKhCjgl4SFnhQCJDLvvpoLdbR6KgDuXrujG+dQaUeUvBJr2ZWak1O/9n+cYbJiWmmk95EQ== + version "5.44.4" + resolved "https://registry.yarnpkg.com/rc-util/-/rc-util-5.44.4.tgz#89ee9037683cca01cd60f1a6bbda761457dd6ba5" + integrity sha512-resueRJzmHG9Q6rI/DfK6Kdv9/Lfls05vzMs1Sk3M2P+3cJa+MakaZyWY8IPfehVuhPJFKrIY1IK4GqbiaiY5w== dependencies: "@babel/runtime" "^7.18.3" react-is "^18.2.0" rc-virtual-list@^3.18.3: - version "3.18.6" - resolved "https://registry.yarnpkg.com/rc-virtual-list/-/rc-virtual-list-3.18.6.tgz#87898dbb22563b3c58ca7fffcc1c77e32044a824" - integrity sha512-TQ5SsutL3McvWmmxqQtMIbfeoE3dGjJrRSfKekgby7WQMpPIFvv4ghytp5Z0s3D8Nik9i9YNOCqHBfk86AwgAA== + version "3.19.2" + resolved "https://registry.yarnpkg.com/rc-virtual-list/-/rc-virtual-list-3.19.2.tgz#1dd2d782c9a3ccbe537bb873447d73f83af8de0f" + integrity sha512-Ys6NcjwGkuwkeaWBDqfI3xWuZ7rDiQXlH1o2zLfFzATfEgXcqpk8CkgMfbJD81McqjcJVez25a3kPxCR807evA== dependencies: "@babel/runtime" "^7.20.0" classnames "^2.2.6" @@ -8128,9 +7454,9 @@ react-dom@^18.2.0: scheduler "^0.23.2" react-hook-form@^7.53.0: - version "7.53.0" - resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.53.0.tgz#3cf70951bf41fa95207b34486203ebefbd3a05ab" - integrity sha512-M1n3HhqCww6S2hxLxciEXy2oISPnAzxY7gvwVPrtlczTM/1dDadXgUxDpHMrMTblDOcm/AXtXxHwZ3jpg1mqKQ== + version "7.65.0" + resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.65.0.tgz#6139dac77ed1081d0178b6830dc6f5ff6ff86361" + integrity sha512-xtOzDz063WcXvGWaHgLNrNzlsdFgtUWcb32E6WFaGTd7kPZG3EeDusjdZfUsPwKCKVXy1ZlntifaHZ4l8pAsmw== react-i18next@^14.1.0: version "14.1.3" @@ -8156,17 +7482,17 @@ react-loading-skeleton@^3.4.0: integrity sha512-gxxSyLbrEAdXTKgfbpBEFZCO/P153DnqSCQau2+o6lNy1jgMRr2MmRmOzMmyrwSaSYLRB8g7b0waYPmUjz7IhQ== react-redux@^9.1.1: - version "9.1.2" - resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-9.1.2.tgz#deba38c64c3403e9abd0c3fbeab69ffd9d8a7e4b" - integrity sha512-0OA4dhM1W48l3uzmv6B7TXPCGmokUU4p1M44DGN2/D9a1FjVPukVjER1PcPX97jIg6aUeLq1XJo1IpfbgULn0w== + version "9.2.0" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-9.2.0.tgz#96c3ab23fb9a3af2cb4654be4b51c989e32366f5" + integrity sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g== dependencies: - "@types/use-sync-external-store" "^0.0.3" - use-sync-external-store "^1.0.0" + "@types/use-sync-external-store" "^0.0.6" + use-sync-external-store "^1.4.0" -react-refresh@^0.14.0: - version "0.14.2" - resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.2.tgz#3833da01ce32da470f1f936b9d477da5c7028bf9" - integrity sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA== +react-refresh@^0.17.0: + version "0.17.0" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.17.0.tgz#b7e579c3657f23d04eccbe4ad2e58a8ed51e7e53" + integrity sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ== react-remove-scroll-bar@^2.3.7: version "2.3.8" @@ -8188,19 +7514,19 @@ react-remove-scroll@^2.6.3: use-sidecar "^1.1.3" react-router-dom@^6.22.3: - version "6.26.2" - resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.26.2.tgz#a6e3b0cbd6bfd508e42b9342099d015a0ac59680" - integrity sha512-z7YkaEW0Dy35T3/QKPYB1LjMK2R1fxnHO8kWpUMTBdfVzZrWOiY9a7CtN8HqdWtDUWd5FY6Dl8HFsqVwH4uOtQ== + version "6.30.1" + resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.30.1.tgz#da2580c272ddb61325e435478566be9563a4a237" + integrity sha512-llKsgOkZdbPU1Eg3zK8lCn+sjD9wMRZZPuzmdWWX5SUs8OFkN5HnFVC0u5KMeMaC9aoancFI/KoLuKPqN+hxHw== dependencies: - "@remix-run/router" "1.19.2" - react-router "6.26.2" + "@remix-run/router" "1.23.0" + react-router "6.30.1" -react-router@6.26.2: - version "6.26.2" - resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.26.2.tgz#2f0a68999168954431cdc29dd36cec3b6fa44a7e" - integrity sha512-tvN1iuT03kHgOFnLPfLJ8V95eijteveqdOSk+srqfePtQvqCExB8eHOYnlilbOcyJyKnYkr1vJvf7YqotAJu1A== +react-router@6.30.1: + version "6.30.1" + resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.30.1.tgz#ecb3b883c9ba6dbf5d319ddbc996747f4ab9f4c3" + integrity sha512-X1m21aEmxGXqENEPG3T6u0Th7g0aS4ZmoNynhbs+Cn+q+QGTLt+d5IQ2bHAXKzKcxGJjxACpVbnYQSCRcfxHlQ== dependencies: - "@remix-run/router" "1.19.2" + "@remix-run/router" "1.23.0" react-shadow@^20.6.0: version "20.6.0" @@ -8218,9 +7544,9 @@ react-style-singleton@^2.2.2, react-style-singleton@^2.2.3: tslib "^2.0.0" react-tooltip@^5.28.1: - version "5.28.1" - resolved "https://registry.yarnpkg.com/react-tooltip/-/react-tooltip-5.28.1.tgz#5b25c7c53ce008b7ad0685e9f516101d80925cbc" - integrity sha512-ZA4oHwoIIK09TS7PvSLFcRlje1wGZaxw6xHvfrzn6T82UcMEfEmHVCad16Gnr4NDNDh93HyN037VK4HDi5odfQ== + version "5.30.0" + resolved "https://registry.yarnpkg.com/react-tooltip/-/react-tooltip-5.30.0.tgz#8e1af2d1bf91a2a5169302bd0eb82b62847ad224" + integrity sha512-Yn8PfbgQ/wmqnL7oBpz1QiDaLKrzZMdSUUdk7nVeGTwzbxCAJiJzR4VSYW+eIO42F1INt57sPUmpgKv0KwJKtg== dependencies: "@floating-ui/dom" "^1.6.1" classnames "^2.3.0" @@ -8248,6 +7574,11 @@ readable-stream@^3.4.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" +readdirp@^4.0.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" + integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== + redux-thunk@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-3.1.0.tgz#94aa6e04977c30e14e892eae84978c1af6058ff3" @@ -8279,29 +7610,16 @@ reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.9: get-proto "^1.0.1" which-builtin-type "^1.2.1" -regenerator-runtime@^0.14.0: - version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" - integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== - -regexp.prototype.flags@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" - integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== +regexp.prototype.flags@^1.5.3, regexp.prototype.flags@^1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz#1ad6c62d44a259007e55b3970e00f746efbcaa19" + integrity sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA== dependencies: - call-bind "^1.0.6" - define-properties "^1.2.1" - es-errors "^1.3.0" - set-function-name "^2.0.1" - -regexp.prototype.flags@^1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz#b3ae40b1d2499b8350ab2c3fe6ef3845d3a96f42" - integrity sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ== - dependencies: - call-bind "^1.0.7" + call-bind "^1.0.8" define-properties "^1.2.1" es-errors "^1.3.0" + get-proto "^1.0.1" + gopd "^1.2.0" set-function-name "^2.0.2" require-directory@^2.1.1: @@ -8320,9 +7638,9 @@ requires-port@^1.0.0: integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== resedit@^1.7.0: - version "1.7.1" - resolved "https://registry.yarnpkg.com/resedit/-/resedit-1.7.1.tgz#150c101000210968730141ae2eb504ca0aead165" - integrity sha512-/FJ6/gKAXbcHtivannhecWsa43kGVFK3aHHv9Jm3x0eFiM31MoGihkAOWbm3UsvjYLRVw0zTkfARy2dI96JL1Q== + version "1.7.2" + resolved "https://registry.yarnpkg.com/resedit/-/resedit-1.7.2.tgz#b1041170b99811710c13f949c7d225871de4cc78" + integrity sha512-vHjcY2MlAITJhC0eRD/Vv8Vlgmu9Sd3LX9zZvtGzU5ZImdTN3+d6e/4mnTyV8vEbyf1sgNIrWxhWlrys52OkEA== dependencies: pe-library "^0.4.1" @@ -8381,9 +7699,9 @@ retry@^0.12.0: integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + version "1.1.0" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f" + integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== rimraf@^3.0.2: version "3.0.2" @@ -8392,13 +7710,6 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" -rimraf@^5.0.5: - version "5.0.10" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.10.tgz#23b9843d3dc92db71f96e1a2ce92e39fd2a8221c" - integrity sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ== - dependencies: - glob "^10.3.7" - roarr@^2.15.3: version "2.15.4" resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd" @@ -8452,6 +7763,11 @@ rrweb-cssom@^0.7.1: resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz#c73451a484b86dd7cfb1e0b2898df4b703183e4b" integrity sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg== +rrweb-cssom@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz#3021d1b4352fbf3b614aaeed0bc0d5739abe0bc2" + integrity sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw== + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -8460,22 +7776,12 @@ run-parallel@^1.1.9: queue-microtask "^1.2.2" rxjs@^7.4.0: - version "7.8.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" - integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + version "7.8.2" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.2.tgz#955bc473ed8af11a002a2be52071bf475638607b" + integrity sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA== dependencies: tslib "^2.1.0" -safe-array-concat@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" - integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== - dependencies: - call-bind "^1.0.7" - get-intrinsic "^1.2.4" - has-symbols "^1.0.3" - isarray "^2.0.5" - safe-array-concat@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.3.tgz#c9e54ec4f603b0bbb8e7e5007a5ee7aecd1538c3" @@ -8500,16 +7806,7 @@ safe-push-apply@^1.0.0: es-errors "^1.3.0" isarray "^2.0.5" -safe-regex-test@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" - integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== - dependencies: - call-bind "^1.0.6" - es-errors "^1.3.0" - is-regex "^1.1.4" - -safe-regex-test@^1.1.0: +safe-regex-test@^1.0.3, safe-regex-test@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.1.0.tgz#7f87dfb67a3150782eaaf18583ff5d1711ac10c1" integrity sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw== @@ -8530,139 +7827,143 @@ sanitize-filename@^1.6.3: dependencies: truncate-utf8-bytes "^1.0.0" -sass-embedded-android-arm64@1.80.6: - version "1.80.6" - resolved "https://registry.yarnpkg.com/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.80.6.tgz#748df1f7deabea3a81c2c647661d9696090e1b81" - integrity sha512-4rC4ZGM/k4ENVjLXnK3JTst8e8FI9MHSol2Fl7dCdYyJ3KLnlt4qL4AEYfU8zq1tcBb7CBOSZVR+CzCKubnXdg== +sass-embedded-all-unknown@1.93.2: + version "1.93.2" + resolved "https://registry.yarnpkg.com/sass-embedded-all-unknown/-/sass-embedded-all-unknown-1.93.2.tgz#dd9207a0dd4eea2f14774359e1d37efc61c7a63c" + integrity sha512-GdEuPXIzmhRS5J7UKAwEvtk8YyHQuFZRcpnEnkA3rwRUI27kwjyXkNeIj38XjUQ3DzrfMe8HcKFaqWGHvblS7Q== + dependencies: + sass "1.93.2" -sass-embedded-android-arm@1.80.6: - version "1.80.6" - resolved "https://registry.yarnpkg.com/sass-embedded-android-arm/-/sass-embedded-android-arm-1.80.6.tgz#1fa2e08e5b2a77709f6e8cb8186c801ee140c0a9" - integrity sha512-UeUKMTRsnz4/dh7IzvhjONxa4/jmVp539CHDd8VZOsqg9M3HcNJNIkUzQWbuwZ+nSlWrTuo7Tvn3XlypopCBzw== +sass-embedded-android-arm64@1.93.2: + version "1.93.2" + resolved "https://registry.yarnpkg.com/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.93.2.tgz#e5a6a7c9e98d4b4b12f2cb5e9f340564193a9ee4" + integrity sha512-346f4iVGAPGcNP6V6IOOFkN5qnArAoXNTPr5eA/rmNpeGwomdb7kJyQ717r9rbJXxOG8OAAUado6J0qLsjnjXQ== -sass-embedded-android-ia32@1.80.6: - version "1.80.6" - resolved "https://registry.yarnpkg.com/sass-embedded-android-ia32/-/sass-embedded-android-ia32-1.80.6.tgz#43674c98454a3adb5da3cca0ba23340128bfbdff" - integrity sha512-Lxz2SXE2KdHnynuHF+D6flDvrd55/zaEAWUeka9MxEr6FmR66d8UBOIy5ETwCSUd//S/SE5Jl6oTnHppgD1zNA== +sass-embedded-android-arm@1.93.2: + version "1.93.2" + resolved "https://registry.yarnpkg.com/sass-embedded-android-arm/-/sass-embedded-android-arm-1.93.2.tgz#5970c732137b0a1abbb889305c462cf2ab11b91e" + integrity sha512-I8bpO8meZNo5FvFx5FIiE7DGPVOYft0WjuwcCCdeJ6duwfkl6tZdatex1GrSigvTsuz9L0m4ngDcX/Tj/8yMow== -sass-embedded-android-riscv64@1.80.6: - version "1.80.6" - resolved "https://registry.yarnpkg.com/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.80.6.tgz#59c9d53b1c800b53221d56cf55d9cf84b4418bac" - integrity sha512-hKdxY/oOqB+JJhSoBTDM5DJO1j/xtxQgayh2cLCCUx37IQQe3SEdc3V2JFf/4mIo5peaS4cjqwwSATF+l2zaXg== +sass-embedded-android-riscv64@1.93.2: + version "1.93.2" + resolved "https://registry.yarnpkg.com/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.93.2.tgz#0b52b538729237cd08efc008fd39291ea36e058d" + integrity sha512-hSMW1s4yJf5guT9mrdkumluqrwh7BjbZ4MbBW9tmi1DRDdlw1Wh9Oy1HnnmOG8x9XcI1qkojtPL6LUuEJmsiDg== -sass-embedded-android-x64@1.80.6: - version "1.80.6" - resolved "https://registry.yarnpkg.com/sass-embedded-android-x64/-/sass-embedded-android-x64-1.80.6.tgz#a06a9f55f904c3ba628a3ae03c244f134f4f2bb1" - integrity sha512-Eap2Fi3kTx/rVLBsOnOp5RYPr5+lFjTZ652zR24dmYFe9/sDgasakJIOPjOvD2bRuL9z0uWEY1AXVeeOPeZKrg== +sass-embedded-android-x64@1.93.2: + version "1.93.2" + resolved "https://registry.yarnpkg.com/sass-embedded-android-x64/-/sass-embedded-android-x64-1.93.2.tgz#793483a0a4848d06cd4f0cb44d2e0ebc906c0a20" + integrity sha512-JqktiHZduvn+ldGBosE40ALgQ//tGCVNAObgcQ6UIZznEJbsHegqStqhRo8UW3x2cgOO2XYJcrInH6cc7wdKbw== -sass-embedded-darwin-arm64@1.80.6: - version "1.80.6" - resolved "https://registry.yarnpkg.com/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.80.6.tgz#81a7019c92a8c8f76f7f98dfe15f6adfaf621e92" - integrity sha512-0mnAx8Vq6Gxj3PQt3imgITfK33hhqrSKpyHSuab71gZZni5opsdtoggq2JawW+1taRFTEZwbZJLKZ0MBDbwCCA== +sass-embedded-darwin-arm64@1.93.2: + version "1.93.2" + resolved "https://registry.yarnpkg.com/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.93.2.tgz#03c2832c9e9b1e42563c36e7636e01bd724da134" + integrity sha512-qI1X16qKNeBJp+M/5BNW7v/JHCDYWr1/mdoJ7+UMHmP0b5AVudIZtimtK0hnjrLnBECURifd6IkulybR+h+4UA== -sass-embedded-darwin-x64@1.80.6: - version "1.80.6" - resolved "https://registry.yarnpkg.com/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.80.6.tgz#d1b551443930658bfa4cc92ca026d4b22023ce9d" - integrity sha512-Ib20yNZFOrJ7YVT+ltoe+JQNKPcRclM3iLAK69XZZYcSeFM/72SCoQBAaVGIpT23dxDp7FXiE4lO602c3xTRwQ== +sass-embedded-darwin-x64@1.93.2: + version "1.93.2" + resolved "https://registry.yarnpkg.com/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.93.2.tgz#492f8e46ee0790b22c5119c9f2e729ae78cb24c7" + integrity sha512-4KeAvlkQ0m0enKUnDGQJZwpovYw99iiMb8CTZRSsQm8Eh7halbJZVmx67f4heFY/zISgVOCcxNg19GrM5NTwtA== -sass-embedded-linux-arm64@1.80.6: - version "1.80.6" - resolved "https://registry.yarnpkg.com/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.80.6.tgz#fe6255bbbe55590fb6405f098431b3841221a1b0" - integrity sha512-n5r98pBXawrQQKaxIYCMM1zDpnngsqxTkOrmvsYLFiAMCSbR0lWf/7sBB33k/Pm0D6dsbp3jpHilCoQNKI3jIw== +sass-embedded-linux-arm64@1.93.2: + version "1.93.2" + resolved "https://registry.yarnpkg.com/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.93.2.tgz#144a4a056778c17011726885b0f94fccb6f389f7" + integrity sha512-9ftX6nd5CsShJqJ2WRg+ptaYvUW+spqZfJ88FbcKQBNFQm6L87luj3UI1rB6cP5EWrLwHA754OKxRJyzWiaN6g== -sass-embedded-linux-arm@1.80.6: - version "1.80.6" - resolved "https://registry.yarnpkg.com/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.80.6.tgz#a6603b1ec087762a1128e836fd36851050b537b4" - integrity sha512-QR0Q6TZox/ThuU2r9c0s3fKCgU2rXAEocpitdgxFp6tta+GsQlMFV3oON2unAa8Bwnuxkmf0YOaK0Oy/TwzkXw== +sass-embedded-linux-arm@1.93.2: + version "1.93.2" + resolved "https://registry.yarnpkg.com/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.93.2.tgz#0df4594316c3b21b18bf60c8d75e2acddda09ef0" + integrity sha512-N3+D/ToHtzwLDO+lSH05Wo6/KRxFBPnbjVHASOlHzqJnK+g5cqex7IFAp6ozzlRStySk61Rp6d+YGrqZ6/P0PA== -sass-embedded-linux-ia32@1.80.6: - version "1.80.6" - resolved "https://registry.yarnpkg.com/sass-embedded-linux-ia32/-/sass-embedded-linux-ia32-1.80.6.tgz#bedb53348f7e384ceabc9e0158b086045779af07" - integrity sha512-O6dWZdcOkryRdDCxVMGOeVowgblpDgVcAuRtZ1F1X7XfbpDriTQm64D+9vVZIrywYSPoJfQMJJ662cr0wUs9IQ== +sass-embedded-linux-musl-arm64@1.93.2: + version "1.93.2" + resolved "https://registry.yarnpkg.com/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.93.2.tgz#212a5107f9d05853236def3cee40cba35ff6dd7b" + integrity sha512-+3EHuDPkMiAX5kytsjEC1bKZCawB9J6pm2eBIzzLMPWbf5xdx++vO1DpT7hD4bm4ZGn0eVHgSOKIfP6CVz6tVg== -sass-embedded-linux-musl-arm64@1.80.6: - version "1.80.6" - resolved "https://registry.yarnpkg.com/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.80.6.tgz#0f0e0bb68c90f0ae920d9a06760241f3f58c7a76" - integrity sha512-VeUSHUi3MAsvOlg9QI4X/2j04h1659aE+7qKP/282CYBTrGkjFGSXZhIki9WKWDgIpDiSInRYXfQQRWhPhjCDg== +sass-embedded-linux-musl-arm@1.93.2: + version "1.93.2" + resolved "https://registry.yarnpkg.com/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.93.2.tgz#29ebecef7ed479d0441b1cb8305c59724816fd07" + integrity sha512-XBTvx66yRenvEsp3VaJCb3HQSyqCsUh7R+pbxcN5TuzueybZi0LXvn9zneksdXcmjACMlMpIVXi6LyHPQkYc8A== -sass-embedded-linux-musl-arm@1.80.6: - version "1.80.6" - resolved "https://registry.yarnpkg.com/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.80.6.tgz#41039f857684ee3470ec9e0d310add5f6f1b694d" - integrity sha512-X9FC8s8fvQGRiXc+eATlZ57N44Iq3nNa0M0ugi3ysdJwkaNYvOeS4QzBHKQAaw3QiTqdxTnLUHHVBkyzdCi9pw== +sass-embedded-linux-musl-riscv64@1.93.2: + version "1.93.2" + resolved "https://registry.yarnpkg.com/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.93.2.tgz#935da64e1f8e10e9a0a0d045b2e2a78a26d26267" + integrity sha512-0sB5kmVZDKTYzmCSlTUnjh6mzOhzmQiW/NNI5g8JS4JiHw2sDNTvt1dsFTuqFkUHyEOY3ESTsfHHBQV8Ip4bEA== -sass-embedded-linux-musl-ia32@1.80.6: - version "1.80.6" - resolved "https://registry.yarnpkg.com/sass-embedded-linux-musl-ia32/-/sass-embedded-linux-musl-ia32-1.80.6.tgz#8ff88c78ba3503a19d59c5b8fa172fdea00a67f8" - integrity sha512-GqitS2Nab8ah0+wfCqaxW1hnI1piC08FimL6+lM9YWK5DbCOOF82IapbvJOy0feUmd/wNnHmyNTgE9h0zVMFdQ== +sass-embedded-linux-musl-x64@1.93.2: + version "1.93.2" + resolved "https://registry.yarnpkg.com/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.93.2.tgz#0f6a79b54ab7393376f7a7a4d19e8b5f6752db37" + integrity sha512-t3ejQ+1LEVuHy7JHBI2tWHhoMfhedUNDjGJR2FKaLgrtJntGnyD1RyX0xb3nuqL/UXiEAtmTmZY+Uh3SLUe1Hg== -sass-embedded-linux-musl-riscv64@1.80.6: - version "1.80.6" - resolved "https://registry.yarnpkg.com/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.80.6.tgz#aaa086a6ce9718d0fd7cbe584c0f2bf81bef3122" - integrity sha512-ySs15z7QSRRQK/aByEEqaJLYW/sTpfynefNPZCtsVNVEzNRwy+DRpxNChtxo+QjKq97ocXETbdG5KLik7QOTJg== +sass-embedded-linux-riscv64@1.93.2: + version "1.93.2" + resolved "https://registry.yarnpkg.com/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.93.2.tgz#d98024c3a7dfac5d7410a75ca3cc1a7ff86ec3b7" + integrity sha512-e7AndEwAbFtXaLy6on4BfNGTr3wtGZQmypUgYpSNVcYDO+CWxatKVY4cxbehMPhxG9g5ru+eaMfynvhZt7fLaA== -sass-embedded-linux-musl-x64@1.80.6: - version "1.80.6" - resolved "https://registry.yarnpkg.com/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.80.6.tgz#ea0bb093837be3b6f473b9a1b5d09c4633f8e504" - integrity sha512-DzeNqU/SN0mWFznoOH4RtVGcrg3Eoa41pUQhKMtrhNbCmIE1zNDunUiAEVTNpdHJF4nxf7ELUPXWmStM31CbUQ== +sass-embedded-linux-x64@1.93.2: + version "1.93.2" + resolved "https://registry.yarnpkg.com/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.93.2.tgz#d38476e53ba26b98c960dadd94f6d182566d69d0" + integrity sha512-U3EIUZQL11DU0xDDHXexd4PYPHQaSQa2hzc4EzmhHqrAj+TyfYO94htjWOd+DdTPtSwmLp+9cTWwPZBODzC96w== -sass-embedded-linux-riscv64@1.80.6: - version "1.80.6" - resolved "https://registry.yarnpkg.com/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.80.6.tgz#bc19c15796a3b3a3d67ea626058b3bab48344b1d" - integrity sha512-AyoHJ3icV9xuJjq1YzJqpEj2XfiC/KBkVYTUrCELKiXP0DN1gi/BpUwZNCAgCM3CyEdMef4LQM/ztCYJxYzdyg== +sass-embedded-unknown-all@1.93.2: + version "1.93.2" + resolved "https://registry.yarnpkg.com/sass-embedded-unknown-all/-/sass-embedded-unknown-all-1.93.2.tgz#51d0618999426bf311d16e48d7b53c208c26b514" + integrity sha512-7VnaOmyewcXohiuoFagJ3SK5ddP9yXpU0rzz+pZQmS1/+5O6vzyFCUoEt3HDRaLctH4GT3nUGoK1jg0ae62IfQ== + dependencies: + sass "1.93.2" -sass-embedded-linux-x64@1.80.6: - version "1.80.6" - resolved "https://registry.yarnpkg.com/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.80.6.tgz#db076fdf0bc3c1382c8f73c8d396293b893b31ef" - integrity sha512-EohsE9CEqx0ycylnsEj/0DNPG99Tb0qAVZspiAs5xHFCJjXOFfp3cRQu0BRf+lZ1b72IhPFXymzVtojvzUHb7g== +sass-embedded-win32-arm64@1.93.2: + version "1.93.2" + resolved "https://registry.yarnpkg.com/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.93.2.tgz#806310afadb2e040204878718180b10828651d8a" + integrity sha512-Y90DZDbQvtv4Bt0GTXKlcT9pn4pz8AObEjFF8eyul+/boXwyptPZ/A1EyziAeNaIEIfxyy87z78PUgCeGHsx3Q== -sass-embedded-win32-arm64@1.80.6: - version "1.80.6" - resolved "https://registry.yarnpkg.com/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.80.6.tgz#e889c421b0b31e1297414dd89448385fe443d5e2" - integrity sha512-29wETQi1ykeVvpd4zMVokpQKFSOZskGJzZawuuNCdo7BHjHKIRDsqbz8YT1CewHPBshI0hfD21fenmjxYjGXPQ== - -sass-embedded-win32-ia32@1.80.6: - version "1.80.6" - resolved "https://registry.yarnpkg.com/sass-embedded-win32-ia32/-/sass-embedded-win32-ia32-1.80.6.tgz#0934f3598e4fbe701b5e4e4d2a1fa6ef952f7024" - integrity sha512-1s3OpK2iTIfIL/a91QhAQnffsbuWfnsM8Lx4Fxt0f7ErnxjCV6q8MUFTV/UhcLtLyTFnPCA62DLjp2KGCjMI9A== - -sass-embedded-win32-x64@1.80.6: - version "1.80.6" - resolved "https://registry.yarnpkg.com/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.80.6.tgz#b7357b399c12cbb80dab2bee6f541b88a6015d76" - integrity sha512-0pH4Zr9silHkcmLPC0ghnD3DI0vMsjA7dKvGR32/RbbjOSvHV5cDQRLiuVJAPp34dfMA7kJd1ysSchRdH0igAQ== +sass-embedded-win32-x64@1.93.2: + version "1.93.2" + resolved "https://registry.yarnpkg.com/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.93.2.tgz#4bc3cefd0e79106d4d15074fed6dd99d0a782b32" + integrity sha512-BbSucRP6PVRZGIwlEBkp+6VQl2GWdkWFMN+9EuOTPrLxCJZoq+yhzmbjspd3PeM8+7WJ7AdFu/uRYdO8tor1iQ== sass-embedded@^1.80.6: - version "1.80.6" - resolved "https://registry.yarnpkg.com/sass-embedded/-/sass-embedded-1.80.6.tgz#efd66c12c7f117c2dcb558e8bf6bd00cc5cd49b2" - integrity sha512-Og4aqBnaA3oJfIpHaLuNATAqzBRgUJDYJy2X15V59cot2wYOtiT/ciPnyuq1o7vpDEeOkHhEd+mSviSlXoETug== + version "1.93.2" + resolved "https://registry.yarnpkg.com/sass-embedded/-/sass-embedded-1.93.2.tgz#8747862cfe2e3e70772a309223984681bf33f499" + integrity sha512-FvQdkn2dZ8DGiLgi0Uf4zsj7r/BsiLImNa5QJ10eZalY6NfZyjrmWGFcuCN5jNwlDlXFJnftauv+UtvBKLvepQ== dependencies: - "@bufbuild/protobuf" "^2.0.0" + "@bufbuild/protobuf" "^2.5.0" buffer-builder "^0.2.0" colorjs.io "^0.5.0" - immutable "^4.0.0" + immutable "^5.0.2" rxjs "^7.4.0" supports-color "^8.1.1" + sync-child-process "^1.0.2" varint "^6.0.0" optionalDependencies: - sass-embedded-android-arm "1.80.6" - sass-embedded-android-arm64 "1.80.6" - sass-embedded-android-ia32 "1.80.6" - sass-embedded-android-riscv64 "1.80.6" - sass-embedded-android-x64 "1.80.6" - sass-embedded-darwin-arm64 "1.80.6" - sass-embedded-darwin-x64 "1.80.6" - sass-embedded-linux-arm "1.80.6" - sass-embedded-linux-arm64 "1.80.6" - sass-embedded-linux-ia32 "1.80.6" - sass-embedded-linux-musl-arm "1.80.6" - sass-embedded-linux-musl-arm64 "1.80.6" - sass-embedded-linux-musl-ia32 "1.80.6" - sass-embedded-linux-musl-riscv64 "1.80.6" - sass-embedded-linux-musl-x64 "1.80.6" - sass-embedded-linux-riscv64 "1.80.6" - sass-embedded-linux-x64 "1.80.6" - sass-embedded-win32-arm64 "1.80.6" - sass-embedded-win32-ia32 "1.80.6" - sass-embedded-win32-x64 "1.80.6" + sass-embedded-all-unknown "1.93.2" + sass-embedded-android-arm "1.93.2" + sass-embedded-android-arm64 "1.93.2" + sass-embedded-android-riscv64 "1.93.2" + sass-embedded-android-x64 "1.93.2" + sass-embedded-darwin-arm64 "1.93.2" + sass-embedded-darwin-x64 "1.93.2" + sass-embedded-linux-arm "1.93.2" + sass-embedded-linux-arm64 "1.93.2" + sass-embedded-linux-musl-arm "1.93.2" + sass-embedded-linux-musl-arm64 "1.93.2" + sass-embedded-linux-musl-riscv64 "1.93.2" + sass-embedded-linux-musl-x64 "1.93.2" + sass-embedded-linux-riscv64 "1.93.2" + sass-embedded-linux-x64 "1.93.2" + sass-embedded-unknown-all "1.93.2" + sass-embedded-win32-arm64 "1.93.2" + sass-embedded-win32-x64 "1.93.2" + +sass@1.93.2: + version "1.93.2" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.93.2.tgz#e97d225d60f59a3b3dbb6d2ae3c1b955fd1f2cd1" + integrity sha512-t+YPtOQHpGW1QWsh1CHQ5cPIr9lbbGZLZnbihP/D/qZj/yuV68m8qarcV17nvkOX81BCrvzAlq2klCQFZghyTg== + dependencies: + chokidar "^4.0.0" + immutable "^5.0.2" + source-map-js ">=0.6.2 <2.0.0" + optionalDependencies: + "@parcel/watcher" "^2.4.1" sax@^1.2.4: version "1.4.1" @@ -8699,9 +8000,9 @@ semver@^6.2.0, semver@^6.3.1: integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.3.2, semver@^7.3.5, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3: - version "7.6.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" - integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== + version "7.7.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz#4b5f4143d007633a8dc671cd0a6ef9147b8bb946" + integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q== serialize-error@^7.0.1: version "7.0.1" @@ -8710,7 +8011,7 @@ serialize-error@^7.0.1: dependencies: type-fest "^0.13.1" -set-function-length@^1.2.1, set-function-length@^1.2.2: +set-function-length@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== @@ -8722,7 +8023,7 @@ set-function-length@^1.2.1, set-function-length@^1.2.2: gopd "^1.0.1" has-property-descriptors "^1.0.2" -set-function-name@^2.0.1, set-function-name@^2.0.2: +set-function-name@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== @@ -8782,16 +8083,6 @@ side-channel-weakmap@^1.0.2: object-inspect "^1.13.3" side-channel-map "^1.0.1" -side-channel@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" - integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== - dependencies: - call-bind "^1.0.7" - es-errors "^1.3.0" - get-intrinsic "^1.2.4" - object-inspect "^1.13.1" - side-channel@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9" @@ -8814,9 +8105,9 @@ signal-exit@^4.0.1: integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + version "0.2.4" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.4.tgz#a8d11a45a11600d6a1ecdff6363329e3648c3667" + integrity sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw== dependencies: is-arrayish "^0.3.1" @@ -8864,11 +8155,11 @@ socks-proxy-agent@^7.0.0: socks "^2.6.2" socks@^2.6.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.3.tgz#1ebd0f09c52ba95a09750afe3f3f9f724a800cb5" - integrity sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw== + version "2.8.7" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.7.tgz#e2fb1d9a603add75050a2067db8c381a0b5669ea" + integrity sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A== dependencies: - ip-address "^9.0.5" + ip-address "^10.0.1" smart-buffer "^4.2.0" sound-play@^1.1.0: @@ -8876,7 +8167,7 @@ sound-play@^1.1.0: resolved "https://registry.yarnpkg.com/sound-play/-/sound-play-1.1.0.tgz#58ffa31d1bf51822d49d91ff7865591fd9376381" integrity sha512-Bd/L0AoCwITFeOnpNLMsfPXrV5GG5NhrC/T6odveahYbhPZkdTnrFXRia9FCC5WBWdUTw1d+yvLBvi4wnD1xOA== -source-map-js@^1.2.1: +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== @@ -8899,7 +8190,7 @@ split2@^4.0.0: resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== -sprintf-js@^1.1.2, sprintf-js@^1.1.3: +sprintf-js@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== @@ -8928,6 +8219,14 @@ state-local@^1.0.6: lodash "^4.17.21" object-sizeof "^1.2.0" +stop-iteration-iterator@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz#f481ff70a548f6124d0312c3aa14cbfa7aa542ad" + integrity sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ== + dependencies: + es-errors "^1.3.0" + internal-slot "^1.1.0" + "string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -9004,25 +8303,6 @@ string.prototype.trim@^1.2.10: es-object-atoms "^1.0.0" has-property-descriptors "^1.0.2" -string.prototype.trim@^1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" - integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-abstract "^1.23.0" - es-object-atoms "^1.0.0" - -string.prototype.trimend@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" - integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - string.prototype.trimend@^1.0.9: version "1.0.9" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz#62e2731272cd285041b36596054e9f66569b6942" @@ -9064,9 +8344,9 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: ansi-regex "^5.0.1" strip-ansi@^7.0.1: - version "7.1.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" - integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + version "7.1.2" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba" + integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== dependencies: ansi-regex "^6.0.1" @@ -9075,18 +8355,17 @@ strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -strnum@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" - integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== +strnum@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/strnum/-/strnum-2.1.1.tgz#cf2a6e0cf903728b8b2c4b971b7e36b4e82d46ab" + integrity sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw== strtok3@^10.2.0: - version "10.2.2" - resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-10.2.2.tgz#a4c6d78d15db02c5eb20d92af3eedf81edaf09d2" - integrity sha512-Xt18+h4s7Z8xyZ0tmBoRmzxcop97R4BAh+dXouUDCYn+Em+1P3qpkUfI5ueWLT8ynC5hZ+q4iPEmGG1urvQGBg== + version "10.3.4" + resolved "https://registry.yarnpkg.com/strtok3/-/strtok3-10.3.4.tgz#793ebd0d59df276a085586134b73a406e60be9c1" + integrity sha512-KIy5nylvC5le1OdaaoCJ07L+8iQzJHGH6pWDuzS+d07Cu7n1MZ2x26P8ZKIWfbK02+XIL8Mp4RkWeqdUCrDMfg== dependencies: "@tokenizer/token" "^0.3.0" - peek-readable "^7.0.0" sudo-prompt@^9.2.1: version "9.2.1" @@ -9100,13 +8379,6 @@ sumchecker@^3.0.1: dependencies: debug "^4.1.0" -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -9136,13 +8408,24 @@ symbol-tree@^3.2.4: resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== -synckit@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.9.1.tgz#febbfbb6649979450131f64735aa3f6c14575c88" - integrity sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A== +sync-child-process@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/sync-child-process/-/sync-child-process-1.0.2.tgz#45e7c72e756d1243e80b547ea2e17957ab9e367f" + integrity sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA== dependencies: - "@pkgr/core" "^0.1.0" - tslib "^2.6.2" + sync-message-port "^1.0.0" + +sync-message-port@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/sync-message-port/-/sync-message-port-1.1.3.tgz#6055c565ee8c81d2f9ee5aae7db757e6d9088c0c" + integrity sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg== + +synckit@^0.11.7: + version "0.11.11" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.11.11.tgz#c0b619cf258a97faa209155d9cd1699b5c998cb0" + integrity sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw== + dependencies: + "@pkgr/core" "^0.2.9" tar@^6.0.5, tar@^6.1.11, tar@^6.1.12, tar@^6.2.1: version "6.2.1" @@ -9157,15 +8440,14 @@ tar@^6.0.5, tar@^6.1.11, tar@^6.1.12, tar@^6.2.1: yallist "^4.0.0" tar@^7.4.3: - version "7.4.3" - resolved "https://registry.yarnpkg.com/tar/-/tar-7.4.3.tgz#88bbe9286a3fcd900e94592cda7a22b192e80571" - integrity sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw== + version "7.5.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-7.5.1.tgz#750a8bd63b7c44c1848e7bf982260a083cf747c9" + integrity sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g== dependencies: "@isaacs/fs-minipass" "^4.0.0" chownr "^3.0.0" minipass "^7.1.2" - minizlib "^3.0.1" - mkdirp "^3.0.1" + minizlib "^3.1.0" yallist "^5.0.0" temp-file@^3.4.0: @@ -9208,22 +8490,22 @@ tiny-typed-emitter@^2.1.0: resolved "https://registry.yarnpkg.com/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz#b3b027fdd389ff81a152c8e847ee2f5be9fad7b5" integrity sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA== -tinyexec@^0.3.0: - version "0.3.1" - resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-0.3.1.tgz#0ab0daf93b43e2c211212396bdb836b468c97c98" - integrity sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ== +tinyexec@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-1.0.1.tgz#70c31ab7abbb4aea0a24f55d120e5990bfa1e0b1" + integrity sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw== -tldts-core@^6.1.78: - version "6.1.78" - resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.1.78.tgz#47b477d9742870daa01dbd5ff9a598a48379728c" - integrity sha512-jS0svNsB99jR6AJBmfmEWuKIgz91Haya91Z43PATaeHJ24BkMoNRb/jlaD37VYjb0mYf6gRL/HOnvS1zEnYBiw== +tldts-core@^6.1.86: + version "6.1.86" + resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.1.86.tgz#a93e6ed9d505cb54c542ce43feb14c73913265d8" + integrity sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA== tldts@^6.1.32: - version "6.1.78" - resolved "https://registry.yarnpkg.com/tldts/-/tldts-6.1.78.tgz#ee94576653a60d421ff94162c4e9060f2e62467b" - integrity sha512-fSgYrW0ITH0SR/CqKMXIruYIPpNu5aDgUp22UhYoSrnUQwc7SBqifEBFNce7AAcygUPBo6a/gbtcguWdmko4RQ== + version "6.1.86" + resolved "https://registry.yarnpkg.com/tldts/-/tldts-6.1.86.tgz#087e0555b31b9725ee48ca7e77edc56115cd82f7" + integrity sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ== dependencies: - tldts-core "^6.1.78" + tldts-core "^6.1.86" tmp-promise@^3.0.2: version "3.0.3" @@ -9233,14 +8515,9 @@ tmp-promise@^3.0.2: tmp "^0.2.0" tmp@^0.2.0: - version "0.2.3" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae" - integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + version "0.2.5" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.5.tgz#b06bcd23f0f3c8357b426891726d16015abfd8f8" + integrity sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow== to-regex-range@^5.0.1: version "5.0.1" @@ -9250,10 +8527,11 @@ to-regex-range@^5.0.1: is-number "^7.0.0" token-types@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/token-types/-/token-types-6.0.0.tgz#1ab26be1ef9c434853500c071acfe5c8dd6544a3" - integrity sha512-lbDrTLVsHhOMljPscd0yitpozq7Ga2M5Cvez5AjGg8GASBjtt6iERCAJ93yommPmz62fb45oFIXHEZ3u9bfJEA== + version "6.1.1" + resolved "https://registry.yarnpkg.com/token-types/-/token-types-6.1.1.tgz#85bd0ada82939b9178ecd5285881a538c4c00fdd" + integrity sha512-kh9LVIWH5CnL63Ipf0jhlBIy0UsrMj/NJDfpsy1SqOXlLKEVyXXYrnFxFT1yOOYVGBSApeVnjPw/sBz5BfEjAQ== dependencies: + "@borewit/text-codec" "^0.1.0" "@tokenizer/token" "^0.3.0" ieee754 "^1.2.1" @@ -9273,16 +8551,16 @@ tough-cookie@^4.1.4: url-parse "^1.5.3" tough-cookie@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-5.1.1.tgz#4641c1fdbf024927e29c5532edb7b6e5377ea1f2" - integrity sha512-Ek7HndSVkp10hmHP9V4qZO1u+pn1RU5sI0Fw+jCU3lyvuMZcgqsNgc6CmJJZyByK4Vm/qotGRJlfgAX8q+4JiA== + version "5.1.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-5.1.2.tgz#66d774b4a1d9e12dc75089725af3ac75ec31bed7" + integrity sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A== dependencies: tldts "^6.1.32" -tr46@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-5.0.0.tgz#3b46d583613ec7283020d79019f1335723801cec" - integrity sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g== +tr46@^5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-5.1.1.tgz#96ae867cddb8fdb64a49cc3059a8d428bcf238ca" + integrity sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw== dependencies: punycode "^2.3.1" @@ -9294,9 +8572,9 @@ truncate-utf8-bytes@^1.0.0: utf8-byte-length "^1.0.1" ts-api-utils@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" - integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== + version "1.4.3" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.4.3.tgz#bfc2215fe6528fecab2b0fba570a2e8a4263b064" + integrity sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw== ts-node@^10.9.2: version "10.9.2" @@ -9317,16 +8595,11 @@ ts-node@^10.9.2: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tslib@^2.0.0, tslib@^2.1.0, tslib@^2.4.0: +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0, tslib@^2.6.2: version "2.8.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== -tslib@^2.0.3, tslib@^2.6.2: - version "2.7.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.7.0.tgz#d9b40c5c40ab59e8738f297df3087bf1a2690c01" - integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== - type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -9349,15 +8622,6 @@ type-fest@^2.19.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== -typed-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" - integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== - dependencies: - call-bind "^1.0.7" - es-errors "^1.3.0" - is-typed-array "^1.1.13" - typed-array-buffer@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz#a72395450a4869ec033fd549371b47af3a2ee536" @@ -9367,17 +8631,6 @@ typed-array-buffer@^1.0.3: es-errors "^1.3.0" is-typed-array "^1.1.14" -typed-array-byte-length@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" - integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== - dependencies: - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" - has-proto "^1.0.3" - is-typed-array "^1.1.13" - typed-array-byte-length@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz#8407a04f7d78684f3d252aa1a143d2b77b4160ce" @@ -9389,18 +8642,6 @@ typed-array-byte-length@^1.0.3: has-proto "^1.2.0" is-typed-array "^1.1.14" -typed-array-byte-offset@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063" - integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== - dependencies: - available-typed-arrays "^1.0.7" - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" - has-proto "^1.0.3" - is-typed-array "^1.1.13" - typed-array-byte-offset@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz#ae3698b8ec91a8ab945016108aef00d5bff12355" @@ -9414,18 +8655,6 @@ typed-array-byte-offset@^1.0.4: is-typed-array "^1.1.15" reflect.getprototypeof "^1.0.9" -typed-array-length@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3" - integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== - dependencies: - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" - has-proto "^1.0.3" - is-typed-array "^1.1.13" - possible-typed-array-names "^1.0.0" - typed-array-length@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.7.tgz#ee4deff984b64be1e118b0de8c9c877d5ce73d3d" @@ -9438,15 +8667,20 @@ typed-array-length@^1.0.7: possible-typed-array-names "^1.0.0" reflect.getprototypeof "^1.0.6" +typescript@5.4.5: + version "5.4.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" + integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== + typescript@^3.9: version "3.9.10" resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8" integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q== typescript@^5.3.3, typescript@^5.4.3: - version "5.6.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.6.2.tgz#d1de67b6bef77c41823f822df8f0b3bcff60a5a0" - integrity sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw== + version "5.9.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" + integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== uc.micro@^2.0.0, uc.micro@^2.1.0: version "2.1.0" @@ -9461,19 +8695,9 @@ uint8-util@^2.2.2, uint8-util@^2.2.5: base64-arraybuffer "^1.0.2" uint8array-extras@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/uint8array-extras/-/uint8array-extras-1.4.0.tgz#e42a678a6dd335ec2d21661333ed42f44ae7cc74" - integrity sha512-ZPtzy0hu4cZjv3z5NW9gfKnNLjoz4y6uv4HlelAjDK7sY/xOkKZv9xK/WQpcsBB3jEybChz9DPC2U/+cusjJVQ== - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" + version "1.5.0" + resolved "https://registry.yarnpkg.com/uint8array-extras/-/uint8array-extras-1.5.0.tgz#10d2a85213de3ada304fea1c454f635c73839e86" + integrity sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A== unbox-primitive@^1.1.0: version "1.1.0" @@ -9485,16 +8709,16 @@ unbox-primitive@^1.1.0: has-symbols "^1.1.0" which-boxed-primitive "^1.1.1" -undici-types@~5.26.4: - version "5.26.5" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" - integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== - undici-types@~6.21.0: version "6.21.0" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== +undici-types@~7.14.0: + version "7.14.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.14.0.tgz#4c037b32ca4d7d62fae042174604341588bc0840" + integrity sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA== + unicorn-magic@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/unicorn-magic/-/unicorn-magic-0.1.0.tgz#1bb9a51c823aaf9d73a8bfcd3d1a23dde94b0ce4" @@ -9534,15 +8758,15 @@ untildify@^3.0.2: resolved "https://registry.yarnpkg.com/untildify/-/untildify-3.0.3.tgz#1e7b42b140bcfd922b22e70ca1265bfe3634c7c9" integrity sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA== -update-browserslist-db@^1.1.0, update-browserslist-db@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz#80846fba1d79e82547fb661f8d141e0945755fe5" - integrity sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A== +update-browserslist-db@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz#348377dd245216f9e7060ff50b15a1b740b75420" + integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw== dependencies: escalade "^3.2.0" - picocolors "^1.1.0" + picocolors "^1.1.1" -uri-js@^4.2.2, uri-js@^4.4.1: +uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== @@ -9572,20 +8796,15 @@ use-sidecar@^1.1.3: detect-node-es "^1.1.0" tslib "^2.0.0" -use-sync-external-store@^1.0.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz#c3b6390f3a30eba13200d2302dcdf1e7b57b2ef9" - integrity sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw== - use-sync-external-store@^1.4.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz#55122e2a3edd2a6c106174c27485e0fd59bcfca0" - integrity sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A== + version "1.6.0" + resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz#b174bfa65cb2b526732d9f2ac0a408027876f32d" + integrity sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w== user-agents@^1.1.387: - version "1.1.387" - resolved "https://registry.yarnpkg.com/user-agents/-/user-agents-1.1.387.tgz#afc69da00b50eee7ffa17724890e755a6672b99f" - integrity sha512-EQ1tx80ucECUrw+mY/lI4lVQTEN7nYflGpuLwqZS6vXw+pfzHMnhKPwZN9NiR+Mo9QxmDeNmk+2ZDEvInsxrxw== + version "1.1.669" + resolved "https://registry.yarnpkg.com/user-agents/-/user-agents-1.1.669.tgz#329b1c3f9fb9349f0b974a0b9cf6c0cd6d1d0c1c" + integrity sha512-pbIzG+AOqCaIpySKJ4IAm1l0VyE4jMnK4y1thV8lm8PYxI+7X5uWcppOK7zY79TCKKTAnJH3/4gaVIZHsjrmJA== dependencies: lodash.clonedeep "^4.5.0" @@ -9604,11 +8823,6 @@ uuid@^13.0.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-13.0.0.tgz#263dc341b19b4d755eb8fe36b78d95a6b65707e8" integrity sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w== -uuid@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" - integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== - v8-compile-cache-lib@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" @@ -9695,36 +8909,14 @@ whatwg-mimetype@^4.0.0: integrity sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg== whatwg-url@^14.0.0: - version "14.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-14.0.0.tgz#00baaa7fd198744910c4b1ef68378f2200e4ceb6" - integrity sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw== + version "14.2.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-14.2.0.tgz#4ee02d5d725155dae004f6ae95c73e7ef5d95663" + integrity sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw== dependencies: - tr46 "^5.0.0" + tr46 "^5.1.0" webidl-conversions "^7.0.0" -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-boxed-primitive@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.1.0.tgz#2d850d6c4ac37b95441a67890e19f3fda8b6c6d9" - integrity sha512-Ei7Miu/AXe2JJ4iNF5j/UphAgRoma4trE6PtisM09bPygb3egMH3YLW/befsWb1A1AxvNSFidOFTB18XtnIIng== - dependencies: - is-bigint "^1.1.0" - is-boolean-object "^1.2.0" - is-number-object "^1.1.0" - is-string "^1.1.0" - is-symbol "^1.1.0" - -which-boxed-primitive@^1.1.1: +which-boxed-primitive@^1.1.0, which-boxed-primitive@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz#d76ec27df7fa165f18d5808374a5fe23c29b176e" integrity sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA== @@ -9764,37 +8956,16 @@ which-collection@^1.0.2: is-weakmap "^2.0.2" is-weakset "^2.0.3" -which-typed-array@^1.1.14, which-typed-array@^1.1.15: - version "1.1.15" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" - integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== - dependencies: - available-typed-arrays "^1.0.7" - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.2" - -which-typed-array@^1.1.16: - version "1.1.16" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.16.tgz#db4db429c4706feca2f01677a144278e4a8c216b" - integrity sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ== - dependencies: - available-typed-arrays "^1.0.7" - call-bind "^1.0.7" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.2" - -which-typed-array@^1.1.18: - version "1.1.18" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.18.tgz#df2389ebf3fbb246a71390e90730a9edb6ce17ad" - integrity sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA== +which-typed-array@^1.1.16, which-typed-array@^1.1.19: + version "1.1.19" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.19.tgz#df03842e870b6b88e117524a4b364b6fc689f956" + integrity sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw== dependencies: available-typed-arrays "^1.0.7" call-bind "^1.0.8" - call-bound "^1.0.3" - for-each "^0.3.3" + call-bound "^1.0.4" + for-each "^0.3.5" + get-proto "^1.0.1" gopd "^1.2.0" has-tostringtag "^1.0.2" @@ -9852,15 +9023,10 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -ws@^8.18.0: - version "8.18.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" - integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== - -ws@^8.18.1: - version "8.18.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.1.tgz#ea131d3784e1dfdff91adb0a4a116b127515e3cb" - integrity sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w== +ws@^8.18.0, ws@^8.18.1: + version "8.18.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.3.tgz#b56b88abffde62791c639170400c93dcb0c95472" + integrity sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg== xml-name-validator@^5.0.0: version "5.0.0" @@ -9898,9 +9064,9 @@ yallist@^5.0.0: integrity sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw== yaml@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.6.1.tgz#42f2b1ba89203f374609572d5349fb8686500773" - integrity sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg== + version "2.8.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.8.1.tgz#1870aa02b631f7e8328b93f8bc574fac5d6c4d79" + integrity sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw== yargs-parser@^21.1.1: version "21.1.1" @@ -9939,14 +9105,14 @@ yocto-queue@^0.1.0: integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== yocto-queue@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.1.1.tgz#fef65ce3ac9f8a32ceac5a634f74e17e5b232110" - integrity sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g== + version "1.2.1" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.2.1.tgz#36d7c4739f775b3cbc28e6136e21aa057adec418" + integrity sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg== yup@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/yup/-/yup-1.5.0.tgz#1aaa5e453f04424094b9c8a0e5292e0ac2d97246" - integrity sha512-NJfBIHnp1QbqZwxcgl6irnDMIsb/7d1prNhFx02f1kp8h+orpi4xs3w90szNpOh68a/iHPdMsYvhZWoDmUvXBQ== + version "1.7.1" + resolved "https://registry.yarnpkg.com/yup/-/yup-1.7.1.tgz#4c47c6bb367df08d4bc597f8c4c4f5fc4277f6ab" + integrity sha512-GKHFX2nXul2/4Dtfxhozv701jLQHdf6J34YDh2cEkpqoo8le5Mg6/LrdseVLrFarmFygZTlfIhHx/QKfb/QWXw== dependencies: property-expr "^2.0.5" tiny-case "^1.0.3" @@ -9954,6 +9120,6 @@ yup@^1.5.0: type-fest "^2.19.0" zod@^3.24.1: - version "3.24.1" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.24.1.tgz#27445c912738c8ad1e9de1bea0359fa44d9d35ee" - integrity sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A== + version "3.25.76" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.25.76.tgz#26841c3f6fd22a6a2760e7ccb719179768471e34" + integrity sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ== From c60753547ca349df735400d342c8cf923422812f Mon Sep 17 00:00:00 2001 From: Chubby Granny Chaser Date: Tue, 14 Oct 2025 13:18:42 +0100 Subject: [PATCH 02/18] feat: removing dexie --- .../achievement-notification.scss | 3 +- .../game-details/modals/edit-game-modal.scss | 7 +-- .../game-details/modals/repacks-modal.tsx | 45 +++++++++++-------- .../profile-content/profile-animations.ts | 18 ++++---- .../src/pages/settings/settings-debrid.tsx | 12 ++--- 5 files changed, 45 insertions(+), 40 deletions(-) diff --git a/src/renderer/src/components/achievements/notification/achievement-notification.scss b/src/renderer/src/components/achievements/notification/achievement-notification.scss index 0a41782e..090c91c4 100644 --- a/src/renderer/src/components/achievements/notification/achievement-notification.scss +++ b/src/renderer/src/components/achievements/notification/achievement-notification.scss @@ -302,7 +302,8 @@ $margin-bottom: 28px; } &--rare &__trophy-overlay { - background: linear-gradient( + background: + linear-gradient( 118deg, #e8ad15 18.96%, #d5900f 26.41%, diff --git a/src/renderer/src/pages/game-details/modals/edit-game-modal.scss b/src/renderer/src/pages/game-details/modals/edit-game-modal.scss index 5400df07..33558601 100644 --- a/src/renderer/src/pages/game-details/modals/edit-game-modal.scss +++ b/src/renderer/src/pages/game-details/modals/edit-game-modal.scss @@ -55,11 +55,8 @@ border: 1px solid var(--color-border); border-radius: 8px; background-color: var(--color-background-secondary); - background-image: linear-gradient( - 45deg, - rgba(255, 255, 255, 0.1) 25%, - transparent 25% - ), + background-image: + linear-gradient(45deg, rgba(255, 255, 255, 0.1) 25%, transparent 25%), linear-gradient(-45deg, rgba(255, 255, 255, 0.1) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, rgba(255, 255, 255, 0.1) 75%), linear-gradient(-45deg, transparent 75%, rgba(255, 255, 255, 0.1) 75%); diff --git a/src/renderer/src/pages/game-details/modals/repacks-modal.tsx b/src/renderer/src/pages/game-details/modals/repacks-modal.tsx index 0c4c2d9e..7551a31e 100644 --- a/src/renderer/src/pages/game-details/modals/repacks-modal.tsx +++ b/src/renderer/src/pages/game-details/modals/repacks-modal.tsx @@ -210,25 +210,32 @@ export function RepacksModal({ className={`repacks-modal__download-sources ${isFilterDrawerOpen ? "repacks-modal__download-sources--open" : ""}`} >
- {downloadSources.map((source) => { - const label = source.name || source.url; - const truncatedLabel = - label.length > 16 ? label.substring(0, 16) + "..." : label; - return ( -
- toggleFingerprint(source.fingerprint)} - /> -
- ); - })} + {downloadSources + .filter( + ( + source + ): source is DownloadSource & { fingerprint: string } => + source.fingerprint !== undefined + ) + .map((source) => { + const label = source.name || source.url; + const truncatedLabel = + label.length > 16 ? label.substring(0, 16) + "..." : label; + return ( +
+ toggleFingerprint(source.fingerprint)} + /> +
+ ); + })}
diff --git a/src/renderer/src/pages/profile/profile-content/profile-animations.ts b/src/renderer/src/pages/profile/profile-content/profile-animations.ts index f9ac0593..d89f4323 100644 --- a/src/renderer/src/pages/profile/profile-content/profile-animations.ts +++ b/src/renderer/src/pages/profile/profile-content/profile-animations.ts @@ -5,7 +5,7 @@ export const sectionVariants = { height: 0, transition: { duration: 0.3, - ease: [0.25, 0.1, 0.25, 1], + ease: [0.25, 0.1, 0.25, 1] as const, opacity: { duration: 0.1 }, y: { duration: 0.1 }, height: { duration: 0.2 }, @@ -17,13 +17,13 @@ export const sectionVariants = { height: "auto", transition: { duration: 0.3, - ease: [0.25, 0.1, 0.25, 1], + ease: [0.25, 0.1, 0.25, 1] as const, opacity: { duration: 0.2, delay: 0.1 }, y: { duration: 0.3 }, height: { duration: 0.3 }, }, }, -}; +} as const; export const gameCardVariants = { hidden: { @@ -37,7 +37,7 @@ export const gameCardVariants = { scale: 1, transition: { duration: 0.4, - ease: [0.25, 0.1, 0.25, 1], + ease: [0.25, 0.1, 0.25, 1] as const, }, }, exit: { @@ -46,10 +46,10 @@ export const gameCardVariants = { scale: 0.95, transition: { duration: 0.3, - ease: [0.25, 0.1, 0.25, 1], + ease: [0.25, 0.1, 0.25, 1] as const, }, }, -}; +} as const; export const gameGridVariants = { hidden: { @@ -76,16 +76,16 @@ export const chevronVariants = { rotate: 0, transition: { duration: 0.2, - ease: "easeInOut", + ease: "easeInOut" as const, }, }, expanded: { rotate: 90, transition: { duration: 0.2, - ease: "easeInOut", + ease: "easeInOut" as const, }, }, -}; +} as const; export const GAME_STATS_ANIMATION_DURATION_IN_MS = 3500; diff --git a/src/renderer/src/pages/settings/settings-debrid.tsx b/src/renderer/src/pages/settings/settings-debrid.tsx index 4bb7d276..f4ac183a 100644 --- a/src/renderer/src/pages/settings/settings-debrid.tsx +++ b/src/renderer/src/pages/settings/settings-debrid.tsx @@ -21,7 +21,7 @@ const sectionVariants = { height: 0, transition: { duration: 0.3, - ease: [0.25, 0.1, 0.25, 1], + ease: [0.25, 0.1, 0.25, 1] as const, opacity: { duration: 0.1 }, y: { duration: 0.1 }, height: { duration: 0.2 }, @@ -33,30 +33,30 @@ const sectionVariants = { height: "auto", transition: { duration: 0.3, - ease: [0.25, 0.1, 0.25, 1], + ease: [0.25, 0.1, 0.25, 1] as const, opacity: { duration: 0.2, delay: 0.1 }, y: { duration: 0.3 }, height: { duration: 0.3 }, }, }, -}; +} as const; const chevronVariants = { collapsed: { rotate: 0, transition: { duration: 0.2, - ease: "easeInOut", + ease: "easeInOut" as const, }, }, expanded: { rotate: 90, transition: { duration: 0.2, - ease: "easeInOut", + ease: "easeInOut" as const, }, }, -}; +} as const; export function SettingsDebrid() { const { t } = useTranslation("settings"); From bfa2fd6166c499cd25dadc971f6cee45a468e411 Mon Sep 17 00:00:00 2001 From: Chubby Granny Chaser Date: Tue, 14 Oct 2025 14:52:47 +0100 Subject: [PATCH 03/18] feat: improving download source import code --- src/main/events/download-sources/helpers.ts | 113 +++++++++++++++--- .../sync-download-sources-from-api.ts | 13 +- .../download-sources/sync-download-sources.ts | 78 +++++++++--- 3 files changed, 162 insertions(+), 42 deletions(-) diff --git a/src/main/events/download-sources/helpers.ts b/src/main/events/download-sources/helpers.ts index 7bd8023c..b0c6841d 100644 --- a/src/main/events/download-sources/helpers.ts +++ b/src/main/events/download-sources/helpers.ts @@ -16,6 +16,8 @@ const downloadSourceSchema = z.object({ }); type SteamGamesByLetter = Record; +type FormattedSteamGame = { id: string; name: string; formattedName: string }; +type FormattedSteamGamesByLetter = Record; const formatName = (name: string) => { return name @@ -29,8 +31,48 @@ const formatRepackName = (name: string) => { return formatName(name.replace("[DL]", "")); }; +interface DownloadSource { + id: number; + url: string; + name: string; + etag: string | null; + status: number; + downloadCount: number; + objectIds: string[]; + fingerprint?: string; + createdAt: Date; + updatedAt: Date; +} + +let downloadSourcesCache: Map | null = null; +let downloadSourcesCacheTime = 0; +const CACHE_TTL = 5000; + +const getDownloadSourcesMap = async (): Promise< + Map +> => { + const now = Date.now(); + if (downloadSourcesCache && now - downloadSourcesCacheTime < CACHE_TTL) { + return downloadSourcesCache; + } + + const map = new Map(); + for await (const [key, source] of downloadSourcesSublevel.iterator()) { + map.set(key, source); + } + + downloadSourcesCache = map; + downloadSourcesCacheTime = now; + return map; +}; + +export const invalidateDownloadSourcesCache = () => { + downloadSourcesCache = null; +}; + export const checkUrlExists = async (url: string): Promise => { - for await (const [, source] of downloadSourcesSublevel.iterator()) { + const sources = await getDownloadSourcesMap(); + for (const source of sources.values()) { if (source.url === url) { return true; } @@ -38,12 +80,31 @@ export const checkUrlExists = async (url: string): Promise => { return false; }; -const getSteamGames = async () => { +let steamGamesCache: FormattedSteamGamesByLetter | null = null; +let steamGamesCacheTime = 0; +const STEAM_GAMES_CACHE_TTL = 300000; + +const getSteamGames = async (): Promise => { + const now = Date.now(); + if (steamGamesCache && now - steamGamesCacheTime < STEAM_GAMES_CACHE_TTL) { + return steamGamesCache; + } + const response = await axios.get( `${import.meta.env.MAIN_VITE_EXTERNAL_RESOURCES_URL}/steam-games-by-letter.json` ); - return response.data; + const formattedData: FormattedSteamGamesByLetter = {}; + for (const [letter, games] of Object.entries(response.data)) { + formattedData[letter] = games.map((game) => ({ + ...game, + formattedName: formatName(game.name), + })); + } + + steamGamesCache = formattedData; + steamGamesCacheTime = now; + return formattedData; }; type SublevelIterator = AsyncIterable<[string, { id: number }]>; @@ -52,33 +113,61 @@ interface SublevelWithId { iterator: () => SublevelIterator; } +let maxRepackId: number | null = null; +let maxDownloadSourceId: number | null = null; + const getNextId = async (sublevel: SublevelWithId): Promise => { + const isRepackSublevel = sublevel === repacksSublevel; + const isDownloadSourceSublevel = sublevel === downloadSourcesSublevel; + + if (isRepackSublevel && maxRepackId !== null) { + return ++maxRepackId; + } + + if (isDownloadSourceSublevel && maxDownloadSourceId !== null) { + return ++maxDownloadSourceId; + } + let maxId = 0; for await (const [, value] of sublevel.iterator()) { if (value.id > maxId) { maxId = value.id; } } + + if (isRepackSublevel) { + maxRepackId = maxId; + } else if (isDownloadSourceSublevel) { + maxDownloadSourceId = maxId; + } + return maxId + 1; }; +export const invalidateIdCaches = () => { + maxRepackId = null; + maxDownloadSourceId = null; +}; + const addNewDownloads = async ( downloadSource: { id: number; name: string }, downloads: z.infer["downloads"], - steamGames: SteamGamesByLetter + steamGames: FormattedSteamGamesByLetter ) => { const now = new Date(); const objectIdsOnSource = new Set(); let nextRepackId = await getNextId(repacksSublevel); + const batch = repacksSublevel.batch(); + for (const download of downloads) { const formattedTitle = formatRepackName(download.title); const [firstLetter] = formattedTitle; const games = steamGames[firstLetter] || []; const gamesInSteam = games.filter((game) => - formattedTitle.startsWith(formatName(game.name)) + formattedTitle.startsWith(game.formattedName) ); if (gamesInSteam.length === 0) continue; @@ -100,9 +189,11 @@ const addNewDownloads = async ( updatedAt: now, }; - await repacksSublevel.put(`${repack.id}`, repack); + batch.put(`${repack.id}`, repack); } + await batch.write(); + const existingSource = await downloadSourcesSublevel.get( `${downloadSource.id}` ); @@ -134,14 +225,6 @@ export const importDownloadSourceToLocal = async ( const now = new Date(); - const urlExistsBeforeInsert = await checkUrlExists(url); - if (urlExistsBeforeInsert) { - if (throwOnDuplicate) { - throw new Error("Download source with this URL already exists"); - } - return null; - } - const nextId = await getNextId(downloadSourcesSublevel); const downloadSource = { @@ -158,6 +241,8 @@ export const importDownloadSourceToLocal = async ( await downloadSourcesSublevel.put(`${downloadSource.id}`, downloadSource); + invalidateDownloadSourcesCache(); + const objectIds = await addNewDownloads( downloadSource, response.data.downloads, diff --git a/src/main/events/download-sources/sync-download-sources-from-api.ts b/src/main/events/download-sources/sync-download-sources-from-api.ts index 21b5a097..23769839 100644 --- a/src/main/events/download-sources/sync-download-sources-from-api.ts +++ b/src/main/events/download-sources/sync-download-sources-from-api.ts @@ -1,6 +1,5 @@ import { HydraApi } from "@main/services"; -import { downloadSourcesSublevel } from "@main/level"; -import { importDownloadSourceToLocal } from "./helpers"; +import { importDownloadSourceToLocal, checkUrlExists } from "./helpers"; export const syncDownloadSourcesFromApi = async () => { try { @@ -8,15 +7,9 @@ export const syncDownloadSourcesFromApi = async () => { { url: string; createdAt: string; updatedAt: string }[] >("/profile/download-sources"); - const localSources: { url: string }[] = []; - for await (const [, source] of downloadSourcesSublevel.iterator()) { - localSources.push(source); - } - - const localUrls = new Set(localSources.map((s) => s.url)); - for (const apiSource of apiSources) { - if (!localUrls.has(apiSource.url)) { + const exists = await checkUrlExists(apiSource.url); + if (!exists) { await importDownloadSourceToLocal(apiSource.url, false); } } diff --git a/src/main/events/download-sources/sync-download-sources.ts b/src/main/events/download-sources/sync-download-sources.ts index 8611aca9..19ab8079 100644 --- a/src/main/events/download-sources/sync-download-sources.ts +++ b/src/main/events/download-sources/sync-download-sources.ts @@ -3,6 +3,11 @@ import axios, { AxiosError } from "axios"; import { z } from "zod"; import { downloadSourcesSublevel, repacksSublevel } from "@main/level"; import { DownloadSourceStatus } from "@shared"; +import { + checkUrlExists, + invalidateDownloadSourcesCache, + invalidateIdCaches, +} from "./helpers"; const downloadSourceSchema = z.object({ name: z.string().max(255), @@ -17,6 +22,8 @@ const downloadSourceSchema = z.object({ }); type SteamGamesByLetter = Record; +type FormattedSteamGame = { id: string; name: string; formattedName: string }; +type FormattedSteamGamesByLetter = Record; const formatName = (name: string) => { return name @@ -30,21 +37,31 @@ const formatRepackName = (name: string) => { return formatName(name.replace("[DL]", "")); }; -const checkUrlExists = async (url: string): Promise => { - for await (const [, source] of downloadSourcesSublevel.iterator()) { - if (source.url === url) { - return true; - } - } - return false; -}; +let steamGamesCache: FormattedSteamGamesByLetter | null = null; +let steamGamesCacheTime = 0; +const STEAM_GAMES_CACHE_TTL = 300000; + +const getSteamGames = async (): Promise => { + const now = Date.now(); + if (steamGamesCache && now - steamGamesCacheTime < STEAM_GAMES_CACHE_TTL) { + return steamGamesCache; + } -const getSteamGames = async () => { const response = await axios.get( `${import.meta.env.MAIN_VITE_EXTERNAL_RESOURCES_URL}/steam-games-by-letter.json` ); - return response.data; + const formattedData: FormattedSteamGamesByLetter = {}; + for (const [letter, games] of Object.entries(response.data)) { + formattedData[letter] = games.map((game) => ({ + ...game, + formattedName: formatName(game.name), + })); + } + + steamGamesCache = formattedData; + steamGamesCacheTime = now; + return formattedData; }; type SublevelIterator = AsyncIterable<[string, { id: number }]>; @@ -53,33 +70,56 @@ interface SublevelWithId { iterator: () => SublevelIterator; } +let maxRepackId: number | null = null; +let maxDownloadSourceId: number | null = null; + const getNextId = async (sublevel: SublevelWithId): Promise => { + const isRepackSublevel = sublevel === repacksSublevel; + const isDownloadSourceSublevel = sublevel === downloadSourcesSublevel; + + if (isRepackSublevel && maxRepackId !== null) { + return ++maxRepackId; + } + + if (isDownloadSourceSublevel && maxDownloadSourceId !== null) { + return ++maxDownloadSourceId; + } + let maxId = 0; for await (const [, value] of sublevel.iterator()) { if (value.id > maxId) { maxId = value.id; } } + + if (isRepackSublevel) { + maxRepackId = maxId; + } else if (isDownloadSourceSublevel) { + maxDownloadSourceId = maxId; + } + return maxId + 1; }; const addNewDownloads = async ( downloadSource: { id: number; name: string }, downloads: z.infer["downloads"], - steamGames: SteamGamesByLetter + steamGames: FormattedSteamGamesByLetter ) => { const now = new Date(); const objectIdsOnSource = new Set(); let nextRepackId = await getNextId(repacksSublevel); + const batch = repacksSublevel.batch(); + for (const download of downloads) { const formattedTitle = formatRepackName(download.title); const [firstLetter] = formattedTitle; const games = steamGames[firstLetter] || []; const gamesInSteam = games.filter((game) => - formattedTitle.startsWith(formatName(game.name)) + formattedTitle.startsWith(game.formattedName) ); if (gamesInSteam.length === 0) continue; @@ -101,9 +141,11 @@ const addNewDownloads = async ( updatedAt: now, }; - await repacksSublevel.put(`${repack.id}`, repack); + batch.put(`${repack.id}`, repack); } + await batch.write(); + const existingSource = await downloadSourcesSublevel.get( `${downloadSource.id}` ); @@ -131,6 +173,9 @@ const deleteDownloadSource = async (id: number) => { await batch.write(); await downloadSourcesSublevel.del(`${id}`); + + invalidateDownloadSourcesCache(); + invalidateIdCaches(); }; const importDownloadSource = async (url: string) => { @@ -145,11 +190,6 @@ const importDownloadSource = async (url: string) => { const now = new Date(); - const urlExistsBeforeInsert = await checkUrlExists(url); - if (urlExistsBeforeInsert) { - return; - } - const nextId = await getNextId(downloadSourcesSublevel); const downloadSource = { @@ -166,6 +206,8 @@ const importDownloadSource = async (url: string) => { await downloadSourcesSublevel.put(`${downloadSource.id}`, downloadSource); + invalidateDownloadSourcesCache(); + await addNewDownloads(downloadSource, response.data.downloads, steamGames); }; From aba206452fc0f81d303feb456668147ca4634c30 Mon Sep 17 00:00:00 2001 From: Chubby Granny Chaser Date: Tue, 14 Oct 2025 14:56:47 +0100 Subject: [PATCH 04/18] feat: improving gallery slider --- .../game-details/gallery-slider/gallery-slider.scss | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/renderer/src/pages/game-details/gallery-slider/gallery-slider.scss b/src/renderer/src/pages/game-details/gallery-slider/gallery-slider.scss index d1ae2481..6f9e753c 100644 --- a/src/renderer/src/pages/game-details/gallery-slider/gallery-slider.scss +++ b/src/renderer/src/pages/game-details/gallery-slider/gallery-slider.scss @@ -25,11 +25,6 @@ overflow: hidden; border-radius: 8px; - @media (min-width: 1024px) { - width: 80%; - max-height: 400px; - } - @media (min-width: 1280px) { width: 60%; max-height: 500px; @@ -72,10 +67,6 @@ overflow-y: hidden; gap: calc(globals.$spacing-unit / 2); - @media (min-width: 1024px) { - width: 80%; - } - @media (min-width: 1280px) { width: 60%; } From 311555386e87a0e9131c3b014cac90a9055147fb Mon Sep 17 00:00:00 2001 From: Chubby Granny Chaser Date: Tue, 14 Oct 2025 15:49:02 +0100 Subject: [PATCH 05/18] fix: fixing bug with sources --- .../delete-all-download-sources.ts | 5 + .../delete-download-source.ts | 5 + src/main/events/download-sources/helpers.ts | 68 +++++++- .../download-sources/sync-download-sources.ts | 149 ++++++------------ 4 files changed, 122 insertions(+), 105 deletions(-) diff --git a/src/main/events/download-sources/delete-all-download-sources.ts b/src/main/events/download-sources/delete-all-download-sources.ts index ec333e20..cdb781b7 100644 --- a/src/main/events/download-sources/delete-all-download-sources.ts +++ b/src/main/events/download-sources/delete-all-download-sources.ts @@ -1,10 +1,15 @@ import { registerEvent } from "../register-event"; import { downloadSourcesSublevel, repacksSublevel } from "@main/level"; +import { invalidateDownloadSourcesCache, invalidateIdCaches } from "./helpers"; const deleteAllDownloadSources = async ( _event: Electron.IpcMainInvokeEvent ) => { await Promise.all([repacksSublevel.clear(), downloadSourcesSublevel.clear()]); + + // Invalidate caches after clearing all sources + invalidateDownloadSourcesCache(); + invalidateIdCaches(); }; registerEvent("deleteAllDownloadSources", deleteAllDownloadSources); diff --git a/src/main/events/download-sources/delete-download-source.ts b/src/main/events/download-sources/delete-download-source.ts index d6fc4fda..72de8746 100644 --- a/src/main/events/download-sources/delete-download-source.ts +++ b/src/main/events/download-sources/delete-download-source.ts @@ -1,5 +1,6 @@ import { registerEvent } from "../register-event"; import { downloadSourcesSublevel, repacksSublevel } from "@main/level"; +import { invalidateDownloadSourcesCache, invalidateIdCaches } from "./helpers"; const deleteDownloadSource = async ( _event: Electron.IpcMainInvokeEvent, @@ -20,6 +21,10 @@ const deleteDownloadSource = async ( await batch.write(); await downloadSourcesSublevel.del(`${id}`); + + // Invalidate caches after deletion + invalidateDownloadSourcesCache(); + invalidateIdCaches(); }; registerEvent("deleteDownloadSource", deleteDownloadSource); diff --git a/src/main/events/download-sources/helpers.ts b/src/main/events/download-sources/helpers.ts index b0c6841d..95fdebe3 100644 --- a/src/main/events/download-sources/helpers.ts +++ b/src/main/events/download-sources/helpers.ts @@ -163,19 +163,52 @@ const addNewDownloads = async ( for (const download of downloads) { const formattedTitle = formatRepackName(download.title); - const [firstLetter] = formattedTitle; - const games = steamGames[firstLetter] || []; + let gamesInSteam: FormattedSteamGame[] = []; - const gamesInSteam = games.filter((game) => - formattedTitle.startsWith(game.formattedName) - ); + // Only try to match if we have a valid formatted title + if (formattedTitle && formattedTitle.length > 0) { + const [firstLetter] = formattedTitle; + const games = steamGames[firstLetter] || []; - if (gamesInSteam.length === 0) continue; + // Try exact prefix match first + gamesInSteam = games.filter((game) => + formattedTitle.startsWith(game.formattedName) + ); + // If no exact prefix match, try contains match (more lenient) + if (gamesInSteam.length === 0) { + gamesInSteam = games.filter( + (game) => + formattedTitle.includes(game.formattedName) || + game.formattedName.includes(formattedTitle) + ); + } + + // If still no match, try checking all letters (not just first letter) + // This helps with repacks that use abbreviations or alternate naming + if (gamesInSteam.length === 0) { + for (const letter of Object.keys(steamGames)) { + const letterGames = steamGames[letter] || []; + const matches = letterGames.filter( + (game) => + formattedTitle.includes(game.formattedName) || + game.formattedName.includes(formattedTitle) + ); + if (matches.length > 0) { + gamesInSteam = matches; + break; + } + } + } + } + + // Add matched game IDs to source tracking for (const game of gamesInSteam) { objectIdsOnSource.add(String(game.id)); } + // Create the repack even if no games matched + // This ensures all repacks from sources are imported const repack = { id: nextRepackId++, objectIds: gamesInSteam.map((game) => String(game.id)), @@ -254,3 +287,26 @@ export const importDownloadSourceToLocal = async ( objectIds, }; }; + +export const updateDownloadSourcePreservingTimestamp = async ( + existingSource: DownloadSource, + url: string +) => { + const response = await axios.get>(url); + + const updatedSource = { + ...existingSource, + name: response.data.name, + etag: response.headers["etag"] || null, + status: DownloadSourceStatus.UpToDate, + downloadCount: response.data.downloads.length, + updatedAt: new Date(), + // Preserve the original createdAt timestamp + }; + + await downloadSourcesSublevel.put(`${existingSource.id}`, updatedSource); + + invalidateDownloadSourcesCache(); + + return updatedSource; +}; diff --git a/src/main/events/download-sources/sync-download-sources.ts b/src/main/events/download-sources/sync-download-sources.ts index 19ab8079..4e3837ba 100644 --- a/src/main/events/download-sources/sync-download-sources.ts +++ b/src/main/events/download-sources/sync-download-sources.ts @@ -3,11 +3,7 @@ import axios, { AxiosError } from "axios"; import { z } from "zod"; import { downloadSourcesSublevel, repacksSublevel } from "@main/level"; import { DownloadSourceStatus } from "@shared"; -import { - checkUrlExists, - invalidateDownloadSourcesCache, - invalidateIdCaches, -} from "./helpers"; +import { invalidateDownloadSourcesCache } from "./helpers"; const downloadSourceSchema = z.object({ name: z.string().max(255), @@ -157,60 +153,6 @@ const addNewDownloads = async ( } }; -const deleteDownloadSource = async (id: number) => { - const repacksToDelete: string[] = []; - - for await (const [key, repack] of repacksSublevel.iterator()) { - if (repack.downloadSourceId === id) { - repacksToDelete.push(key); - } - } - - const batch = repacksSublevel.batch(); - for (const key of repacksToDelete) { - batch.del(key); - } - await batch.write(); - - await downloadSourcesSublevel.del(`${id}`); - - invalidateDownloadSourcesCache(); - invalidateIdCaches(); -}; - -const importDownloadSource = async (url: string) => { - const urlExists = await checkUrlExists(url); - if (urlExists) { - return; - } - - const response = await axios.get>(url); - - const steamGames = await getSteamGames(); - - const now = new Date(); - - const nextId = await getNextId(downloadSourcesSublevel); - - const downloadSource = { - id: nextId, - url, - name: response.data.name, - etag: response.headers["etag"] || null, - status: DownloadSourceStatus.UpToDate, - downloadCount: response.data.downloads.length, - objectIds: [], - createdAt: now, - updatedAt: now, - }; - - await downloadSourcesSublevel.put(`${downloadSource.id}`, downloadSource); - - invalidateDownloadSourcesCache(); - - await addNewDownloads(downloadSource, response.data.downloads, steamGames); -}; - const syncDownloadSources = async ( _event: Electron.IpcMainInvokeEvent ): Promise => { @@ -249,57 +191,66 @@ const syncDownloadSources = async ( existingRepacks.push(repack); } - if (downloadSources.some((source) => !source.fingerprint)) { - await Promise.all( - downloadSources.map(async (source) => { - await deleteDownloadSource(source.id); - await importDownloadSource(source.url); - }) - ); - } else { - for (const downloadSource of downloadSources) { - const headers: Record = {}; + // Handle sources with missing fingerprints individually, don't delete all sources + const sourcesWithFingerprints = downloadSources.filter( + (source) => source.fingerprint + ); + const sourcesWithoutFingerprints = downloadSources.filter( + (source) => !source.fingerprint + ); - if (downloadSource.etag) { - headers["If-None-Match"] = downloadSource.etag; - } + // For sources without fingerprints, just continue with normal sync + // They will get fingerprints updated later by updateMissingFingerprints + const allSourcesToSync = [ + ...sourcesWithFingerprints, + ...sourcesWithoutFingerprints, + ]; - try { - const response = await axios.get(downloadSource.url, { - headers, - }); + for (const downloadSource of allSourcesToSync) { + const headers: Record = {}; - const source = downloadSourceSchema.parse(response.data); - const steamGames = await getSteamGames(); + if (downloadSource.etag) { + headers["If-None-Match"] = downloadSource.etag; + } - const repacks = source.downloads.filter( - (download) => - !existingRepacks.some((repack) => repack.title === download.title) - ); + try { + const response = await axios.get(downloadSource.url, { + headers, + }); - await downloadSourcesSublevel.put(`${downloadSource.id}`, { - ...downloadSource, - etag: response.headers["etag"] || null, - downloadCount: source.downloads.length, - status: DownloadSourceStatus.UpToDate, - }); + const source = downloadSourceSchema.parse(response.data); + const steamGames = await getSteamGames(); - await addNewDownloads(downloadSource, repacks, steamGames); + const repacks = source.downloads.filter( + (download) => + !existingRepacks.some((repack) => repack.title === download.title) + ); - newRepacksCount += repacks.length; - } catch (err: unknown) { - const isNotModified = (err as AxiosError).response?.status === 304; + await downloadSourcesSublevel.put(`${downloadSource.id}`, { + ...downloadSource, + etag: response.headers["etag"] || null, + downloadCount: source.downloads.length, + status: DownloadSourceStatus.UpToDate, + }); - await downloadSourcesSublevel.put(`${downloadSource.id}`, { - ...downloadSource, - status: isNotModified - ? DownloadSourceStatus.UpToDate - : DownloadSourceStatus.Errored, - }); - } + await addNewDownloads(downloadSource, repacks, steamGames); + + newRepacksCount += repacks.length; + } catch (err: unknown) { + const isNotModified = (err as AxiosError).response?.status === 304; + + await downloadSourcesSublevel.put(`${downloadSource.id}`, { + ...downloadSource, + status: isNotModified + ? DownloadSourceStatus.UpToDate + : DownloadSourceStatus.Errored, + }); } } + // Invalidate cache after all sync operations complete + invalidateDownloadSourcesCache(); + return newRepacksCount; } catch (err) { return -1; From 41227b125e18f94e0d09840fc9199dc2a8081725 Mon Sep 17 00:00:00 2001 From: Chubby Granny Chaser Date: Tue, 14 Oct 2025 17:42:59 +0100 Subject: [PATCH 06/18] feat: improving performance on sources --- .../download-sources/add-download-source.ts | 57 ++++++++++++++++++- src/main/events/download-sources/helpers.ts | 3 + .../download-sources/sync-download-sources.ts | 50 +++++++++++++--- 3 files changed, 100 insertions(+), 10 deletions(-) diff --git a/src/main/events/download-sources/add-download-source.ts b/src/main/events/download-sources/add-download-source.ts index 81d40cd7..801b0635 100644 --- a/src/main/events/download-sources/add-download-source.ts +++ b/src/main/events/download-sources/add-download-source.ts @@ -1,7 +1,10 @@ import { registerEvent } from "../register-event"; -import { downloadSourcesSublevel } from "@main/level"; +import { downloadSourcesSublevel, repacksSublevel } from "@main/level"; import { HydraApi } from "@main/services"; -import { importDownloadSourceToLocal } from "./helpers"; +import { + importDownloadSourceToLocal, + invalidateDownloadSourcesCache, +} from "./helpers"; const addDownloadSource = async ( _event: Electron.IpcMainInvokeEvent, @@ -12,6 +15,28 @@ const addDownloadSource = async ( throw new Error("Failed to import download source"); } + // Verify that repacks were actually written to the database (read-after-write) + // This ensures all async operations are complete before proceeding + let repackCount = 0; + const repackIds: number[] = []; + for await (const [, repack] of repacksSublevel.iterator()) { + if (repack.downloadSourceId === result.id) { + repackCount++; + repackIds.push(repack.id); + } + } + + // Log for debugging - helps identify if repacks are being created + console.log( + `✅ Download source ${result.id} (${result.name}) created with ${repackCount} repacks` + ); + console.log( + ` Repack IDs: [${repackIds.slice(0, 5).join(", ")}${repackIds.length > 5 ? "..." : ""}]` + ); + console.log( + ` Object IDs: [${result.objectIds.slice(0, 5).join(", ")}${result.objectIds.length > 5 ? "..." : ""}]` + ); + await HydraApi.post("/profile/download-sources", { urls: [url], }); @@ -24,6 +49,7 @@ const addDownloadSource = async ( { needsAuth: false } ); + // Update the source with fingerprint const updatedSource = await downloadSourcesSublevel.get(`${result.id}`); if (updatedSource) { await downloadSourcesSublevel.put(`${result.id}`, { @@ -33,6 +59,33 @@ const addDownloadSource = async ( }); } + // Final verification: ensure the source with fingerprint is persisted + const finalSource = await downloadSourcesSublevel.get(`${result.id}`); + if (!finalSource || !finalSource.fingerprint) { + throw new Error("Failed to persist download source with fingerprint"); + } + + // Verify repacks still exist after fingerprint update + let finalRepackCount = 0; + for await (const [, repack] of repacksSublevel.iterator()) { + if (repack.downloadSourceId === result.id) { + finalRepackCount++; + } + } + + if (finalRepackCount !== repackCount) { + console.warn( + `⚠️ Repack count mismatch! Before: ${repackCount}, After: ${finalRepackCount}` + ); + } else { + console.log( + `✅ Final verification passed: ${finalRepackCount} repacks confirmed` + ); + } + + // Invalidate cache to ensure fresh data on next read + invalidateDownloadSourcesCache(); + return { ...result, fingerprint, diff --git a/src/main/events/download-sources/helpers.ts b/src/main/events/download-sources/helpers.ts index 95fdebe3..7f346fc0 100644 --- a/src/main/events/download-sources/helpers.ts +++ b/src/main/events/download-sources/helpers.ts @@ -282,6 +282,9 @@ export const importDownloadSourceToLocal = async ( steamGames ); + // Invalidate ID caches after creating new repacks to prevent ID collisions + invalidateIdCaches(); + return { ...downloadSource, objectIds, diff --git a/src/main/events/download-sources/sync-download-sources.ts b/src/main/events/download-sources/sync-download-sources.ts index 4e3837ba..b567ca63 100644 --- a/src/main/events/download-sources/sync-download-sources.ts +++ b/src/main/events/download-sources/sync-download-sources.ts @@ -3,7 +3,7 @@ import axios, { AxiosError } from "axios"; import { z } from "zod"; import { downloadSourcesSublevel, repacksSublevel } from "@main/level"; import { DownloadSourceStatus } from "@shared"; -import { invalidateDownloadSourcesCache } from "./helpers"; +import { invalidateDownloadSourcesCache, invalidateIdCaches } from "./helpers"; const downloadSourceSchema = z.object({ name: z.string().max(255), @@ -111,19 +111,52 @@ const addNewDownloads = async ( for (const download of downloads) { const formattedTitle = formatRepackName(download.title); - const [firstLetter] = formattedTitle; - const games = steamGames[firstLetter] || []; + let gamesInSteam: FormattedSteamGame[] = []; - const gamesInSteam = games.filter((game) => - formattedTitle.startsWith(game.formattedName) - ); + // Only try to match if we have a valid formatted title + if (formattedTitle && formattedTitle.length > 0) { + const [firstLetter] = formattedTitle; + const games = steamGames[firstLetter] || []; - if (gamesInSteam.length === 0) continue; + // Try exact prefix match first + gamesInSteam = games.filter((game) => + formattedTitle.startsWith(game.formattedName) + ); + // If no exact prefix match, try contains match (more lenient) + if (gamesInSteam.length === 0) { + gamesInSteam = games.filter( + (game) => + formattedTitle.includes(game.formattedName) || + game.formattedName.includes(formattedTitle) + ); + } + + // If still no match, try checking all letters (not just first letter) + // This helps with repacks that use abbreviations or alternate naming + if (gamesInSteam.length === 0) { + for (const letter of Object.keys(steamGames)) { + const letterGames = steamGames[letter] || []; + const matches = letterGames.filter( + (game) => + formattedTitle.includes(game.formattedName) || + game.formattedName.includes(formattedTitle) + ); + if (matches.length > 0) { + gamesInSteam = matches; + break; + } + } + } + } + + // Add matched game IDs to source tracking for (const game of gamesInSteam) { objectIdsOnSource.add(String(game.id)); } + // Create the repack even if no games matched + // This ensures all repacks from sources are imported const repack = { id: nextRepackId++, objectIds: gamesInSteam.map((game) => String(game.id)), @@ -248,8 +281,9 @@ const syncDownloadSources = async ( } } - // Invalidate cache after all sync operations complete + // Invalidate caches after all sync operations complete invalidateDownloadSourcesCache(); + invalidateIdCaches(); return newRepacksCount; } catch (err) { From 136a44473f94b2c7038aaa295750107034b72b78 Mon Sep 17 00:00:00 2001 From: Chubby Granny Chaser Date: Tue, 14 Oct 2025 19:26:39 +0100 Subject: [PATCH 07/18] feat: adding o1 cache --- src/locales/en/translation.json | 1 + src/locales/pt-BR/translation.json | 8 ++ src/locales/pt-PT/translation.json | 8 ++ src/main/events/download-sources/helpers.ts | 136 ++++++++++++++---- .../download-sources/sync-download-sources.ts | 135 +++++++++++++---- .../sidebar-adding-custom-game-modal.scss | 5 +- .../profile/profile-content/sort-options.tsx | 2 +- 7 files changed, 232 insertions(+), 63 deletions(-) diff --git a/src/locales/en/translation.json b/src/locales/en/translation.json index c91a1296..066fd8a8 100755 --- a/src/locales/en/translation.json +++ b/src/locales/en/translation.json @@ -599,6 +599,7 @@ "activity": "Recent Activity", "library": "Library", "pinned": "Pinned", + "sort_by": "Sort by:", "achievements_earned": "Achievements earned", "played_recently": "Played recently", "playtime": "Playtime", diff --git a/src/locales/pt-BR/translation.json b/src/locales/pt-BR/translation.json index ef34ee6f..c578a91c 100755 --- a/src/locales/pt-BR/translation.json +++ b/src/locales/pt-BR/translation.json @@ -592,10 +592,18 @@ "user_profile": { "amount_hours": "{{amount}} horas", "amount_minutes": "{{amount}} minutos", + "amount_hours_short": "{{amount}}h", + "amount_minutes_short": "{{amount}}m", "last_time_played": "Última sessão {{period}}", "activity": "Atividades recentes", "library": "Biblioteca", + "pinned": "Fixados", + "sort_by": "Ordenar por:", + "achievements_earned": "Conquistas obtidas", + "played_recently": "Jogados recentemente", + "playtime": "Tempo de jogo", "total_play_time": "Tempo total de jogo", + "manual_playtime_tooltip": "Este tempo de jogo foi atualizado manualmente", "no_recent_activity_title": "Hmmm… nada por aqui", "no_recent_activity_description": "Parece que você não jogou nada recentemente. Que tal começar agora?", "display_name": "Nome de exibição", diff --git a/src/locales/pt-PT/translation.json b/src/locales/pt-PT/translation.json index 7c244b6e..962504d4 100644 --- a/src/locales/pt-PT/translation.json +++ b/src/locales/pt-PT/translation.json @@ -377,10 +377,18 @@ "user_profile": { "amount_hours": "{{amount}} horas", "amount_minutes": "{{amount}} minutos", + "amount_hours_short": "{{amount}}h", + "amount_minutes_short": "{{amount}}m", "last_time_played": "Última sessão {{period}}", "activity": "Atividade recente", "library": "Biblioteca", + "pinned": "Fixados", + "sort_by": "Ordenar por:", + "achievements_earned": "Conquistas obtidas", + "played_recently": "Jogados recentemente", + "playtime": "Tempo de jogo", "total_play_time": "Tempo total de jogo", + "manual_playtime_tooltip": "Este tempo de jogo foi atualizado manualmente", "no_recent_activity_title": "Hmmm… não há nada por aqui", "no_recent_activity_description": "Parece que não jogaste nada recentemente. Que tal começar agora?", "display_name": "Nome de apresentação", diff --git a/src/main/events/download-sources/helpers.ts b/src/main/events/download-sources/helpers.ts index 7f346fc0..7f49499d 100644 --- a/src/main/events/download-sources/helpers.ts +++ b/src/main/events/download-sources/helpers.ts @@ -2,6 +2,7 @@ import axios from "axios"; import { z } from "zod"; import { downloadSourcesSublevel, repacksSublevel } from "@main/level"; import { DownloadSourceStatus } from "@shared"; +import crypto from "crypto"; const downloadSourceSchema = z.object({ name: z.string().max(255), @@ -15,6 +16,46 @@ const downloadSourceSchema = z.object({ ), }); +// Pre-computed title-to-Steam-ID mapping +type TitleHashMapping = Record; +let titleHashMappingCache: TitleHashMapping | null = null; +let titleHashMappingCacheTime = 0; +const TITLE_HASH_MAPPING_TTL = 86400000; // 24 hours + +const getTitleHashMapping = async (): Promise => { + const now = Date.now(); + if ( + titleHashMappingCache && + now - titleHashMappingCacheTime < TITLE_HASH_MAPPING_TTL + ) { + return titleHashMappingCache; + } + + try { + const response = await axios.get( + "https://cdn.losbroxas.org/results_a4c50f70c2.json", + { + timeout: 10000, + } + ); + + titleHashMappingCache = response.data; + titleHashMappingCacheTime = now; + console.log( + `✅ Loaded title hash mapping with ${Object.keys(response.data).length} entries` + ); + return response.data; + } catch (error) { + console.error("Failed to fetch title hash mapping:", error); + // Return empty mapping on error - will fall back to fuzzy matching + return {}; + } +}; + +const hashTitle = (title: string): string => { + return crypto.createHash("sha256").update(title).digest("hex"); +}; + type SteamGamesByLetter = Record; type FormattedSteamGame = { id: string; name: string; formattedName: string }; type FormattedSteamGamesByLetter = Record; @@ -161,57 +202,89 @@ const addNewDownloads = async ( const batch = repacksSublevel.batch(); + // Fetch the pre-computed hash mapping + const titleHashMapping = await getTitleHashMapping(); + let hashMatchCount = 0; + let fuzzyMatchCount = 0; + let noMatchCount = 0; + for (const download of downloads) { - const formattedTitle = formatRepackName(download.title); - let gamesInSteam: FormattedSteamGame[] = []; + let objectIds: string[] = []; + let usedHashMatch = false; - // Only try to match if we have a valid formatted title - if (formattedTitle && formattedTitle.length > 0) { - const [firstLetter] = formattedTitle; - const games = steamGames[firstLetter] || []; + // FIRST: Try hash-based lookup (fast and accurate) + const titleHash = hashTitle(download.title); + const steamIdsFromHash = titleHashMapping[titleHash]; - // Try exact prefix match first - gamesInSteam = games.filter((game) => - formattedTitle.startsWith(game.formattedName) - ); + if (steamIdsFromHash && steamIdsFromHash.length > 0) { + // Found in hash mapping - trust it completely + hashMatchCount++; + usedHashMatch = true; - // If no exact prefix match, try contains match (more lenient) - if (gamesInSteam.length === 0) { - gamesInSteam = games.filter( - (game) => - formattedTitle.includes(game.formattedName) || - game.formattedName.includes(formattedTitle) + // Use the Steam IDs directly as strings (trust the hash mapping) + objectIds = steamIdsFromHash.map(String); + } + + // FALLBACK: Use fuzzy matching ONLY if hash lookup found nothing + if (!usedHashMatch) { + let gamesInSteam: FormattedSteamGame[] = []; + const formattedTitle = formatRepackName(download.title); + + if (formattedTitle && formattedTitle.length > 0) { + const [firstLetter] = formattedTitle; + const games = steamGames[firstLetter] || []; + + // Try exact prefix match first + gamesInSteam = games.filter((game) => + formattedTitle.startsWith(game.formattedName) ); - } - // If still no match, try checking all letters (not just first letter) - // This helps with repacks that use abbreviations or alternate naming - if (gamesInSteam.length === 0) { - for (const letter of Object.keys(steamGames)) { - const letterGames = steamGames[letter] || []; - const matches = letterGames.filter( + // If no exact prefix match, try contains match (more lenient) + if (gamesInSteam.length === 0) { + gamesInSteam = games.filter( (game) => formattedTitle.includes(game.formattedName) || game.formattedName.includes(formattedTitle) ); - if (matches.length > 0) { - gamesInSteam = matches; - break; + } + + // If still no match, try checking all letters (not just first letter) + if (gamesInSteam.length === 0) { + for (const letter of Object.keys(steamGames)) { + const letterGames = steamGames[letter] || []; + const matches = letterGames.filter( + (game) => + formattedTitle.includes(game.formattedName) || + game.formattedName.includes(formattedTitle) + ); + if (matches.length > 0) { + gamesInSteam = matches; + break; + } } } + + if (gamesInSteam.length > 0) { + fuzzyMatchCount++; + objectIds = gamesInSteam.map((game) => String(game.id)); + } else { + noMatchCount++; + } + } else { + noMatchCount++; } } // Add matched game IDs to source tracking - for (const game of gamesInSteam) { - objectIdsOnSource.add(String(game.id)); + for (const id of objectIds) { + objectIdsOnSource.add(id); } // Create the repack even if no games matched // This ensures all repacks from sources are imported const repack = { id: nextRepackId++, - objectIds: gamesInSteam.map((game) => String(game.id)), + objectIds: objectIds, title: download.title, uris: download.uris, fileSize: download.fileSize, @@ -227,6 +300,11 @@ const addNewDownloads = async ( await batch.write(); + // Log matching statistics + console.log( + `📊 Matching stats for ${downloadSource.name}: Hash=${hashMatchCount}, Fuzzy=${fuzzyMatchCount}, None=${noMatchCount}` + ); + const existingSource = await downloadSourcesSublevel.get( `${downloadSource.id}` ); diff --git a/src/main/events/download-sources/sync-download-sources.ts b/src/main/events/download-sources/sync-download-sources.ts index b567ca63..75a50459 100644 --- a/src/main/events/download-sources/sync-download-sources.ts +++ b/src/main/events/download-sources/sync-download-sources.ts @@ -4,6 +4,7 @@ import { z } from "zod"; import { downloadSourcesSublevel, repacksSublevel } from "@main/level"; import { DownloadSourceStatus } from "@shared"; import { invalidateDownloadSourcesCache, invalidateIdCaches } from "./helpers"; +import crypto from "crypto"; const downloadSourceSchema = z.object({ name: z.string().max(255), @@ -17,6 +18,45 @@ const downloadSourceSchema = z.object({ ), }); +// Pre-computed title-to-Steam-ID mapping (shared with helpers.ts) +type TitleHashMapping = Record; +let titleHashMappingCache: TitleHashMapping | null = null; +let titleHashMappingCacheTime = 0; +const TITLE_HASH_MAPPING_TTL = 86400000; // 24 hours + +const getTitleHashMapping = async (): Promise => { + const now = Date.now(); + if ( + titleHashMappingCache && + now - titleHashMappingCacheTime < TITLE_HASH_MAPPING_TTL + ) { + return titleHashMappingCache; + } + + try { + const response = await axios.get( + "https://cdn.losbroxas.org/results_a4c50f70c2.json", + { + timeout: 10000, + } + ); + + titleHashMappingCache = response.data; + titleHashMappingCacheTime = now; + console.log( + `✅ Loaded title hash mapping with ${Object.keys(response.data).length} entries` + ); + return response.data; + } catch (error) { + console.error("Failed to fetch title hash mapping:", error); + return {}; + } +}; + +const hashTitle = (title: string): string => { + return crypto.createHash("sha256").update(title).digest("hex"); +}; + type SteamGamesByLetter = Record; type FormattedSteamGame = { id: string; name: string; formattedName: string }; type FormattedSteamGamesByLetter = Record; @@ -109,57 +149,89 @@ const addNewDownloads = async ( const batch = repacksSublevel.batch(); + // Fetch the pre-computed hash mapping + const titleHashMapping = await getTitleHashMapping(); + let hashMatchCount = 0; + let fuzzyMatchCount = 0; + let noMatchCount = 0; + for (const download of downloads) { - const formattedTitle = formatRepackName(download.title); - let gamesInSteam: FormattedSteamGame[] = []; + let objectIds: string[] = []; + let usedHashMatch = false; - // Only try to match if we have a valid formatted title - if (formattedTitle && formattedTitle.length > 0) { - const [firstLetter] = formattedTitle; - const games = steamGames[firstLetter] || []; + // FIRST: Try hash-based lookup (fast and accurate) + const titleHash = hashTitle(download.title); + const steamIdsFromHash = titleHashMapping[titleHash]; - // Try exact prefix match first - gamesInSteam = games.filter((game) => - formattedTitle.startsWith(game.formattedName) - ); + if (steamIdsFromHash && steamIdsFromHash.length > 0) { + // Found in hash mapping - trust it completely + hashMatchCount++; + usedHashMatch = true; - // If no exact prefix match, try contains match (more lenient) - if (gamesInSteam.length === 0) { - gamesInSteam = games.filter( - (game) => - formattedTitle.includes(game.formattedName) || - game.formattedName.includes(formattedTitle) + // Use the Steam IDs directly as strings (trust the hash mapping) + objectIds = steamIdsFromHash.map(String); + } + + // FALLBACK: Use fuzzy matching ONLY if hash lookup found nothing + if (!usedHashMatch) { + let gamesInSteam: FormattedSteamGame[] = []; + const formattedTitle = formatRepackName(download.title); + + if (formattedTitle && formattedTitle.length > 0) { + const [firstLetter] = formattedTitle; + const games = steamGames[firstLetter] || []; + + // Try exact prefix match first + gamesInSteam = games.filter((game) => + formattedTitle.startsWith(game.formattedName) ); - } - // If still no match, try checking all letters (not just first letter) - // This helps with repacks that use abbreviations or alternate naming - if (gamesInSteam.length === 0) { - for (const letter of Object.keys(steamGames)) { - const letterGames = steamGames[letter] || []; - const matches = letterGames.filter( + // If no exact prefix match, try contains match (more lenient) + if (gamesInSteam.length === 0) { + gamesInSteam = games.filter( (game) => formattedTitle.includes(game.formattedName) || game.formattedName.includes(formattedTitle) ); - if (matches.length > 0) { - gamesInSteam = matches; - break; + } + + // If still no match, try checking all letters (not just first letter) + if (gamesInSteam.length === 0) { + for (const letter of Object.keys(steamGames)) { + const letterGames = steamGames[letter] || []; + const matches = letterGames.filter( + (game) => + formattedTitle.includes(game.formattedName) || + game.formattedName.includes(formattedTitle) + ); + if (matches.length > 0) { + gamesInSteam = matches; + break; + } } } + + if (gamesInSteam.length > 0) { + fuzzyMatchCount++; + objectIds = gamesInSteam.map((game) => String(game.id)); + } else { + noMatchCount++; + } + } else { + noMatchCount++; } } // Add matched game IDs to source tracking - for (const game of gamesInSteam) { - objectIdsOnSource.add(String(game.id)); + for (const id of objectIds) { + objectIdsOnSource.add(id); } // Create the repack even if no games matched // This ensures all repacks from sources are imported const repack = { id: nextRepackId++, - objectIds: gamesInSteam.map((game) => String(game.id)), + objectIds: objectIds, title: download.title, uris: download.uris, fileSize: download.fileSize, @@ -175,6 +247,11 @@ const addNewDownloads = async ( await batch.write(); + // Log matching statistics + console.log( + `📊 Matching stats for ${downloadSource.name}: Hash=${hashMatchCount}, Fuzzy=${fuzzyMatchCount}, None=${noMatchCount}` + ); + const existingSource = await downloadSourcesSublevel.get( `${downloadSource.id}` ); diff --git a/src/renderer/src/components/sidebar/sidebar-adding-custom-game-modal.scss b/src/renderer/src/components/sidebar/sidebar-adding-custom-game-modal.scss index 942384fe..1a8ca315 100644 --- a/src/renderer/src/components/sidebar/sidebar-adding-custom-game-modal.scss +++ b/src/renderer/src/components/sidebar/sidebar-adding-custom-game-modal.scss @@ -5,10 +5,7 @@ display: flex; flex-direction: column; gap: calc(globals.$spacing-unit * 3); - width: 100%; - max-width: 500px; - margin: 0 auto; - text-align: center; + min-width: 500px; } &__form { diff --git a/src/renderer/src/pages/profile/profile-content/sort-options.tsx b/src/renderer/src/pages/profile/profile-content/sort-options.tsx index 53da8e40..607e54b9 100644 --- a/src/renderer/src/pages/profile/profile-content/sort-options.tsx +++ b/src/renderer/src/pages/profile/profile-content/sort-options.tsx @@ -14,7 +14,7 @@ export function SortOptions({ sortBy, onSortChange }: SortOptionsProps) { return (
- Sort by: + {t("sort_by")}
- } - placeholder="API Key" - hint={ - - - - } - /> - )} - - ); -} diff --git a/src/renderer/src/pages/settings/settings-debrid.tsx b/src/renderer/src/pages/settings/settings-debrid.tsx index f4ac183a..a2214698 100644 --- a/src/renderer/src/pages/settings/settings-debrid.tsx +++ b/src/renderer/src/pages/settings/settings-debrid.tsx @@ -2,7 +2,6 @@ import { useState, useCallback, useMemo } from "react"; import { useFeature, useAppSelector } from "@renderer/hooks"; import { SettingsTorBox } from "./settings-torbox"; import { SettingsRealDebrid } from "./settings-real-debrid"; -import { SettingsAllDebrid } from "./settings-all-debrid"; import { motion, AnimatePresence } from "framer-motion"; import { ChevronRightIcon, CheckCircleFillIcon } from "@primer/octicons-react"; import { useTranslation } from "react-i18next"; @@ -11,7 +10,6 @@ import "./settings-debrid.scss"; interface CollapseState { torbox: boolean; realDebrid: boolean; - allDebrid: boolean; } const sectionVariants = { @@ -71,7 +69,6 @@ export function SettingsDebrid() { return { torbox: !userPreferences?.torBoxApiToken, realDebrid: !userPreferences?.realDebridApiToken, - allDebrid: !userPreferences?.allDebridApiKey, }; }, [userPreferences]); @@ -178,51 +175,6 @@ export function SettingsDebrid() {
)} - -
-
- -

All-Debrid

- BETA - {userPreferences?.allDebridApiKey && ( - - )} -
- - - {!collapseState.allDebrid && ( - - - - )} - -
); } diff --git a/src/shared/constants.ts b/src/shared/constants.ts index 352ffe12..851aec49 100644 --- a/src/shared/constants.ts +++ b/src/shared/constants.ts @@ -1,6 +1,5 @@ export enum Downloader { RealDebrid, - AllDebrid, Torrent, Gofile, PixelDrain, @@ -56,7 +55,6 @@ export enum AuthPage { export enum DownloadError { NotCachedOnRealDebrid = "download_error_not_cached_on_real_debrid", - NotCachedInAllDebrid = "download_error_not_cached_in_alldebrid", NotCachedOnTorBox = "download_error_not_cached_on_torbox", GofileQuotaExceeded = "download_error_gofile_quota_exceeded", RealDebridAccountNotAuthorized = "download_error_real_debrid_account_not_authorized", diff --git a/src/shared/index.ts b/src/shared/index.ts index 9a4b4516..615fa36e 100644 --- a/src/shared/index.ts +++ b/src/shared/index.ts @@ -124,7 +124,6 @@ export const getDownloadersForUri = (uri: string) => { Downloader.Hydra, Downloader.TorBox, Downloader.RealDebrid, - Downloader.AllDebrid, ]; } @@ -142,19 +141,6 @@ export const getDownloadersForUris = (uris: string[]) => { return Array.from(downloadersSet); }; -export const steamUrlBuilder = { - library: (objectId: string) => - `https://steamcdn-a.akamaihd.net/steam/apps/${objectId}/header.jpg`, - libraryHero: (objectId: string) => - `https://steamcdn-a.akamaihd.net/steam/apps/${objectId}/library_hero.jpg`, - logo: (objectId: string) => - `https://cdn.cloudflare.steamstatic.com/steam/apps/${objectId}/logo.png`, - cover: (objectId: string) => - `https://cdn.cloudflare.steamstatic.com/steam/apps/${objectId}/library_600x900.jpg`, - icon: (objectId: string, clientIcon: string) => - `https://cdn.cloudflare.steamstatic.com/steamcommunity/public/images/apps/${objectId}/${clientIcon}.ico`, -}; - export const getDateLocale = (language: string) => { if (language.startsWith("pt")) return ptBR; if (language.startsWith("es")) return es; diff --git a/src/types/download.types.ts b/src/types/download.types.ts index d19a3b83..004d8f27 100644 --- a/src/types/download.types.ts +++ b/src/types/download.types.ts @@ -175,11 +175,3 @@ export interface SeedingStatus { status: DownloadStatus; uploadSpeed: number; } - -/* All-Debrid */ -export interface AllDebridUser { - username: string; - email: string; - isPremium: boolean; - premiumUntil: string; -} diff --git a/src/types/level.types.ts b/src/types/level.types.ts index 93925068..053bd218 100644 --- a/src/types/level.types.ts +++ b/src/types/level.types.ts @@ -99,7 +99,6 @@ export interface UserPreferences { language?: string; realDebridApiToken?: string | null; torBoxApiToken?: string | null; - allDebridApiKey?: string | null; preferQuitInsteadOfHiding?: boolean; runAtStartup?: boolean; startMinimized?: boolean; From 074d9d4fe2112520dcfd43ba3536adece9072d8d Mon Sep 17 00:00:00 2001 From: Chubby Granny Chaser Date: Wed, 15 Oct 2025 15:59:03 +0100 Subject: [PATCH 09/18] feat: improving caching --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ad479c7f..342b078a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hydralauncher", - "version": "3.7.0", + "version": "3.7.1", "description": "Hydra", "main": "./out/main/index.js", "author": "Los Broxas", From 5639c09c2289d0cedd4a74e2f7f726183d703a7b Mon Sep 17 00:00:00 2001 From: Chubby Granny Chaser Date: Wed, 15 Oct 2025 16:02:50 +0100 Subject: [PATCH 10/18] feat: improving caching --- src/main/events/download-sources/add-download-source.ts | 2 -- src/main/events/download-sources/helpers.ts | 6 +++--- src/main/events/library/add-custom-game-to-library.ts | 2 +- src/main/events/library/copy-custom-game-asset.ts | 2 +- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/main/events/download-sources/add-download-source.ts b/src/main/events/download-sources/add-download-source.ts index c3e30488..e51cae3e 100644 --- a/src/main/events/download-sources/add-download-source.ts +++ b/src/main/events/download-sources/add-download-source.ts @@ -15,11 +15,9 @@ const addDownloadSource = async ( // Verify that repacks were actually written to the database (read-after-write) // This ensures all async operations are complete before proceeding let repackCount = 0; - const repackIds: number[] = []; for await (const [, repack] of repacksSublevel.iterator()) { if (repack.downloadSourceId === result.id) { repackCount++; - repackIds.push(repack.id); } } diff --git a/src/main/events/download-sources/helpers.ts b/src/main/events/download-sources/helpers.ts index ca765c3f..2e7489fd 100644 --- a/src/main/events/download-sources/helpers.ts +++ b/src/main/events/download-sources/helpers.ts @@ -2,7 +2,7 @@ import axios from "axios"; import { z } from "zod"; import { downloadSourcesSublevel, repacksSublevel } from "@main/level"; import { DownloadSourceStatus } from "@shared"; -import crypto from "crypto"; +import crypto from "node:crypto"; import { logger, ResourceCache } from "@main/services"; export const downloadSourceSchema = z.object({ @@ -62,9 +62,9 @@ export type FormattedSteamGamesByLetter = Record; export const formatName = (name: string) => { return name .normalize("NFD") - .replace(/[\u0300-\u036f]/g, "") + .replaceAll(/[\u0300-\u036f]/g, "") .toLowerCase() - .replace(/[^a-z0-9]/g, ""); + .replaceAll(/[^a-z0-9]/g, ""); }; export const formatRepackName = (name: string) => { diff --git a/src/main/events/library/add-custom-game-to-library.ts b/src/main/events/library/add-custom-game-to-library.ts index f85c008b..f2f2dd40 100644 --- a/src/main/events/library/add-custom-game-to-library.ts +++ b/src/main/events/library/add-custom-game-to-library.ts @@ -1,6 +1,6 @@ import { registerEvent } from "../register-event"; import { gamesSublevel, gamesShopAssetsSublevel, levelKeys } from "@main/level"; -import { randomUUID } from "crypto"; +import { randomUUID } from "node:crypto"; import type { GameShop } from "@types"; const addCustomGameToLibrary = async ( diff --git a/src/main/events/library/copy-custom-game-asset.ts b/src/main/events/library/copy-custom-game-asset.ts index aef74da9..1f5aea0f 100644 --- a/src/main/events/library/copy-custom-game-asset.ts +++ b/src/main/events/library/copy-custom-game-asset.ts @@ -1,7 +1,7 @@ import { registerEvent } from "../register-event"; import fs from "node:fs"; import path from "node:path"; -import { randomUUID } from "crypto"; +import { randomUUID } from "node:crypto"; import { ASSETS_PATH } from "@main/constants"; const copyCustomGameAsset = async ( From e7ee049df559b1c214821b0c5118ec13e53dd85a Mon Sep 17 00:00:00 2001 From: Chubby Granny Chaser Date: Wed, 15 Oct 2025 16:39:59 +0100 Subject: [PATCH 11/18] ci: fixing env var --- src/main/services/resource-cache.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/services/resource-cache.ts b/src/main/services/resource-cache.ts index 0c44af81..c59f873d 100644 --- a/src/main/services/resource-cache.ts +++ b/src/main/services/resource-cache.ts @@ -134,7 +134,7 @@ export class ResourceCache { const resources = [ { name: "steam-games-by-letter", - url: `${process.env.MAIN_VITE_EXTERNAL_RESOURCES_URL}/steam-games-by-letter.json`, + url: `${import.meta.env.MAIN_VITE_EXTERNAL_RESOURCES_URL}/steam-games-by-letter.json`, }, { name: "sources-manifest", From 97b27a17853bb13a62f0988042c99ae7b5e81d0c Mon Sep 17 00:00:00 2001 From: Zamitto <167933696+zamitto@users.noreply.github.com> Date: Thu, 16 Oct 2025 11:01:20 -0300 Subject: [PATCH 12/18] fix: handle user not found on user-profile.context --- .../user-profile/user-profile.context.tsx | 30 ++++++++----------- yarn.lock | 4 +-- 2 files changed, 14 insertions(+), 20 deletions(-) diff --git a/src/renderer/src/context/user-profile/user-profile.context.tsx b/src/renderer/src/context/user-profile/user-profile.context.tsx index cb656be2..87e2a669 100644 --- a/src/renderer/src/context/user-profile/user-profile.context.tsx +++ b/src/renderer/src/context/user-profile/user-profile.context.tsx @@ -66,10 +66,7 @@ export function UserProfileContextProvider({ const isMe = userDetails?.id === userProfile?.id; const getHeroBackgroundFromImageUrl = async (imageUrl: string) => { - const output = await average(imageUrl, { - amount: 1, - format: "hex", - }); + const output = await average(imageUrl, { amount: 1, format: "hex" }); return `linear-gradient(135deg, ${darkenColor(output as string, 0.5)}, ${darkenColor(output as string, 0.6, 0.5)})`; }; @@ -135,28 +132,25 @@ export function UserProfileContextProvider({ getUserLibraryGames(); return window.electron.hydraApi - .get(`/users/${userId}`) + .get(`/users/${userId}`) .then((userProfile) => { - if (userProfile) { - setUserProfile(userProfile); + setUserProfile(userProfile); - if (userProfile.profileImageUrl) { - getHeroBackgroundFromImageUrl(userProfile.profileImageUrl).then( - (color) => setHeroBackground(color) - ); - } - } else { - showErrorToast(t("user_not_found")); - navigate(-1); + if (userProfile.profileImageUrl) { + getHeroBackgroundFromImageUrl(userProfile.profileImageUrl).then( + (color) => setHeroBackground(color) + ); } + }) + .catch(() => { + showErrorToast(t("user_not_found")); + navigate(-1); }); }, [navigate, getUserStats, getUserLibraryGames, showErrorToast, userId, t]); const getBadges = useCallback(async () => { const language = i18n.language.split("-")[0]; - const params = new URLSearchParams({ - locale: language, - }); + const params = new URLSearchParams({ locale: language }); const badges = await window.electron.hydraApi.get( `/badges?${params.toString()}`, diff --git a/yarn.lock b/yarn.lock index ebd10beb..0337a77b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1047,9 +1047,9 @@ optionalDependencies: global-agent "^3.0.0" -"@electron/node-gyp@git+https://github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2": +"@electron/node-gyp@https://github.com/electron/node-gyp#06b29aafb7708acef8b3669835c8a7857ebc92d2": version "10.2.0-electron.1" - resolved "git+https://github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2" + resolved "https://github.com/electron/node-gyp#06b29aafb7708acef8b3669835c8a7857ebc92d2" dependencies: env-paths "^2.2.0" exponential-backoff "^3.1.1" From 24f7ecb7957f43d83af1576a7ee44eb24bae4865 Mon Sep 17 00:00:00 2001 From: Chubby Granny Chaser Date: Fri, 17 Oct 2025 15:04:42 +0100 Subject: [PATCH 13/18] feat: adding translations --- src/locales/en/translation.json | 6 +- src/locales/pt-BR/translation.json | 4 + src/locales/ru/translation.json | 4 + .../src/pages/game-details/game-reviews.tsx | 13 +-- .../src/pages/game-details/review-item.scss | 23 +++++ .../src/pages/game-details/review-item.tsx | 84 +++++++++++++++++-- src/types/index.ts | 4 + 7 files changed, 124 insertions(+), 14 deletions(-) create mode 100644 src/renderer/src/pages/game-details/review-item.scss diff --git a/src/locales/en/translation.json b/src/locales/en/translation.json index bf2793c5..46bdb28c 100755 --- a/src/locales/en/translation.json +++ b/src/locales/en/translation.json @@ -357,7 +357,11 @@ "delete_review_modal_description": "This action cannot be undone.", "delete_review_modal_delete_button": "Delete", "delete_review_modal_cancel_button": "Cancel", - "vote_failed": "Failed to register your vote. Please try again." + "vote_failed": "Failed to register your vote. Please try again.", + "show_original": "Show original", + "show_translation": "Show translation", + "show_original_translated_from": "Show original (translated from {{language}})", + "hide_original": "Hide original" }, "activation": { "title": "Activate Hydra", diff --git a/src/locales/pt-BR/translation.json b/src/locales/pt-BR/translation.json index c969e3bf..4ea77015 100755 --- a/src/locales/pt-BR/translation.json +++ b/src/locales/pt-BR/translation.json @@ -345,6 +345,10 @@ "delete_review_modal_description": "Esta ação não pode ser desfeita.", "delete_review_modal_delete_button": "Excluir", "delete_review_modal_cancel_button": "Cancelar", + "show_original": "Mostrar original", + "show_translation": "Mostrar tradução", + "show_original_translated_from": "Mostrar original (traduzido do {{language}})", + "hide_original": "Ocultar original", "rating_count": "Avaliação" }, "activation": { diff --git a/src/locales/ru/translation.json b/src/locales/ru/translation.json index 895db29d..886c7d07 100644 --- a/src/locales/ru/translation.json +++ b/src/locales/ru/translation.json @@ -259,6 +259,10 @@ "delete_review_modal_description": "Это действие нельзя отменить.", "delete_review_modal_delete_button": "Удалить", "delete_review_modal_cancel_button": "Отмена", + "show_original": "Показать оригинал", + "show_translation": "Показать перевод", + "show_original_translated_from": "Показать оригинал (переведено с {{language}})", + "hide_original": "Скрыть оригинал", "cloud_save": "Облачное сохранение", "cloud_save_description": "Сохраняйте ваш прогресс в облаке и продолжайте играть на любом устройстве", "backups": "Резервные копии", diff --git a/src/renderer/src/pages/game-details/game-reviews.tsx b/src/renderer/src/pages/game-details/game-reviews.tsx index 851852b2..f8117f43 100644 --- a/src/renderer/src/pages/game-details/game-reviews.tsx +++ b/src/renderer/src/pages/game-details/game-reviews.tsx @@ -39,7 +39,7 @@ export function GameReviews({ hasUserReviewed, onUserReviewedChange, }: Readonly) { - const { t } = useTranslation("game_details"); + const { t, i18n } = useTranslation("game_details"); const { showSuccessToast, showErrorToast } = useToast(); const [reviews, setReviews] = useState([]); @@ -129,9 +129,7 @@ export function GameReviews({ const twoHoursInMilliseconds = 2 * 60 * 60 * 1000; const hasEnoughPlaytime = - game && - game.playTimeInMilliseconds >= twoHoursInMilliseconds && - !game.hasManuallyUpdatedPlaytime; + game && game.playTimeInMilliseconds >= twoHoursInMilliseconds; if ( !hasReviewed && @@ -146,6 +144,8 @@ export function GameReviews({ } }, [objectId, userDetailsId, shop, game, onUserReviewedChange]); + console.log("reviews", reviews); + const loadReviews = useCallback( async (reset = false) => { if (!objectId) return; @@ -164,6 +164,7 @@ export function GameReviews({ take: "20", skip: skip.toString(), sortBy: reviewsSortBy, + language: i18n.language, }); const response = await window.electron.hydraApi.get( @@ -200,7 +201,7 @@ export function GameReviews({ } } }, - [objectId, shop, reviewsPage, reviewsSortBy] + [objectId, shop, reviewsPage, reviewsSortBy, i18n.language] ); const handleVoteReview = async ( @@ -439,6 +440,8 @@ export function GameReviews({ }); }, [reviews]); + console.log("reviews", reviews); + return (
{showReviewPrompt && diff --git a/src/renderer/src/pages/game-details/review-item.scss b/src/renderer/src/pages/game-details/review-item.scss new file mode 100644 index 00000000..e1651ef5 --- /dev/null +++ b/src/renderer/src/pages/game-details/review-item.scss @@ -0,0 +1,23 @@ +@use "../../scss/globals.scss"; + +.game-details { + &__review-translation-toggle { + display: inline-flex; + align-items: center; + gap: calc(globals.$spacing-unit * 1); + margin-top: calc(globals.$spacing-unit * 1.5); + padding: 0; + background: none; + border: none; + color: rgba(255, 255, 255, 0.6); + font-size: 0.875rem; + cursor: pointer; + text-decoration: none; + transition: all 0.2s ease; + + &:hover { + text-decoration: underline; + color: rgba(255, 255, 255, 0.9); + } + } +} diff --git a/src/renderer/src/pages/game-details/review-item.tsx b/src/renderer/src/pages/game-details/review-item.tsx index 85c81e70..f5e3528a 100644 --- a/src/renderer/src/pages/game-details/review-item.tsx +++ b/src/renderer/src/pages/game-details/review-item.tsx @@ -1,8 +1,9 @@ import { TrashIcon, ClockIcon } from "@primer/octicons-react"; -import { ThumbsUp, ThumbsDown, Star } from "lucide-react"; +import { ThumbsUp, ThumbsDown, Star, Languages } from "lucide-react"; import { useNavigate } from "react-router-dom"; import { motion, AnimatePresence } from "framer-motion"; import { useTranslation } from "react-i18next"; +import { useState } from "react"; import type { GameReview } from "@types"; import { sanitizeHtml } from "@shared"; @@ -10,6 +11,8 @@ import { useDate } from "@renderer/hooks"; import { formatNumber } from "@renderer/helpers"; import { Avatar } from "@renderer/components"; +import "./review-item.scss"; + interface ReviewItemProps { review: GameReview; userDetailsId?: string; @@ -63,9 +66,45 @@ export function ReviewItem({ onAnimationComplete, }: Readonly) { const navigate = useNavigate(); - const { t } = useTranslation("game_details"); + const { t, i18n } = useTranslation("game_details"); const { formatDistance } = useDate(); + const [showOriginal, setShowOriginal] = useState(false); + + // Check if this is the user's own review + const isOwnReview = userDetailsId === review.user.id; + + // Helper to get base language code (e.g., "pt" from "pt-BR") + const getBaseLanguage = (lang: string) => lang.split("-")[0]; + + // Check if the review is in a different language (comparing base language codes) + const isDifferentLanguage = + getBaseLanguage(review.detectedLanguage) !== getBaseLanguage(i18n.language); + + // Check if translation is available and needed (but not for own reviews) + const needsTranslation = + !isOwnReview && + isDifferentLanguage && + review.translations && + review.translations[i18n.language]; + + // Get the full language name using Intl.DisplayNames + const getLanguageName = (languageCode: string) => { + try { + const displayNames = new Intl.DisplayNames([i18n.language], { + type: "language", + }); + return displayNames.of(languageCode) || languageCode.toUpperCase(); + } catch { + return languageCode.toUpperCase(); + } + }; + + // Determine which content to show - always show original for own reviews + const displayContent = needsTranslation + ? review.translations[i18n.language] + : review.reviewHtml; + if (isBlocked && !isVisible) { return (
@@ -135,12 +174,41 @@ export function ReviewItem({ ))}
-
+
+
+ {needsTranslation && ( + <> + + {showOriginal && ( +
+ )} + + )} +
Date: Fri, 17 Oct 2025 15:33:10 +0100 Subject: [PATCH 14/18] feat: removing pre and code --- src/shared/html-sanitizer.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/shared/html-sanitizer.ts b/src/shared/html-sanitizer.ts index 8f3ae932..0969564d 100644 --- a/src/shared/html-sanitizer.ts +++ b/src/shared/html-sanitizer.ts @@ -39,6 +39,12 @@ export function sanitizeHtml(html: string): string { } } + // Remove code and pre tags but keep their text content + for (const el of tempDiv.querySelectorAll("code, pre")) { + const textNode = document.createTextNode(el.textContent || ""); + el.replaceWith(textNode); + } + for (const el of tempDiv.querySelectorAll("*")) { for (const attr of Array.from(el.attributes)) { const name = attr.name.toLowerCase(); From 19a57cb1e012cf7a18aecc9b49a083385b872109 Mon Sep 17 00:00:00 2001 From: Domas Linkis <159886328+slakgosh@users.noreply.github.com> Date: Sun, 19 Oct 2025 13:30:10 +0500 Subject: [PATCH 15/18] Added ukrainian lang --- src/locales/index.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/locales/index.ts b/src/locales/index.ts index f71e8f0e..3ce1592c 100644 --- a/src/locales/index.ts +++ b/src/locales/index.ts @@ -26,6 +26,7 @@ import nb from "./nb/translation.json"; import et from "./et/translation.json"; import bg from "./bg/translation.json"; import uz from "./uz/translation.json"; +import ua from "./ua/translation.json"; import sv from "./sv/translation.json"; export default { @@ -42,6 +43,7 @@ export default { ru, tr, be, + ua, uk, zh, id, From 2f1185bbf9a1a9486a0a3470fb32ac54ab3101d5 Mon Sep 17 00:00:00 2001 From: Domas Linkis <159886328+slakgosh@users.noreply.github.com> Date: Sun, 19 Oct 2025 13:38:04 +0500 Subject: [PATCH 16/18] Finnish Language --- src/locales/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/locales/index.ts b/src/locales/index.ts index 3ce1592c..a44480e6 100644 --- a/src/locales/index.ts +++ b/src/locales/index.ts @@ -26,7 +26,7 @@ import nb from "./nb/translation.json"; import et from "./et/translation.json"; import bg from "./bg/translation.json"; import uz from "./uz/translation.json"; -import ua from "./ua/translation.json"; +import fi from "./fi/translation.json"; import sv from "./sv/translation.json"; export default { @@ -43,7 +43,6 @@ export default { ru, tr, be, - ua, uk, zh, id, @@ -51,6 +50,7 @@ export default { da, ar, fa, + fi, ro, ca, bg, From 5ff15b30b2e15561866c31640860b16f703b3467 Mon Sep 17 00:00:00 2001 From: Domas Linkis <159886328+slakgosh@users.noreply.github.com> Date: Sun, 19 Oct 2025 13:47:42 +0500 Subject: [PATCH 17/18] Added finnish lang Worstest 2 hours of my life --- src/locales/fi/translation.json | 708 ++++++++++++++++++++++++++++++++ 1 file changed, 708 insertions(+) create mode 100644 src/locales/fi/translation.json diff --git a/src/locales/fi/translation.json b/src/locales/fi/translation.json new file mode 100644 index 00000000..fee3ff22 --- /dev/null +++ b/src/locales/fi/translation.json @@ -0,0 +1,708 @@ +{ + "language_name": "Suomi", + "app": { + "successfully_signed_in": "Kirjautuminen onnistui" + }, + "home": { + "surprise_me": "Yllätä minut", + "no_results": "Ei tuloksia", + "start_typing": "Aloitan kirjoittamisen...", + "hot": "Suosittua nyt", + "weekly": "📅 Viikon parhaat pelit", + "achievements": "🏆 Pelit saavutuksilla" + }, + "sidebar": { + "catalogue": "Katalogi", + "downloads": "Lataukset", + "settings": "Asetukset", + "my_library": "Kirjasto", + "downloading_metadata": "{{title}} (Metatietojen lataus…)", + "paused": "{{title}} (Keskeytetty)", + "downloading": "{{title}} ({{percentage}} - Lataa…)", + "filter": "Hae", + "home": "Koti", + "queued": "{{title}} (Jonossa)", + "game_has_no_executable": "Pelin käynnistystiedostoa ei ole valittu", + "sign_in": "Kirjaudu sisään", + "friends": "Kaverit", + "need_help": "Tarvitsetko apua?", + "favorites": "Suosikit", + "playable_button_title": "Näytä vain asennetut pelit.", + "add_custom_game_tooltip": "Lisää mukautettu peli", + "show_playable_only_tooltip": "Näytä vain pelattavissa olevat", + "custom_game_modal": "Lisää mukautettu peli", + "custom_game_modal_description": "Lisää mukautettu peli kirjastoon valitsemalla suoritettava tiedosto", + "custom_game_modal_executable_path": "Suoritettavan tiedoston polku", + "custom_game_modal_select_executable": "Valitse suoritettava tiedosto", + "custom_game_modal_title": "Pelin nimi", + "custom_game_modal_enter_title": "Syötä pelin nimi", + "custom_game_modal_browse": "Selaa", + "custom_game_modal_cancel": "Peruuta", + "custom_game_modal_add": "Lisää peli", + "custom_game_modal_adding": "Lisätään peliä...", + "custom_game_modal_success": "Mukautettu peli lisätty onnistuneesti", + "custom_game_modal_failed": "Mukautetun pelin lisääminen epäonnistui", + "custom_game_modal_executable": "Suoritettava tiedosto", + "edit_game_modal": "Mukauta resursseja", + "edit_game_modal_description": "Mukauta pelin resursseja ja tietoja", + "edit_game_modal_title": "Nimi", + "edit_game_modal_enter_title": "Syötä nimi", + "edit_game_modal_image": "Kuva", + "edit_game_modal_select_image": "Valitse kuva", + "edit_game_modal_browse": "Selaa", + "edit_game_modal_image_preview": "Kuvan esikatselu", + "edit_game_modal_icon": "Kuvake", + "edit_game_modal_select_icon": "Valitse kuvake", + "edit_game_modal_icon_preview": "Kuvakkeen esikatselu", + "edit_game_modal_logo": "Logo", + "edit_game_modal_select_logo": "Valitse logo", + "edit_game_modal_logo_preview": "Logon esikatselu", + "edit_game_modal_hero": "Pelin kansikuva", + "edit_game_modal_select_hero": "Valitse pelin kansikuva", + "edit_game_modal_hero_preview": "Kansikuvan esikatselu", + "edit_game_modal_cancel": "Peruuta", + "edit_game_modal_update": "Päivitä", + "edit_game_modal_updating": "Päivitetään...", + "edit_game_modal_fill_required": "Täytä kaikki pakolliset kentät", + "edit_game_modal_success": "Resurssit päivitetty onnistuneesti", + "edit_game_modal_failed": "Resurssien päivitys epäonnistui", + "edit_game_modal_image_filter": "Kuva", + "edit_game_modal_icon_resolution": "Suositeltu resoluutio: 256x256px", + "edit_game_modal_logo_resolution": "Suositeltu resoluutio: 640x360px", + "edit_game_modal_hero_resolution": "Suositeltu resoluutio: 1920x620px", + "edit_game_modal_assets": "Resurssit", + "edit_game_modal_drop_icon_image_here": "Pudota kuvakkeen kuva tähän", + "edit_game_modal_drop_logo_image_here": "Pudota logon kuva tähän", + "edit_game_modal_drop_hero_image_here": "Pudota kansikuvan kuva tähän", + "edit_game_modal_drop_to_replace_icon": "Pudota korvataksesi kuvake", + "edit_game_modal_drop_to_replace_logo": "Pudota korvataksesi logo", + "edit_game_modal_drop_to_replace_hero": "Pudota korvataksesi kansikuva", + "install_decky_plugin": "Asenna Decky-lisäosa", + "update_decky_plugin": "Päivitä Decky-lisäosa", + "decky_plugin_installed_version": "Decky-lisäosa (v{{version}})", + "install_decky_plugin_title": "Asenna Hydra Decky -lisäosa", + "install_decky_plugin_message": "Tämä lataa ja asentaa Hydra-lisäosan Decky Loaderiin. Saattaa vaatia korotetut oikeudet. Jatketaanko?", + "update_decky_plugin_title": "Päivitä Hydra Decky -lisäosa", + "update_decky_plugin_message": "Uusi Hydra Decky -lisäosan versio on saatavilla. Haluatko päivittää sen nyt?", + "decky_plugin_installed": "Decky-lisäosa v{{version}} asennettu onnistuneesti", + "decky_plugin_installation_failed": "Decky-lisäosan asennus epäonnistui: {{error}}", + "decky_plugin_installation_error": "Decky-lisäosan asennusvirhe: {{error}}", + "confirm": "Vahvista", + "cancel": "Peruuta" + }, + "header": { + "search": "Hae", + "home": "Koti", + "catalogue": "Katalogi", + "downloads": "Lataukset", + "search_results": "Hakutulokset", + "settings": "Asetukset", + "version_available_install": "Versio {{version}} saatavilla. Asentaaksesi napsauta tästä.", + "version_available_download": "Versio {{version}} saatavilla. Ladataaksesi napsauta tästä." + }, + "bottom_panel": { + "no_downloads_in_progress": "Ei meneillään olevia latauksia", + "downloading_metadata": "Ladataan metatietoja {{title}}…", + "downloading": "Ladataan {{title}}… ({{percentage}} valmis) - Lopetus {{eta}} - {{speed}}", + "calculating_eta": "Ladataan {{title}}… ({{percentage}} valmis) - Lasketaan jäljellä olevaa aikaa…", + "checking_files": "Tarkistetaan tiedostoja {{title}}… ({{percentage}} valmis)", + "installing_common_redist": "{{log}}…", + "installation_complete": "Asennus valmis", + "installation_complete_message": "Kirjastot asennettu onnistuneesti" + }, + "catalogue": { + "search": "Suodatin…", + "developers": "Kehittäjät", + "genres": "Genret", + "tags": "Tagit", + "publishers": "Julkaisijat", + "download_sources": "Latauslähteet", + "result_count": "{{resultCount}} tulosta", + "filter_count": "{{filterCount}} saatavilla", + "clear_filters": "Tyhjennä {{filterCount}} valittua" + }, + "game_details": { + "open_download_options": "Avaa lähteet", + "download_options_zero": "Ei lähteitä", + "download_options_one": "{{count}} lähde", + "download_options_other": "{{count}} lähdettä", + "updated_at": "Päivitetty {{updated_at}}", + "install": "Asenna", + "resume": "Jatka", + "pause": "Keskeytä", + "cancel": "Peruuta", + "remove": "Poista", + "space_left_on_disk": "{{space}} vapaana levyltä", + "eta": "Lopetus {{eta}}", + "calculating_eta": "Lasketaan jäljellä olevaa aikaa…", + "downloading_metadata": "Ladataan metatietoja…", + "filter": "Hae repackeja", + "requirements": "Järjestelmävaatimukset", + "minimum": "Minimi", + "recommended": "Suositeltu", + "paused": "Keskeytetty", + "release_date": "Julkaistu {{date}}", + "publisher": "Julkaisija {{publisher}}", + "hours": "tuntia", + "minutes": "minuuttia", + "amount_hours": "{{amount}} tuntia", + "amount_minutes": "{{amount}} minuuttia", + "accuracy": "tarkkuus {{accuracy}}%", + "add_to_library": "Lisää kirjastoon", + "already_in_library": "Jo kirjastossa", + "remove_from_library": "Poista kirjastosta", + "no_downloads": "Ei saatavilla olevia lähteitä", + "play_time": "Pelattu {{amount}}", + "last_time_played": "Viimeksi pelattu {{period}}", + "not_played_yet": "Et ole vielä pelannut {{title}}", + "next_suggestion": "Seuraava ehdotus", + "play": "Pelaa", + "deleting": "Poistetaan asennustiedostoa…", + "close": "Sulje", + "playing_now": "Käynnissä", + "change": "Vaihda", + "repacks_modal_description": "Valitse repack ladattavaksi", + "select_folder_hint": "Vaihtaaksesi oletuslatauskansiota, avaa <0>Asetukset", + "download_now": "Lataa nyt", + "no_shop_details": "Kuvausta ei saatu", + "download_options": "Lähteet", + "download_path": "Latauspolku", + "previous_screenshot": "Edellinen kuvakaappaus", + "next_screenshot": "Seuraava kuvakaappaus", + "screenshot": "Kuvakaappaus {{number}}", + "open_screenshot": "Avaa kuvakaappaus {{number}}", + "download_settings": "Latausasetukset", + "downloader": "Lataaja", + "select_executable": "Valitse", + "no_executable_selected": "Tiedostoa ei valittu", + "open_folder": "Avaa kansio", + "open_download_location": "Selaa latauskansio", + "create_shortcut": "Luo työpöydän pikakuvake", + "create_shortcut_simple": "Luo pikakuvake", + "clear": "Tyhjennä", + "remove_files": "Poista tiedostot", + "remove_from_library_title": "Oletko varma?", + "remove_from_library_description": "{{game}} poistetaan kirjastostasi.", + "options": "Asetukset", + "properties": "Ominaisuudet", + "executable_section_title": "Tiedosto", + "executable_section_description": "Polku tiedostoon, joka käynnistetään kun painat \"Pelaa\"", + "downloads_section_title": "Lataukset", + "downloads_section_description": "Tarkista päivitysten tai muiden peliversioiden saatavuus", + "danger_zone_section_title": "Vaaravyöhyke", + "danger_zone_section_description": "Voit poistaa tämän pelin kirjastostasi tai Hydrasta ladatut tiedostot", + "download_in_progress": "Lataus käynnissä", + "download_paused": "Lataus keskeytetty", + "last_downloaded_option": "Viimeisin latausvaihtoehto", + "create_steam_shortcut": "Luo Steam-pikakuvake", + "create_shortcut_success": "Pikakuvake luotu", + "you_might_need_to_restart_steam": "Saattaa olla, että sinun on käynnistettävä Steam uudelleen nähdäksesi muutokset", + "create_shortcut_error": "Pikakuvakkeen luonti epäonnistui", + "add_to_favorites": "Lisää suosikkeihin", + "remove_from_favorites": "Poista suosikeista", + "failed_update_favorites": "Suosikkien päivitys epäonnistui", + "game_removed_from_library": "Peli poistettu kirjastosta", + "failed_remove_from_library": "Poistaminen kirjastosta epäonnistui", + "files_removed_success": "Tiedostot poistettu onnistuneesti", + "failed_remove_files": "Tiedostojen poisto epäonnistui", + "nsfw_content_title": "Tämä peli sisältää sopimatonta sisältöä", + "nsfw_content_description": "{{title}} sisältää sisältöä, joka ei välttämättä sovellu kaikenikäisille. \nOletko varma, että haluat jatkaa?", + "allow_nsfw_content": "Jatka", + "refuse_nsfw_content": "Takaisin", + "stats": "Tilastot", + "download_count": "Lataukset", + "player_count": "Aktiiviset pelaajat", + "download_error": "Tämä latausvaihtoehto ei ole saatavilla", + "download": "Lataa", + "executable_path_in_use": "Suoritettavaa tiedostoa käyttää jo \"{{game}}\"", + "warning": "Varoitus:", + "hydra_needs_to_remain_open": "Tämän latauksen aikana Hydran on pysyttävä auki, kunnes se on valmis. Jos Hydra sulkeutuu ennen valmistumista, menetät edistymisen.", + "achievements": "Saavutukset", + "achievements_count": "Saavutukset {{unlockedCount}}/{{achievementsCount}}", + "show_more": "Näytä enemmän", + "show_less": "Näytä vähemmän", + "reviews": "Arvostelut", + "leave_a_review": "Jätä arvostelu", + "write_review_placeholder": "Jaa ajatuksesi tästä pelistä...", + "sort_newest": "Uusimmat ensin", + "no_reviews_yet": "Ei vielä arvosteluja", + "be_first_to_review": "Ole ensimmäinen, joka jakaa ajatuksensa tästä pelistä!", + "sort_oldest": "Vanhimmat ensin", + "sort_highest_score": "Korkein pistemäärä", + "sort_lowest_score": "Matalin pistemäärä", + "sort_most_voted": "Eniten äänestetyt", + "rating": "Arvio", + "rating_stats": "Arvio", + "rating_very_negative": "Erittäin negatiivinen", + "rating_negative": "Negatiivinen", + "rating_neutral": "Neutraali", + "rating_positive": "Positiivinen", + "rating_very_positive": "Erittäin positiivinen", + "submit_review": "Lähetä", + "submitting": "Lähetetään...", + "review_submitted_successfully": "Arvostelu lähetetty onnistuneesti!", + "review_submission_failed": "Arvostelun lähettäminen epäonnistui. Yritä uudelleen.", + "review_cannot_be_empty": "Arvostelun tekstikenttä ei voi olla tyhjä.", + "review_deleted_successfully": "Arvostelu poistettu onnistuneesti.", + "review_deletion_failed": "Arvostelun poisto epäonnistui. Yritä uudelleen.", + "loading_reviews": "Ladataan arvosteluja...", + "loading_more_reviews": "Ladataan lisää arvosteluja...", + "load_more_reviews": "Lataa lisää arvosteluja", + "you_seemed_to_enjoy_this_game": "Näyttää siltä, että nautit tästä pelistä", + "would_you_recommend_this_game": "Haluatko jättää arvion tästä pelistä?", + "yes": "Kyllä", + "maybe_later": "Ehkä myöhemmin", + "rating_count": "Arvio", + "delete_review": "Poista arvostelu", + "remove_review": "Poista arvostelu", + "delete_review_modal_title": "Haluatko varmasti poistaa arvostelusi?", + "delete_review_modal_description": "Tätä toimintoa ei voi peruuttaa.", + "delete_review_modal_delete_button": "Poista", + "delete_review_modal_cancel_button": "Peruuta", + "show_original": "Näytä alkuperäinen", + "show_translation": "Näytä käännös", + "show_original_translated_from": "Näytä alkuperäinen (käännös kielestä {{language}})", + "hide_original": "Piilota alkuperäinen", + "cloud_save": "Pilvitallennus", + "cloud_save_description": "Tallenna edistymisesi pilveen ja jatka pelaamista millä tahansa laitteella", + "backups": "Varmuuskopiot", + "install_backup": "Asenna", + "delete_backup": "Poista", + "create_backup": "Luo uusi varmuuskopio", + "last_backup_date": "Viimeisin varmuuskopio {{date}}", + "no_backup_preview": "Tallennuksia ei löytynyt tälle otsikolle", + "restoring_backup": "Palautetaan varmuuskopiota ({{progress}} valmis)…", + "uploading_backup": "Ladataan varmuuskopiota…", + "no_backups": "Et ole vielä luonut varmuuskopioita tästä pelistä", + "backup_uploaded": "Varmuuskopio ladattu", + "backup_failed": "Varmuuskopiointi epäonnistui", + "backup_deleted": "Varmuuskopio poistettu", + "backup_restored": "Varmuuskopio palautettu", + "see_all_achievements": "Näytä kaikki saavutukset", + "sign_in_to_see_achievements": "Kirjaudu sisään nähdäksesi saavutukset", + "mapping_method_automatic": "Automaattinen", + "mapping_method_manual": "Manuaalinen", + "mapping_method_label": "Kartoitusmenetelmä", + "files_automatically_mapped": "Tiedostot kartoitetu automaattisesti", + "no_backups_created": "Tälle pelille ei ole luotu varmuuskopioita", + "manage_files": "Hallitse tiedostoja", + "loading_save_preview": "Etsitään tallennuksia…", + "wine_prefix": "Wine-etuliite", + "wine_prefix_description": "Tässä pelissä käytettävä Wine-etuliite", + "launch_options": "Käynnistysvalinnat", + "launch_options_description": "Edistyneet käyttäjät voivat tehdä muutoksia käynnistysvalintoihin", + "launch_options_placeholder": "Valintaa ei määritetty", + "no_download_option_info": "Tietoja ei saatavilla", + "backup_deletion_failed": "Varmuuskopion poisto epäonnistui", + "max_number_of_artifacts_reached": "Tämän pelin enimmäismäärä varmuuskopioita saavutettu", + "achievements_not_sync": "Saavutuksesi eivät ole synkronoidut", + "manage_files_description": "Hallitse tallennettavia ja palautettavia tiedostoja", + "select_folder": "Valitse kansio", + "backup_from": "Varmuuskopio {{date}}", + "automatic_backup_from": "Automaattinen varmuuskopio {{date}}", + "enable_automatic_cloud_sync": "Ota automaattinen pilvisynkronointi käyttöön", + "custom_backup_location_set": "Mukautettu varmuuskopiosijainti asetettu", + "no_directory_selected": "Hakemistoa ei valittu", + "no_write_permission": "Ei voi ladata tähän hakemistoon. Napsauta tästä saadaksesi lisätietoja.", + "reset_achievements": "Nollaa saavutukset", + "reset_achievements_description": "Tämä nollaa kaikki saavutukset pelille {{game}}", + "reset_achievements_title": "Oletko varma?", + "reset_achievements_success": "Saavutukset nollattu onnistuneesti", + "reset_achievements_error": "Saavutusten nollaus epäonnistui", + "download_error_gofile_quota_exceeded": "Olet ylittänyt Gofilen kuukausikiintiön. Odota, kunnes kiintiö palautuu.", + "download_error_real_debrid_account_not_authorized": "Real-Debrid -tilisi ei ole valtuutettu suorittamaan uusia latauksia. Tarkista tilin asetukset ja yritä uudelleen.", + "download_error_not_cached_on_real_debrid": "Tämä lataus ei ole saatavilla Real-Debridissä, eikä lataustilan hakeminen Real-Debridistä ole toistaiseksi mahdollista.", + "update_playtime_title": "Päivitä peliaika", + "update_playtime_description": "Päivitä pelin {{game}} peliaika manuaalisesti", + "update_playtime": "Päivitä peliaika", + "update_playtime_success": "Peliaika päivitetty onnistuneesti", + "update_playtime_error": "Peliajan päivitys epäonnistui", + "update_game_playtime": "Päivitä peliaika", + "manual_playtime_warning": "Pelituntisi merkitään manuaalisesti päivitetyiksi. Tätä toimintoa ei voi peruuttaa.", + "manual_playtime_tooltip": "Tämä peliaika on päivitetty manuaalisesti", + "download_error_not_cached_on_torbox": "Tämä lataus ei ole saatavilla TorBoxissa, eikä lataustilan hakeminen TorBoxista ole toistaiseksi mahdollista.", + "download_error_not_cached_on_hydra": "Tämä lataus ei ole saatavilla Nimbuksessa.", + "game_removed_from_favorites": "Peli poistettu suosikeista", + "game_added_to_favorites": "Peli lisätty suosikkeihin", + "game_removed_from_pinned": "Peli poistettu kiinnitetyistä", + "game_added_to_pinned": "Peli lisätty kiinnitettyihin", + "automatically_extract_downloaded_files": "Pura ladatut tiedostot automaattisesti", + "create_start_menu_shortcut": "Luo Käynnistä-valikon pikakuvake", + "invalid_wine_prefix_path": "Virheellinen Wine-etuliitteen polku", + "invalid_wine_prefix_path_description": "Wine-etuliitteen polku on virheellinen. Tarkista polku ja yritä uudelleen.", + "missing_wine_prefix": "Wine-etuliite vaaditaan varmuuskopiointiin Linuxissa", + "artifact_renamed": "Varmuuskopio nimettiin uudelleen onnistuneesti", + "rename_artifact": "Nimeä varmuuskopio uudelleen", + "rename_artifact_description": "Anna varmuuskopiolle kuvaavampi nimi.", + "artifact_name_label": "Varmuuskopion nimi", + "artifact_name_placeholder": "Syötä nimi varmuuskopiolle", + "save_changes": "Tallenna muutokset", + "required_field": "Tämä kenttä on pakollinen", + "max_length_field": "Tämän kentän on oltava alle {{length}} merkkiä", + "freeze_backup": "Kiinnitä, jotta sitä ei ylikirjoiteta automaattisilla varmuuskopioilla", + "unfreeze_backup": "Poista kiinnitys", + "backup_frozen": "Varmuuskopio kiinnitetty", + "backup_unfrozen": "Varmuuskopion kiinnitys poistettu", + "backup_freeze_failed": "Varmuuskopion kiinnitys epäonnistui", + "backup_freeze_failed_description": "Sinun on jätettävä vähintään yksi paikka vapaaksi automaattisille varmuuskopioille", + "edit_game_modal_button": "Muokkaa pelin tietoja", + "game_details": "Pelin tiedot", + "currency_symbol": "€", + "currency_country": "fi", + "prices": "Hinnat", + "no_prices_found": "Hintoja ei löytynyt", + "view_all_prices": "Napsauta nähdäksesi kaikki hinnat", + "retail_price": "Vähittäishinta", + "keyshop_price": "Keyshop-hinta", + "historical_retail": "Historialliset vähittäishinnat", + "historical_keyshop": "Historialliset keyshop-hinnat", + "language": "Kieli", + "caption": "Tekstitys", + "audio": "Ääni", + "filter_by_source": "Suodata lähteen mukaan", + "no_repacks_found": "Tämän pelin lähteitä ei löytynyt" + }, + "activation": { + "title": "Aktivoi Hydra", + "installation_id": "Asennustunnus:", + "enter_activation_code": "Syötä aktivointikoodisi", + "message": "Jos et tiedä mistä sitä pyytää, sinun ei pitäisi sitä olla.", + "activate": "Aktivoi", + "loading": "Ladataan…" + }, + "downloads": { + "resume": "Jatka", + "pause": "Keskeytä", + "eta": "Lopetus {{eta}}", + "paused": "Keskeytetty", + "verifying": "Tarkistetaan…", + "completed": "Valmis", + "removed": "Ei ladattu", + "cancel": "Peruuta", + "filter": "Hae ladattuja pelejä", + "remove": "Poista", + "downloading_metadata": "Ladataan metatietoja…", + "deleting": "Poistetaan asennustiedostoa…", + "delete": "Poista asennustiedosto", + "delete_modal_title": "Oletko varma?", + "delete_modal_description": "Tämä poistaa kaikki asennustiedostot tietokoneeltasi", + "install": "Asenna", + "download_in_progress": "Käynnissä", + "queued_downloads": "Jonossa olevat lataukset", + "downloads_completed": "Valmiit", + "queued": "Jonossa", + "no_downloads_title": "Täällä on niin tyhjää...", + "no_downloads_description": "Et ole vielä ladannut mitään Hydran kautta, mutta ei ole koskaan liian myöhäistä aloittaa.", + "checking_files": "Tarkistetaan tiedostoja…", + "seeding": "Jakaminen", + "stop_seeding": "Lopeta jakaminen", + "resume_seeding": "Jatka jakamista", + "options": "Hallinnoi", + "extract": "Pura tiedostot", + "extracting": "Puretaan tiedostoja…" + }, + "settings": { + "downloads_path": "Latausten polku", + "change": "Vaihda", + "notifications": "Ilmoitukset", + "enable_download_notifications": "Latauksen valmistuessa", + "enable_repack_list_notifications": "Kun uusi repack lisätään", + "real_debrid_api_token_label": "Real-Debrid API-tunnus", + "quit_app_instead_hiding": "Sovellus sulkeutuu system tray -alueelle sijasta", + "launch_with_system": "Käynnistä Hydra järjestelmän mukana", + "general": "Yleiset", + "behavior": "Käyttäytyminen", + "download_sources": "Latauslähteet", + "language": "Kieli", + "api_token": "API-avain", + "enable_real_debrid": "Ota Real-Debrid käyttöön", + "real_debrid_description": "Real-Debrid on rajoittamaton lataaja, jonka avulla voit ladata nopeasti verkossa olevia tiedostoja tai striimata ne välittömästi soittimeen yksityisen verkon kautta, joka kiertää kaikki estot.", + "debrid_invalid_token": "Virheellinen API-avain", + "debrid_api_token_hint": "API-avain voidaan hankkia <0>täältä", + "real_debrid_free_account_error": "Tili \"{{username}}\" - ei ole tilaus. Ota Real-Debrid-tilaus", + "debrid_linked_message": "Tili \"{{username}}\" linkitetty", + "save_changes": "Tallenna muutokset", + "changes_saved": "Muutokset tallennettu onnistuneesti", + "download_sources_description": "Hydra hakee latauslinkit näistä lähteistä. URL-osoitteen on sisällettävä suora linkki .json-tiedostoon, joka sisältää latauslinkit.", + "validate_download_source": "Vahvista", + "remove_download_source": "Poista", + "add_download_source": "Lisää lähde", + "download_count_zero": "Ei latauksia listassa", + "download_count_one": "{{countFormatted}} lataus listassa", + "download_count_other": "{{countFormatted}} latausta listassa", + "download_source_url": "Lähteen URL-osoite", + "add_download_source_description": "Liitä linkki .json-tiedostoon", + "download_source_up_to_date": "Ajan tasalla", + "download_source_errored": "Virhe", + "sync_download_sources": "Päivitä lähteet", + "removed_download_source": "Lähde poistettu", + "removed_download_sources": "Lähteet poistettu", + "cancel_button_confirmation_delete_all_sources": "Ei", + "confirm_button_confirmation_delete_all_sources": "Kyllä, poista kaikki", + "title_confirmation_delete_all_sources": "Poista kaikki lähteet", + "description_confirmation_delete_all_sources": "Poistat kaikki lähteet", + "button_delete_all_sources": "Poista kaikki lähteet", + "added_download_source": "Lähde lisätty", + "download_sources_synced": "Kaikki lähteet päivitetty", + "insert_valid_json_url": "Liitä kelvollinen JSON-tiedoston URL-osoite", + "found_download_option_zero": "Ei latausvaihtoehtoja löytynyt", + "found_download_option_one": "Löytyi {{countFormatted}} latausvaihtoehto", + "found_download_option_other": "Löytyi {{countFormatted}} latausvaihtoehtoa", + "import": "Tuo", + "importing": "Tuodaan...", + "public": "Julkinen", + "private": "Yksityinen", + "friends_only": "Vain kavereille", + "privacy": "Yksityisyys", + "profile_visibility": "Profiilin näkyvyys", + "profile_visibility_description": "Valitse, kuka voi nähdä profiilisi ja kirjastosi", + "required_field": "Tämä kenttä on pakollinen", + "source_already_exists": "Tämä lähde on jo lisätty", + "must_be_valid_url": "Lähteen on oltava kelvollinen URL-osoite", + "blocked_users": "Estetyt käyttäjät", + "user_unblocked": "Käyttäjä estäminen poistettu", + "enable_achievement_notifications": "Kun saavutus avataan", + "launch_minimized": "Käynnistä Hydra pienennettynä", + "disable_nsfw_alert": "Poista sopimattoman sisällön varoitus käytöstä", + "seed_after_download_complete": "Jaa latauksen valmistumisen jälkeen", + "show_hidden_achievement_description": "Näytä piilotettujen saavutusten kuvaukset ennen niiden ansaitsemista", + "account": "Tili", + "no_users_blocked": "Sinulla ei ole estettyjä käyttäjiä", + "subscription_active_until": "Hydra Cloud -tilisi on voimassa {{date}} asti", + "manage_subscription": "Hallinnoi tilausta", + "update_email": "Päivitä sähköposti", + "update_password": "Päivitä salasana", + "current_email": "Nykyinen sähköposti:", + "no_email_account": "Et ole vielä asettanut sähköpostiosoitetta", + "account_data_updated_successfully": "Tilitiedot päivitetty onnistuneesti", + "renew_subscription": "Uusi Hydra Cloud -tilaus", + "subscription_expired_at": "Tilauksesi vanheni {{date}}", + "no_subscription": "Nauti Hydrasta täysin rinnoin", + "become_subscriber": "Tule Hydra Cloud -tilaajaksi", + "subscription_renew_cancelled": "Automaattinen uusinta peruutettu", + "subscription_renews_on": "Tilauksesi uusiutuu {{date}}", + "bill_sent_until": "Seuraava laskusi lähetetään ennen tätä päivää", + "no_themes": "Näyttää siltä, että sinulla ei vielä ole teemoja, mutta älä huoli, napsauta tästä luodaksesi ensimmäisen mestariteoksesi", + "editor_tab_code": "Koodi", + "editor_tab_info": "Tiedot", + "editor_tab_save": "Tallenna", + "web_store": "Verkkokauppa", + "clear_themes": "Tyhjennä", + "create_theme": "Luo", + "create_theme_modal_title": "Luo mukautettu teema", + "create_theme_modal_description": "Luo uusi teema Hydran ulkoasun mukauttamiseksi", + "theme_name": "Nimi", + "insert_theme_name": "Syötä teeman nimi", + "set_theme": "Aseta teema", + "unset_theme": "Poista teema", + "delete_theme": "Poista teema", + "edit_theme": "Muokkaa teemaa", + "delete_all_themes": "Poista kaikki teemat", + "delete_all_themes_description": "Tämä poistaa kaikki mukautetut teemasi", + "delete_theme_description": "Tämä poistaa teeman {{theme}}", + "cancel": "Peruuta", + "appearance": "Ulkoasu", + "debrid": "Debrid", + "debrid_description": "Debrid-palvelut ovat premium-lataajia ilman rajoituksia, joiden avulla voit ladata tiedostoja nopeasti useista tiedostonjakopalveluista, vain internet-yhteytesi nopeuden rajoittamina.", + "enable_torbox": "Ota TorBox käyttöön", + "torbox_description": "TorBox on premium-palvelusi, joka kilpailee jopa parhaimpien markkinoiden palvelimien kanssa.", + "torbox_account_linked": "TorBox-tili linkitetty", + "create_real_debrid_account": "Napsauta tästä, jos sinulla ei vielä ole Real-Debrid-tiliä", + "create_torbox_account": "Napsauta tästä, jos sinulla ei vielä ole TorBox-tiliä", + "real_debrid_account_linked": "Real-Debrid-tili linkitetty", + "name_min_length": "Teeman nimen on oltava vähintään 3 merkkiä", + "import_theme": "Tuo teema", + "import_theme_description": "Tuot teeman {{theme}} teemakaupasta", + "error_importing_theme": "Virhe teemaa tuotaessa", + "theme_imported": "Teema tuotu onnistuneesti", + "enable_friend_request_notifications": "Kun kaveripyyntö vastaanotetaan", + "enable_auto_install": "Lataa päivitykset automaattisesti", + "common_redist": "Kirjastot", + "common_redist_description": "Joidenkin pelien käyttö vaatii kirjastoja. Ongelmien välttämiseksi on suositeltavaa asentaa ne.", + "install_common_redist": "Asenna", + "installing_common_redist": "Asennetaan…", + "show_download_speed_in_megabytes": "Näytä latausnopeus megatavuina sekunnissa", + "extract_files_by_default": "Pura tiedostot oletusarvoisesti latauksen jälkeen", + "enable_steam_achievements": "Ota Steam-saavutusten haku käyttöön", + "achievement_custom_notification_position": "Saavutusilmoitusten sijainti", + "top-left": "Vasemmalla ylhäällä", + "top-center": "Yläkeskellä", + "top-right": "Oikealla ylhäällä", + "bottom-left": "Vasemmalla alhaalla", + "bottom-center": "Alakeskellä", + "bottom-right": "Oikealla alhaalla", + "enable_achievement_custom_notifications": "Ota saavutusilmoitukset käyttöön", + "alignment": "Tasaus", + "variation": "Muunnelma", + "default": "Oletus", + "rare": "Harvinainen", + "platinum": "Platina", + "hidden": "Piilotettu", + "test_notification": "Testi-ilmoitus", + "notification_preview": "Saavutusilmoituksen esikatselu", + "enable_friend_start_game_notifications": "Kun kaveri aloittaa pelin pelaamisen" + }, + "notifications": { + "download_complete": "Lataus valmis", + "game_ready_to_install": "{{title}} valmis asennettavaksi", + "repack_list_updated": "Repack-lista päivitetty", + "repack_count_one": "{{count}} repack lisätty", + "repack_count_other": "{{count}} repackia lisätty", + "new_update_available": "Uusi versio {{version}} saatavilla", + "restart_to_install_update": "Käynnistä Hydra uudelleen asentaaksesi päivityksen", + "notification_achievement_unlocked_title": "Saavutus avattu pelille {{game}}", + "notification_achievement_unlocked_body": "{{achievement}} ja muut {{count}} avattiin", + "new_friend_request_description": "{{displayName}} lähetti sinulle kaveripyynnön", + "new_friend_request_title": "Uusi kaveripyyntö", + "extraction_complete": "Purkaminen valmis", + "game_extracted": "{{title}} purettu onnistuneesti", + "friend_started_playing_game": "{{displayName}} aloitti pelin pelaamisen", + "test_achievement_notification_title": "Tämä on testi-ilmoitus", + "test_achievement_notification_description": "Aika siistiä, eikö?" + }, + "system_tray": { + "open": "Avaa Hydra", + "quit": "Lopeta" + }, + "game_card": { + "available_one": "Saatavilla", + "available_other": "Saatavilla", + "no_downloads": "Ei saatavilla olevia lähteitä", + "calculating": "Lasketaan" + }, + "binary_not_found_modal": { + "title": "Ohjelmia ei asennettu", + "description": "Wine tai Lutris ei löytynyt", + "instructions": "Opi oikea tapa asentaa kumpi tahansa Linux-jakelullesi, jotta peli toimii kunnolla" + }, + "modal": { + "close": "Sulje" + }, + "forms": { + "toggle_password_visibility": "Näytä salasana" + }, + "user_profile": { + "amount_hours": "{{amount}} tuntia", + "amount_minutes": "{{amount}} minuuttia", + "amount_hours_short": "{{amount}}t", + "amount_minutes_short": "{{amount}}min", + "last_time_played": "Viimeisin peli {{period}}", + "activity": "Viimeisin toiminta", + "library": "Kirjasto", + "pinned": "Kiinnitetyt", + "achievements_earned": "Ansaittu saavutukset", + "played_recently": "Äskettäin pelatut", + "playtime": "Peliaika", + "total_play_time": "Yhteensä pelattu", + "manual_playtime_tooltip": "Peliaika on päivitetty manuaalisesti", + "no_recent_activity_title": "Hmm... Täällä ei ole mitään", + "no_recent_activity_description": "Et ole pelannut mitään vähään aikaan. On aika muuttaa se!", + "display_name": "Näyttönimi", + "saving": "Tallennetaan", + "save": "Tallenna", + "edit_profile": "Muokkaa profiilia", + "saved_successfully": "Tallennettu onnistuneesti", + "try_again": "Yritä uudelleen", + "sign_out_modal_title": "Oletko varma?", + "cancel": "Peruuta", + "successfully_signed_out": "Kirjauduttu ulos onnistuneesti", + "sign_out": "Kirjaudu ulos", + "playing_for": "Pelattu {{amount}}", + "sign_out_modal_text": "Kirjastosi on linkitetty nykyiseen tiliisi. Kirjautumalla ulos kirjastosi ei ole käytettävissä, eikä edistymistä tallenneta. Kirjaudu ulos?", + "add_friends": "Lisää kavereita", + "add": "Lisää", + "friend_code": "Kaverikoodi", + "see_profile": "Näytä profiili", + "sending": "Lähetetään", + "friend_request_sent": "Kaveripyyntö lähetetty", + "friends": "Kaverit", + "friends_list": "Kaverilista", + "user_not_found": "Käyttäjää ei löytynyt", + "block_user": "Estä käyttäjä", + "add_friend": "Lisää kaveriksi", + "request_sent": "Pyyntö lähetetty", + "request_received": "Pyyntö vastaanotettu", + "accept_request": "Hyväksy pyyntö", + "ignore_request": "Ohita pyyntö", + "cancel_request": "Peruuta pyyntö", + "undo_friendship": "Poista kaveri", + "request_accepted": "Pyyntö hyväksytty", + "user_blocked_successfully": "Käyttäjä estetty onnistuneesti", + "user_block_modal_text": "{{displayName}} estetään", + "blocked_users": "Estetyt käyttäjät", + "unblock": "Poista esto", + "no_friends_added": "Et ole vielä lisännyt yhtään kaveria", + "pending": "Odottaa", + "no_pending_invites": "Sinulla ei ole vasteita odottavia pyyntöjä", + "no_blocked_users": "Et ole estänyt yhtään käyttäjää", + "friend_code_copied": "Kaverikoodi kopioitu", + "undo_friendship_modal_text": "Tämä purkaa kaverisuhteen käyttäjän {{displayName}} kanssa.", + "privacy_hint": "Määrittääksesi kuka voi nähdä tämän, siirry <0>Asetuksiin.", + "locked_profile": "Tämä profiili on yksityinen", + "image_process_failure": "Kuvan käsittely epäonnistui", + "required_field": "Tämä kenttä on pakollinen", + "displayname_min_length": "Näyttönimen on oltava vähintään 3 merkkiä.", + "displayname_max_length": "Näyttönimen on oltava enintään 50 merkkiä.", + "report_profile": "Ilmianna tämä profiili", + "report_reason": "Miksi ilmiannat tämän profiilin?", + "report_description": "Lisätietoja", + "report_description_placeholder": "Lisätietoja", + "report": "Ilmianna", + "report_reason_hate": "Vihapuhe", + "report_reason_sexual_content": "Seksuaalinen sisältö", + "report_reason_violence": "Väkivalta", + "report_reason_spam": "Roskaposti", + "report_reason_other": "Muu", + "profile_reported": "Profiili-ilmoitus lähetetty", + "your_friend_code": "Kaverikoodisi:", + "upload_banner": "Lataa banneri", + "uploading_banner": "Ladataan banneria...", + "background_image_updated": "Taustakuva päivitetty", + "stats": "Tilastot", + "achievements": "Saavutukset", + "games": "Pelit", + "top_percentile": "Top {{percentile}}%", + "ranking_updated_weekly": "Sijoitus päivitetään viikoittain", + "playing": "Pelaamassa {{game}}", + "achievements_unlocked": "Saavutukset avattu", + "earned_points": "Ansaitut pisteet:", + "show_achievements_on_profile": "Näytä saavutuksesi profiilissasi", + "show_points_on_profile": "Näytä ansaitut pisteet profiilissasi", + "error_adding_friend": "Kaveripyynnön lähettäminen epäonnistui. Tarkista kaverikoodi", + "friend_code_length_error": "Kaverikoodin on oltava 8 merkkiä", + "game_removed_from_pinned": "Peli poistettu kiinnitetyistä", + "game_added_to_pinned": "Peli lisätty kiinnitettyihin", + "karma": "Karma", + "karma_count": "karmaa", + "karma_description": "Ansittu positiivisilla arvosteluäänillä" + }, + "achievement": { + "achievement_unlocked": "Saavutus avattu", + "user_achievements": "Käyttäjän {{displayName}} saavutukset", + "your_achievements": "Sinun saavutuksesi", + "unlocked_at": "Avattu: {{date}}", + "subscription_needed": "Hydra Cloud -tilaus tarvitaan tämän sisällön katsomiseen", + "new_achievements_unlocked": "{{achievementCount}} uutta saavutusta avattu {{gameCount}} pelistä", + "achievement_progress": "{{unlockedCount}}/{{totalCount}} saavutusta", + "achievements_unlocked_for_game": "{{achievementCount}} uutta saavutusta avattu pelille {{gameTitle}}", + "hidden_achievement_tooltip": "Tämä on piilotettu saavutus", + "achievement_earn_points": "Ansaitse {{points}} pistettä tällä saavutuksella", + "earned_points": "Ansaitut pisteet:", + "available_points": "Saatavilla olevat pisteet:", + "how_to_earn_achievements_points": "Kuinka ansaita saavutuspisteitä?" + }, + "hydra_cloud": { + "subscription_tour_title": "Hydra Cloud -tilaus", + "subscribe_now": "Tilaa nyt", + "cloud_saving": "Pilvitallennus", + "cloud_achievements": "Tallenna saavutuksesi pilveen", + "animated_profile_picture": "Animaoidut profiilikuvat", + "premium_support": "Premium-tuki", + "show_and_compare_achievements": "Näytä ja vertaile saavutuksiasi muiden käyttäjien saavutuksiin", + "animated_profile_banner": "Animoitu profiilin banneri", + "hydra_cloud": "Hydra Cloud", + "hydra_cloud_feature_found": "Olet juuri löytänyt Hydra Cloud -toiminnon!", + "learn_more": "Lue lisää", + "debrid_description": "Lataa 4 kertaa nopeammin Nimbuksella" + } +} From 0575e837c8f01d095fad323111623e540b41a179 Mon Sep 17 00:00:00 2001 From: Zamitto <167933696+zamitto@users.noreply.github.com> Date: Mon, 20 Oct 2025 08:24:04 -0300 Subject: [PATCH 18/18] fix: game achievement cache --- .../achievements/get-game-achievement-data.ts | 22 +++++++++---------- .../achievements/merge-achievements.ts | 1 + src/types/level.types.ts | 1 + 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/main/services/achievements/get-game-achievement-data.ts b/src/main/services/achievements/get-game-achievement-data.ts index 72b49bc5..ffbfac1a 100644 --- a/src/main/services/achievements/get-game-achievement-data.ts +++ b/src/main/services/achievements/get-game-achievement-data.ts @@ -5,15 +5,18 @@ import { logger } from "../logger"; import { db, gameAchievementsSublevel, levelKeys } from "@main/level"; import { AxiosError } from "axios"; -const LOCAL_CACHE_EXPIRATION = 1000 * 60 * 60; // 1 hour - const getModifiedSinceHeader = ( - cachedAchievements: GameAchievement | undefined + cachedAchievements: GameAchievement | undefined, + userLanguage: string ): Date | undefined => { if (!cachedAchievements) { return undefined; } + if (userLanguage != cachedAchievements.language) { + return undefined; + } + return cachedAchievements.updatedAt ? new Date(cachedAchievements.updatedAt) : undefined; @@ -28,13 +31,7 @@ export const getGameAchievementData = async ( const cachedAchievements = await gameAchievementsSublevel.get(gameKey); - if (cachedAchievements?.achievements && useCachedData) - return cachedAchievements.achievements; - - if ( - cachedAchievements?.achievements && - Date.now() < (cachedAchievements.updatedAt ?? 0) + LOCAL_CACHE_EXPIRATION - ) { + if (cachedAchievements?.achievements && useCachedData) { return cachedAchievements.achievements; } @@ -50,14 +47,15 @@ export const getGameAchievementData = async ( language, }, { - ifModifiedSince: getModifiedSinceHeader(cachedAchievements), + ifModifiedSince: getModifiedSinceHeader(cachedAchievements, language), } ) .then(async (achievements) => { await gameAchievementsSublevel.put(gameKey, { unlockedAchievements: cachedAchievements?.unlockedAchievements ?? [], achievements, - updatedAt: Date.now() + LOCAL_CACHE_EXPIRATION, + updatedAt: Date.now(), + language, }); return achievements; diff --git a/src/main/services/achievements/merge-achievements.ts b/src/main/services/achievements/merge-achievements.ts index f2ea03ac..804f5933 100644 --- a/src/main/services/achievements/merge-achievements.ts +++ b/src/main/services/achievements/merge-achievements.ts @@ -37,6 +37,7 @@ const saveAchievementsOnLocal = async ( achievements: gameAchievement?.achievements ?? [], unlockedAchievements: unlockedAchievements, updatedAt: gameAchievement?.updatedAt, + language: gameAchievement?.language, }); if (!sendUpdateEvent) return; diff --git a/src/types/level.types.ts b/src/types/level.types.ts index 053bd218..ee2b2918 100644 --- a/src/types/level.types.ts +++ b/src/types/level.types.ts @@ -83,6 +83,7 @@ export interface GameAchievement { achievements: SteamAchievement[]; unlockedAchievements: UnlockedAchievement[]; updatedAt: number | undefined; + language: string | undefined; } export type AchievementCustomNotificationPosition =