diff --git a/package.json b/package.json index 48a8ad31..678d1bb0 100644 --- a/package.json +++ b/package.json @@ -44,8 +44,8 @@ "color.js": "^1.2.0", "date-fns": "^3.6.0", "electron-dl-manager": "^3.0.0", + "fetch-cookie": "^3.0.1", "flexsearch": "^0.7.43", - "got-scraping": "^4.0.5", "i18next": "^23.11.2", "i18next-browser-languagedetector": "^7.2.1", "jsdom": "^24.0.0", @@ -58,10 +58,8 @@ "react-loading-skeleton": "^3.4.0", "react-redux": "^9.1.1", "react-router-dom": "^6.22.3", - "tough-cookie": "^4.1.3", "typeorm": "^0.3.20", "user-agents": "^1.1.193", - "windows-1251": "^3.0.4", "winston": "^3.13.0", "yaml": "^2.4.1" }, diff --git a/src/locales/en/translation.json b/src/locales/en/translation.json index 4020b9e0..d8182cd3 100644 --- a/src/locales/en/translation.json +++ b/src/locales/en/translation.json @@ -69,6 +69,8 @@ "copied_link_to_clipboard": "Link copied", "hours": "hours", "minutes": "minutes", + "amount_hours": "{{amount}} hours", + "amount_minutes": "{{amount}} minutes", "accuracy": "{{accuracy}}% accuracy", "add_to_library": "Add to library", "remove_from_library": "Remove from library", @@ -135,7 +137,9 @@ "enable_repack_list_notifications": "When a new repack is added", "telemetry": "Telemetry", "telemetry_description": "Enable anonymous usage statistics", - "real_debrid_api_token_description": "(Optional) Real Debrid API token" + "real_debrid_api_token_description": "(Optional) Real Debrid API token", + "behavior": "Behavior", + "quit_app_instead_hiding": "Close app instead of minimizing to tray" }, "notifications": { "download_complete": "Download complete", diff --git a/src/locales/es/translation.json b/src/locales/es/translation.json index da71ecef..78c82720 100644 --- a/src/locales/es/translation.json +++ b/src/locales/es/translation.json @@ -61,6 +61,8 @@ "copied_link_to_clipboard": "Enlace copiado", "hours": "horas", "minutes": "minutos", + "amount_hours": "{{amount}} horas", + "amount_minutes": "{{amount}} minutos", "accuracy": "{{accuracy}}% precisión", "add_to_library": "Agregar a la biblioteca", "remove_from_library": "Eliminar de la biblioteca", diff --git a/src/locales/fr/translation.json b/src/locales/fr/translation.json index c06e483a..5cc7632b 100644 --- a/src/locales/fr/translation.json +++ b/src/locales/fr/translation.json @@ -61,6 +61,8 @@ "copied_link_to_clipboard": "Lien copié", "hours": "heures", "minutes": "minutes", + "amount_hours": "{{amount}} heures", + "amount_minutes": "{{amount}} minutes", "accuracy": "{{accuracy}}% précision", "add_to_library": "Ajouter à la bibliothèque", "remove_from_library": "Supprimer de la bibliothèque", diff --git a/src/locales/hu/translation.json b/src/locales/hu/translation.json index 35b3e51a..110d2ec1 100644 --- a/src/locales/hu/translation.json +++ b/src/locales/hu/translation.json @@ -66,6 +66,8 @@ "copied_link_to_clipboard": "Link másolva", "hours": "óra", "minutes": "perc", + "amount_hours": "{{amount}} óra", + "amount_minutes": "{{amount}} perc", "accuracy": "{{accuracy}}% pontosság", "add_to_library": "Hozzáadás a könyvtárhoz", "remove_from_library": "Eltávolítás a könyvtárból", diff --git a/src/locales/it/translation.json b/src/locales/it/translation.json index 00289b63..ca2a83f5 100644 --- a/src/locales/it/translation.json +++ b/src/locales/it/translation.json @@ -69,6 +69,8 @@ "copied_link_to_clipboard": "Link copiato", "hours": "ore", "minutes": "minuti", + "amount_hours": "{{amount}} ore", + "amount_minutes": "{{amount}} minuti", "accuracy": "{{accuratezza}}% di accuratezza", "add_to_library": "Aggiungi alla libreria", "remove_from_library": "Rimuovi dalla libreria", diff --git a/src/locales/pt/translation.json b/src/locales/pt/translation.json index 5f048d7a..4e36f218 100644 --- a/src/locales/pt/translation.json +++ b/src/locales/pt/translation.json @@ -64,6 +64,8 @@ "copied_link_to_clipboard": "Link copiado", "hours": "horas", "minutes": "minutos", + "amount_hours": "{{amount}} horas", + "amount_minutes": "{{amount}} minutos", "accuracy": "{{accuracy}}% de precisão", "add_to_library": "Adicionar à biblioteca", "remove_from_library": "Remover da biblioteca", @@ -131,7 +133,9 @@ "enable_repack_list_notifications": "Quando a lista de repacks for atualizada", "telemetry": "Telemetria", "telemetry_description": "Habilitar estatísticas de uso anônimas", - "real_debrid_api_token_description": "(Opcional) Real Debrid API token" + "real_debrid_api_token_description": "(Opcional) Real Debrid API token", + "behavior": "Comportamento", + "quit_app_instead_hiding": "Fechar o aplicativo em vez de minimizá-lo" }, "notifications": { "download_complete": "Download concluído", diff --git a/src/main/entity/user-preferences.entity.ts b/src/main/entity/user-preferences.entity.ts index eb220468..58cce5ce 100644 --- a/src/main/entity/user-preferences.entity.ts +++ b/src/main/entity/user-preferences.entity.ts @@ -29,6 +29,9 @@ export class UserPreferences { @Column("boolean", { default: true }) telemetryEnabled: boolean; + @Column("boolean", { default: false }) + preferQuitInsteadOfHiding: boolean; + @CreateDateColumn() createdAt: Date; diff --git a/src/main/main.ts b/src/main/main.ts index 309d6272..9a09db3d 100644 --- a/src/main/main.ts +++ b/src/main/main.ts @@ -5,7 +5,7 @@ import { getNewRepacksFromCPG, getNewRepacksFromUser, getNewRepacksFromXatab, - // getNewRepacksFromOnlineFix, + getNewRepacksFromOnlineFix, readPipe, startProcessWatcher, writePipe, @@ -76,9 +76,9 @@ const checkForNewRepacks = async () => { getNewRepacksFromCPG( existingRepacks.filter((repack) => repack.repacker === "CPG") ), - // getNewRepacksFromOnlineFix( - // existingRepacks.filter((repack) => repack.repacker === "onlinefix") - // ), + getNewRepacksFromOnlineFix( + existingRepacks.filter((repack) => repack.repacker === "onlinefix") + ), track1337xUsers(existingRepacks), ]).then(() => { repackRepository.count().then((count) => { diff --git a/src/main/services/process-watcher.ts b/src/main/services/process-watcher.ts index fc81e8d3..ffed95e9 100644 --- a/src/main/services/process-watcher.ts +++ b/src/main/services/process-watcher.ts @@ -8,20 +8,18 @@ import { WindowManager } from "./window-manager"; const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms)); export const startProcessWatcher = async () => { - const sleepTime = 300; + const sleepTime = 500; const gamesPlaytime = new Map(); // eslint-disable-next-line no-constant-condition while (true) { - await sleep(sleepTime); - const games = await gameRepository.find({ where: { executablePath: Not(IsNull()), }, }); - if (games.length == 0) { + if (games.length === 0) { continue; } @@ -71,5 +69,7 @@ export const startProcessWatcher = async () => { } } } + + await sleep(sleepTime); } }; diff --git a/src/main/services/repack-tracker/helpers.ts b/src/main/services/repack-tracker/helpers.ts index 1d4e8653..ef2f4945 100644 --- a/src/main/services/repack-tracker/helpers.ts +++ b/src/main/services/repack-tracker/helpers.ts @@ -20,3 +20,19 @@ export const requestWebPage = async (url: string) => { }, }).then((response) => response.text()); }; + +export const decodeNonUtf8Response = async (res: Response) => { + const contentType = res.headers.get("content-type"); + if (!contentType) return res.text(); + + const charset = contentType.substring(contentType.indexOf("charset=") + 8); + + const text = await res.arrayBuffer().then((ab) => { + const dataView = new DataView(ab); + const decoder = new TextDecoder(charset); + + return decoder.decode(dataView); + }); + + return text; +}; diff --git a/src/main/services/repack-tracker/index.ts b/src/main/services/repack-tracker/index.ts index fb345fae..7bd3ce31 100644 --- a/src/main/services/repack-tracker/index.ts +++ b/src/main/services/repack-tracker/index.ts @@ -2,4 +2,4 @@ export * from "./1337x"; export * from "./xatab"; export * from "./cpg-repacks"; export * from "./gog"; -// export * from "./online-fix"; +export * from "./online-fix"; diff --git a/src/main/services/repack-tracker/online-fix.ts b/src/main/services/repack-tracker/online-fix.ts index c627eccb..a473679f 100644 --- a/src/main/services/repack-tracker/online-fix.ts +++ b/src/main/services/repack-tracker/online-fix.ts @@ -1,56 +1,42 @@ import { Repack } from "@main/entity"; -import { savePage } from "./helpers"; +import { decodeNonUtf8Response, savePage } from "./helpers"; import { logger } from "../logger"; import parseTorrent, { toMagnetURI, Instance as TorrentInstance, } from "parse-torrent"; import { JSDOM } from "jsdom"; -import { gotScraping } from "got-scraping"; -import { CookieJar } from "tough-cookie"; import { format, parse, sub } from "date-fns"; import { ru } from "date-fns/locale"; -import { decode } from "windows-1251"; + import { onlinefixFormatter } from "@main/helpers"; +import makeFetchCookie from "fetch-cookie"; +import { QueryDeepPartialEntity } from "typeorm/query-builder/QueryPartialEntity"; export const getNewRepacksFromOnlineFix = async ( existingRepacks: Repack[] = [], page = 1, - cookieJar = new CookieJar() + cookieJar = new makeFetchCookie.toughCookie.CookieJar() ): Promise => { const hasCredentials = import.meta.env.MAIN_VITE_ONLINEFIX_USERNAME && import.meta.env.MAIN_VITE_ONLINEFIX_PASSWORD; if (!hasCredentials) return; - const http = gotScraping.extend({ - headerGeneratorOptions: { - browsers: [ - { - name: "chrome", - minVersion: 87, - maxVersion: 89, - }, - ], - devices: ["desktop"], - locales: ["en-US"], - operatingSystems: ["windows", "linux"], - }, - cookieJar: cookieJar, - }); + const http = makeFetchCookie(fetch, cookieJar); if (page === 1) { - await http.get("https://online-fix.me/"); + await http("https://online-fix.me/"); + const preLogin = - ((await http - .get("https://online-fix.me/engine/ajax/authtoken.php", { - headers: { - "X-Requested-With": "XMLHttpRequest", - Referer: "https://online-fix.me/", - }, - }) - .json()) as { + ((await http("https://online-fix.me/engine/ajax/authtoken.php", { + method: "GET", + headers: { + "X-Requested-With": "XMLHttpRequest", + Referer: "https://online-fix.me/", + }, + }).then((res) => res.json())) as { field: string; value: string; }) || undefined; @@ -64,27 +50,25 @@ export const getNewRepacksFromOnlineFix = async ( [preLogin.field]: preLogin.value, }); - await http - .post("https://online-fix.me/", { - encoding: "binary", - headers: { - Referer: "https://online-fix.me", - Origin: "https://online-fix.me", - "Content-Type": "application/x-www-form-urlencoded", - }, - body: params.toString(), - }) - .text(); + await http("https://online-fix.me/", { + method: "POST", + headers: { + Referer: "https://online-fix.me", + Origin: "https://online-fix.me", + "Content-Type": "application/x-www-form-urlencoded", + }, + body: params.toString(), + }); } const pageParams = page > 1 ? `${`/page/${page}`}` : ""; - const home = await http.get(`https://online-fix.me${pageParams}`, { - encoding: "binary", - }); - const document = new JSDOM(home.body).window.document; + const home = await http(`https://online-fix.me${pageParams}`).then((res) => + decodeNonUtf8Response(res) + ); + const document = new JSDOM(home).window.document; - const repacks = []; + const repacks: QueryDeepPartialEntity[] = []; const articles = Array.from(document.querySelectorAll(".news")); const totalPages = Number( document.querySelector("nav > a:nth-child(13)")?.textContent @@ -93,25 +77,23 @@ export const getNewRepacksFromOnlineFix = async ( try { await Promise.all( articles.map(async (article) => { - const gameName = onlinefixFormatter( - decode(article.querySelector("h2.title")?.textContent?.trim()) - ); + const gameText = article.querySelector("h2.title")?.textContent?.trim(); + if (!gameText) return; + + const gameName = onlinefixFormatter(gameText); const gameLink = article.querySelector("a")?.getAttribute("href"); - if (!gameLink) return; - const gamePage = await http - .get(gameLink, { - encoding: "binary", - }) - .text(); - + const gamePage = await http(gameLink).then((res) => + decodeNonUtf8Response(res) + ); const gameDocument = new JSDOM(gamePage).window.document; - const uploadDateText = gameDocument.querySelector("time").textContent; + const uploadDateText = gameDocument.querySelector("time")?.textContent; + if (!uploadDateText) return; - let decodedDateText = decode(uploadDateText); + let decodedDateText = uploadDateText; // "Вчера" means yesterday. if (decodedDateText.includes("Вчера")) { @@ -141,14 +123,11 @@ export const getNewRepacksFromOnlineFix = async ( const torrentPrePage = torrentButtons[0]?.getAttribute("href"); if (!torrentPrePage) return; - const torrentPage = await http - .get(torrentPrePage, { - encoding: "binary", - headers: { - Referer: gameLink, - }, - }) - .text(); + const torrentPage = await http(torrentPrePage, { + headers: { + Referer: gameLink, + }, + }).then((res) => res.text()); const torrentDocument = new JSDOM(torrentPage).window.document; @@ -157,11 +136,9 @@ export const getNewRepacksFromOnlineFix = async ( ?.getAttribute("href"); const torrentFile = Buffer.from( - await http - .get(`${torrentPrePage}/${torrentLink}`, { - responseType: "buffer", - }) - .buffer() + await http(`${torrentPrePage}/${torrentLink}`).then((res) => + res.arrayBuffer() + ) ); const torrent = parseTorrent(torrentFile) as TorrentInstance; @@ -170,6 +147,8 @@ export const getNewRepacksFromOnlineFix = async ( }); const torrentSizeInBytes = torrent.length; + if (!torrentSizeInBytes) return; + const fileSizeFormatted = torrentSizeInBytes >= 1024 ** 3 ? `${(torrentSizeInBytes / 1024 ** 3).toFixed(1)}GBs` diff --git a/src/main/services/window-manager.ts b/src/main/services/window-manager.ts index 05cb95d6..cc94c073 100644 --- a/src/main/services/window-manager.ts +++ b/src/main/services/window-manager.ts @@ -4,6 +4,7 @@ import { t } from "i18next"; import path from "node:path"; import icon from "@resources/icon.png?asset"; import trayIcon from "@resources/tray-icon.png?asset"; +import { userPreferencesRepository } from "@main/repository"; export class WindowManager { public static mainWindow: Electron.BrowserWindow | null = null; @@ -25,7 +26,7 @@ export class WindowManager { } } - public static createMainWindow() { + public static async createMainWindow() { // Create the browser window. this.mainWindow = new BrowserWindow({ width: 1200, @@ -49,7 +50,14 @@ export class WindowManager { this.loadURL(); this.mainWindow.removeMenu(); + const userPreferences = await userPreferencesRepository.findOne({ + where: { id: 1 }, + }); + this.mainWindow.on("close", () => { + if (userPreferences?.preferQuitInsteadOfHiding) { + app.quit(); + } WindowManager.mainWindow?.setProgressBar(-1); }); } diff --git a/src/renderer/src/pages/game-details/hero/hero-panel.tsx b/src/renderer/src/pages/game-details/hero/hero-panel.tsx index 2da90284..52ff274e 100644 --- a/src/renderer/src/pages/game-details/hero/hero-panel.tsx +++ b/src/renderer/src/pages/game-details/hero/hero-panel.tsx @@ -1,5 +1,5 @@ import { format } from "date-fns"; -import { useCallback, useEffect, useMemo, useState } from "react"; +import { useEffect, useMemo, useState } from "react"; import { useTranslation } from "react-i18next"; import { useDownload } from "@renderer/hooks"; @@ -23,6 +23,8 @@ export interface HeroPanelProps { getGame: () => void; } +const MAX_MINUTES_TO_SHOW_IN_PLAYTIME = 120; + export function HeroPanel({ game, gameDetails, @@ -31,7 +33,7 @@ export function HeroPanel({ getGame, isGamePlaying, }: HeroPanelProps) { - const { t } = useTranslation("game_details"); + const { t, i18n } = useTranslation("game_details"); const [showBinaryNotFoundModal, setShowBinaryNotFoundModal] = useState(false); const [lastTimePlayed, setLastTimePlayed] = useState(""); @@ -49,29 +51,36 @@ export function HeroPanel({ } = useDownload(); const isGameDownloading = isDownloading && gameDownloading?.id === game?.id; - const updateLastTimePlayed = useCallback(() => { - setLastTimePlayed( - formatDistance(game.lastTimePlayed, new Date(), { - addSuffix: true, - }) - ); - }, [game?.lastTimePlayed, formatDistance]); - useEffect(() => { if (game?.lastTimePlayed) { - updateLastTimePlayed(); + setLastTimePlayed( + formatDistance(game.lastTimePlayed, new Date(), { + addSuffix: true, + }) + ); + } + }, [game?.lastTimePlayed, formatDistance]); - const interval = setInterval(() => { - updateLastTimePlayed(); - }, 1000); + const numberFormatter = useMemo(() => { + return new Intl.NumberFormat(i18n.language, { + maximumFractionDigits: 1, + }); + }, [i18n]); - return () => { - clearInterval(interval); - }; + const formatPlayTime = () => { + const milliseconds = game?.playTimeInMilliseconds || 0; + const seconds = milliseconds / 1000; + const minutes = seconds / 60; + + if (minutes < MAX_MINUTES_TO_SHOW_IN_PLAYTIME) { + return t("amount_minutes", { + amount: minutes.toFixed(0), + }); } - return () => {}; - }, [game?.lastTimePlayed, updateLastTimePlayed]); + const hours = minutes / 60; + return t("amount_hours", { amount: numberFormatter.format(hours) }); + }; const finalDownloadSize = useMemo(() => { if (!game) return "N/A"; @@ -140,7 +149,7 @@ export function HeroPanel({ <>

{t("play_time", { - amount: formatDistance(0, game.playTimeInMilliseconds), + amount: formatPlayTime(game.playTimeInMilliseconds), })}

diff --git a/src/renderer/src/pages/settings/settings.tsx b/src/renderer/src/pages/settings/settings.tsx index ce165913..e05af66e 100644 --- a/src/renderer/src/pages/settings/settings.tsx +++ b/src/renderer/src/pages/settings/settings.tsx @@ -11,7 +11,8 @@ export function Settings() { downloadNotificationsEnabled: false, repackUpdatesNotificationsEnabled: false, telemetryEnabled: false, - realDebridApiToken: null, + realDebridApiToken: null as string | null, + preferQuitInsteadOfHiding: false, }); const { t } = useTranslation("settings"); @@ -28,7 +29,9 @@ export function Settings() { repackUpdatesNotificationsEnabled: userPreferences?.repackUpdatesNotificationsEnabled ?? false, telemetryEnabled: userPreferences?.telemetryEnabled ?? false, - realDebridApiToken: userPreferences.realDebridApiToken, + realDebridApiToken: userPreferences?.realDebridApiToken ?? null, + preferQuitInsteadOfHiding: + userPreferences?.preferQuitInsteadOfHiding ?? false, }); }); }, []); @@ -110,13 +113,25 @@ export function Settings() { } /> +

{t("behavior")}

+ + + updateUserPreferences( + "preferQuitInsteadOfHiding", + !form.preferQuitInsteadOfHiding + ) + } + /> + { updateUserPreferences("realDebridApiToken", event.target.value); - }} - /> + }} /> ); diff --git a/src/types/index.ts b/src/types/index.ts index 050514e9..06fcfc29 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -109,6 +109,7 @@ export interface UserPreferences { repackUpdatesNotificationsEnabled: boolean; telemetryEnabled: boolean; realDebridApiToken: string | null; + preferQuitInsteadOfHiding: boolean; } export interface HowLongToBeatCategory { diff --git a/yarn.lock b/yarn.lock index a1395556..75c82ee3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1123,16 +1123,11 @@ "@sentry/bundler-plugin-core" "2.16.1" unplugin "1.0.1" -"@sindresorhus/is@^4.0.0", "@sindresorhus/is@^4.2.0": +"@sindresorhus/is@^4.0.0": version "4.6.0" resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz" integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== -"@sindresorhus/is@^5.2.0", "@sindresorhus/is@^5.3.0": - version "5.6.0" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz" - integrity sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g== - "@sqltools/formatter@^1.2.5": version "1.2.5" resolved "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.5.tgz" @@ -1309,13 +1304,6 @@ dependencies: defer-to-connect "^2.0.0" -"@szmarczak/http-timer@^5.0.1": - version "5.0.1" - resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz" - integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== - dependencies: - defer-to-connect "^2.0.1" - "@thaunknown/thirty-two@^1.0.3": version "1.0.3" resolved "https://registry.npmjs.org/@thaunknown/thirty-two/-/thirty-two-1.0.3.tgz" @@ -1390,7 +1378,7 @@ dependencies: "@types/node" "*" -"@types/http-cache-semantics@*", "@types/http-cache-semantics@^4.0.2": +"@types/http-cache-semantics@*": version "4.0.4" resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz" integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== @@ -1721,11 +1709,6 @@ acorn@^8.11.3, acorn@^8.8.1, acorn@^8.9.0: resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz" integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== -adm-zip@^0.5.9: - version "0.5.12" - resolved "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.12.tgz" - integrity sha512-6TVU49mK6KZb4qG6xWaaM4C7sA/sgUMLy/JYMOzkcp3BvVLpW0fXDFQiIzAuxFCt/2+xD7fNIiPFAoLZPhVNLQ== - agent-base@6: version "6.0.2" resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" @@ -2078,7 +2061,7 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browserslist@^4.21.1, browserslist@^4.22.2: +browserslist@^4.22.2: version "4.23.0" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz" integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== @@ -2159,24 +2142,6 @@ cacheable-lookup@^5.0.3: resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz" integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== -cacheable-lookup@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz" - integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== - -cacheable-request@^10.2.8: - version "10.2.14" - resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz" - integrity sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ== - dependencies: - "@types/http-cache-semantics" "^4.0.2" - get-stream "^6.0.1" - http-cache-semantics "^4.1.1" - keyv "^4.5.3" - mimic-response "^4.0.0" - normalize-url "^8.0.0" - responselike "^3.0.0" - cacheable-request@^7.0.2: version "7.0.4" resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz" @@ -2201,16 +2166,11 @@ call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: get-intrinsic "^1.2.4" set-function-length "^1.2.1" -callsites@^3.0.0, callsites@^3.1.0: +callsites@^3.0.0: version "3.1.0" resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -callsites@^4.0.0: - version "4.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-4.1.0.tgz" - integrity sha512-aBMbD1Xxay75ViYezwT40aQONfr+pSXTHwNKvIXhXD6+LY3F1dLIcceoC5OZKBVHbXcysz1hL9D2w0JJIMXpUw== - camelcase@^6.2.0: version "6.3.0" resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" @@ -2576,7 +2536,7 @@ deepmerge@^4.2.2: resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== -defer-to-connect@^2.0.0, defer-to-connect@^2.0.1: +defer-to-connect@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz" integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== @@ -2679,20 +2639,6 @@ dot-case@^3.0.4: no-case "^3.0.4" tslib "^2.0.3" -dot-prop@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz" - integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA== - dependencies: - is-obj "^2.0.0" - -dot-prop@^7.2.0: - version "7.2.0" - resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-7.2.0.tgz" - integrity sha512-Ol/IPXUARn9CSbkrdV4VJo7uCy1I3VuSiWCaFSg+8BdUOzF9n3jefIpcgAydvUZbTdEBZs2vEiTiS9m61ssiDA== - dependencies: - type-fest "^2.11.2" - dotenv-expand@^5.1.0: version "5.1.0" resolved "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz" @@ -3266,6 +3212,14 @@ fetch-blob@^3.1.2, fetch-blob@^3.1.4: node-domexception "^1.0.0" web-streams-polyfill "^3.0.3" +fetch-cookie@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/fetch-cookie/-/fetch-cookie-3.0.1.tgz#6a77f7495e1a639ae019db916a234db8c85d5963" + integrity sha512-ZGXe8Y5Z/1FWqQ9q/CrJhkUD73DyBU9VF0hBQmEO/wPHe4A9PKTjplFDLeFX8aOsYypZUcX5Ji/eByn3VCVO3Q== + dependencies: + set-cookie-parser "^2.4.8" + tough-cookie "^4.0.0" + file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" @@ -3344,11 +3298,6 @@ foreground-child@^3.1.0: cross-spawn "^7.0.0" signal-exit "^4.0.1" -form-data-encoder@^2.1.2: - version "2.1.4" - resolved "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz" - integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== - form-data@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" @@ -3435,14 +3384,6 @@ functions-have-names@^1.2.3: resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== -generative-bayesian-network@^2.1.50: - version "2.1.50" - resolved "https://registry.npmjs.org/generative-bayesian-network/-/generative-bayesian-network-2.1.50.tgz" - integrity sha512-iVmmQ4lpa41xqtrg6cbWuH1Qa2+C6tndb2dJmJazBEIQcnvz29ZYxbnqB1DAvbico3nGIVzF2Hvj2gZU9EewAQ== - dependencies: - adm-zip "^0.5.9" - tslib "^2.4.0" - gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" @@ -3476,11 +3417,6 @@ get-stream@^5.1.0: dependencies: pump "^3.0.0" -get-stream@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - get-symbol-description@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz" @@ -3592,19 +3528,6 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" -got-scraping@^4.0.5: - version "4.0.5" - resolved "https://registry.npmjs.org/got-scraping/-/got-scraping-4.0.5.tgz" - integrity sha512-g+cMC5WOVOHd6S3JdTtm+zCwpWdd3jA1MYnkOwVF7MpbKP7EWv7ORUfXDcG3gTANJ1zYj9XffCrAjbH8ssHmfw== - dependencies: - got "^13.0.0" - header-generator "^2.1.41" - http2-wrapper "^2.2.0" - mimic-response "^4.0.0" - ow "^1.1.1" - quick-lru "^7.0.0" - tslib "^2.6.2" - got@^11.8.5: version "11.8.6" resolved "https://registry.npmjs.org/got/-/got-11.8.6.tgz" @@ -3622,23 +3545,6 @@ got@^11.8.5: p-cancelable "^2.0.0" responselike "^2.0.0" -got@^13.0.0: - version "13.0.0" - resolved "https://registry.npmjs.org/got/-/got-13.0.0.tgz" - integrity sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA== - dependencies: - "@sindresorhus/is" "^5.2.0" - "@szmarczak/http-timer" "^5.0.1" - cacheable-lookup "^7.0.0" - cacheable-request "^10.2.8" - decompress-response "^6.0.0" - form-data-encoder "^2.1.2" - get-stream "^6.0.1" - http2-wrapper "^2.1.10" - lowercase-keys "^3.0.0" - p-cancelable "^3.0.0" - responselike "^3.0.0" - graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.11" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" @@ -3695,16 +3601,6 @@ hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: dependencies: function-bind "^1.1.2" -header-generator@^2.1.41: - version "2.1.50" - resolved "https://registry.npmjs.org/header-generator/-/header-generator-2.1.50.tgz" - integrity sha512-Z37QBqcPzEqCCFQcOv1Kth1My3h4Vx+2V+aBipjrefZ2MFbVfYB/mo1v+OxiEJir5zSp9rX/z+BoqTuSAIGBLQ== - dependencies: - browserslist "^4.21.1" - generative-bayesian-network "^2.1.50" - ow "^0.28.1" - tslib "^2.4.0" - highlight.js@^10.7.1: version "10.7.3" resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz" @@ -3738,7 +3634,7 @@ html-parse-stringify@^3.0.1: dependencies: void-elements "3.1.0" -http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.1: +http-cache-semantics@^4.0.0: version "4.1.1" resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== @@ -3768,14 +3664,6 @@ http2-wrapper@^1.0.0-beta.5.2: quick-lru "^5.1.1" resolve-alpn "^1.0.0" -http2-wrapper@^2.1.10, http2-wrapper@^2.2.0: - version "2.2.1" - resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz" - integrity sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ== - dependencies: - quick-lru "^5.1.1" - resolve-alpn "^1.2.0" - https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" @@ -4014,11 +3902,6 @@ is-number@^7.0.0: resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - is-path-inside@^3.0.3: version "3.0.3" resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" @@ -4316,11 +4199,6 @@ lodash.clonedeep@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" integrity sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== -lodash.isequal@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz" - integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== - lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" @@ -4374,11 +4252,6 @@ lowercase-keys@^2.0.0: resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== -lowercase-keys@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz" - integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== - lru-cache@^10.2.0: version "10.2.1" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.1.tgz" @@ -4475,11 +4348,6 @@ mimic-response@^3.1.0: resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== -mimic-response@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz" - integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== - minimatch@9.0.3: version "9.0.3" resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" @@ -4675,11 +4543,6 @@ normalize-url@^6.0.1: resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== -normalize-url@^8.0.0: - version "8.0.1" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz" - integrity sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w== - nwsapi@^2.2.7: version "2.2.9" resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.9.tgz" @@ -4778,38 +4641,11 @@ outdent@^0.8.0: resolved "https://registry.npmjs.org/outdent/-/outdent-0.8.0.tgz" integrity sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A== -ow@^0.28.1: - version "0.28.2" - resolved "https://registry.npmjs.org/ow/-/ow-0.28.2.tgz" - integrity sha512-dD4UpyBh/9m4X2NVjA+73/ZPBRF+uF4zIMFvvQsabMiEK8x41L3rQ8EENOi35kyyoaJwNxEeJcP6Fj1H4U409Q== - dependencies: - "@sindresorhus/is" "^4.2.0" - callsites "^3.1.0" - dot-prop "^6.0.1" - lodash.isequal "^4.5.0" - vali-date "^1.0.0" - -ow@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/ow/-/ow-1.1.1.tgz" - integrity sha512-sJBRCbS5vh1Jp9EOgwp1Ws3c16lJrUkJYlvWTYC03oyiYVwS/ns7lKRWow4w4XjDyTrA2pplQv4B2naWSR6yDA== - dependencies: - "@sindresorhus/is" "^5.3.0" - callsites "^4.0.0" - dot-prop "^7.2.0" - lodash.isequal "^4.5.0" - vali-date "^1.0.0" - p-cancelable@^2.0.0: version "2.1.1" resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz" integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== -p-cancelable@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz" - integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== - p-limit@^3.0.2: version "3.1.0" resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" @@ -5062,11 +4898,6 @@ quick-lru@^5.1.1: resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== -quick-lru@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-7.0.0.tgz" - integrity sha512-MX8gB7cVYTrYcFfAnfLlhRd0+Toyl8yX8uBx1MrX7K0jegiz9TumwOK27ldXrgDlHRdVi+MqU9Ssw6dr4BNreg== - rc@^1.2.7: version "1.2.8" resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" @@ -5229,7 +5060,7 @@ reselect@^5.0.1: resolved "https://registry.npmjs.org/reselect/-/reselect-5.1.0.tgz" integrity sha512-aw7jcGLDpSgNDyWBQLv2cedml85qd95/iszJjN988zX1t7AVRJi19d9kto5+W7oCfQ94gyo40dVbT6g2k4/kXg== -resolve-alpn@^1.0.0, resolve-alpn@^1.2.0: +resolve-alpn@^1.0.0: version "1.2.1" resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz" integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== @@ -5255,13 +5086,6 @@ responselike@^2.0.0: dependencies: lowercase-keys "^2.0.0" -responselike@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz" - integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== - dependencies: - lowercase-keys "^3.0.0" - retry@^0.12.0: version "0.12.0" resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" @@ -5412,6 +5236,11 @@ serialize-error@^7.0.1: dependencies: type-fest "^0.13.1" +set-cookie-parser@^2.4.8: + version "2.6.0" + resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz#131921e50f62ff1a66a461d7d62d7b21d5d15a51" + integrity sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ== + set-function-length@^1.2.1: version "1.2.2" resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz" @@ -5571,16 +5400,7 @@ stat-mode@^1.0.0: resolved "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz" integrity sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg== -"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" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -5651,14 +5471,7 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.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" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -5815,6 +5628,16 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +tough-cookie@^4.0.0: + version "4.1.4" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36" + integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.2.0" + url-parse "^1.5.3" + tough-cookie@^4.1.3: version "4.1.3" resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz" @@ -5854,7 +5677,7 @@ ts-api-utils@^1.0.1: resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz" integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== -tslib@^2.0.3, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.2: +tslib@^2.0.3, tslib@^2.5.0, tslib@^2.6.2: version "2.6.2" resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== @@ -5883,11 +5706,6 @@ type-fest@^0.20.2: resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -type-fest@^2.11.2: - version "2.19.0" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz" - integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== - typed-array-buffer@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz" @@ -6068,11 +5886,6 @@ uuid@^9.0.0: resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz" integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== -vali-date@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz" - integrity sha512-sgECfZthyaCKW10N0fm27cg8HYTFK5qMWgypqkXMQ4Wbl/zZKx7xZICgcoxIIE+WFAP/MBL2EFwC/YvLxw3Zeg== - verror@^1.10.0: version "1.10.1" resolved "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz" @@ -6235,11 +6048,6 @@ which@^2.0.1, which@^2.0.2: dependencies: isexe "^2.0.0" -windows-1251@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/windows-1251/-/windows-1251-3.0.4.tgz" - integrity sha512-H6W68MVertlR74xVuwa2pdQ1jR5qksk+oZX6QXFhL5OYj/ZZxViob8UyGLfXPwsCijuaV7NUYOYkK0oXSaWW5g== - winston-transport@^4.7.0: version "4.7.0" resolved "https://registry.npmjs.org/winston-transport/-/winston-transport-4.7.0.tgz" @@ -6271,16 +6079,7 @@ word-wrap@^1.2.5: resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz" 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" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==