diff --git a/package.json b/package.json index f78b6167..b4ed8d03 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "hydra", "productName": "Hydra", - "version": "1.0.1", + "version": "1.1.0", "description": "No bullshit. Just play.", "main": ".webpack/main", "repository": { diff --git a/resources/hydra.db b/resources/hydra.db index c523903b..f673b2e7 100644 Binary files a/resources/hydra.db and b/resources/hydra.db differ diff --git a/src/locales/en/translation.json b/src/locales/en/translation.json index 2d21605e..6c5aa32c 100644 --- a/src/locales/en/translation.json +++ b/src/locales/en/translation.json @@ -1,5 +1,5 @@ { - "catalogue": { + "home": { "featured": "Featured", "recently_added": "Recently added", "trending": "Trending", @@ -7,6 +7,7 @@ "no_results": "No results found" }, "sidebar": { + "home": "Home", "catalogue": "Catalogue", "downloads": "Downloads", "settings": "Settings", @@ -19,6 +20,7 @@ }, "header": { "search": "Search", + "home": "Home", "catalogue": "Catalogue", "downloads": "Downloads", "search_results": "Search results", @@ -30,6 +32,10 @@ "checking_files": "Checking {{title}} files… ({{percentage}} complete)", "downloading": "Downloading {{title}}… ({{percentage}} complete) - Conclusion {{eta}} - {{speed}}" }, + "catalogue": { + "next_page": "Next page", + "previous_page": "Previous page" + }, "game_details": { "open_download_options": "Open download options", "download_options_zero": "No download option", @@ -64,12 +70,13 @@ "remove_from_library": "Remove from library", "no_downloads": "No downloads available", "play_time": "Played for {{amount}}", - "last_time_played": "Played for the last time {{period}}", + "last_time_played": "Last played {{period}}", "not_played_yet": "You haven't played {{title}} yet", "next_suggestion": "Next suggestion", "play": "Play", "deleting": "Deleting installer…", - "close": "Close" + "close": "Close", + "playing_now": "Playing now" }, "activation": { "title": "Activate Hydra", diff --git a/src/locales/es/translation.json b/src/locales/es/translation.json index 19a92dd7..4cc90d15 100644 --- a/src/locales/es/translation.json +++ b/src/locales/es/translation.json @@ -1,5 +1,5 @@ { - "catalogue": { + "home": { "featured": "Destacado", "recently_added": "Recién Añadidos", "trending": "Tendencias", @@ -15,14 +15,16 @@ "checking_files": "{{title}} ({{percentage}} - Analizando archivos…)", "paused": "{{title}} (Pausado)", "downloading": "{{title}} ({{percentage}} - Descargando…)", - "filter": "Filtrar biblioteca" + "filter": "Filtrar biblioteca", + "home": "Hogar" }, "header": { "search": "Buscar", "catalogue": "Catálogo", "downloads": "Descargas", "search_results": "Resultados de búsqueda", - "settings": "Ajustes" + "settings": "Ajustes", + "home": "Hogar" }, "bottom_panel": { "no_downloads_in_progress": "Sin descargas en progreso", @@ -65,11 +67,12 @@ "next_suggestion": "Siguiente sugerencia", "play_time": "Jugado por {{cantidad}}", "install": "Instalar", - "last_time_played": "Jugado por última vez {{period}}", "play": "Jugar", "not_played_yet": "Aún no has jugado a {{title}}", "close": "Cerca", - "deleting": "Eliminando instalador…" + "deleting": "Eliminando instalador…", + "playing_now": "Jugando ahora", + "last_time_played": "Jugado por última vez {{period}}" }, "activation": { "title": "Activar Hydra", @@ -127,5 +130,9 @@ "title": "Programas no instalados", "description": "Los ejecutables de Wine o Lutris no se encontraron en su sistema", "instructions": "Comprueba la forma correcta de instalar cualquiera de ellos en tu distro Linux para que el juego pueda ejecutarse con normalidad" + }, + "catalogue": { + "next_page": "Siguiente página", + "previous_page": "Pagina anterior" } } diff --git a/src/locales/fr/translation.json b/src/locales/fr/translation.json index a351fad9..f4250be2 100644 --- a/src/locales/fr/translation.json +++ b/src/locales/fr/translation.json @@ -1,5 +1,5 @@ { - "catalogue": { + "home": { "featured": "En vedette", "recently_added": "Récemment ajouté", "trending": "Tendance", @@ -15,14 +15,16 @@ "checking_files": "{{title}} ({{percentage}} - Vérification des fichiers…)", "paused": "{{title}} (En pause)", "downloading": "{{title}} ({{percentage}} - Téléchargement en cours…)", - "filter": "Filtrer la bibliothèque" + "filter": "Filtrer la bibliothèque", + "home": "Maison" }, "header": { "search": "Recherche", "catalogue": "Catalogue", "downloads": "Téléchargements", "search_results": "Résultats de la recherche", - "settings": "Paramètres" + "settings": "Paramètres", + "home": "Maison" }, "bottom_panel": { "no_downloads_in_progress": "Aucun téléchargement en cours", @@ -65,11 +67,12 @@ "next_suggestion": "Suggestion suivante", "play_time": "Joué pour {{montant}}", "install": "Installer", - "last_time_played": "Joué pour la dernière fois {{période}}", "play": "Jouer", "not_played_yet": "Vous n'avez pas encore joué à {{title}}", "close": "Fermer", - "deleting": "Suppression du programme d'installation…" + "deleting": "Suppression du programme d'installation…", + "playing_now": "Je joue maintenant", + "last_time_played": "Dernière lecture {{période}}" }, "activation": { "title": "Activer Hydra", @@ -127,5 +130,9 @@ "description": "Les exécutables Wine ou Lutris sont introuvables sur votre système", "instructions": "Vérifiez la bonne façon d'installer l'un d'entre eux sur votre distribution Linux afin que le jeu puisse fonctionner normalement", "title": "Programmes non installés" + }, + "catalogue": { + "next_page": "Page suivante", + "previous_page": "Page précédente" } } diff --git a/src/locales/pt/translation.json b/src/locales/pt/translation.json index 29c32578..a19ca24a 100644 --- a/src/locales/pt/translation.json +++ b/src/locales/pt/translation.json @@ -1,5 +1,5 @@ { - "catalogue": { + "home": { "featured": "Destaque", "recently_added": "Novidades", "trending": "Populares", @@ -15,14 +15,16 @@ "checking_files": "{{title}} ({{percentage}} - Verificando arquivos…)", "paused": "{{title}} (Pausado)", "downloading": "{{title}} ({{percentage}} - Baixando…)", - "filter": "Filtrar biblioteca" + "filter": "Filtrar biblioteca", + "home": "Início" }, "header": { "search": "Buscar", "catalogue": "Catálogo", "downloads": "Downloads", "search_results": "Resultados da busca", - "settings": "Configurações" + "settings": "Configurações", + "home": "Início" }, "bottom_panel": { "no_downloads_in_progress": "Sem downloads em andamento", @@ -65,11 +67,12 @@ "play_time": "Jogado por {{amount}}", "next_suggestion": "Próxima sugestão", "install": "Instalar", - "last_time_played": "Jogado pela última vez {{period}}", + "last_time_played": "Jogou por último {{period}}", "play": "Jogar", "not_played_yet": "Você ainda não jogou {{title}}", "close": "Fechar", - "deleting": "Excluindo instalador…" + "deleting": "Excluindo instalador…", + "playing_now": "Jogando agora" }, "activation": { "title": "Ativação", @@ -127,5 +130,9 @@ "title": "Programas não instalados", "description": "Não foram encontrados no seu sistema os executáveis do Wine ou Lutris", "instructions": "Verifique a forma correta de instalar algum deles na sua distro Linux para que o jogo possa ser executado normalmente" + }, + "catalogue": { + "next_page": "Próxima página", + "previous_page": "Página anterior" } } diff --git a/src/main/data-source.ts b/src/main/data-source.ts index 942f984d..d1bfe65f 100644 --- a/src/main/data-source.ts +++ b/src/main/data-source.ts @@ -7,6 +7,7 @@ import { RepackerFriendlyName, UserPreferences, MigrationScript, + SteamGame, } from "@main/entity"; import type { SqliteConnectionOptions } from "typeorm/driver/sqlite/SqliteConnectionOptions"; @@ -24,6 +25,7 @@ export const createDataSource = (options: Partial) => UserPreferences, GameShopCache, MigrationScript, + SteamGame, ], ...options, }); diff --git a/src/main/entity/index.ts b/src/main/entity/index.ts index ec851a64..e93ba92e 100644 --- a/src/main/entity/index.ts +++ b/src/main/entity/index.ts @@ -5,3 +5,4 @@ export * from "./repacker-friendly-name.entity"; export * from "./user-preferences.entity"; export * from "./game-shop-cache.entity"; export * from "./migration-script.entity"; +export * from "./steam-game.entity"; diff --git a/src/main/entity/steam-game.entity.ts b/src/main/entity/steam-game.entity.ts new file mode 100644 index 00000000..775372fb --- /dev/null +++ b/src/main/entity/steam-game.entity.ts @@ -0,0 +1,10 @@ +import { Column, Entity, PrimaryColumn } from "typeorm"; + +@Entity("steam_game") +export class SteamGame { + @PrimaryColumn() + id: number; + + @Column() + name: string; +} diff --git a/src/main/events/catalogue/get-catalogue.ts b/src/main/events/catalogue/get-catalogue.ts index 6345423e..3e802c92 100644 --- a/src/main/events/catalogue/get-catalogue.ts +++ b/src/main/events/catalogue/get-catalogue.ts @@ -1,25 +1,22 @@ -import { formatName, repackerFormatter } from "@main/helpers"; -import { getTrendingGames } from "@main/services"; -import type { CatalogueCategory, CatalogueEntry } from "@types"; +import { formatName, getSteamAppAsset, repackerFormatter } from "@main/helpers"; +import type { CatalogueCategory, CatalogueEntry, GameShop } from "@types"; import { stateManager } from "@main/state-manager"; -import { searchGames } from "../helpers/search-games"; +import { searchGames, searchRepacks } from "../helpers/search-games"; import { registerEvent } from "../register-event"; +import { requestSteam250 } from "@main/services"; const repacks = stateManager.getValue("repacks"); +interface GetStringForLookup { + (index: number): string; +} + const getCatalogue = async ( _event: Electron.IpcMainInvokeEvent, category: CatalogueCategory ) => { - const trendingGames = await getTrendingGames(); - - let i = 0; - const results: CatalogueEntry[] = []; - - const getStringForLookup = (index: number) => { - if (category === "trending") return trendingGames[index]; - + const getStringForLookup = (index: number): string => { const repack = repacks[index]; const formatter = repackerFormatter[repack.repacker as keyof typeof repackerFormatter]; @@ -30,10 +27,56 @@ const getCatalogue = async ( if (!repacks.length) return []; const resultSize = 12; - const requestSize = resultSize * 2; - let lookupRequest = []; - while (results.length < resultSize) { + if (category === "trending") { + return getTrendingCatalogue(resultSize); + } else { + return getRecentlyAddedCatalogue( + resultSize, + resultSize, + getStringForLookup + ); + } +}; + +const getTrendingCatalogue = async ( + resultSize: number +): Promise => { + const results: CatalogueEntry[] = []; + const trendingGames = await requestSteam250("/30day"); + for ( + let i = 0; + i < trendingGames.length && results.length < resultSize; + i++ + ) { + if (!trendingGames[i]) continue; + + const { title, objectID } = trendingGames[i]; + const repacks = searchRepacks(title); + + if (title && repacks.length) { + const catalogueEntry = { + objectID, + title, + shop: "steam" as GameShop, + cover: getSteamAppAsset("library", objectID), + }; + + results.push({ ...catalogueEntry, repacks }); + } + } + return results; +}; + +const getRecentlyAddedCatalogue = async ( + resultSize: number, + requestSize: number, + getStringForLookup: GetStringForLookup +): Promise => { + let lookupRequest = []; + const results: CatalogueEntry[] = []; + + for (let i = 0; results.length < resultSize; i++) { const stringForLookup = getStringForLookup(i); if (!stringForLookup) { @@ -41,9 +84,7 @@ const getCatalogue = async ( continue; } - lookupRequest.push(searchGames(stringForLookup)); - - i++; + lookupRequest.push(searchGames({ query: stringForLookup })); if (lookupRequest.length < requestSize) { continue; diff --git a/src/main/events/catalogue/get-games.ts b/src/main/events/catalogue/get-games.ts new file mode 100644 index 00000000..b6a4b5bf --- /dev/null +++ b/src/main/events/catalogue/get-games.ts @@ -0,0 +1,32 @@ +import type { CatalogueEntry } from "@types"; + +import { registerEvent } from "../register-event"; +import { searchGames } from "../helpers/search-games"; +import slice from "lodash/slice"; + +const getGames = async ( + _event: Electron.IpcMainInvokeEvent, + take?: number, + prevCursor = 0 +): Promise<{ results: CatalogueEntry[]; cursor: number }> => { + let results: CatalogueEntry[] = []; + let i = 0; + + const batchSize = 100; + + while (results.length < take) { + const games = await searchGames({ + take: batchSize, + skip: (i + prevCursor) * batchSize, + }); + results = [...results, ...games.filter((game) => game.repacks.length)]; + i++; + } + + return { results: slice(results, 0, take), cursor: prevCursor + i }; +}; + +registerEvent(getGames, { + name: "getGames", + memoize: true, +}); diff --git a/src/main/events/catalogue/get-random-game.ts b/src/main/events/catalogue/get-random-game.ts index 59463022..07a827dd 100644 --- a/src/main/events/catalogue/get-random-game.ts +++ b/src/main/events/catalogue/get-random-game.ts @@ -11,10 +11,10 @@ const getRandomGame = async (_event: Electron.IpcMainInvokeEvent) => { const shuffledList = shuffle(games); for (const game of shuffledList) { - const repacks = searchRepacks(formatName(game)); + const repacks = searchRepacks(formatName(game.title)); if (repacks.length) { - const results = await searchGames(game); + const results = await searchGames({ query: game.title }); if (results.length) { return results[0].objectID; diff --git a/src/main/events/catalogue/search-games.ts b/src/main/events/catalogue/search-games.ts index d12715c7..eb9c0640 100644 --- a/src/main/events/catalogue/search-games.ts +++ b/src/main/events/catalogue/search-games.ts @@ -2,7 +2,8 @@ import { registerEvent } from "../register-event"; import { searchGames } from "../helpers/search-games"; registerEvent( - (_event: Electron.IpcMainInvokeEvent, query: string) => searchGames(query), + (_event: Electron.IpcMainInvokeEvent, query: string) => + searchGames({ query, take: 12 }), { name: "searchGames", memoize: true, diff --git a/src/main/events/helpers/search-games.ts b/src/main/events/helpers/search-games.ts index b0524364..9e454917 100644 --- a/src/main/events/helpers/search-games.ts +++ b/src/main/events/helpers/search-games.ts @@ -4,8 +4,10 @@ import orderBy from "lodash/orderBy"; import type { GameRepack, GameShop, CatalogueEntry } from "@types"; import { formatName, getSteamAppAsset, repackerFormatter } from "@main/helpers"; -import { searchSteamGame } from "@main/services"; import { stateManager } from "@main/state-manager"; +import { steamGameRepository } from "@main/repository"; +import { FindManyOptions, Like } from "typeorm"; +import { SteamGame } from "@main/entity"; const { Index } = flexSearch; const repacksIndex = new Index(); @@ -32,33 +34,41 @@ export const searchRepacks = (title: string): GameRepack[] => { ); }; -export const searchGames = async (query: string): Promise => { - const formattedName = formatName(query); +export interface SearchGamesArgs { + query?: string; + take?: number; + skip?: number; +} - const steamResults = await searchSteamGame(formattedName); +export const searchGames = async ({ + query, + take, + skip, +}: SearchGamesArgs): Promise => { + const options: FindManyOptions = {}; - const results = steamResults.map((result) => ({ - objectID: result.objectID, - title: result.name, - shop: "steam" as GameShop, - cover: getSteamAppAsset("library", result.objectID), - })); - - const gamesIndex = new Index({ - tokenize: "full", - }); - - for (let i = 0; i < results.length; i++) { - const game = results[i]; - gamesIndex.add(i, game.title); + if (query) { + options.where = { + name: query ? Like(`%${formatName(query)}%`) : undefined, + }; } - const filteredResults = gamesIndex - .search(query) - .map((index) => results[index as number]); + const steamResults = await steamGameRepository.find({ + ...options, + take, + skip, + order: { name: "ASC" }, + }); + + const results = steamResults.map((result) => ({ + objectID: String(result.id), + title: result.name, + shop: "steam" as GameShop, + cover: getSteamAppAsset("library", String(result.id)), + })); return Promise.all( - filteredResults.map(async (result) => ({ + results.map(async (result) => ({ ...result, repacks: searchRepacks(result.title), })) diff --git a/src/main/events/index.ts b/src/main/events/index.ts index 2fc97a20..866f8317 100644 --- a/src/main/events/index.ts +++ b/src/main/events/index.ts @@ -24,6 +24,7 @@ import "./library/remove-game"; import "./library/delete-game-folder"; import "./catalogue/get-random-game"; import "./catalogue/get-how-long-to-beat"; +import "./catalogue/get-games"; ipcMain.handle("ping", () => "pong"); ipcMain.handle("getVersion", () => app.getVersion()); diff --git a/src/main/repository.ts b/src/main/repository.ts index 48c2e50d..f9edfa1c 100644 --- a/src/main/repository.ts +++ b/src/main/repository.ts @@ -7,6 +7,7 @@ import { RepackerFriendlyName, UserPreferences, MigrationScript, + SteamGame, } from "@main/entity"; export const gameRepository = dataSource.getRepository(Game); @@ -25,3 +26,5 @@ export const gameShopCacheRepository = dataSource.getRepository(GameShopCache); export const migrationScriptRepository = dataSource.getRepository(MigrationScript); + +export const steamGameRepository = dataSource.getRepository(SteamGame); diff --git a/src/main/services/process-watcher.ts b/src/main/services/process-watcher.ts index 9f3dc4c4..b845ab25 100644 --- a/src/main/services/process-watcher.ts +++ b/src/main/services/process-watcher.ts @@ -46,7 +46,9 @@ export const startProcessWatcher = async () => { const zero = gamesPlaytime.get(game.id); const delta = performance.now() - zero; - WindowManager.mainWindow.webContents.send("on-playtime", game.id); + if (WindowManager.mainWindow) { + WindowManager.mainWindow.webContents.send("on-playtime", game.id); + } await gameRepository.update(game.id, { playTimeInMilliseconds: game.playTimeInMilliseconds + delta, @@ -68,7 +70,9 @@ export const startProcessWatcher = async () => { if (gamesPlaytime.has(game.id)) { gamesPlaytime.delete(game.id); - WindowManager.mainWindow.webContents.send("on-game-close", game.id); + if (WindowManager.mainWindow) { + WindowManager.mainWindow.webContents.send("on-game-close", game.id); + } } await sleep(sleepTime); diff --git a/src/main/services/steam-250.ts b/src/main/services/steam-250.ts index 2c80f8a6..6447c226 100644 --- a/src/main/services/steam-250.ts +++ b/src/main/services/steam-250.ts @@ -1,26 +1,24 @@ import axios from "axios"; import { JSDOM } from "jsdom"; import shuffle from "lodash/shuffle"; -import { logger } from "./logger"; -const requestSteam250 = async (path: string) => { - return axios - .get(`https://steam250.com${path}`) - .then((response) => response.data); -}; +export const requestSteam250 = async (path: string) => { + return axios.get(`https://steam250.com${path}`).then((response) => { + const { window } = new JSDOM(response.data); + const { document } = window; -export const getTrendingGames = async () => { - const response = await requestSteam250("/365day").catch((err) => { - logger.error(err.response, { method: "getTrendingGames" }); - throw new Error(err); + return Array.from(document.querySelectorAll(".appline .title a")).map( + ($title: HTMLAnchorElement) => { + const steamGameUrl = $title.href; + if (!steamGameUrl) return null; + + return { + title: $title.textContent, + objectID: steamGameUrl.split("/").pop(), + }; + } + ); }); - - const { window } = new JSDOM(response); - const { document } = window; - - return Array.from(document.querySelectorAll(".appline .title a")).map( - ($title) => $title.textContent! - ); }; const steam250Paths = [ @@ -32,15 +30,5 @@ const steam250Paths = [ export const getRandomSteam250List = async () => { const [path] = shuffle(steam250Paths); - const response = await requestSteam250(path).catch((err) => { - logger.error(err.response, { method: "getRandomSteam250List" }); - throw new Error(err); - }); - - const { window } = new JSDOM(response); - const { document } = window; - - return Array.from(document.querySelectorAll(".appline .title a")).map( - ($title) => $title.textContent! - ); + return requestSteam250(path); }; diff --git a/src/main/services/steam.ts b/src/main/services/steam.ts index 652a3d17..0f2d4987 100644 --- a/src/main/services/steam.ts +++ b/src/main/services/steam.ts @@ -1,5 +1,4 @@ import axios from "axios"; -import { JSDOM } from "jsdom"; import type { SteamAppDetails } from "@types"; @@ -34,45 +33,3 @@ export const getSteamAppDetails = async ( throw new Error(err); }); }; - -export const searchSteamGame = async (term: string) => { - const searchParams = new URLSearchParams({ - start: "0", - count: "12", - sort_by: "_ASC", - /* Games only */ - category1: "998", - term: term, - }); - - const response = await axios.get( - `https://store.steampowered.com/search/results/?${searchParams.toString()}` - ); - - const { window } = new JSDOM(response.data); - const { document } = window; - - const $anchors = Array.from( - document.querySelectorAll("#search_resultsRows a") - ); - - return $anchors.reduce((prev, $a) => { - const $title = $a.querySelector(".title"); - const objectIDs = $a.getAttribute("data-ds-appid"); - - if (!objectIDs) return prev; - - const [objectID] = objectIDs.split(","); - - if (!objectID || prev.some((game) => game.objectID === objectID)) - return prev; - - return [ - ...prev, - { - name: $title.textContent, - objectID, - }, - ]; - }, []); -}; diff --git a/src/main/services/update-resolver.ts b/src/main/services/update-resolver.ts index 6051848d..535659df 100644 --- a/src/main/services/update-resolver.ts +++ b/src/main/services/update-resolver.ts @@ -4,11 +4,12 @@ import { app } from "electron"; import chunk from "lodash/chunk"; import { createDataSource, dataSource } from "@main/data-source"; -import { Repack, RepackerFriendlyName } from "@main/entity"; +import { Repack, RepackerFriendlyName, SteamGame } from "@main/entity"; import { migrationScriptRepository, repackRepository, repackerFriendlyNameRepository, + steamGameRepository, } from "@main/repository"; import { MigrationScript } from "@main/entity/migration-script.entity"; import { Like } from "typeorm"; @@ -115,11 +116,14 @@ export const resolveDatabaseUpdates = async () => { const updateRepackRepository = updateDataSource.getRepository(Repack); const updateRepackerFriendlyNameRepository = updateDataSource.getRepository(RepackerFriendlyName); + const updateSteamGameRepository = updateDataSource.getRepository(SteamGame); - const [updateRepacks, updateRepackerFriendlyNames] = await Promise.all([ - updateRepackRepository.find(), - updateRepackerFriendlyNameRepository.find(), - ]); + const [updateRepacks, updateSteamGames, updateRepackerFriendlyNames] = + await Promise.all([ + updateRepackRepository.find(), + updateSteamGameRepository.find(), + updateRepackerFriendlyNameRepository.find(), + ]); await runMigrationScripts(updateRepacks); @@ -140,5 +144,16 @@ export const resolveDatabaseUpdates = async () => { .orIgnore() .execute(); } + + const steamGamesChunks = chunk(updateSteamGames, 800); + + for (const chunk of steamGamesChunks) { + await steamGameRepository + .createQueryBuilder() + .insert() + .values(chunk) + .orIgnore() + .execute(); + } }); }; diff --git a/src/preload.ts b/src/preload.ts index 22413207..db765453 100644 --- a/src/preload.ts +++ b/src/preload.ts @@ -41,6 +41,8 @@ contextBridge.exposeInMainWorld("electron", { getRandomGame: () => ipcRenderer.invoke("getRandomGame"), getHowLongToBeat: (objectID: string, shop: GameShop, title: string) => ipcRenderer.invoke("getHowLongToBeat", objectID, shop, title), + getGames: (take?: number, prevCursor?: number) => + ipcRenderer.invoke("getGames", take, prevCursor), /* User preferences */ getUserPreferences: () => ipcRenderer.invoke("getUserPreferences"), diff --git a/src/renderer/assets/lottie/downloading.json b/src/renderer/assets/lottie/downloading.json index 650c3f1e..1ef705de 100644 --- a/src/renderer/assets/lottie/downloading.json +++ b/src/renderer/assets/lottie/downloading.json @@ -1 +1,843 @@ -{"nm":"Untitled file","ddd":0,"h":500,"w":500,"meta":{"g":"@lottiefiles/creator 1.10.0"},"layers":[{"ty":0,"nm":" Comp 1","sr":1,"st":0,"op":206,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[450.00000000000006,264.25000000000006]},"s":{"a":0,"k":[56,56]},"sk":{"a":0,"k":0},"p":{"a":0,"k":[252.00000000000006,147.98000000000005]},"r":{"a":0,"k":0},"sa":{"a":0,"k":0},"o":{"a":0,"k":100}},"w":900,"h":900,"refId":"precomp_Comp 1_8be7c981-be87-4e55-8cfd-5d57b5e9227d","ind":1}],"v":"5.7.0","fr":60,"op":204,"ip":0,"assets":[{"nm":"","id":"comp_0_f71d7b15-1869-49ee-ac6f-6aa64921e491","layers":[{"ty":4,"nm":"6","sr":1,"st":0,"op":206,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[-26,-19,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[-26,-25,0],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.416,"y":1},"s":[0],"t":146},{"s":[-50],"t":206}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Shape 1","ix":1,"cix":2,"np":3,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-26,-356],[-26,-26]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":2,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":51,"ix":5},"c":{"a":0,"k":[0.7529,0.7373,0.7333],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"tm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Trim","nm":"Trim Paths 1","ix":2,"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"s":{"a":0,"k":50,"ix":1},"m":1}],"ind":1,"parent":3},{"ty":4,"nm":"5","sr":1,"st":0,"op":206,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[-26,-19,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[-26,-25,0],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.416,"y":1},"s":[0],"t":146},{"s":[50],"t":206}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Shape 1","ix":1,"cix":2,"np":3,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-26,-356],[-26,-26]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":2,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":51,"ix":5},"c":{"a":0,"k":[0.7529,0.7373,0.7333],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"tm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Trim","nm":"Trim Paths 1","ix":2,"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"s":{"a":0,"k":50,"ix":1},"m":1}],"ind":2,"parent":3},{"ty":4,"nm":"4","sr":1,"st":0,"op":206,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[-26,-191,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.416,"y":1},"s":[450,-181,0],"t":146},{"s":[450,456,0],"t":206}],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Shape 1","ix":1,"cix":2,"np":3,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-26,-356],[-26,-26]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":2,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":51,"ix":5},"c":{"a":0,"k":[0.7529,0.7373,0.7333],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":3},{"ty":4,"nm":"3","sr":1,"st":0,"op":206,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[-26,-19,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[-26,-25,0],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.416,"y":1},"s":[-50],"t":60},{"s":[0],"t":120}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Shape 1","ix":1,"cix":2,"np":3,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-26,-356],[-26,-26]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":2,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":51,"ix":5},"c":{"a":0,"k":[0.7529,0.7373,0.7333],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"tm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Trim","nm":"Trim Paths 1","ix":2,"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"s":{"a":0,"k":50,"ix":1},"m":1}],"ind":4,"parent":6},{"ty":4,"nm":"2","sr":1,"st":0,"op":206,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[-26,-19,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[-26,-25,0],"ix":2},"r":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.416,"y":1},"s":[50],"t":60},{"s":[0],"t":120}],"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Shape 1","ix":1,"cix":2,"np":3,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-26,-356],[-26,-26]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":2,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":51,"ix":5},"c":{"a":0,"k":[0.7529,0.7373,0.7333],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]},{"ty":"tm","bm":0,"hd":false,"mn":"ADBE Vector Filter - Trim","nm":"Trim Paths 1","ix":2,"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"s":{"a":0,"k":50,"ix":1},"m":1}],"ind":5,"parent":6},{"ty":4,"nm":"1","sr":1,"st":0,"op":206,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[-26,-191,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":1,"k":[{"o":{"x":0.333,"y":0},"i":{"x":0.416,"y":1},"s":[450,456,0],"t":60},{"s":[450,1135,0],"t":120}],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Shape 1","ix":1,"cix":2,"np":3,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[-26,-356],[-26,-26]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":2,"lj":1,"ml":4,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":51,"ix":5},"c":{"a":0,"k":[0.7529,0.7373,0.7333],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":6}]},{"nm":"Comp 1","id":"precomp_Comp 1_8be7c981-be87-4e55-8cfd-5d57b5e9227d","fr":60,"layers":[{"ty":0,"nm":"seta","sr":1,"st":0,"op":206,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":true,"ao":0,"ks":{"a":{"a":0,"k":[450,450,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[450,450,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"masksProperties":[{"nm":"Mask 1","inv":false,"mode":"a","x":{"a":0,"k":0,"ix":4},"o":{"a":0,"k":100,"ix":3},"pt":{"a":0,"k":{"c":true,"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],"v":[[810,140],[90,140],[105,654],[113.5,733.5],[153,769],[756,770],[782,732],[796,683],[794.5,620.5]]},"ix":1}}],"w":900,"h":900,"refId":"comp_0_f71d7b15-1869-49ee-ac6f-6aa64921e491","ind":1},{"ty":4,"nm":"Shape Layer 1","sr":1,"st":0,"op":206,"ip":0,"hd":false,"ddd":0,"bm":0,"hasMask":false,"ao":0,"ks":{"a":{"a":0,"k":[-1.499,140,0],"ix":1},"s":{"a":0,"k":[73,73,100],"ix":6},"sk":{"a":0,"k":0},"p":{"a":0,"k":[448.501,710,0],"ix":2},"r":{"a":0,"k":0,"ix":10},"sa":{"a":0,"k":0},"o":{"a":0,"k":100,"ix":11}},"shapes":[{"ty":"gr","bm":0,"hd":false,"mn":"ADBE Vector Group","nm":"Shape 1","ix":1,"cix":2,"np":3,"it":[{"ty":"sh","bm":0,"hd":false,"mn":"ADBE Vector Shape - Group","nm":"Path 1","ix":1,"d":1,"ks":{"a":0,"k":{"c":false,"i":[[0,0],[-44.832,-7.482],[-234,0],[0,0]],"o":[[0,0],[264,0],[45.117,0],[0,0]],"v":[[-379.603,34.904],[-318.904,204],[318.904,204],[376.603,34.904]]},"ix":2}},{"ty":"st","bm":0,"hd":false,"mn":"ADBE Vector Graphic - Stroke","nm":"Stroke 1","lc":2,"lj":2,"ml":1,"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":69,"ix":5},"c":{"a":0,"k":[0.7529,0.7373,0.7333],"ix":3}},{"ty":"tr","a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"sk":{"a":0,"k":0,"ix":4},"p":{"a":0,"k":[0,0],"ix":2},"r":{"a":0,"k":0,"ix":6},"sa":{"a":0,"k":0,"ix":5},"o":{"a":0,"k":100,"ix":7}}]}],"ind":2}]}]} \ No newline at end of file +{ + "v": "4.8.0", + "meta": { "g": "LottieFiles AE 3.5.6", "a": "", "k": "", "d": "", "tc": "" }, + "fr": 60, + "ip": 0, + "op": 120, + "w": 714, + "h": 678, + "nm": "Pre-comp 1", + "ddd": 0, + "assets": [ + { + "id": "comp_0", + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 4, + "nm": "centro", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { + "a": 1, + "k": [ + { + "i": { "x": 0.214, "y": 1 }, + "o": { "x": 0.462, "y": 0 }, + "t": 0, + "s": [450, 907, 0], + "to": [0, 0, 0], + "ti": [0, 0, 0] + }, + { "t": 30, "s": [450, 1513, 0] } + ], + "ix": 2 + }, + "a": { "a": 0, "k": [-348, -169, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [0, 0] + ], + "o": [ + [0, 0], + [0, 0] + ], + "v": [ + [-348, -420], + [-348, -30] + ], + "c": false + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [0.854901960784, 0.858823529412, 0.882352941176, 1], + "ix": 3 + }, + "o": { "a": 0, "k": 100, "ix": 4 }, + "w": { "a": 0, "k": 77, "ix": 5 }, + "lc": 2, + "lj": 1, + "ml": 4, + "bm": 0, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-348, -164], "ix": 2 }, + "a": { "a": 0, "k": [-348, -156], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Shape 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 120, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 2, + "ty": 4, + "nm": "esquerdo", + "parent": 1, + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { + "a": 1, + "k": [ + { + "i": { "x": [0.298], "y": [1] }, + "o": { "x": [0.448], "y": [0] }, + "t": 6, + "s": [43.5] + }, + { "t": 36, "s": [-1] } + ], + "ix": 10 + }, + "p": { "a": 0, "k": [-348.39, -36.55, 0], "ix": 2 }, + "a": { "a": 0, "k": [-2, 84, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [0, 0] + ], + "o": [ + [0, 0], + [0, 0] + ], + "v": [ + [-178, -102], + [-2, 84] + ], + "c": false + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [0.854901960784, 0.858823529412, 0.882352941176, 1], + "ix": 3 + }, + "o": { "a": 0, "k": 100, "ix": 4 }, + "w": { "a": 0, "k": 77, "ix": 5 }, + "lc": 2, + "lj": 1, + "ml": 4, + "bm": 0, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [0, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Shape 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "tm", + "s": { "a": 0, "k": 8, "ix": 1 }, + "e": { "a": 0, "k": 100, "ix": 2 }, + "o": { "a": 0, "k": 0, "ix": 3 }, + "m": 1, + "ix": 2, + "nm": "Trim Paths 1", + "mn": "ADBE Vector Filter - Trim", + "hd": false + } + ], + "ip": 0, + "op": 120, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 3, + "ty": 4, + "nm": "direito", + "parent": 1, + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { + "a": 1, + "k": [ + { + "i": { "x": [0.265], "y": [1] }, + "o": { "x": [0.53], "y": [0] }, + "t": 6, + "s": [-43.5] + }, + { "t": 36, "s": [1] } + ], + "ix": 10 + }, + "p": { "a": 0, "k": [-348.39, -36.55, 0], "ix": 2 }, + "a": { "a": 0, "k": [-2, 84, 0], "ix": 1 }, + "s": { "a": 0, "k": [-100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [0, 0] + ], + "o": [ + [0, 0], + [0, 0] + ], + "v": [ + [-178, -102], + [-2, 84] + ], + "c": false + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "tm", + "s": { "a": 0, "k": 8, "ix": 1 }, + "e": { "a": 0, "k": 100, "ix": 2 }, + "o": { "a": 0, "k": 0, "ix": 3 }, + "m": 1, + "ix": 2, + "nm": "Trim Paths 1", + "mn": "ADBE Vector Filter - Trim", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [0.854901960784, 0.858823529412, 0.882352941176, 1], + "ix": 3 + }, + "o": { "a": 0, "k": 100, "ix": 4 }, + "w": { "a": 0, "k": 77, "ix": 5 }, + "lc": 2, + "lj": 1, + "ml": 4, + "bm": 0, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [0, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Shape 1", + "np": 4, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 120, + "st": 0, + "bm": 0 + } + ] + }, + { + "id": "comp_1", + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 4, + "nm": "centro", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { + "a": 1, + "k": [ + { + "i": { "x": 0.569, "y": 1 }, + "o": { "x": 0.809, "y": 0 }, + "t": 0, + "s": [450, 391, 0], + "to": [0, 0, 0], + "ti": [0, 0, 0] + }, + { "t": 30, "s": [450, 997, 0] } + ], + "ix": 2 + }, + "a": { "a": 0, "k": [-348, -169, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [0, 0] + ], + "o": [ + [0, 0], + [0, 0] + ], + "v": [ + [-348, -420], + [-348, -30] + ], + "c": false + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [0.854901960784, 0.858823529412, 0.882352941176, 1], + "ix": 3 + }, + "o": { "a": 0, "k": 100, "ix": 4 }, + "w": { "a": 0, "k": 77, "ix": 5 }, + "lc": 2, + "lj": 1, + "ml": 4, + "bm": 0, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [-348, -164], "ix": 2 }, + "a": { "a": 0, "k": [-348, -156], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Shape 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 120, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 2, + "ty": 4, + "nm": "esquerdo", + "parent": 1, + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { + "a": 1, + "k": [ + { + "i": { "x": [0.552], "y": [1] }, + "o": { "x": [0.702], "y": [0] }, + "t": 0, + "s": [-1] + }, + { "t": 30, "s": [43.5] } + ], + "ix": 10 + }, + "p": { "a": 0, "k": [-348.39, -36.55, 0], "ix": 2 }, + "a": { "a": 0, "k": [-2, 84, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [0, 0] + ], + "o": [ + [0, 0], + [0, 0] + ], + "v": [ + [-178, -102], + [-2, 84] + ], + "c": false + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [0.854901960784, 0.858823529412, 0.882352941176, 1], + "ix": 3 + }, + "o": { "a": 0, "k": 100, "ix": 4 }, + "w": { "a": 0, "k": 77, "ix": 5 }, + "lc": 2, + "lj": 1, + "ml": 4, + "bm": 0, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [0, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Shape 1", + "np": 3, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + }, + { + "ty": "tm", + "s": { "a": 0, "k": 8, "ix": 1 }, + "e": { "a": 0, "k": 100, "ix": 2 }, + "o": { "a": 0, "k": 0, "ix": 3 }, + "m": 1, + "ix": 2, + "nm": "Trim Paths 1", + "mn": "ADBE Vector Filter - Trim", + "hd": false + } + ], + "ip": 0, + "op": 120, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 3, + "ty": 4, + "nm": "direito", + "parent": 1, + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { + "a": 1, + "k": [ + { + "i": { "x": [0.47], "y": [1] }, + "o": { "x": [0.735], "y": [0] }, + "t": 0, + "s": [1] + }, + { "t": 30, "s": [-43.5] } + ], + "ix": 10 + }, + "p": { "a": 0, "k": [-348.39, -36.55, 0], "ix": 2 }, + "a": { "a": 0, "k": [-2, 84, 0], "ix": 1 }, + "s": { "a": 0, "k": [-100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [0, 0] + ], + "o": [ + [0, 0], + [0, 0] + ], + "v": [ + [-178, -102], + [-2, 84] + ], + "c": false + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "tm", + "s": { "a": 0, "k": 8, "ix": 1 }, + "e": { "a": 0, "k": 100, "ix": 2 }, + "o": { "a": 0, "k": 0, "ix": 3 }, + "m": 1, + "ix": 2, + "nm": "Trim Paths 1", + "mn": "ADBE Vector Filter - Trim", + "hd": false + }, + { + "ty": "st", + "c": { + "a": 0, + "k": [0.854901960784, 0.858823529412, 0.882352941176, 1], + "ix": 3 + }, + "o": { "a": 0, "k": 100, "ix": 4 }, + "w": { "a": 0, "k": 77, "ix": 5 }, + "lc": 2, + "lj": 1, + "ml": 4, + "bm": 0, + "nm": "Stroke 1", + "mn": "ADBE Vector Graphic - Stroke", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [0, 0], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Shape 1", + "np": 4, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 120, + "st": 0, + "bm": 0 + } + ] + } + ], + "layers": [ + { + "ddd": 0, + "ind": 1, + "ty": 0, + "nm": "seta 2", + "refId": "comp_0", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [357, -247, 0], "ix": 2 }, + "a": { "a": 0, "k": [450, 960, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "w": 900, + "h": 1920, + "ip": 30, + "op": 120, + "st": 30, + "bm": 0 + }, + { + "ddd": 0, + "ind": 2, + "ty": 0, + "nm": "seta", + "refId": "comp_1", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [357, 258, 0], "ix": 2 }, + "a": { "a": 0, "k": [450, 345, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "w": 900, + "h": 690, + "ip": 0, + "op": 120, + "st": 0, + "bm": 0 + }, + { + "ddd": 0, + "ind": 3, + "ty": 4, + "nm": "base Outlines", + "sr": 1, + "ks": { + "o": { "a": 0, "k": 100, "ix": 11 }, + "r": { "a": 0, "k": 0, "ix": 10 }, + "p": { "a": 0, "k": [357, 548.713, 0], "ix": 2 }, + "a": { "a": 0, "k": [357.81, 129.934, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100, 100], "ix": 6 } + }, + "ao": 0, + "shapes": [ + { + "ty": "gr", + "it": [ + { + "ind": 0, + "ty": "sh", + "ix": 1, + "ks": { + "a": 0, + "k": { + "i": [ + [0, 0], + [0, 50.043], + [0, 0], + [-21.158, 0], + [0, -21.447], + [0, 0], + [-7.049, 0], + [0, 0], + [0, 7.149], + [0, 0], + [-21.158, 0], + [0, -21.447], + [0, 0], + [49.368, 0] + ], + "o": [ + [-49.369, 0], + [0, 0], + [0, -21.447], + [21.158, 0], + [0, 0], + [0, 7.145], + [0, 0], + [7.053, 0], + [0, 0], + [0, -21.447], + [21.158, 0], + [0, 0], + [0, 50.043], + [0, 0] + ], + "v": [ + [-268.169, 129.445], + [-357.559, 38.834], + [-357.559, -90.61], + [-319.249, -129.445], + [-280.939, -90.61], + [-280.939, 38.834], + [-268.169, 51.778], + [268.169, 51.778], + [280.939, 38.834], + [280.939, -90.61], + [319.249, -129.445], + [357.559, -90.61], + [357.559, 38.834], + [268.169, 129.445] + ], + "c": true + }, + "ix": 2 + }, + "nm": "Path 1", + "mn": "ADBE Vector Shape - Group", + "hd": false + }, + { + "ty": "fl", + "c": { + "a": 0, + "k": [0.865977448108, 0.86824388691, 0.890449075138, 1], + "ix": 4 + }, + "o": { "a": 0, "k": 100, "ix": 5 }, + "r": 1, + "bm": 0, + "nm": "Fill 1", + "mn": "ADBE Vector Graphic - Fill", + "hd": false + }, + { + "ty": "tr", + "p": { "a": 0, "k": [357.809, 129.695], "ix": 2 }, + "a": { "a": 0, "k": [0, 0], "ix": 1 }, + "s": { "a": 0, "k": [100, 100], "ix": 3 }, + "r": { "a": 0, "k": 0, "ix": 6 }, + "o": { "a": 0, "k": 100, "ix": 7 }, + "sk": { "a": 0, "k": 0, "ix": 4 }, + "sa": { "a": 0, "k": 0, "ix": 5 }, + "nm": "Transform" + } + ], + "nm": "Group 1", + "np": 2, + "cix": 2, + "bm": 0, + "ix": 1, + "mn": "ADBE Vector Group", + "hd": false + } + ], + "ip": 0, + "op": 120, + "st": 0, + "bm": 0 + } + ], + "markers": [] +} diff --git a/src/renderer/assets/lottie/settings.json b/src/renderer/assets/lottie/settings.json new file mode 100644 index 00000000..4d37e53a --- /dev/null +++ b/src/renderer/assets/lottie/settings.json @@ -0,0 +1 @@ +{"v":"4.8.0","meta":{"g":"LottieFiles AE 3.5.6","a":"","k":"","d":"","tc":""},"fr":60,"ip":0,"op":120,"w":900,"h":900,"nm":"Pre-comp 1","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"estrela Outlines 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.933],"y":[0]},"t":0,"s":[0]},{"t":60,"s":[180]}],"ix":10},"p":{"a":0,"k":[450,450,0],"ix":2},"a":{"a":0,"k":[308.5,333,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.011,34.469],[34.47,-0.012],[-0.011,-34.469],[-34.47,0.011]],"o":[[-0.012,-34.47],[-34.469,0.011],[0.012,34.47],[34.469,-0.012]],"v":[[62.333,0.005],[-0.101,-62.387],[-62.493,0.047],[-0.059,62.439]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,-68.917],[68.916,0],[0,68.916],[-68.916,0]],"o":[[0,68.916],[-68.916,0],[0,-68.917],[68.916,0]],"v":[[124.725,0.005],[-0.059,124.789],[-124.843,0.005],[-0.059,-124.779]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[15.804,-1.372],[1.206,-4.575],[0,0],[18.676,-9.234],[6.656,-4.451],[23.252,6.364],[0,0],[0.832,-1.206],[6.697,-14.392],[-3.327,-3.328],[0,0],[1.331,-20.755],[-0.499,-8.062],[17.095,-16.887],[0,0],[-0.582,-1.289],[-9.151,-12.977],[-4.575,1.248],[0,0],[-17.345,-11.563],[-7.196,-3.578],[-6.114,-23.293],[0,0],[-1.497,-0.124],[-15.804,1.373],[-1.207,4.575],[0,0],[-18.676,9.234],[-6.655,4.451],[-23.251,-6.364],[0,0],[-0.832,1.206],[-6.739,14.392],[3.327,3.328],[0,0],[-1.331,20.755],[0.499,8.061],[-17.095,16.887],[0,0],[0.582,1.289],[9.144,12.981],[4.576,-1.248],[0,0],[17.345,11.563],[7.202,3.563],[6.114,23.293],[0,0],[1.498,0.125]],"o":[[-1.497,0.125],[0,0],[-6.114,23.334],[-7.196,3.578],[-17.345,11.563],[0,0],[-4.534,-1.248],[-9.151,12.978],[-0.582,1.289],[0,0],[17.095,16.887],[-0.5,8.062],[1.331,20.755],[0,0],[-3.369,3.328],[6.738,14.392],[0.832,1.248],[0,0],[23.293,-6.364],[6.697,4.451],[18.593,9.234],[0,0],[1.206,4.533],[15.804,1.373],[1.498,-0.124],[0,0],[6.114,-23.335],[7.196,-3.578],[17.345,-11.563],[0,0],[4.534,1.206],[9.151,-13.019],[0.582,-1.289],[0,0],[-17.095,-16.887],[0.499,-8.062],[-1.331,-20.756],[0,0],[3.369,-3.328],[-6.715,-14.39],[-0.832,-1.248],[0,0],[-23.293,6.364],[-6.676,-4.47],[-18.592,-9.234],[0,0],[-1.207,-4.575],[-15.804,-1.372]],"v":[[-23.81,-269.32],[-29.508,-263.247],[-41.529,-217.285],[-83.04,-167.829],[-103.838,-155.766],[-167.436,-144.536],[-213.314,-157.139],[-221.425,-155.267],[-245.259,-114.089],[-242.805,-106.185],[-208.905,-72.66],[-186.86,-12.099],[-186.86,12.109],[-208.905,72.671],[-242.805,106.195],[-245.259,114.099],[-221.425,155.236],[-213.314,157.15],[-167.477,144.547],[-103.838,155.777],[-82.999,167.839],[-41.529,217.295],[-29.508,263.257],[-23.81,269.329],[23.691,269.329],[29.39,263.257],[41.411,217.295],[82.922,167.839],[103.719,155.777],[167.317,144.547],[213.196,157.15],[221.307,155.277],[245.141,114.099],[242.687,106.195],[208.787,72.671],[186.742,12.109],[186.742,-12.098],[208.787,-72.66],[242.687,-106.185],[245.141,-114.089],[221.307,-155.225],[213.196,-157.139],[167.359,-144.536],[103.719,-155.766],[82.88,-167.828],[41.411,-217.285],[29.39,-263.247],[23.691,-269.32]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[-9.816,0],[-9.697,-0.846],[-7.071,-26.828],[0,0],[-5.532,-2.745],[-8.902,-5.948],[-2.745,0.79],[0,0],[-17.802,-25.331],[-8.236,-17.72],[19.758,-19.508],[0,0],[-0.416,-6.114],[0.666,-10.69],[-2.079,-1.997],[0,0],[13.102,-28.076],[11.232,-15.979],[26.787,7.363],[0,0],[5.117,-3.411],[9.602,-4.741],[0.707,-2.745],[0,0],[30.904,-2.663],[19.401,1.705],[7.03,26.87],[0,0],[5.532,2.745],[8.891,5.969],[2.746,-0.79],[0,0],[17.802,25.332],[8.277,17.703],[-19.716,19.508],[0,0],[0.416,6.114],[-0.666,10.693],[2.08,1.997],[0,0],[-13.102,28.076],[-11.242,15.972],[-26.787,-7.363],[0,0],[-5.116,3.411],[-9.608,4.742],[-0.707,2.745],[0,0],[-30.905,2.704]],"o":[[9.733,0.014],[30.904,2.662],[0,0],[0.749,2.745],[9.609,4.742],[5.116,3.411],[0,0],[26.787,-7.321],[11.231,16.014],[13.102,28.076],[0,0],[-2.038,1.997],[0.666,10.69],[-0.416,6.114],[0,0],[19.758,19.508],[-8.252,17.703],[-17.802,25.373],[0,0],[-2.787,-0.79],[-8.902,5.952],[-5.532,2.745],[0,0],[-6.987,26.87],[-19.402,1.705],[-30.905,-2.663],[0,0],[-0.748,-2.745],[-9.611,-4.723],[-5.116,-3.411],[0,0],[-26.786,7.321],[-11.208,-16.008],[-13.102,-28.076],[0,0],[2.08,-1.997],[-0.666,-10.693],[0.416,-6.114],[0,0],[-19.716,-19.508],[8.241,-17.709],[17.802,-25.373],[0,0],[2.787,0.79],[8.901,-5.948],[5.532,-2.745],[0,0],[6.988,-26.87],[9.608,-0.832]],"v":[[-0.059,-332.751],[29.099,-331.462],[89.785,-279.095],[101.764,-233.049],[110.582,-223.733],[138.368,-207.676],[150.804,-204.723],[196.683,-217.327],[272.385,-191.123],[301.668,-140.459],[286.527,-61.805],[252.669,-28.28],[249.009,-16.051],[249.009,16.061],[252.669,28.289],[286.527,61.815],[301.668,140.47],[272.385,191.09],[196.683,217.295],[150.846,204.734],[138.367,207.687],[110.582,223.743],[101.806,233.059],[89.743,279.063],[29.099,331.473],[-29.217,331.473],[-89.862,279.063],[-101.883,233.059],[-110.701,223.743],[-138.486,207.687],[-150.923,204.734],[-196.802,217.336],[-272.504,191.132],[-301.786,140.47],[-286.687,61.815],[-252.788,28.289],[-249.127,16.061],[-249.127,-16.051],[-252.788,-28.28],[-286.687,-61.805],[-301.786,-140.459],[-272.504,-191.08],[-196.801,-217.285],[-150.964,-204.723],[-138.486,-207.676],[-110.701,-223.733],[-101.924,-233.049],[-89.862,-279.053],[-29.217,-331.504]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.898460657456,0.889815326765,0.896223060758,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[308.077,333.249],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":8,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"estrela Outlines 2 Comp 1","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[450,450,0],"ix":2},"a":{"a":0,"k":[450,450,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[1,1,0.333],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0,0,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":30,"s":[80,80,100]},{"t":60,"s":[100,100,100]}],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[89.47,0],[0,-89.47],[-89.47,0],[0,89.47]],"o":[[-89.47,0],[0,89.47],[89.47,0],[0,-89.47]],"v":[[446,286],[284,448],[446,610],[608,448]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":900,"h":900,"ip":0,"op":120,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"estrela Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.84],"y":[-1.753]},"o":{"x":[0],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.361],"y":[1]},"o":{"x":[0],"y":[0]},"t":28,"s":[15]},{"t":60,"s":[180]}],"ix":10},"p":{"a":0,"k":[450,450,0],"ix":2},"a":{"a":0,"k":[308.5,333,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.011,34.469],[34.47,-0.012],[-0.011,-34.469],[-34.47,0.011]],"o":[[-0.012,-34.47],[-34.469,0.011],[0.012,34.47],[34.469,-0.012]],"v":[[62.333,0.005],[-0.101,-62.387],[-62.493,0.047],[-0.059,62.439]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,-68.917],[68.916,0],[0,68.916],[-68.916,0]],"o":[[0,68.916],[-68.916,0],[0,-68.917],[68.916,0]],"v":[[124.725,0.005],[-0.059,124.789],[-124.843,0.005],[-0.059,-124.779]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ind":2,"ty":"sh","ix":3,"ks":{"a":0,"k":{"i":[[15.804,-1.372],[1.206,-4.575],[0,0],[18.676,-9.234],[6.656,-4.451],[23.252,6.364],[0,0],[0.832,-1.206],[6.697,-14.392],[-3.327,-3.328],[0,0],[1.331,-20.755],[-0.499,-8.062],[17.095,-16.887],[0,0],[-0.582,-1.289],[-9.151,-12.977],[-4.575,1.248],[0,0],[-17.345,-11.563],[-7.196,-3.578],[-6.114,-23.293],[0,0],[-1.497,-0.124],[-15.804,1.373],[-1.207,4.575],[0,0],[-18.676,9.234],[-6.655,4.451],[-23.251,-6.364],[0,0],[-0.832,1.206],[-6.739,14.392],[3.327,3.328],[0,0],[-1.331,20.755],[0.499,8.061],[-17.095,16.887],[0,0],[0.582,1.289],[9.144,12.981],[4.576,-1.248],[0,0],[17.345,11.563],[7.202,3.563],[6.114,23.293],[0,0],[1.498,0.125]],"o":[[-1.497,0.125],[0,0],[-6.114,23.334],[-7.196,3.578],[-17.345,11.563],[0,0],[-4.534,-1.248],[-9.151,12.978],[-0.582,1.289],[0,0],[17.095,16.887],[-0.5,8.062],[1.331,20.755],[0,0],[-3.369,3.328],[6.738,14.392],[0.832,1.248],[0,0],[23.293,-6.364],[6.697,4.451],[18.593,9.234],[0,0],[1.206,4.533],[15.804,1.373],[1.498,-0.124],[0,0],[6.114,-23.335],[7.196,-3.578],[17.345,-11.563],[0,0],[4.534,1.206],[9.151,-13.019],[0.582,-1.289],[0,0],[-17.095,-16.887],[0.499,-8.062],[-1.331,-20.756],[0,0],[3.369,-3.328],[-6.715,-14.39],[-0.832,-1.248],[0,0],[-23.293,6.364],[-6.676,-4.47],[-18.592,-9.234],[0,0],[-1.207,-4.575],[-15.804,-1.372]],"v":[[-23.81,-269.32],[-29.508,-263.247],[-41.529,-217.285],[-83.04,-167.829],[-103.838,-155.766],[-167.436,-144.536],[-213.314,-157.139],[-221.425,-155.267],[-245.259,-114.089],[-242.805,-106.185],[-208.905,-72.66],[-186.86,-12.099],[-186.86,12.109],[-208.905,72.671],[-242.805,106.195],[-245.259,114.099],[-221.425,155.236],[-213.314,157.15],[-167.477,144.547],[-103.838,155.777],[-82.999,167.839],[-41.529,217.295],[-29.508,263.257],[-23.81,269.329],[23.691,269.329],[29.39,263.257],[41.411,217.295],[82.922,167.839],[103.719,155.777],[167.317,144.547],[213.196,157.15],[221.307,155.277],[245.141,114.099],[242.687,106.195],[208.787,72.671],[186.742,12.109],[186.742,-12.098],[208.787,-72.66],[242.687,-106.185],[245.141,-114.089],[221.307,-155.225],[213.196,-157.139],[167.359,-144.536],[103.719,-155.766],[82.88,-167.828],[41.411,-217.285],[29.39,-263.247],[23.691,-269.32]],"c":true},"ix":2},"nm":"Path 3","mn":"ADBE Vector Shape - Group","hd":false},{"ind":3,"ty":"sh","ix":4,"ks":{"a":0,"k":{"i":[[-9.816,0],[-9.697,-0.846],[-7.071,-26.828],[0,0],[-5.532,-2.745],[-8.902,-5.948],[-2.745,0.79],[0,0],[-17.802,-25.331],[-8.236,-17.72],[19.758,-19.508],[0,0],[-0.416,-6.114],[0.666,-10.69],[-2.079,-1.997],[0,0],[13.102,-28.076],[11.232,-15.979],[26.787,7.363],[0,0],[5.117,-3.411],[9.602,-4.741],[0.707,-2.745],[0,0],[30.904,-2.663],[19.401,1.705],[7.03,26.87],[0,0],[5.532,2.745],[8.891,5.969],[2.746,-0.79],[0,0],[17.802,25.332],[8.277,17.703],[-19.716,19.508],[0,0],[0.416,6.114],[-0.666,10.693],[2.08,1.997],[0,0],[-13.102,28.076],[-11.242,15.972],[-26.787,-7.363],[0,0],[-5.116,3.411],[-9.608,4.742],[-0.707,2.745],[0,0],[-30.905,2.704]],"o":[[9.733,0.014],[30.904,2.662],[0,0],[0.749,2.745],[9.609,4.742],[5.116,3.411],[0,0],[26.787,-7.321],[11.231,16.014],[13.102,28.076],[0,0],[-2.038,1.997],[0.666,10.69],[-0.416,6.114],[0,0],[19.758,19.508],[-8.252,17.703],[-17.802,25.373],[0,0],[-2.787,-0.79],[-8.902,5.952],[-5.532,2.745],[0,0],[-6.987,26.87],[-19.402,1.705],[-30.905,-2.663],[0,0],[-0.748,-2.745],[-9.611,-4.723],[-5.116,-3.411],[0,0],[-26.786,7.321],[-11.208,-16.008],[-13.102,-28.076],[0,0],[2.08,-1.997],[-0.666,-10.693],[0.416,-6.114],[0,0],[-19.716,-19.508],[8.241,-17.709],[17.802,-25.373],[0,0],[2.787,0.79],[8.901,-5.948],[5.532,-2.745],[0,0],[6.988,-26.87],[9.608,-0.832]],"v":[[-0.059,-332.751],[29.099,-331.462],[89.785,-279.095],[101.764,-233.049],[110.582,-223.733],[138.368,-207.676],[150.804,-204.723],[196.683,-217.327],[272.385,-191.123],[301.668,-140.459],[286.527,-61.805],[252.669,-28.28],[249.009,-16.051],[249.009,16.061],[252.669,28.289],[286.527,61.815],[301.668,140.47],[272.385,191.09],[196.683,217.295],[150.846,204.734],[138.367,207.687],[110.582,223.743],[101.806,233.059],[89.743,279.063],[29.099,331.473],[-29.217,331.473],[-89.862,279.063],[-101.883,233.059],[-110.701,223.743],[-138.486,207.687],[-150.923,204.734],[-196.802,217.336],[-272.504,191.132],[-301.786,140.47],[-286.687,61.815],[-252.788,28.289],[-249.127,16.061],[-249.127,-16.051],[-252.788,-28.28],[-286.687,-61.805],[-301.786,-140.459],[-272.504,-191.08],[-196.801,-217.285],[-150.964,-204.723],[-138.486,-207.676],[-110.701,-223.733],[-101.924,-233.049],[-89.862,-279.053],[-29.217,-331.504]],"c":true},"ix":2},"nm":"Path 4","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.898460657456,0.889815326765,0.896223060758,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[308.077,333.249],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":8,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":120,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/src/renderer/components/header/header.tsx b/src/renderer/components/header/header.tsx index f93bd9cc..ea363c00 100644 --- a/src/renderer/components/header/header.tsx +++ b/src/renderer/components/header/header.tsx @@ -15,7 +15,8 @@ export interface HeaderProps { } const pathTitle: Record = { - "/": "catalogue", + "/": "home", + "/catalogue": "catalogue", "/downloads": "downloads", "/settings": "settings", }; diff --git a/src/renderer/components/hero/hero.css.ts b/src/renderer/components/hero/hero.css.ts index 8e7ae7dd..34d3fa76 100644 --- a/src/renderer/components/hero/hero.css.ts +++ b/src/renderer/components/hero/hero.css.ts @@ -30,7 +30,7 @@ export const heroMedia = style({ transition: "all ease 0.2s", selectors: { [`${hero}:hover &`]: { - transform: "scale(1.05)", + transform: "scale(1.02)", }, }, }); diff --git a/src/renderer/components/sidebar/download-icon.css.ts b/src/renderer/components/sidebar/download-icon.css.ts deleted file mode 100644 index be7bbea8..00000000 --- a/src/renderer/components/sidebar/download-icon.css.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { style } from "@vanilla-extract/css"; - -export const downloadIconWrapper = style({ - width: "16px", - height: "12px", - position: "relative", -}); - -export const downloadIcon = style({ - width: "24px", - position: "absolute", - left: "-4px", - top: "-9px", -}); diff --git a/src/renderer/components/sidebar/download-icon.tsx b/src/renderer/components/sidebar/download-icon.tsx index 4a5e3952..474c631d 100644 --- a/src/renderer/components/sidebar/download-icon.tsx +++ b/src/renderer/components/sidebar/download-icon.tsx @@ -2,7 +2,6 @@ import { useRef } from "react"; import Lottie from "lottie-react"; import downloadingAnimation from "@renderer/assets/lottie/downloading.json"; -import * as styles from "./download-icon.css"; export interface DownloadIconProps { isDownloading: boolean; @@ -12,15 +11,12 @@ export function DownloadIcon({ isDownloading }: DownloadIconProps) { const lottieRef = useRef(null); return ( -
- lottieRef.current?.setSpeed(1.7)} - /> -
+ ); } diff --git a/src/renderer/components/sidebar/routes.tsx b/src/renderer/components/sidebar/routes.tsx index 0bdbd8b5..8f54bac0 100644 --- a/src/renderer/components/sidebar/routes.tsx +++ b/src/renderer/components/sidebar/routes.tsx @@ -1,11 +1,16 @@ -import { GearIcon, ListUnorderedIcon } from "@primer/octicons-react"; +import { AppsIcon, GearIcon, HomeIcon } from "@primer/octicons-react"; import { DownloadIcon } from "./download-icon"; export const routes = [ { path: "/", + nameKey: "home", + render: () => , + }, + { + path: "/catalogue", nameKey: "catalogue", - render: () => , + render: () => , }, { path: "/downloads", diff --git a/src/renderer/declaration.d.ts b/src/renderer/declaration.d.ts index 15f0b07d..3db1a7c0 100644 --- a/src/renderer/declaration.d.ts +++ b/src/renderer/declaration.d.ts @@ -45,6 +45,10 @@ declare global { shop: GameShop, title: string ) => Promise; + getGames: ( + take?: number, + prevCursor?: number + ) => Promise<{ results: CatalogueEntry[]; cursor: number }>; /* Library */ addGameToLibrary: ( diff --git a/src/renderer/features/window-slice.ts b/src/renderer/features/window-slice.ts index 09578609..4d8b5fa7 100644 --- a/src/renderer/features/window-slice.ts +++ b/src/renderer/features/window-slice.ts @@ -3,13 +3,11 @@ import type { PayloadAction } from "@reduxjs/toolkit"; interface WindowState { draggingDisabled: boolean; - scrollingDisabled: boolean; headerTitle: string; } const initialState: WindowState = { draggingDisabled: false, - scrollingDisabled: false, headerTitle: "", }; @@ -20,14 +18,10 @@ export const windowSlice = createSlice({ toggleDragging: (state, action: PayloadAction) => { state.draggingDisabled = action.payload; }, - toggleScrolling: (state, action: PayloadAction) => { - state.scrollingDisabled = action.payload; - }, setHeaderTitle: (state, action: PayloadAction) => { state.headerTitle = action.payload; }, }, }); -export const { toggleDragging, toggleScrolling, setHeaderTitle } = - windowSlice.actions; +export const { toggleDragging, setHeaderTitle } = windowSlice.actions; diff --git a/src/renderer/main.tsx b/src/renderer/main.tsx index 691deed1..7a2479d9 100644 --- a/src/renderer/main.tsx +++ b/src/renderer/main.tsx @@ -19,11 +19,12 @@ import "react-loading-skeleton/dist/skeleton.css"; import { App } from "./app"; import { - Catalogue, + Home, Downloads, GameDetails, SearchResults, Settings, + Catalogue, } from "@renderer/pages"; import { store } from "./store"; @@ -41,6 +42,10 @@ const router = createHashRouter([ children: [ { path: "/", + Component: Home, + }, + { + path: "/catalogue", Component: Catalogue, }, { diff --git a/src/renderer/pages/catalogue/catalogue.tsx b/src/renderer/pages/catalogue/catalogue.tsx index e0087d48..777dc186 100644 --- a/src/renderer/pages/catalogue/catalogue.tsx +++ b/src/renderer/pages/catalogue/catalogue.tsx @@ -1,141 +1,113 @@ -import { useCallback, useEffect, useRef, useState } from "react"; -import { useTranslation } from "react-i18next"; -import { useNavigate, useSearchParams } from "react-router-dom"; - +import { Button, GameCard } from "@renderer/components"; import Skeleton, { SkeletonTheme } from "react-loading-skeleton"; +import { useTranslation } from "react-i18next"; -import { Button, GameCard, Hero } from "@renderer/components"; -import type { CatalogueCategory, CatalogueEntry } from "@types"; +import type { CatalogueEntry } from "@types"; -import starsAnimation from "@renderer/assets/lottie/stars.json"; - -import * as styles from "./catalogue.css"; +import { clearSearch } from "@renderer/features"; +import { useAppDispatch } from "@renderer/hooks"; import { vars } from "@renderer/theme.css"; -import Lottie from "lottie-react"; - -const categories: CatalogueCategory[] = ["trending", "recently_added"]; +import { useEffect, useRef, useState } from "react"; +import { useNavigate, useSearchParams } from "react-router-dom"; +import * as styles from "../home/home.css"; +import { ArrowLeftIcon, ArrowRightIcon } from "@primer/octicons-react"; export function Catalogue() { + const dispatch = useAppDispatch(); + const { t } = useTranslation("catalogue"); + + const [searchResults, setSearchResults] = useState([]); + const [isLoading, setIsLoading] = useState(false); + + const contentRef = useRef(null); + + const cursorRef = useRef(0); + const navigate = useNavigate(); - const [isLoading, setIsLoading] = useState(false); - const [isLoadingRandomGame, setIsLoadingRandomGame] = useState(false); - const randomGameObjectID = useRef(null); - const [searchParams] = useSearchParams(); + const cursor = Number(searchParams.get("cursor") ?? 0); - const [catalogue, setCatalogue] = useState< - Record - >({ - trending: [], - recently_added: [], - }); - - const getCatalogue = useCallback((category: CatalogueCategory) => { - setIsLoading(true); - - window.electron - .getCatalogue(category) - .then((catalogue) => { - setCatalogue((prev) => ({ ...prev, [category]: catalogue })); - }) - .catch(() => {}) - .finally(() => { - setIsLoading(false); - }); - }, []); - - const currentCategory = searchParams.get("category") || categories[0]; - - const handleSelectCategory = (category: CatalogueCategory) => { - if (category !== currentCategory) { - getCatalogue(category); - navigate(`/?category=${category}`, { replace: true }); - } - }; - - const getRandomGame = useCallback(() => { - setIsLoadingRandomGame(true); - - window.electron - .getRandomGame() - .then((objectID) => { - randomGameObjectID.current = objectID; - }) - .finally(() => { - setIsLoadingRandomGame(false); - }); - }, []); - - const handleRandomizerClick = () => { - const searchParams = new URLSearchParams({ - fromRandomizer: "1", - }); - - navigate( - `/game/steam/${randomGameObjectID.current}?${searchParams.toString()}` - ); + const handleGameClick = (game: CatalogueEntry) => { + dispatch(clearSearch()); + navigate(`/game/${game.shop}/${game.objectID}`); }; useEffect(() => { + if (contentRef.current) contentRef.current.scrollTop = 0; setIsLoading(true); - getCatalogue(currentCategory as CatalogueCategory); - getRandomGame(); - }, [getCatalogue, currentCategory, getRandomGame]); + setSearchResults([]); + + window.electron + .getGames(24, cursor) + .then(({ results, cursor }) => { + return new Promise((resolve) => { + setTimeout(() => { + cursorRef.current = cursor; + setSearchResults(results); + resolve(null); + }, 500); + }); + }) + .finally(() => { + setIsLoading(false); + }); + }, [dispatch, cursor, searchParams]); + + const handleNextPage = () => { + const params = new URLSearchParams({ + cursor: cursorRef.current.toString(), + }); + + navigate(`/catalogue?${params.toString()}`); + }; return ( -
-

{t("featured")}

+
+ - + +
-
-
- {categories.map((category) => ( - +
+
+ {isLoading && + Array.from({ length: 12 }).map((_, index) => ( + ))} -
- -
- -

{t(currentCategory)}

- -
- {isLoading - ? Array.from({ length: 12 }).map((_, index) => ( - - )) - : catalogue[currentCategory as CatalogueCategory].map((result) => ( + {!isLoading && searchResults.length > 0 && ( + <> + {searchResults.map((game) => ( - navigate(`/game/${result.shop}/${result.objectID}`) - } + key={game.objectID} + game={game} + onClick={() => handleGameClick(game)} + disabled={!game.repacks.length} /> ))} + + )}
diff --git a/src/renderer/pages/game-details/game-details.css.ts b/src/renderer/pages/game-details/game-details.css.ts index 9c033600..5d2350e6 100644 --- a/src/renderer/pages/game-details/game-details.css.ts +++ b/src/renderer/pages/game-details/game-details.css.ts @@ -217,16 +217,19 @@ export const howLongToBeatCategorySkeleton = style({ export const randomizerButton = style({ animationName: slideIn, - animationDuration: "0.4s", + animationDuration: "0.2s", position: "fixed", - bottom: 26 + 16, + /* Bottom panel height + spacing */ + bottom: `${26 + SPACING_UNIT * 2}px`, + /* Scroll bar + spacing */ + right: `${9 + SPACING_UNIT * 2}px`, boxShadow: "rgba(255, 255, 255, 0.1) 0px 0px 10px 3px", - border: `solid 1px ${vars.color.borderColor}`, - backgroundColor: vars.color.darkBackground, + border: `solid 2px ${vars.color.borderColor}`, + backgroundColor: vars.color.background, ":hover": { backgroundColor: vars.color.background, boxShadow: "rgba(255, 255, 255, 0.1) 0px 0px 15px 5px", - opacity: 1, + opacity: "1", }, ":active": { transform: "scale(0.98)", diff --git a/src/renderer/pages/game-details/hero-panel.tsx b/src/renderer/pages/game-details/hero-panel.tsx index 54b913f7..7cff3b37 100644 --- a/src/renderer/pages/game-details/hero-panel.tsx +++ b/src/renderer/pages/game-details/hero-panel.tsx @@ -104,7 +104,9 @@ export function HeroPanel({ window.electron .showOpenDialog({ properties: ["openFile"], - filters: [{ name: "Game executable (.exe)", extensions: ["exe"] }], + filters: [ + { name: "Game executable (.exe)", extensions: ["exe", "app"] }, + ], }) .then(({ filePaths }) => { if (filePaths && filePaths.length > 0) { @@ -209,11 +211,15 @@ export function HeroPanel({ })}

-

- {t("last_time_played", { - period: lastTimePlayed, - })} -

+ {isGamePlaying ? ( +

{t("playing_now")}

+ ) : ( +

+ {t("last_time_played", { + period: lastTimePlayed, + })} +

+ )} ); } diff --git a/src/renderer/pages/catalogue/catalogue-home.css.ts b/src/renderer/pages/home/catalogue-home.css.ts similarity index 74% rename from src/renderer/pages/catalogue/catalogue-home.css.ts rename to src/renderer/pages/home/catalogue-home.css.ts index 40d76b82..14db70f4 100644 --- a/src/renderer/pages/catalogue/catalogue-home.css.ts +++ b/src/renderer/pages/home/catalogue-home.css.ts @@ -1,6 +1,6 @@ import { style } from "@vanilla-extract/css"; import { recipe } from "@vanilla-extract/recipes"; -import { SPACING_UNIT, vars } from "../../theme.css"; +import { SPACING_UNIT } from "@renderer/theme.css"; export const catalogueCategories = style({ display: "flex", @@ -23,12 +23,4 @@ export const cards = recipe({ gap: `${SPACING_UNIT * 2}px`, transition: "all ease 0.2s", }, - variants: { - searching: { - true: { - pointerEvents: "none", - opacity: vars.opacity.disabled, - }, - }, - }, }); diff --git a/src/renderer/pages/catalogue/catalogue.css.ts b/src/renderer/pages/home/home.css.ts similarity index 53% rename from src/renderer/pages/catalogue/catalogue.css.ts rename to src/renderer/pages/home/home.css.ts index 6afd61f9..e8e9f811 100644 --- a/src/renderer/pages/catalogue/catalogue.css.ts +++ b/src/renderer/pages/home/home.css.ts @@ -1,13 +1,12 @@ import { style } from "@vanilla-extract/css"; -import { recipe } from "@vanilla-extract/recipes"; -import { SPACING_UNIT, vars } from "../../theme.css"; +import { SPACING_UNIT, vars } from "@renderer/theme.css"; -export const catalogueCategories = style({ +export const homeCategories = style({ display: "flex", gap: `${SPACING_UNIT}px`, }); -export const catalogueHeader = style({ +export const homeHeader = style({ display: "flex", gap: `${SPACING_UNIT}px`, justifyContent: "space-between", @@ -24,30 +23,20 @@ export const content = style({ overflowY: "auto", }); -export const cards = recipe({ - base: { - display: "grid", - gridTemplateColumns: "repeat(1, 1fr)", - gap: `${SPACING_UNIT * 2}px`, - transition: "all ease 0.2s", - "@media": { - "(min-width: 768px)": { - gridTemplateColumns: "repeat(2, 1fr)", - }, - "(min-width: 1250px)": { - gridTemplateColumns: "repeat(3, 1fr)", - }, - "(min-width: 1600px)": { - gridTemplateColumns: "repeat(4, 1fr)", - }, +export const cards = style({ + display: "grid", + gridTemplateColumns: "repeat(1, 1fr)", + gap: `${SPACING_UNIT * 2}px`, + transition: "all ease 0.2s", + "@media": { + "(min-width: 768px)": { + gridTemplateColumns: "repeat(2, 1fr)", }, - }, - variants: { - searching: { - true: { - pointerEvents: "none", - opacity: vars.opacity.disabled, - }, + "(min-width: 1250px)": { + gridTemplateColumns: "repeat(3, 1fr)", + }, + "(min-width: 1600px)": { + gridTemplateColumns: "repeat(4, 1fr)", }, }, }); diff --git a/src/renderer/pages/home/home.tsx b/src/renderer/pages/home/home.tsx new file mode 100644 index 00000000..ed650245 --- /dev/null +++ b/src/renderer/pages/home/home.tsx @@ -0,0 +1,143 @@ +import { useCallback, useEffect, useRef, useState } from "react"; +import { useTranslation } from "react-i18next"; +import { useNavigate, useSearchParams } from "react-router-dom"; + +import Skeleton, { SkeletonTheme } from "react-loading-skeleton"; + +import { Button, GameCard, Hero } from "@renderer/components"; +import type { CatalogueCategory, CatalogueEntry } from "@types"; + +import starsAnimation from "@renderer/assets/lottie/stars.json"; + +import * as styles from "./home.css"; +import { vars } from "@renderer/theme.css"; +import Lottie from "lottie-react"; + +const categories: CatalogueCategory[] = ["trending", "recently_added"]; + +export function Home() { + const { t } = useTranslation("home"); + const navigate = useNavigate(); + + const [isLoading, setIsLoading] = useState(false); + const [isLoadingRandomGame, setIsLoadingRandomGame] = useState(false); + const randomGameObjectID = useRef(null); + + const [searchParams] = useSearchParams(); + + const [catalogue, setCatalogue] = useState< + Record + >({ + trending: [], + recently_added: [], + }); + + const getCatalogue = useCallback((category: CatalogueCategory) => { + setIsLoading(true); + + window.electron + .getCatalogue(category) + .then((catalogue) => { + setCatalogue((prev) => ({ ...prev, [category]: catalogue })); + }) + .catch(() => {}) + .finally(() => { + setIsLoading(false); + }); + }, []); + + const currentCategory = searchParams.get("category") || categories[0]; + + const handleSelectCategory = (category: CatalogueCategory) => { + if (category !== currentCategory) { + getCatalogue(category); + navigate(`/?category=${category}`, { replace: true }); + } + }; + + const getRandomGame = useCallback(() => { + setIsLoadingRandomGame(true); + + window.electron + .getRandomGame() + .then((objectID) => { + randomGameObjectID.current = objectID; + }) + .finally(() => { + setIsLoadingRandomGame(false); + }); + }, []); + + const handleRandomizerClick = () => { + const searchParams = new URLSearchParams({ + fromRandomizer: "1", + }); + + navigate( + `/game/steam/${randomGameObjectID.current}?${searchParams.toString()}` + ); + }; + + useEffect(() => { + setIsLoading(true); + getCatalogue(currentCategory as CatalogueCategory); + getRandomGame(); + }, [getCatalogue, currentCategory, getRandomGame]); + + return ( + +
+

{t("featured")}

+ + + +
+
+ {categories.map((category) => ( + + ))} +
+ + +
+ +

{t(currentCategory)}

+ +
+ {isLoading + ? Array.from({ length: 12 }).map((_, index) => ( + + )) + : catalogue[currentCategory as CatalogueCategory].map((result) => ( + + navigate(`/game/${result.shop}/${result.objectID}`) + } + /> + ))} +
+
+
+ ); +} diff --git a/src/renderer/pages/catalogue/search-results.tsx b/src/renderer/pages/home/search-results.tsx similarity index 94% rename from src/renderer/pages/catalogue/search-results.tsx rename to src/renderer/pages/home/search-results.tsx index 75d3e1d9..40e55a82 100644 --- a/src/renderer/pages/catalogue/search-results.tsx +++ b/src/renderer/pages/home/search-results.tsx @@ -13,12 +13,12 @@ import { vars } from "@renderer/theme.css"; import { useEffect, useRef, useState } from "react"; import { useTranslation } from "react-i18next"; import { useNavigate, useSearchParams } from "react-router-dom"; -import * as styles from "./catalogue.css"; +import * as styles from "./home.css"; export function SearchResults() { const dispatch = useAppDispatch(); - const { t } = useTranslation("catalogue"); + const { t } = useTranslation("home"); const [searchParams] = useSearchParams(); const [searchResults, setSearchResults] = useState([]); @@ -54,7 +54,7 @@ export function SearchResults() { return (
-
+
{isLoading && Array.from({ length: 12 }).map((_, index) => ( diff --git a/src/renderer/pages/index.ts b/src/renderer/pages/index.ts index c6fe4600..fd883fbf 100644 --- a/src/renderer/pages/index.ts +++ b/src/renderer/pages/index.ts @@ -1,5 +1,6 @@ -export * from "./catalogue/catalogue"; +export * from "./home/home"; export * from "./game-details/game-details"; export * from "./downloads/downloads"; -export * from "./catalogue/search-results"; +export * from "./home/search-results"; export * from "./settings/settings"; +export * from "./catalogue/catalogue"; diff --git a/yarn.lock b/yarn.lock index 4d8409d1..9c1d19fd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,6 +15,13 @@ "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.24" +"@babel/code-frame@7.12.11": + version "7.12.11" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + dependencies: + "@babel/highlight" "^7.10.4" + "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7", "@babel/code-frame@^7.23.5", "@babel/code-frame@^7.24.1", "@babel/code-frame@^7.24.2": version "7.24.2" resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz" @@ -23,19 +30,12 @@ "@babel/highlight" "^7.24.2" picocolors "^1.0.0" -"@babel/code-frame@7.12.11": - version "7.12.11" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz" - integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== - dependencies: - "@babel/highlight" "^7.10.4" - "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.5", "@babel/compat-data@^7.24.4": version "7.24.4" resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz" integrity sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ== -"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.0.0-0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.18.5", "@babel/core@^7.21.3", "@babel/core@^7.23.9", "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0": +"@babel/core@^7.18.5", "@babel/core@^7.21.3", "@babel/core@^7.23.9": version "7.24.4" resolved "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz" integrity sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg== @@ -1050,17 +1050,12 @@ "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" -"@colors/colors@^1.6.0": - version "1.6.0" - resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz" - integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA== - "@colors/colors@1.5.0": version "1.5.0" resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== -"@colors/colors@1.6.0": +"@colors/colors@1.6.0", "@colors/colors@^1.6.0": version "1.6.0" resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz" integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA== @@ -1402,7 +1397,7 @@ glob "^7.1.6" minimatch "^3.0.4" -"@electron/fuses@^1.7.0", "@electron/fuses@>=1.0.0": +"@electron/fuses@^1.7.0": version "1.8.0" resolved "https://registry.npmjs.org/@electron/fuses/-/fuses-1.8.0.tgz" integrity sha512-zx0EIq78WlY/lBb1uXlziZmDZI4ubcCXIMJ4uGjXzZW0nS19TjSPeXPAjzzTmKQlJUZm0SbmZhPKP7tuQ1SsEw== @@ -1536,6 +1531,226 @@ resolved "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz" integrity sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ== +"@esbuild/aix-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f" + integrity sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== + +"@esbuild/aix-ppc64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz#a70f4ac11c6a1dfc18b8bbb13284155d933b9537" + integrity sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g== + +"@esbuild/android-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4" + integrity sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== + +"@esbuild/android-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz#db1c9202a5bc92ea04c7b6840f1bbe09ebf9e6b9" + integrity sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg== + +"@esbuild/android-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824" + integrity sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== + +"@esbuild/android-arm@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz#3b488c49aee9d491c2c8f98a909b785870d6e995" + integrity sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w== + +"@esbuild/android-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d" + integrity sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== + +"@esbuild/android-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz#3b1628029e5576249d2b2d766696e50768449f98" + integrity sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg== + +"@esbuild/darwin-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz#cbee41e988020d4b516e9d9e44dd29200996275e" + integrity sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== + +"@esbuild/darwin-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz#6e8517a045ddd86ae30c6608c8475ebc0c4000bb" + integrity sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA== + +"@esbuild/darwin-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd" + integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== + +"@esbuild/darwin-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz#90ed098e1f9dd8a9381695b207e1cff45540a0d0" + integrity sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA== + +"@esbuild/freebsd-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487" + integrity sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== + +"@esbuild/freebsd-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz#d71502d1ee89a1130327e890364666c760a2a911" + integrity sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw== + +"@esbuild/freebsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c" + integrity sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== + +"@esbuild/freebsd-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz#aa5ea58d9c1dd9af688b8b6f63ef0d3d60cea53c" + integrity sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw== + +"@esbuild/linux-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b" + integrity sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== + +"@esbuild/linux-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz#055b63725df678379b0f6db9d0fa85463755b2e5" + integrity sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A== + +"@esbuild/linux-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef" + integrity sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== + +"@esbuild/linux-arm@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz#76b3b98cb1f87936fbc37f073efabad49dcd889c" + integrity sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg== + +"@esbuild/linux-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601" + integrity sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== + +"@esbuild/linux-ia32@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz#c0e5e787c285264e5dfc7a79f04b8b4eefdad7fa" + integrity sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig== + +"@esbuild/linux-loong64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299" + integrity sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== + +"@esbuild/linux-loong64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz#a6184e62bd7cdc63e0c0448b83801001653219c5" + integrity sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ== + +"@esbuild/linux-mips64el@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec" + integrity sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== + +"@esbuild/linux-mips64el@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz#d08e39ce86f45ef8fc88549d29c62b8acf5649aa" + integrity sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA== + +"@esbuild/linux-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8" + integrity sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== + +"@esbuild/linux-ppc64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz#8d252f0b7756ffd6d1cbde5ea67ff8fd20437f20" + integrity sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg== + +"@esbuild/linux-riscv64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf" + integrity sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== + +"@esbuild/linux-riscv64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz#19f6dcdb14409dae607f66ca1181dd4e9db81300" + integrity sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg== + +"@esbuild/linux-s390x@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8" + integrity sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== + +"@esbuild/linux-s390x@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz#3c830c90f1a5d7dd1473d5595ea4ebb920988685" + integrity sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ== + +"@esbuild/linux-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz#5f37cfdc705aea687dfe5dfbec086a05acfe9c78" + integrity sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== + +"@esbuild/linux-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz#86eca35203afc0d9de0694c64ec0ab0a378f6fff" + integrity sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw== + +"@esbuild/netbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b" + integrity sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== + +"@esbuild/netbsd-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz#e771c8eb0e0f6e1877ffd4220036b98aed5915e6" + integrity sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ== + +"@esbuild/openbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0" + integrity sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== + +"@esbuild/openbsd-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz#9a795ae4b4e37e674f0f4d716f3e226dd7c39baf" + integrity sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ== + +"@esbuild/sunos-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30" + integrity sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== + +"@esbuild/sunos-x64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz#7df23b61a497b8ac189def6e25a95673caedb03f" + integrity sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w== + +"@esbuild/win32-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae" + integrity sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== + +"@esbuild/win32-arm64@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz#f1ae5abf9ca052ae11c1bc806fb4c0f519bacf90" + integrity sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ== + +"@esbuild/win32-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67" + integrity sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== + +"@esbuild/win32-ia32@0.20.2": + version "0.20.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz#241fe62c34d8e8461cd708277813e1d0ba55ce23" + integrity sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ== + "@esbuild/win32-x64@0.19.12": version "0.19.12" resolved "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz" @@ -1685,14 +1900,6 @@ resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.20", "@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.9": version "0.3.9" resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" @@ -1701,11 +1908,26 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" +"@jridgewell/trace-mapping@^0.3.20", "@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" + "@leichtgewicht/ip-codec@^2.0.1": version "2.0.5" resolved "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz" integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw== +"@malept/cross-spawn-promise@^1.0.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz#504af200af6b98e198bce768bc1730c6936ae01d" + integrity sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ== + dependencies: + cross-spawn "^7.0.1" + "@malept/cross-spawn-promise@^2.0.0": version "2.0.0" resolved "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz" @@ -1772,7 +1994,7 @@ "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": +"@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" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== @@ -1824,7 +2046,7 @@ dependencies: "@octokit/types" "^6.0.3" -"@octokit/core@^3.2.4", "@octokit/core@^3.5.1", "@octokit/core@>=2", "@octokit/core@>=3": +"@octokit/core@^3.2.4", "@octokit/core@^3.5.1": version "3.6.0" resolved "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz" integrity sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q== @@ -1951,6 +2173,81 @@ resolved "https://registry.npmjs.org/@remix-run/router/-/router-1.15.3.tgz" integrity sha512-Oy8rmScVrVxWZVOpEF57ovlnhpZ8CCPlnIIumVcV9nFdiSIrus99+Lw78ekXyGvVDlIsFJbSfmSovJUhCWYV3w== +"@rollup/rollup-android-arm-eabi@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.3.tgz#bddf05c3387d02fac04b6b86b3a779337edfed75" + integrity sha512-X9alQ3XM6I9IlSlmC8ddAvMSyG1WuHk5oUnXGw+yUBs3BFoTizmG1La/Gr8fVJvDWAq+zlYTZ9DBgrlKRVY06g== + +"@rollup/rollup-android-arm64@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.3.tgz#b26bd09de58704c0a45e3375b76796f6eda825e4" + integrity sha512-eQK5JIi+POhFpzk+LnjKIy4Ks+pwJ+NXmPxOCSvOKSNRPONzKuUvWE+P9JxGZVxrtzm6BAYMaL50FFuPe0oWMQ== + +"@rollup/rollup-darwin-arm64@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.3.tgz#c5f3fd1aa285b6d33dda6e3f3ca395f8c37fd5ca" + integrity sha512-Od4vE6f6CTT53yM1jgcLqNfItTsLt5zE46fdPaEmeFHvPs5SjZYlLpHrSiHEKR1+HdRfxuzXHjDOIxQyC3ptBA== + +"@rollup/rollup-darwin-x64@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.3.tgz#8e4673734d7dc9d68f6d48e81246055cda0e840f" + integrity sha512-0IMAO21axJeNIrvS9lSe/PGthc8ZUS+zC53O0VhF5gMxfmcKAP4ESkKOCwEi6u2asUrt4mQv2rjY8QseIEb1aw== + +"@rollup/rollup-linux-arm-gnueabihf@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.3.tgz#53ed38eb13b58ababdb55a7f66f0538a7f85dcba" + integrity sha512-ge2DC7tHRHa3caVEoSbPRJpq7azhG+xYsd6u2MEnJ6XzPSzQsTKyXvh6iWjXRf7Rt9ykIUWHtl0Uz3T6yXPpKw== + +"@rollup/rollup-linux-arm-musleabihf@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.14.3.tgz#0706ee38330e267a5c9326956820f009cfb21fcd" + integrity sha512-ljcuiDI4V3ySuc7eSk4lQ9wU8J8r8KrOUvB2U+TtK0TiW6OFDmJ+DdIjjwZHIw9CNxzbmXY39wwpzYuFDwNXuw== + +"@rollup/rollup-linux-arm64-gnu@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.3.tgz#426fce7b8b242ac5abd48a10a5020f5a468c6cb4" + integrity sha512-Eci2us9VTHm1eSyn5/eEpaC7eP/mp5n46gTRB3Aar3BgSvDQGJZuicyq6TsH4HngNBgVqC5sDYxOzTExSU+NjA== + +"@rollup/rollup-linux-arm64-musl@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.3.tgz#65bf944530d759b50d7ffd00dfbdf4125a43406f" + integrity sha512-UrBoMLCq4E92/LCqlh+blpqMz5h1tJttPIniwUgOFJyjWI1qrtrDhhpHPuFxULlUmjFHfloWdixtDhSxJt5iKw== + +"@rollup/rollup-linux-powerpc64le-gnu@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.3.tgz#494ba3b31095e9a45df9c3f646d21400fb631a95" + integrity sha512-5aRjvsS8q1nWN8AoRfrq5+9IflC3P1leMoy4r2WjXyFqf3qcqsxRCfxtZIV58tCxd+Yv7WELPcO9mY9aeQyAmw== + +"@rollup/rollup-linux-riscv64-gnu@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.3.tgz#8b88ed0a40724cce04aa15374ebe5ba4092d679f" + integrity sha512-sk/Qh1j2/RJSX7FhEpJn8n0ndxy/uf0kI/9Zc4b1ELhqULVdTfN6HL31CDaTChiBAOgLcsJ1sgVZjWv8XNEsAQ== + +"@rollup/rollup-linux-s390x-gnu@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.3.tgz#09c9e5ec57a0f6ec3551272c860bb9a04b96d70f" + integrity sha512-jOO/PEaDitOmY9TgkxF/TQIjXySQe5KVYB57H/8LRP/ux0ZoO8cSHCX17asMSv3ruwslXW/TLBcxyaUzGRHcqg== + +"@rollup/rollup-linux-x64-gnu@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.3.tgz#197f27fd481ad9c861021d5cbbf21793922a631c" + integrity sha512-8ybV4Xjy59xLMyWo3GCfEGqtKV5M5gCSrZlxkPGvEPCGDLNla7v48S662HSGwRd6/2cSneMQWiv+QzcttLrrOA== + +"@rollup/rollup-linux-x64-musl@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.3.tgz#5cc0522f4942f2df625e9bfb6fb02c6580ffbce6" + integrity sha512-s+xf1I46trOY10OqAtZ5Rm6lzHre/UiLA1J2uOhCFXWkbZrJRkYBPO6FhvGfHmdtQ3Bx793MNa7LvoWFAm93bg== + +"@rollup/rollup-win32-arm64-msvc@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.3.tgz#a648122389d23a7543b261fba082e65fefefe4f6" + integrity sha512-+4h2WrGOYsOumDQ5S2sYNyhVfrue+9tc9XcLWLh+Kw3UOxAvrfOrSMFon60KspcDdytkNDh7K2Vs6eMaYImAZg== + +"@rollup/rollup-win32-ia32-msvc@4.14.3": + version "4.14.3" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.3.tgz#34727b5c7953c35fc6e1ae4f770ad3a2025f8e03" + integrity sha512-T1l7y/bCeL/kUwh9OD4PQT4aM7Bq43vX05htPJJ46RTI4r5KNt6qJRzAfNfM+OYMNEVBWQzR2Gyk+FXLZfogGw== + "@rollup/rollup-win32-x64-msvc@4.14.3": version "4.14.3" resolved "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.3.tgz" @@ -2057,6 +2354,36 @@ magic-string "0.30.8" unplugin "1.0.1" +"@sentry/cli-darwin@2.31.0": + version "2.31.0" + resolved "https://registry.yarnpkg.com/@sentry/cli-darwin/-/cli-darwin-2.31.0.tgz#59e0805db8926a55676c74690e5083a0a78ae11f" + integrity sha512-VM5liyxMnm4K2g0WsrRPXRCMLhaT09C7gK5Fz/CxKYh9sbMZB7KA4hV/3klkyuyw1+ECF1J66cefhNkFZepUig== + +"@sentry/cli-linux-arm64@2.31.0": + version "2.31.0" + resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.31.0.tgz#38604d2d1e7c2e50d48610d38523e371d2104cd7" + integrity sha512-eENJTmXoFX3uNr8xRW7Bua2Sw3V1tylQfdtS85pNjZPdbm3U8wYQSWu2VoZkK2ASOoC+17YC8jTQxq62KWnSeQ== + +"@sentry/cli-linux-arm@2.31.0": + version "2.31.0" + resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm/-/cli-linux-arm-2.31.0.tgz#6e802a279011703d39e4b31de7b950c522a73261" + integrity sha512-AZoCN3waXEfXGCd3YSrikcX/y63oQe0Tiyapkeoifq/0QhI+2MOOrAQb60gthsXwb0UDK/XeFi3PaxyUCphzxA== + +"@sentry/cli-linux-i686@2.31.0": + version "2.31.0" + resolved "https://registry.yarnpkg.com/@sentry/cli-linux-i686/-/cli-linux-i686-2.31.0.tgz#d4586a18145f43b37324231e0f19f8f23793fc58" + integrity sha512-cQUFb3brhLaNSIoNzjU/YASnTM1I3TDJP9XXzH0eLK9sSopCcDcc6OrYEYvdjJXZKzFv5sbc9UNMsIDbh4+rYg== + +"@sentry/cli-linux-x64@2.31.0": + version "2.31.0" + resolved "https://registry.yarnpkg.com/@sentry/cli-linux-x64/-/cli-linux-x64-2.31.0.tgz#f89fd87b47a5eb10c292846f3a1a754cf97105fe" + integrity sha512-z1zTNg91nZJRdcGHC/bCU1KwIaifV0MLJteip9KrFDprzhJk1HtMxFOS0+OZ5/UH21CjAFmg9Pj6IAGqm3BYjA== + +"@sentry/cli-win32-i686@2.31.0": + version "2.31.0" + resolved "https://registry.yarnpkg.com/@sentry/cli-win32-i686/-/cli-win32-i686-2.31.0.tgz#cb3dbb539c8f8bcac4b1f95ab45a87b5143997ee" + integrity sha512-+K7fdk57aUd4CmYrQfDGYPzVyxsTnVro6IPb5QSSLpP03dL7ko5208epu4m2SyN/MkFvscy9Di3n3DTvIfDU2w== + "@sentry/cli-win32-x64@2.31.0": version "2.31.0" resolved "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.31.0.tgz" @@ -2248,7 +2575,7 @@ "@svgr/babel-plugin-transform-react-native-svg" "8.1.0" "@svgr/babel-plugin-transform-svg-component" "8.0.0" -"@svgr/core@*", "@svgr/core@8.1.0": +"@svgr/core@8.1.0": version "8.1.0" resolved "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz" integrity sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA== @@ -2433,7 +2760,7 @@ "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*", "@types/estree@^1.0.5", "@types/estree@1.0.5": +"@types/estree@*", "@types/estree@1.0.5", "@types/estree@^1.0.5": version "1.0.5" resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz" integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== @@ -2458,6 +2785,21 @@ "@types/qs" "*" "@types/serve-static" "*" +"@types/fs-extra@^9.0.1": + version "9.0.13" + 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.1": + 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/html-minifier-terser@^6.0.0": version "6.1.0" resolved "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz" @@ -2518,6 +2860,11 @@ resolved "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz" integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== +"@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/node-forge@^1.3.0": version "1.3.11" resolved "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz" @@ -2525,7 +2872,7 @@ dependencies: "@types/node" "*" -"@types/node@*", "@types/node@^18.0.0 || >=20.0.0", "@types/node@^20.9.0": +"@types/node@*", "@types/node@^20.9.0": version "20.12.7" resolved "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz" integrity sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg== @@ -2575,7 +2922,7 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^18.2.25", "@types/react@^18.2.66": +"@types/react@*", "@types/react@^18.2.66": version "18.2.79" resolved "https://registry.npmjs.org/@types/react/-/react-18.2.79.tgz" integrity sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w== @@ -2699,7 +3046,7 @@ semver "^7.6.0" ts-api-utils "^1.3.0" -"@typescript-eslint/parser@^7.0.0", "@typescript-eslint/parser@^7.3.1": +"@typescript-eslint/parser@^7.3.1": version "7.7.0" resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.7.0.tgz" integrity sha512-fNcDm3wSwVM8QYL4HKVBggdIPAy9Q41vcvC/GtDobw3c4ndVT3K6cqudUmjHPw8EAp4ufax0o58/xvWaP2FmTg== @@ -2738,19 +3085,6 @@ resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.0.tgz" integrity sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w== -"@typescript-eslint/typescript-estree@^4.24.0": - version "4.33.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz" - integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA== - dependencies: - "@typescript-eslint/types" "4.33.0" - "@typescript-eslint/visitor-keys" "4.33.0" - debug "^4.3.1" - globby "^11.0.3" - is-glob "^4.0.1" - semver "^7.3.5" - tsutils "^3.21.0" - "@typescript-eslint/typescript-estree@7.7.0": version "7.7.0" resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.0.tgz" @@ -2765,6 +3099,19 @@ semver "^7.6.0" ts-api-utils "^1.3.0" +"@typescript-eslint/typescript-estree@^4.24.0": + version "4.33.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz" + integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA== + dependencies: + "@typescript-eslint/types" "4.33.0" + "@typescript-eslint/visitor-keys" "4.33.0" + debug "^4.3.1" + globby "^11.0.3" + is-glob "^4.0.1" + semver "^7.3.5" + tsutils "^3.21.0" + "@typescript-eslint/utils@7.7.0": version "7.7.0" resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.0.tgz" @@ -2806,7 +3153,7 @@ dependencies: "@babel/core" "^7.23.9" -"@vanilla-extract/css@^1.0.0", "@vanilla-extract/css@^1.14.1", "@vanilla-extract/css@^1.14.2": +"@vanilla-extract/css@^1.14.1", "@vanilla-extract/css@^1.14.2": version "1.14.2" resolved "https://registry.npmjs.org/@vanilla-extract/css/-/css-1.14.2.tgz" integrity sha512-OasEW4ojGqqRiUpsyEDUMrSkLnmwbChtafkogpCZ1eDAgAZ9eY9CHLYodj2nB8aV5T25kQ5shm92k25ngjYhhg== @@ -2869,7 +3216,7 @@ dependencies: resolve "^1.10.0" -"@webassemblyjs/ast@^1.12.1", "@webassemblyjs/ast@1.12.1": +"@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1": version "1.12.1" resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz" integrity sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg== @@ -2970,7 +3317,7 @@ "@webassemblyjs/wasm-gen" "1.12.1" "@webassemblyjs/wasm-parser" "1.12.1" -"@webassemblyjs/wasm-parser@^1.12.1", "@webassemblyjs/wasm-parser@1.12.1": +"@webassemblyjs/wasm-parser@1.12.1", "@webassemblyjs/wasm-parser@^1.12.1": version "1.12.1" resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz" integrity sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ== @@ -3010,7 +3357,7 @@ resolved "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz" integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== -abbrev@^1.0.0, abbrev@1: +abbrev@1, abbrev@^1.0.0: version "1.1.1" resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== @@ -3038,31 +3385,24 @@ acorn-walk@^8.1.1: resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz" integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== -"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8, acorn@^8.11.3, acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.1, acorn@^8.8.2, 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@^7.4.0: version "7.4.1" resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -agent-base@^6.0.2, agent-base@6: +acorn@^8.11.3, acorn@^8.4.1, acorn@^8.7.1, acorn@^8.8.1, acorn@^8.8.2, acorn@^8.9.0: + version "8.11.3" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== + +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" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== dependencies: debug "4" -agent-base@^7.0.2: - 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.0: +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== @@ -3103,7 +3443,7 @@ ajv-keywords@^5.1.0: dependencies: fast-deep-equal "^3.1.3" -ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.9.1: +ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -3113,27 +3453,7 @@ ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.9.1: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0: - version "8.12.0" - resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz" - integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -ajv@^8.0.1: - version "8.12.0" - resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz" - integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -ajv@^8.8.2, ajv@^8.9.0: +ajv@^8.0.0, ajv@^8.0.1, ajv@^8.9.0: version "8.12.0" resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== @@ -3184,12 +3504,7 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -ansi-styles@^6.0.0: - version "6.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - -ansi-styles@^6.1.0: +ansi-styles@^6.0.0, 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== @@ -3365,6 +3680,18 @@ asap@^2.0.0: resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== +asar@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/asar/-/asar-3.2.0.tgz#e6edb5edd6f627ebef04db62f771c61bea9c1221" + integrity sha512-COdw2ZQvKdFGFxXwX3oYh2/sOsJWJegrdJCGxnN4MZ7IULgRBp9P6665aqj9z1v9VwP4oP1hRBojRDQ//IGgAg== + dependencies: + chromium-pickle-js "^0.2.0" + commander "^5.0.0" + glob "^7.1.6" + minimatch "^3.0.4" + optionalDependencies: + "@types/glob" "^7.1.1" + astral-regex@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" @@ -3566,7 +3893,7 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browserslist@^4.21.10, browserslist@^4.22.2, browserslist@^4.23.0, "browserslist@>= 4.21.0": +browserslist@^4.21.10, browserslist@^4.22.2, browserslist@^4.23.0: version "4.23.0" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz" integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== @@ -3794,6 +4121,11 @@ chrome-trace-event@^1.0.2, chrome-trace-event@^1.0.3: resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz" integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== +chromium-pickle-js@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205" + integrity sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw== + classnames@^2.5.1: version "2.5.1" resolved "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz" @@ -3905,14 +4237,7 @@ clone@^1.0.2: resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^1.9.3: +color-convert@^1.9.0, color-convert@^1.9.3: version "1.9.3" resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== @@ -3926,16 +4251,16 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@^1.0.0, color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - color-name@1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + color-string@^1.6.0, color-string@^1.9.0: version "1.9.1" resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz" @@ -4135,18 +4460,7 @@ cross-dirname@^0.1.0: resolved "https://registry.npmjs.org/cross-dirname/-/cross-dirname-0.1.0.tgz" integrity sha512-+R08/oI0nl3vfPcqftZRpytksBXDzOUveBq/NBVx0sUp1axwzPQrKinNx5yd5sxPu8j1wIy8AfnVQ+5eFdha6Q== -cross-spawn@^6.0.0: - version "6.0.5" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^6.0.5: +cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== @@ -4282,7 +4596,7 @@ cycle@1.0.x: resolved "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz" integrity sha512-TVF6svNzeQCOpjCqsy0/CSy8VgObG3wXusJ73xW2GbG5rGx7lC8zxDSURicsXI2UsGdi2L0QNRCi745/wUDvsA== -d@^1.0.1, d@^1.0.2, d@1: +d@1, d@^1.0.1, d@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/d/-/d-1.0.2.tgz" integrity sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw== @@ -4335,27 +4649,20 @@ dayjs@^1.11.9: resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz" integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ== -debug@^2.2.0: +debug@2.6.9, debug@^2.2.0: version "2.6.9" resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@^4.0.1, 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: +debug@4, debug@^4.0.1, 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.4" resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -debug@2.6.9: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - debuglog@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz" @@ -4388,7 +4695,7 @@ deep-object-diff@^1.1.9: resolved "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.9.tgz" integrity sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA== -deepmerge@^4.2.2, deepmerge@4.3.0: +deepmerge@4.3.0, deepmerge@^4.2.2: version "4.3.0" resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.0.tgz" integrity sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og== @@ -4450,16 +4757,16 @@ delegates@^1.0.0: resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== - depd@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + deprecation@^2.0.0, deprecation@^2.3.1: version "2.3.1" resolved "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz" @@ -4633,6 +4940,50 @@ ee-first@1.1.1: resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== +electron-installer-common@^0.10.2: + version "0.10.3" + resolved "https://registry.yarnpkg.com/electron-installer-common/-/electron-installer-common-0.10.3.tgz#40f9db644ca60eb28673d545b67ee0113aef4444" + integrity sha512-mYbP+6i+nHMIm0WZHXgGdmmXMe+KXncl6jZYQNcCF9C1WsNA9C5SZ2VP4TLQMSIoFO+X4ugkMEA5uld1bmyEvA== + dependencies: + "@malept/cross-spawn-promise" "^1.0.0" + asar "^3.0.0" + debug "^4.1.1" + fs-extra "^9.0.0" + glob "^7.1.4" + lodash "^4.17.15" + parse-author "^2.0.0" + semver "^7.1.1" + tmp-promise "^3.0.2" + optionalDependencies: + "@types/fs-extra" "^9.0.1" + +electron-installer-debian@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/electron-installer-debian/-/electron-installer-debian-3.2.0.tgz#2a9c8220f50a57807de8f93619a0d61ec41271e0" + integrity sha512-58ZrlJ1HQY80VucsEIG9tQ//HrTlG6sfofA3nRGr6TmkX661uJyu4cMPPh6kXW+aHdq/7+q25KyQhDrXvRL7jw== + dependencies: + "@malept/cross-spawn-promise" "^1.0.0" + debug "^4.1.1" + electron-installer-common "^0.10.2" + fs-extra "^9.0.0" + get-folder-size "^2.0.1" + lodash "^4.17.4" + word-wrap "^1.2.3" + yargs "^16.0.2" + +electron-installer-redhat@^3.2.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/electron-installer-redhat/-/electron-installer-redhat-3.4.0.tgz#4a7f8d67b48b7d5b23bd1eb074f4b684ae43b192" + integrity sha512-gEISr3U32Sgtj+fjxUAlSDo3wyGGq6OBx7rF5UdpIgbnpUvMN4W5uYb0ThpnAZ42VEJh/3aODQXHbFS4f5J3Iw== + dependencies: + "@malept/cross-spawn-promise" "^1.0.0" + debug "^4.1.1" + electron-installer-common "^0.10.2" + fs-extra "^9.0.0" + lodash "^4.17.15" + word-wrap "^1.2.3" + yargs "^16.0.2" + electron-squirrel-startup@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/electron-squirrel-startup/-/electron-squirrel-startup-1.0.0.tgz" @@ -4692,7 +5043,7 @@ encodeurl@~1.0.2: resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -encoding@^0.1.0, encoding@^0.1.12, encoding@^0.1.13: +encoding@^0.1.12, encoding@^0.1.13: version "0.1.13" resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== @@ -5009,12 +5360,7 @@ escape-html@~1.0.3: resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== -escape-string-regexp@^1.0.2: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== @@ -5068,7 +5414,7 @@ eslint-plugin-react@^7.34.1: semver "^6.3.1" string.prototype.matchall "^4.0.10" -eslint-scope@^5.1.1: +eslint-scope@5.1.1, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -5084,14 +5430,6 @@ eslint-scope@^7.2.2: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-scope@5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - eslint-utils@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz" @@ -5099,12 +5437,7 @@ eslint-utils@^2.1.0: dependencies: eslint-visitor-keys "^1.1.0" -eslint-visitor-keys@^1.1.0: - version "1.3.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== - -eslint-visitor-keys@^1.3.0: +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== @@ -5119,50 +5452,6 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -"eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8", "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", eslint@^8.56.0, eslint@^8.57.0, eslint@>=7.0.0: - version "8.57.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz" - integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.57.0" - "@humanwhocodes/config-array" "^0.11.14" - "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - "@ungap/structured-clone" "^1.2.0" - ajv "^6.12.4" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.2.2" - eslint-visitor-keys "^3.4.3" - espree "^9.6.1" - esquery "^1.4.2" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - glob-parent "^6.0.2" - globals "^13.19.0" - graphemer "^1.4.0" - ignore "^5.2.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.3" - strip-ansi "^6.0.1" - text-table "^0.2.0" - eslint@^7.27.0: version "7.32.0" resolved "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz" @@ -5209,6 +5498,50 @@ eslint@^7.27.0: text-table "^0.2.0" v8-compile-cache "^2.0.3" +eslint@^8.57.0: + version "8.57.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz" + integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.57.0" + "@humanwhocodes/config-array" "^0.11.14" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" + ajv "^6.12.4" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + esniff@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz" @@ -5261,16 +5594,16 @@ estraverse-fb@^1.3.2: resolved "https://registry.npmjs.org/estraverse-fb/-/estraverse-fb-1.3.2.tgz" integrity sha512-wp3lfRrWy5EQD9TqesuYM1SKVP4ERT0cUatb4e8Vznf4K5IOpREhuyXZxGj3a9s9mvX5vGZKNHA4R9D4kp9Q9A== -estraverse@*, estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: - version "5.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - estraverse@^4.1.1: version "4.3.0" resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== +estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: + version "5.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" @@ -5364,7 +5697,7 @@ express-ws@^5.0.2: dependencies: ws "^7.4.6" -"express@^4.0.0 || ^5.0.0-alpha.1", express@^4.17.1, express@^4.17.3: +express@^4.17.1, express@^4.17.3: version "4.19.2" resolved "https://registry.npmjs.org/express/-/express-4.19.2.tgz" integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== @@ -5660,16 +5993,7 @@ fs-extra@^10.0.0, fs-extra@^10.1.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@^11.1.0: - version "11.2.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz" - integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs-extra@^11.1.1: +fs-extra@^11.1.0, fs-extra@^11.1.1: version "11.2.0" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz" integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== @@ -5696,7 +6020,7 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.0.1: +fs-extra@^9.0.0, fs-extra@^9.0.1: version "9.1.0" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== @@ -5723,6 +6047,11 @@ fs.realpath@^1.0.0: resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== +fsevents@~2.3.2, fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + function-bind@^1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" @@ -5757,6 +6086,11 @@ galactus@^1.0.0: flora-colossus "^2.0.0" fs-extra "^10.1.0" +gar@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/gar/-/gar-1.0.4.tgz#f777bc7db425c0572fdeb52676172ca1ae9888b8" + integrity sha512-w4n9cPWyP7aHxKxYHFQMegj7WIAsL/YX/C4Bs5Rr8s1H9M1rNtRWRsw+ovYMkXDQ5S4ZbYHsHAPmevPjPgw44w== + gauge@^3.0.0: version "3.0.2" resolved "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz" @@ -5796,6 +6130,14 @@ get-caller-file@^2.0.5: resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== +get-folder-size@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/get-folder-size/-/get-folder-size-2.0.1.tgz#3fe0524dd3bad05257ef1311331417bcd020a497" + integrity sha512-+CEb+GDCM7tkOS2wdMKTn9vU7DgnKUTuDlehkNJKNSovdCOVxs14OfKCk4cvSaR3za4gj+OBdl9opPN9xrJ0zA== + dependencies: + gar "^1.0.4" + tiny-each-async "2.0.3" + get-installed-path@^2.0.3: version "2.1.1" resolved "https://registry.npmjs.org/get-installed-path/-/get-installed-path-2.1.1.tgz" @@ -5869,7 +6211,7 @@ github-url-to-object@^4.0.4: dependencies: is-url "^1.1.0" -glob-parent@^5.1.2: +glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -5883,13 +6225,6 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - glob-to-regexp@^0.4.1: version "0.4.1" resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" @@ -5951,7 +6286,7 @@ global-agent@^3.0.0: semver "^7.3.2" serialize-error "^7.0.1" -global-modules@^1.0.0, global-modules@1.0.0: +global-modules@1.0.0, global-modules@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz" integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== @@ -5976,14 +6311,7 @@ globals@^11.1.0: resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.19.0: - version "13.24.0" - resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz" - integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== - dependencies: - type-fest "^0.20.2" - -globals@^13.6.0, globals@^13.9.0: +globals@^13.19.0, globals@^13.6.0, globals@^13.9.0: version "13.24.0" resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz" integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== @@ -6211,16 +6539,6 @@ http-deceiver@^1.2.7: resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz" integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - http-errors@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" @@ -6232,6 +6550,16 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + http-parser-js@>=0.5.1: version "0.5.8" resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz" @@ -6338,20 +6666,13 @@ i18next-browser-languagedetector@^7.2.0: dependencies: "@babel/runtime" "^7.23.2" -i18next@^23.10.1, "i18next@>= 23.2.3": +i18next@^23.10.1: version "23.11.2" resolved "https://registry.npmjs.org/i18next/-/i18next-23.11.2.tgz" integrity sha512-qMBm7+qT8jdpmmDw/kQD16VpmkL9BdL+XNAK5MNbNFaf1iQQq35ZbPrSlqmnNPOSUY4m342+c0t0evinF5l7sA== dependencies: "@babel/runtime" "^7.23.2" -iconv-lite@^0.6.2: - version "0.6.3" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" @@ -6359,7 +6680,7 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@0.6.3: +iconv-lite@0.6.3, iconv-lite@^0.6.2: version "0.6.3" resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== @@ -6422,7 +6743,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@2, inherits@2.0.4: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -6459,16 +6780,16 @@ ip-address@^9.0.5: jsbn "1.1.0" sprintf-js "^1.1.3" -ipaddr.js@^2.0.1: - version "2.1.0" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz" - integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== - ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== +ipaddr.js@^2.0.1: + version "2.1.0" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz" + integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== + is-array-buffer@^3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz" @@ -7073,7 +7394,7 @@ lodash.truncate@^4.4.2: resolved "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz" integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== -lodash@^4.17.14, lodash@^4.17.20, lodash@^4.17.21: +lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4: version "4.17.21" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -7325,7 +7646,7 @@ micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4: braces "^3.0.2" picomatch "^2.3.1" -"mime-db@>= 1.43.0 < 2", mime-db@1.52.0: +mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": version "1.52.0" resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== @@ -7383,21 +7704,7 @@ minimatch@^8.0.2: dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.1: - version "9.0.4" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz" - integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^9.0.3: - version "9.0.4" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz" - integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^9.0.4: +minimatch@^9.0.1, minimatch@^9.0.3, minimatch@^9.0.4: version "9.0.4" resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz" integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== @@ -7471,17 +7778,12 @@ minipass@^4.2.4: resolved "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz" integrity sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ== -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": - version "7.0.4" - resolved "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz" - integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== - minipass@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz" integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== -minipass@^7.0.4: +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.4: version "7.0.4" resolved "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz" integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== @@ -7541,16 +7843,16 @@ moo@^0.5.1: resolved "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz" integrity sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q== -ms@^2.0.0, ms@^2.1.1, ms@2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - ms@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== +ms@2.1.2, ms@^2.0.0, ms@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + ms@2.1.3: version "2.1.3" resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" @@ -7593,7 +7895,7 @@ natural-compare@^1.4.0: resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -negotiator@^0.6.2, negotiator@^0.6.3, negotiator@0.6.3: +negotiator@0.6.3, negotiator@^0.6.2, negotiator@^0.6.3: version "0.6.3" resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== @@ -7664,6 +7966,22 @@ node-forge@^1: resolved "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz" integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== +node-gyp@8.x: + version "8.4.1" + resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz" + integrity sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w== + dependencies: + env-paths "^2.2.0" + glob "^7.1.4" + graceful-fs "^4.2.6" + make-fetch-happen "^9.1.0" + nopt "^5.0.0" + npmlog "^6.0.0" + rimraf "^3.0.2" + semver "^7.3.5" + tar "^6.1.2" + which "^2.0.2" + node-gyp@^9.0.0: version "9.4.1" resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.1.tgz" @@ -7681,22 +7999,6 @@ node-gyp@^9.0.0: tar "^6.1.2" which "^2.0.2" -node-gyp@8.x: - version "8.4.1" - resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz" - integrity sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w== - dependencies: - env-paths "^2.2.0" - glob "^7.1.4" - graceful-fs "^4.2.6" - make-fetch-happen "^9.1.0" - nopt "^5.0.0" - npmlog "^6.0.0" - rimraf "^3.0.2" - semver "^7.3.5" - tar "^6.1.2" - which "^2.0.2" - node-loader@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/node-loader/-/node-loader-2.0.0.tgz" @@ -8152,12 +8454,7 @@ path-is-absolute@^1.0.0: resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== -path-key@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" - integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== - -path-key@^2.0.1: +path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== @@ -8298,7 +8595,7 @@ postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.1.0, postcss@^8.4.33, postcss@^8.4.38: +postcss@^8.4.33, postcss@^8.4.38: version "8.4.38" resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz" integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== @@ -8477,7 +8774,7 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -"react-dom@^16.8.0 || ^17.0.0 || ^18.0.0", react-dom@^18.2.0, react-dom@>=16.8: +react-dom@^18.2.0: version "18.2.0" resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz" integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== @@ -8503,7 +8800,7 @@ react-loading-skeleton@^3.4.0: resolved "https://registry.npmjs.org/react-loading-skeleton/-/react-loading-skeleton-3.4.0.tgz" integrity sha512-1oJEBc9+wn7BbkQQk7YodlYEIjgeR+GrRjD+QXkVjwZN7LGIcAFHrx4NhT7UHGBxNY1+zax3c+Fo6XQM4R7CgA== -"react-redux@^7.2.1 || ^8.1.3 || ^9.0.0", react-redux@^9.1.0: +react-redux@^9.1.0: version "9.1.1" resolved "https://registry.npmjs.org/react-redux/-/react-redux-9.1.1.tgz" integrity sha512-5ynfGDzxxsoV73+4czQM56qF43vsmgJsO22rmAvU5tZT2z5Xow/A2uhhxwXuGTxgdReF3zcp7A80gma2onRs1A== @@ -8526,7 +8823,7 @@ react-router@6.22.3: dependencies: "@remix-run/router" "1.15.3" -"react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^16.9.0 || ^17.0.0 || ^18", react@^18.0, react@^18.2.0, "react@>= 16.8.0", react@>=16.3, react@>=16.8, react@>=16.8.0, "react@15.x || 16.x || 17.x || 18.x": +react@^18.2.0: version "18.2.0" resolved "https://registry.npmjs.org/react/-/react-18.2.0.tgz" integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== @@ -8627,7 +8924,7 @@ redux-thunk@^3.1.0: resolved "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz" integrity sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw== -redux@^5.0.0, redux@^5.0.1: +redux@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz" integrity sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w== @@ -8920,21 +9217,16 @@ safe-array-concat@^1.1.2: has-symbols "^1.0.3" isarray "^2.0.5" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@>=5.1.0, safe-buffer@~5.2.0, safe-buffer@5.2.1: +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - safe-identifier@^0.4.1: version "0.4.2" resolved "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz" @@ -9015,38 +9307,23 @@ semver-compare@^1.0.0: resolved "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz" integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== -semver@^5.5.0: +"semver@2 || 3 || 4 || 5", semver@^5.5.0: version "5.7.2" resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@^6.0.0: +semver@^6.0.0, semver@^6.2.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^6.2.0: - version "6.3.1" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^6.3.1: - version "6.3.1" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.5.4, semver@^7.6.0: +semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.5.4, semver@^7.6.0: version "7.6.0" resolved "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz" integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== dependencies: lru-cache "^6.0.0" -"semver@2 || 3 || 4 || 5": - version "5.7.2" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - send@0.18.0: version "0.18.0" resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" @@ -9385,7 +9662,7 @@ sprintf-js@~1.0.2: resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== -sqlite3@^5.0.3, sqlite3@^5.1.7: +sqlite3@^5.1.7: version "5.1.7" resolved "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.7.tgz" integrity sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog== @@ -9416,16 +9693,16 @@ stack-trace@0.0.x: resolved "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz" integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== -"statuses@>= 1.4.0 < 2": - version "1.5.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== - statuses@2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== +"statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + stream-transform@^2.1.3: version "2.1.3" resolved "https://registry.npmjs.org/stream-transform/-/stream-transform-2.1.3.tgz" @@ -9433,20 +9710,6 @@ stream-transform@^2.1.3: dependencies: mixme "^0.5.1" -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - "string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" @@ -9465,25 +9728,7 @@ string_decoder@~1.1.1: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^5.0.0: - version "5.1.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -string-width@^5.0.1: - version "5.1.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -string-width@^5.1.2: +string-width@^5.0.0, string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== @@ -9538,6 +9783,20 @@ string.prototype.trimstart@^1.0.8: define-properties "^1.2.1" es-object-atoms "^1.0.0" +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + "strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" @@ -9738,7 +9997,7 @@ terser-webpack-plugin@^5.3.10: serialize-javascript "^6.0.1" terser "^5.26.0" -terser@^5.10.0, terser@^5.26.0, terser@^5.4.0: +terser@^5.10.0, terser@^5.26.0: version "5.30.3" resolved "https://registry.npmjs.org/terser/-/terser-5.30.3.tgz" integrity sha512-STdUgOUx8rLbMGO9IOwHLpCqolkDITFFQSMYYwKE1N2lY6MVSaeoi10z/EhWxRc6ybqoVmKSkhKYH/XUpl7vSA== @@ -9782,6 +10041,23 @@ thunky@^1.0.2: resolved "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz" integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== +tiny-each-async@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/tiny-each-async/-/tiny-each-async-2.0.3.tgz#8ebbbfd6d6295f1370003fbb37162afe5a0a51d1" + integrity sha512-5ROII7nElnAirvFn8g7H7MtpfV1daMcyfTGQwsn/x2VtyV+VPiO5CjReCJtWLvoKTDEDmZocf3cNPraiMnBXLA== + +tmp-promise@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.3.tgz#60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7" + integrity sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ== + dependencies: + 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.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" @@ -9849,7 +10125,7 @@ ts-loader@^9.2.2: semver "^7.3.4" source-map "^0.7.4" -ts-node@^10.0.0, ts-node@^10.7.0: +ts-node@^10.0.0: version "10.9.2" resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz" integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== @@ -10010,7 +10286,7 @@ typeorm@^0.3.20: uuid "^9.0.0" yargs "^17.6.2" -typescript@*, typescript@^5.4.3, typescript@>=2.7, "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta", typescript@>=4.2.0, typescript@>=4.9.5, typescript@>3.6.0: +typescript@^5.4.3: version "5.4.5" resolved "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz" integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== @@ -10111,7 +10387,7 @@ universalify@^2.0.0: resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -unpipe@~1.0.0, unpipe@1.0.0: +unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== @@ -10358,7 +10634,7 @@ webpack-virtual-modules@^0.5.0: resolved "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz" integrity sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw== -"webpack@^4 || ^5", "webpack@^4.0.0 || ^5.0.0", "webpack@^4.30.0 || ^5.20.2", "webpack@^4.37.0 || ^5.0.0", webpack@^5, webpack@^5.0.0, webpack@^5.1.0, webpack@^5.11.0, webpack@^5.20.0, webpack@^5.69.1, webpack@>=4.40.0: +webpack@^5, webpack@^5.69.1: version "5.91.0" resolved "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz" integrity sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw== @@ -10388,7 +10664,7 @@ webpack-virtual-modules@^0.5.0: watchpack "^2.4.1" webpack-sources "^3.2.3" -websocket-driver@^0.7.4, websocket-driver@>=0.5.1: +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz" integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== @@ -10480,14 +10756,7 @@ which-typed-array@^1.1.14, which-typed-array@^1.1.15, which-typed-array@^1.1.9: gopd "^1.0.1" has-tostringtag "^1.0.2" -which@^1.2.14: - version "1.3.1" - resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^1.2.9: +which@^1.2.14, which@^1.2.9: version "1.3.1" resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== @@ -10551,6 +10820,11 @@ winston@^3.12.0: triple-beam "^1.3.0" winston-transport "^4.7.0" +word-wrap@^1.2.3: + version "1.2.5" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" @@ -10588,12 +10862,7 @@ ws@^7.4.6: resolved "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz" integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== -ws@^8.13.0: - version "8.16.0" - resolved "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz" - integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== - -ws@^8.16.0: +ws@^8.13.0, ws@^8.16.0: version "8.16.0" resolved "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz" integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== @@ -10623,7 +10892,7 @@ xterm-addon-search@^0.8.0: resolved "https://registry.npmjs.org/xterm-addon-search/-/xterm-addon-search-0.8.2.tgz" integrity sha512-I1863mjn8P6uVrqm/X+btalVsqjAKLhnhpbP7SavAOpEkI1jJhbHU2UTp7NjeRtcKTks6UWk/ycgds5snDSejg== -xterm@^4.0.0, xterm@^4.9.0: +xterm@^4.9.0: version "4.19.0" resolved "https://registry.npmjs.org/xterm/-/xterm-4.19.0.tgz" integrity sha512-c3Cp4eOVsYY5Q839dR5IejghRPpxciGmLWWaP9g+ppfMeBChMeLa1DCA+pmX/jyDZ+zxFOmlJL/82qVdayVoGQ== @@ -10663,7 +10932,7 @@ yargs-parser@^21.1.1: resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs@^16.0.0: +yargs@^16.0.0, yargs@^16.0.2: version "16.2.0" resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==